Szöcske | |
---|---|
Teremtő |
Oroszország FSB , InfoTeKS JSC |
közzétett | 2015 |
Szabványok | GOST 34.12-2018 , GOST R 34.12-2015 , RFC 7801 |
Kulcsméret | 256 bites |
Blokkméret | 128 bites |
A körök száma | tíz |
Típusú | Helyettesítő-permutációs hálózat |
A Grasshopper ( angolul Kuznyechik [1] vagy angolul Kuznyechik [2] [3] ) egy szimmetrikus blokk titkosítási algoritmus 128 bites blokkmérettel és 256 bites kulcshosszal, amely SP hálózatot használ kerek kulcsok generálására .
Ezt a titkosítást ( a Magma blokk titkosítással együtt ) szabványként hagyta jóvá a GOST R 34.12-2015 „Információs technológia. Az információk kriptográfiai védelme. Block ciphers" a 2015. június 19-i 749-st [4] számú végzéssel . A szabvány 2016. január 1-jén lépett hatályba [5] . A titkosítást az Orosz Szövetségi Biztonsági Szolgálat Információvédelmi és Speciális Kommunikációs Központja fejlesztette ki az Information Technologies and Communication Systems JSC ( InfoTeKS JSC ) részvételével. A Technikai Szabványügyi Bizottság által bevezetett TC 26 "Információ kriptográfiai védelme" [6] [7] .
A 2018. november 29-én kelt 54. sz. jegyzőkönyv , a GOST R 34.12-2015 alapján , az Államközi Metrológiai, Szabványügyi és Tanúsítási Tanács elfogadta a GOST 34.12-2018 államközi szabványt . A Szövetségi Műszaki Szabályozási és Mérésügyi Ügynökség 2018. december 4 -i , 1061-st számú rendelete értelmében a GOST 34.12-2018 szabványt az Orosz Föderáció nemzeti szabványaként 2019. június 1-jétől hatályba léptették .
a Galois-mező modulo az irreducibilis polinom .
egy bijektív leképezés, amely a gyűrű ( ) egy elemét társítja annak bináris ábrázolásához.
a kijelző inverze a .
egy bijektív leképezés, amely egy bináris karakterláncot társít a mező egy eleméhez .
- inverz megjelenítése
A következő funkciók titkosításra, visszafejtésére és kulcs generálására szolgálnak:
, ahol , … alakú bináris karakterláncok ( a karakterlánc összefűzési szimbóluma ).
... a transzformáció inverze.
…… _
- az átalakítás fordítottja, és ......
, hol van a transzformációk összetétele stb .
A nemlineáris transzformációt az S = Bin 8 S' Bin 8 −1 szubsztitúció adja .
Az S' helyettesítési értékek S ' = (S'(0), S'(1), …, S'(255)) tömbként vannak megadva :
Kijelző által beállítva :
…
ahol az összeadás és szorzás műveleteit a terepen hajtják végre .
A kulcsgeneráló algoritmus iteratív konstansokat használ , i=1,2,…32. A megosztott kulcs be van állítva ... .
Az iterációs kulcsok kiszámítása megtörténik
…
…
…
... ahol a egy 128 bites karakterlánc.
…
Az "a" karakterlánc hexadecimálisan van megadva, mérete 16 bájt, és minden bájtot két hexadecimális szám határoz meg.
Karakterlánc-leképezési táblázat bináris és hexadecimális formában:
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
0 | egy | 2 | 3 | négy | 5 | 6 | 7 | nyolc | 9 | a | b | c | d | e | f |
…
Ennek eredményeként iteratív kulcsokat kapunk:
egyszerű szöveg
Az új "Grasshopper" blokkrejtjel várhatóan ellenáll a blokkrejtjelek elleni mindenféle támadásnak .
A CRYPTO 2015 konferencián Alex Biryukov, Leo Perrin és Alexey Udovenko bemutatott egy jelentést, amely szerint a fejlesztők állítása ellenére a Grasshopper titkosítás S-blokkjának és a Stribog hash függvénynek az értékei nem (pszeudo) véletlen számok. , hanem egy rejtett algoritmus alapján generálódnak, amit visszafejtési módszerekkel sikerült helyreállítaniuk [9] . Később Leo Perrin és Aleksey Udovenko két alternatív algoritmust publikált az S-box generálására, és bebizonyították annak kapcsolatát a fehérorosz BelT titkosítás S-boxával [10] . Ebben a tanulmányban a szerzők azzal is érvelnek, hogy bár az ilyen struktúra használatának okai továbbra is tisztázatlanok, a rejtett algoritmusok használata S-boxok generálására ellentétes a „nincs trükk a lyukban” elvvel , amely bizonyítékként szolgálhat a szándékosan beágyazott sérülékenységek hiánya az algoritmus tervezésében.
Riham AlTawy és Amr M. Youssef egy találkozást írt le a középső támadásban a Grasshopper titkosítás 5 fordulójában, amelynek számítási összetettsége 2140 , és 2153 memóriát és 2113 adatot igényel [11] .
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |