Úvod do kryptografie Tomáš Dvořák
ryptologie κρνπτοσ (skrytý) a λογοσ (věda), tedy věda o šifrování s dešifrování zpráv Kryptografie - teoretické aspekty navrhování šifrovacích metod Kryptologie - metody, jak takové šifry rozluštit.
ormulace problému Alice Bob
ubstituční metoda n-tý znak abecedy n+k-tý znak abecedy k = 3 Caesarova šifra a b c d e f g h i j k l m n o p q r s t u v w x y z d e f g h i j k l m n o p q r s t u v w x y z a b c důvěra gxyhud Snadné prolomení šifry: stačí vyzkoušet všechna možná posunutí obecnější substituce permutace abecedy
ymetrická kryptografie jeden tajný klíč šifrování i dešifrování jednorázová šifra ( one-time pad ) zpráva x : bitový řetězec klíč k : bitový řetězec téže délky šifrování: x k bitová nonekvivalence
ednorázová šifra příklad x k k 0011 0101 = 0110 0101 = 0011 šifrování dešifrování
ezpečnost jednorázové šifry Dešifrování probíhá stejně jako šifrování, protože (x k) k = x Ze zašifrované zprávy nelze odvodit obsah bez znalosti klíče: Známe-li x k a x, známe též x (x k)= k Problém: délka klíče
symetrická kryptografie Systém s veřejným klíčem (W.Diffie,M.Hellman,R.Merkle,1976) veřejný V soukromý vu x šifruje V V(x) dešifruje S obdrží S(V(x)) = x
ednosměrné funkce f: * * je jednosměrná funkce, pokud (i) f je prostá a existuje konstanta k > 0 tak, že x 1/k f(x) x k pro každé x (ii) funkce f je vyčíslitelná v polynomiálně omezeném čase, (iii) inverzní funkce f -1 není vyčíslitelná v polynomiálně omezeném čase.
říklady jednosměrných funkcí f mult (p,q) = p q pro prvočísla p,q f mult -1 : problém faktorizace na prvočinitele f exp (p,r,x) = r x mod p pro prvočíslo p, 0<x<p, generátor r grupy Z p * f exp -1 : problém diskrétního logaritmu (iii) (iii ) není znám polynomiální algoritmus pro výpočet f 1 (iv) neexistuje algoritmus, který by pro nějaké přirozené k v čase O(n k )určil hodnoty f 1 (y) pro alespoň n /n k řetězců y délky n.
lastnost padacích dvířek trapdoor function) v) prvky definičního oboru funkce f lz ektivně generovat ) existuje funkce, vyčíslitelná v polynomiálním se, s jejíž znalostí je f -1 výpočet hodnoty iviální.
ifrování založené na problému atohu (R.Merkle,M.Hellman,1978) Problém batohu Vstup: přirozená čísla a 1,a 2,, a n Otázka: Existuje (x 1,x 2,, x n ) {0,1} n tž. x i a i = S? NP-úplný problém Posloupnost a 1,a 2,, a n je superrostoucí, pokud a i > a 1 +a 2 + + a i-1 pro každé i {1,,n} Existuje efektivní algoritmus pro problém batohu se superrostoucí posloupností!
enerování klíčů a šifrování Vygeneruj superrostoucí posloupnost a 1,a 2,, a n a dvě nesoudělná přirozená čísla u,v tak, že u > x i a i Spočti b i = v a i mod u pro každé i V = (b 1,b 2,, b n ) S = (u,v,a 1,a 2,, a n ) x 1, x 2,, x n V(x 1, x 2,, x n ) = b i x i
ešifrování Spočítej v -1 splňující v v -1 mod u =1 S(V(x 1,x 2,, x n )) = řešení batohu velikosti v -1 V(x 1,x 2,, x n ) mod u s předměty (a 1,a 2,, a n ) Proč? v 1 V ( ) 1 x = 1, K, xn modu v = n i 1 b x i i modu = v 1 = n = n 1 va = = ixi modu v 1 = i 1 i a i x i modu n i 1 va i x i modu =
ryptografický systém RSA R.Rivest, A.Shamir, L.Aldeman (1978) Vygeneruj tři velká prvočísla, největší označ s, zbylá p,q. Spočti n = p q Spočti v tak, aby v s mod (p-1)(q-1) = 1 V = (v,n) S = (s,n)
ifrování a dešifrování x, x < n V(x) = x v mod n S(y) = y s mod n Bezpečnost : složitost problému rozkladu na prvočinitele
andomizovaná verze RSA = jediný bit b x := random(1, n/2 ) odeslat zašifrovanou hodnotu y = 2x+b V(2x+b) S(V(2x+b))=2x+b poslední bit b
ryptografické protokoly Kryptografický protokol = množina pravidel pro výměnu informací, zaručující ochranu proti podvodu jedné z komunikujících stran či třetí osoby. Alice Bob veřejný V A soukromý S A veřejný V B soukromý S B
právy s doručenkou Alice chce mít jistotou, že její zpráva pro Boba byla skutečně doručena adresátovi v původním stavu. vu x šifruje V B epíše ruje S A troluje x V B (x);a V A (x);b dešifruje S B přečte x apodpisa zprávu x šifruje a podepíše
e protokol bezpečný? V B (x);a V B (x);p dešifruje S B přečte x apodpis P zprávu x šifruje podepíše a odešle P V A (x);b V P (x);b šifruje S A ontroluje x
ezpečný protokol Alice opatří zprávu x svým podpisem A, zašifruje Bobovým veřejným klíčem a výsledek V B (x,a) odešle adresátovi. Bob obdrženou zprávu dešifruje svým soukromým klíčem S B, extrahuje původní zprávu x, opatří ji svým podpisem B, zašifruje veřejným klíčem Alice a výslede V A (x,b) jí pošle zpět. Alice dešifruje obdržené potvrzení svým soukromým klíčem S B, extrahuje x a srovnáním s původní zprávou ověří, zdali byla zpráva doručena Bobovi v původním stavu.
lastnosti protokolu Alice má garanci, že komunikuje s Bobem: Nikdo jiný nepřečte zprávu, šifrovanou V B Bob nemá žádnou záruku, že komunikuje s Alicí!
igitální podpis Šifrování: potřebujeme S A (V A (x)) = x Podpis: potřebujeme V A (S A (x)) = x rávu x šifruje S A řipojí jako podpis x;s A (x) V A dešifruje podpis S A (x) výsledek srovná se zprávou x
lastnosti digitálního podpisu Bob má nejen jistotu, že zpráva skutečně pochází od Alice, ale též garanci toho, že zpráva nebyla během přenosu změněna. Je-li třeba zaručit důvěrnost, může být navíc celý dokument šifrován Bobovým veřejným klíčem. Bob ji pak po obdržení nejprve dešifruje svým soukromým klíčem. Dvojnásobná délka dat hašovací funkce místo S A (x) S A (h(x)) rychlý výpočet h(x) pro dané y obtížné nalezení x tž. y = h(x)
rotokoly s nulovou informací Alici se podařilo obarvit vrcholy velkého grafu třemi barvami tak, že žádné dva sousední vrcholy nejsou obarveny stejnou barvou. Jak přesvědčí Boba o korektnosti svého výsledku, aniž by mu poslala celé řešení, které by Bob případně mohl zneužít a vydávat za své vlastní?
rotokol: Alice Obarvení b:v {00,01,11} Alice generuje náhodnou permutaci π({00,01,11}) pro každý vrchol i V vygeneruje veřejný a soukrom RSA klíč (V i,s i ) randomizovaným RSA zašifruje barvu tohoto vrcho π(b(i)) obdrží zašifrované bity y i,y i Bobovi zašle (V i,y i,y i ) pro každé i.
rotokol: pokračování Bob náhodně vybere hranu {i,j} E a zašle Alici. Alice obratem vrátí soukromé klíče S i, S j Bob dešifruje barvy vrcholů π(b(i))=s i (y i ) a π(b(j))=s j (y j ) a prověří, zdali jsou skutečně různé. Opakuje se k E - krát, k kde k je zvolená spolehlivost protokolu
o když Alice podvádí? Pak v každém kroku existuje hrana s koncovým vrcholy obarvenými stejně, kterou Bob odhalí s pravděpodobností alespoň 1/ E. Po k E krocích zjistí Bob, že obarvení není korektní, s pravděpodobností alespoň 1 1 1 1 E k E 1 e k
íťový poker Každý hráč si z balíčku tří karet náhodně vybere jednu, vyšší hodnota vyhrává. Karty = 3 různá n-bitová přirozená čísla a < b < c velké prvočíslo p Každý hráč si dále vygeneruje dvě přirozená čísla = tajné klíče E A D A E B D B 1 (mod p-1) šifrovací E A dešifrovací D A šifrovací E B dešifrovací D B
ak se rozdává? lice rozdává, a posílá tedy Bobovi zašifrované karty E A mod p, b E A mod p,c E A mod p v nějakém náhodném pořadí. ob vybere jednu kartu a vrátí ji Alici, která ji dešifruje uloží jako svoji kartu. Nechť je to karta b. ob zašifruje zbylé karty a E AE B mod p, c E AE B mod p a pošle ejich náhodnou permutaci Alici. lice vybere jednu ze dvou obdržených karet, řekněme E A E B mod p, dešifruje ji svým klíčem D A a výsledek E A E B D A mod p = c E B pošle Bobovi. ob dešifruje c a uloží ji jako svoji kartu. ak vítěz přesvědčí druhého hráče, že opravdu vyhrál?
ryptografie v praxi.net Framework Assembly = logický balíček tvořený manifestem jedním či více moduly (.exe,.dll,.netmodule apod.) zdroji (resources) Obdoba DLL knihovny
ssembly - příklad Hodiny.netmodule Priklad2.exe manifest MSIL kód metadata MSIL kód Datum.netmodule metadata MSIL kód
nstalace v.net Klasická instalace kopírování souborů do aplikačních adresářů kopírování souborů do systémových adresářů registrace v systémovém registru Problémy odstranění aplikace zpětná kompatibilita sdílených komponent ( DLL Hell ) Sdílené assembly v.net např. knihovny Base Class Library, Windows Forms do Global Assembly Cache,např. \WinNT\Assembly
v prohlížeči
dílená jména využívají kryptografii s veřejným klíčem manifest obsahuje s odkazem na soubor v assembly též jeho otisk
dílená jména otisk obsahu manifestu je digitálně podepsán soukromým klíčem a připojen k manifestu veřejný klíč uložen do manifestu sdílené jméno=jméno assembly+veřejný klíč Protože veřejný klíč má délku 160B, v odkazech se používá jen Public Key Token = posledních 8B otisku veřejného klíče
lektronický podpis v praxi Zákon o elektronickém podpisu, který byl přijat parlamentem ČR v r. 2000 (v r. 2002 novelizován) dal digitálně podepsaným elektronickým dokumentům právní sílu. Akreditovaní poskytovatelé certifikačních služeb v ČR = {I.CA}
rojekty využívající EP MPSV : informačního systému státní sociální podpory MF : podání přiznání DPH, daně silniční, daně z nemovitosti daň z příjmu fyzických i právnických osob Elektronický obchod B2C, B2B Elektronické bankovnictví Zdravotnictví: projekt Portál ZP pro smluvní zdravotnická zařízení
roblémy Popište efektivní algoritmus, který vyřeší problém batohu se perrostoucí posloupností. Podle tzv. Bezoutovy rovnosti pro každá dvě přirozená čísla m,n istují jednoznačně určená celá čísla p,q, splňujíc SD(m,n)=pm + qn. Zobecněte známý Euklidův algoritmus pro jvětšího společného dělitele tak, aby nalezl i čísla p a q. Využijte řešení předchozí úlohy k návrhu efektivního algoritmu erý pro daná nesoudělná přirozená čísla u a v určí přirozené číslo 1 splňující v v -1 mod u =1. Dokončete protokol síťového pokeru. Jak oba hráči vylož rty, aby žádný z nich nemohl podvádět?
iteratura B.Schneier: Applied cryptography: protocols, algorithms, and source code in C. Wiley, New York 1996. Ron Rivest s Cryptography Page, http://theory.lcs.mit.edu/~rivest/crypto-security.html J.Peterka: Elektronický podpis, e-archiv J.Peterky, http://www.earchiv.cz/i_digsig.php3