Králík je vysokorychlostní proudová šifra poprvé představená [1] v únoru 2003 na 10. FSE Symposium. V květnu 2005 byl přihlášen do soutěže eStream , jejímž cílem bylo vytvořit evropské standardy pro systémy šifrování streamů.
Rabbit vyvinuli Martin Boesgaard , Mette Vesterager , Thomas Pedersen , Jesper Christiansen a Ove Scavenius .
Králík používá 128bitový klíč a 64bitový inicializační vektor. Šifra byla navržena pro použití v softwaru jako vysoká rychlost šifrování. Zároveň by rychlost šifrování mohla dosáhnout 3,7 cyklů na bajt ( CPB ) pro procesor Pentium 3 a 10,5 cyklů na bajt pro ARM7. Šifra se však také ukázala jako rychlá a kompaktní při implementaci do hardwaru.
Hlavní součástí šifry je generátor bitového toku , který zašifruje 128 bitů zprávy na iteraci. Výhoda šifry je v důkladném promíchání jejích vnitřních stavů mezi dvěma po sobě jdoucími iteracemi. Funkce míchání je zcela založena na aritmetických operacích dostupných na moderních procesorech, tj . k implementaci šifry nejsou potřeba substituční S-boxy a vyhledávací tabulky.
Autoři šifry poskytli úplnou sadu datových listů na domovské stránce Cryptico [2] . Šifra je také popsána v RFC 4503 . Cryptico vlastnil patent na šifru a po mnoho let komerční využití šifry vyžadovalo licenci. Dne 6. října 2008 však bylo povoleno bezplatně používat šifru k jakémukoli účelu [3] .
Proudové šifry projektu eSTREAM se skládají ze dvou profilů. Profil 1 obsahuje softwarově orientované šifry a Profil 2 zahrnuje hardwarově orientované šifry.
Nejlepší šifry projektu:
Profil 1 | Profil 2 |
---|---|
HC-128 | F-FCSR-H v2 |
Králičí | Zrno v1 |
Salsa 20/12 | MICKEY v2 |
Sosemanuk | Trivium |
Profil 1 obsahuje symetrické proudové šifry s dobrou softwarovou implementací. Tak dobré, že by měly překonat blokový symetrický šifrovací algoritmus AES v režimech generování gama. Hlavním požadavkem na tento profil bylo poskytnout úroveň zabezpečení 128 bitů.
Králík je jedním z nejstarších návrhů projektu eSTREAM. Tato proudová šifra nebyla podrobena žádným úpravám ani dodatkům. Jeho specifikace se od roku 2003 do současnosti nezměnila. Šifra přežila všechny tři fáze projektu a v žádné z nich nebyla vystavena kryptoanalytickým útokům. Tento algoritmus je mimo jiné velmi dobře implementován na nových procesorech rodiny Intel. Jako nevýhodu můžete vidět skutečnost, že šifra Rabbit poskytuje úroveň zabezpečení pouze 128 bitů.
Výsledky závěrečného hlasování projektu eSTREAM pro Profil 1.
Profil 1 | brýle |
---|---|
Králičí | 2,80 |
Salsa20 | 2,80 |
Sosemanuk | 1.20 |
HC-128 | 0,60 |
NLS v2 | -0,60 |
LEXv2 | −1,20 |
CryptoMT v3 | −1,40 |
Drak | −1,60 |
Vnitřní stav proudové šifry obsahuje 513 bitů. 512 z nich je rozděleno do osmi 32bitových stavových proměnných a osmi 32bitových čítačů , kde je stavová proměnná subsystému během iterace a je odpovídající čítač proměnných. 513. bit je přenosový bit , který musí být uložen mezi iteracemi. Tento bit je inicializován na nulu. Při inicializaci závisí na klíči 8 stavových proměnných a 8 čítačů.
Algoritmus se inicializuje rozšířením 128bitového klíče na 8 stavových proměnných a 8 čítačů, takže mezi klíčem, proměnnými počátečního stavu a počátečními čítači existuje vzájemná shoda jedna ku jedné . Klíč je rozdělen do 8 podklíčů: , , … , , stavové proměnné a čítače se inicializují pomocí podklíčů
kde je operace zřetězení.
Systém se spustí 4krát podle funkce dalšího stavu definované níže, aby se snížila korelace mezi bity klíče a bity vnitřních stavových proměnných. Na konci se počítadla znovu inicializují následovně:
aby se zabránilo obnovení klíče invertováním systému počítadel.
Zde jsou všechny doplňky modulo 2 32 . Funkce a vracejí dolní a horní čtyři bajty 64bitového čísla , - cyklický posun doleva.
Rovnice, které specifikují změnu v systému čítačů:
kde počet bitů přenosu je dán
Konstanty jsou také definovány jako
Po každé iteraci je generováno 128 výstupních bitů pomocí následujících vzorců:
kde je 128bitový blok toku šifrování v iteraci.
Operace XOR se provádí mezi extrahovanými bity a textem/šifrovaným textem pro šifrování/dešifrování.
kde a označují tý blok šifrovaného textu a textu.
Instalaci klíče lze rozdělit do tří fází: rozšíření klíče, iterační systém, úprava čítače.
Králík poskytuje 128bitovou ochranu proti útočníkům, jejichž cílem je jediný unikátní klíč. Pokud dojde k útoku na několik klíčů najednou a nezáleží na tom, který z nich je prolomený, pak se zabezpečení sníží na 96 bitů [5] .
Jakmile je klíč nastaven, bity čítače a stavu jsou přísně a velmi nelineárně závislé na bitech klíče. To znesnadňuje prolomení útoků na hádání částečného klíče, i když bity čítače byly známy po úpravě čítače. Znalost počítadel samozřejmě usnadňuje další typy hacků.
Kolizní útokKráličí šifra používá nejednoznačné mapování, různé klíče mohou potenciálně vést ke stejnému gamutu. Tento problém se v podstatě scvrkává na otázku, zda různé klíče vedou ke stejným hodnotám čítačů, protože různé hodnoty čítačů téměř jistě povedou k různým generacím gama. Všimněte si, že systém rozšíření a iterace klíčů byl navržen tak, aby každý klíč vedl k jedinečným hodnotám čítačů. Úprava počítadla však může mít za následek stejné hodnoty počítadla pro dva různé klíče. Za předpokladu, že po čtyřech počátečních iteracích je vnitřní stav v podstatě náhodný a nekoreluje se systémem čítače, je pravděpodobnost kolizí dána „narozeninovým paradoxem“, tedy pro všechny klíče se očekává jedna kolize v 256- počítadlo bitů[ specifikovat ] . Kolize čítačového systému by tedy v praxi neměla způsobovat problémy.
Související klíčový útokÚtok je založen na využití vlastností symetrie v dalším stavu a funkcích nastavení klíčů. Uvažujme například dva klíče a související vztahem pro všechny . To vede ke vztahu a . Nyní zvažte, kdy a jsou stejný klíč. Pokud je podmínka splněna, pak by si další stavová funkce zachovala vlastnost symetrie. Ale lze snadno zkontrolovat, že konstanty jsou zvoleny tak, aby . Funkce dalšího stavu tedy není citlivá na související útok klíče.
Takový útok by byl možný, pokud by výstupní bity mohly být predikovány pomocí malé sady vnitřních stavových bitů. Útočník musí uhodnout vhodnou část stavových proměnných, předpovědět výstupní bity a porovnat je s přímo pozorovanými bity na výstupu, aby si ověřil, že jeho odhad je správný. Útočník musí uhodnout alespoň 2*12 vstupních bajtů pro různé g-funkce, aby je mohl otestovat proti jednomu bajtu. To je ekvivalentní uhodnutí 192 bitů, což je těžší než zkoušet všechny klíče.
Útok hádej a určiPodstatou této metody je, že musíte uhodnout několik neznámých proměnných šifry a pomocí nich odvodit zbývající neznámé. Poté se systém několikrát spustí a výstup se porovná se skutečným výstupem šifry, aby se ověřil předpoklad. Útočník se pokusí znovu vytvořit 512 bitů vnitřního stavu, tj. pozoruje 4 po sobě jdoucí 128bitová data na výstupu šifry a provede následující:
Účinnost tohoto přístupu závisí na počtu uhodnutých proměnných. Toto číslo je zespodu ohraničeno 8bitovým subsystémem s nejmenším počtem vstupních proměnných. Pokud budeme čítače ignorovat, každý bajt funkce dalšího stavu závisí na 12 vstupních bytech. Pokud vezmete v úvahu čítače, každý bajt na výstupu subsystému již závisí na 24 vstupních bytech. Útočník tedy musí uhodnout více než 128 bitů, čímž útok znemožní.
Daná booleovská funkce , ANF je reprezentace jako mnohorozměrný polynom (to je součet monomials od vstupních proměnných). Velký počet monočlenů a jejich dobrá distribuce energie jsou důležitými vlastnostmi nelineárních bloků v šifře.
Pro náhodnou booleovskou funkci ve 32 proměnných je průměrný počet monočlenů , a průměrný počet monočlenů, které zahrnují všechny dané proměnné, je . Pokud vezmeme v úvahu 32 náhodně vybraných funkcí, pak průměrný počet monočlenů, které nejsou v žádné z 32 funkcí, je 1 a odpovídající rozptyl je také 1.
Pro g-funkci v králičí šifře má ANF pro 32 booleovských dílčích funkcí alespoň mocninu 30. Počet monočlenů se mění od do , kde pro náhodnou funkci by měl být . Rozdělení monočlenů jako funkce stupně je znázorněno na obrázku. V ideálním případě by hlavní část měla být mezi tečkovanými čarami, které ukazují odchylky od průměru ideální náhodné funkce. Některé booleovské funkce se výrazně liší od výsledků pro náhodnou funkci, nicméně všechny mají velký počet monočlenů vysokého stupně.
Kromě toho byla zkoumána částečná koincidence 32 funkcí. Celkový počet monočlenů, které se vyskytují jednou, je , zatímco počet monočlenů, které se nevyskytují vůbec, je . Ve srovnání s náhodnou funkcí se jedná o poměrně velké odchylky. Tyto informace mohou být užitečné pro budoucí analýzu šifry.
Algebraicky normální forma (ANF) pro úplnou šifruJe prakticky nemožné vypočítat ANF pro všechny bity na výstupu pro úplnou šifru. Ale snížení velikosti klíče ze 128 bitů na 32 bitů umožňuje naučit se 32 booleovských výstupních funkcí jako funkce 32 bitového klíče.
U zkrácené verze králičí šifry byla funkce nastavení zkoumána pro různý počet iterací. ANF se určuje po 0, 1, 2, 3, 4 iteracích a jedné další iteraci ve schématu extrakce. Pro iterace 0+1 byl počet monočlenů přibližně 2^31, jak se očekávalo u náhodné funkce. Ale po dvou iteracích se výsledek stabilizoval. To znamená, že již nedochází ke kolísání výkonu. Počet chybějících polynomů je 0, 1, 2, 3, 1 v iteracích (0+1), ..., (4+1). Je zřejmé, že tato data odpovídají výsledkům pro náhodné funkce.
Lineární útok zahrnuje nalezení nejlepší lineární aproximace mezi bity na vstupu funkce dalšího stavu a bity na výstupu extrakčního obvodu. K tomu použijte Walsh-Hadamardovu transformaci za předpokladu, že všechna vstupní data jsou lineárně nezávislá. Bylo zjištěno, že nejlepší lineární korelace má korelační koeficient řádu , který implikuje generování výstupu z iterací pro srovnání s náhodnou funkcí.
Aproximace druhého řáduOdříznutí ANF pro g-funkci členů nad druhým řádem výrazně zlepšuje aproximaci za správných podmínek.
Označte aproximací druhého řádu ANF pro . Podle experimentálních výsledků je korelační koeficient mezi a menší než a korelační koeficient mezi a je přibližně roven . To znamená, že některé členy vyššího stupně jsou odříznuty, když je modulo 2 přidáno ke dvěma sousedním bitům. Na základě těchto dat dává šifra s druhým řádem aproximace přinejlepším korelační koeficient řádu . Tato hodnota korelačního koeficientu je pro útok nedostatečná. Pokud vezmeme v úvahu i čítače, pak je rozbor mnohem složitější. https://vk.com/tibber
Symetrické kryptosystémy | |
---|---|
Streamové šifry | |
Síť Feistel | |
Síť SP | |
jiný |