Græshoppe (cifre)

Græshoppe
Skaber FSB i Rusland ,
InfoTeKS JSC
offentliggjort 2015
Standarder GOST 34.12-2018 , GOST R 34.12-2015 , RFC 7801
Nøglestørrelse 256 bit
Blokstørrelse 128 bit
Antal runder ti
Type Substitution-permutation netværk

Grasshopper ( engelsk  Kuznyechik [1] eller engelsk  Kuznechik [2] [3] ) er en symmetrisk blokchifferalgoritme med en blokstørrelse på 128 bit og en nøglelængde på 256 bit, som bruger et SP-netværk til at generere runde nøgler .

Generel information

Denne cipher er godkendt (sammen med Magma blok cipher ) som standard i GOST R 34.12-2015 “Informationsteknologi. Kryptografisk beskyttelse af information. Blokcifre" efter kendelse af 19. juni 2015 nr. 749-st [4] . Standarden trådte i kraft den 1. januar 2016 [5] . Chifferen blev udviklet af Center for Information Protection and Special Communications af Federal Security Service of Russia med deltagelse af Information Technologies and Communication Systems JSC ( InfoTeKS JSC ). Indført af den tekniske komité for standardisering TC 26 "Kryptografisk beskyttelse af information" [6] [7] .

Protokol nr. 54 dateret 29. november 2018 , baseret på GOST R 34.12-2015 , vedtog Interstate Council for Metrology, Standardization and Certification den mellemstatslige standard GOST 34.12-2018 . Efter ordre fra det føderale agentur for teknisk regulering og metrologi af 4. december 2018 nr. 1061-st blev GOST 34.12-2018- standarden sat i kraft som den nationale standard for Den Russiske Føderation fra 1. juni 2019 .

Notation

 er Galois-feltet modulo det irreducible polynomium .

 er en bijektiv mapping, der forbinder et element i ringen ( ) med dens binære repræsentation.

 er en visning omvendt til .

 er en bijektiv mapping, der forbinder en binær streng med et element i feltet .

 - display omvendt til

Beskrivelse af algoritmen

Følgende funktioner bruges til at kryptere, dekryptere og generere en nøgle:

, hvor , er binære  strenge af formen … ( er  strengsammenkædningssymbolet ).

...  er det omvendte af transformationen.

… …

 - det omvendte til transformationen, og ... ...

, hvor  er sammensætningen af ​​transformationer mv .

Ikke-lineær transformation

Den ikke-lineære transformation er givet ved substitutionen S = Bin 8 S' Bin 8 −1 .

Substitutionsværdierne S' er givet som et array S' = (S'(0), S'(1), …, S'(255)) :

Lineær transformation

Indstillet efter display :

hvor operationerne med addition og multiplikation udføres i marken .

Nøglegenerering

Nøglegenereringsalgoritmen bruger iterative konstanter , i=1,2,...32. Den delte nøgle er indstillet ... .

Iterationsnøgler beregnes

Krypteringsalgoritme

... hvor a er en 128-bit streng.

Dekrypteringsalgoritme

Eksempel [8]

Strengen "a" er angivet i hexadecimal og har en størrelse på 16 bytes, hvor hver byte er angivet med to hexadecimale tal.

Strengmappingstabel i binær og hexadecimal form:

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 en 2 3 fire 5 6 7 otte 9 -en b c d e f

N-transform eksempel

G-transform eksempel

H-transform eksempel

Eksempel på nøglegenerering









Som et resultat får vi iterative nøgler:

Et eksempel på en krypteringsalgoritme

simpel tekst

Sikkerhed

Den nye blokchiffer "Grasshopper" forventes at være modstandsdygtig over for alle former for angreb på blokcifre .

På CRYPTO 2015-konferencen præsenterede Alex Biryukov, Leo Perrin og Alexey Udovenko en rapport, der anførte, at på trods af udviklernes påstande, er værdierne af S-blokken af ​​Grasshopper-chifferet og Stribog-hash-funktionen ikke (pseudo) tilfældige tal , men er genereret baseret på en skjult algoritme, som de formåede at gendanne ved hjælp af reverse engineering metoder [9] . Senere udgav Leo Perrin og Aleksey Udovenko to alternative algoritmer til generering af S-boksen og beviste dens forbindelse med S-boksen i den hviderussiske BelT -chiffer [10] . I denne undersøgelse hævder forfatterne også, at selvom årsagerne til at bruge en sådan struktur forbliver uklare, er brugen af ​​skjulte algoritmer til at generere S-bokse i modstrid med princippet om "ingen trick i hullet" , hvilket kunne tjene som bevis på fraværet af bevidst indlejrede sårbarheder i designet af algoritmen.

Riham AlTawy og Amr M. Youssef beskrev et møde i midterangrebet i 5 runder af Grasshopper-chifferet, som har en beregningsmæssig kompleksitet på 2140 og kræver 2153 hukommelse og 2113 data [11] .

Noter

  1. Ifølge GOST R 34.12-2015 og RFC 7801 kan chifferen omtales på engelsk som Kuznyechik
  2. Ifølge GOST 34.12-2018 kan chifferen omtales på engelsk som Kuznechik .
  3. Nogle softwareimplementeringer af open source -chifferet bruger navnet Grasshopper
  4. "GOST R 34.12-2015" (utilgængeligt link) . Hentet 4. september 2015. Arkiveret fra originalen 24. september 2015. 
  5. "Om introduktionen af ​​nye kryptografiske standarder" . Hentet 4. september 2015. Arkiveret fra originalen 27. september 2016.
  6. "www.tc26.ru" . Dato for adgang: 14. december 2014. Arkiveret fra originalen 18. december 2014.
  7. Arkiveret kopi (link ikke tilgængeligt) . Hentet 13. april 2016. Arkiveret fra originalen 24. april 2016. 
  8. http://www.tc26.ru/standard/draft/GOSTR-bsh.pdf Arkiveret 26. december 2014 på Wayback Machine se Test Cases
  9. Alex Biryukov, Leo Perrin, Aleksei Udovenko. Reverse-engineering af S-Box af Streebog, Kuznyechik og STRIBOBr1 (fuld version) (8. maj 2016). Hentet 21. maj 2021. Arkiveret fra originalen 4. marts 2021.
  10. Leo Perrin, Aleksei Udovenko. Eksponentielle S-bokse: en forbindelse mellem S-bokse i BelT og Kuznyechik/Streebog (3. februar 2017). Hentet 14. september 2017. Arkiveret fra originalen 17. april 2021.
  11. Riham AlTawy og Amr M. Youssef. Et møde i midten angreb på den reducerede runde Kuznyechik (17. april 2015). Hentet 8. juni 2016. Arkiveret fra originalen 16. juli 2017.

Links