Kryptografie Doc. Ing. Cyril Klimeš, CSc. 1
Proč kryptografie již pro žáky základních a středních škol? Současná informatika se bez kryptografie neobejde. Základní znalosti jsou použitelné i v jiných oblastech. Jsou to mnohdy zábavné teorie a jejich využití v praxi. Správné využití umožní bezpečnější provoz počítačových systémů a jejich aplikací. 2
Kurz Základy kryptografie pro učitele Seznámení s obsahem kurzu, zopakování matematických základů, potřebných pro objasnění algoritmů šifrování. Historické algoritmy, y,jednoduché příklady šifrování Moderní algoritmy šifrování Šifrování s veřejnými klíči metoda RSA Kryptografie v bezpečnosti informačních systémů Využití kryptografie Ukázky kryptografických aplikací z běžného života a prezentace praktického využití ve výuce, diskuse 3
Základní pojmy Kryptologie = Kryptografie + Kryptoanalýza Kryptografie - nauka o metodách šifrování Kryptoanalýza -metody luštění šifer kryptologie kryptografie kryptoanalýza zabývá se návrhem šifrovacích systémů zabývá se odhalováním 4 slabin v šifrovacích systémech
Základní schema Odesilatel Klíč (způsob šifrování) zpráva Posel Šifrovací algoritmus (metoda) Odposlech Alskdôlalkjda Adkljhalkdjlkj Adlkjlakdj Kldjalkj Adôj Dadae dasf Komunikační kanál Příjemce Alskdôlalkjda Adkljhalkdjlkj Adlkjlakdj Kldjalkj Adôj Dadae dasf dešifrovací algoritmus zpráva 5
Cíle kryptografie důvěrnost (confidentiality) - též bezpečnost - jedná se o udržení obsahu zprávy v tajnosti. celistvost dat (data integrity) - též integrita - jedná se o zamezení neoprávněné modifikace dat. Tato modifikace může být smazání části dat, vložení nových dat, nebo substituce části stávajících dat jinými daty. Se zamezením neoprávněné modifikace souvisí i schopnost tuto modifikaci detekovat. autentizace (authentication) - též identifikace, neboli ztotožnění - znamená prokazování totožnosti, tj. ověření, že ten, s kým komunikujeme, je skutečně ten, se kterým si myslíme, že komunikujeme. Autentizace může probíhat na základě znalosti (heslo), vlastnictví (klíče od bytu, kreditní karta) nebo charakteristických vlastností (biometrické informace - např. otisky prstů). autorizace (authorization) - je potvrzení původu ů (původnosti) ů dat. Tedy prokázání, že data vytvořil (je jejich autorem) skutečně ten, o němž si myslíme, že je autorem. nepopiratelnost (non-repudiation) - souvisí s autorizací - jedná se o jistotu, že autor dat nemůže své autorství popřít (např. bankovní transakci). 6
Kerckhoffsův princip Bezpečnost šifrovacího systému nesmí záviset na utajení algoritmu, ale pouze na utajení klíče. 7
Příklad doručení balíčku Odesílatel chce poslat balíček zabezpečený v kufru klíčem, ale nedůvěřuje nikomu a nechce dát z ruky klíč (ani příjemci). Dále neexistuje druhý klíč a kufr je nerozbitný. Existuje nějaké jednoduché řešení? Pozn. Kufr lze zamknout větším počtem zámků, ale ke každému je jen jeden klíč. 8
Odesilatel umístí balíček do kufru, ten zamkne svým zámkem a vyjme klíč Klíč 1 Příjemce zamkne kufřík svým vlastním zámkem a vyjme klíč Klíč 2 Balíček vložen do kufru K příjemci Balíček v kufru Zpět k odesilateli Odesilatel pomocí svého klíče sejme z kufříku svůj zámek Příjemce pomocí svého klíče sejme z kufříku svůj zámek a vyndá balíček Balíček v kufru K příjemci Balíček vyjmut z kufru 9
Prolomení šifry Způsob nalezení dešifrovacího klíče Útok hrubou silou Zkoumání všech dešifrovacích klíčů Získat tak smysluplný text 10
Kryptoanalytické metody - typy útoků na šifru útok se známou šifrou (Ciphertext Only Atack) - není znám plaintext - nejobtížnější kryptoanalytická metoda. K výsledku lze dospět na základě rozborů pravidelností v textu šifry útok se známým původním textem (Known Plaintext Atack) - jsou známy text původní a jeho šifra. Rozborem lze odvodit klíč a šifrovací algoritmus útok s vybraným otevřeným textem (Chosen Plaintext Atack) - lze zvolit vstupní text a získat jeho šifru. Vhodným výběrem vstupního textu 11 mohou být odhalena slabá místa šifrovače.
Kryptografické systémy y symetrická kryprografie (SK) s tajným klíčem asymetrická kryptografie (AK) s veřejným a soukromým klíčem jednocestné hash funkce (HF) -vstupní data libovolné délky jsou transformována do výstupních bloků pevné délky (charakteristika/výtah/hash) s klíčem bez klíče Kryptografické systémy zabezpečují autentičnost, integritu, důvěrnost, nepopiratelnost zodpovědnosti 12
Symetrická kryptografie (SK) s tajným klíčem Princip symetrické kryptografie Tajný klíč X Distribuce klíče Tajný klíč X Šifra Původní text Šifrování Dešifrování Původní text Odesílatel dokumentu Příjemce dokumentu 13
Princip asymetrické kryptografie soukromý klíč A Distribuce klíče veřejný klíč A Šifra Původní text Šifrování Dešifrován í Původní text Odesílatel dokumentu - A Příjemce dokumentu - B veřejný ř klíč B soukromý klíč B 14
Rozdíly Symetrická kryptografie: menší výpočetní náročnost - vyšší výpočetní rychlost, problematické šíření klíče, dvě kopie tajemství (obě strany), pro komunikaci s n partnery je třeba mít n klíčů, pro komunikaci s neznámým partnerem je obtížné ověřit jeho identitu Asymetrická kryptografie: značná výpočetní náročnost - až 1000 x nižší výpočetní rychlost než u předchozího, pouze jedna kopie tajemství (pod vlastní kontrolou), snadné šíření klíčů (možnost uložit VK na veřejně dostupném místě), při komunikaci s neznámým partnerem lze poměrně snadno ověřit jeho identitu. 15
Princip digitálního podpisu 16
Matematické základy kryptografie
Modulární aritmetika Pro čísla x a n, je x mod n zbytek po dělení 12 x číslem n Příklady 7 mod 6 = 1 33 mod 5 = 3 33 mod 6 = 3 51 mod 17 = 0 17 mod 6 = 5 11 10 9 hodinová aritmetika 2 3 8 4 7 6 5 1
Základní operace v modulární aritmetice Sčítání 3+5 2mod6 2 + 4 0 mod 6 3+3 3 0 0mod d6 (7 + 12) mod 6 19 mod 6 1 mod 6 (7 + 12) mod 6 (1 + 0) mod 6 1 mod 6 Odčítání je definováno jako sčítání pomocí aditivní inverze mod n a -b mod n = a+ (-b)mod n 8 5 8+(-5) 3 mod 9 5 8 5+(-8) = -3 6 mod 9
Základní operace v modulární aritmetice Násobení násobení může být nula i když žádný z činitelů není roven nule odvozeno z opakovaného sčítání Příklad: 2. 4 2 (mod 6) 5.5 5 1(mod6) 3. 4 0 (mod 6) (7. 4) mod 6 28mod 6 4 mod d6 (7. 4) mod 6 (1. 4) mod 6 4 mod 6
Základní operace v modulární aritmetice Dělení je definováno jako násobení pomocí multiplikativní inverzí mod n Příklad: 3 :5 mod 7 3 5-1 mod 7 3 3 mod 7 9 mod 7 2 mod 7 Podíl dvou celých čísel v modulární aritmetice mod n je vždy celé číslo (v případě, že lze dělení provést)
Umocňování lze realizovat pomocí opakovaného násobení se složitostí O(n) () (tzn. n 5 = n n n n n) efektivnější metoda je algoritmus square and multiply rekurzivní výpočet mocniny x n pro celé kladné číslo n Mocnina (x,n) = xpron=1 Mocnina (x,n) = Mocnina (x 2,n/2) pro n sudé Mocnina (x,n) = x.mocnina (x 2,(n-1)/2) pro n liché
Malá Fermatova věta Je-li p prvočíslo a gcd(a,p)=1, pak a p-1 1 (mod p) Je-li p prvočíslo pak a p a (mod p) Je-li p prvočíslo a gcd(a,p)=1, pak a p-2 a -1 (mod p) gcd (Greatest Common Divisor) Největší společný dělitel 1) Určete multiplikativní inverzi 18 mod 31 18 29 mod d31 19 mod 31 18*19 mod 31 1 mod 31 2) Spočtěte mocninu 4 961 mod 479: 4 961 (4 478 ) 2 * 4 5 256 mod 479, protože 4 478 1 (mod 479)
Výpočet GCD Výpočet GCD pomocí Euklidova algoritmu - Algoritmus spočívá v opakovaném dělení dělitele zbytkem dokud zbytek není nula. a = n*b+r. Největší společný dělitel je poslední nenulový zbytek v tomto algoritmu. V okamžiku, kdy r=0 výpočet končí. Př. Výpočet gcd(4864,3458) 4864=1.3458+1406 3458=2.1406+646 1406=2.646+114 646=5.114+76 114=1.76+38 76=2.38+0 gcd(4864,3548)=38
Operace XOR Někdy označovaná jako sčítání mod 2 y = a XOR b y=a b a b y 0 0 0 0 1 1 1 0 1 1 1 0 Název pochází z anglického exclusive OR, tedy výlučné nebo.
Příklad XOR Půjdu do kina, nebo do divadla (znamená to, že na aobě místa sanepůjdu, půjdu jen na jedno znich). Rozdíl mezi klasickým OR a výlučným XOR vnímá tedy i česká (slovenská) gramatika, která rozlišuje nebo ve významu slučovacím (OR) Jako jednoduchá šifra: C = M K. Díky symetrii operace je pak M = C K. M = 1 1 0 1 1 0 1 K = 1 0 0 1 0 1 0 C= 0100111 0 0 1 1 1
Prvočísla Prvočíslo je přirozené číslo, které je beze zbytku dělitelné právě dvěma různými čísly, atočíslem jedna a sebou samým (tedy 1 není prvočíslo). Přirozená čísla různá ů od djedné, která nejsou prvočísla, se nazývají složená čísla. Každé složené číslo lze jednoznačně vyjádřit jako součin prvočísel. Proces rozkladu čísla na jeho prvočíselné činitele (prvočinitele) itl) se nazývá ýáfkt faktorizace.
Příklady Začátek řady prvočísel: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31 Číslo 13 má přidělení dvěma zbytek 1, při dělení 3 zbytek 1, při dělení pěti zbytek 3 atd. Beze zbytku je dělitelné pouze 1 a 13. Proto je 13 prvočíslo. Číslo 24 je dělitelné čísly 1, 2, 3, 4, 6, 8, 12, 24 proto není prvočíslem.
Historie kryptografie
Starověké šifrování Historicky nejstarší je steganografie... skrytá komunikace Histiaeus napsal zprávu sluhovi na oholenou hlavu a poslal jej do Míletu, aby zprávou pomohl v koordinaci boje proti Peršanům Demaratus zjistil kdy Peršané vytáhnou proti Řekům, použil dřevěné psací destičky pokryté voskem Sparťané v 5. století př. n. l. používali transpozici. Pisatel zprávy nejprve omotal proužek kůže kolem dřevěné tyče.
Starověké šifrování Řecký spisovatel Polybius (přibližně 203 120 př. n. l.) vytvořil vo šifru, kde abecedu napsal do čtverce opěti sloupcích a pěti řádcích. Každé písmeno pak bylo možné interpretovat jako kombinaci dvou čísel, přičemž první představovalo číslo řádku, druhé číslo sloupce. 1 2 3 4 5 1 A B C D E 2 F G H IJ K 3 L M N O P 4 Q R S T U 5 V W X Y Z řecký spisovatel 42 15 13 25 54 43 35 24 43 34 51 11 44 15 31
Transpoziční šifry Jednoduchá transpozice Šifrovací kříže Tabulky Transpozice dle klíče
psaní pozpátku Jednoduchá transpozice mění pouze pořadí písmen, nikoli jejich vzhled zepředu/zezadu vypisuje vždy jedno písmeno zepředu, jedno písmeno zezadu prolnutí Text se rozdělí na dvě poloviny. Do šifrového textu se nejprve na liché pozice napíší písmena první poloviny a poté na sudé pozice písmena druhé poloviny textu. t podle plotu Text se rozdělí na dvě skupiny první bude obsahovat všechna lichá písmena a druhá všechna sudá písmena. Šifrový text se vytvoří spojením první a druhé skupiny za sebe.
Šifrovací kříže Šifru je se buď pomocí jednoduchého (+) nebo dvojitého (#) kříže. Písmena se rozdělí do skupin po čtyřech, nebo po osmi a ty se pak zapíší kolem křížů. Zpráva se poté přepíše po řádcích.
Text se různým způsobem zapíše do tabulky a poté se přepíše po řádcích Tabulky
Transpozice dle klíče Šifrovanou zprávu si napíšeme do sloupců tabulky a nad tabulku si napíšeme klíčové slovo. Poté sloupce seřadíme podle abecedního pořadí písmen v klíčovém slově a šifrový text se vypíše po řádcích
Substituční šifry Substituce, neboli záměna nahrazuje písmeno zprávy jiným písmenem, nebo znakem, podle šifrové abecedy. Monoalfabetická substituční šifra celý text se šifruje jednou šifrovou abecedou, tedy každé písmeno se nahrazuje stále stejným znakem. Homofonní substituční šifra některá písmena (zpravidla ty nejčenější) se dají šifrovat více než jedním znakem. Polyalfabetická substituční šifra každé písmeno se šifruje jinou šifrovou abecedou podle určitého klíče. Bigramová (trigramová, polygramová...) substituční šifra skupina písmen z textu (bigram dva znaky) se nahradí jinou skupinou písmen šifrového textu o stejném počtu písmen. Digrafická substituční č íšifra každé písmeno se nahradí dvojicí znaků.
Caesarova posunová šifra (nebo posunutá abeceda) V prvním řádku je celá abeceda, v druhém řádku je abeceda posunutá (v našem případě podle klíče A=T). Ahoj lidi - Hovq spkp
Posun s pomocným slovem V prvním řádku je normální abeceda. Do druhého napíšeme napřed ř dklíčové slovo, které nesmí obsahovat žádné písmeno dvakrát (například SIFRA) a doplníme zbývající písmena abecedy. Čím delší je klíčové slovo, tím více budou písmena zpřeházená. Pomocné slovo - Rqoqgpi anqvq
Převrácená abeceda Šifrová abeceda je proti otevřené abecedě obrácená tak, že A=Z a Z=A, B=Y a Y=B atd. Převrácená abeceda - Kiveizxvmz zyvxvwz
Numerická abeceda Každé písmeno je nahrazeno číslem podle pořadí v abecedě Numerická abeceda - 14;21;13;5;18;9;3;11;1;1;2;5;3;5;4;1; ; ; ; ; ;5;3;5; ; ;
Velký polský kříž Tabulkové kříže Při šifrování se podle tabulky nakreslí rámeček, ve kterém se písmeno nachází a pozice se určí tečkou.
Malý polský kříž Tabulkové kříže
Zlomky při šifrování se zapíší souřadnice písmene jako zlomek číslo číslosloupce/číslořádku, Jednoduché zlomky - 5/2;5/1;4/1;4/3;5/3;4/1;5/4;3/1;3/2;5/1;5/5;2/3;5/3;3/3;1/3;4/5;
Šifra ADFGVX mřížka 6x6 je náhodně vyplněna 26 písmeny a 10 čísly
Playfairova šifra Playfairova šifra nahrazuje každou dvojici písmen v otevřeném oeve textu jinou dvojicí písmen. Odesílatel e i příjemce si nejprve musí určit klíčové slovo, například SIFRA. Šifruje se podle tabulky 5x5, první se zapíše klíčové slovo a potom se pokračuje podle abecedy, písmena I a J se spojí v jediný prvek
Posuvná šifra: zaměňuje každé písmeno otevřeného textu písmenem, které je v abecedě o k míst dále. Číslo k, které může nabývat hodnot 0,1,2,.,25, 25 je klíč. Substituční tabulka pro klíč k = 7: 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 h i j k l m n o p q r s t u v w x y z a b c d e f g Nevýhoda: příliš málo (malý prostor) klíčů, lze je všechny vyzkoušet. cvidw vgvio zkjmo vn dwjex whwjp alknp wo exkfy xixkq bmloq xp fylgz yjylr cnmpr yq gzmha zkzms donqs zr hanib alant eport as Řešení hrubou silou (exhaustive search)
Jednoduchá substituce Nahrazuje každé písmeno otevřeného textu nějakým jiným písmenem abecedy Klíčem je substituční tabulka, ve které je pod každým písmenem abecedy ve spodním řádku písmeno, které jej v šifrovém textu nahrazuje: 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 e l q d x b p k y r w v a m o i u s z c f h n t j g Spodní řádek tabulky je vlastně nějakou permutací písmen abecedy Prostor klíčů je dostatečně velký 26! nelze řešit hrubou silou. Slabina: zachovává statistické vlastnosti otevřeného textu.
Vigenérova šifra Používá periodicky několik různých posunutí abecedy. Klíčem je nějaké slovo, které udávalo délku posunutí podle následující tabulky.
Princip Nejvrchnější řádek čtverce reprezentuje otevřený text. Každé písmeno lze zašifrovat kteroukoliv z 26 šifrových abeced. Pokud například použijeme abecedu 6, pak písmeno a šifrujeme jako G,,při abecedě 16 bude písmeno a jako M atd. Abychom využili sílu Vigenerovy šifry, tak každé písmeno zašifrujeme pomocí jiného řádku.
Příklad Zašifrujte text Zlato je ulozeno v jeskyni klíčové slovo - poklad. P O K L A D P O K L A D P O K L A D P O K L z l a t o j e u l o z e n o v j e s k y n i O Z K E O M T I V Z Z H C C F U E V Z M X T
Polyalfabetická šifra Podobná Vigenérově šifře, místo různých posunutí ale používá různé obecné jednoduché substituce. Každé písmeno otevřeného textu šifruje pomocí jiné permutace. Ideální je, pokud se žádná permutace nepoužívá dvakrát. abcdefghijklmnopqrstuvwxyz 1:gkqwhrjvoisnazcubdxplfytme 2:cintzuhsymjabvoelxwpkfqgrd 3:ekrwxpavqbslcfitudgjmhnyzo 4:dqcuimhvrelnwgofjkztysabpx Šifrujeme: koza s ood
Transpoziční šifry Spočívají v přeházení pořadí (permutaci) písmen v otevřeném textu. Permutace bývala definována pomocí nějakého slova klíče. Například pomocí klíče nezny se šifrovalo následovně: 21534 nezny tanco valab ychja azset rasu aacza tvyar cajeu obatn lhss Jednoduchá transpozice
Šifrovací algoritmus RSA Vygenerujeme dvě dostatečně velká prvočísla p a q (každé má délku 1024 bitů) a spočteme n=pq. Číslo l n je parametrem šifrovacího systému (šifrovací modul) a zveřejňuje se spolu s veřejným klíčem. Spočítá se Eulerova funkce Φ(n)= (p-1)(q-1) udává počet přirozených čísel menších než n, která jsou nesoudělná s číslem n (protože n je součinem dvou prvočísel, je takových čísel právě (p-1)(q-1))
Šifrovací algoritmus RSA Zvolíme privátní klíč e z množiny {1,..,n} nesoudělný s číslem (p- 1)(q-1) K privátnímu iátí klíči e vypočteme Eulerovým algoritmem veřejný ř jý klíč d podle vztahu d e mod d( (p-1)(q-1)= d e mod Φ(n)= ) 1 Tato rovnice má jediné řešení d Zakódování zprávy z se provede dle vztahu z e mod n =s Dekódování zprávy se provede dle vztahu s d mod n =z Korektnost šifry je dána vztahem: z=s d mod n = z de mod n = z kφ(n)+1 mod n =1 z mod n=z
Příklad p=7, q=13 N=91, Φ(N)=6.12=72 t=7 s.7 mod 72 = 1, s=31 Veřejný klíč s=31, N=91, y=x 31 mod 91 Tjýklíč Tajný t=7, p=7, q=13, Φ(N)=72, x=y 7 mod 91
Příklad x=24 y= x 31 mod 91= 24 31 mod 91 = (24 16 mod 91). (24 8 mod 91). (24 4 mod 91). (24 2 mod 91). (24 1 mod 91) = 24.30.81.9.81mod 91= 42515280 mod 91 = 80 x = 80 7 mod 91= (80 1 mod 91). (80 2 mod 91). (80 4 mod 91) = 80.30.81 mod 91 = 24
Použití kryptografických metod E-commerce (E-business) - bezpečnost obchodních transakcí E-tailing na webových stránkách (nákup zboží) Bankovnictví otevřený ř standard dpro obchodování byl vyvinut společnostmi Visa a MasterCard pro bezpečné platby kartami přes Internet Bezpečnostní mechanismy informačních systémů 58
59
Děkuji za pozornost cyril.klimes@osu.cz 60