200 likes | 286 Views
Úvod do klasických a moderních metod šifrování. Jaro 2008, 6 . přednáška. Definice. Šifrovací systém je uspořádaná pětice ( P ,C ,K ,E ,D ), kde a) P je konečná množina otevřených textů, b) C je konečná množina šifrových textů, c) K je konečná množina klíčů,
E N D
Úvod do klasických a moderních metod šifrování Jaro 2008, 6. přednáška
Definice Šifrovací systém je uspořádaná pětice (P ,C ,K ,E ,D), kde a) P je konečná množina otevřených textů, b) C je konečná množina šifrových textů, c) K je konečná množina klíčů, d) E = {eK : KprvkemK}, kde eK: P → C je šifrovací funkce (algoritmus) pro každý prvek K množiny klíčůK , e) D = {dK : KprvkemK}, kde dK: C → P je dešifrovací funkce (algoritmus) pro každý prvek K množinyK , pro které platídK(eK(x)) = x pro každý otevřený text x z množiny P a každý klíč Kz množinyK .
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, 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) a poté šifruje jednotlivé znaky otevřeného textu za pomoci různých šifrovacích transformací ek1, ek2, … , ekn .
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ějaqké 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 synchornizová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 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ů).