Lăcustă (cifr)

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 .

Informații generale

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 .

Notație

 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ă

Descrierea algoritmului

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.

Transformare neliniară

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)) :

Transformare liniară

Setat prin afișaj :

unde operatiile de adunare si inmultire se efectueaza in teren .

Generare cheie

Algoritmul de generare a cheilor folosește constante iterative , i=1,2,...32. Cheia partajată este setată ... .

Cheile de iterație sunt calculate

Algoritm de criptare

... unde a este un șir de 128 de biți.

Algoritm de decriptare

Exemplul [8]

Ș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

Exemplu de transformare N

Exemplu de transformare G

Exemplu de transformare H

Exemplu de generare a cheilor









Ca rezultat, obținem chei iterative:

Un exemplu de algoritm de criptare

text simplu

Securitate

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] .

Note

  1. Conform GOST R 34.12-2015 și RFC 7801 , cifrul poate fi denumit în engleză Kuznyechik
  2. Conform GOST 34.12-2018, cifrul poate fi denumit în engleză Kuznechik .
  3. Unele implementări software ale cifrului open source folosesc numele Grasshopper
  4. „GOST R 34.12-2015” (link inaccesibil) . Consultat la 4 septembrie 2015. Arhivat din original pe 24 septembrie 2015. 
  5. „Despre introducerea noilor standarde criptografice” . Consultat la 4 septembrie 2015. Arhivat din original pe 27 septembrie 2016.
  6. „www.tc26.ru” . Data accesului: 14 decembrie 2014. Arhivat din original la 18 decembrie 2014.
  7. Copie arhivată (link nu este disponibil) . Consultat la 13 aprilie 2016. Arhivat din original pe 24 aprilie 2016. 
  8. http://www.tc26.ru/standard/draft/GOSTR-bsh.pdf Arhivat 26 decembrie 2014 la Wayback Machine vezi Test Cases
  9. Alex Biryukov, Leo Perrin, Aleksei Udovenko. Reverse-Engineering the S-Box of Streebog, Kuznyechik and STRIBOBr1 (Versiunea completă) (8 mai 2016). Preluat la 21 mai 2021. Arhivat din original la 4 martie 2021.
  10. Leo Perrin, Aleksei Udovenko. S-Box-uri exponențiale: o legătură între S-Box-urile BelT și Kuznyechik/Streebog (3 februarie 2017). Consultat la 14 septembrie 2017. Arhivat din original la 17 aprilie 2021.
  11. Riham AlTawy și Amr M. Youssef. A Meet in the Middle Attack on Reduced Round Kuznyechik (17 aprilie 2015). Preluat la 8 iunie 2016. Arhivat din original la 16 iulie 2017.

Link -uri