Kuznyechik - Kuznyechik

Kuznyechik
Général
Créateurs InfoTeCS JSC
Première publication 2015
Certification GOST et FSS
Détail du chiffrement
Tailles des clés Réseau Feistel 256 bits
Tailles de bloc 128 bits
Structure Réseau de substitution-permutation
Les manches dix
Meilleure cryptanalyse publique
Une attaque au milieu sur 5 rounds.

Kuznyechik ( russe : Кузнечик , littéralement "sauterelle") est un chiffrement par blocs symétriques . Il a une taille de bloc de 128 bits et une longueur de clé de 256 bits. Il est défini dans la norme nationale de la Fédération de Russie GOST R 34.12-2015 en anglais et également dans la RFC 7801 .

Le nom de l'algorithme de chiffrement peut être traduit du russe comme sauterelle , toutefois, la norme indique explicitement que le nom anglais pour le chiffrement est Kuznyechik ( / k ʊ z n ɛ ɪ k / ). Les concepteurs affirment qu'en nommant le chiffre Kuznyechik, ils suivent la tendance des noms d'algorithmes difficiles à prononcer mis en place par Rijndael et Keccak . Il y a aussi une rumeur selon laquelle le chiffre a été nommé d'après ses créateurs: AS Kuzmin, AA Nechaev and Company (russe: Куз ьмин, Неч аев и К омпания).

La norme GOST R 34.12-2015 définit le nouveau chiffrement en plus de l'ancien bloc de chiffrement GOST (maintenant appelé Magma) comme un seul et ne déclare pas l'ancien chiffrement obsolète.

Kuznyechik est basé sur un réseau de substitution-permutation , bien que le programme clé utilise un réseau Feistel .

Désignations

- Champ fini .

- ( )

- .

- .

-

La description

Pour le chiffrement, le déchiffrement et la génération de clés, les fonctions suivantes:

, où , sont des chaînes binaires de la forme … ( est une concaténation de chaînes ).

… Est une transformation inversée de .

... ...

- transformation inverse , ... ...

, où - composition des transformations et etc.

La transformation non linéaire

La transformation non linéaire est donnée en remplaçant S = Bin 8 S 'Bin 8 -1 .

Les valeurs de la substitution S ' sont données par le tableau S' = (S '(0), S' (1),…, S '(255)) :

Transformation linéaire

: …

des opérations d'addition et de multiplication sont effectuées sur le terrain .

Génération de clés

L'algorithme de génération de clé utilise la constante itérative , i = 1,2,… 32 et définit la clé partagée comme suit: … .

Clés itérées:

Algorithme de cryptage

… Où une chaîne de 128 bits.

Algorithme de décryptage

Cryptanalyse

Riham AlTawy et Amr M. Youssef décrivent une attaque se rencontrent dans l'intermédiaire de la 5-tour réduit Kuznyechik qui permet la récupération de la clé avec une complexité en temps de 2 140 , la complexité de la mémoire de 2 153 , et de la complexité des données de 2 113 .

Alex Biryukov , Leo Perrin et Aleksei Udovenko ont publié un article dans lequel ils montrent que les boîtes S de Kuznyechik et Streebog n'ont pas été créées de manière pseudo-aléatoire, mais en utilisant un algorithme caché qu'ils ont pu faire de l'ingénierie inverse .

Plus tard, Leo Perrin et Aleksei Udovenko ont publié deux décompositions alternatives de la S-box et ont prouvé sa connexion à la S-box du chiffre biélorusse BelT. Les auteurs de l'article notent que si la raison de l'utilisation d'une telle structure reste floue, la génération de S-box par un algorithme caché contredit le concept de nombres rien dans ma manche qui pourrait prouver qu'aucune faiblesse n'a été intentionnellement introduite dans leur conception. .

Riham AlTawy, Onur Duman et Amr M. Youssef ont publié deux attaques par fautes sur Kuznyechik qui montrent l'importance de protéger les implémentations du chiffrement.

Adoption

VeraCrypt (un fork de TrueCrypt ) a inclus Kuznyechik comme l'un de ses algorithmes de cryptage pris en charge.

Code source

Références