Lăcustă | |
---|---|
Creator |
FSB al Rusiei , InfoTeKS JSC |
publicat | 2015 |
Standarde | GOST 34.12-2018 , GOST R 34.12-2015 , RFC 7801 |
Dimensiunea cheii | 256 de biți |
Dimensiunea blocului | 128 de biți |
Numărul de runde | zece |
Tip de | Rețea de substituție-permutare |
Grasshopper ( în engleză Kuznyechik [1] sau în engleză Kuznechik [2] [3] ) este un algoritm de cifră bloc simetric cu o dimensiune a blocului de 128 de biți și o lungime a cheii de 256 de biți, care utilizează o rețea SP pentru a genera chei rotunde .
Acest cifru este aprobat (împreună cu Magma block cipher ) ca standard în GOST R 34.12-2015 „Tehnologia informației. Protecția criptografică a informațiilor. Cifre bloc” prin ordinul din 19 iunie 2015 Nr. 749-st [4] . Standardul a intrat în vigoare la 1 ianuarie 2016 [5] . Cifrul a fost dezvoltat de Centrul pentru Protecția Informației și Comunicații Speciale al Serviciului Federal de Securitate al Rusiei , cu participarea Tehnologiilor Informaționale și a Sistemelor de Comunicații JSC ( InfoTeKS JSC ). Introdus de Comitetul Tehnic de Standardizare TC 26 „Protecția criptografică a informațiilor” [6] [7] .
Protocolul nr. 54 din 29 noiembrie 2018 , în baza GOST R 34.12-2015 , Consiliul Interstatal pentru Metrologie, Standardizare și Certificare a adoptat standardul interstatal GOST 34.12-2018 . Prin ordinul Agenției Federale pentru Reglementare Tehnică și Metrologie din 4 decembrie 2018 nr. 1061-st, standardul GOST 34.12-2018 a fost pus în vigoare ca standard național al Federației Ruse de la 1 iunie 2019 .
este câmpul Galois modulo polinomul ireductibil .
este o mapare bijectivă care asociază un element al inelului ( ) cu reprezentarea sa binară.
este un afișaj invers față de .
este o mapare bijectivă care asociază un șir binar cu un element al câmpului .
- afișare inversă
Următoarele funcții sunt utilizate pentru a cripta, decripta și genera o cheie:
, unde , sunt șiruri binare de forma … ( este simbolul de concatenare a șirurilor ).
... este inversul transformării.
… …
- inversul transformării și ......
, unde este compoziția transformărilor etc.
Transformarea neliniară este dată de substituția S = Bin 8 S' Bin 8 −1 .
Valorile de substituție S’ sunt date ca o matrice S’ = (S’(0), S’(1), …, S’(255)) :
Setat prin afișaj :
…
unde operatiile de adunare si inmultire se efectueaza in teren .
Algoritmul de generare a cheilor folosește constante iterative , i=1,2,...32. Cheia partajată este setată ... .
Cheile de iterație sunt calculate
…
…
…
... unde a este un șir de 128 de biți.
…
Șirul „a” este specificat în hexazecimal și are o dimensiune de 16 octeți, fiecare octet fiind specificat de două numere hexazecimale.
Tabel de mapare a șirurilor în formă binară și hexazecimală:
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
0 | unu | 2 | 3 | patru | 5 | 6 | 7 | opt | 9 | A | b | c | d | e | f |
…
Ca rezultat, obținem chei iterative:
text simplu
Noul cifr de bloc „Grasshopper” este de așteptat să fie rezistent la toate tipurile de atacuri asupra cifrurilor bloc .
La conferința CRYPTO 2015, Alex Biryukov, Leo Perrin și Alexey Udovenko au prezentat un raport care afirmă că, în ciuda afirmațiilor dezvoltatorilor, valorile blocului S al cifrului Grasshopper și ale funcției hash Stribog nu sunt numere (pseudo) aleatoare. , dar sunt generate pe baza unui algoritm ascuns, pe care au reușit să-l recupereze prin metode de inginerie inversă [9] . Mai târziu, Leo Perrin și Aleksey Udovenko au publicat doi algoritmi alternativi pentru generarea S-box-ului și au demonstrat legătura acesteia cu S-box-ul cifrului BelT din Belarus [10] . În acest studiu, autorii susțin, de asemenea, că, deși motivele utilizării unei astfel de structuri rămân neclare, utilizarea algoritmilor ascunși pentru a genera cutii S este contrară principiului „fără truc în gaură” , care ar putea servi drept dovadă a absența vulnerabilităților încorporate în mod deliberat în proiectarea algoritmului.
Riham AlTawy și Amr M. Youssef au descris o întâlnire în atacul de mijloc pentru 5 runde ale cifrului Grasshopper, care are o complexitate de calcul de 2140 și necesită 2153 de memorie și 2113 de date [11] .
Criptosisteme simetrice | |
---|---|
Cifruri în flux | |
Rețeaua Feistel | |
Rețeaua SP | |
Alte |