Gräshoppa (chiffer)

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 .

Allmän information

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 .

Notation

 ä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

Beskrivning av algoritmen

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 .

Icke-linjär transformation

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

Linjär transformation

Ställ in efter display :

där operationerna addition och multiplikation utförs i fält .

Nyckelgenerering

Nyckelgenereringsalgoritmen använder iterativa konstanter , i=1,2,...32. Den delade nyckeln är inställd ... .

Iterationsnycklar beräknas

Krypteringsalgoritm

... där a är en 128-bitars sträng.

Dekrypteringsalgoritm

Exempel [8]

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

N-transform exempel

Exempel på G-transform

H-transform exempel

Exempel på nyckelgenerering









Som ett resultat får vi iterativa nycklar:

Ett exempel på en krypteringsalgoritm

oformatterad text

Säkerhet

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

Anteckningar

  1. Enligt GOST R 34.12-2015 och RFC 7801 kan chifferet på engelska kallas Kuznyechik
  2. Enligt GOST 34.12-2018 kan chifferet på engelska kallas Kuznechik .
  3. Vissa programvaruimplementationer av chiffer med öppen källkod använder namnet Grasshopper
  4. "GOST R 34.12-2015" (otillgänglig länk) . Hämtad 4 september 2015. Arkiverad från originalet 24 september 2015. 
  5. "Om införandet av nya kryptografiska standarder" . Hämtad 4 september 2015. Arkiverad från originalet 27 september 2016.
  6. "www.tc26.ru" . Datum för åtkomst: 14 december 2014. Arkiverad från originalet 18 december 2014.
  7. Arkiverad kopia (länk ej tillgänglig) . Hämtad 13 april 2016. Arkiverad från originalet 24 april 2016. 
  8. http://www.tc26.ru/standard/draft/GOSTR-bsh.pdf Arkiverad 26 december 2014 på Wayback Machine se testfall
  9. Alex Biryukov, Leo Perrin, Aleksei Udovenko. Reverse-engineering the S-Box of Streebog, Kuznyechik and STRIBOBr1 (fullversion) (8 maj 2016). Hämtad 21 maj 2021. Arkiverad från originalet 4 mars 2021.
  10. Leo Perrin, Aleksei Udovenko. Exponentiella S-boxar: en länk mellan S-boxarna i BelT och Kuznyechik/Streebog (3 februari 2017). Hämtad 14 september 2017. Arkiverad från originalet 17 april 2021.
  11. Riham AlTawy och Amr M. Youssef. A Meet in the Middle Attack på Reduced Round Kuznyechik (17 april 2015). Hämtad 8 juni 2016. Arkiverad från originalet 16 juli 2017.

Länkar