190 likes | 321 Views
Úvod do klasických a moderních metod šifrování. Jaro 20 12 , 6 . přednáška. Vz dálenost jednoznačnosti. Všechny klasické šifry (s jedinou výjimkou Vernamovy šifry) mají tu vlastnost, že čím delší je šifrový text, tím snazší je šifru rozluštit. Shannonova teorie vysvětluje, proč tomu tak je.
E N D
Úvod do klasických a moderních metod šifrování Jaro 2012, 6. přednáška
Vzdálenost jednoznačnosti • Všechny klasické šifry (s jedinou výjimkou Vernamovy šifry) mají tu vlastnost, že čím delší je šifrový text, tím snazší je šifru rozluštit. • Shannonova teorie vysvětluje, proč tomu tak je. • Intuitivně můžeme posoudit, proč delší šifrový text poskytuje více informací o otevřeném textu. • Použijeme-li jednoduchou záměnu, pak ze šifrového textu o délce jednoho písmene U nemůžeme usoudit vůbec nic o příslušném otevřeném textu. • Ze šifrového textu o dvou písmenech UV už můžeme usoudit, že příslušný otevřený text není složený ze dvou stejných písmen. • Máme-li smysluplný otevřený text v přirozeném jazyce o délce dejme tomu 500 písmen, pak si lze těžko představit, že by mohla existovat nějaká permutace písmen, která by jej opět proměnila v jiný smysluplný text v otevřeném jazyce. • Proto k šifrovému textu o 500 písmenech může existovat nejvýše jeden smysluplný text v přirozeném jazyce, který nějakou jednoduchou záměnou vede k tomuto šifrovému textu. • Nejmenší délka šifrového textu, ke kterému existuje jednoznačně určený smysluplný otevřený text, se nazývá vzdálenost jednoznačnosti. • Vzdálenost jednoznačnosti je pro každou šifru jiná.
Entropie • Shannonova teorie dává metodu, jak spočítat vzdálenost jednoznačnosti pro konkrétní šifru. • Základem Shannonovy teorie je pojem entropie. • Entropie zhruba řečeno vyjadřuje, kolik informace je v nějaké zprávě. • Máme-li v dotazníku vyplnit rubriku pohlaví, odpověď ženské nebo mužské obsahuje informaci velikosti jednoho bitu, nikoliv 48 bitů, kolik potřebujeme k jejímu zápisu pomocí ASCII kódu. • Tuto informaci totiž můžeme také zakódovat jako 0 - mužské, 1 - ženské. • Informaci o velikosti jednoho bitu ovšem nese pouze v případě, že ji pokládáme v situaci, kdy o pohlaví dotazované osoby předem nic nevíme. • Na setkání dobrovolnic armády spásy nám neposkytne informaci vůbec žádnou.
Matematická definice entropie • Předpokládáme, že máme nějaký zdroj zpráv X, který může vydávat zprávy x1, x2, … , xn . • Pravděpodobnost, že zdroj X vydá zprávu xi si označíme pi . • Entropii zprávy ze zdroje X definujeme jako číslo H(X) = Σi=1,…,n- pi log2 (pi) . • Číslo - log2 (pi) je počet bitů, který je třeba k optimálním zakódovánízprávy xi . • Optimální zakódování je takové kódování, které potřebuje nejmenší možný počet bitů k zakódování všech zpráv ze zdroje X. • Optimální zakódováníbere v úvahu pravděpodobnostipijednotlivých zpráv zdroje X. • Příklady. Jakou entropii má zdroj, který vysílá dvě zprávy x1, x2, každou s pravděpodobností 1/2 ? • Zdroj se dvěma zprávami x1, x2, jednou s pravděpodobností 0,1, druhou s pravděpodobností 0,9 ? • Zdroj s jednou zprávou x1 s pravděpodobností1 ? • Zdroj se třemi zprávami x1, x2, x3s pravděpodobnostmi 1/2, 1/4, 1/4 ? • Zdroj se třemi zprávami x1, x2, x3s pravděpodobnostmi 3/4, 1/8, 1/8 ?
Maximální entropie, obsažnost jazyka • Předpokládejme, že zdroj zpráv vydává zprávy délky k bitů, všechny se stejnou pravděpodobností. • Zpráv je tedy celkem 2k a každá má pravděpodobnost 2-k . • Entropie tohoto zdroje je potom Σi=1,…, 2k (- pi )log2 (pi) = 2k(-2-k)log2 (2-k) = k . • Každá zpráva z takového zdroje tak nese informaci k bitů. • Obsažnost jazyka pro zprávy délky N definujeme jako průměrnou entropii na jeden znak zprávy, tj. jako číslo RN = H(X) / N . • Má-li jazyk zpráv L stejně pravděpodobných znaků a všechny zprávy jsou stejně pravděpodobné, pak entropie zdroje zpráv délky N v tomto jazyce je LN ( - L-N ) log2 (L-N) = Nlog2 L a obsažnost jazyka zpráv pro zprávy délky N je tedy log2 L . • To je maximální možná obsažnost jazyka o L stejně pravděpodobných znacích. Označíme si ji R . • Přirozený jazyk jí nedosahuje.
Obsažnost a nadbytečnost jazyka • Nedosahuje jí ze dvou důvodů. • Jednotlivá písmena nejsou stejně pravděpodobná. • Různé posloupnosti písmen délky N také nejsou stejně pravděpodobné. • Proto prodloužíme-li zprávu Kdyby na mě hajný přišel, on by mně to všech o jedno písmeno, rozhodně tím nezvýšíme entropii této zprávy o log2 L bitů, spíš o žádný. • S rostoucím N obsažnost přirozeného jazyka pro zprávy délky N klesá. • V limitě se blíží nějaké konstantě r . • Tuto konstantu r nazýváme obsažnost jazyka vzhledem k jednomu znaku . • Ta udává, kolik bitů informace v průměru nese jeden znak jazyka. • Rozdíl D = R – r pak nazýváme nadbytečnost jazyka vzhledem k jednomu písmenu. • Pro angličtinu platí L = 26, R = log2 L = 4,7, r = 1,5, D = 3,2 . • Poměr D / R udává v procentech, kolik bitů jazyka je nadbytečných.
Výpočet vzdálenosti jednoznačnosti • Aplikace na maturitní test z angličtiny. • Mějme množinu zpráv P velikostiP, množinu šifrových textů C velikosti C a množinu klíčů K velikosti K. Entropii zdroje klíčů označíme H = H(K ) . • V množině P je celkem 2RN zpráv délky N , z nichž je pouze 2rN smysluplných zpráv a 2RN -2rN nesmysluplných zpráv. • Náhodně zpráva délky N je tedy smysluplná s pravděpodobností 2rN /2RN= 2(r-R)N . • Provedeme-li dešifrování šifrového textu c pomocí všech 2H klíčů, dostaneme 2H různých zpráv. • Z nich je v průměru pouze S = 2H 2(r-R)N = 2H-DN smysluplných zpráv. • Abychom dostali pouze jednu smysluplnou zprávu, musí být S = 1, tj. H-DN = 0, jinak řečeno N = H / D . • Pro jednoduchou záměnu je počet klíčů rovný 26!, entropie prostoru klíčů je tedy H = log2 26! = 88,3 . Protože nadbytečnost angličtiny je D = 3,2 , je vzdálenost jednoznačnosti 88,3 / 3,2 = 27,6 písmen.
Obecné proudové šifry • Z hlediska použití klíče ke zpracování otevřeného textu rozeznáváme dva základní druhy šifer. • Bloková šifra šifruje najednou bloky (řetězce) délky t znaků. • Blokové šifry zpracovávají (šifrují) každý blok otevřeného textu za použité stejné šifrovací funkce ek, kdek je šifrovací klíč. • Proudová šifra šifruje každý znak abecedy otevřeného textu zvlášť. • Proudové šifry napřed z klíče k vygenerují posloupnost klíčů h1, h2,…,hn ( této posloupnosti se říká proud klíče, anglicky running key, key stream) a poté šifruje jednotlivé znaky otevřeného textu za pomoci různých šifrovacích transformací eh1, eh2, … , ehn .
Schéma proudových šifer Toto je obecné schéma šifrování a dešifrování u proudových šifer. U moderních proudových šifer je proudem klíče posloupnost bitů, otevřený text je také zakódován jako posloupnost bitů, a operací pro šifrování a dešifrování je xor příslušného bitu otevřeného textu s odpovídajícím bitem proudu klíče. U moderních proudových šifer se algoritmus pro výpočet proudu klíče nastavuje pomoci inicializačního vektoru, který se předává otevřeně.
Proudová šifra RC4 • Navrhnul Ron Rivest pro firmu RSA roce 1987. • Nepoužívá inicializační vektor, čili klíč se musí pro každé spojení generovat nový a dopravit druhé straně pomocí nějaké asymetrické metody. • Šifra nebyla nikdy oficiálně publikována, ale nějaký neznámý hacker ji získal pomocí reverse engineering z assemblerového programu společnosti RSA a zveřejnil ji. • Hackerova verze je známa pod jménem Arcfour. • Šifra má volitelnou délku klíče, nejčastěji používané jsou klíče délky 40 a 128 bitů. • Z klíče se vyrobí permutace na množině { 0,1,…,255}, čili na množině všech bajtů. • Začneme s identickou permutací. • Poté permutaci mícháme pomocí nějaké posloupnosti r = r0,r1,…,r255 čísel 0,1,…,255 .
Tvorba náhodné permutace z r Vi –tém kroku generování permutace P prohodíme vždy prvky Pi a Pri . Tuto myšlenku poněkud zesložitěnou pak algoritmus RC4 využívá ke generování proudu klíče.
Šifra A5 • Používá se v mobilních sítích k šifrování komunikace mezi telefonem a základovou stanicí. • Ani specifikace této šifry nebyla nikdy publikována. • Šifra produkuje vždy 228 bitů proudu klíče, 114 bitů se používá pro šifrování komunikace od telefonu k základové stanici a 114 bitů pro šifrování komunikace v opačném směru. • Tajný klíč je uložen na SIM kartě telefonu. • Při každém spojení se sítí je z tajného klíče na SIM kartě a z náhodné výzvy o 128 bitech během autentizace vygenerován klíč Kc pro šifru A5. • Z tohoto klíče je pak vygenerováno 228 bitů proudu klíče.
Synchronní šifry • Proudové šifry se používají v případech, kdy šifrovací zařízení má omezenou paměť na průchozí data. • Jinou výhodou proudových šifer je malá propagace chyby. • Pokud vznikne v komunikačním kanálu chyba v jednom znaku šifrového textu, projeví se tato chyba po dešifrování pouze v odpovídajícím znaku otevřeného textu. • U blokové šifry má vliv na celý blok znaků otevřeného textu. • Pokud proud hesla nezávisí na otevřeném ani na šifrovém textu, hovoříme o synchronní šifře. • V tomto případě musí být odesílatel i příjemce synchronizováni, protože výpadek jednoho znaku šifrového textu naruší veškerý následující text.
Asynchronní šifry • Asynchronní šifry, také se jim říká samosynchronizující šifry,umí takovou chybu eliminovat. • Toho se docílí například tím, že proud klíče je generován pomocí původního tajného klíče a n předchozích znaků šifrového textu. • V takovém případě se výpadek některého znaku šifrového textu projeví po dešifrování pouze na celkem n po sobě jdoucích znacích otevřeného textu.
Blokové šifry Obecné schéma blokových šifer Otevřený text se rozdělí do bloků stejné délky a každý z nich se šifruje zvlášť za použití stejného klíče k . Klasická polyalfabetická šifra a transpoziční šifra jsou příklady blokových šifer.
DES – Data encryption standard • Jde o nejpoužívanější šifru na světě. • Je výsledkem veřejné soutěže v roce 1977. • Délka klíče je 56 bitů, což už v době vzniku bylo považováno za nepříliš bezpečné. • Tuto délku klíče do původního návrhu IBM vnesla National Security Agency. • Jde o iterovanou šifru, kdy je původní blok otevřené zprávy postupně šifrován pomocí šifrovacích zobrazení Ek(1) , Ek(2) ,…, Ek(16) . • Délka bloku je 64 bitů. • Jednotlivá šifrování se nazývají runda. • Původní klíč délky 56 bitů je expandován na 16 rundovních klíčů k(1), k(2),…,k(16), každý délky 48 bitů.
Základní schéma DES IP je nějaká permutace na 64 bitech. Blok o 64 bitech se rozdělí na levou a pravou polovinu délky 32 bitů.
Rundovní funkce Toto je schématické znázornění rundovní funkce. E je expanzní funkce, která z posloupnosti 32 bitů udělá 48 bitů. S – boxy nelineárně transformuji šestice bitů ve čtveřice bitů. P je permutace na 32 bitech.
AES – Advanced encryption standard • V roce 1997 byla vyhlášena celosvětová soutěž na návrh blokové šifry nové generace. • Přihlásilo se 15 účastníků. • Jako vítěz byla šifra navržená belgickými kryptology V. Rijmenem a J. Daemenem. • Je založena na šifrovacím algoritmu Rijndael. • Délka bloku je 128 bitů. • AES podporuje tři délky klíčů – 128, 192 a 256 bitů. • Vzdálenost jednoznačnosti pro AES se spočte následovně. • Jeden znak otevřeného textu v angličtině je reprezentován jedním bajtem. Každý znak nese informaci 1,5 bitu, čili nadbytečnost D je v tomto případě 6,5 bitu na jeden bajt. • Vzdálenost jednoznačnosti je v případě AES šifrující anglický otevřený text délkou klíče 128 bitů N = H / D = 128 / 6,5 = 19,7 bajtů otevřeného textu, o něco málo více než jeden blok (jeden blok má 16 bajtů).