gräshoppa | |
---|---|
Skapare |
Rysslands FSB , InfoTeKS JSC |
publiceras | 2015 |
Standarder | GOST 34.12-2018 , GOST R 34.12-2015 , RFC 7801 |
Nyckelstorlek | 256 bitar |
Block storlek | 128 bitar |
Antal omgångar | tio |
Sorts | Substitution-permutationsnätverk |
Grasshopper ( engelska Kuznyechik [1] eller engelska Kuznechik [2] [3] ) är en symmetrisk blockchifferalgoritm med en blockstorlek på 128 bitar och en nyckellängd på 256 bitar, som använder ett SP-nätverk för att generera runda nycklar .
Detta chiffer är godkänt (tillsammans med Magma-blockchifferet ) som standard i GOST R 34.12-2015 "Informationsteknologi. Kryptografiskt skydd av information. Blockchiffer" genom order av den 19 juni 2015 nr 749-st [4] . Standarden trädde i kraft den 1 januari 2016 [5] . Chifferet utvecklades av Center for Information Protection and Special Communications av Federal Security Service of Russia med deltagande av Information Technologies and Communication Systems JSC ( InfoTeKS JSC ). Infört av den tekniska kommittén för standardisering TC 26 "Kryptografiskt skydd av information" [6] [7] .
Protokoll nr 54 daterat den 29 november 2018 , baserat på GOST R 34.12-2015 , antog Interstate Council for Metrology, Standardization and Certification den mellanstatliga standarden GOST 34.12-2018 . Genom order från Federal Agency for Technical Regulation and Metrology daterad 4 december 2018 nr 1061-st, sattes GOST 34.12-2018- standarden i kraft som den nationella standarden för Ryska federationen från 1 juni 2019 .
är Galois-fältet modulo det irreducerbara polynomet .
är en bijektiv mappning som associerar ett element i ringen ( ) med dess binära representation.
är en visning omvänd till .
är en bijektiv mappning som associerar en binär sträng med ett element i fältet .
- visa inverterad till
Följande funktioner används för att kryptera, dekryptera och generera en nyckel:
, där , är binära strängar av formen … ( är strängsammansättningssymbolen ) .
... är det omvända till omvandlingen.
… …
- det omvända till omvandlingen, och ... ...
, var är sammansättningen av transformationer osv .
Den olinjära transformationen ges av substitutionen S = Bin 8 S' Bin 8 −1 .
Substitutionsvärdena S' ges som en array S' = (S'(0), S'(1), …, S'(255)) :
Ställ in efter display :
…
där operationerna addition och multiplikation utförs i fält .
Nyckelgenereringsalgoritmen använder iterativa konstanter , i=1,2,...32. Den delade nyckeln är inställd ... .
Iterationsnycklar beräknas
…
…
…
... där a är en 128-bitars sträng.
…
Strängen "a" anges i hexadecimal och har en storlek på 16 byte, med varje byte specificerad av två hexadecimala tal.
Strängmappningstabell i binär och hexadecimal form:
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
0 | ett | 2 | 3 | fyra | 5 | 6 | 7 | åtta | 9 | a | b | c | d | e | f |
…
Som ett resultat får vi iterativa nycklar:
oformatterad text
Det nya blockchifferet "Grasshopper" förväntas vara resistent mot alla typer av attacker på blockchiffer .
På CRYPTO 2015-konferensen presenterade Alex Biryukov, Leo Perrin och Alexey Udovenko en rapport som säger att trots utvecklarnas påståenden är värdena för S-blocket för Grasshopper-chifferet och Stribog-hashfunktionen inte (pseudo)slumptal. , men genereras baserat på en dold algoritm, som de lyckades återställa med omvänd ingenjörsteknik [9] . Senare publicerade Leo Perrin och Aleksey Udovenko två alternativa algoritmer för att generera S-boxen och bevisade dess koppling till S-boxen i det vitryska BelT- chifferet [10] . I denna studie hävdar författarna också att, även om skälen till att använda en sådan struktur förblir oklara, strider användningen av dolda algoritmer för att generera S-boxar mot principen "ingen trick i hålet" , vilket skulle kunna tjäna som bevis på frånvaron av medvetet inbäddade sårbarheter i utformningen av algoritmen.
Riham AlTawy och Amr M. Youssef beskrev ett möte i mittenattacken under 5 omgångar av Grasshopper-chifferet, som har en beräkningskomplexitet på 2140 och kräver 2153 minne och 2113 data [11] .
Symmetriska kryptosystem | |
---|---|
Streama chiffer | |
Feistel nätverk | |
SP nätverk | |
Övrig |