Králičí

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 12. listopadu 2018; kontroly vyžadují 6 úprav .

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

Králík a eStream [4]

Soutěž eStream

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

Přednosti a nedostatky králičí šifry

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

Algoritmus

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čů.

Diagram nastavení stavu

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.

Funkce dalšího stavu

Zde jsou všechny doplňky modulo 2 32 . Funkce a vracejí dolní a horní čtyři bajty 64bitového čísla ,  - cyklický posun doleva.

Počítací systém

Rovnice, které specifikují změnu v systému čítačů:

kde počet bitů přenosu je dán

Konstanty jsou také definovány jako

Schéma extrakce

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.

Schéma šifrování a dešifrování

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.

Vlastnosti schématu nastavení klíče

Instalaci klíče lze rozdělit do tří fází: rozšíření klíče, iterační systém, úprava čítače.

Zabezpečení

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

Útoky na funkci zřízení klíče

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í útok

Krá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.

Částečný Key Guess Attack

Hádej a ověř útok

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či

Podstatou 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í:

  1. Rozděluje 32bitový čítač a 32bitovou stavovou proměnnou na 8bitové proměnné.
  2. Píše systém rovnic, které modelují změnu čítačů a stavových proměnných, a výstupní data. Výsledkem je 160 rovnic a 160 neznámých.
  3. Vyřeší tento systém tím, že uhodne co nejvíce neznámých.

Úč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í.

Algebraické útoky

Algebraicky normální tvar (ANF) g-funkce

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 šifru

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

Korelační útoky

Lineární aproximace

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 řádu

Odří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

Poznámky

  1. M. Boesgaard, M. Vesterager, T. Pedersen, J. Christiansen, O. Scavenius. Králík: Vysoce výkonná proudová šifra. Proč. FSE 2003. Springer LNCS 2887, pp. 307-329 ( PDF )
  2. M. Boesgaard, T. Pedersen, M. Vesterager, E. Zenner. The Rabbit Stream Cipher - Design a bezpečnostní analýza. Proč. SASC 2004. ( PDF Archivováno 17. května 2011 na Wayback Machine )
  3. Phorum :: ECRYPT fórum :: Králík se stává veřejnou doménou . Získáno 18. prosince 2010. Archivováno z originálu 30. června 2009.
  4. Portfolio eSTREAM Steve Babbage, Christophe De Canni`ere, Anne Canteaut, Carlos Cid, Henri Gilbert, Thomas Johansson, Matthew Parker, Bart Preneel, Vincent Rijmen a Matthew Robshaw6 ( PDF archivováno 13. srpna 2012 na Wayback Machine )
  5. Christophe De Cannière, Joseph Lano a Bart Preneel , „Comments on the Rediscovery of Time Memory Data Tradeoffs“, 2005. ( PDF archivováno 6. července 2015 na Wayback Machine )

Odkazy