Asymetrická kryptografie

Podobné dokumenty
Asymetrická kryptografie

Šifrová ochrana informací věk počítačů PS5-2

Šifrová ochrana informací věk počítačů PS5-2

ElGamal, Diffie-Hellman

Digitální podepisování pomocí asymetrické kryptografie

asymetrická kryptografie

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

Asymetrické šifry. Pavla Henzlová FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

Jihomoravske centrum mezina rodnı mobility. T-exkurze. Teorie c ı sel, aneb elektronicky podpis a s ifrova nı

RSA. Matematické algoritmy (11MA) Miroslav Vlček, Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. čtvrtek 21.

Čínská věta o zbytcích RSA

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.

KRYPTOGRAFIE VER EJNE HO KLI Č E

RSA. Matematické algoritmy (11MAG) Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :01

Jak funguje asymetrické šifrování?

Složitost a moderní kryptografie

Diffieho-Hellmanův protokol ustanovení klíče

MFF UK Praha, 22. duben 2008

Kryptografie založená na problému diskrétního logaritmu

Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz

Informatika Ochrana dat

Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007

Základy šifrování a kódování

Moderní metody substitučního šifrování

Šifrová ochrana informací věk počítačů KS - 5

Základy kryptografie. Beret CryptoParty Základy kryptografie 1/17

C5 Bezpečnost dat v PC

Protokol RSA. Tvorba klíčů a provoz protokolu Bezpečnost a korektnost protokolu Jednoduché útoky na provoz RSA Další kryptosystémy

Pokročilá kryptologie

Správa přístupu PS3-2

Pokročilá kryptologie

Úvod RSA Aplikace, související témata RSA. Ing. Štěpán Sem Festival Fantazie, Štěpán Sem

Digitální podepisování pomocí asymetrické kryptografie

Problematika převodu zprávy na body eliptické křivky

Informatika / bezpečnost

Diskrétní logaritmus

Eliptické křivky a RSA

PA159 - Bezpečnostní aspekty

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky Asymetrické kryptosystémy I

EU-OPVK:VY_32_INOVACE_FIL13 Vojtěch Filip, 2014

PSK2-16. Šifrování a elektronický podpis I

Šifrová ochrana informací věk počítačů PS5-1

Identifikátor materiálu: ICT-2-04

Základní definice Aplikace hašování Kontrukce Známé hašovací funkce. Hašovací funkce. Jonáš Chudý. Úvod do kryptologie

kryptosystémy obecně další zajímavé substituční šifry klíčové hospodářství kryptografická pravidla Hillova šifra Vernamova šifra Knižní šifra

Kryptografie - Síla šifer

Šifrování veřejným klíčem

Autentizace uživatelů

Čínská věta o zbytcích RSA

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

Matematické základy šifrování a kódování

Komerční výrobky pro kvantovou kryptografii

Bezpečnostní mechanismy

Ochrana dat Obsah. Výměna tajných klíčů ve veřejném kanálu. Radim Farana Podklady pro výuku. Kryptografické systémy s tajným klíčem,

Elektronický podpis. Základní princip. Digitální podpis. Podpis vs. šifrování. Hashování. Jednosměrné funkce. Odesílatel. Příjemce

Miroslav Kureš. Aplikovaná matematika Ostravice workshop A-Math-Net Sít pro transfer znalostí v aplikované matematice

Matematika IV - 5. přednáška Polynomy

Základy kryptologie. Kamil Malinka Fakulta informačních technologií

Symetrické šifry, DES

základní informace o kurzu základní pojmy literatura ukončení, požadavky, podmiňující předměty,

Od Enigmy k PKI. principy moderní kryptografie T-SEC4 / L3. Tomáš Herout Cisco. Praha, hotel Clarion dubna 2013.

CO JE KRYPTOGRAFIE Šifrovací algoritmy Kódovací algoritmus Prolomení algoritmu

BEZPEČNOST INFORMACÍ

Y36PSI Bezpečnost v počítačových sítích. Jan Kubr - 10_11_bezpecnost Jan Kubr 1/41

Osnova přednášky. Seznámení s asymetrickou kryptografií, díl 2. Podpisová schémata -elementární principy- (1)

Tel.: (+420)

Matematika IV - 5. přednáška Polynomy

Počet kreditů: 5 Forma studia: kombinovaná. Anotace: Předmět seznamuje se základy dělitelnosti, vybranými partiemi algebry, šifrování a kódování.

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

Karel Klouda c KTI, FIT, ČVUT v Praze 28. února, letní semestr 2010/2011

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Směry rozvoje v oblasti ochrany informací PS 7

Obsah. Protokol RSA. Protokol RSA Bezpečnost protokolu RSA. 5. a 6. přednáška z kryptografie

INFORMATIKA (ŠIFROVÁNÍ A PODPIS) 2010/11

Pedagogická fakulta Jihočeské univerzity České Budějovice katedra informatiky

9. DSA, PKI a infrastruktura. doc. Ing. Róbert Lórencz, CSc.

příklad Steganografie Matematické základy šifrování šifrování pomocí křížů Hebrejské šifry

5. a 6. přednáška z kryptografie

Vzdálenost jednoznačnosti a absolutně

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy

Kódy a kódování dat. Binární (dvojkové) kódy. Kód Aikenův

Šifrová ochrana informací historie KS4

MPI - 7. přednáška. Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n.

12 Metody snižování barevného prostoru

UKRY - Symetrické blokové šifry

Diskrétní matematika 1. týden

ŠIFROVÁNÍ, EL. PODPIS. Kryptografie Elektronický podpis Datové schránky

MINIMÁLNÍ POŽADAVKY NA KRYPTOGRAFICKÉ ALGORITMY. doporučení v oblasti kryptografických prostředků

Kryptografické protokoly. Stříbrnice,

Katedra informačních technologií PEF ČZU, Praha 6, Kamýcká ul.,

Cryptelo je systém kompletně navržený a vyvinutý přímo naší společností. Aplikace šifrování do běžné praxe. Cryptelo chrání přímo vaše data

Hashovací funkce. Andrew Kozlík KA MFF UK

Kvantové algoritmy a bezpečnost. Václav Potoček

Složitost Filip Hlásek

Správa webserveru. Blok 9 Bezpečnost HTTP. 9.1 Úvod do šifrování a bezpečné komunikace Základní pojmy

Problematika Internetového bankovnictví v ČR a jeho bezpečnosti. Problems of Internet banking at Czech republic and its security

Šifrování dat, kryptografie

Historie Kryptografie

Co je Czech Point? Podací Ověřovací Informační Národní Terminál, zredukovat přílišnou byrokracii ve vztahu

Transkript:

Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta Asymetrická kryptografie Diplomová práce Vedoucí práce: Mgr. Tomáš Foltýnek, Ph.D. Bc. Antonín Moravec Brno 2009

2

.

4

Tímto bych chtěl poděkovat panu doktoru Tomáši Foltýnkovi za čas, který mi věnoval při zpracování této diplomové práce, a za jeho přínosné připomínky ke zpracovávaným aplikacím.

6

Prohlašuji, že jsem tuto diplomovou práci vyřešil samostatně s použitím literatury, kterou uvádím v seznamu. V Brně dne 5. ledna 2009....................................................

8

9 Abstract Moravec, A. Asymmetric cryptography. Diploma thesis. Brno, 2009. The diploma thesis deals with the basic methods and tools of asymmetrical cryptography, its principal parts and applications. Moreover, it is made as an essential material for creation of elearning staff of the Compression and Cryptography. To make the thesis more understandable, the crucial points include some examples with the illustration of answer. The chapters concerning with the principle of RSA and the basics of PGP (Pretty Good Privacy) are supplied by two demonstrative applications. Abstrakt Moravec, A. Asymetrická kryptografie. Diplomová práce. Brno, 2009 Diplomová práce popisuje základní metody a nástroje asymetrické kryptografie, její hlavní pilíře a aplikace. Je dále určena jako podklad pro tvorbu elearningových opor pro předmět Komprimace a šifrování. Pro dostatečnou názornost jsou ke stěžejním bodům uvedeny příklady s ukázkou řešení. Ke kapitolám o principu RSA a základech fungování PGP (Pretty Good Privacy) jsou zpracovány dvě demonstrační aplikace.

10

OBSAH 11 Obsah 1 Úvod a cíl práce 13 1.1 Úvod do problematiky.......................... 13 1.2 Cíl práce.................................. 13 2 Metodika 15 3 Literární přehled 16 4 Východiska pro téma asymetrická kryptografie 18 4.1 Základní pojmy, kategorizace kryptografie............... 18 4.2 Šifrování, cesta k asymetrické kryptografii............... 19 4.3 Kdo je napřed? Kryptografie nebo kryptoanalýza?........... 19 4.4 Problém s distribucí klíčů........................ 20 4.5 Účastnící šifrované komunikace, dvakrát zamčená skříňka....... 21 4.6 Modulární aritmetika, jednosměrná funkce............... 22 5 Asymetrická kryptografie, algoritmy 25 5.1 The knapsack algorithm (batohový algoritmus)............ 25 5.2 Přichází veřejné a soukromé klíče.................... 27 5.3 RSA.................................... 28 5.4 DSA a ECDSA.............................. 32 5.5 ElGamal.................................. 34 6 Asymetrická kryptografie, aplikace 36 6.1 PGP (Pretty Good Privacy)....................... 36 6.2 Digitální a elektronický podpis...................... 38 6.3 Další oblasti využítí asymetrických metod šifrování.......... 41 7 Asymetrická kryptografie, standardy a bezpečnost 42 7.1 Certifikáty a certifikační autority.................... 42 7.2 PKI, PKCS................................ 43 7.3 Kryptoanalýza a možnosti útoku na kryptografické mechanizmy... 43 8 Implementace PGP a RSA 47 8.1 Implementace............................... 47 8.2 Implementace RSA............................ 48 8.3 Implementace PGP............................ 50 9 Diskuze 57 10 Návrh na využití v praxi 58 11 Závěr 59

12 OBSAH 12 Literatura 60 13 Přehled použitých zkratek 63 Přílohy 64 A Příklad 1, transpozice a substituce 65 B Příklad 2, kombinace dvou jednoduchých šifer 67 C Příklad 3, modulární aritmetika 70 D Příklad 4, Bézoutova rovnost 71 E Příklad 5, šifrování soukromým klíčem 72

1 ÚVOD A CíL PRÁCE 13 1 Úvod a cíl práce 1.1 Úvod do problematiky Kryptografie byla jedním z důvodů příchodu počítačů, které se nejprve staly výsadou armád, tajných služeb a vědeckých pracovišť. Šifrování výpočetními prostředky bylo výhradně používáno v těchto oblastech a mohly s ním být díky dostatečnému finančnímu zabezpečení spojeny i nemalé náklady. S poklesem výrobních nákladů počítačových komponent a s tím souvisejícím poklesem cen přišla masová produkce a počítače se staly nezbytnou součástí běžného civilního života. Potřeba zabezpečené komunikace a bezpečného uložení dat bez zbytečných nákladů nebyla neočekávaným důsledkem informačního věku jak je dnešní doba s oblibou nazývána. Informační technologie procházely celou řadou vývojových stupňů. Většina z nás již skoro zapomněla na éru děrných štítků a pomalu a rádi zapomínáme i na diskety. Kryptografie využívá s oblibou moderních prostředků výpočetní techniky zejména kvůli faktu, že počítače jsou schopny zpracovat miliónkrát větší objemy dat, než které by byl schopen za stejnou časovou jednotku zpracovat člověk vybavený papírem a tužkou. Právo na soukromí je zakotveno již v Listině základních práv a svobod: Každý má právo na ochranu před neoprávněným zasahováním do soukromého a osobního života. [11] Dříve bylo možné dosáhnout bezpečnosti listovní komunikace pouhým zapečetěním zásilky. Protože se však komunikace přesunula z formy fyzické do formy elektronické, je potřebné i tuto komunikaci zabezpečit proti zcizení a zachování soukromí. Významným hráčem bezpečné elektronické komunikace je asymetrická kryptografie. Je tomu tak z důvodu, že vyřešila problém, kterým si lámala hlavu dlouhou dobu řada kryptologů. Tímto problémem byla bezpečná a efektivní výměna tajné informace (klíče) mezi odesílatelem a příjemcem zprávy. 1.2 Cíl práce Cílem této práce je seznámit čtenáře s aspekty šifrování, zejména pak s problematikou asymetrické kryptografie. Při zpracování postupovat od vzniku asymetrické kryptografie přes její historický vývoj až k její aplikaci v dnešní době. Fakta podávat srozumitelně, jednoduše a pochopitelně tak, aby text mohl být použit jako úvodní kurz do této oblasti kryptografie. Pro vysvětlení oblastí, ke kterým lze sestavit názorný příklad, této možnosti využít a dopomoct tím k jednoduššímu pochopení problému čtenářem. Na základě nastudovaných a teoreticky popsaných principů vytvořit aplikace názorně prezentující asymetrickou kryptografii a digitální podpis. Tyto aplikace představit čtenáři tak, aby mu dopomohly k praktickému osvojení dané problematiky. Cílovou skupinou potenciálních čtenářů jsou studenti předmětu Komprimace a šifrování na MZLU, který se zabývá teorií informace, kompresí dat a šifrováním. Studenti se proto musí seznámit i s oblastí asymetrické kryptografie. Na znalosti čte-

