El cifrado de bloque GOST ( Magma ), definido en el estándar GOST 28147-89 (RFC 5830), es un cifrado de bloque de clave simétrica estándar del gobierno soviético y ruso con un tamaño de bloque de 64 bits. El estándar original, publicado en 1989, no le dio al cifrado ningún nombre, pero la revisión más reciente del estándar, GOST R 34.12-2015 (RFC 7801, RFC 8891), especifica que puede ser denominado Magma. [1] La función hash GOST se basa en este cifrado. El nuevo estándar también especifica un nuevo cifrado en bloque de 128 bits llamado Kuznyechik .
General | |
---|---|
Diseñadores | URSS , KGB , octavo departamento |
Publicado por primera vez | 1994-05-23 (desclasificado) |
Sucesores | Función hash GOST , Kuznyechik |
Certificación | Estándar GOST |
Detalle de cifrado | |
Tamaños de clave | 256 bits |
Tamaños de bloque | 64 bits |
Estructura | Red Feistel |
Rondas | 32 |
Desarrollado en la década de 1970, el estándar había sido marcado como "Top Secret" y luego degradado a "Secret" en 1990. Poco después de la disolución de la URSS , fue desclasificado y se lanzó al público en 1994. GOST 28147 era un Soviet alternativa al algoritmo estándar de Estados Unidos , DES . [2] Por lo tanto, los dos son muy similares en estructura.
El algoritmo
GOST tiene un tamaño de bloque de 64 bits y una longitud de clave de 256 bits. Sus cajas S pueden ser secretas y contienen aproximadamente 354 (log 2 (16! 8 )) bits de información secreta, por lo que el tamaño efectivo de la clave se puede aumentar a 610 bits; sin embargo, un ataque de clave elegida puede recuperar el contenido de las cajas S en aproximadamente 2 32 cifrados. [3]
GOST es una red Feistel de 32 rondas. Su función de redondeo es muy simple: agregue una subclave de 32 bits módulo 2 32 , coloque el resultado a través de una capa de cajas S y gire ese resultado a la izquierda 11 bits. El resultado de eso es la salida de la función de redondeo. En el diagrama adyacente, una línea representa 32 bits.
Las subclaves se eligen en un orden predeterminado. El programa de claves es muy simple: divida la clave de 256 bits en ocho subclaves de 32 bits, y cada subclave se usa cuatro veces en el algoritmo; las primeras 24 rondas usan las palabras clave en orden, las últimas 8 rondas las usan en orden inverso.
Las cajas S aceptan una entrada de cuatro bits y producen una salida de cuatro bits. La sustitución de la caja S en la función redonda consta de ocho cajas S de 4 × 4. Los S-boxes dependen de la implementación, por lo que las partes que quieran proteger sus comunicaciones mediante GOST deben utilizar los mismos S-boxes. Para mayor seguridad, las cajas S se pueden mantener en secreto. En el estándar original donde se especificó GOST, no se proporcionaron cajas S, pero debían suministrarse de alguna manera. Esto llevó a la especulación de que las organizaciones que el gobierno deseaba espiar recibieron cajas S débiles. Un fabricante de chips GOST informó que él mismo generaba S-boxes usando un generador de números pseudoaleatorios . [4]
Por ejemplo, el Banco Central de la Federación de Rusia utilizó las siguientes cajas S:
# | Caja S |
---|---|
1 | 4 A 9 2 D 8 0 E 6 B 1 C 7 F 5 3 |
2 | EB 4 C 6 DFA 2 3 8 1 0 7 5 9 |
3 | 5 8 1 DA 3 4 2 EFC 7 6 0 9 B |
4 | 7 DA 1 0 8 9 FE 4 6 CB 2 5 3 |
5 | 6 C 7 1 5 FD 8 4 A 9 E 0 3 B 2 |
6 | 4 BA 0 7 2 1 D 3 6 8 5 9 CFE |
7 | DB 4 1 3 F 5 9 0 AE 7 6 8 2 C |
8 | 1 FD 0 5 7 A 4 9 2 3 E 6 B 8 C |
Sin embargo, la revisión más reciente del estándar, GOST R 34.12-2015 , agrega la especificación S-box que falta y la define de la siguiente manera. [1]
# | GOST R 34.12-2015 S-caja |
---|---|
1 | C 4 6 2 A 5 B 9 E 8 D 7 0 3 F 1 |
2 | 6 8 2 3 9 A 5 C 1 E 4 7 BD 0 F |
3 | B 3 5 8 2 FUNDIDO 1 7 4 C 9 6 0 |
4 | C 8 2 1 D 4 F 6 7 0 A 5 3 E 9 B |
5 | 7 F 5 A 8 1 6 D 0 9 3 EB 4 2 C |
6 | 5 DF 6 9 2 CABINA 7 8 1 4 3 E 0 |
7 | 8 E 2 5 6 9 1 CF 4 B 0 DA 3 7 |
8 | 1 7 ED 0 5 8 3 4 FA 6 9 CB 2 |
Criptoanálisis de GOST
El último criptoanálisis de GOST muestra que es seguro en un sentido teórico. En la práctica, la complejidad de los datos y la memoria de los mejores ataques publicados ha alcanzado el nivel práctico, mientras que la complejidad temporal de incluso el mejor ataque sigue siendo 2 192 cuando hay 2 64 datos disponibles.
Desde 2007, se han desarrollado varios ataques contra implementaciones de GOST de ronda reducida y / o claves débiles . [5] [6]
En 2011, varios autores descubrieron fallas más significativas en GOST, pudiendo atacar el GOST completo de 32 rondas con claves arbitrarias por primera vez. Incluso ha sido llamado "un cifrado profundamente defectuoso" por Nicolas Courtois . [7] Los ataques iniciales pudieron reducir la complejidad del tiempo de 2256 a 2228 a costa de enormes requisitos de memoria, [8] y pronto se mejoraron hasta 2178 de complejidad de tiempo (al costo de 2 70 de memoria y 2 64 datos). [9] [10]
En diciembre de 2012, Courtois, Gawinecki, y Song mejoraron ataques a GOST calculando sólo 2 101 rondas GOST. [11] Isobe ya había publicado un ataque de clave única en el cifrado GOST completo, [12] que Dinur, Dunkelman y Shamir mejoraron, alcanzando 224 complejidad de tiempo para 2 32 datos y 2 36 de memoria, y 2192 complejidad de tiempo para 2 64 datos. [13]
Dado que los ataques reducen la fuerza esperada de 2 256 (longitud de la clave) a alrededor de 2 178 , el cifrado puede considerarse roto. Sin embargo, para cualquier cifrado de bloque con un tamaño de bloque de n bits, la cantidad máxima de texto sin formato que se puede cifrar antes de que se deba volver a introducir la clave es de 2 n / 2 bloques, debido a la paradoja del cumpleaños , [14] y ninguno de los ataques antes mencionados requiere menos de 2 32 datos.
Ver también
Referencias
- ^ a b "GOST R 34.12-2015 (solo en ruso)" (PDF) . Archivado desde el original (PDF) el 24 de septiembre de 2015 . Consultado el 28 de agosto de 2015 .
- ^ Fleischmann, Ewan; Gorski, Michael; Hühne, Jan-Hendrik; Suertes, Stefan (2009). "Ataque de recuperación de claves en cifrado de bloque GOST completo con tiempo cero y memoria". Publicado como ISO / IEC JTC . 1 .
- ^ Saarinen, Markku-Juhani (1998). "Un ataque clave elegido contra las cajas S secretas de GOST" .
Mostramos que un simple ataque de clave elegida de "caja negra" contra GOST puede recuperar cajas S secretas con aproximadamente 2 ^ 32 encriptaciones
Cite journal requiere|journal=
( ayuda ) - ^ Schneier, Bruce (1996). Criptografía aplicada: protocolos, algoritmos y código fuente en C (2. ed., [Nachdr.] Ed.). Nueva York [ua]: Wiley. ISBN 978-0-471-11709-4.
- ^ Eli Biham; Orr Dunkelman; Nathan Keller (2007). "Ataques de diapositivas mejorados" (PDF) .
- ^ Orhun Kara (2008). "Criptoanálisis de reflexión de algunos cifrados" .
- ^ Courtois, Nicolas T. (9 de mayo de 2011). "Evaluación de seguridad de GOST 28147-89 en vista de la estandarización internacional" . Archivo ePrint de criptología . IACR .
Hasta 2011, los investigadores acordaron unánimemente que GOST podría o debería ser muy seguro, lo que se resumió en 2010 en estas palabras: a pesar de los considerables esfuerzos criptoanalíticos realizados en los últimos 20 años, GOST todavía no se ha roto ". Desafortunadamente, recientemente se descubrió que GOST estar roto y es un cifrado profundamente defectuoso
- ^ Nicolas T. Courtois; Michał Miształ (2011). "Criptoanálisis diferencial de GOST" . IACR .
- ^ Nicolas T. Courtois (2012). "Un ataque diferencial mejorado en GOST completo" (PDF) . IACR .
- ^ Courtois, Nicolas T. (13 de junio de 2011). "Reducción de la complejidad algebraica y criptoanálisis de GOST" (PDF) . Archivo ePrint de criptología . IACR .
- ^ Nicolas T. Courtois; Jerzy A. Gawinecki; Canción de Guangyan (2012). "CONTRADICCIÓN INMUNIDAD Y ADIVINAR-LUEGO-DETERMINAR ATAQUES A GOST" (PDF) . Versita . Consultado el 25 de agosto de 2014 .
- ^ Isobe, Takanori (2011). "Un ataque de una sola tecla en el cifrado de bloque GOST completo". Cifrado de software rápido . Apuntes de conferencias en informática . 6733 . págs. 290-305. doi : 10.1007 / 978-3-642-21702-9_17 . ISBN 978-3-642-21701-2.
- ^ Dinur, Itai; Dunkelman, Orr; Shamir, Adi (2012). "Ataques mejorados en GOST completo" . Apuntes de conferencias en informática . 7549 (cifrado de software rápido): 9–28. doi : 10.1007 / 978-3-642-34047-5_2 .
- ^ "Borrador de ISO / IEC JTC 1 / SC 27 Documento permanente Nº 12 (SD12) sobre la evaluación de técnicas criptográficas y longitudes de claves, 4ª edición" (PDF) . 2016.
Otras lecturas
- "Biblioteca WebCrypto GOST" . Rudolf Nickolaev, equipo de WebCrypto GOST.
- "RFC 5830: algoritmos de cifrado, descifrado y MAC GOST 28147-89" . IETF. Marzo de 2010.
- "RFC 4357: Algoritmos criptográficos adicionales para su uso con GOST" . IETF. Enero de 2006.
- Alex Biryukov y David Wagner (mayo de 2000). Ataques de diapositivas avanzados (PDF) . Avances en criptología, Actas de EUROCRYPT 2000. Brujas : Springer-Verlag. págs. 589–606. doi : 10.1007 / 3-540-45539-6_41 . Consultado el 3 de septiembre de 2007 .
enlaces externos
- Descripción, textos del estándar, herramientas de cifrado y descifrado de GOST en línea
- Entrada de SCAN para GOST
- Una implementación de código abierto del dispositivo de software PKCS # 11 con capacidades de estándares de criptografía GOST rusos
- https://github.com/gost-engine/engine : implementación de código abierto de la criptografía rusa GOST para OpenSSL.