Trivium (šifra) - Trivium (cipher)

Struktura trivia

Trivium je synchronní proudová šifra navržen tak, aby poskytoval flexibilní kompromis mezi rychlostí a počet bran v hardwaru a přiměřeně efektivní implementaci softwaru.

Trivium bylo odesláno do profilu II (hardware) eSTREAM soutěž jeho autorů, Christophe De Cannière a Bart Preneel, a byl vybrán jako součást portfolia pro nízkoplošné hardwarové šifry (profil 2) projektem eSTREAM. Není patentován a byl specifikován jako mezinárodní norma podle ISO / IEC 29192-3.[1]

Generuje až 264 bity výstupu z 80 bitů klíč a 80-bit IV. Je to nejjednodušší účastník eSTREAMu; i když vykazuje pozoruhodnou odolnost vůči dešifrování pro svou jednoduchost a výkon, nedávné útoky nechávají bezpečnostní rezervu vypadat poněkud štíhle.

Popis

288bitový vnitřní stav Trivium se skládá ze tří posuvné registry různých délek. V každém kole se bit posune do každého ze tří posuvných registrů pomocí nelineární kombinace odboček z tohoto a jednoho dalšího registru; vyprodukuje se jeden bit výstupu. Pro inicializaci šifry jsou klíč a IV zapsány do dvou posuvných registrů, přičemž zbývající bity začínají pevným vzorem; stav šifry je poté aktualizován 4 × 288 = 1152krát, takže každý bit vnitřního stavu závisí na každém bitu klíče a IV komplexním nelineárním způsobem.

Na prvních 65 bitech každého posuvného registru se neobjeví žádná klepnutí, takže každý nový stavový bit se nepoužívá, dokud se nevygeneruje alespoň 65 kol. To je klíč k výkonu a flexibilitě softwaru Trivium v ​​hardwaru.

Specifikace

Trivium lze specifikovat velmi stručně pomocí tří rekurzivních rovnic.[2] Každá proměnná je prvkem GF (2); mohou být reprezentovány jako bity, přičemž „+“ je XOR a „•“ bytí A.

  • Ai = Ci−66 + Ci−111 + Ci−110Ci−109 + Ai−69
  • bi = Ai−66 + Ai−93 + Ai−92Ai−91 + bi−78
  • Ci = bi−69 + bi−84 + bi−83bi−82 + Ci−87

Výstupní bity r0 ... r264−1 jsou pak generovány

  • ri = Ci−66 + Ci−111 + Ai−66 + Ai−93 + bi−69 + bi−84

Vzhledem k 80bitovému klíči k0 ... k79 a l-bit IV proti0 ... protil−1 (kde 0 ≤ l ≤ 80), Trivium se inicializuje takto:

  • (A−1245 ... A−1153) = (0, 0 ... 0, k0 ... k79)
  • (b−1236 ... b−1153) = (0, 0 ... 0, proti0 ... protil−1)
  • (C−1263 ... C−1153) = (1, 1, 1, 0, 0 ... 0)

Velké záporné indexy na počátečních hodnotách odrážejí 1152 kroků, které je nutné provést před vytvořením výstupu.

Mapovat proud bitů r do proudu bajtů R, používáme mapování little-endian Ri = Σj=0 ... 7 2j r8i+ j.

Výkon

Pro přímou hardwarovou implementaci Trivium by bylo použito 3488 logické brány a vyprodukovat jeden bit za taktovací cyklus. Protože se však každý stavový bit nepoužívá po dobu nejméně 64 kol, lze 64 bitů stavu generovat paralelně při mírně vyšších nákladech na hardware o 5504 bran. Rovněž jsou možné různé kompromisy mezi rychlostí a oblastí.

Stejná vlastnost umožňuje efektivní implementaci bitslice v softwaru; testování výkonu do eSTREAM dát hromadné rychlosti šifrování kolem 4 cykly / bajt na některých x86 platformy, které se dobře srovnává s 19 cykly / bajty AES referenční implementace na stejné platformě.

Bezpečnostní

[Trivium] bylo navrženo jako cvičení při zkoumání toho, jak daleko lze proudovou šifru zjednodušit, aniž by byla obětována její bezpečnost, rychlost nebo flexibilita. I když je pravděpodobné, že jednoduché návrhy budou náchylné k jednoduchým a možná i zničujícím útokům (což je důvod, proč v této fázi důrazně nedoporučujeme používat Trivium), určitě vzbudí větší důvěru než složitá schémata, pokud přežijí dlouhé období veřejného života kontrola navzdory jejich jednoduchosti.[3]

Od dubna 2015, žádné kryptoanalytické útoky lepší než útok hrubou silou jsou známy, ale několik útoků se blíží. The krychlový útok vyžaduje 268 kroky k rozbití varianty Trivium, kde je počet inicializačních kol snížen na 799.[4] Dříve jiní autoři spekulují, že tyto techniky by mohly vést k přerušení 1100 inicializačních kol, nebo „možná i původní šifře“.[5] Toto navazuje na útok způsobený Michaelem Vielhaberem, který rozbije 576 inicializačních kol pouze za 212.3 kroky.[6][7]

Další útok obnoví vnitřní stav (a tedy klíč) plné šifry kolem 289.5 kroky (kde každý krok představuje zhruba cenu jednoho pokusu při vyčerpávajícím hledání).[8] Redukované varianty trivia využívající stejné konstrukční principy byly rozbity technikou řešení rovnic.[9] Tyto útoky vylepšují známý časoprostorový kompromisní útok na šifry streamů, který by s 288bitovým interním stavem Trivium trval 2144 kroky a ukazují, že varianta na Trivium, která neprovedla žádnou změnu kromě zvýšení délky klíče nad 80 bitů nařízených eSTREAM Profil 2, by nebyla bezpečná. Pomocí optimalizované strategie řešení je dále možné snížit složitost obnovy stavu na 2132 kroky.[10]

Podrobné odůvodnění návrhu Trivia je uvedeno v.[11]

Reference

  1. ^ ISO / IEC 29192-3: 2012
  2. ^ eSTREAM Phorum, 20. 2. 2006
  3. ^ Christophe De Cannière, Bart Preneel (2005-04-29). "Specifikace trivia" (PDF). eSTREAM zaslal příspěvky. Citováno 2006-10-09. Citovat deník vyžaduje | deník = (Pomoc)
  4. ^ Fouque, Pierre-Alain; Vannet, Thomas (04.04.2015). „Vylepšení obnovy klíčů na 784 a 799 kol trivia pomocí optimalizovaných útoků na kostky“ (PDF). Archiv kryptologie ePrint. ePrint 20150406: 231124. Citováno 2015-04-17. Citovat deník vyžaduje | deník = (Pomoc)
  5. ^ Dinur, Itai; Shamir, Adi (2008-09-13). „Cube Attacks on Tweakable Black Box Polynomials“ (PDF). Archiv kryptologie ePrint. ePrint 20080914: 160327. Citováno 2008-12-04. Citovat deník vyžaduje | deník = (Pomoc)
  6. ^ Michael Vielhaber (2007-10-28). „Breaking ONE.FIVIUM by AIDA an Algebraic IV Differential Attack“.
  7. ^ Michael Vielhaber (2009-02-23). „Shamirův„ krychlový útok “: Remake AIDA, diferenciální útok Algebraic IV“ (PDF).[trvalý mrtvý odkaz ]
  8. ^ Alexander Maximov, Alex Biryukov (2007-01-23). „Dva triviální útoky na trivium“ (PDF ). Kryptologie ePrint. Citovat deník vyžaduje | deník = (Pomoc) (Tabulka 6, strana 11)
  9. ^ Håvard Raddum (2006-03-27). "Kryptanalytické výsledky na Trivium" (PostScript ). eSTREAM zaslal příspěvky. Citováno 2006-10-09. Citovat deník vyžaduje | deník = (Pomoc)
  10. ^ Pavol Zajac (01.08.2012). „Řešení booleovských rovnic založených na triviu pomocí metody úsudků“. IOS Press. Citovat deník vyžaduje | deník = (Pomoc)
  11. ^ Christophe De Cannière, Bart Preneel (2006-01-02). „Trivium - konstrukce proudové šifry inspirovaná principy návrhu blokové šifry“ (PDF). eSTREAM zaslal příspěvky. Citováno 2006-10-09. Citovat deník vyžaduje | deník = (Pomoc)

externí odkazy