14 1 ÚVOD A CíL PRÁCE náře jsou kladeny víceméně základní požadavky na orientaci v oblasti IT a povědomí o jednoduchých operacích typu XOR, modulo a podobně.

2 METODIKA 15 2 Metodika Z dostupných knižních a elektronických zdrojů budou získány informace pro představení základních metod šifrování, na kterých stojí nejen asymetrická kryptografie. Na základě těchto podkladů budou podrobně popsány v kryptografii hojně používané metody transpozice a substituce. Dále bude patřičný úsek věnován závislosti bezpečnosti šifrovacích algoritmů na výpočetním výkonu počítačů. Budou nastudovány a představeny nezbytné matematické základy šifrování. Důraz bude kladen zejména na modulární aritmetiku, která hraje roli ve většině oblastí šifrování. Dále také budu analyzovat problematiku jednosměrných funkcí využívaných například v systému výměny klíčů Diffie-Hellman-Merkle. Pro aplikaci asymetrických metod šifrování v elektronickém podpisu bude zpracována možnost šifrovat pomocí algoritmu RSA, který se neobejde bez nastudování vlastností rozšířeného Eukleidova algoritmu a Bézoutovy rovnosti. Algoritmus ELgamal stojí na pilířích vystavěných na řešení diskrétního logaritmu, který bude krátce popsán. NP úplné problémy jsou řešitelné pouze v exponenciálním čase. Do řešení bude zahrnuto i toto dogma, na kterém stojí algoritmy založené na řešení problému tzv. batohu. Nebude opomenuto také to, že kryptografie pracuje často s jednotlivými bity, u kterých je užito binární operace XOR (exclusive or). Pro možnost ověřit si získané informace o RSA a PGP prakticky použiji teoreticky nabytých znalostí, díky nimž vytvořím dvě aplikace znázorňující asymetrickou kryptografii a elektronický podpis. Pro naprogramování těchto aplikací využiji výhod objektově orientovaného programovacího jazyka JAVA. Při návrhu a zpracování těchto aplikací se zaměřím z důvodu cíle této práce především na názornost použitých šifrovacích mechanizmů.

16 3 LITERÁRNí PŘEHLED 3 Literární přehled Otázka bezpečné komunikace a šifrování je oblíbeným tématem knih, časopisů, elektronických médií a dalších zdrojů. Internet byl pro tuto práci nejdostupnějším, nejaktuálnějším a nejpřínosnějším zdrojem informací. Výběr internetového zdroje ovšem není úplně triviální záležitostí, protože ne všechny zdroje mohou být považovány za úplně důvěryhodné. V takových případech přichází na řadu tištěné publikace, které tvoří pevnou a důvěryhodnou kostru celé práce. Většina metod kryptografie je založena na faktech známých již mnoho let. Díky tomuto faktu bylo využito i mnoha tištěných publikací, které byly doplněny informacemi získané z elektronických zdrojů. Kniha kódů a šifer [1] je významným zdrojem cenných informací pro nováčka v oblasti šifrování. Na počátku se stala inspirací pro přípravu kostry práce. Díky ní dostane čtenář potřebné historické souvislosti nezbytné pro pochopení celé tematiky šifrování. Této knize velice dobře sekunduje publikace Kryptografie. [2] Podobně jako Kniha kódů a šifer je dobře pochopitelná i pro kryptografického začátečníka. Kryptografia v informačnej bezpečnosti [3] je svou strukturou podobná předchozím dvěma publikacím a v některých oblastech je vhodně doplnila. Zdrojem mnoha odborných informací pro více oblastí této práce, počínaje RSA a elektronickým podpisem konče, byla publikace ze Slovenské technické univerzity v Bratislavě. [14] Svět elektronického podpisu [4] vydaný jako příloha časopisu PC WORLD byl příhodným zdrojem informací o fungování elektronického podpisu. Technologii PKI mohla být v této práci věnována pozornost díky článku o vztahu PKI a Evropské Unie. [15] Pro informace o standardech PKCS bylo sáhnuto po internetových stránkách RSA Laboratories. [17] PGP: Pretty Good Privacy šifrování pro každého [5] poskytlo mnoho obecných informací o problematice šifrování, ale zejména podrobnosti o metodách a algoritmech používaných ve slavném programu Phila Zimmermanna z konce 80. let minulého století. V této publikaci je podobně jako v mnoha dalších zdrojích podrobně popsáno Diffie-Hellmanovo schéma. [5] Elektronických zdrojů nezbytných pro zpracování této práce bylo velice mnoho. Pro definice pojmů používaných v kryptografii byla v některých případech nezbytná i internetová verze slovníku cizích slov [16] a výkladový slovník americké společnosti Microsoft. [18] Zdrojem odborných článků byl archív článků uveřejněných v časopise Computerworld věnujícím se oblasti IT dostupný na adrese http://archiv.computerworld.cz. Významnou úlohu hrál zejména pro sestavení kapitoly o modulární aritmetice. [20] Dále byl tento zdroj použit pro kapitolu o DSA a ECDSA. [30] Pro získání informací o batohovém algoritmu bylo čerpáno z oblíbeného internetového zdroje o kryptografii [31] a ve Spojených státech vydané publikaci, věnující se aplikované kryptografii. [32] Dalším důležitým internetovým zdrojem byly stránky jednoho z předních českých kryptologů Vlastimila Klímy http://cryptography.hyperlink.cz/. Díky zde uveřejněným článkům byly rozšířeny kapitoly o schématu ElGamal [26] a nejznámějších

3 LITERÁRNí PŘEHLED 17 schémat pro digitální podpisy DSA [23] a RSA [27]. Pro sepsání kapitoly o DSA byl dále použit článek o nejpoužívanějších šifrách současnosti uveřejněný na serveru vydavatelství Sdělovací technika. [12] Pro kapitolu o RSA bylo dále využito publikace Petra Koláře z katedry aplikované informatiky Technické univerzity v Liberci. [25] Díky přednášce pana doktora Jana Přichystala z PEF MZLU o asymetrické kryptografii v rámci předmětu Komprimace a šifrování se podařilo doplnit kapitolu o RSA a přidat chybějící důkaz o možnosti zpětně rozšifrovat zprávu zašifrovanou pomocí RSA. [29] V kapitole věnující se použití šifrovacích metod byly použity články o SSH a SSL zveřejněné na internetu. [19][21] Část o závislosti bezpečnosti na výpočetním výkonu vznikla za přispění článku zveřejněného na serveru http://www.webguru.cz, který se věnuje především oblasti PHP. [13] Přednáška o bezpečnosti a spolehlivosti Wi-Fi sítí Petra Tomana, která se konala v roce 2007 v rámci předmětu Inovace pro informatiky, přispěla k představě o bezpečnosti používaných šifrovacích metod v praxi. [9] Obsah kapitoly věnující se kryptoanalýze a typům útoku na kryptografické mechanizmy byl sestaven na základě článků autorů z Univerzity Karlovy v Praze. [22][24] Internetová verze Listiny základních práv a svobod byla klíčem pro zdůvodnění ochrany soukromí při komunikaci pomocí elektronických médií. [11] Při sestavování kapitoly o implementaci a samozřejmě i při samotné implementaci ukázkových aplikací byly často používány knihy věnující se programovacímu jazyku Java. [6][7][8] Pro řešení problémů s formální úpravou bylo použito Doporučení pro úpravu diplomových a jiných prací. [10]

18 4 VÝCHODISKA PRO TÉMA ASYMETRICKÁ KRYPTOGRAFIE 4 Východiska pro téma asymetrická kryptografie 4.1 Základní pojmy, kategorizace kryptografie Jako každá vědní disciplína, tak i kryptografie má množství speciálních odborných výrazů. Začněme například u slova kryptografie, které vyjadřuje vědu o způsobech utajení otevřeného textu převedením do stavu, ve kterém je čitelná jen za speciálních podmínek nebo se speciální znalostí. Oproti kryptografii stojí vždy kryptoanalýza, což je obor zabývající se lámáním šifer. Otevřený text je zpráva čitelná pro libovolnou osobu. Dvěma základními operacemi této oblasti jsou zašifrování a dešifrování pomocí šifrovacího nebo dešifrovacího algoritmu. (Obr. 1) Šifrování je operace převedení otevřeného textu na tvar čitelný pouze pro osobu vlastnící jistou speciální informaci. Touto speciální informací je klíč, bez jehož znalosti je získání otevřeného textu za daných podmínek velice obtížné nebo v ideálním případě nemožné. Můžete namítnout, že nutností je i znalost algoritmu pro šifrování a dešifrování. Toto tvrzení se zakládá na pravdě, ale je jej potřebné rozšířit o zlaté pravidlo kryptografie, které tvrdí, že bezpečnost kryptografického mechanizmu nesmí stát na neznalosti algoritmu, ale na neznalosti tajného klíče. [14] Obr. 1: Jak funguje kryptografie [34] Pokud budeme uvažovat o ideální šifrovací metodě používající pro šifrování klíč, představíme si metodu, kterou pokud zašifrujeme otevřený text tak, že jedinou možností, kterou může aplikovat případný útočník, bude útok hrubou silou. Tento útok je oproti kryptoanalýze specifický tím, že jednoduše zkoušíme aplikovat na šifrovaný text všechny možné klíče. Síla takovéto šifry je dána množstvím klíčů, které musí útočník vyzkoušet, než klíč uhádne a časovou náročností jednoho takovéhoto pokusu. Strana provádějící kryptoanalýzu má zpravidla nejčastěji k dispozici jen šifrovaný text zprávy, ve kterém se kryptoanalytici snaží nalézt pravidelnost, která by pomohla dopracovat se k otevřenému textu. Šanci na úspěch kryptoanalýzy může zvýšit znalost otevřeného textu a jeho šifrované podoby nebo vlastnictví mechanizmu, který má na vstupu otevřený text a na výstupu šifrovanou zprávu. Kryptografii lze kategorizovat na symetrickou kryptografii, asymetrickou kryptografii a hash funkce. Symetrická kryptografie je charakteristická tím, že pro zašifrování a rozšifrování je použit stejný klíč. Naopak u asymetrické kryptografie jsou pro tyto operace použity rozdílné klíče. Od hash funkcí očekáváme takovou funkčnost, že jejich vstupem bude otevřený text a výstupem řetězec konstantní délky, někdy označovaný jako otisk zprávy, který přesně reprezentuje libovolný vstup, ale nelze z něj zpětně získat otevřený text. [14]

4.2 Šifrování, cesta k asymetrické kryptografii 19 Dvěma dalšími pojmy metod kryptografie jsou substituce a transpozice. Každý prvek zprávy nahradíme (substituce) nebo změníme (transpozice) jeho pozici v rámci zprávy. Oba dva druhy můžeme použít i zároveň. I ty nejsložitější metody šifrování lze zpravidla na tyto dvě elementární operace rozdělit. Příklad k tomuto tématu naleznete v příloze A. 4.2 Šifrování, cesta k asymetrické kryptografii Zamknutím vstupních dveří do bytu nebo zapnutím alarmů po odchodu z automobilu chráníme svůj cenný majetek proti odcizení. Analogii můžeme najít i v používání šifer a kódů. Zamčené auto je na parkovišti ve větším bezpečí než odemčené, zašifrováním e-mailu snížíme pravděpodobnost, že jej přečte někdo nepovolaný. Mechanizmus zamčení zprávy je podobný uzamknutí dveří domu. (Obr. 2) Odemknout jej může pouze držitel klíče nezávisle na jeho hmotnosti či nehmotnosti. Takto funguje svět bez těch, kteří umí daný mechanizmus ochrany prolomit a zcizit tak majetek v podobě zprávy nebo vybavení bytu. Obr. 2: Symetrické šifrování[33] Představme si situaci, kdy jedním klíčem vchodové dveře pouze zamkneme a jiným druhým klíčem jen odemkneme. I tuto situaci můžeme jednoduše převést na naši šifrovací podobu. Rozšíříme-li naši představu ještě o fakt, že v domě bydlí manželé a zamkne-li dům manželka, tak ho otevře svým klíčem pouze manžel, dostáváme situaci nemálo podobnou principům fungování asymetrické kryptografie. 4.3 Kdo je napřed? Kryptografie nebo kryptoanalýza? Existuje spousta tvrzení uznávaných vědců, průmyslníků či uznávaných odborníků, o jejichž platnosti se po jisté době začalo pochybovat a později byly i vyvráceny. Vzpomeňme třeba výrok ze sedmdesátých let minulého století v současné době jednoho z nejbohatších lidí zeměkoule Billa Gatese, který v překladu zní: Nikdo nebude potřebovat osobní počítač s pamětí větší než 637 kb. Tento výrok se umístil v první desítce nejhorších předpovědí v oblasti techniky všech dob. [28] Příklad můžeme najít také ve sféře počítačových sítí, kde necelý rok od vydání (1999) trvalo prolomení

20 4 VÝCHODISKA PRO TÉMA ASYMETRICKÁ KRYPTOGRAFIE bezpečné šifry RC4 používané ve WEP (Wired Equivalent Privacy) klíči. [9] Z tvrzení výše je velmi dobře patrné, že se jen těžce odhaduje, po jak velkých skocích poroste výkon počítačů, který je velice úzce spjat i s bezpečností kryptografických mechanizmů (vzpomeňme závislost časové náročnosti brute force útoku a výkonu prolamujících strojů). Kryptografie je světem dvou protistran. Proti sobě stojí tvůrci stále dokonalejších mechanizmů a nástrojů šifrování a luštitelé, neboli kryptoanalytici, snažící se o nové techniky dešifrování utajené komunikace. V současné době se zdá, že vítězí strana kryptografů. Existují totiž šifry, které by odolávaly útoku hrubou silou za použití standardně dostupných prostředků déle, než existuje vesmír, a zároveň jsou imunní i proti ostatním způsobům kryptoanalytického útoku. Správné šifrovací algoritmy jsou bezpečné díky utajení klíčů, nikoliv však utajení samotného algoritmu. [1] 4.4 Problém s distribucí klíčů Výše zmíněné mechanizmy symetrické kryptografie však naráží na jeden podstatný problém, kterým je bezpečná výměna klíče. Představme si například situaci dvou obchodních partnerů, kteří domlouvají prostřednictvím internetu strategický kontrakt, a je velice nežádoucí, aby se podrobnosti obchodních ujednání dozvěděla třetí strana, která by komunikaci odposlechla. Zprávy tedy budeme šifrovat a použijeme super bezpečnou metodu AES (předpokládáme, že obě strany ví, jak algoritmus AES použít) s klíčem délky 256 b. Jak však tento klíč předáme adresátovi, který jej potřebuje pro získání textu zprávy? Jistě každého napadne více možností jak klíč předat. Klíč můžeme předat osobně, použít pro předání kurýra nebo jednoduše zatelefonovat. Jsou však tato řešení předání ekonomicky únosná a bezpečná? Osobní předání každého klíče je při větším počtů klíčů časově nezvládnutelné. Použitím kurýra vstupuje do komunikace třetí osoba, se kterou se výrazně sníží bezpečnost, a náklady na přepravu klíčů jsou také nemalé. Konečně telefonní linka může být odposlouchávána. [2], [3] Vzpomeňme na nejznámější šifrovací stroj používaný v druhé světové válce Německou armádou zvaný Enigma. Pro každý den byl použit nový klíč obsažený v kódových knihách, které musel mít k dispozici pro možnost rozšifrovat vysílanou zprávu každý operátor Enigmy. Tyto knihy obsahovaly 28 rozdílných náhodných klíčů. Každý klíč měl platnost přesně jeden den, proto bylo nutné dodat operátorům novou knihu klíčů pouze jednou za 4 týdny. Pokud by byla použita šifra pouze jednou, náročnost by nezvladatelně rostla. Vezmeme-li i méně bezpečnou variantu a uvědomíme si rozsah působnosti Wehrmachtu a počty operátorů Enigmy (během války jejich počet přesáhl sto tisíc), kteří byli v různých částech válečných území v často špatně dostupných územích (na lodích, ponorkách... ), je distribuce zvládnutelná pouze s maximálním vypětím a neomezenými zdroji peněz. [14] Problém distribuce klíčů je tedy velice významný již dlouhou dobu, ať již použijeme jakkoliv bezpečnou šifru, a nabývá na významu zejména po přesunu nut-

4.5 Účastnící šifrované komunikace, dvakrát zamčená skříňka 21 nosti šifrovat komunikaci z armádních kruhů mezi veřejnost, vyžadující bezpečnou každodenní komunikaci například s bankou. Představme si hypotetickou situaci, kdyby mezi sebou nezávisle na bance mělo mít možnost komunikovat všech 6,5 miliónu klientů bank v České republice. Pak by muselo existovat přibližně [(6 500 000) 2 /2 = 42 250 000 000 000] klíčů, což by představovalo neúnosné náklady. Takto závažný problém se navíc zdál po dlouhá staletí neřešitelným. Toto dogma však padlo v 70. letech a byl to největší objev v oblasti kryptografie 20. století. O tento významný počin se nezasloužila žádná z velkých počítačových korporací jako je IBM nebo Sun Microsystems ani vládní kryptografické bezpečnostní agentury jakou je třeba NSA (National Security Agency), ale tým tří nezávislých vědců Whitfield Diffie, Martin Hellman a Ralph Merkle. Položili tak základ pro asymetrickou kryptografii, kterou se budeme zabývat v dalších kapitolách. [5] 4.5 Účastnící šifrované komunikace, dvakrát zamčená skříňka Představme si tři pomyslné účastníky naší šifrované komunikace. Alici, která chce každý den odeslat zprávu Bobovi takovým způsobem, že si bude jistá, že její obsah přečte pouze adresát tedy Bob. Třetí fiktivní osobou je Eva, která odposlouchává všechny dostupné komunikační kanály mezi Bobem a Alicí. Ta se snaží jakoukoliv zprávu od Alice zachytit a bude se pokoušet o získání jejího obsahu. Alice o Eviných pokusech ví a zná i základní kryptografické metody, proto pro ni není problém každou zprávu Bobovi zašifrovat. Problém s distribucí klíčů řeší jedinou bezpečnou cestou a to tak, že se jednou za měsíc s Bobem sejdou a 30 rozdílných klíčů si předají. Toto řešení jim vydrží pouze do doby, kdy Bob odjíždí do vzdálené země a již se s Alicí nemůže osobně scházet. Kurýra se Alice pro předání klíčů použít bojí, protože je nejen drahý, ale především Eva má možnost jej uplatit či jinak od něj seznam klíčů získat. Alice však přijde se spásným nápadem jak zprávu bezpečně předat bez vysokých nákladů a nutnosti se s Bobem osobně sejít. Navrhne Bobovi pro předávání zpráv dvakrát zamčenou skříňku. [1] Eva symbolizující v šifrované komunikaci útočící stranu, je z potenciálního útoku vždy podezírána. Proto se Alice proti útoku pojistí zprávu před odesláním zamkne do cestovního trezoru a pošle běžnou poštou Bobovi. Trezor je bezpečný natolik, že si odesílatel a příjemce mohou dovolit požádat například i Evu, aby zamčenou skříňku Bobovi předala osobně. Jakmile Eva zásilku předá, Bob ji opatří svým zámkem a pošle po Evě zpět Alici. Ta zásilku přijme, svůj zámek odemkne a skříňku zamčenou nyní již jen Bobovým zámkem znovu odešle. Bob jednoduše odemkne klíčem, který má pouze ve své moci a přečte si obsah zprávy. Eva neměla žádnou šanci odposlechnout nebo odcizit klíč, k jeho výměně mezi Alicí a Bobem totiž vůbec nemuselo dojít. Toto je však pouze abstrakce toho, jak potřebujeme, aby bezpečná šifrovaná komunikace probíhala. V oblasti šifrování je u složitějších klíčů nutné postupovat při dešifrování zprávy zašifrované pomocí dvou klíčů metodou LIFO. Poslední použitý

22 4 VÝCHODISKA PRO TÉMA ASYMETRICKÁ KRYPTOGRAFIE klíč musí být odstraněný jako první. Příklad k této problematice lze nalézt v příloze B. [1] Jak je dobře vidět v příkladech uvedených v příloze B, je princip dvakrát zamčené skříňky aplikovatelný pouze na nejjednodušší šifry, které není problém v krátké době prolomit. Proto je tento princip ve světě kryptografie nepoužitelný, ale byl inspirací při dalším pátrání po řešení problému distribuce klíčů. 4.6 Modulární aritmetika, jednosměrná funkce Skupina kolem W. Diffieho se zabývala v 70. letech hledáním řešení problému distribuce klíčů. Věnovali se výzkumu v oblasti jednosměrných matematických funkcí, které mají tu jedinečnou vlastnost, že je jednoduché je provést, ale velice těžké provést funkci inverzní. Rozpůlené jablko již nesložíme dohromady, vypitou lahev již původním obsahem nenaplníme, z vařeného vejce již slepice nikdy nebude. Takováto vlastnost by byla velice výhodná i pro šifrování, které je také funkcí přiřazující jednotce vstupu zašifrovanou jednotku na výstupu. [5] Obr. 3: Diffi-Hellmanovo schéma [35] Oblastí, kde lze najít jednocestných funkcí více, je modulární aritmetika, ve které se po každé operaci provede celočíselné dělení a výsledkem je zbytek. Operace modulo je viditelně závislá na jiné operaci, a to celočíselném dělení. Po provedení operace celočíselného dělení dostaneme výsledek a zbytek, který je právě výsledkem operace modulo. Výsledkem a modulo b na přirozených číslech je c takové, že patří do intervalu přirozených čísel v rozsahu < 0, b 1 >. V této aritmetice pracujeme s konečnou množinou cyklicky uspořádaných čísel. Této aritmetice bývá často přezdíváno hodinová aritmetika, protože výsledky aplikace operace modulo jsou uspořádány do kruhu a připomínají tím tak ciferník hodin. Příklad na tuto problematiku naleznete v příloze C. [20] Analogicky k předchozímu příkladu postupujeme při použití jiných operací jako je násobení, umocňování a ostatních. Jaký přínos má zavedení modulární aritmetiky pro kryptografii? Význam je v jednosměrnosti výpočtů popsané výše. Srovnejme

4.6 Modulární aritmetika, jednosměrná funkce 23 nyní obousměrnost výpočtu ve standardní aritmetice a jednosměrnost v modulární aritmetice na těchto příkladech: 5 x = 25, 5 x = 6 ( mod 7). Výsledek prvního příkladu je na první pohled patrný, u druhého je hledání výsledku výrazně těžší. Je to dáno faktem, že mezi jednotlivými čísly nebyla objevena žádná závislost a oproti standardní aritmetice zde nefunguje logaritmus. Pro výpočet nám může pomoci tabulka rostoucí hodnoty mocniny s měnící se funkční hodnotou a zbytku po dělení. (Tab. 1) Tab. 1: Rostoucí mocnina a zbytek po dělení mocnina 1 2 3 4 5 6 7 8 umocněno 5 25 125 625 3125 15625 78125 390625 zbytek po dělení ( mod 7) 5 4 6 2 3 1 5 4 U takto malých čísel není problémem sestavit takovouto tabulku a nalézt výsledek. Pro větší čísla by bylo však hledání velice obtížné. Nalezení výsledek pro příklad 5567 x = 69 ( mod 76 789) se blíží k nemožnosti, máme tedy jednosměrnou funkci. Tuto funkci použije v tzv. Diffie-Hellmanově schématu výměny klíče Alice a Bob pro určení tajného klíče v tabulce níže. (Tab. 2) Eva odposlechne veškerou komunikaci a snaží se o prolomení.[1] Tab. 2: Alice a Bob stanovují klíče Alice Bob Eva 1 Dohodnou běžným způsobem jednosměrnou funkci Odposlechne komunikaci Z x ( mod Y ) a zvolí Z = 7 a Y = 13. a získá funkci i hodnoty Y a Z. 2 Zvolí náhodné tajné číslo A = 16. Zvolí náhodné tajné číslo B = 11. Nezná ani A, ani B. 3 Dosadí A do předpisu Dosadí B do předpisu A ani B se nepřenáší, 7 A ( mod 13) a vypočte 7 B ( mod 13) a vypočte nemá jak hodnoty odposlechnout. 7 16 = 9 ( mod 13). 7 11 = 2 ( mod 13). 4 Odešle běžným způsobem vypočtené číslo AA = 9. 5 Alice dosadí do BB A ( mod 13) a získá 2 16 = 3 ( mod 13). Odešle běžným způsobem vypočtené číslo BB = 9. Bob dosadí do AA B ( mod 13) a získá 9 11 = 3 ( mod 13). 6 Alice a Bob dospěli ke stejné hodnotě klíče 3, aniž by si její přesnou hodnotu museli osobně předat. Odposlechne komunikaci a získá hodnoty AA a BB, které však nejsou klíči. Zná předpis jednosměrných funkcí v této podobě: 7 A = 9 ( mod 13) a 7 B = 2 ( mod 13) Sestaví tabulku funkčních hodnot a podaří se jí klíč určit. Její šance klesne, jsou-li použity mnohem vyšší hodnoty.

24 4 VÝCHODISKA PRO TÉMA ASYMETRICKÁ KRYPTOGRAFIE Takováto výměna klíčů způsobila v roce uveřejnění 1976 převrat v kryptografii a posunula metody kryptografie velkým skokem dopředu. (Obr. 3) Tato metoda však byla tehdy v plenkách a měla spoustu nedostatků v podobě nepohodlnosti vzájemné výměny informací pro ustavení klíče nebo jeho neefektivní distribuce. Systém Diffie- Hellman-Merkle sice problém výměny klíčů definitivně nevyřešil, ale byl to velice významný krok v oblasti šifrování.

5 ASYMETRICKÁ KRYPTOGRAFIE, ALGORITMY 25 5 Asymetrická kryptografie, algoritmy Asymetričnost je vlastnost objektu nebo jevu, která má v češtině význam opačný ke slovu symetrie. V procesu symetricky šifrované komunikace, tak na straně odesílatele i příjemce nalezneme stejný klíč použitý jak pro zašifrování, tak pro operaci opačnou. (Obr. 1) V oblasti asymetrického šifrování je situace odlišná. Odesílatel a příjemce nepoužijí stejné klíče pro zašifrování a rozšifrování, tyto klíče jsou však matematicky spojeny. Použité klíče jsou označovány podle svého charakteru jako soukromý a veřejný klíč. Díky základu položenému na principu jednosměrné funkce veřejně distribuovaný klíč nedovolí zašifrovanou zprávu rozšifrovat. [18] Toto je totiž umožněno pouze vlastníku příslušného v tajnosti drženého soukromého klíče. (Obr. 4) Obr. 4: Asymetrické šifrování [36] 5.1 The knapsack algorithm (batohový algoritmus) Jak víme, hlavním problémem symetrických algoritmů je bezpečný přenos klíče. Algoritmus založený na batohovém problému zařazeného do kategorie kompletně nepolynomiálních problémů byl jedním z prvních pokusů jak potíž s výměnou klíčů vyřešit. Bezpečnost algoritmu vyplývá z faktu, že příklady z kategorie NP úplných problémů umíme zatím řešit pouze v exponenciálním čase. Algoritmy postavené na batohu neměly zpravidla dlouhého trvání a prakticky jsou nepoužitelné. Princip šifrování totiž neodpovídá matematickému základu a řešení obtížného problému se dá jednoduše obejít. Jejich obliba neopadá díky jejich názornosti a jednoduchosti vysvětlení základních principů asymetrické kryptografie. [32] Samotné zadání vypadá velice jednoduše, ale časová náročnost exponenciálně roste s přibývajícím počtem předmětů. Zadání zní takto:

26 5 ASYMETRICKÁ KRYPTOGRAFIE, ALGORITMY Z dané množiny věcí, které mají všechny svou určitou nezápornou hmotnost, vyberte takovou podmnožinu, která splní požadavek na přesnou celkovou hmotnost batohu. Variantou batohu, která lze jednoduše vyřešit je případ, kdy váha každé položky není nižší než hmotnost předcházejících dohromady (superrostoucí batoh). Při řešení budeme postupovat takto: 1. Seřaď věci podle hmotnosti od nejtěžší po nejlehčí. 2. Vezmi první věc v pořadí a porovnej její hmotnost s rozdílem požadované celkové hmotnosti batohu a hmotností předmětů v batohu již obsažených. 3. Je-li hmotnost potenciálně přidávané věci větší, vyřaď ji, jinak ji do batohu přidej. 4. Pokud nebylo dosaženo požadované hmotnosti a nebyly vyčerpány všechny dostupné předměty, tak pokračuj znovu od bodu 2. Bylo-li dosaženo požadované hmotnosti, úloha je vyřešena. Jsou-li předměty již vyčerpány a nebylo dosaženo dané hmotnosti batohu, úloha nemá řešení. Význam v oblati šifrování je v tom, že triviální řešení superrostoucího batohu spojíme se soukromým klíčem a normální batoh s veřejným klíčem. Pro reálné šifrování je ještě nutno stanovit matematickou funkci, která šifruje pomocí klíče otevřený text na text šifrovaný, a princip převodu soukromého batohu na batoh veřejný. Martin Hellman a Ralph Merkle přišli s tímto řešením.: 1. Převod tajného klíče (lehce řešitelný batoh) na klíč veřejný (obtížně řešitelný batoh) bude probíhat tak, že zvolíme modulo m, které je větší než celkový součet hodnot (hmotnost), který označíme w. 2. Zvolíme číslo n takové, že je s m nesoudělné. 3. Každý prvek množiny vynásobíme n ( mod m). 4. Zašifrování jednoho bitu pak probíhá tak, že pokud jsme daný objekt do batohu zahrnuli použijeme jedničku, jinak nulu. 5. Pro rozšifrování příjemce vynásobí hodnoty šifrovaného textu z 1 mod m. Tento přepočet vyjadřuje inverzi k n (mod m) a snadno ukážeme, že (a n mod m) z mod m = a. Podívejme se nyní na tento algoritmus v rámci tohoto příkladu: Máme veřejný batoh [3, 4, 9, 19, 38, 77]. Modul m zvolíme jako m = 155 a nesoudělné n jako n = 27. Výpočet veřejného batohu proběhne takto: 3 27 mod 155 = 81 4 27 mod 155 = 108 9 27 mod 155 = 88 19 27 mod 155 = 48 38 27 mod 155 = 96 77 27 mod 155 = 64

5.2 Přichází veřejné a soukromé klíče 27 Veřejný klíč je tedy stanoven na [81, 108, 88, 48, 96, 64]. Zprávu 100110001101010001 rozdělíme po šesti bitech na 100110 001101 010001. Rozdělení na šestibitové bloky provedeme proto, že máme šest položek v batohu. 1. 100110 odpovídá zašifrovaně: 81 + 48 + 96 = 225 2. 001101 odpovídá zašifrovaně: 88 + 48 + 64 = 200 3. 010001 odpovídá zašifrovaně: 108 + 64 = 172 Šifrovaná zpráva je tedy [255, 200, 172]. Chceme-li zprávu rozšifrovat, použijeme inverzi k n ( mod m) tedy n z pro kterou platí, že n z je kongruentní s 1 ( mod m). Každý blok dopočteme jako b z ( mod m). V tomto příkladě z = 23, pomocí kterého vypočteme: 1. 225 23 mod 155 = 60 = 3 + 19 + 38 = 100110 2. 200 23 mod 155 = 105 = 9 + 19 + 77 = 001101 3. 172 23 mod 155 = 81 = 4 + 77 = 010001 Výsledná zpráva 100110001101010001 přesně odpovídá původní nezašifrované zprávě. [31] Pro ověření pochopení batohového algoritmu lze využít níže zadaného příkladu, jehož postup řešení je identický k předešlému: K soukromému batohu [4, 6, 11, 24, 48, 95] stanovte modul m větší než součet věcí v batohu a k němu nesoudělné n. Dále vypočtěte hodnoty veřejného batohu. Veřejným klíčem zašifrujte libovolnou zprávu a zpětně ji pomocí známého principu rozšifrujte. Porovnejte původní a rozšifrovanou zprávu. 5.2 Přichází veřejné a soukromé klíče První z klíčů, takzvaný Veřejný klíč, je volně šiřitelný a je vystaven na důvěryhodném serveru, kde kdokoliv, kdo chce zaslat šifrovanou zprávu do vlastních rukou konkrétní osobě, klíč nalezne a poté použije. Zprávu zašifrovanou tímto klíčem nerozšifruje ani odesílatel, ani nikdo jiný mimo adresáta výhradního držitele osobního klíče. Tento klíč je udržován v tajnosti a v případě jeho prozrazení ztrácí systém bezpečnost. Klíč je použit právě tehdy, obdrží-li adresát veřejným klíčem šifrovanou zprávu určenou jemu. Alice i Bob disponují každý dvojicí rozdílných klíčů s rozdílným určením i charakterem. Alice, pokud chce odeslat šifrovanou zprávu Bobovi, nalezne Bobův veřejný klíč ve veřejném seznamu klíčů, zprávu jím zašifruje a odešle. (Obr. 5) Ani sama odesílatelka po zašifrování není schopna zprávu rozšifrovat. V tento moment si všimněme, že již není nutná mezi Alicí a Bobem vzájemná výměna nutných dat pro zašifrování zprávy, jak tomu bylo při ustavování klíče u Diffie-Hellman-Merkleho. Komunikace je asynchronní a Bob může přijmout a rozšifrovat zprávu svým osobním klíčem kdykoli později po odeslání. Stejný klíč by pro zašifrování zprávy určené Bobovi použila například i Eva a kdokoliv jiný. [2] Krom jiného tento mechanizmus řeší i problém distribuce klíčů. Všechny dostupné veřejné klíče jsou volně k dispozici, nejsou předmětem vlastní komunikace. Osobní klíče zůstávají výlučně v držení jejich majitele. V tomto tkví rozdíl v principech fungování symetrické a asymetrické šifry.

28 5 ASYMETRICKÁ KRYPTOGRAFIE, ALGORITMY Obr. 5: Bob a Alice používají veřejný a soukromý klíč [37] Princip asymetrické šifry si také lze představit na mechanizmu podobném použití zámků a klíčů u dvakrát zamčené skříňky. Alice odešle Bobovi zásilku odemčených zámků bez klíčů, kterými Bob zamkne Alici odesílanou zásilku pouhým zaklapnutím zámku. Alice je jedinou držitelkou klíče a pouze ona může zásilku odemknout. Stejně jako bylo nutno nalézt matematickou reprezentaci jednosměrné funkce pro praktické použití principu dvakrát zamčené skříňky (Diffie-Hellman- Merkle), tak i zde bez ní zůstává princip v teoretické rovině. Na úspěch již nedosáhl nikdo z trojice Diffie-Hellman-Merkle, dějiny přepsali jíní: Ronald Rivest, Adi Shamir a Leonard Adleman. Podařilo se jim vyřešit problém distribuce klíčů tak, aby komunikace mohla probíhat asynchronně. 5.3 RSA Jednosměrná funkce, kterou by bylo možné používat podle principů asymetrické kryptografie s veřejným klíčem, je funkcí, která se za určitých podmínek stává obousměrnou. To je možné pouze tehdy, jsme-li držitelem jisté speciální informace, umožňující funkci invertovat a zprávu rozšifrovat, kterou je soukromý klíč. [27] RSA je jeden z nejpoužívanějších kryptografických algoritmů, jehož název vznikl z prvních písmen příjmení jeho autorů (Rivest, Shamir, Adleman). Vstupem jednosměrné funkce je nezašifrovaná zpráva převedená na číslo. Výstupem aplikace funkce je zašifrovaná zpráva jiné číslo. V RSA je využito faktu, že v matematice není algoritmicky náročné vzít dvě jakkoliv velká čísla a spočítat jejich součin. Inverzní funkce, tedy rozklad výsledného násobku na prvočinitele, je operací nelehkou, zvlášť použijeme-li jako násobky dostatečně velká prvočísla. Do jednoho miliónu se k použití nabízí celkem 78 498 prvočísel. Algoritmy pro rozložení čísla na prvočinitele mají exponenciální časovou složitost. Pro pochopení metody RSA potřebujeme rozšířený Euklidův algoritmus, což je algoritmus pro nalezení největšího společného dělitele dvou celých čísel. Příklad k této problematice naleznete v příloze E. Alici a Bobovi již přestala vyhovovat metoda Diffie-Hellman-Merkleho a začnou používat RSA. (Obr. 5) Alice již nechce čekat, až bude Bob vzhůru, aby s ním vyměnila potřebná data k zašifrování zprávy, a začala si dopisovat i s dalšími něko-

5.3 RSA 29 Tab. 3: Bob a Alice používají RSA první část 1 2 3 4 5 Alice Bob Eva Alice zvolí y = 13 a z = Neprobíhá žádná veřejná komunikace. Hodnoty y a 31, která zachová v tajnosti. z nejsou předmětem žádné komunikace. Dosadí do předpisu: y z = N, vypočte 13 31 = 403 a stanoví hodnotu e = 23 Zveřejní hodnoty N a e. Veřejný klíč je tedy (23, 403) Neprobíhá žádná veřejná komunikace. Od zveřejnění jí již může Bob zašifrovat a odeslat zprávu. Bob šifruje zprávu ve znění: A. Převede zprávu na číselnou reprezentaci a dostane číslo: 01000001, které má v desítkové soustavě hodnotu M = 65 Bob nalezne Alicin veřejný klíč N = 403 a e = 23. Dosadí do předpisu ZZ = M e ( mod N) a vypočte ZZ = 65 23 ( mod 403) = 104. Eva je připravená odposlouchávat jejich komunikaci. Je jí známa veřejná hodnota N a e. Neprobíhá žádná veřejná komunikace. lika kamarády. Původní řešení již Alice považuje za překonané. Podívejme se nyní na tento příklad, ve kterém bude Bob pro jednoduchost používat nízké hodnoty prvočísel a zprávu pro Alici vytvoří o délce jednoho znaku. Princip RSA zůstává zachován, v reálné situaci ale musí Bob pro dosažení bezpečnosti použít prvočísla několikanásobně vyššího řádu. [25] Doplňme jen, že spočítáme-li φ(n) = (y 1) (z 1), dostaneme významnou hodnotu z teorie čísel, tzv. Eulerovu funkci. Při stanovení hodnoty šifrovacího koeficientu e je vhodné ho vybrat z intervalu, kde minimum tvoří maximum z hodnot y a z zvětšených o jedničku a maximum výsledek výpočtu již jmenované Eulerovy funkce tak, aby bylo s φ(n) nesoudělné. V reálném použití je potřeba kontrolovat, zda je hodnota dešifrovacího exponentu d dostatečně velká (bývá uváděno větší než dvojkový logaritmus N). Pokud chceme dokázat to, že lze zašifrovanou zprávu opravdu rozšifrovat, vycházíme z předpokladů definovaných Eulerem: [29] i φ(n) mod N = 1 M ed mod N = M

30 5 ASYMETRICKÁ KRYPTOGRAFIE, ALGORITMY Tab. 4: Bob a Alice používají RSA druhá část Alice Bob Eva 6 Přijala ZZ. ZZ je šifrovaný text, který odešle Alici. Odposlechla ZZ. 7 8 Pro rozšifrování dopočte d z rovnice e d = 1 ( mod (y 1) (z 1)), 23 d = 1 ( mod 360). Pomocí rozšířeného Eukleidova algoritmu dostane d = 47. Soukromý klíč je (47, 403). Dosadí do předpisu M = ZZ d ( mod N a získá M = 104 47 ( mod 403) = 65 Získala původní zprávu A. Neprobíhá žádná veřejná komunikace. Má hodnoty N = 403, e = 23 a ZZ = 104. Disponuje rovnicí 23 d = 1 ( mod ( 403/z 1) (z 1)) a 104 = M 23 ( mod 403). Pokud jsou prvočísla dostatečně vysoká, tak to k odhalení zprávy nestačí. Eva neuspěla. dále pak: z toho dokážeme: f1 : M e mod N = ZZ f2 : C d mod N = M f2(f1(m)) = f2(m e mod N) = (M e mod N) d mod N = = M ed mod N = M k φ(n)+1 mod N = M M k φ(n) mod N = M 1 mod N = M Pro tuto práci byla vytvořena i aplikace, na které lze prakticky vyzkoušet asynchronní šifrovanou komunikaci mezi Alicí a Bobem. Je využito principu RSA a odesílaná zpráva je šifrována pomocí veřejného klíče příjemce. Program naleznete na přiloženém CD. Podrobnosti o tomto programu naleznete v samostatné kapitole. Zde uvádím jen ilustrační screenshot. (Obr. 6) Pokud chce Eva zaútočit na komunikaci Alice a Boba, má šanci uspět při hledání dvou prvočísel, které po vynásobení dají výsledek N = 403, jen díky jejich nízkým hodnotám. (Tab. 3, Tab. 4) Proces hledání neznámých hodnot za současné znalosti výsledku jejich násobení je znám jako faktorizace. V případě dostatečně velkých prvočísel má šanci pouze tehdy, když přijde s velice rychlou metodou faktorizace, odcizí tajné hodnoty y a z, nalezne díry v principech fungování RSA nebo vhodně nasimuluje použitý generátor náhodných čísel. [27] V našem případě je počet prvočísel nižších jak 403 jen 79. Evin postup při faktorizaci je patrný z této tabulky. (Tab. 5)

5.3 RSA 31 Obr. 6: Screenshot programu Jednoduché RSA Tab. 5: Eva faktorizuje 403 Krok číslo Prvočíslo p 403 mod p =? (p = 0) 403 div 13 =? (prvočíslo) 1 2 1-2 3 1-3 5 3-4 7 4-5 11 7-6 13 0 31 Stačilo jí tedy testovat, zda dané číslo dělí beze zbytku veřejnou hodnotu 403. Zde stačilo projít jen šesti kroky. Použije-li Alice jako veřejnou hodnotu číslo 999 962 000 357, musí Eva počítat s 78 498 prvočísly, pokud se rozhodne toto číslo faktorizovat. Více pozornosti bezpečnosti věnujeme v kapitole Kryptoanalýza a možnosti útoku na kryptografické mechanizmy. Má-li Eva k dispozici pouze kalkulačku, na které je schopna ověřit 5 prvočísel za minutu, tak stráví nad výpočty nepřetržitě necelých 11 dní. Jak se ovšem změní situace, disponuje-li Eva superpočítačem, který ověří 1 000 prvočísel za vteřinu? Bezpečnost použití čísel tohoto řádu je ta tam. Z historického hlediska doplňme alternativní verzi vzniku asymetrické kryptografie. Britská vláda informovala o tom, že na její principy se přišlo již dříve v britské zpravodajské službě GHCQ za přispění Jamese Ellice a Clifforda Cockse. Existovalo však mnoho důvodů pro utajení, a proto byla tato fakta zveřejněna až po mnoha letech od zveřejnění RSA. [1] Je nám známo, že Alicin veřejný klíč je volně dostupný k použití. Obdrží-li Alice

32 5 ASYMETRICKÁ KRYPTOGRAFIE, ALGORITMY zprávu, pod kterou je uvedeno Bobovo jméno, nemůže si být jistá, zda se nejedná o podvrh a opravdovým autorem textu není třeba Eva. Na druhé straně použije-li Bob svůj soukromý klíč k zašifrování zprávy, je Alici jasné, že ji odeslal Bob. Zprávu ovšem díky veřejnému klíči bez problému přečte i kdokoliv jiný. Často bývá také potřeba zašifrovat velké množství dat, pro které by bylo výhodnější z časového hlediska využít rychlou symetrickou šifru než pomalou a těžkopádnou asymetrickou metodou. Vhodně využít a zkombinovat výhody symetrických a asymetrických metod spolu s HASH funkcí se povedlo Philu Zimmermannovi koncem 80. let 20. století v programu PGP ke kterému se dostaneme později (Pretty Good Privacy). 5.4 DSA a ECDSA DSA (Digital Signature Algorithm) je vedle RSA jedním z nejznámějších schémat pro digitální podpisy. DSA se stal standardem Americké vlády pro digitální podpis. K jeho návrhu došlo v roce 1991 americkým institutem NIST, což je vládní instituce pro vydávání standardů a osvědčení. DSA je patentováno pro USA a jeho autorství je připsáno jednomu z bývalých zaměstnanců NSA. Chce-li Alice podepsat zprávu, kterou chce poslat Bobovi, bude postupovat takto: 1. Stanovení klíčů: a) P prvočíslo b) Q prvočíslo takové, že Q dělí P c) H libovolné celé číslo, pro které platí: d) pro G platí: 1 < H < P 1 H P 1 Q mod P > 1 G = H P 1 Q e) X je náhodně generováno a platí, že: mod P 0 < X < Q f) Y = G X mod P g) K je náhodně vygenerováno a platí, že: h) Veřejný klíč tvoří [P, Q, G, Y ] i) Soukromý klíč tvoří [X] 0 < K < Q 2. Podepsání zprávy: a) M je hodnota reprezentující otevřený text b) R = (G K mod P ) mod Q

5.4 DSA a ECDSA 33 c) Pro S platí: S = Sha(M) + X R mod Q K Sha() je funkce vracející výsledek HASH funkce SHA1. Může vypadat například takto: 2a459380709e2fe4ac2dae5733c73225ff6cfee1 d) (R, S) je digitální podpis 3. Ověření platnosti: a) M je ověřovaná zpráva b) (R, S ) je ověřovaný podpis c) Ověříme platnost (0 < R < Q) d) Ověříme platnost (o < S < Q) e) H = Sha(M) f) Pro U platí: U = H S mod Q g) Pro W platí: W = R S mod Q h) V = ((G U Y W ) mod P ) mod Q i) pak jestliže se R = V, tak se jedná o autentickou zprávu Druhou variantou DSA je ECDSA (Elliptic Curve Digital Signature Algorithm), které vzniklo přenesením DSA nad algebru bodů eliptické křivky. Obě dvě varianty jsou v USA schváleny standardem pro použití ve vládních institucích. Tento algoritmus byl přijat v roce 1999 jako ANSI (American National Standards Institute) standard a v roce 2000 jako IEEE (Institute of Electrical and Electronics Engineers) a NIST (National Institute of Standards and Technology) standard. Tento systém byl ovšem vynalezen již v roce 1985 (Neal Koblitz a Victor Miller). Je jimi zbořen mýtus o tom, že asymetrická šifra a podpis jsou jedno a to samé. Slouží totiž pouze pro podepisování. [23] [30]. Jelikož výkon výpočetní techniky stále roste, je nutné pro bezpečnost prodlužovat i délku klíčů pro algoritmy založené na klasickém diskrétním logaritmu (např. RSA). V dnešní době se doporučují klíče délky od 2048 bitů. Kryptografie založená na problému diskrétního logaritmu v grupách bodů eliptických křivek má tu výhodu, že pro vhodné křivky zatím nejsou známy útoky s nižší než exponenciální časovou složitostí. To je důvodem, proč nám stačí klíče kratší než u RSA. Kratší klíče jsou výhodné zejména pro čipové karty nebo hardwarové šifrovací komponenty. Díky těžší pochopitelnosti struktury eliptických křivek vládne poměrná nejistota v oblasti oprávněnosti jejich nasazení. K tomuto tvrzení nepřispívá ani větší náročnost implementace. [14]

34 5 ASYMETRICKÁ KRYPTOGRAFIE, ALGORITMY 5.5 ElGamal ElGamal je algoritmus, který přišel na svět o něco později než RSA. Jeho základy jsou postaveny na problému složitosti řešení diskrétního logaritmu. Jedná se o nedetermistický kryptosystém, protože zašifrovaný text závisí na otevřeném textu a na hodnotě náhodně generovaného tajného parametru. Existuje tedy možnost existence více verzí zašifrování totožného otevřeného textu. Dešifrování je ovšem jednoznačné. ElGamal má i svoji vylepšenou variantu, Menezes-Vanstoneuv algoritmus postavený na eliptických křivkách. [14] Tento algoritmus lze vysvětlit jako: Mějme m, q, k, Y, která jsou z množiny přirozených čísel. Pro tato čísla platí, že: Y = q k mod m. Potom každé číslo k odpovídající uvedené rovnici nazveme diskrétní logaritmus Y vzhledem k modulu m. Tato definice nedefinuje číslo k jednoznačně, proto se někdy upravuje tak, že ze všech možných diskrétních logaritmů ve smyslu předchozí definice se vybere ten nejmenší. Pro kryptografii má problém řešení diskrétního logaritmu význam v tom, že je snadné spočíst Y při znalosti k, m, q, ale nesmírně obtížné vypočítat diskrétní logaritmus Y vzhledem k modulu m. [5] Podívejme se nyní jak tento algoritmus použít pro šifrování. Hodnoty m, q, Y jsou veřejné a hodnota k je tajná. Pomocí těchto čtyř hodnot a tajného náhodného čísla r lze zašifrovat otevřený text reprezentovaný číselnou hodnotou x do tvaru (y 1, y 2 ) takto: y 1 = q r mod m y 2 = xy r mod m Máme tyto hodnoty: m = 2579, q = 2, k = 765, potom: Y = 2 765 mod 2579 = 949 Alice vybere náhodné číslo r = 853 a zašifruje zprávu x = 1299 tímto způsobem: y 1 = 2 853 mod 2579 = 435 y 2 = 1299 949 853 mod 2579 = 2396 Tuto dvojici čísel odešle Alice Bobovi, který získá otevřený text x za použití těchto vztahů: z = (y k 1) 1 mod m x = y 2 z mod m Bob dosadí za naznáme a získá původní otevřený text x = 1299: z = (435 765 ) 1 mod 2579 = 1980 x = 2396 1980 mod 2579 = 1299

5.5 ElGamal 35 Tohoto algoritmu existují dvě verze, jedna určená pro digitální podpis a druhá určená pro šifrování. Tento algoritmus je díky společnému základu velice podobný již dříve zmiňovanému D-H modelu. Ve srovnání s RSA je tento algoritmus výrazně méně oblíben. To je způsobeno kupříkladu tím, že zašifrovaná data jsou dvakrát delší než nešifrovaná, a především existencí modernějšího silnějšího následníka v podobě DSA. [14][30]

36 6 ASYMETRICKÁ KRYPTOGRAFIE, APLIKACE 6 Asymetrická kryptografie, aplikace 6.1 PGP (Pretty Good Privacy) V současnosti se často hovoří o dnešní době jako o Informačním věku. Informace se stala tím nejcennějším obchodním artiklem. Každý den proběhne množství elektronických bankovních operací, elektronických konferencí mezi obchodními partnery, podání elektronických žádostí státním úřadům a dalších elektronických komunikací. Jak vidno, šifrování přestalo být výsadou armád, tajných služeb špiónů a vysokých státních úředníků. Je zřejmé, že uživateli šifer již nejsou pouze kryptologové a v kryptografii zběhlí uživatelé, kteří disponují nejmodernějšími technologiemi, ale všichni, kteří chtějí bezpečně komunikovat například s bankou, krajským úřadem, policií nebo společníkem firmy pomocí průměrné technologie a základního softwarového vybavení. Na aplikace umožnující šifrovánou komunikaci je proto kladen důraz na rychlost, nenáročnost, jednoduchost, bezpečnost a spolehlivost. [5] Obr. 7: Alice podepisuje zprávu soukromým klíčem [38] RSA nám nabídla dočasnou neprolomitelnost při použití dostatečně velkých prvočísel a přinesla možnost asynchronní šifrované komunikace, čímž vyřešila problém distribuce klíčů. Symetrické šifry jako je například šifra DES nebo její nástupce AES mají podstatně nižší nárok na výpočetní výkon a jsou zároveň dostatečně silnou šifrou. V dnešní době již běžní uživatelé disponují dostatečným výkonem pro použití asymetrické kryptografie. Tak tomu však nebylo v době vzniku RSA. Podobně výkonné počítače byly dostupné pouze velkým organizacím, tajným službám a univerzitám. To bylo hlavním motorem pro vznik PGP, v kterém si dal Zimmermann za cíl rozšířit možnost bezpečně šifrovat mezi uživatele bez přístupu k dostatečnému výkonu. Použije-li Alice k zašifrování zprávy svůj soukromý klíč, může ji rozšifrovat za použití veřejného klíče kdokoliv a mechanizmus tak zdánlivě ztrácí smysl. Ve skutečnosti zašifrováním této zprávy svým osobním klíčem Alice dokázala to, že je prokazatelnou autorkou dané zprávy. (Obr. 7) Zimmermann v PGP nepřišel s žád-

6.1 PGP (Pretty Good Privacy) 37 ným novým převratným algoritmem, pouze vhodně zkombinoval symetrickou šifru, asymetrickou šifru a nepopiratelný elektronický podpis do vhodné podoby. (Obr. 8) V PGP přichází elegantní řešení pro odstranění neuspokojivé rychlosti asymetrické šifry, kdy je samotná zpráva zašifrována rychlou symetrickou šifrou a klíč, který potřebuje adresát k rozšifrování symetrické šifry, je zašifrován asymetrickou šifrou, čímž se vyřeší problém distribuce klíčů u symetrických šifer. Jeden z algoritmů, které byly pro PGP vybrány je IDEA, která má klíč dlouhý 128 bitů. Počet možných klíčů je tedy 2 128 V případě pokusu o útok hrubou sílou na zprávu zašifrovanou pomocí IDEA by pomocí miliardy počítačů, které dokáží každý ověřit miliardu klíčů za vteřinu, trvalo otestování všech klíčů přibližně tisíckrát déle než je stáří vesmíru, které je odhadované na 1, 2 10 10 roků. [5] Útok touto cestou můžeme v dnešní době považovat v podstatě za nemožný. Dalším úskalím šifrování je tvorba veřejného a soukromého klíče. Tyto klíče jsou složeny z obrovských prvočísel, které jsou pro šifrování nezbytné. Do vygenerování takovýchto čísel musí vstoupit určitým způsobem náhodný faktor, který zabezpečí to, že bude mít každý uživatel unikátní dvojici klíčů. PGP chce po odesílateli pouze pohnout myší, což vnese do generování klíčů potřebnou náhodu. [1] Hledání pravidelnosti v generovaných prvočíslech je také jednou z možností napadení algoritmů založených na veřejném a soukromém klíči. O dokazatelnost autorství v elektronické komunikaci již uvažovala trojice Diffie- Hellman-Merkle, když přišli s myšlenkou soukromých a veřejných klíčů. Chce-li Alice Poslat zprávu Bobovi, jednoduše zašifruje zprávu Bobovým veřejným klíčem a on pro rozšifrování použije svůj soukromý klíč. Alice má jistotu, že její zprávu přečte pouze oprávněný adresát. Obrátíme-li mechanizmus a necháme Alici zašifrovat zprávu svým soukromým klíčem, pak si muže být Bob jist, že zprávu napsala Alice. (Obr. 8) Příklad k této problematice naleznete v příloze E. Pokud chce Alice dosáhnout bezpečnosti a zároveň Bobovi dokázat, že zprávu napsala opravdu ona, zašifruje nejprve zprávu svým soukromým klíčem a poté Bobovým veřejným klíčem. Obr. 8: Schéma PGP [39]

38 6 ASYMETRICKÁ KRYPTOGRAFIE, APLIKACE Šifrování pomocí asymetrických klíčů je, jak už víme, zdlouhavé. Softwarové implementace algoritmů jako je RSA jsou přibližně tisíckrát pomalejší než ekvivalentní implementace algoritmů DES nebo IDEA. [5] Nám však stačí zašifrovat veřejným klíčem příjemce pouze malou část zprávy, kterou je klíč pro symetrickou šifru. Dále potřebujeme dokázat adresátovi, že obsah zprávy nebyl po podepsání nijak změněn. K tomu je použito tzv HASH funkce, což je matematická funkce zprávy, která lze na základě zprávy snadno spočíst. Opačný postup je velice obtížný až nemožný. Výstupem hash funkce je blok délky například 128 nebo 160 bitů, který maximálně charakterizuje vstupní blok dat. Výsledek je zakódován soukromým klíčem odesílatele, čímž je jednoznačně stanoveno, kdo je autorem zprávy. Pro ověření adresát nejprve rozšifruje hash pomocí veřejného klíče odesílatele, následně rozšifruje svým soukromým klíčem klíč symetrické šifry, pomocí něhož zprávu rozšifruje. Dále vypočte hash otevřeného textu a porovná jej z HASH zaslaným v těle zprávy. V případě shody je autorství i původnost dokázána. (Obr. 8) Philu Zimmermannovi se za tento počin nedostalo pouze slávy, ale i nepříjemností. Silné šifry byly totiž označeny za zbraň a jejich vývoz byl vládou USA vyznávající politiku Velkého bratra regulován. Dostalo se mu několikaletého vyšetřování, které jeho i program PGP zviditelnilo. Možná i proto bylo vyšetřování zakončeno jeho osvobozením. [5] Pro tuto práci byla vytvořena i aplikace, na které se dá otestovat, jak by mohla probíhat šifrovaná komunikace mezi Alicí a Bobem pomocí programu využívajícího stejného principu jako Zimmerman ve svém PGP. Program naleznete na přiloženém CD. Podrobnosti o této aplikaci naleznete v samostatné kapitole. Zde uvádím pouze tento ilustrační screenshot. (Obr. 9) V této aplikaci vystupuje jako odesílatel zprávy Alice a jako příjemce Bob. Alice má možnost vybrat v počátečních nastaveních jednu z použitých symetrických šifer a některou z HASH funkcí. Dále již vše funguje podle výše představeného mechanizmu. 6.2 Digitální a elektronický podpis V předchozí kapitole jsme si zevrubně popsali systém PGP, který využívá digitálního podpisu. Kapitola předpokládala alespoň základní představu o existenci digitální podoby podpisu. Teď se k digitálnímu podpisu vrátíme a přiblížíme si jeho vlastnosti. Digitální podpis je podmnožinou elektronického podpisu, kdy dochází k ověření totožnosti díky šifrování. Elektronický podpis zahrnuje navíc i dokazování totožnosti pomocí otisku prstu, snímku oční duhovky, snímku oční rohovky, čipů dokazujících totožnost nebo jiných. [4] Se vznikem elektronických dokumentů přišla potřeba nahradit vlastnoruční podpis podpisem elektronickým, který by stejně jako podpis napsaný rukou stvrzoval autentičnost, neporušenost obsahu a zodpovědost autora za to, co podepsal. Při používání elektronické komunikace někdy nepotřebujeme zprávu ani šifrovat, ale stačí nám prokázat adresátovi, že zpráva, kterou od nás přijal, je opravdu původní

6.2 Digitální a elektronický podpis 39 Obr. 9: Screenshot programu RSA-HASH-DES a nebyla po cestě nepřátelským internetem pozměněna. (Obr. 10) Představme si, jaké může mít následky i jen drobná úprava obsahu: Obr. 10: Cesta e-mailu internetem [40] Bombu svrhněte na bod o souřadnicích [N49 13 14.93; E16 35 3.12], podepsán gen. pluk. George Vomáčka pozměněná na: Bombu svrhněte na bod o souřadnicích [N49 13 14.93; E17 35 3.12], podepsán gen. pluk. George Vomáčka Z mého účtu číslo 1234643/0432 odešlete částku 5 000 kč a připište ji vlastníkovi účtu 8765543/0321. Děkuji Karel Vomáčka pozměněná na: Z mého účtu číslo 1234643/0432 odešlete částku 50 000 kč a připište ji vlastníkovi účtu 8765543/0321.

40 6 ASYMETRICKÁ KRYPTOGRAFIE, APLIKACE Děkuji Karel Vomáčka. V obou příkladech jsem provedly změnu jen jedné číslice. V prvním příkladě nebude zničen důležitý vojenský objekt, ale bomba bude svržena do neobydlené oblasti. V druhém případě přijde odesílatel o větší částku, než předpokládal. Digitální podpis nám pomůže těmto nežádoucím útokům zabránit. Je více než jasné, že rozkazy v armádě nemohou probíhat pouze z očí do očí nebo že je velice nevýhodné několikrát denně navštěvovat osobně banku a provádět běžné bankovní operace. Pro potvrzení totožnosti a zabránění podvržení zprávy připojíme na konec zprávy její otisk označený soukromým klíčem. Otisk neboli hash (Obr. 11) je výsledkem matematické funkce, která zhustí informace do jednoho velkého čísla. [5] Obr. 11: HASH funkce [41] Nezbytným krokem při přijetí digitálně podepsané zprávy je ověření, zda je daný podpis platný a patří zkutečně odesílateli. S tímto krokem úzce souvisí i problém s distribucí veřejných klíčů. Představme si situaci, kdy Alice komunikuje pouze s Bobem a navzájem si již osobně předali své veřejné klíče. Jejich bezpečné komunikaci nic nebrání. Situace se ovšem změní, pokud Alici chce poslat zprávu Bobův kamarád George. Alici nezbývá, než se s ním osobně sejít a vyměnit si navzájem své veřejné klíče. Kdyby totiž George vzal svůj veřejný klíč a odeslal ho spolu s první zprávou, Evě by stačilo zprávu zachytit, zaměnit Georgův podpis za svůj a odeslat zprávu Alici. Pak by Alice věřila, že dostává zprávy podepsané Georgem, ve skutečnosti však podepsané Evou. Co když Bob jako Georgův důvěrný kamarád podepíše svým soukromým klíčem Georgův veřejný klíč? Alice Bobovi důvěřuje, a proto je pro ni Bobův podpis dostatečným důkazem pravosti Georgova podpisu. Bob se stal v tomto případě jakousi certifikační autoritou. [4]

6.3 Další oblasti využítí asymetrických metod šifrování 41 6.3 Další oblasti využítí asymetrických metod šifrování Elektronický podpis a PGP však nejsou jedinými aplikacemi využívajícími některou s asymetrických metod. Šifrování je v dnešní době samozřejmostí ve spoustě oblastí, příkladem může být elektronické bankovnictví, elektronické obchodování, propojování počítačů na různých místech internetu do virtuální počítačové sítě a další. Velice oblíbeným protokolem aplikační vrstvy TCP/IP, který využívá kryptografických metod, je SSH. Jeho historie je již více jak deset let dlouhá, v současné době ho můžeme naleznout v podobě SSH-2. V SSH bývá pro autentizaci klienta využíváno RSA nebo DSA. Autentizace pomocí RSA vypadá zjednodušeně takto: 1. Klient a server se domluví na použití RSA 2. Klient pošle na server svůj veřejný klíč 3. Server již správný veřejný klíč má a s přijatým jej porovná 4. Server zašifruje výzvu klientovým veřejným klíčem a odešle klientovi 5. Klient použije svůj soukormý klíč k rozšifrování výzvy 6. Klient vypočte z otevřeného textu HASH a odešle zpět serveru 7. Server porovná přijatý HASH s HASH vypočteným z původní výzvy 8. Pokud server dojde ke shodě obou HASH, proběhla autentizace úspěšně Na unix-like systémech je SSH samozřejmostí, na platformě Windows uživatelé s oblibou používají PuTTY. Rozšířením SSH umožňujícím procházet filesystém, pracovat s adresáři a atributy je SFTP. [19] Další metodou zabezpečení přenosu je vrstva (protokol) SSL (Secure socket layer). Pro výměnu klíčů zde bývá například použito RSA, DSA, Fortezza nebo Diffie-Hellmanovo schéma. Podívejme se nyní, jak probíhá inicializace SSL spojení a zasílání klíče relace za použití algoritmu RSA. 1. Klient (prohlížeč) požádá server o SSL spojení spolu se svým veřejným klíčem (zpravidla generován spolu s instalací prohlížeče) 2. Server přijme požadavek a odpověď zašifruje pomocí veřejného klíče prohlížeče. Odešle také veřejný klíč serveru. 3. Prohlížeč po přijetí odpovědi odešle veřejným klíčem serveru šifrovaný požadavek na klíč pro šifrování celé relace 4. Jako odpověď odešle server veřejným klíčem prohlížeče šifrovaný klíč relace 5. Po přijetí se další komunikace šifruje tímto klíčem Internetové stránky šifrované pomocí SSL poznáme podle https:// na začátku adresy. Použitím https uživatel zabezpečuje svoji ochranu proti odposlechu a podvržení dat. Oproti http, který používá pro komunikaci port 80, používá SSL standartně port 443. Z protokolu SSL vychází protokol TLS, který funguje v podstatě stejně jako SSL, ale navzájem nejsou kompatibilní. [21] Technologie SSL bývá zpravidla využívána pro komunikaci s bankovními institucemi prostřednictvím internetu.

42 7 ASYMETRICKÁ KRYPTOGRAFIE, STANDARDY A BEZPEČNOST 7 Asymetrická kryptografie, standardy a bezpečnost 7.1 Certifikáty a certifikační autority V předchozích kapitolách jsme přišli k problému, jak spolehlivě dokázat to, že nabízený veřejný klíč, který bude použit pro šifrování, patří prokazatelně zamýšlenému adresátovi. Pokud by totiž došlo k záměně dvou veřejných klíčů, adresát by nejen že nemohl rozšifrovat zprávu jím zašifrovanou, ale důvěrné informace by se mohly dostat do rukou cizí osoby. Proto přišly na svět organizace označované jako Certifikační autority. Certifikační autorita je důvěryhodná instituce, která ověří fakt, že daný podpis náleží konkrétní osobě. Provede to stejně, jako to provedl Bob, když podepsal Georgův klíč, když chtěl George odeslat zprávu Alici. Certifikační autorita zaručuje podepsáním veřejného klíče a osobních údajů žadatele o certifikát svým soukromým klíčem. Certifikát vydaný certifikační autoritou tedy dokazuje dvojici vlastník digitální podpis. Ten obsahuje zpravidla dobu vypršení platnosti, jméno vydávající certifikační autority a její digitální podpis. [4] Dostane-li Alice podepsanou zprávu neznámým Georgem, ověří platnost u vydávající certifikační autority a má jistotu, s kým má tu čest. Obr. 12: Proces získání certifikátu [42]

7.2 PKI, PKCS 43 7.2 PKI, PKCS Výše uvedený princip stojí na faktu, že existuje důvěryhodná organizace, která má za úkol vydávat, spravovat a ověřovat pravost digitálních podpisů. (Obr. 12) Fungování těchto mechanizmů stojí na důvěře v třetí stranu, která se stává nepřímým účastníkem šifrované komunikace. V reálné situaci se pro zvýšení důvěry utvářejí seskupení autorit, které si navzájem dokazují svoji důvěryhodnost. Toto prostředí automaticky spravující veřejné klíče se nazývá Public Key Infrastructure (PKI). Základnu pro PKI tvoří řada standardů, doporučení RFC (Request For Comments) a zákonů. Cílem PKI je vytořit a spravovat důvěryhodné ovzduší v otevřeném síťovém prostředí Internetu. Základ je postaven především na asymetrické kryptografii, kterou už jsme se zabývali výše. Aby ovšem fungovalo vše, jak má, musí být zajištěna důvěryhodná distribuce veřejných klíčů a důvěryhodné přiřazení klíčů příslušným osobám. Toto je zajištěno pomocí digitálních certifikátů, jejichž cílem je ověření propojení osob s jejich veřejnými klíči. Certifikační autorita je místem, kde jsou jednotliví uživatelé PKI registrováni tak, aby zde mohla být ověřena jejich totožnost. Důvěra v certifikát spočívá vlastně v důvěře v podpis certifikační autority na digitálním certifikátu. Certifikační autorita ovšem není jedinou komponentou PKI. Mezi komponenty patří pro příklad také časová razítka, registrační autority, databáze certifikátů, seznamy neplatných certifikátů a další. [15] Mezi tuzemské certifikační autority patří například První certifikační autorita, Czechia, TrustPort a další. Významnou roli mezi standardy v kryptografii hrají Public-Key Cryptography Standards (PKCS), které se vztahují ke kryptografii soukromého klíče. Za těmito standardy stojí v součastnosti bezpečnostní divize společnosti EMC RSA Data Security, která také první standard v roce 1991 zveřejnila. Nejedná se proto o standardy v pravém slova smyslu, ale lze předpokládat, že budou příslušnými organizacemi jako standardy uznány. Jejich význam je patrný také v tom, že o nich zpravidla jako o standardech hovoříme. Tyto standardy existují například pro šifrování založené na RSA(PKCS #1), Diffie-Hellmanově výměně klíčů (PKCS #3), symetrickým šifrám (PKCS #5), syntaxi certifikátů (PKCS #6) a další. [17] 7.3 Kryptoanalýza a možnosti útoku na kryptografické mechanizmy Cílem útoku proti šifrování je získat otevřený text zašifrované informace nebo v případě elektronického podpisu její pozměna. Útoky lze kategorizovat například podle jejich typu (povahy), cíle útoku nebo podle dostupných informací použitelných k útoku. Podle povahy můžeme dělení provést takto: Útok proti použitému algoritmu Útočník se zpravidla snaží odhalit slabá místa na základě kryptoanalýzy založené na matematické analýze. Útok proti protokolu nebo implementaci

44 7 ASYMETRICKÁ KRYPTOGRAFIE, STANDARDY A BEZPEČNOST V tomto případě nezkouší útočník nalézt slabiny v samotném algoritmu, ale hledá chyby v implementaci nebo protokolu danou aplikací používaném. Útoky na kryptografické mechanizmy mohou mít řadu rozdílných cílů. Cíl útočníka může být zaměřen pro příklad na: Získání části nebo celého původního otevřeného textu Změna obsahu jedné konkrétní zprávy Získání soukromého klíče asymetrické šifry Získání klíče symetrické šifry Kompromitace použitých klíčů Znovuodeslání totožné zprávy bez narušení její platnosti Následky takovýchto útoků můžou být velice odlišné, pokud šlo například o utajení informace nebo o digitální podpis. Při získání soukromého klíče asymetrické šifry získává útočník možnost číst zprávy šifrované příslušným veřejným klíčem, odesílat pomocí něj šifrované zprávy nebo vystavovat nepravé podpisy. Zajímavou situací je kompromitace použitých klíčů. V tomto případě přestanou být důvěryhodné všechny dokumenty tímto klíčem podepsané. Tohoto útoku může zneužít i sám vlastník klíče v případě, že soukromý klíč má přístupný. Představme si situaci, kdy pro uzavření obchodního úvěru stačí potvrzení žadosti podepsáním soukromým klíčem. Těsně před podpisem však vlastník klíč zveřejní a následně provede podpis. Peníze vyzvedne a utratí, ale bance tvrdí, že smlouvu za něj mohl podepsat kdokoliv jiný, protože klíč byl kompromitován. Znovuodeslání zprávy je zdánlivě nevýznamné. Jak by však byl uživatel platební karty spokojen s tím, kdyby prodejce mohl odeslat požadavek na převod peněz z účtu kupujícího na účet prodávajícího hned několikrát? [22] Velice důležitou roli pro úspěch při útoku na kryptografický mechanizmus má i množství dostupných informací. To nám dává prostor pro další kategorizaci: Known-ciphertext attack V tomto případě má útočící strana dostupnou zašifrovanou podobu otevřeného textu, u kterého ví, že na jeho zašifrování byl použit daný neznámý klíč a známá šifra. Získání šifrované podoby zprávy není zpravidla žádný problém, protože zpráva bývá přenášena ne zrovna bezpečným prostředím internetu, kde může být bez problémů odposlechnuta. Z tohoto důvodu musí být šifry proti takovémuto útoku odolné, a to i v případě, že útočník vlastní větší množství odposlechnutých zpráv. Known-plaintext attack Útočník má dostupnou kromě šifrované zprávy i její nešifrovanou podobu a snaží se zjistit používaný klíč. U mnoha typů zpráv víme dopředu obsah šifrované zprávy. Například pravidelné šifrované zprávy o počasí byly cestou k útoku v období druhé světové války. Chose-plaintext attack Zde má útočník v držení i přístroj, který dané šifrované zprávy generuje. Útočník využije možnosti vhodných vstupů a následné analýzy výstupu.

7.3 Kryptoanalýza a možnosti útoku na kryptografické mechanizmy 45 Adaptive choosen-plaintext attack Podobná metoda jako je předchozí, rozdíl spočívá v tom, že luštitel může zašifrovat více zpráv a může výběr zprávy, která bude zašifrována, přizpůsobit výsledku předchozího zašifrování. Chosen-ciphertext attack Útočník může použít dešifrovací zařízení k dešifrování několika šifrovaných zpráv. Má tedy nakonec otevřený text a jeho šifrovanou podobu. Chosen-key attack Tato metoda se snaží využít potenciálních vztahů mezi jednotlivými klíči. Je samozřejmé, že touto cestou lze při útoku postupovat pouze tehdy, pokud takové vztahy existují. Brute force attack Útočníkovi v tomto případě nezbyde nic jiného, než zkoušet všechny klíče, než narazí na ten správný, jehož použitím dostane smysluplnou otevřenou podobu. Tento útok je použitelný proti většině šifer a jeho úspěch závisí na délce klíče a výpočetním výkonu dešifrujícího systému. Faktem je, že s rostoucí délkou klíče roste časová náročnost dešifrování exponenciálně. Aplikace mohou být proti tomuto typu útoku chráněny například omezeným počtem zadaných klíčů za jednotku času. Pro tento typ útoku byly vytvořeny i specializovaná zařízení, určená k lámání šifer. V období 2. světové války byla pro zlomení šifer německé Enigmy používána takzvaná Polská bomba, později pro otestování všech možných klíčů šifry DES byl vytvořen DES cracker nebo v dnešní době zařízení jménem COPACOBANA. (Obr. 13) Obr. 13: COPACOBANA [43] Side channel attack Útok využívající poznatků ze sledování šifrovacího systému. Pro zdolání šifrovacího mechanizmu stačí například sledovat odběr proudu, elektromagnetické záření, trvání operace šifrování a podobně. Agency/Purchase-key attack K získání klíče je použita špionáž, úplatky nebo jednoduše krádež. Tímto způsobem je poměrně jednoduché překonat i velice bezpečnou šifru.

46 7 ASYMETRICKÁ KRYPTOGRAFIE, STANDARDY A BEZPEČNOST Rubber-hose attack Útočník použije k získání klíče násilí aplikované na kryptografa. Jak vidno, útočící strana může použít mnoho typů útoku. Jeho úspěch či neúspěch může být ovlivněn i volbou vhodného typu útoku. [22] [24] Chceme-li zvýšit bezpečnost šifry proti útoku hrubou silou, použijeme klíč několikanásobně větší délky. Útočníkovi stačí pro rozšifrování naší hypotetické zprávy šifrované například pomocí 8 b klíče vyzkoušet jen 2 8 možných kombinací a dosáhl by výsledku. Takováto délka klíče se proto v praxi nepoužívá. Zvětšíme-li klíč například na 32 b, dostáváme více než 4 miliardy kombinací, které by útočník musel pro prolomení otestovat. Je jasné, že hledat neznámý 8 b klíč bez výpočetní techniky je možné a v relativně krátkém čase zvládnutelné. Při použití delších a delších klíčů se bez použití počítače neobejdeme. Počítače začaly hrát v tvorbě a dešifrování šifer rozhodující roli po druhé světové válce. Prvními takovými byly ENIAC a Colossus. Porovnejme bezpečnost 32 b dlouhého klíče pro počítače padesátých let minulého století a dnešní superpočítače. Je n bitů dlouhý klíč, který byl jistě dříve dostatečný, stále bezpečný? Odpověď je nasnadě. Tento příklad jde zatím zobecnit pro jakoukoli dobu (neznáme zatím nástroj schopný řešit tento problém v alespoň polynomiálním čase). Klíč dnes dostatečné délky již možná nemusí dostačovat zítra. Bezpečnost klíčů dané délky je závislá na rychlosti růstu výpočetního výkonu počítačů, za předpokladu existence pouze možnosti útoku hrubou silou. [13] Kryptografie hraje významnou roli v informační bezpečnosti, kde s její pomocí bývá zajištěna důvěrnost nebo datová integrita.

8 IMPLEMENTACE PGP A RSA 47 8 Implementace PGP a RSA 8.1 Implementace Pro tuto diplomovou práci jsou vytvořeny dvě aplikace. První se snaží ukázat čtenáři principy fungování šifrování pomocí algoritmu RSA. Druhá představuje základní postupy při šifrování aplikací typu PGP. Na tyto aplikace není kladen důraz na bezpečnost nebo sílu šifer, jak tomu bývá u komerčních programů, ale na názornost fungování jednotlivých mechanizmů. Pro napsání těchto programů jsem vybral programovací jazyk Java. Důvody pro výběr tohoto programovacího jazyka mají prozaické vysvětlení. Java totiž patří spolu s jazykem C, z kterého Java vychází, k mnou preferovaným programovacím jazykům. Rozhodl jsem se také využít výhody Javy oproti například programům napsaným v jazyce C++, který spočívá v tom, že programy napsané v jazyce Java mohou běžet na mnoha druzích počítačů bez nutnosti je překompilovávat. Za programovacím jazykem Java stojí společnost Sun Microsystems, která Javu představila již v roce 1995. Tento programovací jazyk je využíván ve více edicích. Pro napsání jmenovaných aplikací byla použita nejpoužívanější edice Java 2 Standard Edition, často označovaná pouze zkratkou J2SE. Další edice jsou používány pro širší škálu aplikací od oblastí tvorby velkých podnikových systémů (J2EE) až po tvorbu aplikací pro mobilní zařízení (J2ME). [6] Aplikace napsané v jazyce Java se skládají z jedné nebo více tříd napsaných v tomto jazyce. Třídu si můžeme představit jako formu pro počítačové definování objektu reálného světa. Podíváme-li se podrobněji, jak taková třída vypadá a co obsahuje, tak nalezneme instrukce a data potřebná pro splnění požadovaných úkolů. Pro tvorbu jednoduchých programů v jazyce Java lze použít textový editor, ale pro tvorbu rozsáhlejších, složitějších aplikací se nabízí možnost využít vývojového prostředí. V našem případě bylo využito prostředí NetBeans IDE 6.1. Na tomto prostředí je velice ceněné to, že patří do kategorie open-source a volně šiřitelných programů a lze jej nainstalovat nejen na platformě Windows a Linux, ale i na Mac OS X a Solaris. Srovnáme-li fungování jazyka Java například s C++ a podobnými vysokoúrovňovými jazyky, přijdeme na podstatný rozdíl. Program napsaný v jazyce C++ je nejprve zkompilován do objektového kódu, který je následně spojen spojovacím programem, čímž se z něho stane program ve strojovém jazyce běžící na daném počítači. Oproti tomu je zdrojový kód Javy zkompilován do bajtového kódu. Tento kód je interpretován pomocí JVM (Java Virtual Machine). Tento virtuální stroj Javy překládá bajtový kód do strojového jazyka běžícího na daném druhu počítače. Toto je důvod, proč programy napsané v jazyce Java nemusí být překompilovávány pro použití na různých druzích počítačů. [6] [7] Cílovou skupinou uživatelů těchto aplikací jsou studenti seznamující se s danou tématikou. Z tohoto důvodu je u všech možných voleb či operací uživateli zobrazen tooltip (popiska, která se zobrazí po přechodu kurzoru myši nad daný objekt) s nápovědou či pro výpočet použitým vzorcem.

48 8 IMPLEMENTACE PGP A RSA 8.2 Implementace RSA Aplikace RSA, kterou najdete na přiloženém CD spolu se všemi zdrojovými kódy, se snaží přiblížit uživateli fungování šifrovací metody RSA. Aplikace je vizuálně rozdělena na dvě hlavní části, část Boba a část Alice. Tyto dva moduly jsou děleny na několik dalších menších celků, kterým se budeme dále věnovat. V příkladech představuje zpravidla Alice odesílatele a Bob příjemce šifrované zprávy. 1. Veřejná a soukromá část Pro fungování šifrování pomocí RSA je nutné, aby odesílatel i příjemce měli vygenerovaný soukromý a veřejný klíč. Obr. 14: Veřejná a soukromá část Ve veřejné části má Alice vložen soukromý klíč. Tento klíč musí být přístupný všem, kteří chtějí šifrovat zprávu určenou do rukou Alice. Oproti tomu v soukromé části má vložen privátní klíč, který musí vlastník udržovat v přísné tajnosti a výhradně vlastním držení. (Obr. 14) 2. Klíč pro RSA Pomocí tlačítka Generuj vytvoří Alice hodnoty pro šifrovanou komunikaci s Bobem. Na základě těchto hodnot jsou vytvořeny soukromý a veřejný klíč. Obr. 15: Klíč pro RSA Pokud se však Alice nespokojí s generovanými hodnotami, má možnost zadat hodnoty i ručně. Vygenerována jsou utajená prvočísla y a z, část soukromého klíče D a část veřejného klíče e. (Obr. 15) 3. Stanovení soukromého klíče Alice vypočte důležité číslo N, které je součástí veřejného i soukromého klíče. Toto číslo je vypočteno jako součin utajených prvočísel y a z. Výpočet D, které je součástí soukromého klíče, je vypočteno na základě rovnice M = ZZ D ( mod N). (Obr. 16) 4. Stanovení veřejného klíče Veřejný klíč se skládá z dvou čísel N a e.

8.2 Implementace RSA 49 Obr. 16: Stanovení soukromého klíče Obr. 17: Stanovení veřejného klíče Alice musí zveřejnit svůj veřejný klíč, aby jí mohli ostatní, například Bob, poslat šifrovanou zprávu. (Obr. 17) 5. Otevřená zpráva Aby Alicinu zprávu mohl přečíst pouze Bob, zašifruje zprávu Bobovým veřejným klíčem složeným z čísel N a e. (Obr. 18) Obr. 18: Otevřená zpráva 6. Šifrovaná zpráva Alice odešle Bobovým veřejným klíčem šifrovanou zprávu Bobovi. Bob drží svůj privátní klíč v tajnosti, čímž je zajištěna důvěrnost této zprávy. (Obr. 19) 7. Rozšifrování přijaté zprávy Bob rozšifruje pomocí svého soukromého klíče šifrovanou zprávu a dostane otevřený text od Alice. V tento moment může Alici stejným způsobem, jako to poprvé udělala ona, zašifrovat odpověď a odeslat ji zpět. Na úplně stejném

50 8 IMPLEMENTACE PGP A RSA Obr. 19: Šifrovaná zpráva principu funguje i Bobova část aplikace. Má však stanovenu odlišnou dvojici soukromého a veřejného klíče. (Obr. 20) Obr. 20: Rozšifrování přijaté zprávy 8.3 Implementace PGP Aplikace PGP, kterou najdete na přiloženém CD spolu se všemi zdrojovými kódy, se snaží uživateli přiblížit fungování šifrovacích metod použitých v aplikaci typu PGP. Aplikace je vizuálně rozdělena na dvě hlavní části, část Boba a část Alice. Tyto dva moduly jsou děleny na několik dalších menších celků, kterým se budeme dále jednotlivě věnovat. V této aplikaci je Alici umožněno zprávy pouze šifrovat a odesílat a Bobovi pouze přijímat a dešifrovat. 1. Počáteční nastavení hashovací funkce V počátečních nastaveních má uživatel možnost vybrat si ze čtyř předdefinovaných hashovacích funkcí od MD5 až po SHA-512. Tato funkce bude dále použita pro vytvoření hash z otevřeného textu zprávy. Podívejme se do kódu například na vytvoření hash SHA-512: static String generujsha512(string input){ ///fce vygeneruje SHA512 ze vstupniho retezce try { MessageDigest md = MessageDigest.getInstance("SHA-512"); byte[] messagedigest = md.digest(input.getbytes()); BigInteger number = new BigInteger(1,messageDigest); return number.tostring(16); }

8.3 Implementace PGP 51 Obr. 21: Hash } catch(nosuchalgorithmexception e) { throw new RuntimeException(e); } Jak vidno, funkce má na vstupu řetězec otevřeného textu a na výstupu hash v podobě retězce. (Obr. 21) 2. Počáteční nastavení šifry V tomto nastavení může uživatel vybrat jednu ze dvou šifer, která bude dále použita pro zašifrování otevřeného textu. Může vybrat šifru DES nebo její Obr. 22: Nastavení šifry odolnější verzi TripleDES. Podívejme se nyní opět do kódu, jak je tato část implementována: public class DesEncrypter { Cipher ecipher; DesEncrypter(SecretKey key) { try { ecipher = Cipher.getInstance(metoda_sifrovani); ecipher.init(cipher.encrypt_mode, key); } catch (javax.crypto.nosuchpaddingexception e) { } catch (java.security.nosuchalgorithmexception e) { } catch (java.security.invalidkeyexception e) { } } public String encrypt(string str) { ///fce která je použita pro zašifrování pomoci DESu try

52 8 IMPLEMENTACE PGP A RSA { byte[] utf8 = str.getbytes("utf8"); byte[] enc = ecipher.dofinal(utf8); return new sun.misc.base64encoder().encode(enc); } } catch (Exception e) { return "chyba v sifrovani"; } } Pro samotné zašifrování je vytvořena třída DesEncrypter, ve které funkce encrypt vytvoří zašifrovaný výstupní řetězec. V případě neúspěchu vrátí chybové hlášení. (Obr. 22) 3. Certifikační autorita V této aplikaci tvoří Certifikační autorita místo, kde jsou dostupné veřejné klíče Alice a Boba. Je tomu tak pouze tehdy, pokud uživatelé požádali o vygenerování klíčů. V momentě, který je zachycen na obrázku číslo 23, je stanoven Obr. 23: Certifikační autorita veřejný klíč pouze pro Alici. V tuto chvíli může Alice pouze podepsat zprávu pro Boba svým soukromým klíčem. Pro zašifrování zprávy musí vyčkat do stanovení jeho veřejného klíče. Mlčky bereme za samozřejmé i stanovení Alicina a Bobova soukromého klíče. (Obr. 23) 4. Veřejný a soukromý klíč Není-li si Alice jistá bezpečností aktuálních klíčů, může je zneplatnit u certifikační autority. Zneplatněné klíče nemohou být dále použity pro šifrovaou komunikaci. (Obr. 24) Obr. 24: Veřejný a soukromý klíč 5. Otevřený text Pomocí tlačítka Šifruj Alice zašifruje otevřený text pomocí vybrané symetrické šifry. (Obr. 25) Aby mohl Bob ověřit, že zprávu nikdo po cestě nezměnil, musí Alice vypočíst hash z otevřeného textu zprávy pomocí tlačítka HASH.

8.3 Implementace PGP 53 Obr. 25: Otevřený text Obr. 26: Šifrovaná zpráva Takto vypadá otevřený text zašifrovaný pomocí zvolené rychlé symetrické šifry (rychlejší než při použití asymetrických metod pro šifrování dlouhého otevřeného textu). (Obr. 26) 6. Zašifrování hash Aby Alice Bobovi dokázala, že je autorkou dopisu právě ona, pomocí tlačítka použije svůj soukromý klíč pro podepsání hash. Pokud nemá Alice klíče stanoveny, je toto tlačítko disablováno. (Obr. 27) Obr. 27: Vypočtení hash 7. Klíč k symetrické šifře Klíč pro symetrickou šifru, kterým je šifrován text zprávy, Alice zašifruje Bobovým veřejným klíčem. Dokáže tím to, že zprávu přečte pouze držitel Bobova soukromého klíče, tedy Bob. Tato operace není možná, pokud adresát nemá stanovený a zveřejněný veřejný klíč. (Obr. 28)

54 8 IMPLEMENTACE PGP A RSA Obr. 28: Klíč k symetrické šifře 8. Výsledná zpráva Tlačítkem Odešli Alice odešle podepsaný hash vypočtený z otevřeného textu zprávy, zprávu šifrovanou symetrickou šifrou a Bobovým veřejným klíčem šifrovaný klíč k symetrické šifře. Po odeslání tuto zprávu obdrží Bob. (Obr. 29) Obr. 29: Výsledná zpráva 9. Veřejný a soukromý klíč nestanoveny Pokud chce Bob přijmout šifrovanou zprávu od Alice, musí požádat certifikační autoritu o dvojici klíčů. Do té doby mu nikdo nemůže poslat šifrovanou zprávu. Také on sám nemůže žádný hash vypočtený z otevřeného textu zprávy zašifrovat (podepsat) svým soukromým klíčem. (Obr. 30) Obr. 30: Klíče nestanoveny 10. Přijatá zpráva Přijatá zpráva musí nutně obsahovat podepsaný HASH vypočtený z otevřeného textu zprávy, zprávu šifrovanou symetrickou šifrou a Bobovým veřejným klíčem šifrovaný klíč k symetrické šifře. (Obr. 31)

8.3 Implementace PGP 55 Obr. 31: Přijatá zpráva 11. Přijatý hash Aby Bob zjistil, zda zprávu odeslala opravdu Alice, rozšifruje hash pomocí Alicina veřejného klíče. Může ovšem dojít k situaci, že Alice zruší platnost Obr. 32: Ověření hash svých klíčů. V tomto případě dojde při ověření k chybě, protože Alice již nemá platný veřejný a soukromý klíč. (Obr. 32) 12. Zašifrovaný klíč Aby mohl Bob rozšifrovat text zprávy, musí nejprve rozšifrovat klíč k symetrické šifře, kterou je text šifrován. V tento moment může dojít k podobné Obr. 33: Zašifrovaný klíč situaci jako při ověření HASH. Pokud nemá Bob platné klíče, nemůže klíč k symetrické šifře rozšifrovat. (Obr. 33) 13. Přijatá šifrovaná zpráva

56 8 IMPLEMENTACE PGP A RSA Pokud se povedlo Bobovi rozšifrovat klíč k symetrické šifře, může pomocí získaného klíče rozšifrovat zprávu od Alice. (Obr. 34) Obr. 34: Přijatá šifrovaná zpráva 14. Porovnání Hash Aby Bob zjistil, zda Alicina zpráva nebyla po cestě změněna, vypočte HASH z rozšifrované zprávy a porovná jej s přijatým HASH. Pokud jsou HASH totožné, nebylo do Aliciny zprávy během přenosu zasahováno. Obr. 35: Úspěšné porovnání Pokud byla zpráva v průběhu přenosu pozměněna, dojde k při porovnání k chybě. (Obr. 35)