Kuznyechik ( ruso : Кузнечик , literalmente "saltamontes") es un cifrado de bloque simétrico . Tiene un tamaño de bloque de 128 bits y una longitud de clave de 256 bits. Está definido en el Estándar Nacional de la Federación Rusa GOST R 34.12-2015 en inglés [3] y también en RFC 7801.
General | |
---|---|
Diseñadores | InfoTeCS JSC [1] |
Publicado por primera vez | 2015 |
Certificación | GOST y FSS |
Detalle de cifrado | |
Tamaños de clave | Red Feistel de 256 bits |
Tamaños de bloque | 128 bits |
Estructura | Red de sustitución-permutación |
Rondas | 10 |
Mejor criptoanálisis público | |
Un ataque de encuentro en el medio en 5 rondas. [2] |
El nombre del cifrado puede ser traducido del ruso como saltamontes , sin embargo, la norma dice explícitamente que el nombre de Inglés para el cifrado es Kuznyechik ( / k ʊ z n ɛ tʃ ɪ k / ). Los diseñadores afirman que al nombrar el cifrado Kuznyechik siguen la tendencia de los algoritmos difíciles de pronunciar establecidos por Rijndael y Keccak . [4] También hay un rumor de que el cifrado lleva el nombre de sus creadores: AS Kuzmin, [5] AA Nechaev [6] y Compañía (en ruso: Куз ьмин, Неч аев и К омпания). [ cita requerida ]
El estándar GOST R 34.12-2015 define el nuevo cifrado además del antiguo cifrado de bloque GOST (ahora llamado Magma) como uno y no declara al antiguo cifrado obsoleto. [7]
Kuznyechik se basa en una red de sustitución-permutación , aunque el programa clave emplea una red Feistel .
Designaciones
- Campo finito .
- ()
- .
- .
-
Descripción
Para el cifrado, descifrado y generación de claves, las siguientes funciones:
, dónde , son cadenas binarias de la forma ... (es la concatenación de cadenas ).
... es una transformación inversa de .
......
- transformación inversa de , ......
, dónde - composición de transformaciones y etc.
La transformación no lineal
La transformación no lineal se obtiene sustituyendo S = Bin 8 S 'Bin 8 −1 .
Los valores de la sustitución S ' se dan como matriz S' = (S '(0), S' (1),…, S '(255)) :
Transformación lineal
: ...
Las operaciones de suma y multiplicación se llevan a cabo en el campo. .
Generación de claves
El algoritmo de generación de claves utiliza constante iterativa , i = 1,2,… 32 y establece la clave compartida de la siguiente manera:....
Claves iteradas:
...
...
...
Algoritmo de cifrado
... donde una - cadena de 128 bits.
Algoritmo de descifrado
...
Criptoanálisis
Riham AlTawy y Amr M. Youssef describen un ataque Meet-en-el-medio en el 5-ronda reducida Kuznyechik que permite la recuperación de la clave con una complejidad de tiempo de 2 140 , la complejidad de memoria de 2 153 , y la complejidad de datos de 2 113 . [2]
Alex Biryukov , Leo Perrin y Aleksei Udovenko publicaron un artículo en el que muestran que las cajas S de Kuznyechik y Streebog no se crearon de forma pseudoaleatoria, sino mediante el uso de un algoritmo oculto que pudieron realizar ingeniería inversa . [8]
Más tarde, Leo Perrin y Aleksei Udovenko publicaron dos descomposiciones alternativas de la caja S y demostraron su conexión con la caja S del cifrado bielorruso BelT. [9] Los autores del artículo señalan que, si bien la razón para usar una estructura de este tipo sigue sin estar clara, la generación de cajas S mediante un algoritmo oculto contradice el concepto de números de nada en la manga, lo que podría demostrar que no se introdujeron debilidades intencionalmente. en su diseño.
Riham AlTawy, Onur Duman y Amr M. Youssef publicaron dos ataques de fallas en Kuznyechik que muestran la importancia de proteger las implementaciones del cifrado. [10]
Adopción
VeraCrypt (una bifurcación de TrueCrypt ) incluyó a Kuznyechik como uno de sus algoritmos de cifrado compatibles. [11]
Código fuente
- https://web.archive.org/web/20160424051147/http://tc26.ru/standard/draft/PR_GOSTR-bch_v4.zip
- https://web.archive.org/web/20180406230057/https://fossies.org/windows/misc/VeraCrypt_1.22_Source.zip/src/Crypto/kuznyechik.c (enlace alternativo en caso de que el primer enlace no funcione )
Referencias
- ^ "Copia archivada" . Archivado desde el original el 24 de abril de 2016 . Consultado el 13 de abril de 2016 .CS1 maint: copia archivada como título ( enlace )
- ^ a b Riham AlTawy y Amr M. Youssef (17 de abril de 2015). "Un encuentro en el medio ataque a Kuznyechik ronda reducida" (PDF) . Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ http://tc26.ru/en/standard/gost/GOST_R_34_12_2015_ENG.pdf Archivado el 4 de noviembre de 2017 en elestándar nacional Wayback Machine de la Federación de Rusia GOST R 34.12-2015 (versión en inglés)
- ^ https://mjos.fi/doc/rus/gh_ctcrypt.pdf Bajo peso y alto nivel: Borrador del estándar de cifrado ruso
- ^ https://www.researchgate.net/scientific-contributions/69696703_A_S_Kuzmin
- ^ https://www.researchgate.net/profile/A_Nechaev
- ^ http://www.itsec.ru/articles2/crypto/gost-r-chego-ozhidat-ot-novogo-standarta GOST R 34.12–2015: ¿qué esperar de un nuevo estándar? (Solo en ruso)
- ^ Alex Biryukov , Leo Perrin y Aleksei Udovenko (18 de febrero de 2016). "Ingeniería inversa de la caja S de Streebog, Kuznyechik y STRIBOBr1 (versión completa)" (PDF) . Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ Léo Perrin, Aleksei Udovenko (2017). "Cajas S exponenciales: un vínculo entre las cajas S de BelT y Kuznyechik / Streebog" (PDF) .
- ^ Riham AlTawy, Onur Duman y Amr M. Youssef (17 de abril de 2015). "Análisis de fallas de Kuznyechik" (PDF) . Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ "Kuznyechik" . Documentación de VeraCrypt . IDRIX . Consultado el 3 de febrero de 2018 .