Kuznyechik (en ruso: Кузнечик) es un cifrado por bloques simétrico. El cual 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 in English[1] y también en RFC 7801.
El nombre del cifrado se puede traducir del ruso. como saltamontes, sin embargo, El estándar dice explícitamente que el nombre en inglés para el cifrado es Kuznyechik . Los diseñadores afirman que al nombrar el código Kuznyechik ellos siguen la tendencia de los nombres de algoritmos difíciles de pronunciar. Esto debido a Rijndael y Keccak. También hay un rumor que el algoritmo fue llamado así por sus creadores: A.S.Kuzmin,[2] A.A.Nechaev[3] (Ruso: Кузьмин, Нечаев и Компания).
El Estándar GOST R 34.12-2015 define al nuevo algoritmo en adición al viejo GOST block cipher (Ahora llamado Magma) Uno y no declara obsoleto el antiguo cifrado.[4]
Kuznyechik está basado en una Red de sustitución-permutación, A través de key schedule emplea una Red de Feistel.
Designaciones
— Cuerpo finito
.
—
(
)
—
.
—
.
—
Descripción
Para cifrado, decifrado y generación de claves, las siguientes funciones:
, donde
,
son cadenas binarias de la forma
…
(
es una cuerda concatenación).
…
es una transformación invertida de
.
…
…
— transformación invertida de
,
…
…
, where
— composición de transformaciones
and
etc.
Transformación no lineal es dada por subtistuir S = Bin8 S' Bin8−1.
Valores de la sustitución S' se dan como matriz S' = (S'(0), S'(1), …, S'(255)):
![{\displaystyle 104,162,253,58,206,204,181,112,14,86,8,12,118,18,191,114,19,71,156,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7f8be0b93f898fe37ba55c37d2ab9c54660d446a)
![{\displaystyle }](https://wikimedia.org/api/rest_v1/media/math/render/svg/df4dcd61276328f7c7ec5bdc399b6e11114a2c68)
:
…
Las operaciones de suma y multiplicación se realizan en el campo
.
Generación de clave
algoritmo de generación de claves utiliza constante iterativa
, i=1,2,…32. Establece la clave compartida
…
.
Llaves iteradas
…
…
…
Algoritmo de cifrado
…
where a — 128-bit string.
Algoritmo de descifrado
…
Adopción
VeraCrypt (un fork de TrueCrypt) incluye a Kuznyechik como uno de sus algoritmos de cifrado soportados.[5]
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 para el caso en el que el primer enlace no funcione.)
Referencias
- ↑ http://tc26.ru/en/standard/gost/GOST_R_34_12_2015_ENG.pdf Archivado el 4 de noviembre de 2017 en Wayback Machine. National Standard of the Russian Federation GOST R 34.12–2015 (English Version)
- ↑ 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: what to expect from a new standard? (Solo Ruso)
- ↑ «Kuznyechik». VeraCrypt Documentation. IDRIX. Consultado el 3 de febrero de 2018.
Control de autoridades | - Proyectos Wikimedia
Datos: Q21655497 |
---|
Datos: Q21655497