Simon es una familia de cifrados de bloques livianos 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 software. implementaciones. [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 EE. UU. necesitarían un cifrado que funcionara bien en una colección diversa de dispositivos de Internet de las cosas manteniendo al mismo tiempo 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 de cifrado Simon se indica como Simon2 n / nm . Por ejemplo, Simon64/128 se refiere al cifrado que opera en un bloque de texto sin formato 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 bloques, tamaños de claves y número de rondas: [1]
Anotemos un desplazamiento circular hacia la izquierda en bits.
El cronograma clave se describe matemáticamente como
La estructura clave del cronograma puede o no estar equilibrada. El recuento de palabras clave de se utiliza para determinar la estructura de la expansión de la clave, lo que da como resultado un ancho de bits total de . La expansión de la palabra 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 está establecida por 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 claves una vez por ronda en el bit más bajo para agregar entropía no dependiente de claves al programa 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 según la ronda.
Los diseñadores afirman que Simon, aunque es un cifrado "ligero", está diseñado para tener la seguridad total posible para cada bloque y tamaño de clave, contra ataques estándar de texto sin formato elegido (CPA) y texto cifrado elegido (CCA) . La resistencia contra ataques de claves relacionadas también se planteó como un objetivo, aunque 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 los ataques en el modelo de ataque de distinción de clave conocida , ni los diseñadores evaluaron a Simon para su uso como función hash . [10]
A partir de 2018, no se conoce ningún ataque exitoso contra Simon de asalto completo de ninguna variante. Debido al interés por Simon y Speck, se han publicado alrededor de 70 artículos de criptoanálisis sobre ellos. [9] : 10 Como es típico en los cifrados iterados , las variantes de ronda reducida han sido atacadas con éxito. Los ataques mejor publicados contra Simon en el modelo de ataque estándar (CPA/CCA con clave desconocida) son los ataques de criptoanálisis diferencial ; estos logran superar entre el 70% y el 75% de las rondas de la mayoría de las variantes, aunque estos mejores ataques son sólo marginalmente más rápidos que la fuerza bruta . [11] [12] [13] [9] : 12 El equipo de diseño afirma que mientras diseñaban a Simon, encontraron que los ataques diferenciales eran los ataques limitantes, es decir, el tipo de ataque que supera la mayor cantidad de rondas; Luego establecieron el número de rondas para dejar un margen de seguridad similar al del 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 márgenes de seguridad pequeños tienen más probabilidades de ser rotos por futuros avances en criptoanálisis . El equipo de diseño de Simon responde que existe un costo en el mundo real por márgenes de seguridad innecesariamente grandes, especialmente en dispositivos livianos, que el criptoanálisis durante la fase de diseño permitió establecer adecuadamente el número de rondas y que apuntaron al margen de seguridad de AES. [9] : 17
Simón incluye un contador redondo en el horario clave . Los diseñadores afirman que esto se incluyó para bloquear ataques de criptoanálisis rotacional y deslizante . [9] : 16 Aún así, el criptoanálisis XOR rotacional se ha utilizado para encontrar distintivos frente a versiones de ronda reducida de cifrados relacionados como Speck. [15] Aunque los autores no describen ataques estándar de recuperación de claves basados en sus distintivos, sus mejores distintivos en Simon32 y Simon48 en el modelo de ataque de distinción de clave conocida para ciertas clases de claves débiles superan un poco más de rondas que el mejor diferencial. distinguidores. Uno de los autores ha dicho que su investigación tenía recursos limitados y que probablemente sean posibles los distinguidores XOR rotacionales en más rondas. Los diseñadores también afirman que Simon no fue diseñado para resistir ataques de distinción de claves conocidas (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 solucionadores SAT/SMT, aunque no se proporciona 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. [dieciséis]
La NSA aprobó Simon128/256 y Speck128/256 para su uso en los sistemas de seguridad nacional de EE. UU., aunque todavía se recomienda AES-256 para aplicaciones no restringidas. [17]
Los intentos iniciales de estandarizar Simon y Speck no lograron cumplir con la supermayoría de la Organización Internacional de Normalización requerida por el proceso y los cifrados no fueron adoptados. [18] [16] Los delegados expertos ante la ISO de varios países, incluidos Alemania, Japón e Israel, se opusieron a los esfuerzos de la NSA para estandarizar los cifrados Simon y Speck , citando preocupaciones de que la NSA esté presionando para su estandarización con conocimiento de debilidades explotables en las cifras. La posición se basó en evidencia parcial de debilidades en los cifrados, la 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 artículos 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.
Después de que fracasaron los intentos iniciales de estandarizar los cifrados, la ISO estandarizó a Simon y Speck en otros grupos de trabajo. A partir de octubre de 2018, los cifrados Simon y Speck han sido estandarizados por ISO 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 hace ponerlos a disposición de entidades comerciales.