Moderní kryptografie a problém diskrétního logaritmu - PDF\nDownload "Moderní kryptografie a problém diskrétního logaritmu"\n1 Bankovní institut vysoká škola, a.s. Katedra informatiky a kvantitativních metod Moderní kryptografie a problém diskrétního logaritmu Diplomová práce Autor: Bc. Michal Novák, DiS. Informační technologie a management Vedoucí práce: Ing. Vladimír Beneš, Ph.D. Strakonice Duben 2014\n2 Prohlášení: Prohlašuji, že jsem diplomovou práci zpracoval samostatně a v seznamu uvedl veškerou použitou literaturu. Svým podpisem stvrzuji, že odevzdaná elektronická podoba práce je identická s její tištěnou verzí, a jsem seznámen se skutečností, že se práce bude archivovat v knihovně BIVŠ a dále bude zpřístupněna třetím osobám prostřednictvím interní databáze elektronických vysokoškolských prací. V Strakonicích dne 27. dubna 2014 Michal Novák\n3 Poděkování: Na tomto místě bych rád poděkoval svému vedoucímu diplomové práce, Ing. Vladimíru Benešovi, Ph.D. za pomoc, cenné rady a veškerý čas, který mi věnoval.\n4 Anotace Diplomová práce se zabývá základními principy kryptografických systémů a definuje základní šifrovací algoritmy. Zaměřuje se na moderní šifrovací algoritmy a případy jejich použití. Dále práce podrobněji popisuje problém diskrétního logaritmu a asymetrické algoritmy, které využívají tohoto matematického problému. V závěrečné části nalezneme porovnání jednotlivých algoritmů a jejich bezpečnost v závislosti na použité délce klíče. Klíčová slova: kryptografie, algoritmus, šifra, protokol, diskrétní logaritmus, klíč Annotation This thesis deals with the basic principles of cryptographic systems and defines the basic cryptographic algorithms. It focuses on modern cryptographic algorithms and their use cases. The thesis also describes in detail the discrete logarithm problem and asymmetric algorithms that use this mathematical problem. In the final part we can find a comparison of different algorithms and their safety, depending on the length of the key. Keywords: cryptography, algorithm, cipher, protocol, discrete logarithm, key\n5 Obsah Úvod Kryptografie Rozdělení kryptografie Symetrické šifrování Asymetrické šifrování Hashovací funkce Kryptografické útoky Moderní kryptografie Kryptografické nástroje Rozdělení algoritmů moderní kryptografie Algoritmy používané v moderní kryptografii Symetrická kryptografie AES (Advanced Encryption Standard) DES (Data Encryption Standard) TripleDES (Triple Data Encryption Standard) IDEA (International Data Encryption Algorithm) RCx CAST (Carlisle Adams a Stafford Taverns) Blowfish... 31\n6 Twofish Serpent Asymetrická kryptografie RSA (Rivest-Shamir-Adelman) Diffie-Hellman DSA (Digital Signature Algorithm) El-Gamal ECC (Elliptic Curve Cryptosystem) ECDSA (Elliptic Curve Digital Signature Algorithm) Hybridní kryptografie PGP (Pretty Good Privacy) Kvantová kryptografie Protokol BB Protokol E Problém diskrétního logaritmu Asymetrické šifry založené na diskrétním logaritmu Diffie-Hellmanův protokol ElGamal algoritmus DSA algoritmus Porovnání bezpečnosti šifer s různými délkami šifrovacích klíčů Porovnání symetrických šifer... 55\n7 4.2. Porovnání asymetrických šifer Závislost délky klíče symetrických šifer na čase prolomení útokem hrubou silou Testování Vyhodnocení Závěr Použité zdroje Seznam použitých zkratek Seznam obrázků Seznam tabulek Seznam grafů... 73\n8 Úvod V dnešní době, kdy informační technologie jsou stále na vzestupu a stále více potřebné ve firmách, státních složkách, ale také domácnostech, se rozvíjí i obory, které jsou s tímto tématem velmi úzce spjaté. Jedním z těchto oborů je i kryptografie, bez které si v dnešní době už nedokážeme představit ani přenos základních informací, natožpak nějaký pokročilý firemní informační systém. Jednoduše řečeno obor kryptografie nám odděluje soukromý sektor od veřejného a stará se nám o příslušné zabezpečení, které by mělo být přiměřené k důležitosti utajení dat, skrývajících se např. v daném informačním systému. Jako příklad potřeby využití kryptografie bych zde uvedl odesílání obyčejného dopisu, kdy zalepujeme obálku, aby nikdo neviděl obsah dopisu, který nám tvoří nějaké informace. V dnešní době už skoro obyčejné dopisy nahradila ová komunikace, tedy elektronická pošta. Kde právě jako zabezpečení používáme obor kryptografie, která nám zabezpečí tak jako u dopisu zalepení obálky skrytí dané informace po celé cestě až k příjemci. Postupně od založení tohoto oboru a jeho neustálého rozvoje se začala rozvíjet i odvrácená strana tohoto oboru a to je prolomení daného zabezpečení či potřeba dostat se k informacím, které jsou určené pouze oprávněným osobám. A právě díky této odvrácené straně kryptografie, vděčíme za velký rozmach tohoto oboru, který se neustále rozvíjí a přizpůsobuje potřebám klientů. Dnes se již s tímto oborem setkáváme denně a to ani nemusíme patřit k uživatelům nějakého IT systému. Obor kryptografie je již zaimplementován i do každodenních situací každého z nás. Např. pro potřebu ověření osobních údajů, či zasílání informací atd. Pro upřesnění bych zde uvedl nějaké příklady, při kterých používáme kryptografii, aniž bychom o tom věděli. Můžeme zde uvést například sledování placené televize či používání mobilního telefonu (GSM), ale také procházení některých zabezpečených stránek na internetu. Cílem této práce je charakterizovat asymetrickou kryptografii a problém diskrétního logaritmu a dále prezentovat moderní trendy na ukázkovém příkladu. Pro naplnění tohoto cíle budu popisovat nejdříve základní principy kryptografie, které by měly sloužit spolu s rozdělením kryptografie jako úvod do této problematiky. Dále bude následovat moderní 6\n9 kryptografie, kdy dojde k představení dnes používaných symetrických a asymetrických algoritmů a jejich použití v praxi. V případě dnes nejčastěji využívaných algoritmů přidám i ukázkový příklad zašifrování zprávy. Klíčovou kapitolou této diplomové práce bude kapitola věnující se problému diskrétního logaritmu a algoritmům, které jsou na tomto problému založeny. V poslední části mé práce budu porovnávat jednotlivé algoritmy symetrické a asymetrické kryptografie, kdy se zaměřím hlavně na porovnání dnes bezpečné délky klíče u jednotlivých algoritmů. 7\n10 1. Kryptografie Kryptografie nebo také šifrování je věda o metodách skrytí smyslu zprávy před třetí osobou, bez speciální znalosti, která vede k rozluštění. Slovo kryptografie je složeno ze dvou řeckých slov a to kryptós = skrytý a gráphein = psát. Kryptografie je pouze první částí ze tří oborů kryptologie. Kryptologie je opět složena ze dvou řeckých slov a to opět kryptós = skrytý a logos = věda. Další částí, z nichž se skládá kryptologie jsou, kryptoanalýza, která se zabývá dešifrováním dané zprávy a steganografie, která se zabývá skrýváním informací. Kryptografie není žádný nový obor, zmínky o této vědě sahají až do 5. století př. n. l.. Kryptografie byla využívaná např. ve všech válkách a právě ve válkách a všech válečných operacích a strategiích byla také nejčastěji používána. A právě v těchto válečných obdobích byl zaznamenán i největší rozmach tohoto oboru, kdy bylo opravdu strategicky důležité zašifrovat danou informaci až k příjemci. Dokonce vznikali i šifrovací stroje, pomocí kterých bylo možné jak šifrování, tak ale i zpětné dešifrování na původní informaci. Samozřejmě s nárůstem snahy o dešifrování daných šifer se vyvinul i protilehlý obor kryptoanalýza. Díky oboru kryptoanalýzy, jsme dosáhli silnějších základů i u kryptografie, která se stává silnější a vždy by měla být o trošku dál než obor kryptoanalýzy, jinak by veškeré šifrování ztrácelo smysl Rozdělení kryptografie Obor kryptografie, jak je již napsáno výše, je velmi starý obor, který se po celou dobu svého rozvoje vyvíjel. Během tohoto vývoje se vyzkoušelo mnoho různých účinných i méně účinných metod. Dokonce i moderní kryptografie dneška stále staví své základy na těchto základních metodách. Základní rozdělení kryptografických metod se členní podle použití klíčů či klíče. 8\n11 Základní kryptografické metody: Symetrické šifrování Asymetrické šifrování Hashovací funkce Rozebereme si nejprve první dvě. Obě dvě tyto metody mají samozřejmě své klady, ale i zápory. Nejdříve se zaměříme na starší z těchto dvou metod a to metodu symetrickou, která je reprezentována pouze jedním klíčem, který slouží k zašifrování, ale i dešifrování. Tato metoda se vyznačuje malou výpočetní náročností, z které vyplývají rychlejší výpočty u této metody. Oproti druhé metodě, je zde ale jeden velký zápor a to šíření klíče od zašifrování k dešifrování, kdy klíč, kterým byl prostý text zašifrován, je třeba také nějak doručit spolu se zašifrovaným textem. Tento zápor odstraňuje metoda asymetrická, která používá k zašifrování veřejný klíč, ale dešifrovat již tuto zprávu může právě jen příjemce s jeho soukromým klíčem. Toto je samozřejmě velmi velkou výhodou oproti klasické symetrické šifře, ovšem spolu s tímto systémem veřejného klíče se nám zvyšuje i výpočetní náročnost a z toho vyplývající pomalejší výpočty takto zašifrovaných zpráv. Dále můžeme kryptografii rozdělit podle šifrování otevřeného textu na blokové šifry a proudové šifry. Bloková šifra Šifrování probíhá po blocích stejné délky. V případě dlouhého otevřeného textu, který je potřeba zašifrovat, musíme otevřený text rozdělit do bloků, který následně šifrujeme. Při nedostatečné velikosti otevřeného textu do daného bloku se používá tzv. výplň (anglicky padding). Následné dešifrování takových šifer probíhá opačným způsobem, přijímané zašifrované bloky se dešifrují a následně seřadí za sebe, kdy nám vznikne opět původní prostý text. Tato šifra je snadno prolomitelná v případě, kdy všechny bloky prostého textu šifrujeme pomocí stejného klíče. Kvůli bezpečnosti se v takových případech používá jeden z režimů provozu blokové šifry. V případě odposlechu takto šifrované zprávy útočník nedokáže zprávu dešifrovat, v některých případech ani nerozezná, že se jedná o blokovou či proudovou šifru. Proudová šifra U této šifry se šifruje otevřený text po jednotlivých znacích. Takto otevřený text se šifruje po jednotlivém znaku se znakem pseudonáhodným proudem bitů, který je vytvořen z šifrovacího klíče a šifrovacího algoritmu. Díky tomuto systému jsou proudové 9\n12 šifry rychlejší a méně náročné na požadovaný hardware. Proudové šifry jsou ale více náchylné k prolomení, v případě kdy jsou nesprávně implementovány. Tabulka 1 - Blokové a proudové algoritmy [zdroj: vlastní] Používané algoritmy u jednotlivých druhů šifer Bloková šifra Proudová šifra AES DES Twofish IDEA RC4 FISH SEAL Helix Symetrické šifrování Symetrické šifrování je, jak už bylo uvedeno, starší z těchto dvou metod a sahá až daleko do starověku. Toto šifrování je založeno na použití jednoho klíče, pomocí kterého dochází k zašifrování a následnému dešifrování zprávy. Právě v tomto systému symetrického šifrování se skrývá i jeho největší nevýhoda a to je nutnost doručení jak zprávy, tak i klíče přijímací straně. Mezi nejznámější dnes používané symetrické algoritmy patří DES, 3DES, BlowFish, CAST. 10\n13 Základní principy symetrického šifrování: 1) Transpoziční šifra 2) Substituční šifra 3) Hybridní šifra Obrázek 1 - Symetrické šifrování [zdroj: podpisu-a-sifrovani-1-zakladni-pojmy ] Hlavní výhoda: rychlejší výpočty = menší výpočetní náročnost. Hlavní nevýhoda: nutnostt doručení klíče, kterým byla zpráva zašifrována. Transpoziční šifra Transpoziční šifra je založena na jednoduchém zpřeházení znaků v šifrované zprávě, oproti prostému textu. Znaky se zaměňují dle nějakého systému, který musí být znám oběma stranám. Velkou výhodou šifer založených na tomto systému je jednoduchost a snadnost šifrování i bez použití výpočetní techniky. Oproti tomu velkou nevýhodou takového systému je poměrně snadné dešifrování i bez znalosti klíče. 11\n14 Základní transpoziční šifry: Transpoziční tabulky tato šifra je založena na tabulce, kde existuje určitý vzor, pomocí kterého zapisujeme znaky zprávy do této tabulky. Šifrovaný text získáme přečtením tabulky po řádcích. Příjemce potřebuje znát pro dešifrování zprávy právě znak, pomocí kterého byla zpráva zašifrována. Tento znak můžeme považovat za klíč u tohoto druhu šifry. Sloupcová transpozice u této šifry je zpráva psaná v řádcích a pro šifrování čtena v sloupcích. U této šifry je potřeba si zvolit počet sloupců, který nám může udávat i klíč. Tento klíč je slovo, které nám nedává žádnou informaci. Tento klíč používáme jen pro počet sloupců v závislosti na počtu znaků v klíči. Transpoziční mřížka k této šifře je potřeba právě transpoziční mřížka, pomocí které probíhá zašifrování i následné dešifrování. Jedná se o mřížku z pevného materiálu, v níž jsou náhodné otvory, do kterých se zapisuje prostý text. Po odstranění této mřížky a dopsáním ostatních znaků mezi již naše napsané získáme šifrovaný text, který je možno přečíst zase jen s pomocí transpoziční mřížky. Právě díky použití připsání dalších pomocných znaků, které slouží jen pro skrývání, můžeme tuto šifru považovat částečně za součást steganografie. Tyto druhy šifer jsou snadno rozluštitelné a v dnešní době za použití výkonné výpočetní techniky nepoužitelné. Substituční šifra Jedná se o další ze symetrických šifer. Systém této šifry je založen na substituci každého znaku, slova či věty v prostém textu. Každý znak je nahrazeným jiným pomocí určitého klíče, tento klíč se musí opět doručit příjemci k dešifrování zašifrovaného textu. Tento systém je již náročnější na prolomení oproti transpoziční šifře. Základní substituční šifry: Caesarova šifra tento druh šifry jsem již popisoval výše v historii kryptografie. Jedná se o šifru substituční, kde každý znak zprávy nahrazujeme jiným znakem. V případě této šifry znakem o určitý počet v abecedě následující. V dnešní době je tato šifra velmi snadno napadnutelná. 12\n15 Vernamova šifra tuto šifru můžeme bez obav používat i v dnešní době. Vymyslel a nechal si ji patentovat v roce 1917 pan Gilbert Vernam. Jedná se o šifru, u které bylo dokázáno, že je nerozluštitelná. Tato šifra používá klíč, který nám u každého znaku říká o kolik znaků je posunutý šifrovaný text oproti každému znaku prostého textu. Z toho vyplývá, že klíč je stejně dlouhý jako samotný prostý text. Playfairova šifra tuto šifru vynalezl Charles Wheatston, ale proslavená byla až Lyonem Playfairem, po kterém byla i pojmenovaná. Tato šifra nahrazuje každou dvojici prostého textu další dvojicí, je tedy obtížnější její rozluštění. Hybridní šifra Hybridní šifra, jak už udává název, je kombinací předešlých šifer, tedy kombinací substituční šifry a šifry transpoziční. Díky této kombinaci se zmenšuje riziko prolomení této šifry. Největší nedostatek symetrického šifrování ale zůstává, tedy stále musíme spolu s šifrovanou zprávou doručit příjemci i klíč pro dešifrování zprávy. Asymetrické šifrování Asymetrické šifrování je novější z těchto dvou metod a oproti starší metodě značně složitější. Toto šifrování je založeno na použití klíčového páru, který tvoří veřejný a soukromý klíč. Jak již název napovídá, veřejný klíč můžeme libovolně šířit bez toho, abychom se museli bát prolomení. Druhý z klíčů je klíč soukromý, který bychom si měli chránit a neměl by ho nikdo jiný znát. Princip asymetrického šifrování tedy vychází právě z potřeby dvou klíčů. Pomocí veřejného klíče, který je volně šiřitelný může odesílatel zprávu zašifrovat. Dešifrování takto zašifrované zprávy již ale dokáže pouze majitel soukromého klíče. Jediný klíč nelze použít pro zašifrování i dešifrovaní zprávy, protože toto šifrování je založeno na matematických funkcí, kdy reverzní výpočet je zcela nevypočitatelný. Tímto způsobem použití dvou klíčů odstraňuje asymetrické šifrování největší nevýhodu symetrického šifrování a to nutnost přenosu klíče, který byl použit pro zašifrování zprávy. Mezi nejznámější používané asymetrické šifry se řadí DH, RSA a DSA algoritmy. 13\n16 Obrázek 2 - Asymetrické šifrování [zdroj: =Pravdy-o-elektronickem- podpisu-a-sifrovani-1-zakladni-pojmy ] Hlavní výhoda: odstranění problému s přenášením klíče. Hlavní nevýhoda: velká výpočetní náročnost díky použitým matematickýmm funkcím. Na obrázku 2 vidíme základní principp asymetrické kryptografie, který není zcela bezpečný, ale na tomto základním obrázku je vidět princip asymetrické kryptografie. V případě uvedeném na obrázku by příjemce nemohl mít jistotu, že se jedná opravdu o správného odesílatele. Pro bezpečný přenos v asymetrické kryptografii i a zaručení správného odesílatelee by se otevřený text musel nejdříve zašifrovat soukromým m klíčem odesílatele a pak znovu veřejným klíčem příjemce. Po odeslání takto zašifrované zprávy si příjemce může být jistý, že zpráva nebyla po cestě dešifrována a byla odeslána správným odesílatelem. Příjemce po doručení takto zašifrované zprávy nejdříve musí zprávu dešifrovat pomocí svého soukromého o klíče a dále dešifrovat znovu veřejným klíčem odesílatele. Hashovací funkce Hashovací funkce je jedním z nástrojů moderní kryptografie, tato funkce nám vytváří z libovolně dlouhého řetězce znaků hash, neboli otisk o předem dané bitové délce. O této funkci se také často říká, že je jednosměrná, to právě díky vytvoření otisku, z kterého už ale 14\n17 nelze vytvořit nazpátek původní řetězec. Toto je ale i v některých případech výhoda této funkce, kdy při prozrazení otisku neoprávněné osobě se nemusíme bát prozrazení původního řetězce, protože z otisku není možné získat původní řetězec znaků. Další výhoda této funkce je v případě aplikování na stejné řetězce znaků, které se liší pouze v jednom konkrétním znaku. Vyjde nám hash, neboli otisk rozdílný tzn. nebude se lišit pouze v jednom znaku, ale bude kompletně odlišný. V případě aplikování hashovací funkce na stejný řetězec znaků nám vždy vyjde stejný otisk. Nejznámější z algoritmů používající hashovací funkci je SHA (Standard Hash Algorithm). Tento algoritmus většinou bývá ještě doplněn číslem, které označuje bitovou délku výsledného otisku. Hlavní výhoda: z každého řetězce získáme odlišný otisk. Hlavní nevýhoda: ze získaného otisku, není možné získat původní řetězec Kryptografické útoky Útoků, pomocí kterých se různí útočníci snaží prolomit různé šifry, neustále přibývá a jak se zlepšuje kryptografie, tak také útočníci musí zlepšovat a zdokonalovat své útoky, pomocí kterých se snaží získat nějaké informace, či někoho poškodit atd. Tato kapitola by se dala svou obsáhlostí pojmout jako samostatná práce a proto tu shrnu pouze pár základních metod a faktů, které se budou dále objevovat v této práci. Útočníci mohou mít různé důvody pro jednotlivé útoky, tyto útočníci mohou být různého charakteru, může se jednat o jednotlivce ale také celou skupinu či organizaci. Také záleží, odkud útočník vede útok, jestli má přístup například do firemní sítě, či útočí z vnějšku, z internetu atd. Pro kryptografické útoky je také velmi důležitá útočníkova síla, která se vyjadřuje pomocí výpočetního výkonu. Hlavní metody kryptografických útoků: Brute force attack tato metoda zkouší tupě všechny možné varianty klíčů, dokud nepřijde na správný klíč. Tato možnost je jediná možná u opravdu silných šifer. V českém jazyce se říká, že se jedná o útok hrubou silou. Random attack u této metody se útočník pokouší podstrčit falešnou zprávu, pokud systém nemá správně definovanou odezvu na chybné zprávy, může být útočník úspěšný. 15\n18 Man in the middle attack tato metoda je úspěšná v případě, kdy šifra nepočítá s autorizací. Potenciální útočník se postaví do komunikace a odpovídá jako by se jednalo o potencionálního příjemce či odesílatele a získá z komunikace informace či klíče vedoucí k prolomení šifry. Differential attack útočník provádí rozbor změn v šifře, které odpovídají změnám u otevřeného textu. Known plaintext attack u tohoto útoku zná útočník otevřený text a zašifrovanou zprávu a zkoumá klíč, kterým byla zpráva zašifrována, pomocí kterého by mohl dále dešifrovat všechny zprávy. 16\n19 2. Moderní kryptografie Počátky moderní kryptografie zasahují do druhé poloviny 20. Století, přesněji okolo roku Do této doby se kryptografie využívala hlavně na utajení nějaké citlivé válečné informace, či bezpečný přenos důležité zprávy. Převrat v kryptografii nastal právě okolo tohoto data, kdy tehdejší kryptografie používaná hlavně vládou a vládními institucemi přechází i do civilního sektoru, kde začala být reprezentována IT technikou. Jak už bylo napsáno v úvodu, s kryptografií jako takovou se setkáváme dnes již všude, aniž bychom o tom věděli anebo měli aspoň tušení, že např. na tak jednoduchý princip, jako je sledování satelitu, je v dnešní době zapotřebí kryptografie. Jak bylo uvedeno, moderní kryptografie dneška se nestará jen o zašifrování zprávy, ale s rozvojem IT a techniky obecně se obor kryptografie rozvíjí a odpovídá na požadavky dnešní doby. Cíle moderní kryptografie: Důvěrnost dat dává nám za cíl uchránit citlivá, či důvěrná data, před neoprávněnými osobami, ke kterým by se tato data neměla dostat. Zachování důvěrnosti dat můžeme řešit zamezením fyzického přístupu nebo nějakou kryptografickou metodou, která data převede do podoby, ze které není schopna neoprávněná osoba získat původní informaci. Integrita dat zajišťuje nám ucelenost původních dat, originalitu původních dat, ochranu dat před jakoukoliv změnou např. vložením dalších dat, smazáním části zprávy či přepsáním nebo připsáním. Autentizace entit - ověřuje, zda se opravdu jedná o danou uvedenou entitu. Entitou můžeme v tomto případě myslet uživatele, který zprávu psal, počítač na kterém se zpráva psala nebo odesílala, ale také program ve kterém byl vytvořen dokument nebo zpráva. Autentizace dat stará se nám o důvěryhodnou identitu dat. Do této kategorie patří ověřování pravdivosti vzniku času dokumentu a také původ dokumentu. Autentizace dat je vedlejším produktem integrity dat. 17\n20 Nepopíratelnost zajišťuje v případě jakéhokoliv sporu či potřeby ověření, kdo dokument dělal, kde ho dělal nebo jakým způsobem ho dělal. Zajišťuje, aby daná identita nemohla později popřít, co dříve vykonala. Druhy nepopíratelnosti: Nepopíratelnost původu Nepopíratelnost odeslání Nepopíratelnost příjmu Nepopíratelnost času Nepopíratelnost znalosti Časová důvěryhodnost zajišťuje ochranu nad časovou osou práce s entitami, kdy přesně byl jaký proces, úkol vykonán. Důvěryhodný monitoring se nám stará o pravdivý zápis všech operací, které byly provedeny. K této kategorii by se dali zařadit i logy, které se nám starají o zápis jakékoliv operace s daným subjektem. Řízení přístupu tento typ moderní kryptografie zajišťuje, že opravdu pouze oprávněné osoby či programy mají přístup k daným objektům. Autorizace zajišťuje, že určité činnosti mohou vykonávat pouze subjekty, které mají patřičná oprávnění či autorizaci k provedení takového činnosti. Jak je vidět z předešlého textu, tak mezi základní kryptografické služby patří důvěrnost, integrita, nepopíratelnost a autentizace. Pomocí těchto služeb se dá obsáhnout většina moderních kryptografických cílů. Práce s těmito službami nemusí vždy představovat pouze osoba, ale může se jednat také o program nebo proces. Na druhou stranu zprávou nemusí být dokument či , ale zprávu nám může představovat také libovolný soubor dat, program či např. položka v databázi. Způsobů jak zajistit informační bezpečnost je spousta. Např. fyzickým způsobem, kdy zavřeme informace do trezoru či nějakým jiným způsobem zamezíme přístupu neoprávněné osoby k informacím. Dalšími možnými způsoby, jak ochránit citlivá data, jsou personální, 18\n21 administrativní či technické oddělení citlivých informací od neoprávněných osob. Moderní kryptografie se ale zabývá pouze matematickými metodami pro zajištění informační bezpečnosti. 2.1. Kryptografické nástroje Moderní kryptografie obsahuje pro zajištění bezpečnosti cílů celou řadu kryptografických nástrojů, které se nám zajišťují různé cíle a rozšířili nám tak škálu moderní kryptografie. Klasická kryptografie před nástupem moderní měla pouze jeden cíl a to udržet zprávu či informaci v utajení a toto zajišťovala jediným nástrojem - šifrou. Kryptografické nástroje: Šifrovací systémy s tajným klíčem Šifrovací systémy s veřejným klíčem Hashovací funkce Generátory náhodných znaků Autentizační kódy zpráv Schémata digitálních podpisů Schémata výměny klíčů Schémata sdíleného tajemství 19\n22 2.2. Rozdělení algoritmů moderní kryptografie Algoritmy moderní kryptografie a jejich rozdělení do jednotlivých celků: Symetrická kryptografie: AES (Advanced Encryption Standard) DES (Data Encryption Standard) TripleDES (Triple Data Encryption Standard) IDEA (International Data Encryption Algorithm) RCx CAST (Carlisle Adams a Stafford Taverns) Blowfish Twofish Serpent Asymetrická kryptografie: RSA (Rivest-Shamir-Adelman) Diffie-Hellman DSA (Digital Signature Algorithm) El-Gamal ECC (Elliptic Curve Cryptography) ECDSA (Elliptic Curve Digital Signature Algorithm) Hybridní kryptografie: PGP (Pretty Good Privacy) Kvantová kryptografie: Protokol BB85 Protokol E91 20\n23 2.3. Algoritmy používané v moderní kryptografii Algoritmus je jakýsi postup či návod každého kryptografického systému. Jinak by se dalo říci, že kryptografický algoritmus je souhrn všech kryptografických transformací a zobrazení daného systému v kryptografii Symetrická kryptografie Symetrická kryptografie, jak už bylo výše uvedeno, se zabývá šifrováním za pomocí jednoho tajného klíče pro šifrování i dešifrování dat. Symetrická kryptografie je mnohem starší než kryptografie asymetrická, která vznikla poměrně nedávno. Symetrické šifry můžeme dále rozdělit na dva druhy podle toho, zda se šifruje po blocích pevně dané délky dané zprávy, od toho odvozena bloková šifra, anebo v symetrické kryptografii můžeme využít proudovou šifru, která šifruje otevřený text po jednotlivých znacích. Nejčastěji se využívá symetrické šifry k lokálnímu zašifrování určitých dat, které považujeme za důvěrné. Ale při komunikaci anebo zasílání důvěrných dat přes ne zcela bezpečný kanál se využití symetrické šifry často kombinuje s asymetrickým šifrováním. V tomto případě dochází k zašifrování dat pomocí symetrického šifrování, protože asymetrické šifrování je mnohem složitější a klade větší nároky na výpočetní techniku. A dále se pomocí asymetrického šifrování zašifruje pouze klíč, který byl použit pro šifrování dat pomocí symetrického šifrování. Tímto způsobem za použití symetrické i asymetrické kryptografie, jsme vyřešili problém symetrické kryptografie a to přenos klíče spolu se šifrovanou zprávou. Nejčastěji využívané algoritmy v symetrické kryptografii jsou AES, DES, TripleDES, IDEA, RCx, Blowfish, Twofish, Serpent AES (Advanced Encryption Standard) Jedná se o pokročilý šifrovací standard, ale také o jeden z nejvíce používaných algoritmů dnešní doby v oblasti symetrické kryptografie. Algoritmus AES, nebyl dodnes prolomen a předpokládá se, že by měl zůstat neprolomitelný ještě několik desítek let. Přesněji algoritmus vznikl v roce 2002, kdy Národní úřad pro standardizaci (NIST 1 ) schválil šifru AES jako standard v USA. Této šifře předcházel algoritmus DES, z kterého AES vychází. Tento systém byl ale již nadále neudržitelný a dnes je již prolomen. Další výhodou oproti 1 NIST National Institute of Standards and Technology (Národní institut standardů a technologií) 21\n24 předchozímu systému DES je použití různých délek klíčů. AES podporuje délku klíče o velikosti 128, 196 nebo 256 bitů. S algoritmem AES se můžeme setkat také jako s Rijdael algoritmem, který neznamená nic jiného než AES, ale je pouze pojmenovaný po svých autorech, kterými byli Joan Daemen a Vincent Rijmen. Rijdael je tedy původní název algoritmu, než byl přijat za standard pod názvem AES. Než vznikl standard AES, proběhla soutěž o tom, který ze současných dostupných algoritmů se stane standardem. Vyhrál to právě algoritmus Rijdael, který se dostal do první pětice algoritmů, kam patřil také algoritmus RC6, Twofish, MARS a Serpent. Šifrování AES V případě AES se jedná o blokový symetrický algoritmus, tedy pro zašifrování i dešifrování slouží pouze jeden sdílený klíč. Blokový znamená, že se otevřený text šifruje po blocích pevně dané délky 128 bitů. Každý delší otevřený text se rozdělí do bloků o velikosti 128 bitů. Poslední blok se pak vždy doplní uměle vloženými znaky. Anglicky se této funkci doplnění znaků do velikosti 128 bitů říká padding. Bloky se pak dále šifrují za pomocí algoritmů pro šifrování po blocích. Typickým příkladem takových algoritmů je algoritmus ECB a CBC. ECB 2 Tento algoritmus pracuje na jednoduchém principu, kdy se každý blok šifruje pořád stejným klíčem a navíc blok po bloku bez změny pořadí. Z tohoto popisu vyplývá, že tento algoritmus není příliš bezpečný z důvodu používání u všech bloků stejného schématu zašifrování. Při dlouhodobém zkoumaní takto zašifrovaných zpráv by se pak jednalo o mnohem snadněji prolomitelnou šifru. Dále při použití útoku Man in the middle atack může útočník bloky vkládat, odstraňovat, ale také měnit. Z toho vyplývá, že algoritmus ECB nezajišťuje integritu zasílaných dat. CBC 3 Algoritmus CBC nám zajišťuje takzvané řetězení šifrovaného textu. Pomocí této funkce nám CBC zabraňuje možnosti útoku uvedenou u algoritmu ECB. Řetězení šifrovaného textu nám ale v tomto případě zajišťuje i integritu zasílaných dat, protože jednotlivé bloky, konkrétně u AES o velikosti 128 bitů se šifrují za pomoci vždy předcházejícího zašifrovaného bloku pomocí funkce XOR. V případě kdy by se všechny bloky řídily tímto pravidlem, tak logicky nastává otázka, čím se tedy šifruje první blok šifry, když mu žádný jiný nepředchází. 2 ECB Electronic CodeBook (elektronický číselník, či také elektronická kniha kódů) 3 CBC Cipher Block Chaining (řetězení šifrovaných bloků) 22\n25 U algoritmu CBC se první blok šifruje za pomoci náhodně vygenerovaného tzv. nultého bloku, pomocí kterého se první blok dále šifruje. Šifrování AES probíhá ve čtyřech krocích: 1. SubBytes tento krok spočívá v jednoduché substituci, kdy se nahrazuje každý byte jiným podle daného klíče. Již tento první krok šifrování AES nám zabezpečí šifru před útoky založenými na jednoduchých matematických výpočtech. Obrázek 3 - SubBytes [zdroj: SubBytes.svg] 2. ShiftRows u tohoto kroku podle obrázku 4. se neděje nic jiného než jednoduché zpřeházení bytů Obrázek 4 - ShiftRows [zdroj: ShiftRows.png] 23\n26 3. MixColumns zde se prohazují jednotlivé sloupce a také dochází k vynásobení každého sloupce stejným polynomem c(x), jak vidíme na obrázku 5. Obrázek 5 MixColumns [zdroj: MixColumns.svg] 4. AddRoundKey Jak vidíme na obrázku, je každý byte zkombinovaný se subklíčem, který je vytvořen z původního klíče a mechanizmu řetězení z minulých bloků, jak je popsáno výše. Obrázek 6 - AddRoundKey [zdroj: AddRoundKey.svg] 24\n27 Použití šifry AES Dnes je algoritmus AES asi nejvíce rozšířený standard pro symetrickou blokovou kryptografii, proto s největší pravděpodobností všude, kde je aplikována symetrická bloková kryptografie, tam je použit i standard AES. Dnes asi nejčastějším používáním šifry AES, s kterou jsme přišli skoro všichni do styku, je zabezpečení bezdrátových sítí Wi-Fi, přesněji řečeno u zabezpečení podle protokolu WPA2 4, kde se právě k zašifrování bezdrátové sítě využívá standardu AES. Standardu AES používáme dále i ve většině bezdrátových a komunikačních technologiích. Dále se s ním můžeme setkat jako součást Microsoft.Net Framework a také je dostupný pro všechny programátory a to ve většině programovacích jazycích např. v Javě, C++, assembleru, Visual Basicu. Delphi 5.0, Perlu, ale také jako modul pro MATLAB. DES (Data Encryption Standard) DES (Data Encryption Standard), byl prvním veřejným standardem v historii, který byl přijat za standard v roce 1977 v USA. Jak už jsem uvedl, jedná se o předchůdce AES. Přesněji řečeno AES vznikl až na základě poptávky po bezpečnějším systému než byl v té době DES, který byl už prolomen za použití značného IT výkonu a času. DES využívá k zašifrování délku bloků 64 bitů a velikost klíče také 64 bitů, z těchto bitů je ale 8 kontrolních a proto šifrování probíhá za pomocí 56 bitů. Dnes je již možné šifru DES prolomit za méně než 24 hodin. Příznivci algoritmu DES pro záchranu tohoto šifrovacího standardu vymysleli modifikaci tohoto standardu pod názvem TripleDES nebo také 3TDES. Tento algoritmus není nic jiného než trojnásobné použití šifry DES, což má za následek trojnásobení klíče DES na 168 bitů. Tato šifra je ale daleko pomalejší než dnešní standard AES a proto je otázkou času než se přestane také používat. Šifrování DES Šifrování u algoritmu DES je prováděno po blocích za pomocí tzv. rund. Respektive šifrování probíhá v 16 krocích, tzv. rundách. Při šifrování používá DES permutací a dalších 4 WPA2 Wi-Fi Protected Access 2 (chráněný přístup k wifi) 25\n28 mechanismů. Jak již bylo uvedeno, algoritmus DES využívá 3 druhy permutací pro své šifrování. A jsou to, jak vidíme na obrázku 7, permutace přímá, rozšířená a výběrová. Obrázek 7 - Typy permutací DES [zdroj: Dále bych zde také rád uvedl použití režimů pro blokové šifry. Jednotlivé režimy DES se nazývají podle použití jednotlivých blokových algoritmů, které jsme si již popisovali výše. Pro názorné použití těchto blokových algoritmů, celkově ale také u standardu DES přikládám obrázek 8, na kterém je znázorněno šifrování algoritmu DES při použití režimu ECB. Metoda DES má samozřejmě mnohem složitější postup šifrování, který zde více rozebírat nebudu z důvodu již skoro nepoužívaného standardu. 26\n29 Obrázek 8 - DES režim ECB [zdroj: Použití šifry DES Dnes se již tato šifra nepoužívá. Od roku 1999 bylo dokonce zásadně doporučováno tuto šifru nepoužívat z důvodu rozluštění. Šifra byla oficiálně zrušena jako standard dne Dnes existuje mnoho programů, které dokážou tuto šifru rozluštit v určitém čase závislém na výpočetním výkonu. Dodnes se můžeme setkat s používáním nějaké modifikace DES jako je např. TripleDES. S tímto systémem se dodnes můžeme setkat v bankovnictví, například u čipových karet, konkrétně u systému EMV. Tento systém je mnohemm bezpečnější než dříve hojně používané platební karty s magnetickým proužkem. TripleDES (Triple Data Encryption Standard) TripleDES algoritmus je nástupcem DES, jak je již patrné z názvu obou algoritmů. TripleDES vznikl, aby odstranil jednu velkou nevýhodu klasického DES algoritmu a to v dnešní době použití již malé délky klíče, která je u DES standardu pouhých 64 bitů. Respektive pouze 56 bitů, protože u DES standardu se používá 8 bitů jako kontrolních. Už z názvu tohotoo algoritmu lze mnohé odvodit, jak už jsem uvedl, první věc je, že se jedná o nástupce standardu DES a druhá věc je trojka v názvu tohoto algoritmu, proto se někdy můžeme setkatt i s označením 3DES. Trojka se uvádí v názvu tohoto algoritmu proto, že se pro větší bezpečnost aplikuje DES standard třikrát za sebou. Pro bližší představu o šifrování systému 27\n30 DES, kde se používají tři klíče k zašifrování, neboli jeden klíč o velikosti 168 bitů, který je složen ze třech klíčů, přikládám obrázek 10. Z toho se dá také logicky odvodit délka klíče u tohoto algoritmu, která se dá vypočítat jako třikrát délka klíče u DES. Délka klíče u TripleDES algoritmu tedy dělá 168 bitů. Tento algoritmus je oproti standardu DES mnohemm bezpečnější, avšak k masivnímu používání nedošlo, kvůli existenci standardu AES, který je mnohem rychlejší a méně náročný na IT výkon. S použitím tohoto systému se dodnes můžeme setkat např. u platebních karet, které jsou již založené na vloženém čipu a konkrétně systému EMV 5. Obrázek 9 - TripleDES šifrování [zdroj: IDEA (International Data Encryption n Algorithm) IDEA je symetrická bloková šifra, která vznikla v roce 1991 a jejími autory jsou X. Lai a J. Massey. Algoritmus IDEA vznikl jako náhrada za standardd PES, který vznikl v roce PES byl navržen jako náhrada za algoritmus DES, o kterém se již vědělo, že není možné dlouhodobě zabezpečit jeho bezpečnost. IDEA algoritmus nebyl dodnes prolomen a kolem roku 1996 byl prohlášen za nejlepší a nejbezpečnější šifrovací algoritmus, který byl k dispozici široké veřejnosti. Algoritmus IDEA má patentována firma MediaCrypt, protoo používání tohotoo algoritmu není tolik rozšířené. Šifrování u tohoto algoritmu probíhá také po 5 EMV Europay, MasterCard, Visa 28\n31 64 bitových blocích a k šifrování se používá šifrovací klíč o velikosti 128 bitů. Následné šifrování pak opět jako u DES probíhá v rundách, tedy v kolech, kde v každém kole se šifrování periodicky opakuje. Systém IDEA, jak už bylo uvedeno, nebyl dodnes prolomen a i v dnešní době se považuje za velmi bezpečný systém. Použití IDEA Používání tohoto systému by byla mnohem více rozšířena, kdyby byla přístupná veřejnosti a nebyla patentována. I přesto, že byl tento algoritmus patentován, se algoritmus IDEA rozšířil a to hlavně díky své rychlosti při šifrování a následném dešifrování, ale také kvůli velmi vysoké úrovni bezpečnosti tohoto algoritmu. Dodnes se můžeme s tímto algoritmem setkat v rámci protokolu SSL 6 nebo také jako součást PGP. RCx RCx nebo také Rivest Cipher, kde číslo znamená verzi tohoto algoritmu. Tvůrcem tohoto algoritmu je Ronald Rivest. Jednou z nejpoužívanějších šifer pro proudové šifry je RC4. RC4 má délku klíče 256 bytů, tedy 2048 bitů. Pro lepší funkčnost je lepší zarovnávat klíč na velikost zakončenou po celých bytech. V praxi se ale tak velký klíč většinou nepoužívá z důvodu delšího zpracování. Princip klíče spočívá v míchání jednotlivých bytů klíče, spojené s permutací klíče. RC4 byla hojně používaná a i dodnes se s ní můžeme setkat např. v SSL 3.0, Microsoft Office, Oracle Secure SQL či Microsoft Windows Další z řady algoritmů Ronalda Rivesta je Rivest Cipher 5, tedy RC5. Tento algoritmus vzniknul v roce Ronald Rivest v tomto algoritmu přišel s novou myšlenkou v kryptografii celkově. Algoritmus RC5 používá šifrovacího klíče o stejné délky jako RC4 a to až do velikosti 255 bytů. Tento algoritmus využívá rotace, které jsou závislé na datech. Tento mechanismus dělá z RC5 poměrně pružný algoritmus s velkým množstvím dalších parametrů. Poslední z řady RCx protokolů je verze RC6, která už přináší pouze vylepšení k verzi RC5 a to například přidáním některých funkcí jako jsou celočíselné násobení v klíči nebo také použití čtyř pracovních registrů namísto dvou, jak bylo použito u předcházející verze. Verze RC6 vznikla speciálně pro soutěž o AES, kde se dostala do užšího výběru, 6 SSL Secure Sockets Layer (vrstva bezpečných socketů) 29\n32 konkrétně mezi 5 nejlepších při výběru standardu organizací NIST v roce 2002, který nakonec vyhrál algoritmus Rijdael. Použití RCx Jak už bylo uvedeno, RC4 je symetrická proudová šifra, se kterou se můžeme setkat dodnes v mnoha systémech, jako jsou SSL 3.0 nebo Microsoft office či SQL. Algoritmy RC5 a RC6 jsou již patentovány firmou RSA Laboratories. A i dnes se považují tyto dva algoritmy za velmi bezpečné a neprolomené. CAST (Carlisle Adams a Stafford Taverns) CAST je další z řady symetrických blokových algoritmů, které vznikly jako následek již nedostačujícího kryptografického systému DES. V té době okolo roku 1996 zde byly i jiné šifrovací algoritmy, ale všechny kvalitnější byly patentovány a tedy pro nekomerční užití skoro nepoužitelné z důvodu vysoké ceny. V této době přišla kanadská společnost Entrust Technologies s nápadem přinést takový šifrovací algoritmus který by byl dostupný pro širokou veřejnost a byl by poskytován zdarma pro komerční i soukromé účely. Proto sponzorovalo vývoj nového algoritmu, který byl pojmenovaný podle iniciál jeho tvůrců a to C. Adamsovi a S. Tavaresovi. Tento algoritmus byl v roce 1997 publikován na internetu pod označením RFC2144. V mnoha směrech je CAST podobný algoritmu DES. I základní mechanismus je velmi podobný a to, že je založen na opakujících se rundách, ve kterých probíhá šifrování. Oproti algoritmu DES je ale CAST nesrovnatelně kvalitnější a bezpečnější algoritmus. Ale i přes velkou podobnost s algoritmem DES si získal CAST velkou důvěru. Přispělo k tomu i zveřejnění všech kryptografických podrobností týkající se tohoto algoritmu. CAST využívá léty vyzkoušený systém používaný v DES, ke kterému přidal své vlastní navazující kryptografické operace, které z tohoto algoritmu udělaly dodnes neprolomitelný kryptografický systém. 30\n33 Použití CAST Dnes se již standard CAST u široké veřejnosti tolik nevyužívá, jako tomu bylo přibližně na konci 20. Století. Jak už bylo uvedeno, CAST algoritmus vznikl na základě již nedostačujícího algoritmu DES a dával si za úkol nahradit tento algoritmus za bezpečný a spolehlivý a který by byl pro širokou veřejnost zdarma. Toto se mu podařilo, a proto byl velmi oblíbený ovšem až do doby, kdy byl vybrán nový šifrovací standard AES, který ho v mnoha směrech předběhl. Blowfish Šifra Blowfish, byla poprvé publikována v roce 1993 a jejím autorem je Bruce Schneier. Tato šifra je tzv. předchůdce šifry Twofish, kterou si více probereme dále. Jedná se o další ze skupiny blokových symetrických šifer, které jsou volně šiřitelné a bez jakéhokoliv patentu. Bloky jsou o velikosti 64 bitů a maximální délka klíče je 448 bitů. Šifra Blowfish se i přes stáří šifry řadí na přední pozice, co se týče rychlosti šifrovacích algoritmů. Tak jako spousta ostatních šifer i tato šifra vznikla jako náhrada za tehdejší standard DES. Šifrování dat probíhá opět v tzv. rundách a u tohoto algoritmu konkrétně v 16 rundách. Šifra používá pouze dvě matematické operace a to sčítání a funkci XOR, pomocí kterých je tato šifra opravdu rychlá. Blowfish používá stejnou metodu pro šifrování i dešifrování, respektive dešifrování přesně opačně. Použití Blowfish Jak už jsem uvedl, šifra Blowfish je jedna z nejrychlejších šifer vůbec a když přidáme volné používání, tak tato šifra nalézá opravdu široké využití. Tato šifra je vhodná k použití i na starší výpočetní technice, díky své malé náročnosti. Ve veké míře je tato bloková šifra používaná pro šifrování dokumentů na CD, USB Flash discích atd. Ale tohoto algoritmu je využito i v některých síťových protokolech jako jsou Free Telnet/SSH Client. 31\n34 Twofish Šifra Twofish je jedna z dalších šifer, které se snažily vyhrát soutěž o nový šifrovací standard, který byl vyhlášen společností NIST. I tato šifra se dostala mezi 5 nejlepších, ale bohužel nakonec nebyla vybrána. Jedná se o další z blokových šifer a je velmi podobná šifře Blowfish, z které tato šifra vychází a je uzpůsobena, aby dokázala splnit požadavky, které se kladly na šifry, které soutěžily o nový standard AES. Jedná se o šifru založenou na šifře Blowfish a proto je také tato šifra založena na šifrování v rundách. Konkrétně u této šifry se jedná o šifrování v 16 rundách. Délka klíče u této šifry je 128, 192 anebo 256 bitů. Na rozdíl od šifry Blowfish je možnost nadefinování spousty možných aspektů šifrování, které pomáhají šifru přizpůsobit k více účelům. Použití Twofish Díky své rychlosti a bezpečnému šifrování, tak jako je tomu u předchůdce tohoto algoritmu šifře Blowfish, byla tato šifra velmi oblíbená. A i dodnes se s touto šifrou můžeme setkat u systémů, kde požadujeme velmi rychlé šifrování či dešifrování určitých dat. Díky tomu, že šifra vychází z koncepce blowfish, je i tato šifra vhodná na šifrování a následné dešifrování větších objemů dat díky své velké rychlosti šifrování. Proto se s touto šifrou můžeme setkat u systémů, které nám šifrují obsahy CD/DVD, popřípadě všechny druhy různých disků. Serpent Algoritmus Serpent byl navržen třemi autory, kterými jsou Ross Anderson, Lars Knudsen a Eli Bilham, který je také objevitel diferenciální kryptoanalýzy. Tento algoritmus byl navržen pro co nejvyšší bezpečnost, proto je možné ho využívat dodnes a je stále odolný proti všem dnes známým útokům. Pro šifrování používá až 32 rund, což z tohoto algoritmu dělá opravdu bezpečnou šifru. Díky své velké bezpečnosti je ale tento algoritmus velmi pomalý. Serpent je odolný proti všem dnes známým útokům již s 16 rundama, proto zvýšení na 32 rund se stává z tohoto algoritmu opravdu velmi silná šifra. Délka bloku u tohoto algoritmu odpovídá 128 bitům a klíč používaný pro šifrování a dešifrování klíče má délku až 256 bitů. Algoritmus Serpent využívá jednu funkci pro šifrování a druhou funkci pro dešifrování. Tyto 32\n35 funkce nemají navzájem příliš společného a proto je kryptoanalýza jednou tak náročná oproti klasickým šifrám. Použití Serpent Šifra Serpent, jak už jsem uvedl, je jedna z nejbezpečnějších šifer, ale díky své pomalé rychlosti jsou malé možnosti použití. Z tohoto důvodu je vhodné použít tuto šifru při zašifrování menšího objemu dat. Z toho vyplívají možnosti použití této šifry u čipových karet a dalších zařízeních do kterých se šifruje pouze malé množství dat. Asymetrická kryptografie RSA (Rivest-Shamir-Adelman) Algoritmus RSA je jeden z nejvíce používaných a nejznámějších asymetrický algoritmů dnešní doby. Jeho název je složen z iniciálů třech autorů, kterými jsou Ron Rivest, Adi Shamir a Len Adleman. Tento algoritmus byl prvně popsán v roce 1977 a jedná se o první algoritmus, který je určený pro podepisování ale i šifrování zprávy. V případě použití dostatečně dlouhého klíče u tohoto algoritmu je považován stále za velmi bezpečný algoritmus. První zmínky o tomto algoritmu sahají až k roku 1973, kdy podobný systém popisoval britský matematik Clifford Cocks. Bohužel jeho výzkum nebyl až do roku 1997 prozrazen z důvodu označení tohoto výzkumu jako přísně tajné. Algoritmus RSA byl v roce 1983 patentován a tento patent vypršel v roce Princip bezpečnosti algoritmu RSA spočívá v nemožnosti zjistit z určitého čísla součin jeho prvočísel. Této metodě říkáme faktorizace a je velmi obtížná a při použití velkých prvočísel v reálném čase dodnes nemožná. Jak už jsem uvedl, bezpečnost algoritmu RSA je založená na matematickém problému faktorizace velmi vysokých čísel, ale také na RSA problému. Proto plné dešifrování RSA šifrovaného textu je obtížné. RSA problém se definuje jako získávání kořenu modulu u množiny n a obnovení hodnoty m. Tento popis můžeme shrnout do výrazu m a =c mod n, kde písmena (a,n) znamenají veřejné klíče a c je šifrovaný text RSA algoritmu. 33\n36 Šifrování RSA Jak jsem již uvedl, algoritmus RSA je stále bezpečný, ale musí být použit dostatečně dlouhý klíč, který zabrání potenciálnímu útočníkovi rozluštit RSA šifru. Dnes je považován za bezpečný klíč o délce 2048 bitů a vyšší. Menší klíče za použití dostatečného výpočetního výkonu jsou potenciálně nebezpečné. Pro šifrování zprávy je použit matematický problém rozkladu velkého čísla na součin dvou prvočísel ale také RSA problém, o kterém jsem se zmínil v předcházejí kapitole. Šifrování RSA si můžeme popsat ve třech zjednodušených základních krocích. Konstrukce šifrování RSA 1) Zvolíme náhodně dvě velká prvočísla například (p,q) a vypočteme jejich součin kdy m = p * q. V praxi aby algoritmus byl dostatečně silný musíme zvolit tato prvočísla tak, aby byla více jak 100-ciferná. 2) Dále si zvolíme další dvě přirozená čísla například (i,j) tak, aby platil následující výraz (i * j) mod [(p 1) * (q 1)] = 1. 3) Nyní máme připravené klíče a můžeme začít se šifrováním. Veřejný klíč v tomto případě nám tvoří písmena (m,i), další písmena by měla zůstat v utajení, kdy písmeno j nám tvoří soukromý klíč, za pomocí kterého jsme schopni rozšifrovat zprávu zašifrovanou veřejným klíčem. RSA Digitální podpis Algoritmus RSA se také používá pro digitální podpis tvůrce zprávy, který nám zajišťuje autentizaci daného dokumentu. Princip digitálního podpisu zprávy za pomocí RSA algoritmu spočívá ve využití obrácené logiky používání šifry RSA. Podepisování určitého dokumentu se pak provádí vytvořením hashe dokumentu, který pak následně odesílatel zašifruje svým soukromým klíčem. Příjemce si pak již snadno následně může ověřit, zda to opravdu odeslal daný odesílatel a to za pomocí veřejného klíče odesílatele, protože soukromý klíč vlastní pouze skutečný příjemce. Digitální podpis nám nezajišťuje pouze autentizaci odesílatele, ale také integritu zasílaných dat. V případě kdy celý dokument ještě zašifrujeme za pomocí 34\n37 veřejného klíče odesílatele, máme jistotu, že zašifrovanou zprávu dešifruje pouze příjemce. Princip podepisování zprávy je blíže znázorněn na obrázku 10 a ověřování na obrázku 11. Obrázek 10 - Podepisování zprávy [zdroj: Obrázek 11 - Ověřování zprávy [zdroj: Použití RSA Algoritmus RSA je jedním z nejvíce rozšířených a používaných asymetrických algoritmů vůbec a proto jeho použití můžeme najít zaimplementované do nejrůznějších dnes používaných systémů. Šifra RSA, ale nedokáže nahradit symetrické šifrování z důvodu velké 35\n38 náročnosti na výpočty. Proto se RSA šifra nejčastěji používá ve spojení se standardem AES, který nám zašifruje dokument nebo případně nějaká jiná data. A algoritmem RSA dále řešíme pouze problém přenosu symetrického sdíleného klíče. Dále se šifra používá v systémech pro digitální podpis. Mnohé články v poslední době poukazují na slabé zabezpečení v případě nástupu kvantových počítačů. Tato tvrzení jsou samozřejmě pravdivá z důvodu, že kvantové počítače o vysokém výpočetním výkonu jsou schopny hrubou silou vyzkoušet všechny možné možnosti, které jsou potřebné pro dešifrování součinu dvou velkých prvočísel. Na obranu algoritmu RSA je potřeba uvést skutečnost, že kvantové počítače v nejbližších letech na trh nepřijdou, protože sestavení takového počítače je stále otázka roků, možná i desetiletí. Praktický příklad RSA Na tomto praktickém příkladu si ukážeme, jak probíhá algoritmus RSA od výpočtů klíčů až k výměně a následného zašifrování veřejným klíčem a dešifrování soukromým klíčem. Pro praktickou ukázku jsem si vybral čísla velmi malá a v reálném šifrování nepoužitelná z důvodu bezpečnosti. V praxi pro dodržení bezpečnosti šifry se využívají čísla více jak stociferná. Jako demonstranti v příkladu poslouží jména Alice, Bob. Alice je příjemce zašifrované zprávy a její veřejný klíč je dostupný všem. Bob potom představuje odesílatele zprávy, který kvůli bezpečnosti musí zprávu zašifrovat veřejným klíčem Alice. V případě takto zašifrované zprávy není možné rozšifrovat zprávu nikým jiným než Alicí, která jako jediná zná svůj soukromý klíč. Čísla užité v závorkách za jednotlivými body znamenají mnou vybrané náhodné čísla, které nám představují výpočetní část příkladu. Dále budeme pro výpočet potřebovat Eulorovu funkci, kterou v matematice značíme jako φ(n). Kdy n nám představuje hodnotu celých kladných čísel, které jsou nižší než n a jsou s n nesoudělná. Tedy platí, že φ(1)=1. Vytvoření klíčů V prvním kroku si nejdříve Alice musí vytvořit klíčový pár, který probíhá v následujících 5 krocích: 1. Alice si zvolí náhodně dvě velká prvočísla p a q. (7,11). 2. Dále vypočítá jejich součin tedy n = pq. (n=77) 36\n39 3. Spočítá hodnotu Eulerovy funkce φ(n) = (p 1)(q 1). (φ(n) = 60) 4. Následně si zvolí celé číslo e tak, aby bylo menší než φ(n) a platilo, že je s φ(n) nesoudělné. (e=13) 5. Zbývá dopočítat číslo d, které zjistím dosazením do vzorce kdy de=1(mod φ(n)) (d=97) Nyní již máme hotovou dvojici klíčového páru, v které nám veřejný klíč tvoří dvojice (n, e) a soukromý klíč (n, d). V praxi se používají ještě různé úpravy formy těchto klíčů, které umožňují následné rychlejší zpracování. Zašifrování zprávy V dalším kroku již přecházíme k zašifrování zprávy, aby bylo možné ji bezpečně dopravit od Boba k Alici. Bob má otevřený text m, který chce zaslat Alici, m=30. Nyní musí Bob zprávu zašifrovat veřejným klíčem Alice tedy dvojicí n, e. Výsledný šifrovací text označujeme v tomto případě jako c. 1. Pro výpočet zašifrovaného textu c slouží vzorec c = m e (mod n). 2. Protože je velmi složité vypočítat tento vzorec i při použití malých čísel běžným způsobem postupujeme následovně, pomocí rozložení mocnitele. c = m e (mod n) c = (mod 77) 30 1 = 30 (mod 77) 30 2 = 900 = 53 (mod 77) 30 4 = 53 2 = 2809 = 37 (mod 77) 30 8 = 37 2 = 1369 = 60 (mod 77) 37\n40 Nyní již můžeme pokračovat ve výpočtu šifrovaného textu standardním způsobem kdy tedy c = (mod 77) si poskládáme s předem vypočtených mocnitelů. c = = = 30 8 * 30 4 * 30 1 = 60 * 37 * 30 = (mod 77) = 72. Šifrovaný text je tedy c = 72. Dešifrování zprávy Alice po příjmu zašifrované zprávy použije svůj soukromý klíč k dešifrování. 1. Otevřený text získáme dosazením soukromého klíče do vzorce m = c d (mod n) 2. Následný výpočet je založen na převráceném principu zašifrování, proto musíme postupovat stejným způsobem jako při šifrování. m = c d (mod n) m = (mod 77) 72 1 = 72 (mod 77) 72 2 = 5184 = 25 (mod 77) 72 4 = 25 2 = 625 = 9 (mod 77) 72 8 = 9 2 = 81 = 4 (mod 77) = 4 2 = 16 = 16 (mod 77) = 16 2 = 256 = 25 (mod 77) = 25 2 = 625 = 9 (mod 77) Dále pokračujeme opět výběrem mocnitelů, které nám dají dohromady součet 97, a posledním výpočtem zjistíme výsledný otevřený text. m = = = * * 72 1 = 9 * 25 * 72 = (mod 77) = 30. Dešifrovaný text je tedy m =\n41 Výsledný dešifrovaný text tedy souhlasí s otevřeným textem, který Bob zašifroval veřejným klíčem Alice. V případě odposlechu linky, po které byla zašifrovaná zpráva zasílaná, není možné, aby útočník zjistil otevřený text zprávy, bez znalosti soukromého klíče Alice. Diffie-Hellman Diffie-Hellmanův protokol je jeden z prvních asymetrických protokolů vůbec, vzniknul již v roce 1976 a hlavními autory tohoto algoritmu jsou Whitfield Diffie a Martin Hellman. Tento protokol je jeden z mnoha, který využívá ke svým výpočtům diskrétní algoritmus. Dnes již existuje spousta známých modifikací tohoto protokolu. Podrobnější informace o tomto protokolu jsou sepsány v další kapitole, která se věnuje právě problému diskrétního algoritmu DSA (Digital Signature Algorithm) Algoritmus DSA neboli Digital Signature Algorithm, je dalším asymetrickou šifrou, která je založena na problému diskrétního logaritmu. Tato šifra vychází z El-Gamalova algoritmu, který již nebyl nadále vhodný pro podepisování zpráv. Pro podepisování zpráv využívá tato šifra hashovací funkci SHA-1 a nyní už i SHA-2. Další informace nalezneme v kapitole, která následuje a je zaměřená právě na problém diskrétního logaritmu El-Gamal El-Gamalův algoritmus je založen také na problému diskrétního logaritmu a proto se tomuto algoritmu opět více věnuji v další kapitole. Jedná se o asymetrický kryptografický logaritmus, který byl vytvořen v roce 1985 a jeho autorem je Taher ElGamal, po kterém se také jmenuje. Tento algoritmus vznikl oproti jeho předchůdcům mnohem déle a proto nebyl nikdy masivně využíván. Dnes se již s tímto algoritmem nesetkáme z důvodu malé bezpečnosti, ale můžeme se setkat s nějakými algoritmy pro podepisování zpráv, které jsou stále založené na tomto algoritmu, například DSA a ECDSA ECC (Elliptic Curve Cryptosystem) Zkratka ECC nám v kryptografii udává systémy, které jsou založené na eliptických křivkách. Také se můžeme setkat s pojmy jako jsou eliptická kryptografie či kryptosystém. První 39\n42 zmínka o eliptických křivkách sahá až do 19. století. Ale až v roce 1985 si V. Miller a N. Koblitz všimli, že by se tento systém zabývající se eliptickými křivkami mohl použít jako nový kryptosystém s veřejným klíčem. V dnešní době je tento systém již považován za jednoho z konkurentů pro dříve zmiňované šifry, jako jsou RSA, D-H nebo DSA. V mnoha ohledech tento systém dokonce svoje konkurenty převyšuje například porovnáním cena/výkon. Dále tento systém umožňuje šifrování oproti těmto šifrám s podstatně kratšími délkami klíče za dodržení stejné bezpečnosti šifry. Případné srovnání šifry ECC se šiframi AES a RSA je teoreticky možné i přes rozdílné bezpečnostní záruky jednotlivých šifer, které jsou založeny na odlišných matematických základech. Americký standard NIST vydal orientační tabulku, která srovnává bezpečnost délky klíčů jednotlivých druhů šifer založených na jiných bezpečnostních základech. ECC jsou ale pořád mnohem méně rozšířené než již uváděné konkurenční šifry, které byli známé a používané mnohem dříve. Zejména šifra RSA byla vyvinuta mnohem dříve a bylo již pro ní vybudováno spoustu standardů a byla zaimplementována do spousty aplikačních systémů, ve kterých se používá dodnes. Proto se s těmito standardy založenými na ECC tolik nesetkáváme. Se standardy ECC se můžeme setkat tedy v nově vznikajících projektech či produktech jako například bezkontaktní čipové karty. Použití ECC Jak jsem již uváděl, šifrovací systém ECC je poměrně nový systém, který ještě není tak rozšířen jako jeho konkurenti, kteří jsou zaimplementováni do mnoha dnes používaných systémů. Hlavní využití nalézá ECC tedy v nově vznikajících systémech a v systémech kde je potřeba co nejmenší délka klíče. Pro svoji menší náročnost nalézá uplatnění například u čipových karet a to včetně bezkontaktních. Dále se můžeme setkat s implementovaným systémem ECC v prostředí mobilních telefonů a dalších mobilních zařízeních. Dále se s tímto systémem můžeme setkat u tenkých klientů, anebo u dnes velmi kvalitního a bezpečného protokolu WTLS 7. 7 WTLS Wireless Transport Layer Security (bezdrátová vrstva bezpečného spojení) 40\n43 ECDSA (Elliptic Curve Digital Signature Algorithm) Algoritmus ECDSA je kombinace, jak z názvu vyplývá, dvou šifer a to algoritmu DSA, který je v tomto případě zkombinován s použitím eliptických křivek. Hlavní rozdíl tedy mezi algoritmem DSA a ECDSA je, že první uvedený je založen na matematickém principu založeném na diskrétním logaritmu a druhý na principu eliptických křivek. Nyní stále převažuje použití algoritmu DSA, který je v dnešní době stále bezpečný, ale v případě kdy by začaly existovat jakékoliv pochybnosti tohoto systému, je možné přejít na bezpečnější variantu ECDSA. Nyní se již do všech nových systémů většinou implementuje rovnou bezpečnější protokol ECDSA. Na tento systém se přechází i v případech kdy je zapotřebí co nejmenší výpočetní náročnosti, protože tento systém v případě porovnání se systémem DSA je stejně bezpečný i v případě použití kratšího šifrovacího klíče. V případě špatné implementace, by mohla být považována tato šifra v některých případech za nebezpečnou. Použití ECDSA Algoritmus ECDSA se používá zejména pro digitální podpis, kde zaznamenává právem velké úspěchy. Na území USA byly algoritmy DSA a ECDSA dokonce schváleny standardem pro použití ve vládních institucí. Toto právo pro představu neměl v té době ani dodnes nejpoužívanější asymetrický algoritmus RSA, který toto právo získal až v roce 2000, kdy se tyto rozdíly mezi algoritmy RSA a DSA či ECDSA srovnaly. Hybridní kryptografie Základním principem hybridní kryptografie je spojení symetrického šifrování s asymetrickým. Výhoda tohoto spojení spočívá v kombinaci výhod obou dvou typů šifrování. Mezi výhody symetrického šifrování patří větší bezpečnost šifer a menší výpočetní náročnost, naproti tomu má jednu velkou nevýhodu a to přenos klíče. Asymetrické šifrování tuto nevýhodu odstraňuje, ale na úkor nižších rychlostí výpočtů šifry a potřebného většího výpočetního výkonu. V případě kdy potřebujeme spojit obě dvě výhody těchto systémů, můžeme využít právě hybridní kryptografie, který nám staví do popředí výhody a zároveň odstraňuje nevýhody obou systémů. Hybridní kryptografie používá asymetrické šifrování pouze pro přenos klíče a pro samotné šifrování je použita symetrická kryptografie. 41\n44 PGP (Pretty Good Privacy) Původní systém PGP, vytvořil Phil Zimmermann na konci 80. let minulého století. V této době sloužil PGP jako počítačový program pro šifrování. Dnes už existuje mnoho různých verzí odvozených právě od PGP. PGP v té době slavilo velké úspěchy, a proto bylo standardizováno, zejména aby se umožnila spolupráce mezi různými verzemi. Tento internetový šifrovací standard byl vydán pod názvem OpenPGP. Jak už zařazení standardu PGP napovídá, jedná se o hybridní šifru, která využívá dvouvrstvou hierarchii klíčů, ve které se využívá symetrický klíč pro zabezpečení dat a asymetrický klíč k podepisování a šifrování symetrických klíčů, které byli použity pro šifrování zpráv. V roce 1991 došlo ke zveřejnění PGP a autor Phil Zimmermann se dostal do sporů s vládou USA. Tento spor se vedl kvůli údajnému nezákonnému vývozu kryptografie a také s držiteli různých patentů. Ke konečnému ukončení sporů došlo až v roce Dnes je již základní verze programu PGP ve formě freewaru. Princip šifrování probíhá, jak už jsem uvedl, pomocí kombinace dvou různých druhů šifer, které se v jednotlivých verzích systémů PGP různí. Dřívější verze systému PGP obsahovala implementaci symetrické šifry IDEA a asymetrické šifry RSA. Novější verze již obsahovaly asymetrickou šifru Diffie-Hellman v kombinaci s El Gamal, které jsou založeny na principu diskrétního logaritmu a symetrickou šifru CAST. Použití PGP Použití PGP je velmi různorodé, a používá se opravdu ve velkém množství systémů, dokonce bývá jako součást některých nových počítačů. Příkladem různorodosti tohoto systému je použití pro zabezpečení elektronické pošty, ale také pro šifrování uložených dat až přes ověření certifikační autority, které systém PGP řeší svým vlastním principem ověřování veřejných klíčů pomocí tzv. sítě důvěry. Kvantová kryptografie Rozvoj a vývoj kvantové kryptografie se zaznamenal od doby, kdy se prokázalo, že některé kryptografické algoritmy založené na matematickém principu, zejména na principu faktorizačních úloh bude možné prolomit s příchodem kvantových počítačů. Od té doby se začali hledat alternativy zabezpečení a řešení se nalézá právě v kvantové kryptografii. Princip 42\n45 kvantové kryptografie není již založen na matematice, ale na fyzikálních jevech, o kterých víme, že nemohou nastat. Tyto fyzikální děje nám tedy na první pohled nabízejí mnohem větší bezpečnost než klasické matematické principy používané v dnešní kryptografii. Na druhou stranu musíme být při používání fyzikálních jevů velmi obezřetní a rozlišovat děje, které nemohou nikdy nastat od dějů, které v dnešní době nejsme schopni technologicky realizovat. A právě v oddělení těchto jevů a dalším zpracováním se zabývá obor kvantové kryptografie Protokol BB84 Jedním z prvních protokolů kvantové kryptografie je BB84, který navrhli v roce 1984 Charles Bennett a Gilles Brassard. Tento protokol je v zásadě založen na dvou kvantových poznatcích. První z nich se zabývá klonováním kvantových stavů a druhý z poznatků se opírá o nemožnosti měření určitých párů veličin současně. Je nutné uvést, že tento protokol nám řeší pouze výměnu klíče a ne samotné šifrování dat, které obstarává již nějaký algoritmus založený na matematickém principu, který není možný prolomit za pomocí kvantových počítačů. Samotný protokol BB84 je založen na principu polarizace fotonů. Princip tedy spočívá v zašifrování kvantových stavů fotonů. Stav fotonu nám v tomto konkrétním případě dává informaci o polarizaci daného fotonu. Pojem polarizované světlo je údaj, který nám neříká nic jiného než, že se jedná o světlo, u kterého vektor elektrického pole kmitá stále ve stejném směru. Na vysílací straně tedy musí být zdroj lineárně polarizovaných fotonů a mechanizmus pro otáčení směru polarizace, který nám udává polarizaci fotonů podle jednotlivých bitů. Na obrázku 12 jsou znázorněny dvě polarizační báze, kde x a x nám představuje jedničky a y,y nám představují nuly. Zároveň je zde znázorněna výsledná stavová tabulka. 43\n46 Obrázek 12 - Stavy fotonů [zdroj: /krypto.pdf] Dále nám tyto polarizační báze, respektive jednotlivé fotony, postupují přes médium, které slouží jako komunikační prvek. Na straně příjemce musíme tyto fotony rozdělit podle jednotlivých stavů. Pro rozdělení jednotlivých polarizačních bází nám slouží skleněný hranol nebo také polarizační destička. Princip rozdělení polarizačních bází znázorňuje obrázek 13, kde vidíme, že polarizační hranol nám odděluje od sebe polarizační bázi x a y, tedy stavy 1 a 0. Obrázek 13 Polarizační báze [zdroj: //muj.optol.cz/dusek/clanky/krypto.pdf] K největším výhodám takového přenosového systému patří bezesporu bezpečnost, která je postavena na základech fyziky a není možné ji matematickým způsobem analyzovat. Bezpečnost kvantové kryptografie není zajištěna nemožností odposlechu, ale okamžité reakci na odposlech komunikačního kanálu. Řešení je snadné, u přenosových kanálů v kvantové kryptografii v případě kdy dojde k odposlechu, se výrazně zvýší chybovost, kterou se detekujee neoprávněné odposlouchávání takto zabezpečených kanálů. 44\n47 Použití BB84 Metoda polarizace fotonů, kterou protokol BB84 využívá, je oblíbená a v kvantové kryptografii poměrně často používána. Výhodou je také vysoká úroveň zabezpečení. Ale kvantová kryptografie obecně má také své velké nevýhody, kvůli kterým není stále zdaleka tak rozšířená jako kryptografie založená na matematických principech. První a hlavní nevýhodou je dnes vysoká pořizovací cena této technologie samotné. Za další náklady můžeme považovat cenu za kvalitní přenosovou cestu, která je v dnešní době realizována například pomocí optických vláken. Další z nevýhod, která může souviset s menším používáním kvantové kryptografie je omezující maximální vzdálenosti od odesílatele k příjemci. Protokol E91 Další z metod řešení kvantové kryptografie je protokol E91, který vychází z protokolu BB84, ale pracuje na principu propletenosti fotonů. Tento systém se někdy také označuje jako metoda korelovaných stavů dvojice částic. Zatímco první z protokolů BB84 využívá k přenosu informace jednotlivých bitů pouze jeden foton, protokol E91 zasílá informaci o jednotlivých bitech po dvou fotonech, v tomto případě mluvíme tedy o stavu dvojice. Celý princip komunikace mezi odesílací stranou a přijímací stranou pak funguje podobně. Zdroj fotonů nám vygeneruje dvojice fotonů, jejichž spiny jsou ve stavu superpozice nahoru a dolů, ale zároveň jsou úplně korelované, právě díky popletenosti. V praxi to u takovéto dvojice znamená, v případě kdy bude u jednoho fotonu spin nahoru automaticky u druhého fotonu bude spin dolu a obráceně. Následně je jeden foton z dvojice zaslán straně A a druhý straně B. Pokud strana A provede měření, zaznamená jedničku nebo nulu, tedy stav přenášeného fotonu. Tím získáme jeden bit klíče. Strana B postupuje podle stejného postupu a dostane opačný výsledek. Tímto způsobem je vytvořen a dále vyměněn celý klíč, který je zcela náhodný. Bezpečnost tohoto protokolu je řešena za pomocí kvantové korelace mezi jednotlivými výsledky na straně A a B. V případě měření fotonů po cestě a následného odposlechu zabezpečeného kanálu, dojde k narušení této kvantové korelace a následné detekci odposlechu. 45\n48 Použití E91 Použití u protokolu E91 je podobné jako u protokolu BB84. Žádná z nevýhod není odstraněna a proto ani E91 není tolik rozšířen jako šifry založené na matematickém principu. Stále je tu omezení vzdálenosti bezpečného kanálu a problém s vysokými pořizovacími náklady. Hlavní odlišení od protokolu BB84 spočívá v předpokladu společného zdroje, který bude komunikovat s každou stranou odděleně. Z toho vyplývá, že společný zdroj fotonů nebude ležet ani na jedné straně, ale bude komunikovat odděleně s každou stranou. Tato architektura má velkou výhodu v použití právě jednoho zdroje a neomezeného počtu příjemců, který musí být na tento zabezpečený kanál napojeny v případě potřeby šifrování. Jako centrální zdroj by se dal použít satelit a dále libovolně spojit dvě místa na zemi. Tato realizace přes satelit není stále zatím aplikována, ale jsou velmi velké předpoklady k používání takového spojení, i když dnes se jedná pořád o stádium pokusů. 46\n49 3. Problém diskrétního logaritmu Problém diskrétního logaritmu je jeden z mnoha matematických problémů dnešní doby, který nelze ani v současnosti za použití moderní techniky efektivně vyřešit. Některé z těchto matematických problému jsou v praxi nevyužitelné, ale ostatní nachází dobré uplatnění v některých vědných oborech. Právě problém diskrétního logaritmu nachází vhodné uplatnění v asynchronní kryptografii. Problém diskrétního logaritmu je založen na matematickém postupu, který je snadný provést z jedné strany, ale obráceně je velmi obtížný. Matematický problém diskrétního logaritmu je založen na modulární aritmetice. Konkrétně se ze skupiny modulárních funkcí nejvíce využívá funkce modulo, kterou můžeme v češtině najít také pod označením zbytek po dělení. Jedná se o funkci, která nám zajišťuje početní operaci celočíselného dělení. Například 9 / 4 = 2 se zbytkem 1. Tato rovnice se lze také ale zapsat jako 9 modulo 4 = 1, neboli zkráceně 9 mod 4 = 1. Diskrétní logaritmus je tedy založen na modulární aritmetice a je jednoduché ho spočítat jedním směrem, ale velmi obtížné obráceně. Celý princip diskrétního logaritmu je zobrazen na obrázku 12, kde vidíme, že vypočítat úlohu na obrázku je poměrně snadné, ale obráceně získat z výsledku a ostatních známých hodnot původní exponent je velmi obtížné. Tomuto principu se říká diskrétní logaritmus. Pro bezpečné používání tohoto principu musíme ještě zvážit velikosti známých hodnot, protože platí, čím menší hodnoty čísel si zvolíme, tím je větší šance pro dešifrování šifry. Jak už jsem uvedl, jedná se o matematický problém, k jehož výpočtu nevede žádný dnes známý algoritmus a proto prolomení je možné pouze způsobem vyzkoušení všech možných variant, tedy útokem nazývaném brute-force-atack. Proto právě bezpečnost této šifry stojí na použití dostatečně silných velkých čísel, které se dále používají pro výpočty. V praxi se používají šifry více jak stociferné. 47\n50 Obrázek 14 - Diskrétní logaritmus [zdroj: vlastni] Na tomto mechanizmu diskrétního logaritmu, kdy je velmi obtížné zjistit původní vstupy funkce, je založeno velké množství šifer, či jednocestných funkcí. Matematického problému diskrétního logaritmu využívají hlavně asymetrické šifry, které používají vstupní hodnoty funkce jako veřejný či soukromý klíč. Pomocí veřejného klíče se již otevřený text snadno zašifruje, ale bez znalosti soukromého klíče a s použitím dostatečně velkých čísel je následně velmi obtížné šifru analyzovat. Mezi nejznámější asymetrické šifry využívající problému diskrétního logaritmu patří: Diffie-Hellman ElGamal DSA Princip využití problému diskrétního logaritmu v asynchronní kryptografii je založen na velmi obtížném až nemožném výpočtu diskrétního logaritmu. Matematická podstata diskrétního logaritmu: Podstata celého problému diskrétního logaritmu vychází z definice logaritmu y=log a x a převráceným zobrazením tohoto logaritmu kdy x=a y. Potom nalezení celého čísla y 48\n51 z předešlého vzorce se nazývá problém diskrétního logaritmu. K nalezení celého čísla nám slouží vzorec, kde platí logb(g) = k(mod n). Dalším důležitým pojmem, který slouží k výpočtům diskrétního logaritmu je pojem konečná cyklická grupa, která se označuje G(Z n ) x. Tato grupa nám slouží v diskrétním logaritmu pro výběr náhodných čísel, která by měli být prvkem této konečné cyklické grupy. Z náhodných čísel následným výpočtem získáme výsledné šifrovací klíče. 3.1. Asymetrické šifry založené na diskrétním logaritmu Asymetrických šifer založených na matematických problémech je celá řada a právě jedním z těchto problémů je diskrétní logaritmus. Nejvýznamnější šifry, či jednosměrné funkce založené na problému diskrétního logaritmu, se kterými se dodnes setkáváme, si blíže popíšeme v následujícím textu. Jedná se o Diffie-Hellmanův protokol, ElGamalův algoritmus a algoritmus DSA. Tyto šifry či jednocestné funkce lze snadno a rychle provést, ale určit z výsledku takové funkce původní vstupy je velmi obtížné Diffie-Hellmanův protokol Diffie-Hellmanův protokol je jeden z prvních šifrovacích systémů založených na problému diskrétního logaritmu. Někdy se také můžeme setkat s termínem D-H, který neznamená nic jiného než zkratku pro Diffie-Hellmanův protokol. Tento protokol vznikl již v roce 1976 a jeho zakladateli byli Whitfield Diffie a Martin Hellman, podle kterých se také tento protokol jmenuje. Důležitou roli při vzniku tohoto protokolu sehrál také Ralph Merkle, který se považuje za třetího zakladatele tohoto systému. Dnes již existuje spousta modifikací tohoto systému, ale základ všech je založen na problému diskrétního logaritmu. Diffie-Hellmanův protokol využíváme tam, kde nemáme zabezpečený kanál a potřebujeme přenést bezpečně nějaké data. Pomocí tohoto protokolu si dokážeme právě i v nezabezpečeném kanále a bez předem domluveného klíče zajistit šifrovaný přenos. Výsledkem algoritmu založeného na Diffie-Hellmanovo protokolu je tedy utvoření společného symetrického klíče, který již můžeme použít pro zabezpečený přenos. Z toho tedy vyplývá, že se jedná o protokol, kdy útočník není schopen při pasivním odposloucháváním kanálu rozluštit klíč, na kterém se účastníci domlouvají. Oproti tomu má 49\n52 tento systém jednu velkou nevýhodu, protože nedochází k ověření, zda se opravdu jedná o příjemce či útočníka, který vstoupil mezi komunikující strany, tedy tato metoda neřeší autorizaci. Z tohoto důvodu je tento systém velmi zranitelný při útoku typu man in the middle, pomocí kterého se útočník dostane mezi komunikující strany a tváří se z pohledu příjemce jako odesílatel a naopak. Tento problém v případě, kdy víme, že se jedná o takto napadnutelný kanál, musíme řešit kombinací dalších metod zajišťujících autorizaci, při níž si ověříme, zda komunikujeme opravdu s příjemcem anebo odesílatelem. Výhoda: útok pomocí pasivního odposlouchávání není možný z důvodu, že se nikdy neposílá klíč v otevřené formě (vždy se zasílají pouze informace vedoucí k vytvoření takového klíče). Nevýhoda: tento algoritmus je možný bezpečně používat pouze v prostředí, kde případný útočník nemůže aktivně zasáhnout mezi komunikující strany. Příklad: berme v úvahu pro zjednodušení, že se jedná o komunikaci pouze mezi dvěma stranami. Komunikující strany si pojmenujeme jako Alice a Bob. Útočníka v tomto případě nám bude představovat Eva, která se bude snažit o prolomení zasílaných šifer pomocí pasivního odposlechu komunikace. Protože, jak jsem již psal, není možné zabránit útoku man in the middle z důvodu chybějící ověřování autorizace. 1) Na začátek komunikace se musí obě dvě strany domluvit na společné multiplikativní cyklické konečné grupě G s generátorem g. 2) Nyní, když jsou obě strany domluvené na bodu 1, je možné, aby si první z komunikujících stran například Alice zvolila náhodné číslo x N a odeslala potom Bobovi g x. 3) Následně provede Bob tu samou operaci, kdy si vybere náhodné číslo y N a odešle ho Alici ve tvaru g y. 4) Alice si ze svého zvoleného čísla x a od Boba získaného g y vypočte (g y ) x, Bob provede tu samou operaci se svým vlastním číslem y a získaného g x, tedy (g x ) y. 5) Po výpočtech vlastní oba dva účastnící sdílený tajný klíč g xy. Pomocí tohoto klíče již může probíhat další šifrovaní. 50\n53 Alice v tomto případě není schopna dešifrovat Bobův tajný klíč a obráceně ani Bob není schopen rozluštit tajný klíč Alice. V případě kdy by tomu tak nebylo, tak by Eva, která nám představuje útočníka a odposlouchávala by nám nezabezpečený kanál, byla schopná zprávu dešifrovat a šifrování prolomit. ElGamal algoritmus ElGamalův algoritmus je dalším ze skupiny algoritmů využívající matematického problému diskrétního logaritmu. Tento algoritmus byl představen v roce 1985, a byl pojmenován po svém vynálezci Taherovi ElGamalovi. Jedná se o asymetrický kryptosystém. Vzhledem k tomu, že tento algoritmus byl představen až několik let po Diffie-Hellmanovo protokolu a RSA algoritmu, není a ani nebyl tak široce rozšířen jako ostatní dva jmenované protokoly. Nyní se již s původním ElGamalovým algoritmem nesetkáme z důvodu slabé bezpečnosti. Dodnes se ale můžeme v praxi setkat s nějakými algoritmy pro podepisování zpráv, které pracují na již upraveném systému ElGamalových algoritmů. Od ElGamalových algoritmů se ustoupilo po nastoupení algoritmu DSA, který je mnohem bezpečnější. Jedna z velkých nevýhod ElGamalovo algoritmu je také zdvojnásobení délky zašifrované zprávy oproti otevřenému textu. Jak je výše uvedeno algoritmus ElGamal nám může sloužit jak pro šifrování tak k podepisování zpráv. Oba dva tyto systémy jsou si podobné a začínají oba na principu vytvoření veřejného a soukromého klíče. ElGamalův algoritmus šifrování zpráv I přesto že není ElGamalův algoritmus pro šifrování zpráv tolik rozšířen, má jednu výhodu oproti ostatním a to, že vnáší do šifrované zprávy náhodný parametr x, pomocí kterého se stává šifra bezpečnější, než kdyby měla stále stejný postup. Tato výhoda se ale může stát i nevýhodou v případě, kdy bychom tento parametr neměnili a nechávali ho po delší dobu stejný. V případě méně časté výměny parametru x je snadnější dešifrování zprávy útočníkem. ElGamalův algoritmus byl ve své době na velmi vysoké úrovni zabezpečení. A kdyby nebylo zdvojnásobení délky u šifrované zprávy, jistě by se používal tento algoritmus dodnes. 51\n54 Výhoda: Nevýhoda: velmi silná úroveň zabezpečení díky parametru x, který nám vnáší do šifry náhodný prvek. dvojnásobně větší délka šifrované zprávy oproti otevřenému textu. Příklad: berme opět v úvahu, že se jedná o zkušební příklad. Pro zjednodušení tedy budeme šifrovat přenos pouze mezi Alicí a Bobem. 1) Alice si na začátek komunikace musí zvolit tři parametry, z kterých následně sestaví svůj veřejný klíč. Jedná se o řád grupy, generátor z této grupy a svůj soukromý klíč. 2) Následně Alice tyto parametry dosadí do vzorce b k mod n. Z výsledkem z tohoto vzorce zjistí Alice svůj veřejný klíč. 3) Bob si zjistí veřejný klíč Alice a zašifruje zprávu pomocí tohoto klíče a parametru x. 4) Alice přijme zprávu a dešifruje jí pomocí svého soukromého klíče. 5) Alice tímto způsobem získá otevřený text od Boba, který tento text zašifroval pomocí veřejného klíče Alice a svého parametru x, který je potřeba neustále měnit. ElGamalův algoritmus podepisování zpráv ElGamalův algoritmus používaný pro podepisování zpráv byl hojně používán před nástupem systému DSA. DSA vyšlo z ElGamalovo algoritmu pro podepisování zpráv, ale opravuje nedostatky, kterých tento algoritmus měl na konci svého používání již více. Jedná se o velmi podobný systém jako ElGamalův systém pro šifrování zpráv, kde je opět využíván diskrétní logaritmus. Výhoda: Nevýhoda: založení základů pro dnes používaný systém DSA, který z tohoto systému vznikl. v dnešní době již nalezeno mnoho slabin tohoto systému, pomocí kterých se tento systém stal méně bezpečným. 52\n55 Příklad: jak je uvedeno výše, systém je založen na podobném principu jako systém pro šifrování zprávy, proto je velmi velká podoba s předcházejícím příkladem. Ale u tohoto systému podepisujeme pouze hash zprávy. 1) Jako první při podepisování zprávy si musí opět Alice připravit svůj veřejný klíč, který je vypočítán ze soukromého klíče. 2) Ze zprávy si vytvoříme hash neboli otisk zprávy, který následně odešleme spolu se zprávou. 3) Uživatel Bob přijme zprávu a podpis od Alice. Dále si obstará veřejný klíč Alice, pomocí kterého si ověří pravost podpisu. DSA algoritmus DSA (Digital Signature Algorithm) jak jsem již uváděl, je standard, který vznikl z ElGamalovo algoritmu pro podepisování zpráv. Bezpečnost tohoto algoritmu je založena opět na matematickém problému diskrétního logaritmu. Potřeba vzniku nového algoritmu pro podepisování zpráv vznikla postupně, kdy se dosavadní ElGamalův algoritmus ukázal jako velmi slabý. DSA algoritmus se někdy také zaměňuje s označením DSS 8. DSS je ovšem americký standard pro digitální podpis, který byl navržen americkým institutem NIST v srpnu Rozdíl je jenom v délce klíče, kdy u amerického standardu DSS je možný maximálně 1024bitů dlouhý klíč a DSA je bez omezení. DSA je patentováno a patent je připsán Davidovi W. Kravitzovi který ho nechal k volnému užívání. V původním DSS musela být použita hashovaní funkce SHA-1, v současných verzích je možné použití SHA-2. Výhoda: Nevýhoda: snadná implementace tohoto algoritmu. pro dnešní bezpečné využívání DSA je zapotřebí volit dostatečně dlouhý klíč, který je mnohem delší než používají ostatní algoritmy. 8 DSS Digital Signature Standard (standard pro digitální podpis) 53\n56 Příklad: základ tohoto algoritmu je také založen na diskrétním logaritmu a proto i princip vytváření digitálního podpisu je podobný jako u předchozího příkladu ElGamalova algoritmu pro podepisování zpráv, z kterého tento algoritmus i vychází. 1) V prvním kroku se vytvoří hash z otevřeného textu který chceme podepsat. 2) Pomocí zvoleného náhodného parametru se vypočítá soukromý klíč, z kterého se následně vypočte klíč veřejný. 3) Následně zašifrujeme vytvořený hash zprávy soukromým klíčem a odešleme. 4) Příjemce si následně vytvoří hash došlé zprávy pomocí veřejného klíče a porovná ho s poslaným hashem. V případě shody je zaručena integrita zprávy. 54\n57 4. Porovnání bezpečnosti šifer s různými délkami šifrovacích klíčů Samotná moderní kryptografie nedává přednost ani jedné straně dnes používaných symetrických a asymetrických kryptografií. V dnešní době se používá většinou na přenos klíčů a podepisování zpráv kryptografie asymetrická, která odstraňuje problém s výměnou klíče a samotná zpráva se pak šifruje za pomocí symetrické kryptografie. Toto řešení je výsledkem složitějších výpočtů u asymetrické kryptografie, které jsou náročnější na výpočetní výkon při šifrování a dešifrování. Proto se šifrování zpráv provádí za pomocí symetrické kryptografie a následně se zasílá pouze klíč zašifrovaný kryptografií asymetrickou. Takovému spojení se říká hybridní kryptografie, která nám odstraňuje výhody obou druhů šifrování. V této kapitole jsou porovnané jednotlivé druhy algoritmů jak symetrické tak asymetrické kryptografie Porovnání symetrických šifer V porovnání v tabulce 2 vidíme dnes nejvíce rozšířené symetrické šifry, ale také šifry, které těmto šifrám předcházeli. V tomto základním porovnání jsem se zaměřil na základní parametry těchto šifer, které jsou rozhodujícími faktory při šifrování zprávy a také na délku klíče v závislosti na bezpečnost jednotlivých algoritmů. 55\n58 Tabulka 2 - Porovnání symetrických šifer [zdroj: vlastní] Název šifry AES DES TripleDES IDEA RC4 RC5 CAST Blowfish Twofish Serpent Vznik roku Anderson, Daemen, Adams, Knudsen, Autor šifry Rijdael IBM IBM Lai, Massey Rivest Rivest Tavares Schneier Schneier Bilham Patentována Ne Ne Ne Ano MediaCrypt Ne Ne Ne Ne Ne Ne Prolomena Ne Ano (1999) Ne Ne Ne Ne Ne Ne Ne Ne Bloková / proudová šifra Bloková Bloková Bloková Bloková Proud. Proud. Bloková Bloková Bloková Bloková Délka bloku (bitů) Počet rund 10,12, , , ,32 Nejmenší délka klíče (bitů) (56) 192(168) Maximální délka klíče (bitů) (56) 192(168) Dnes bezpečná délka klíče (bitů) (168) Z výsledků porovnání symetrických šifer, které jsou zde zobrazeny, vidíme velkou různorodost v případě porovnání kterékoliv vlastnosti šifry. V případě porovnání vzniku vidíme, že se jedná o šifry, které všechny pocházejí z minulého století, kromě standardu AES, který vychází ze šifry Rijndael, která vznikla také v minulém století. Autorem šifer jsou většinou vědci, kteří se oboru kryptografie dlouhodobě věnovali. Ale opět tu je výjimka u šifry DES a TripleDES u kterých za autora považujeme společnost IBM. Dále vidíme jedinou patentovanou šifru IDEA, jejímž vlastníkem patentu je firma MediaCrypt. Ze zde uvedených je prolomen pouze algoritmus DES, který již není v moderní kryptografii jako takový používán, ale můžeme se s ním setkat stále v upravených verzí, například ve verzi TripleDES. Dalším parametrem je rozdělení na blokovou a proudovou šifru, kdy proudovou šifru v tabulce zastupuje pouze algoritmus RC4 a jeho novější verze RC5. V tabulce dále nalezneme délku bloku a počet rund, které jsou už velmi individuální u každého algoritmu. Posledním a nejdůležitějším faktorem každé šifry je délka klíče, která se pohybuje u porovnávaných algoritmů od žádného až nejvýše k 2048 bitů. Dnes se nejvíce používají 56\n59 klíče od 128 bitů až do 256 bitů. Výsledek porovnání těchto šifer je bezpečná délka klíče 128 bitů, která je založena na obtížnosti prolomení za pomocí útoku hrubou silou. V případě, kdy je již šifra prolomena a existuje nějaký algoritmus, který slouží k dešifrování šifry, délka klíče již nehraje roli. Proto je výsledkem porovnání symetrických algoritmů dnes stále bezpečná délka klíče 128 bitů. Nejedná se ale o délku klíče doporučovanou, nýbrž minimální, která zaručuje bezpečnost, díky nemožnému rozluštění takové šifry v reálném čase. Doporučovaná délka klíče je 256 bitů Porovnání asymetrických šifer V následující tabulce jsou srovnány nejdůležitější asymetrické šifry. Ve srovnání jsem se zaměřil jako u symetrických šifer na základní vlastnosti, ale také na dnes bezpečnou délku klíče. Do srovnávaných vlastností jsem zahrnul rok vzniku a autora šifry. Dále zda je šifra patentována, popřípadě prolomena. Šifra je považována za prolomenou v případě, kdy existuje nějaký algoritmus, který ji dokáže v reálném čase rozšifrovat anebo v případě, kdy maximální délka klíče algoritmu je již nedostačující a považována za nebezpečnou z důvodu útoku hrubou silou. Tabulka 3 - Porovnání asymetrických šifer [zdroj: vlastní] Název šifry RSA Diffie-Hellman DSA El-Gamal ECC ECDSA Vznik roku Rivest, Shamir, Miller, Autor šifry Adleman Diffie, Hellman Krawitz El-Gamal Koblitz ANSI Patentována Ne Ne Ano Ne Ne Ano Prolomena Ne Ne Ne Ano Ne Ne Digitální podpis Ano Ne Ano Ano Ne Ano Diskrétní logaritmus Ne Ano Ano Ano Ne Ano Faktorizace Ano Ne Ne Ne Ne Ne Eliptické křivky Ne Ne Ne Ne Ano Ano Dnes bezpečná délka klíčů (bitů)\n60 Výsledek porovnání asymetrických šifer je znázorněn v tabulce 3. V případě vzniku šifer se jedná opět o poměrně staré šifry. I přesto jsou zde dvě poměrně nové šifry, které jsou založeny na principu eliptických křivek. Tyto algoritmy založené na principu eliptických křivek jsou také jako jediné patentovány. V případě patentů jsou brány v potaz platné patenty zde na území ČR. Jedinou šifrou, která se dnes již nepoužívá z důvodu malé bezpečnosti, je protokol El-Gamal, který je tedy považován za snadno prolomitelný. V případě asymetrické kryptografie je také důležitá autorizace z důvodu útoku men-in-the-middle. Tuto autorizaci nám může zajišťovat také digitální podpis. Digitální podpis je mnohem častěji uplatňován sám o sobě bez nutnosti šifrování, kdy se nám stará o autorizaci a integritu dané zprávy. V případě šifer uvedených v tabulce umožňují digitální podpis algoritmus RSA, DSA, El-Gamal, ECDSA. Dále máme v tabulce tři parametry, které značí, na jakých principech asymetrické šifry pracují. Nejčastěji využívaný v asymetrických algoritmech je problém diskrétního logaritmu. Dnes nejvíce používaný asymetrický protokol RSA zase využívá princip faktorizace a jako poslední a nejnovější metodou, která je zároveň i nejbezpečnější v porovnání s délkou klíče, je princip založený na eliptických křivkách. Jak jsem uvedl, v případě algoritmů založených na principu eliptických křivek je velmi značný rozdíl v bezpečnosti při používání stejných klíčů jako u ostatních asymetrických šifer. V případě teoretického porovnání těchto 3 principů je shoda, co se týká bezpečného klíče u šifer založených na principu faktorizace a diskrétního logaritmu. U obou zmíněných principů je nutné dodržet bezpečnou délku klíče minimálně 2048 bitů, ale v případě algoritmů založených na eliptických křivkách je bezpečná minimální délka pouze 224 bitů. V případě srovnání tedy vidíme jednu z velkých výhod asymetrického šifrování založeného na principu eliptických křivek Závislost délky klíče symetrických šifer na čase prolomení útokem hrubou silou V případě dalšího testování bezpečných délek klíčů jsem se zaměřil na bezpečnosti délek klíčů v závislosti na prolomení útokem hrubou silou. Tento útok spočívá ve vyzkoušení všech možných kombinací a používá se tam, kde neexistuje nějaké jiné možné řešení či algoritmus, 58\n61 který by vedl k dešifrování zprávy. Tento útok je velmi náročný na čas a výpočetní požadavky, jak bude vidět dále ve výsledcích testování. K tomuto testování bezpečných délek klíčů jsem využil freeware výukový program CrypTool, který byl vyvinut ve spolupráci firem a univerzit. CrypTool se používá právě k vyzkoušení jednotlivých kryptografických algoritmů, ale také k různým druhům analýz. Pro obsáhlost a pokročilé funkce je tento program využíván na školách a univerzitách kde představuje názornou pomůcku při výuce kryptografie. Aktuální stabilní verze programu, v které byli prováděny testy je CrypTool , která je napsána jako předchozí verze v jazyku C / C Testování K testování jsem použil mimo programu CrypTool, také dvou počítačů s parametry uvedenými v tabulce 4, pomocí kterých dojde ke srovnání potřebného času na analýzu jednotlivých symetrických šifer. Tabulka 4 - Použité PC [zdroj: vlastní] Typ PC Procesor Operační Paměť Systém PC1 Stolní AMD Athlon, 1,8 GHz 2048 MB Windows 732Bit PC2 Notebook Pentium i5, 3.2 GHz 6144 MB Windows 864Bit Samotné testování probíhalo otevřením souboru text.txt v programu CrypTool, který obsahoval otevřený text připravený k zašifrování. Otevřený text připravený k zašifrování spolu s uživatelským prostředím je vidět na obrázku 15. Za obsah otevřeného textu jsem volil jeden z prvních odstavců mé diplomové práce. Tento text byl použit u veškerého testování, aby nedošlo k zavádějícím výsledkům. 59\n62 Obrázek 15 - CrypTool - otevřený text [zdroj: vlastní] Otevřený text (text.txt): Kryptografie nebo také šifrování je věda o metodách skrytí smyslu zprávy před třetí osobou, bez speciální znalosti, která vede k rozluštění. Slovo kryptografie je složeno ze dvou řeckých slov a to kryptós = skrytý a gráphein = psát. Kryptografie je pouze 1 částí z 3 oborů kryptologie. Kryptologie je opět složena ze dvou řeckých slov a to opět kryptós = skrytý a logos = věda. Další částí, z nichž se skládá kryptologie jsou, kryptoanalýza, která se zabývá dešifrováním dané zprávy a steganografie, která se zabývá skrýváním informací. Před samotnou analýzou pomocí útoku hrubou silou je nejdříve potřeba otevřený text zašifrovat. V případě šifrování jsou použity symetrické šifry AES, DES, TripleDES, IDEA, RC4, Twofish a Serpent. Pro názornost je zde vyobrazeno šifrování a následná analýza na šifře AES při použití klíče 128 bitů. Zvolené délky klíčů, které byly použity při testování, jsou v tabulce č.5. V této tabulce je také k vidění přesný klíč, který byl použit u jednotlivých délek klíčů v hexadecimálním tvaru. 60\n63 Tabulka 5 - Použité klíče v hexadecimálním tvaru [zdroj: vlastní] Délka klíče (bitů) Klíč v hexadecimálním formátu D D F6 7D D F6 7D F6 D7 6B 7A D F6 7D F6 D7 6B 7A D6 F7 FD FB 6F 6D 43 A D F6 7D F6 D7 6B 7A D6 F7 FD FB 6F 6D 43 A4 A5 DF 4D F6 4F DF 4D 6F D F6 7D F6 D7 6B 7A D6 F7 FD FB 6F 6D 43 A4 A5 DF 4D F6 4F DF 4D 6F D AF 3A A4 Nyní je již vše připraveno a pokračujeme v šifrování otevřeného textu. Nejdříve se musí vybrat zvolená délka šifry u daného algoritmu a následuje zadání klíče v hexadecimálním tvaru, jak je vidět na obrázku 16. Obrázek 16 - Šifrování AES 128 bitů [zdroj: vlastní] Šifrováním otevřeného textu jsme získaly šifru, která je ukázána na obrázku 17. Tato šifra je automaticky vygenerována v hexadecimálním a také ASCII formátu. Tuto šifru je už bezpečné poslat i po nezabezpečeném kanálu. 61\n64 Obrázek 17 - Zašifrovaný text [zdroj: vlastní] Posledním a nejdůležitějším krokem tohoto testování je samotné prolomení šifry za pomocí útoku hrubou silou. Jak je vidět na obrázku 18, při útoku hrubou silou je možné hledat celý klíč, popřípadě zadat známou část klíče. Pomocí této části se nám následný čas prolomení krátí, v závislosti na délce známé části klíče. Obrázek 18 - Útok hrubou silou [zdroj: vlastní] 62\n65 Výsledkem takového útoku by mělo být zobrazení otevřeného textu tedy rozluštění dané šifry. Ve větší části testování délky klíčů jsem na dostupné výpočetní technice nebyl schopen šifru rozluštit z důvodu dostatečně dlouhého klíče, který zaručuje bezpečnost šifrovacího algoritmu. V těchto případech jsem si musel vystačit s odečtením odhadovaného času rozluštění šifry, jak je vidět na následujícím obrázku 19. Obrázek 19 - Odhadovaný čas prolomení šifry [zdroj: vlastní] Vyhodnocení Výsledné vyhodnocení je odvozeno od výsledných časů jednotlivých šifrovacích algoritmů, za které je možné algoritmy prolomit, při použití rozdílných délek klíčů. Toto měření je pouze orientační z důvodu odečítání odhadovaného času v aplikaci CrypTool v případě 64 bitových délek klíčů a vyšších. I přes to je možné takto odečtené hodnoty porovnat a vyhodnotit testování. Měření ukázalo, že pro běžného uživatele s průměrnou výpočetní technikou není možné rozluštit ani 64 bitový klíč v reálném čase. Toto tvrzení se potvrdilo při užití obou dvou počítačů, jak je možné vidět v tabulce č. 6 a následující tabulce č. 7, kde je použit k rozluštění šifry větší výpočetní výkon. 63\nDiplomová práce. Aplikace kryptografie v informačních systémech. Univerzita Karlova v Praze. Filozofická fakulta. Bc. Pavel Mika\nUniverzita Karlova v Praze Filozofická fakulta Ústav informačních studií a knihovnictví Diplomová práce Bc. Pavel Mika Aplikace kryptografie v informačních systémech Application of cryptography in information