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 .
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 .
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
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 .
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)) :
Indstillet efter display :
…
hvor operationerne med addition og multiplikation udføres i marken .
Nøglegenereringsalgoritmen bruger iterative konstanter , i=1,2,...32. Den delte nøgle er indstillet ... .
Iterationsnøgler beregnes
…
…
…
... hvor a er en 128-bit streng.
…
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 |
…
Som et resultat får vi iterative nøgler:
simpel tekst
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] .
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |