Bankovní institut vysoká škola Praha Katedra informatiky a kvantitativních metod Algoritmy využívané v kryptografických metodách Bakalářská práce Autor: Alex Tiščenko Informační technologie, Správce IS Vedoucí práce: Ing. Vladimír Beneš, Ph.D. Praha Duben, 2014
Prohlášení: Prohlašuji, že jsem bakalářskou 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 Praze, dne Alex Tiščenko
Poděkování Na tomto místě bych rád poděkoval panu Ing. Vladimíru Benešovi, Ph.D. jakožto vedoucímu práce, za konzultace, vstřícný přístup, cenné rady a trpělivost při vypracovávání této práce.
Anotace Bakalářská práce se zabývá charakteristikou algoritmů využívaných v kryptografických metodách a jejich hodnocení z hlediska bezpečnosti. Zprvu přibližuje pojem kryptologie, kde rozebírá základní termíny, zkratky a pravidla, která jsou v kryptologii užívaná. Následně se zabývá přehledem historie, popisující vývoj problematiky od starověku až po moderní dějiny. V dalších částech jsou popsány symetrické a asymetrické metody šifrování a charakteristiky vybraných algoritmů. Poslední část se věnuje bezpečnosti šifer, tato část má svoji vlastní kapitolu, ale problematika bezpečnosti se objevuje napříč celou prací, kde jsou vybrané algoritmy posuzovány a zkoumány z hlediska jejich bezpečnosti. Klíčová slova: kryptologie, kryptografie, kryptoanalýza, klíč, šifra, algoritmus, bezpečnost Annotation This bachelor thesis deals with the characteristics of algorithms used in cryptographic methods and their evaluation in terms of security. At first approaching the concept of cryptography and an analyzes on the basic terms, abbreviations and rules that are used in cryptology. Subsequently dealing with an overview of history, describing the development of the issue from ancient to modern times. In the following sections describe the symmetric and asymmetric encryption methods and characteristics of selected algorithms. The last part deals with security ciphers, this part has its own chapter, but the issue of security occurs across the entire work, where algorithms are chosen, assessed, and examined in terms of their safety. Key words: cryptology, cryptography, cryptanalysis, key, cipher, algorithm, safety
Obsah 1 Úvod do Kryptologie... 10 1.1 Základní termíny a pojmy používané v kryptologii... 10 1.2 Přehled zkratek a termínů používaných v kryptologii... 12 1.3 Pravidla a zásady kryptologie... 13 2 Historie kryptologie... 14 2.1 Starověká kryptologie... 14 2.2 Středověká kryptologie... 15 2.3 Kryptologie 20. století... 18 2.4 Moderní kryptologie... 21 3 Symetrické šifrovací algoritmy... 24 3.1 Blokové šifry... 25 3.1.1 Kryptografické režimy... 26 3.1.2 IDEA... 30 3.1.3 DES... 32 3.1.4 3-DES... 34 3.1.5 AES-Rijndael... 35 3.1.6 GOST... 36 3.1.7 Blowfish... 37 3.2 Proudové šifry... 38 3.2.1 RC4... 40 3.2.2 A5/1... 41 3.3 Výměna klíčů... 42 3.3.1 Shamirův algoritmus... 42 3.3.2 Diffie-Hellman protokol... 43 4 Asymetrické šifrovací algoritmy... 44 4.1 Zavazadlový algoritmus... 46 5
4.2 RSA... 48 4.3 El Gamalův algoritmus... 49 4.4 Rabinův algoritmus... 50 4.5 DSA... 51 4.6 Hash funkce... 52 4.6.1 MD2... 53 4.6.2 MD4... 53 4.6.3 MD5... 53 4.6.4 HAVAL... 54 4.6.5 SHA... 54 4.6.6 RIPEMD-160... 54 5 Bezpečnost šifer... 55 5.1 Luštění šifrovacích systémů... 55 5.2 Modely pro hodnocení bezpečnosti... 56 5.2.1 Absolutní bezpečnost... 56 5.2.2 Teoretická bezpečnost... 56 5.2.3 Dokazatelná bezpečnost... 57 5.2.4 Výpočetní bezpečnost... 57 5.2.5 Ad hoc bezpečnost... 57 5.3 Kvantitativní měřítka bezpečnosti... 58 5.4 Útoky proti šifrám... 58 5.4.1 Útok hrubou silou... 59 5.4.2 Slovníkový útok... 60 5.4.3 Důkladný útok hrubou silou... 60 5.4.4 Frekvenční analýza... 61 5.4.5 Útok se změnou bitů... 61 5.4.6 Odvození kryptografických klíčů z hesel... 62 6
5.5 Zesílené šifrování... 63 5.5.1 Dvojité šifrování... 63 5.5.2 Trojité šifrování... 64 5.6 Nebezpečný algoritmus... 65 7
Úvod Kryptologie je věda, jež byla a je nedílnou součástí vývoje lidských dějin. První důkazy o používání šifer sahají až do starověku a od té doby nabývá stále většího potenciálu a důležitosti. Postupem času sehrávala kryptologie stále důležitější roli v mnoha válkách, kdy snad největší přínos měla v době druhé světové války a v období studené války. V dnešní době hraje kryptologie velmi důležitou roli nejen ve válkách, ale i v běžném životě. S kryptologií se setkáváme dennodenně, ať už je to v našem povědomí či není. Toto lze považovat za důvod vzniku mé práce, vystihnout důležitost kryptologie čtenáři jakožto oboru, který pomáhal v průběhu několika tisíciletí k formování světa, a který nás nyní zcela obklopuje, ať už se to týká mobilních telefonů, internetu, bankomatů a mnoha dalších běžně používaných věcí. Cílem práce je popsat charakteristiky algoritmů využívaných v kryptografických metodách a jejich hodnocení z hlediska bezpečnosti. Aby bylo možné popsat charakteristiky algoritmů, je nejprve nutné si na začátku práce říci něco ohledně kryptologie obecně a popsat její vývoj a vliv na historii. Následně se přistoupí k symetrickým šifrovacím algoritmům, kde jsou popsány charakteristiky vybraných blokových a proudových šifer a také principy výměny klíčů. Navazujícím tématem jsou asymetrické šifrovací algoritmy. Zde jsou rozebrány vybrané šifrovací algoritmy asymetrického šifrování a hash funkce. Téma bezpečnosti se objevuje v průběhu celé práce a to například jako ukázky kryptoanalýzy vybraných algoritmů. Závěrem je tomuto tématu věnována celá kapitola, kde jsou popsány modely pro hodnocení bezpečnosti, typy útoků na kryptosystém a několik rad, jak svůj kryptosystém nejlépe zabezpečit. 8
Zvolené metody zpracování Metoda zpracování je metodou popisnou a byla zvolena na základě dostupných zdrojů pro dané téma. Většina textu práce vychází z literárních zdrojů uvedených v seznamu použité literatury. Pouze téma DSA a A5/1 vychází z elektronických zdrojů. Všechny tabulky byly přepsány podle literárních zdrojů. Z literárních zdrojů byly taktéž použity některé obrázky, většina obrázků však byla použita ze zdrojů elektronických. To z toho důvodu, že ve zvolené literatuře obrázky buď zcela chyběly, nebo byly pro použití nevhodné. Použitím obrázků z elektronických zdrojů bylo také docíleno uchování grafické kvality. Při postupu zpracování bakalářské práce jsem nejprve vybral literaturu, která mi pomohla se s danou tématikou lépe seznámit. To bylo nezbytné, abych si vše mohl uspořádat a zvolit body obsahu, které jsem uznal důležitými pro vypracování daného tématu. Dále jsem zvolil zdroje nejlépe vystihující téma historie, symetrického šifrování, asymetrického šifrování a bezpečnosti. Vybrané zdroje se v mnoha tématech prolínaly, a tak jsem byl schopen ověřovat správnost informací. Při zpracovávání jsem dbal na to, aby se téma bezpečnosti určitým způsobem vyskytovalo v průběhu celé práce. Na konci jsem však bezpečnosti věnoval celou kapitolu, kde tuto problematiku dále rozšiřuji. 9
1 Úvod do Kryptologie Kryptologie (kombinace slov cruptos = skrytý a logos = věda) 1 je samostatná vědní disciplína, která se dělí na kryptografii, kryptoanalýzu a steganografii. Je vědou o informační celistvosti a zahrnuje tvorbu kryptografických technik, vymezení podmínek jejich praktického využívání a zkoumání odolnosti kryptografických algoritmů proti kryptoanalytickým útokům. Opírá se o rozsáhlý matematický aparát, mimo jiné o propracovanou teorii informace, teorii složitosti, teorii čísel a teorii pravděpodobnosti. 1.1 Základní termíny a pojmy používané v kryptologii Kryptografie je obor, zabývající se matematickými metodami a jejich vztahem k takovým aspektům informační bezpečnosti, jako je důvěrnost, integrita dat, autentizace entit a původ dat. 2 Zajímá se o techniky založené na tajném klíči pro utajování a šifrování dat. Pouze někdo, kdo má přístup ke klíči je schopen rozšifrovat zašifrovaná data. Ve svém principu je nemožné, aby se k datům dostala osoba bez klíče. 3 Kryptoanalýza je "opakem" kryptografie. Snaží se získat ze zašifrované zprávy její původní podobu, resp. prolomit šifrovací algoritmus bez přístupu ke klíči. Moderní kryptoanalýza se zabývá analýzou odolnosti kryptografického systému a metodami vedoucími k prolomení tohoto systému. Co se týče prolomení šifry, existují dva typy rozluštitelnosti. Principiální rozluštitelnost, zda algoritmus lze myslitelnými postupy prolomit a reálná rozluštitelnost, zda by došlo k prolomení, pokud by např. celý výpočetní výkon na světe byl věnován pouze prolomení dané šifry. Steganografie slouží k ukrývání tajných zpráv do otevřeného textu. Např. většina norem pro tisk specifikuje více barevných odstínů, než kolik jich lidské oko může rozlišit a tak lze do obrazu 1024x1024 s různými odstíny šedi ukrýt 64-kilobytovou tajnou zprávu. 4 Při šifrování je prováděna kryptografická transformace, což je libovolné prosté zobrazení množiny celých čísel na množinu celých čísel (při šifrování je otevřený text nejprve převeden na čísla). 1 VAN DER LUBBE C. A. Jan. Basics Methods of Cryptography. ISBN 0-521-55559-0. Str. 8 2 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 12 3 VAN DER LUBBE C. A. Jan. Basics Methods of Cryptography. ISBN 0-521-55559-0. Str. 8 4 PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 31 10
Kryptografické protokoly jsou postupem, jak využít celého potenciálu šifrovacího algoritmu. Základním východiskem pro kryptografické protokoly je schéma pro kryptografický systém, jehož funkcí je kryptografická transformace otevřeného textu na šifrovaný text. Všechny transformace jsou prováděny příslušným kryptografickým algoritmem s individualizací algoritmu použitím klíčů. 5 Klíč je řetězec znaků (dat), který je použit jako součást šifrovacího procesu. Symetrický kryptosystém je použití stejného (soukromého) klíče k šifrování a dešifrování. Asymetrický kryptosystém je použití jednoho klíče (veřejného) k šifrování a jiného (soukromého) k dešifrování. Luštění je pokus o použití kryptoanalýzy na kryptosystém. Kryptosystém není pojem zahrnující pouze algoritmus, ale také všechny možné otevřené texty, šifrované texty a klíče. 6 Kryptografický algoritmus, označovaný také jako šifra je matematická funkce pro šifrování a dešifrování. 7 Hash funkce transformuje posloupnosti binárních symbolů libovolné délky na binární posloupnosti určité konstantní délky (hash hodnoty). Pro hash funkci, která generuje n-bitové výstupní hash hodnoty (tj. n = 128 nebo 160) a má požadované vlastnosti, je pravděpodobnost náhodného výběru posloupnosti s transformací do téže n-bitové hash hodnoty 2 -n. Kryptografické hash funkce se nejčastěji uplatňují u digitálních podpisů a datové integrity. 8 Teorie čísel je část matematiky, jejíž základním objektem jsou vlastnosti přirozených a celých čísel. Pod přirozenými čísly rozumíme prvky množiny čísel N = {1, 2, 3,...} a pod celými čísly prvky množiny Z = {0, ±1, ±2, ±3,...}. Kryptografie pracuje s modulární aritmetikou, prvočísly, největším společným dělitelem a pod. 9 5 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 13 6 MCANDREW, Alasdair. Introduction to cryptography with open-source software. ISBN 978-1-4398-2570-9. Str. 4 7 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 23 8 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 46 9 GROŠEK, Otakar a Štefan PORUBSKÝ. Šifrovánie - algoritmy, metody, praxe. ISBN 80-85424-62-2. Str. 25 11
Teorie informace definuje množství informace ve zprávě minimálním počtem dvojkových kódových prvků - bitů, potřebných pro zakódování všech možných stavů této zprávy za předpokladu, že výskyt každého takového stavu má stejnou pravděpodobnost. 10 Teorie složitosti dodává analýze výpočetní složitosti různých kryptografických technik a algoritmů potřebnou metodologii. Porovnává kryptografické algoritmy a techniky a určuje jejich bezpečnost. 11 1.2 Přehled zkratek a termínů používaných v kryptologii Kryptologie používá zavedené standardní zkratky, označení i standardní jména, které se využívají ve vzorcích i v textu jako součást vzorců kryptografických algoritmů a k popisu kryptografických protokolů. 12 Tabulka č. 1 - Přehled zkratek běžně používaných v kryptologii [14] zkratka, termín význam zkratky, termínu kongruence, operace jsou prováděné v celočíselné aritmetice Alice, Bob, běžná jména osob vzájemně komunikujících v rámci kryptografických Carol protokolů (osoby, mezi nimiž zpravidla probíhá autentizovaná komunikace) Mallory bývá třetí osobou (útočníkem) C šifrovaný text (zkratka z angl. ciphertext) D(C) dešifrovací (dekryptovací) funkce (zkratka z angl. decryption function), působící na šifrovaný text C a vytvářející znovu otevřený text M, tedy D(C) = M. Platí D (E (M)) = M při použití stejného šifrovacího algoritmu a správných klíčů E(M), resp. E(P) šifrovací funkce (zkratka z angl. encryption function), působící na otevřený text M (resp. P) a vytvářející šifrovaný text C, tedy E(M) = C ln přirozený algoritmus (logaritmus se základem e - Eulerovo číslo) Eva běžné jméno pro útočníka, který chce narušit/ zneužít komunikaci mezi Alicí a Bobem M, resp. P otevřený (nešifrovaný) text zprávy (zkratka z angl. message, resp. plain 10 PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 81 11 PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 86 12 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 14 12
text) NSD největší společný dělitel NSN největší společný násobek N! faktoriál - součin čísel od 1 do N, definitoricky je 0! = 1, pro N 1 platí rekurentní vztah N! = N* (N - 1)! runda Skupina operací, která se u šifrovacích algoritmů provádí jako jeden ucelený a vzájemně provázaný celek XOR logický operátor, logická negace neboli operace modulo 2. Hodnota je 1, pokud jsou všechny vyhodnocované logické hodnoty 0 nebo 1 různé. Často používaný v kryptografii, jako jednoduché kódování. Je využíván také počítačovými viry Zdroj: ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. Str. 15 [14] 1.3 Pravidla a zásady kryptologie Pravidla způsobu provádění šifrování se během vývoje kryptologie postupně vyvíjela a obdobně se vyvíjeli požadavky na kvalitu šifrovacího systému. Nejčastěji jsou uplatňovány následující požadavky na kvalitu kryptosystému: Spolehlivost kryptosystému - odolnost šifry proti rozluštění. Kryptosystém má být alespoň prakticky nerozluštitelný. Délka klíče co nejmenší - souvislost s rychlostí šifrování, uchováním a předáváním klíče. Délka klíče je kompromisem. Přiměřená složitost operace šifrování a dešifrování - souvislost s konstrukcí algoritmu, délkou klíče, použitým SW a HW. Odolnost kryptosystému proti šíření chyby - chyby při šifrování by se neměly v šifrovaném textu šířit. Přiměřené prodlužování textu šifrováním. Množství práce vynaložené na šifrování a dešifrování by mělo být úměrné požadovanému stupni utajení - dle stupně utajení se volí délka klíče, algoritmus atd. Implementace šifrovacího algoritmu by měla být co nejjednodušší. 13 13 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 16 13
2 Historie kryptologie Kryptologie je věda, která má dlouhou a zajímavou historii, je datována tisíce let zpět a v dnešní době informační společnosti dostala nový význam. 2.1 Starověká kryptologie První zmínky o utajování obsahu zpráv pocházejí již ze starověkého Egypta, Mezopotámie a Indie. Nejstarší šifry pocházejí z Egypta tisíce let před Kristem, kdy se zprávy vytesávaly v hieroglyfech do kamene v hrobkách a spočívaly v neobvyklé úpravě znaků či v přidání některých znaků, které byly známé pouze omezenému okruhu osob. 14 V Mezopotámii a Sumeru byly jako v Egyptě používané různé úpravy či přidání znaků klínového písma a později i upravené pečetní válečky pro ověřování originality zpráv. Ve starověké Indii obsahuje Kámasútra kromě návodu na milování i návod na vyznání se v tajných písmech a znacích. Ve starověkém Řecku byla používaná steganografie, transpozice a kódovací tabulky. Zprvu se používala steganografie a to tím způsobem, že zprávu napsali poslovi na vyholenou hlavu a počkali, až mu zaroste. Sparta používala transpozici, vzali se dvě hole identické šířky a na jednu hůl se navinul pás látky, na který se napsala zpráva a to směrem dolů po délce hole. Pás se zprávou se sejmul a posel jej odnesl k majiteli druhé hole, kde se opět navinul a přečetl. Obrázek č. 1 - Ukázka Spartské transpoziční šifry [5] Zdroj: GROŠEK, Otakar a Štefan PORUBSKÝ. Šifrovánie - algoritmy, metody, prax. Str. 14 [5] Řecký spisovatel Polybus vymyslel kódovací tabulku, kde seřadil písmena do čtverce a jejich řady a sloupce očísloval. Každé písmeno tudíž bylo prezentováno dvěma čísly a to číslem řady a číslem sloupce. Tato metoda umožňovala komunikaci na dálku a vysílat i dopředu nedomluvené zprávy. Polybiův čtverec se později stal základem mnoha šifrovacích systémů, protože převod písmen na číslice je zpravidla první operací při šifrování. 14 GROŠEK, Otakar a Štefan PORUBSKÝ. Šifrovánie - algoritmy, metody, praxe. ISBN 80-85424-62-2. Str. 12 14
Tabulka č. 2 - Ukázka Polybiovi šifry [5] 0 1 2 3 4 5 1 α ζ λ π φ 2 β η µ ρ χ 3 γ θ ν σ ψ 4 δ ι ξ τ ω 5 ε κ ο υ Zdroj: GROŠEK, Otakar a Štefan PORUBSKÝ. Šifrovánie - algoritmy, metody, prax. Str. 14 [5] Římané kolem roku nula zavedli vojenskou kryptografii. Zprávy mezi legiemi byly zasílány pomocí záměny otevřeného textu za šifrovaný text. Každé písmeno bylo zaměněno za písmeno, které leželo o tři místa dále v abecedě, takže písmeno otevřeného textu p i bylo zašifrováno písmenem c i podle pravidla c i =E(p i )=p i +3. Tato šifra se jmenovala Césarova šifra. 15 Například Césarův výrok VENI, VIDI, VICI by po aplikaci šifry vypadal takto AHQL, ALGL, ALFL. Césarův následník Augustus šifru změnil posunem pouze o jedno písmeno. Podobná myšlenka funguje i v hebrejské šifře atbaš. Zde je první písmeno abecedy nahrazeno posledním, druhé písmeno předposledním atd. a naopak. 16 2.2 Středověká kryptologie Velký vliv na vznik systematicky rozvíjené a na matematických základech založené kryptologii mají arabští matematikové. Kolem roku 855 našeho letopočtu popisuje Abú Bakr Ahmad ve své práci různé substituční šifrovací systémy a jedna z popisovaných substitučních abeced se v arabském světě beze změny používala do roku 1775. Arabové byli také první, kdo objevili a popsali metody kryptoanalýzy. Na práce arabských matematiků a kryptologů navázala středověká Evropa. Jejím významným představitelem byl benediktinský opat Johanes Trittheim, ten kolem roku 1500 napsal významnou evropskou knihu o šifrování, ve které se zabýval převážně substitučními systémy. Panovnické rody, které běžně šifry ke komunikaci používaly, se zalekly Trittheima a označili ho za čaroděje, což znamenalo jeho konec. V 16. století se objevili i první slavní 15 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 5 16 GROŠEK, Otakar a Štefan PORUBSKÝ. Šifrovánie - algoritmy, metody, praxe. ISBN 80-85424-62-2. Str. 15 15
kryptoanalytici. Jeden z největších byl v té době Francois Viete, který luštil zašifrované depeše španělského krále pro francouzského panovníka Jindřicha IV. Navarrovského. 17 Roku 1586 skotská královna Marie Stuartovna osnovala povstání a zavraždění anglické královny Alžběty. Její zašifrované listy však chodily přes ruce anglického kryptoanalytika Thomase Phelippesa. Tyto rozluštěné listy posloužily jako důkaz u soudu a stály Marii Stuartovnu život. 18 Téhož roku vyšla i kniha Traicté des Chiffres od Blaise De Vigenéra, ve které navrhl autoklíč, kde je klíčem samotná zpráva. Vigenérova šifra je příkladem polyalfabetické substituční šifry. K šifrování je potřeba takzvaný Vigenérův čtverec. Záhlaví tohoto čtverce je tvořeno písmeny anglické šestadvacetiznakové abecedy a představuje znaky otevřeného textu. V prvním sloupci vlevo jsou vzestupně uspořádaná čísla 1 až 26, která odpovídají všem možným posunům. První řádek tedy odpovídá Césarovu šifrování s posunem o 1, druhý řádek s posunem o 2 a tak dále. Obě dvě komunikující strany mají dohodnuté jedno slovo, které je klíčem. 19 Obrázek č. 2 - Vigenérův čtverec [1] Zdroj: BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. Str. 19 [1] 17 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 22 18 GROŠEK, Otakar a Štefan PORUBSKÝ. Šifrovánie - algoritmy, metody, praxe. ISBN 80-85424-62-2. Str. 16 19 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 20 16
Pokud tedy budeme mít klíč "kryptografie" a budeme chtít zašifrovat kupříkladu otevřený text "vysokaskola", bude postupovat následovně: 1. Klíč opíšeme nad otevřený text tolikrát, abychom pokryli každý znak zprávy: Klíč: k r y p t o g r a f i OT: v y s o k a s k o l a ŠT:??????????? 2. Pro zašifrování prvního písmene v musíme zjistit, kterému řádku odpovídá písmeno k, což je řádek číslo 10. Najdeme souřadnice V10 a zjistíme, že je zde písmeno f, to zapíšeme do šifrovaného textu a postup opakujeme: Klíč: k r y p t o g r a f i OT: v y s o k a s k o l a ŠT: f p o d d o y c o q i 3. Výsledným textem je tedy "fpoddoycoqi". Pokud budeme chtít zprávu dešifrovat, musíme znát klíč, kterým byla zpráva zašifrována, v tomto případě je to tedy "kryptografie" a postup bude následovný: 1. Klíč opět opíšeme nad zašifrovaný text tolikrát, abychom pokryli každý znak zprávy: Klíč: k r y p t o g r a f i OT:??????????? ŠT: f p o d d o y c o q i 2. První znak šifrovaného textu je f a ten odpovídá písmenu k šifrovacího klíče. Najdeme jaký řádek Vigenérova čtverce začíná písmenem k a zjistíme, že na znak f šifrujeme písmeno v otevřeného textu a postup opakujeme: Klíč: k r y p t o g r a f i OT: v y s o k a s k o l a ŠT: f p o d d o y c o q i 3. Výsledným textem je původní otevřený text "vysokaskola". 17
2.3 Kryptologie 20. století První světová válka zavedla použití šifrování v polních podmínkách. Podnětem k rozvoji kryptologie bylo kromě války i rozšíření bezdrátového telegrafu. Ten dával velký prostor možnostem odposlechu a tak musely být vyvinuty bezpečné systémy šifrování a účinné systémy dešifrování. 20 Mezi nejdůležitější události kryptologie za první světové války určitě patří Zimmermannův telegram a ADFGX šifra. Zimmermannův telegram je šifrovaná zpráva, kterou se podařilo roku 1917 zachytit kryptoanalytikům s označením Room 40. Tato šifrovaná zpráva byla poslána z Německa do Mexika a vyzývala Mexiko ke vpádu na území Spojených států, což by Američanům nejspíše znemožnilo zásah na Evropském kontinentě. Tento krok Německa přiměl americký kongres ke vstupu do války. Šifra ADFGX, která byla vynalezena Fritzem Nebelem a prolomena Georgesem Painvinem, se začala používat roku 1918 Německem. Šifrovací algoritmus kombinuje substituční a transpoziční šifrování. Každý znak se nejprve nahradil dvojicí složenou z písmen A, D, F, G, X a poté byla získaná zpráva vepsána do tabulky, jejíž záhlaví tvořil tajný šifrovací klíč, od kterého se odvíjelo navazující transpoziční šifrování. 21 Roku 1923 vyšlo čtyřsvazkové dílo Základy kryptoanalýzy od Williama Frederica Friedmana a stalo se biblí všech kryptologů první poloviny dvacáteho století. Obsah této knihy zásadně ovlivnil rozvoj kryptologie ve všech státech světa mezi dvěma světovými válkami. Tato kniha by možná nikdy nevznikla, nebýt autorových existenčních problémů a nemusel by se živit psaním. Friedmanovi existenční problémy vznikly tím, že Američané kryptoanalytické oddělení a členy tohoto oddělení, mezi které patřil právě Friedman, propustili. Americký ministr zahraničí Henry Stimson zrušení komentoval větou "Gentlemani si navzájem dopisy nečtou". 22 Friedman se rovněž zasloužil o rozluštění takzvaného purpurového kódu, který začali používat Japonci před zahájením druhé světové války. 23 20 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 22 21 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 25 22 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 23 23 GROŠEK, Otakar a Štefan PORUBSKÝ. Šifrovánie - algoritmy, metody, praxe. ISBN 80-85424-62-2. Str. 21 18
Postupně kryptologii doprovází rozvoj techniky, v tomto období představovaný mechanickými šifrovacími stroji. Ve 30. letech bylo v Německu sestrojeno jedno z nejznámějších šifrovacích zařízení Enigma. 24 Enigma je elektromechanický šifrovací stroj vynalezený Arthurem Scherbiusem, který získal patent již roku 1918, tedy už dvacet let před začátkem druhé světové války. Velkovýroba však začala až v roce 1926, jelikož Německo zprvu nesouhlasilo s dost vysokou cenou. Enigma se rozšířila do všech státy řízených organizací. Nicméně kryptoanalytik Bletchley Parku společně s matematikem Alanem Turingem Enigmu prolomili. Enigma připomíná klasický psací stroj. Před klávesnicí je 26 konektorů, které slouží k propojování jednotlivých písmen. Za klávesnicí je umístěna svítící deska obsahující stejný počet písmen. Šifrovací mechanismus je v prostoru, na jehož stranách jsou dvě kola, mezi která se vkládají další tři. Obě krajní kola mají 26 kontaktů odpovídající jednotlivým znakům abecedy. Tři vnitřní kola se vybírají z pěti možných (v rozšířené verzi z osmi kol) a každé z těchto vnitřních kol obsahuje vpravo 26 pružinových, vlevo stejný počet plochých kontaktů, které jsou na dvou sousedících kolech umístěny tak, aby do sebe zapadaly. Při stisku písmene na klávesnici se první kolo otočí o jednu pozici. Poté, co k takovémuto pootočení dojde celkem šestadvacetkrát, se stejně otáčí i druhé a nakonec i třetí z vnitřních kol. 25 Použitím šifrovacích strojů se někdy velmi prodlužovala doba komunikace. Zprávu bylo nutné nejdříve zašifrovat, odeslat a posléze dešifrovat, což v případě nouze nebylo příliš efektivní a tak přišly na scénu alternativní metody jako například drmolení, slang a podobně. To mělo mít za efekt znesnadnění pochopení obsahu třetí straně. V krajních případech byl obsah vyslán bez jakékoli úpravy a mohlo se jen doufat, že zprávu nezachytí třetí strana. V roce 1942 veterán první světové války Philip Johnston přišel s tím, že ovládá kmenový jazyk Navajů, který má jedinečnou strukturu. Jelikož kmen žil v uzavřené komunitě, počet bělochů ovládajících jejich jazyk byl minimální. To vedlo k myšlence, že každá základna musí mít rodilého mluvčího, který bude dělat překladatele. 24 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 23 25 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 29 19
Ukázka kódu Navajo: Besh-lo (železná ryba) - v angličtině ponorka. Dah-he-tih-hi (kolibřík) - v angličtině stíhací letoun. 26 Američané kód Navajo s úspěchem použili ještě v 50. letech ve válce v Koreji a v 60. letech ve Vietnamu. 27 První programovatelný elektronický počítač vznikl v Bletchley Parku, což bylo sídlo Room 40. Nesl název Colossus a byl určen k luštění německé šifry Lorenz, kterou používal Hitler ke komunikaci s generály. Lorenz četl z jedné děrné pásky dálnopisu otevřený text a následně jej šifroval kombinací s obsahem druhé, která plnila funkci šifrovacího klíče. Prolomit tuto šifru bylo obtížnější a takzvané Turingovy bomby nebyly pro potřebné výpočty dostatečně flexibilní. Musel tedy přijít na řadu Colossus, který byl vyroben v roce 1943. Obsahoval něco kolem dvou tisíc elektronek, které co do rychlosti překonávaly v té době běžně používaná elektromechanická relé. Vstup byl realizován pěti čtečkami papírové pásky, kdy každá z nich zpracovala pět tisíc znaků za sekundu. 28 V 60. letech se kvůli rozšíření počítačů a komunikačních systémů stupňovaly požadavky na ochranu informací v digitální podobě a na poskytování bezpečnostních služeb. Vývoj kryptografického mechanizmu začal počátkem sedmdesátých let u IBM a kulminoval v roce 1977 přijetím výsledného produktu jako U.S. federální normy DES pro šifrování netajných informací. DES se stal snad nejznámějším kryptografickým mechanizmem v historii a v rozšířené formě 3 DES je i nadále standardním prostředkem pro zabezpečení elektronického obchodu u mnoha institucí na celém světě. V roce 1997 byla vyhlášena veřejná soutěž NIST (Americký úřad pro standardizaci) o nástupce DES, což je AES (Advenced Encryption Standard), kterou vyhrál Rijndael. Zásadní zvrat v historii kryptografie přinesl rok 1976, kdy Diffie a Hellman publikovali článek s názvem New Directions in Cryptography, kde byla popsána myšlenka veřejného klíče a nová metoda pro výměnu šifrovacích klíčů, jejíž bezpečnost spočívá na obtížnosti určování diskrétního logaritmu. Článek však neposkytl žádnou praktickou realizaci veřejného klíče a tak až v roce 1978 Rivest, Shamir a Adleman objevili první, 26 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 32 27 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 25 28 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 35 20
prakticky použitelný systém pro šifrování veřejným klíčem a digitální podpis, v dnešní době označovaný jako RSA. RSA systém je založen na rozkladu velkých přirozených čísel na prvočísla. Aplikace tohoto problému na kryptografii oživila snahy o hledání účinnějších metod takzvané faktorizace. Tento systém se po úpravách stále používá. V roce 1985 přichází ElGamal se systémem veřejného klíče založeným na problému hledání diskrétního logaritmu a ve stejném roce Miller a Koblitz představují veřejný kryptosystém s bezpečností založenou na obtížnosti výpočtu diskrétního logaritmu na eliptických křivkách. Jedním z nejvýznamnějších přínosů kryptografie veřejného klíče je digitální podpis. První mezinárodní norma pro digitální podpis (ISO/IEC 9796) byla přijata v roce 1991 a je založena na systému veřejného klíče RSA. V roce 1994 vláda USA přijala normu pro digitální podpis založenou na ElGamalově systému veřejného klíče. EU v roce 1999 schválila směrnice pro digitální podpis, stejně jako ČR, která roku 2000 přijala zákon číslo 227 o elektronickém podpisu. 29 2.4 Moderní kryptologie Velkou úlohu v moderní kryptografii hraje kvantová teorie. V té hraje jednu z nejvýznamnějších rolí takzvaný princip superpozice. Předmět, jenž je v superpozici, může nabývat několika různých stavů zároveň, jako například částice točící se v jednom okamžiku zároveň ve směru i proti směru hodinových ručiček, může být nabita kladně i záporně nebo existovat i neexistovat. Základní jednotkou u klasických počítačů je bit. Ten může nabývat základních stavů 0 nebo 1 a v jednom okamžiku se nachází právě v jednom stavu. V kvantových počítačích se uvažují takzvané qubity, které se od bitů liší tím, že díky superpozici nabývají více hodnot zároveň. Za nosiče qubitů jsou považovány fotony, nejmenší kvanta energie, která může elektromagnetické záření vyměnit. Je-li v klasickém počítači osm bitů, pak v jednom okamžiku představují binární zápis právě jednoho čísla z 256 možných. Kdežto osm qubitů v superpozici reprezentuje všech 256 čísel naráz. Jelikož tedy klasický počítač funguje tak, že při zadání úlohy prochází jednu cestu po druhé dokud nenajde řešení, pak kvantový počítač projde všechny cesty naráz. 30 29 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 6 30 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 39 21
Kvantové počítače by mohly být využity v kvantové kryptografii pro generování tajných klíčů na základě generace náhodných posloupností a díky o mnoho řádů rychlejší simulaci fyzikálních systémů pro útok hrubou silou. 31 Obrázek č. 3 - Bit vs. qubit [26 26] Zdroj: http://qo.pitt.edu/research_qc.html [26] Foton se při šíření časoprostorem chová jako vlnění, jehož rovina svírá v dané soustavě souřadnic určitý úhel. Pokud se jiné fotony šíří v jiných rovinách, pak jde o světlo nepolarizované. Budou-li kvantové vlny velkého množství kmitat v jedné rovině, pak půjde o polarizované světlo. Polarizované filtry propustí polarizované fotony v určité rovině a jinak polarizované fotony tímto filtrem neprojdou. Horizontálně polarizovaný filtr bude propouštět jen horizontálně polarizované fotony. Jestliže tento filtr otočíme o 90 stupňů, bude propouštět pouze vertikálně polarizované fotony. Jestliže impuls horizontálně polarizovaných fotonů bude procházet skrz horizontálně polarizovaný filtr a ten filtr začneme otáčet o 90 stupňů, pak počet procházejících protonů se okamžitě nezastaví, ale bude klesat k nule. To je dáno pravděpodobností přizpůsobení skoku svoji polarizace vlastnostem filtru. Při odchylce úhlu 45 stupňů budou fotony procházet filtrem s 50% pravděpodobností. 32 Polarizaci lze měřit v jakékoliv soustavě souřadnic - ve dvou vzájemně kolmých rovinách: Rektilineární - horizontální a vertikální; diagonální - levoúhlopříčné a pravoúhlopříčné. Polarizace fotonového impulsu můžeme určit, pokud jej budeme měřit v téže soustavě stavě v jaké je polarizován. Jestliže budeme měření provádět v jiné soustavě, pak dostaneme náhodný výsledek. 31 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 119 32 PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 229 22
Při generování tajného klíče budeme postupovat následujícím způsobem: 1. Subjekt A vysílá k subjektu B sled fotonových impulsů a každý impuls je náhodně polarizován v jednom ze čtyř směrů: ǀ ǀ / \ ǀ / 2. Subjekt B může nastavit polarizační detektor tak, aby zjišťoval rektilineární nebo diagonální polarizaci. Zákony kvantové mechaniky totiž nedovolují zjišťovat oba typy polarizace najednou. Nastavení detektoru bude tedy náhodné: + + + + + Jestliže je polarizační detektor subjektu B nastaven diagonálně a impuls bude polarizován rektilineárně, pak subjekt B získá náhodný výsledek a nebude schopen poznat diferenci. Může získat například: ǀ \ / \ / ǀ 3. Subjekt B informuje subjekt A o sledu použitých způsobů nastavení polarizačního detektoru. 4. Subjekt A informuje subjekt B o tom, která nastavení polarizačního detektoru byla správná. V tomto případě bylo nastavení správné pro impulsy 2, 6, 7 a 9. 5. Subjekty A a B budou používat pouze ty způsoby polarizace, které byly detekovány správně. V tomto případě: * ǀ * * * \ * * Pomocí předem domluveného kódu subjekt A i B transponují výsledky správně zjištěných polarizací do bitů. Například vertikální a pravodiagonální polarizace může představovat jedničku zatím co horizontální a levodiagonální polarizace nulu. V tomto případě budou mít oba subjekty tyto hodnoty: 1 1 0 0 Tímto způsobem byly vygenerovány čtyři bity a stejným postupem lze vygenerovat libovolný počet bitů. Subjekt B má pravděpodobnost na uhádnutí polarizace 50%, tudíž subjekt A musí pro vygenerování n bitů vyslat 2 n fotonových impulsů. 33 33 PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 231 23
3 Symetrické šifrovací algoritmy Symetrická kryptografie používá jediného tajného klíče, který je použit k zašifrování zprávy na straně odesílatele a k dešifrování zprávy na straně příjemce. Z toho vyplývá nutnost předat před začátkem komunikace nebo v jejím průběhu důvěryhodným kanálem klíč druhé straně. Obrázek č. 4 - Symetrické šifrování [20] Zdroj: http://commons.wikimedia.org/wiki/file:symetrick%c3%a1_%c5%a1ifra.png [20] Existují dva základní typy symetrických algoritmů, těmi jsou blokové šifry a proudové šifry. Blokové šifry zpracovávají bloky otevřeného textu a bloky šifrovaného textu, a to o velikosti 64-bitů nebo větší. Proudové šifry zpracovávají posloupnosti otevřeného textu a posloupnosti šifrovaného textu po jednotlivých bitech nebo bytech. U blokové šifry šifrováním stejného bloku otevřeného textu stejným klíčem vznikne vždy stejný blok šifrovaného textu. U proudové šifry opakováním stejného bitu nebo bytu otevřeného textu se vytvoří vždy jiný bit nebo byte. 34 34 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863 02863-1. Str. 191 24
3.1 Blokové šifry Bloková šifra je šifrovací systém, jenž rozděluje zprávu otevřeného textu za účelem přenosu do posloupností (bloků) pevné délky a ty potom najednou postupně šifruje. Blokové šifry jsou nejrozšířenější šifry symetrického klíče. Nejdůležitější třídy blokových šifer jsou substituční šifry a transpoziční šifry, přičemž složením těchto dvou šifer vznikají kombinované třídy. 35 Velikost vstupního bloku blokové šifry má základní význam pro bezpečnost celého algoritmu. Pokud by velikost tohoto bloku byla malá, pak by bylo možné vytvořit slovník vstupních jim odpovídajících výstupních hodnot algoritmu, což by mělo nepříznivý dopad na bezpečnost celého algoritmu. 36 Jestliže si označíme šifrovací funkci jako E(p,k), kde p je otevřený text a k je klíč a dešifrovací funkci jako D(c,k), kde c je šifrovaný text, pak by měla bloková šifra vyhovět následujícím vlastnostem: 1. Otevřený text by měl být obnovitelný z textu šifrovaného, tedy D(E(p, k),k) = p. Jinak řečeno, dešifrování a šifrování jsou inverzní funkce. 2. Jestliže máme k dispozici zašifrovaný text, ale nemáme klíč, nemělo by být možné se dostat k otevřenému textu. Jeden ze základních principů bezpečnosti blokových šifer je, že klíč by měl mít alespoň délku 128 bitů, protože kratší klíče jsou zranitelné proti tvrdému útoku. 3. Funkce by měly být rychlé a efektivní na hardware a software. 37 Blokové šifry mají výhody, jenž proudové šifry nemají, ale jejich nevýhody jsou naopak předností proudových šifer. K výhodám blokových šifer patří: Difúze. Informace otevřeného textu difunduje do několika symbolů šifrovaného textu. Jeden blok šifrovaného textu může záviset na několika písmenech otevřeného textu. Imunita vůči narušení. Protože se šifrují bloky symbolů, tak není možné implementovat do bloku ani jediný symbol. Délka bloku by se potom změnila a dešifrovaní by rychle takovou implementaci odhalilo. Navíc jeden znak otevřeného textu nemusí generovat jeden znak šifrovaného textu. 35 GERHARD, G., J. HARTMANIS a J. LEEUWEN. State of the art in applied cryptography. ISBN 3-540-65474-7. Str. 19 36 POŽÁR, Josef. Informační bezpečnost. ISBN 80-86898-38-5. Str. 200 37 MCANDREW, Alasdair. Introduction to cryptography with open-source software. ISBN 978-1-4398-2570-9. Str. 168 25
K nevýhodám blokových šifer patří: Zpoždění. Nejprve musí být přijat celý blok otevřeného textu, aby mohl začít proces šifrování. U sloupcové transpozice se zpoždění týká celé zprávy. Šíření chyb. Chyba ovlivní transformaci všech ostatních znaků téhož bloku. 38 3.1.1 Kryptografické režimy Všechny blokové šifry používají fixní délku bloku. Ty, které šifrují otevřený text delší než je jejich délka bloku, potřebují užít šifrování vícekrát. K tomu slouží kryptografické režimy. Kryptografický režim obvykle kombinuje základní šifru, typ zpětné vazby a jednoduché operace. Operace jsou jednoduché, protože bezpečnost je funkcí šifry ne režimu. Bezpečnostní charakteristiky: Režim šifry by neměl kompromitovat bezpečnost vlastního algoritmu. V otevřeném textu by měly být potlačeny struktury, vstup šifrovacího modulu by měl mít náhodný charakter, výskyt chyb v šifrovaném textu by neměl výrazně ovlivňovat otevřený text a mělo by být možné šifrovat více zpráv stejným klíčem. Režim by neměl mít výrazně menší účinnost než vlastní šifra. Čtvrtou charakteristikou je tolerování chyb. Některé aplikace vyžadují paralelizaci šifrování nebo dešifrování a jiné zase maximální předzpracování. U jiných je důležité to, aby se dešifrovací proces dokázal zotavit z chyb, které se vyskytnou v toku šifrovaného textu. Režimy, které se používají v praxi, kombinují tyto charakteristiky různě. 39 3.1.1.1 ECB ECB (Electronic Codebook Mode) je nejjednodušší režim proto, že každý blok otevřeného textu je šifrovaný nezávisle na ostatních, to znamená, že se datový soubor nemusí šifrovat lineárně. Například se může nejprve šifrovat několik prostředních bloků, potom bloky na konci a až na konec bloky na začátku. To je důležité při šifrování souborů s náhodným přístupem jako například databáze, kde pak lze záznamy přidávat, mazat, šifrovat či dešifrovat a to nezávisle na záznamech ostatních, pokud tedy záznam tvoří celistvý počet bloků. Jestliže jsou bloky otevřeného textu p 1,p 2,p 3,..., pak c 1 =E(p 1,k), c 2 =E(p 2,k), c 3 =E(p 3,k),.... 38 PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 78 39 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 191 26
zvlášť. 40 Nevýhodou ECB je tedy bezpečnost. Kryptoanalytik může zahájit luštění textu bez klíčem. 41 Bezpečnost: Dešifrování je velmi snadné, protože každý blok šifrovaného textu může být dešifrován ohledu na sílu blokové šifry. Nejzranitelnější jsou začátky a konce zpráv se standardními záhlavími a zakončeními, která obsahují informaci o odesílateli, příjemci a tak dále. Kladem je naopak výhoda toho, že šifrování mnoha zpráv stejným klíčem neohrozí bezpečnost, jelikož každý blok může být chápán jako samostatná zpráva šifrovaná stejným - Struktury otevřeného textu nemizí, - Vstup blokové šifry nezískává náhodný charakter, - Otevřený text je snadno manipulovatelný, + Stejným klíčem lze šifrovat více zpráv. Účinnost: - Šifrovaný text je kvůli doplňování delší než otevřený text, - Není možné předzpracování, + Zpracovávání může být paralelní, + Rychlost. 3.1.1.2 CBC Tolerování chyb: - Chyba v šifrovaném textu ovlivní celý blok otevřeného textu, - Synchronizační chyba je neodstranitelná. 42 CBC (Cipher Block Chaining) používá namísto šifrování bloků otevřeného textu přímo, předchozí blok šifrovaného textu, který je nejprve přidán k šifrování stávajícího bloku a to takto: c 1 =E(p 1 c 0,k), c 2 =E(p 2 c 1,k), c 3 =E(p 3 c 2,k),.... Dešifrování je stejně přímočaré: p 1 =D(c 1,k) c 0, p 2 =D(c 2,k) c 1, p 3 =D(c 3,k) c 2,.... 43 Režim CBC přiměje šifrovat stejné bloky otevřeného textu na odlišné bloky šifrovaného textu pouze tehdy, pokud se některý předchozí blok otevřeného textu liší. Dvě totožné zprávy budou šifrovány stále do stejného šifrovaného textu. Největší nevýhodou CBC tedy je, že dvě zprávy se stejným 40 MCANDREW, Alasdair. Introduction to cryptography with open-source software. ISBN 978-1-4398-2570-9. Str. 173 41 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 192 42 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 214 43 MCANDREW, Alasdair. Introduction to cryptography with open-source software. ISBN 978-1-4398-2570-9. Str. 173 27
stejně. 44 Bezpečnost: začátkem budou šifrovány stejným způsobem dokud se nevyskytne odlišnost. Aby se tomuto zabránilo, používá se takzvaný inicializační vektor (IV), ten se použije jako první blok jako zašifrovaná náhodná data. IV nemá žádný konkrétní obsah a slouží pouze k tomu, aby se z každé zprávy stvořil originál, a tak žádné dvě stejné zprávy nebudou šifrovány -/+ Otevřený text je obtížněji manipulovatelný, + Struktury otevřeného textu po zpracování předchozím blokem šifrovaného textu v XOR mizí, + Vstup blokové šifry po zpracování s předchozím blokem šifrovaného textu v XOR dostane náhodný charakter, + Stejným klíčem lze šifrovat více zpráv. Účinnost: - Šifrovaný text je delší než otevřený text, - Není možné předzpracování, -/+ Šifrování nelze paralelizovat, + Rychlost. Tolerování chyb: - Chyba v šifrovaném textu ovlivní celý blok otevřeného textu a příslušný bit dalšího bloku, - Synchronizační chyba je neodstranitelná. 45 3.1.1.3 OFB V OFB (Output Feedback Mode) není nikdy otevřený text použit jako vstup do šifrovací funkce. Spíše šifra je použita ke generování pseudo-náhodného řetězce bitů, kterému se říká proudový klíč, kde je použita operace XOR s otevřeným textem. Výsledkem je proudová šifra shodně stylizována k bývalému bloku. K šifrování se nejprve vybere IV ve stylu CBC a poté může být proudový klíč definován jako: k 0 =IV, k 1 =E(k 0,k), k 2 =E(k 1,k), k 3 =E(k 2,k),... a pak pro každý blok otevřeného textu: c 1 =p 1 k 1, c 2 =p 2 k 2, c 3 = p 3 k 3,.... 44 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 197 45 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 215 28
Bezpečnost: - Otevřený text je snadno manipulovatelný, + Struktury otevřeného textu jsou odstraňovány, + Vstup blokové šifry dostává náhodný charakter, + Za předpokladu odlišného IV lze stejným klíčem šifrovat více zpráv. Účinnost: - Šifrovaný text má stejnou velikost jako otevřený text, pokud neuvážíme IV, - Zpracování není paralelizovatelné, +Rychlost. Tolerování chyb: - Synchronizační chyba je neodstranitelná, + Chyba v šifrovaném textu ovlivní jen odpovídající bit otevřeného textu. 46 3.1.1.4 CFB CFB (Cipher Feedback Mode) je režim podobný režimu CBC, až na to, že XOR nastane až po šifrování než předtím: c 1 =E(c 0,k) p 1, c 2 =E(c 1,k) p 2, c 3 =E(c 2,k) p 3,.... A obráceně: p 1 =c 1 E(c 0,k), p 2 =c 2 E(c 1, k), p 3 =c 3 E(c 2,k),.... 47 Bezpečnost: -/+ Otevřený text je obtížněji manipulovatelný, + Struktury otevřeného textu jsou odstraněny, + Vstup blokové šifry dostává náhodný charakter, + Stejným klíčem lze šifrovat více zpráv, pokud se použije odlišný IV. Účinnost: - Šifrovaný text má bez uvážení IV stejnou délku jako otevřený, - Šifrování není paralelizovatelné, + Rychlost, + Možné předzpracování. Tolerování chyb: - Chyba šifrovaného textu ovlivní příslušný bit otevřeného textu a celý následující blok, + Synchronizační chyby v rozsahu celých bloků lze odstranit. 48 46 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 216 47 MCANDREW, Alasdair. Introduction to cryptography with open-source software. ISBN 978-1-4398-2570-9. Str. 176 29
3.1.1.5 Volba režimu šifry Volba režimu šifry je závislá na požadavcích na režim. Jestliže má šifra být rychlá a jednoduchá, pak je nejsnadnějším způsobem zvolit režim EBC. Tento režim je ale také nejméně bezpečný. ECB se velmi hodí k šifrování náhodných dat, k jakým patří například klíče. Protože se jedná o krátká náhodná data, tak se nedostatky ECB režimu neprojeví. Pro šifrování souborů je nejvhodnější režim CBC kde i přesto, že se v datových záznamech vyskytnou chyby, tak se téměř nikdy nejedná o chybu synchronizační. Pro šifrování posloupností znaků, ve kterých je třeba každý znak chápat individuálně, jako při spojení terminálu s hostitelským počítačem, se používá režim CFB. OFB se nejčastěji používá u rychlých synchronních systémů, kde nelze tolerovat šíření chyb. Také pokud je požadováno předzpracování, volí se OFB. OFB se volí v prostředí, kde je vysoká chybovost, jelikož nepodléhá šíření chyb. 49 3.1.2 IDEA IDEA (International Data Encryption Algorithm) je blokový algoritmus, který byl vyvinut v rámci společného projektu Dr. Xuejia Lai a Prof. Jamese Masseye. Majitelem patentu je firma Ascom-Tech a nekomerční použití je bezplatné. Na veřejnost byl uveden roku 1992 a při šifrování je přibližně dvakrát rychlejší než DES a nabízí i vyšší úroveň bezpečnosti proti útokům hrubou silou, který by vyžadoval 2 128 šifrování k nalezení klíče. IDEA je bezpečný, rychlý algoritmus s délkou klíče 128 bitů. Algoritmus, který používá operace modulární aritmetiky a XOR operace, je použit pro šifrování i dešifrování. Používá 52 subklíčů, které jsou generované z primárního klíče a běží v osmi kolech. 128-bitový klíč je rozdělen na osm 16-bitových subklíčů, poté následují posuny o 25 bitů doleva a rozdělení na osm 16-bitových klíčů až po vygenerování 52 klíčů celkem. 6 subklíčů je použito každé kolo výpočtu, to je 48 subklíčů, poslední 4 subklíče jsou použity pro výstupní transformaci. V každém kole jsou tyto operace prováděny se čtyřmi 16-bitovými bloky a v každém kole je pro každý subblok použitá operace XOR a je sečten s dalšími subbloky a se subklíči. Tento algoritmus je užíván v režimech CFB a CBC. 48 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 216 49 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 214 30
Postup šifrování: 1. Rozdělení 64-bitového bloku na čtyři 16-bitové subbloky. 2. 8 kol výpočtu a výstupní transformace, kde X i je jeden ze subbloků a Z i je subklíč. 3. Jedno kolo výpočtu, kde modul je 2 16, tvoří operace: modulární násobení 16-bitových subbloků, modulární součet 16-bitových subbloků, XOR 16-bitových subbloků. Pracuje se se subbloky textu a subbloky klíče: X i Y i Z i J 16-bitový subblok otevřeného textu, 16-bitový subblok šifrovaného textu, 16-bitový subblok klíče. 4. Výstupem kola výpočtu jsou 4 subbloky, závěrečná transformace odpovídá prvním čtyřem krokům prvního kola výpočtu. 50 Obrázek č. 5 - Algoritmus IDEA [25] Zdroj: http://www.unistring.com/network.htm [25] 50 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 74 31
3.1.3 DES DES (Data Encryption Standard) je algoritmus používaný pro šifrování bloků dat a nabízí kryptografickou ochranu dat během úschovy a přenosu. Roku 1974 algoritmus DES firmy IBM vyhrál soutěž Národního úřadu pro standardy v USA o návrh kryptosystému, jenž by byl vhodný pro prohlášení za standard. DES vychází z šifry Lucifer, která byla vyvinuta počátkem sedmdesátých let a jejímž autorem byl Horst Feistel. Lucifer pro šifrování využíval klíč o délce 128 bitů, což znamená celkem 2 128 možných klíčů, protože každý ze 128 bitů může nabývat hodnot 1 nebo 0. Tato délka byla kvůli nátlaku Národního bezpečnostního úřadu USA zkrácena na polovinu, přičemž reálná efektivní délka klíče je 56 bitů, tudíž 2 56 možných klíčů. 51 Whitfield Diffie a Martin Hellman byli kritici DES a v dopise pro NBS otevřeně kritizovali délku klíče. Oba vědci argumentovali hypotetickou možností prolomit šifru pomocí útoku hrubou silou za jeden den. NBS však potvrdilo, že délka klíče 56 bitů je dostačující na minimálně dalších deset let. Roku 1997 vypsala agentura RSA kryptoanalytickou soutěž s cílem prokázat reálnou možnost prolomení DES a po necelém půl roce kryptoanalytik Rocke Verser šifru prolomil. V roce 1998 byl sestrojen DES cracker, který dokázal odhalit klíč o délce 56 bitů za necelých šedesát hodin. Tím bylo dokázáno, že s dostatkem financí na pořízení DES crackeru může kdokoliv šifru hrubou silou prolomit. 52 Šifrování podle DES je založeno na šifrování s tajným klíčem, což je binární posloupnost o délce 64 bitů. Z těchto 64 bitů je 56 z nich voleno libovolně a 8 bitů je zabezpečovacích. Nechť S je matice typu 4*16, v níž jsou řádky s 1, s 2, s 3 a s 4. V těchto řádcích jsou permutace čísel 0, 1, 2,..., 15. Nelineární funkce Ŝ přiřazuje slova o délce 6 bitů slovům o délce 4 bitů takto: Na šestibitovou kombinaci v 1 v 2 v 3 v 4 v 5 v 6 reaguje vstup matice v rozsahu čtyř bitů, kde i je binární číslo v 1 v 6 a j je binární číslo v 2 v 3 v 4 v 5. Například je-li S=S 1, pak Ŝ poskytuje například tyto odezvy: 000000 14=1100 000001 0=0000 100000 4=0100 100001 15=1101 atd. 51 VAN DER LUBBE C. A. Jan. Basics Methods of Cryptography. ISBN 0-521-55559-0. Str. 61 52 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 45 32