Saltamontes | |
---|---|
Creador |
FSB de Rusia , InfoTeKS JSC |
publicado | 2015 |
Estándares | GOST 34.12-2018 , GOST R 34.12-2015 , RFC 7801 |
Tamaño de clave | 256 bits |
Tamaño de bloque | 128 bits |
Número de rondas | diez |
Tipo de | Red de sustitución-permutación |
Grasshopper ( inglés Kuznyechik [1] o inglés Kuznechik [2] [3] ) es un algoritmo de cifrado de bloque simétrico con un tamaño de bloque de 128 bits y una longitud de clave de 256 bits, que utiliza una red SP para generar claves redondas .
Este cifrado está aprobado (junto con el cifrado de bloque Magma ) como estándar en GOST R 34.12-2015 “Tecnología de la información. Protección criptográfica de la información. Bloques de cifrado" por orden de 19 de junio de 2015 No. 749-st [4] . La norma entró en vigor el 1 de enero de 2016 [5] . El cifrado fue desarrollado por el Centro de Protección de la Información y Comunicaciones Especiales del Servicio Federal de Seguridad de Rusia con la participación de Tecnologías de la Información y Sistemas de Comunicación JSC ( InfoTeKS JSC ). Introducido por el Comité Técnico de Normalización TC 26 "Protección criptográfica de la información" [6] [7] .
Protocolo No. 54 del 29 de noviembre de 2018 , basado en GOST R 34.12-2015 , el Consejo Interestatal de Metrología, Normalización y Certificación adoptó el estándar interestatal GOST 34.12-2018 . Por orden de la Agencia Federal de Regulación Técnica y Metrología del 4 de diciembre de 2018 No. 1061-st, el estándar GOST 34.12-2018 entró en vigencia como el estándar nacional de la Federación Rusa a partir del 1 de junio de 2019 .
es el campo de Galois módulo el polinomio irreducible .
es una aplicación biyectiva que asocia un elemento del anillo ( ) con su representación binaria.
es una pantalla inversa a .
es un mapeo biyectivo que asocia una cadena binaria con un elemento del campo .
- visualización inversa a
Las siguientes funciones se utilizan para cifrar, descifrar y generar una clave:
, donde , son cadenas binarias de la forma ... ( es el símbolo de concatenación de cadenas ).
... es la inversa de la transformación.
… …
- lo contrario a la transformación, y ... ...
, donde es la composición de las transformaciones , etc.
La transformación no lineal viene dada por la sustitución S = Bin 8 S' Bin 8 −1 .
Los valores de sustitución S' se dan como una matriz S' = (S'(0), S'(1), …, S'(255)) :
Establecido por pantalla :
…
donde las operaciones de suma y multiplicación se realizan en el campo .
El algoritmo de generación de claves utiliza constantes iterativas , i=1,2,…32. La clave compartida está configurada ... .
Las claves de iteración se calculan
…
…
…
... donde a es una cadena de 128 bits.
…
La cadena "a" se especifica en hexadecimal y tiene un tamaño de 16 bytes, con cada byte especificado por dos números hexadecimales.
Tabla de mapeo de cadenas en forma binaria y hexadecimal:
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
0 | una | 2 | 3 | cuatro | 5 | 6 | 7 | ocho | 9 | a | b | C | d | mi | F |
…
Como resultado, obtenemos claves iterativas:
Texto sin formato
Se espera que el nuevo cifrado de bloque "Grasshopper" sea resistente a todo tipo de ataques a los cifrados de bloque .
En la conferencia CRYPTO 2015, Alex Biryukov, Leo Perrin y Alexey Udovenko presentaron un informe que afirma que, a pesar de las afirmaciones de los desarrolladores, los valores del bloque S del cifrado Grasshopper y la función hash Stribog no son (pseudo) números aleatorios. , pero se generan en base a un algoritmo oculto, que lograron recuperar mediante métodos de ingeniería inversa [9] . Más tarde, Leo Perrin y Aleksey Udovenko publicaron dos algoritmos alternativos para generar el S-box y demostraron su conexión con el S-box del cifrado BelT bielorruso [10] . En este estudio, los autores también argumentan que, aunque las razones para usar tal estructura siguen sin estar claras, el uso de algoritmos ocultos para generar S-boxes es contrario al principio de "no hay truco en el agujero" , lo que podría servir como evidencia de la ausencia de vulnerabilidades incrustadas deliberadamente en el diseño del algoritmo.
Riham AlTawy y Amr M. Youssef describieron una reunión en medio del ataque durante 5 rondas del cifrado Grasshopper, que tiene una complejidad computacional de 2140 y requiere 2153 de memoria y 2113 de datos [11] .
Criptosistemas simétricos | |
---|---|
Cifrados de flujo | |
Red Feistel | |
red SP | |
Otro |