Simon es una familia de cifrados de bloques ligeros publicados públicamente por la Agencia de Seguridad Nacional (NSA) en junio de 2013. [5] [1] Simon ha sido optimizado para el rendimiento en implementaciones de hardware, mientras que su algoritmo hermano, Speck , ha sido optimizado para implementaciones de software. [6] [7]
La NSA comenzó a trabajar en los cifrados Simon y Speck en 2011. La agencia anticipó que algunas agencias del gobierno federal de Estados Unidos necesitarían un cifrado que funcionara bien en una colección diversa de dispositivos de Internet de las cosas y al mismo tiempo mantuviera un nivel aceptable de seguridad. [8]
El cifrado de bloque Simon es un cifrado Feistel equilibrado con una palabra de n bits y, por lo tanto, la longitud del bloque es 2 n . La longitud de la clave es un múltiplo de n por 2, 3 o 4, que es el valor m . Por lo tanto, una implementación del cifrado Simon se denota como Simon2 n / nm . Por ejemplo, Simon64/128 se refiere al cifrado que opera en un bloque de texto simple de 64 bits ( n = 32) que utiliza una clave de 128 bits. [1] El componente de bloque del cifrado es uniforme entre las implementaciones de Simon; sin embargo, la lógica de generación de claves depende de la implementación de 2, 3 o 4 claves.
Simon admite las siguientes combinaciones de tamaños de bloque, tamaños de clave y número de rondas: [1]
Anotemos un desplazamiento circular hacia la izquierda en bits.
El calendario clave se describe matemáticamente como
La estructura de la programación de claves puede estar equilibrada o no. El recuento de palabras clave de se utiliza para determinar la estructura de la expansión de claves, lo que da como resultado un ancho de bits total de . La expansión de palabras clave consta de un desplazamiento a la derecha, XOR y una secuencia constante, . El bit opera en el bit más bajo de la palabra clave una vez por ronda. [7]
La secuencia constante, , se crea mediante un registro de desplazamiento de retroalimentación lineal ( LFSR ). La secuencia lógica de constantes de bits se establece mediante el valor de la clave y los tamaños de bloque. El LFSR se crea mediante un campo de 5 bits. El bit constante opera en un bloque de clave una vez por ronda en el bit más bajo para agregar entropía no dependiente de la clave a la programación de claves. El LFSR tiene una lógica diferente para cada secuencia; sin embargo, la condición inicial es la misma para el cifrado. La condición inicial del LFSR para el descifrado varía en la ronda.
Los diseñadores afirman que Simon, aunque es un cifrado "liviano", está diseñado para tener la máxima seguridad posible para cada bloque y tamaño de clave, contra ataques estándar de texto simple elegido (CPA) y de texto cifrado elegido (CCA) . La resistencia contra ataques de clave relacionada también se declaró como un objetivo, aunque uno menos crucial ya que los ataques en ese modelo no son relevantes para los casos de uso típicos. [9] : 2 No se hizo ningún esfuerzo para resistir ataques en el modelo de ataque de distinción de clave conocida , ni los diseñadores evaluaron a Simon para su uso como una función hash . [10]
Hasta 2018, no se conoce ningún ataque exitoso a Simon de ronda completa de ninguna variante. Debido al interés en Simon y Speck, se han publicado alrededor de 70 artículos de criptoanálisis sobre ellos. [9] : 10 Como es típico para los cifrados iterados , las variantes de ronda reducida han sido atacadas con éxito. Los mejores ataques publicados a Simon en el modelo de ataque estándar (CPA/CCA con clave desconocida) son ataques de criptoanálisis diferencial ; estos logran superar aproximadamente el 70-75% de las rondas de la mayoría de las variantes, aunque estos mejores ataques son solo marginalmente más rápidos que la fuerza bruta . [11] [12] [13] [9] : 12 El equipo de diseño afirma que mientras diseñaban Simon, encontraron que los ataques diferenciales eran los ataques limitantes, es decir, el tipo de ataque que logra superar la mayoría de las rondas; luego establecieron el número de rondas para dejar un margen de seguridad similar al de AES-128 en aproximadamente el 30%. [9] : 12–13
Simon ha sido criticado por tener un margen de seguridad demasiado pequeño, es decir, muy pocas rondas entre los mejores ataques y el cifrado completo, en comparación con cifrados más conservadores como ChaCha20 . [14] Los cifrados con pequeños márgenes de seguridad tienen más probabilidades de ser descifrados por futuros avances en criptoanálisis . El equipo de diseño de Simon contraataca que existe un costo real por márgenes de seguridad innecesariamente grandes, especialmente en dispositivos livianos, que el criptoanálisis durante la fase de diseño permitió que el número de rondas se estableciera adecuadamente y que apuntaron al margen de seguridad de AES. [9] : 17
Simon incluye un contador de rondas en el programa de claves . Los diseñadores afirman que esto se incluyó para bloquear los ataques de criptoanálisis rotacional y deslizante . [9] : 16 Aún así, el criptoanálisis rotacional-XOR se ha utilizado para encontrar diferenciadores contra versiones de ronda reducida de cifrados relacionados como Speck. [15] Aunque los autores no describen ataques de recuperación de clave estándar basados en sus diferenciadores, sus mejores diferenciadores en Simon32 y Simon48 en el modelo de ataque de distinción de clave conocida para ciertas clases de claves débiles superan ligeramente más rondas que los mejores diferenciadores diferenciales. Uno de los autores ha dicho que su investigación estaba limitada por los recursos y que los diferenciadores rotacionales-XOR en más rondas son probablemente posibles. Los diseñadores también afirman que Simon no fue diseñado para resistir ataques de distinción de clave conocida (que no comprometen directamente la confidencialidad de los cifrados). [10] : 8
Los diseñadores afirman que el criptoanálisis de la NSA encontró que los algoritmos no tenían debilidades y que la seguridad era acorde con la longitud de sus claves. [8] : 2 El equipo de diseño dice que su criptoanálisis incluía criptoanálisis lineal y diferencial utilizando técnicas estándar como el algoritmo de Matsui y los solucionadores SAT/SMT, aunque no se da una lista completa de las técnicas utilizadas. [9] : 10 Los diseñadores de Simon han sido criticados por no proporcionar más detalles sobre el criptoanálisis de los cifrados por parte de la NSA. [16]
La NSA ha aprobado Simon128/256 y Speck128/256 para su uso en los sistemas de seguridad nacional de EE. UU., aunque AES-256 todavía se recomienda para aplicaciones sin restricciones. [17]
Los intentos iniciales de estandarizar los sistemas Simon y Speck no lograron cumplir con la mayoría absoluta requerida por la Organización Internacional de Normalización (ISO) y los cifrados no fueron adoptados. [18] [16] Los delegados expertos de la ISO de varios países, entre ellos Alemania, Japón e Israel, se opusieron a los esfuerzos de la NSA por estandarizar los cifrados Simon y Speck , citando preocupaciones de que la NSA está presionando para su estandarización con conocimiento de debilidades explotables en los cifrados. La posición se basó en evidencia parcial de debilidades en los cifrados, falta de una necesidad clara de estandarización de los nuevos cifrados y la participación previa de la NSA en la creación y promoción del algoritmo criptográfico Dual_EC_DRBG con puerta trasera. [19] [20]
En respuesta a las preocupaciones, la NSA declaró que más de 70 documentos de análisis de seguridad de algunos de los principales criptógrafos del mundo respaldan la conclusión de la NSA de que los algoritmos son seguros y la NSA afirmó que no tiene conocimiento de ninguna técnica criptoanalítica que les permita a ellos o a cualquier otra persona explotar a Simon o Speck.
Tras el fracaso de los intentos iniciales de estandarizar los cifrados, la ISO estandarizó Simon y Speck en otros grupos de trabajo. A partir de octubre de 2018, la ISO estandarizó los cifrados Simon y Speck como parte del estándar de interfaz aérea RFID, el Estándar Internacional ISO/29167-21 (para Simon) y el Estándar Internacional ISO/29167-22 (para Speck), lo que los pone a disposición de entidades comerciales.