Základní šifrovací systémy a moderní aplikace šifer



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

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

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

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


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

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

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

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

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

KRYPTOGRAFIE VER EJNE HO KLI Č E

Šifrová ochrana informací historie KS4

Asymetrická kryptografie

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

Ukázky aplikací matematiky. Kapitola 1. Jiří Tůma. Úvod do šifrování. Základní pojmy- obsah. Historie šifrování

UKRY - Symetrické blokové šifry

Ukázkyaplikacímatematiky

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

EU-OPVK:VY_32_INOVACE_FIL13 Vojtěch Filip, 2014

Šifrová ochrana informací historie PS4

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

Šifrová ochrana informací historie PS4

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

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

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

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

asymetrická kryptografie

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

Kryptografie - Síla šifer

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

ElGamal, Diffie-Hellman

Správa přístupu PS3-2

Autentizace uživatelů

Informatika / bezpečnost

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

BEZPEČNOST INFORMACÍ

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

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

2000 zveřejnění dobové zprávy General Report on Tunny informací nedostatek k odvození konstrukce šifrátoru Lorenz cíl: odvození pravděpodobného

2000 zveřejnění dobové zprávy General Report on Tunny

MFF UK Praha, 22. duben 2008

C5 Bezpečnost dat v PC

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

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

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

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

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

Konstrukce šifer. Andrew Kozlík KA MFF UK

Bezpečnostní mechanismy

Jak funguje asymetrické šifrování?

Složitost a moderní kryptografie

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

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

Tel.: (+420)

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

Pokročilá kryptologie

PA159 - Bezpečnostní aspekty

Vzdálenost jednoznačnosti a absolutně

Moderní kryptografické metody

Informatika Ochrana dat

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

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

Komerční výrobky pro kvantovou kryptografii

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

klasická kryptologie základní pojmy požadavky na kryptosystém typologie šifer transpoziční šifry substituční šifry

DSY-6. Přenosový kanál kódy pro zabezpečení dat Základy šifrování, autentizace Digitální podpis Základy měření kvality přenosu signálu

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

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

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

Algebra - druhý díl. Lenka Zalabová. zima Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita

Andrew Kozlík KA MFF UK

Kryptografie a počítačová

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

Kódování a Šifrování. Iveta Nastoupilová

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

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

Bezpečnost dat. Možnosti ochrany - realizována na několika úrovních

ISMS. Autentizace ve WiFi sítích. V Brně dne 5. a 12. prosince 2013

klasická kryptologie základní pojmy požadavky na kryptosystém typologie šifer transpoziční šifry substituční šifry

Moderní kryptografie

PV157 Autentizace a řízení přístupu

Riemannova hypotéza Martin Havlík 2. A

Symetrické šifry, DES

Projekt 2 - Nejčastější chyby. Ing. Dominik Breitenbacher

Téma 2 Principy kryptografie

Hashovací funkce. Andrew Kozlík KA MFF UK

Dijkstrův algoritmus

2.8.6 Čísla iracionální, čísla reálná

Aplikovaná informatika

Problematika náhodných a pseudonáhodných sekvencí v kryptografických eskalačních protokolech a implementacích na čipových kartách

1 Linearní prostory nad komplexními čísly

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

Moravské gymnázium Brno s.r.o.

Návrh kryptografického zabezpečení systémů hromadného sběru dat

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Kvantová kryptografie

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

Proudové šifry a posuvné registry s lineární zpětnou vazbou

Šifrovací kroužek, 2015 Pro potřeby žáků ZŠ Čerčany ŠIFROVACÍ KROUŽEK - 3. hodina

Transkript:

Bankovní institut vysoká škola Praha Základní šifrovací systémy a moderní aplikace šifer Bakalářská práce Jan Šrámek Březen 2009

Bankovní institut vysoká škola Praha Katedra informačních technologií Základní šifrovací systémy a moderní aplikace šifer Bakalářská práce Autor: Jan Šrámek Informační technologie, auditor informačních systémů Vedoucí práce: Ing. Vladimír Beneš Praha Březen 2009

Prohlášení: Prohlašuji, že jsem bakalářskou práci zpracoval samostatně a s použitím uvedené literatury. podpis autora V Praze dne 21. 3. 2009 Jan Šrámek

Anotace Tato bakalářská práce si klade za cíl zmapovat a popsat historii vzniku šifer, jejich vývoj a význam. Mimo řady historických informací a souvislostí se práce zabývá popisem symetrických a matematických metod šifrování. Dále kryptografií s veřejným klíčem a kvantovou kryptografií. Práce zkoumá základní principy asymetrické kryptografie a srovnává nejznámější kryptografické algoritmy které se v současné době používají v informačních a komunikačních technologiích. Annotation This bachelor s study aims to map and describe the history of the emergence of ciphers, their evolution and significance. Outside the range of historical information and context, the work deals with a mathematical description of symmetric encryption methods. Furthermore, with public key cryptography and quantum cryptography. Work explores the basic principles of asymmetric cryptography, and compares the best-known cryptographic algorithms that are currently used in information and communication technologies.

Obsah 1 Vznik a historie šifer 6 1.1 Caesarova šifra 6 1.2 Jednoduché substituční šifry 8 1.2.1 Statistiky jazyka 10 1.3 Vigenérova šifra 12 1.4 Transpoziční šifry 14 1.4.1 Superšifrování 16 1.5 Základní koncepty 16 1.6 Rozvoj kryptologie a souvislosti 17 2 Symetrické a matematické metody šifrování 21 2.1 Proudové šifry 21 2.2 Blokové šifry 24 2.2.1 Typy blokových šifer 26 2.3 Používání symetrických algoritmů k autentizaci a ověření integrity dat 27 3 Asymetrické metody šifrování 29 3.1 Útoky na systémy s veřejnými klíči 31 3.2 Hashovací funkce 33 3.3 Digitální podpisy 34 4 Kvantová kryptografie 36 4.1 Systém kvantové kryptografie 38 4.2 Jak pracuje kvantová distribuce klíčů 40 4.3 Praktické použití kvantové kryptografie 41 5 Novodobé trendy v kryptografii 43 5.1 Teleportace 43 5.2 Spolehlivá šifra zapsaná do miniaturních částic 45 5.3 Superrychlý počítač 46

1 Vznik a historie šifer Kryptografie neboli šifrování je nauka o metodách utajování smyslu zpráv a převod do podoby, která je čitelná jen se speciální znalostí. Slovo kryptografie pochází z řečtiny kryptós je skrytý a gráphein znamená psát. Někdy je pojem obecněji používán pro vědu o čemkoli spojeném se šiframi jako alternativa k pojmu kryptologie. Kryptologie zahrnuje kryptografii a kryptoanalýzu, neboli luštění původní zprávy se šifrového textu. Obrázek 1: schéma šifrovacího systému Níže uvedené algoritmy jsou již zastaralé a nic nevypovídají o technikách moderní kryptografie. Přesto může studium raných systémů založených na záměně písmen (tzv. substituce písmen, substituční metoda) nebo změně pořadí písmen ve slově poskytnout řadu zajímavých informací. Je tomu tak z mnoha důvodů. Jedním z nich je, že představují jednoduché a snadno pochopitelné příklady, na nichž si můžeme ukázat základní koncepty a zároveň na nich můžeme demonstrovat mnoho slabin, na něž si šifry musejí dávat pozor. 1.1 Caesarova šifra Jednou z nejstarších šifer je takzvaná Caesarova šifra, kterou popsal Julius Caesar ve svých Zápiscích o válce galské. Její princip je založen na tom, že každé písmeno od A do W je během šifrování zaměněno za písmeno, které se v abecedě nachází o tři místa dále. Písmena X, Y, a Z jsou nahrazena symboly A, B a C. Ačkoliv Caesar používal posun o tři místa, stejného výsledku lze docílit použitím libovolného čísla 6

od 1 do 25. Jakékoliv šifrování za pomoci posunu písmen tedy dnes označujeme jako Caesarovu šifru. K vysvětlení šifry nám pomůže obrázek. Vidíme na něm dva soustředné prstence, přičemž ten vnější se může volně otáčet. Jestliže začneme v pozici kdy A přiléhá k A, při posunu o 2 místa se vedle A ocitne C a tak dále. Počítáme-li posun i o 0 (který je ve výsledku stejný jako o 26), máme celkem 26 možných nastavení. U Caesarovy šifry je šifrovací i dešifrovací klíč definován posunem. Obrázek 2: Přístroj na implementaci Caesarovy šifry Zdroj: MURPHY, Sean; PIPER, Fred, Kryptografie Jakmile se obě strany dohodnou na posunu, probíhá šifrování tak, že se písmena z otevřeného textu umisťují na vnitřní prstenec a nahrazují se písmenem z prstence vnějšího. K dešifrování stačí použít obrácený postup. Chceme-li tedy zašifrovat otevřený text PES s použitím posunu o tři písmena dostaneme řetězec SHV. V našem popisu Caesarovy šifry se šifrovací i dešifrovací klíč rovnají posunu ale šifrovací a dešifrovací postupy se od sebe liší. Stačí ovšem trochu pozměnit formulaci aby byly oba postupy shodné ale šifrovací a dešifrovací klíče různé. Jak jsem již naznačili, posun 0 písmen se rovná posunu o 26 písmen. Tudíž při šifrování s posunem 0 až 25 můžeme text dešifrovat stejným způsobem, když za posun zvolíme 26 mínus posun při šifrování. Takže například šifrování s posunem 8 je stejné jako dešifrování s posunem 26-8=18. Díky tomu můžeme pro šifrování i dešifrování použít stejný postu, přičemž šifrovací klíč (s posunem) 8 odpovídá dešifrovacímu klíči 18. Hlavní nevýhoda této šifry je její zranitelnost hrubou silou. Vzhledem k tomu, že Caesarova šifra má u běžné latinky pouze 26 možných klíčů, je tímto druhem útoku 7

velice zranitelná. Další slabinou je, že klíč lze odvodit ze znalosti jediného páru řetězců otevřeného a šifrového textu. To je až příliš málo na to aby to bylo bezpečné.[1] 1.2 Jednoduché substituční šifry Z hlediska kryptografické bezpečnosti je sice nezbytné mít velké množství klíčů ale současně musíme zdůraznit, že to samo o sobě není žádnou zárukou síly systému. Klasickou ukázkou může být jednoduchá substituční šifra (neboli monoalfabetická). Rozborem této šifry se nejen názorně přesvědčíme, že velké množství klíčů není žádnou zárukou neprolomitelnosti systému, ale navíc nám ukáže jak může útočník ke svému prospěchu využít statistiky daného jazyka v tomto případě angličtiny. U jednoduché substituční šifry si nejprve napíšeme všechna písmena abecedy ve správném pořadí a pod ně poté písmena v náhodném pořadí. Zde je příklad. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z správné pořadí D I Q M T B Z S Y K V O F E R J A U W P X H L C N G náhodné pořadí Šifrovací a dešifrovací klíče jsou navzájem shodné. Jedná se o pořadí v jakém jsou napsána tučná písmena. Šifrovacím pravidlem je nahradit každé písmeno tím, které je pod ním, dešifrovací proces je přesně opačný. Pokud bychom tedy použili klíč s výše uvedeného obrázku, slovo GET by po zašifrování vypadalo jako ZTP a zpráva IYZ znamená ve skutečnosti BIG. Mimochodem Caesarova šifra je vlastně zvláštním případem jednoduché substituční šifry. Počet klíčů v jednoduché substituční šifře se rovná počtu způsobů kolika je možné seřadit 26 písmen abecedy. Jedná se o faktoriál 26 (26! = 26x25x24 x2x1), což se rovná číslu 4 0 3 2 9 1 4 6 1 1 2 6 6 0 5 6 3 5 5 8 4 0 0 0 0 0 0 To je nepochybně opravdu velké číslo, takže by se někdo stěží pokoušel odhalit klíč postupným probíráním veškerých možností. Ovšem z takto nesmírného počtu klíčů vyplívá celá řada potíží a při správě klíčů u jednoduché substituční šifry často narazíte na několik takřka ukázkových problémů. Nejevidentnější ze všech je fakt, že klíč je na rozdíl od Caesarovy šifry dlouhý a těžko zapamatovatelný. Takže v dobách 8

před počítači, kdy bylo nutné tento druh systému aplikovat ručně, se klíč často zapisoval na kus papíru. Jestliže někdo papír někdo viděl nebo dokonce ukradl, ocitl se celý systém v nebezpečí. A když jej zodpovědná osoba ztratila, byly ztraceny i všechny šifrované zprávy protože ani zamýšlenému příjemci nezbývalo nic jiného než zkusit prolomit šifrovací algoritmus. Ve snaze předejít tomuto nebezpečí se uživatelé snažili vymyslet systém generování klíčů tak, aby bylo možné si je zapamatovat. Běžnou metodou bylo určit nějakou klíčovou větu, odstranit z ní všechna opakující se písmena a takto vytvořit začátek klíče, za něž se poté v abecedním pořadí zařadila veškerá zbývající písmena. Jako příklad si můžeme vzít větu We hope you enjoyed this book. Když z ní odstraníme opakující se znaky, dostaneme wehopyunjtisbk. Celý klíč tedy zní: W E H O P Y U N J T I S B K A C D FGLMQRVXZ Je zřejmé, že omezením klíčů na ty, jež jsou odvozeny od klíčové věty, se počet možností značně sníží, protože většině z 26! klíčů jednoduché substituce nelze odvodit z žádné věty, a to v jakémkoliv jazyce. Přesto je však počet klíčů dostatečně velký na to, aby nebyl útok hrubou silou proveditelný, a zároveň je možné si kód zapamatovat. Druhou nápadnou slabinou jednoduchých substitučních šifer je fakt, že mnoho různých klíčů zašifruje stejnou zprávu do stejného kryptogramu. Máme například text Meet me tonight (setkáme se dnes večer). Jestliže použijeme výše uvedený klíč, dostaneme kryptogram FTTP FT PREYZSP. Stejný kryptogram bude ovšem vytvořen libovolným klíčem, který přiřadí E k T, G k Z, H k S, I k Y, M k F, N k E, O k R a T k P. A takových klíčů je 1 8! = 6 4 0 2 3 7 3 7 0 5 7 2 8 0 0 0 To znamená, že přinejmenším u tohoto typu šifer bychom se neměli spoléhat na to, že k získání naší zprávy ze zachyceného kryptogramu musí útočník určit celý klíč. 9

1.2.1 Statistiky jazyka V případě kdy je jednoduchá substituční šifra použita k zakódování i poměrně dlouhého textu, existuje celá řada přímých útoků, s jejichž pomocí lze odhalit text původní zprávy a použitý klíč, nebo alespoň jeho velkou část. Tyto útoky se opírají především o všeobecně známé charakteristiky použitého jazyka. Písmeno % Písmeno % A 8,2 N 6,7 B 1,5 O 7,5 C 2,8 P 1,9 D 4,2 Q 0,1 E 12,7 R 6,0 F 2,2 S 6,3 G 2,0 T 9,0 H 6,1 U 2,8 I 7,0 V 1,0 J 0,1 W 2,4 K 0,8 X 2,0 L 4,0 Y 0,1 M 2,4 Z 0,1 Tabulka 1: Relativní četnost písmen v anglickém textu, PIPER, F.; BACKER, J., Cipher systems V tabulce 1 je zachycena četnost výskytu jednotlivých písmen abecedy v anglicky psaném textu. Výpočet byl proveden ze vzorku více než 300 000 znaků z různých pasáží mnoha novinových článků a knih. (tuto tabulku původně sestavili H. J. Beker a F.C. Piper a vydali jí ve své knize Cipher systems: The protection of Communications Šifrovací systémy: ochrana komunikací). Hodnoty v této tabulce jsou srovnatelné s těmi, které ve svých odborných přehledech publikovali i mnozí jiní autoři a lze je interpretovat jako pravděpodobný výskyt daných písmen v anglicky psaném textu. Jak vidno, v angličtině zaujímá dominantní postavení jen poměrně malý počet znaků. Při použití jednoduché substituční šifry je každé písmeno abecedy nahrazeno příslušným substitučním znakem bez ohledu na své postavení v textu. Pokud tedy použijeme šifru, ve které je E zaměněno za R, bude četnost výskytu R v kryptogramu totožná s četností výskytu E v původní správě. To znamená, že pokud frekvence písmen ve zprávě odpovídá tabulce 1, bude i rozvrstvení v kryptogramu 10

stejné, jen se bude lišit rozdělení mezi jednotlivé znaky. Pro názornost si to ukážeme v praxi na dlouhém kryptogramu, který jsme získali pomocí jednoduché substituční šifry. Při porovnání získaných údajů s tabulkou 1 může kryptoanalytik dojít k oprávněnému názoru, H odpovídá písmenu E a W odpovídá písmenu T. Vzhledem k tomu, že nejčastějším slovem se třemi písmeny je zcela bezkonkurenčně THE (určitý člen)., může si útočník svůj předpoklad ověřit vyhledáním řetězce W*H v kryptogramu, přičemž * představuje nějaký další znak. Tím si nejen potvrdí správnost svého odhadu, ale navíc odhalí, který znak (*) je ekvivalentem H v otevřeném textu. Graf 1: Sloupcový graf znázorňující relativní četnost výskytu písmen v kryptogramu získaného jednoduchou substituční šifrou z anglického textu. Zdroj: MURPHY, Fred; PIPER, Sean, Kryptografie Na závěr je třeba přesněji definovat výraz dlouhý kryptogram. Problém však je, že neexistuje přesná odpověď na tuhle otázku. Máme-li text zhruba o 200 znacích, pak je statistika poměrně spolehlivá. Na druhou stranu musím zdůraznit, že není žádná záruka, že se budou statistiky všech zpráv přesně shodovat s hodnotami z tabulky 1. 11

1.3 Vigenérova šifra Vigenérova šifra je pravděpodobně nejznámější manuální polyalfabetickou šifrou. Své jméno nese po Blisovi de Vigenére, francouzském diplomatovi ze 16. století. Ačkoliv byl její koncept publikován již roku 1586, širšího využití se dočkalas o 200 let později a prolomit se ji podařilo až Babbagovi a Kasiskému v polovině 19. Století. Za zmínku jistě stojí, že Vigenérovu šifru používala konfederační armáda v Americké občanské válce. Ta ovšem propukla až poté, co bylo tato šifra prolomena. Vigenérova šifra používá k šifrování tzv. Vigenérův čtverec. Sloupec po levé straně (klíčový sloupec obsahuje anglickou abecedu. Každé písmeno má svou vlastní řadu, v níž je taktéž celá abeceda, ale je posunuta v závislosti na klíčovém znaku v prvním sloupci. Tudíž každé písmeno v levém sloupci tvoří Caesarovu šifru, jejíž posun je určen právě tímto písmenem. Například u písmene g je Caesarova šifra s posunem 6. Obrázek 3: Vigenérův čtverec, http://www.google.cz/ 12

Jedna z nejběžnějších metod použití čtverce k získání šifry je zvolit si klíčové slovo (nebo větu), ve které se neopakují žádná písmena. Jestliže je otevřený text delší než klíčové slovo, opakuje se klíč, tak dlouho, jak je zapotřebí, abychom vytvořili řetězec stejně dlouhý jako původní zpráva. Ten si také pod zprávu zapíšeme. Zkusíme-li například zašifrovat slovo PLAINTEXT (otevřený text) klíčovým slovem fred, dostaneme: Zpráva: PLAINTEXT Klíč: FREDFREDF Nyní zprávu zašifrujeme s použitím čtverce tak, jak je napsáno níže. K zašifrování prvního písmene P použijeme klíčové písmeno pod ním, jímž je v tomto případě f. Takto pro zašifrování P přejdeme ve čtverci na řádek označený jako f a přečteme písmeno, které se nachází ve sloupci P. Tím je v našem případě U. Stejným způsobem zašifrujeme L vezmeme písmeno ve stejném sloupci a v řádku označeném písmenem r, čímž získáme C. Když tento proces zopakujeme pro všechna písmena, zjistíme, že kryptogram pro zprávu PLAINTEXT vytvořený klíčem fred je UCELSLIAY. Výsledek je následující: Zpráva Klíč Šifrovaný text PLAINTEXT FREDFREDF UCELSLIAY Písmeni T z otevřeného textu je v šifrové textu reprezentováno znaky L a Y a na druhou stranu písmeno L zastupuje v šifrové textu I a T z textu otevřeného. Je tedy zřejmé, že na rozdíl od jednoduchých substitučních šifer zde nelze k získaní původního textu použít frekvenci výskytu jednotlivých písmen. Vigenérovy šifry jsou jedním z příkladů polyalfabetických šifer, u nichž je opakovaně použita (krátká) sekvence jednoduchých substitučních šifer s pevně danou rotací. Počet šifer, z nichž se celek skládá, se nazývá perioda. U výše představené Vigenérovi šifry je perioda shodná s délkou klíčového slova. 13

Jedním z důvodů pro používání polyalfabetických šifer je snaha zamaskovat četnost výskytu jednotlivých písmen v daném jazyce. Pro ilustraci toho, jak to funguje, přikládám histogram, v němž najdete frekvenci výskytu písmen v kryptogramu, který jsem získali z anglického textu Vigenérovou šifrou s periodou 3. Graf 2: Sloupcový graf, který znázorňuje relativní četnost výskytu písmen v kryptogramu získaného třemi jednoduchými substitučními šiframi s pevně danou rotací. MURPHY, S.; PIPER, F., Kryptografie Na první pohled je patrné, že mezi tímto histogramem a tím, který je uveden dříve, jsou výrazné rozdíly. Nejnápadnější je, že žádné písmeno zde nevyčnívá nad ostatními tak, jako to bylo v minulém histogramu u znaku H. Druhý graf je bezesporu vyrovnanější než ten první, a neposkytuje tedy potencionálnímu útočníkovi tolik záchytných bodů. Při pohledu na druhý histogram by se sice mohla naskýtat myšlenka, že písmeno R alespoň částečně zastupuje E, ovšem nelze nijak určit kde a jak.[1] 1.4 Transpoziční šifry Ve všech případech, o kterých jsem se zmiňoval výše, jsou jednotlivá písmena či jejich skupiny nahrazovány jinými písmeny a skupinami. Proto tyto příklady spadají do kategorie substitučních šifer. Existují však i další typy šifer, jež jsou založeny na principu změny pořadí, v jakém jsou písmena napsána. Těmto metodám se říká transpoziční šifry. Uvedu jeden velice prostý příklad. Za klíč si zvolíme nějaké malé číslo, třeba 5. Chceme-li zašifrovat pomocí tohoto klíče, napíšeme ji do řádek o pěti 14

písmenech. Poté text zapíšeme za sebe s tím, že postupujeme po sloupcích nejprve napíšeme písmena z prvního sloupce, poté ze sloupce druhého a tak dále. Jestliže počet znaků není dělitelný pěti, přidáme na konec potřebný počet písmen Z. Pro vysvětlení si to předvedeme v praxi. Chceme zašifrovat zprávu WHAT WAS THE WEATHER LIKE ON FRIDAY (jaké počasí bylo v pátek). Klíčem je číslo 5. Takže zapíšeme text do řádek o pěti písmenech, Dostaneme: W H A T W A S T H E W E A T H E R L I K E O N F R I D A Y Délka zprávy není dělitelná pěti, musíme na konec přidat Z, takže získáme: W H A T W A S T H E W E A T H E R L I K E O N F R I D A Y Z Nyní zapíšeme obsah sloupců, takže dostaneme následující kryptogram: WAWEEIHSERODATALNATHTIFYWEHKRZ Dešifrovací klíč získáme prostým vydělením délky zprávy šifrovacím klíčem. V tomto případě vydělíme 30 číslem 5, takže získáme 6. Dešifrovací algoritmus je shodný se šifrovacím. V tomto případě tedy zapíšeme kryptogram do 6 řad, čímž Získáme: W A W E E I H S E R O D A T A L N A T H T I F Y W E H K R Z Správnost postupu si můžeme snadno ověřit tím, že přečteme zprávu po sloupcích a získáte tím původní zprávu. 15

Transpoziční šifry uvedeného typu lze prolomit poměrně snadno. Vzhledem k tomu, že klíč je zároveň dělitelem délky kryptogramu, stačí útočníkovi spočítat počet znaků v šifrové textu a zkusit všechny možné dělitele. 1.4.1 Superšifrování Kombinací dvou nebo více slabších šifer získáme systém, který se mnohem silnější. Tomuto způsobu se říká skládání šifer. Základní myšlenka je velice prostá. Jestliže například chceme zprávu superšifrovat pomocí jednoduché substituční šifry a transpoziční šifry, nejprve na zprávu použijeme jednoduchou substituční šifru a výsledný kryptogram ještě zašifrujeme pomocí výše nastíněné transpozice.[1] 1.5 Základní koncepty Hlavním cílem každého šifrovacího systému je zamaskovat utajovanou zprávu, tak aby byla pro všechny nepovolané osoby zcela nečitelná. Šifrovací systémy zřejmě nejčastěji ke slovu ve chvíli, když chceme data bezpečně uložit do počítačového souboru nebo pokud je posíláte nezabezpečeným kanálem, jako je např. internet. V obou případech zašifrování dokumentu sice nezajistí, aby nepadl do nepovolaných rukou ale zabrání tomu aby někdo porozuměl jeho obsahu. Informaci, kterou je nutno nějakým způsobem zabezpečit, většinou označujeme jako otevřený text, proces zabezpečování zprávy pak jako šifrování. Zabezpečený otevřený text se stává šifrovým textem nebo taky kryptogramem. Sada pravidel použitých pro šifrování otevřeného textu se nazývá šifrovacím algoritmem. Operace tohoto algoritmu se běžně odvíjejí od šifrovacího klíče, který společně s textem zprávy představuje vstupní informace pro algoritmus. Chce-li příjemce z kryptogramu obdržet původní zprávu, musí použít dešifrovací algoritmus, který ve spojení s dešifrovacím klíčem převede zašifrovaný text na původní otevřený text. Každý kdo zprávu během vysílání zachytí, je označován jako odposlouchávač. Často se používají odlišná pojmenováni jako nepřítel, protivník atp. Ačkoliv mohou odposlouchávači někdy znát dešifrovací algoritmus, valnou většinou nemají přístup k dešifrovacímu klíči. Proto je pro ně velice obtížné dostat do rukou původní otevřený text. Zatímco kryptografie je věda o vytváření šifrovacích systémů, kryptoanalýza je proces luštění původního otevřeného textu v případě, že není k dispozici příslušný klíč. Kryptologie je pak souhrnným označením pro kryptografii a kryptoanalýzu. 16

Je velice důležité si uvědomit, že útočník se nemusí k otevřenému textu dostat pouze pomocí kryptoanalýzy. Představme si, že někdo uchovává šifrovaná data na svém notebooku. Takový člověk musí sám mít přístup k dešifrovacímu klíči. Pokud si jej napíše na kus papíru a přilepí ho na notebook, tak každý kdo tento počítač ukradne, získá automaticky i dešifrovací klíč a žádnou kryptoanalýzu se vůbec nemusí zdržovat. Tímto příkladem bych rád upozornil, že k zajištění dat je potřeba mnohem více než dobrý šifrovací algoritmus. Pro zajištění bezpečnosti všech kryptografických systémů je nejdůležitější bezpečnost jeho klíčů. V praxi se proto většině kryptoanalytických útoků soustřeďuje na zjištění dešifrovacího klíče. Pokud se to podaří, útočník má přístup ke stejným informacím jako zamýšlený příjemce zprávy a dokáže dešifrovat veškerou další komunikaci dokud nedojde ke změně klíče. Jak vyplívá z úvodu a základních konceptů moderní kryptografie pro obdržení zprávy z kryptogramu není zapotřebí znát šifrovací klíč. Tento fakt, jenž je jedním ze zásadních poznatků studie W.Diffieho a M. Hellmana, měl výrazný dopad na podobu moderní kryptologie a vedl k rozdělení šifrovacích systémů na dvě skupiny: symetrické a asymetrické.[1] 1.6 Rozvoj kryptologie a souvislosti Klasická kryptografie se zabývala především šiframi, tj. způsoby utajení zpráv. Patřily sem zejména šifrovací systémy jako jednoduchá záměna, jednoduchá a dvojitá transpozice, Vigenerova šifra a podobně. Často jsou nazývány jako historické šifrovací systémy. [12] Druhá světová válka přinesla nebývalý zájem o kryptografii i o kryptoanalýzu. O dříve opomíjený i zatajovaný obor se najednou začaly zajímat hlavy států a generální štáby armád. Není divu, kryptoanalytici jim přinášeli čisté informace z nejvyšších míst velení nepřítele, bez jediného výstřelu a bez rizika. Kryptoanalýza se stala tichou, neviditelnou a účinnou zbraní. Kvalitní kryptografie byla naopak obranným štítem, který umožnil dopravovat tajné zprávy jak do týlu nepřítele, tak na frontu. Nebylo to poprvé, kdy kryptografové a kryptoanalytici zasáhli přímo do bojů, aniž by opustili své kanceláře daleko od fronty. Fascinující historii kryptologie od dávné minulosti až do osmdesátých let minulého století popisuje jedinečná kniha Davida Kahna [2]. 17

Ve druhé světové válce přínos kryptoanalytiků vyvrcholil. Byl tak nepřehlédnutelný a široký, že zasáhl na všech frontách a ovlivnil všechny hlavní válčící strany. Proto si po válce všechny mocnosti začaly budovat mohutná kryptografická a luštící centra, kryptografická zařízení byla zařazena do kategorie zboží dvojího užití a posuzována stejně jako vývoz tanků nebo letadel. Obrázek 4: Budova NSA, Fort Meade, MD, USA, http://www.nsa.gov Začalo se více dbát na rozvoj teorie. V rámci tohoto poválečného dění Claude E. Shannon nejprve v roce 1948 publikoval práci A Mathematical Theory of Communication [3], která je pokládána za základ teorie informace, a rok poté práci Communication Theory of Secrecy Systems [4], která je pokládána za základ moderní kryptologie. Není bez zajímavosti, že byla publikována díky nepozornosti vládních agentů, měla zůstat utajena. Shannon využil pojmů z teorie informace k ohodnocení bezpečnosti známých šifer. Definoval entropii jazyka, vzdálenost jednoznačnosti, dokázal absolutní bezpečnost Vernamovy šifry, zavedl pojmy difúze a konfúze a ukázal, jak posuzovat a konstruovat šifrové systémy kombinací různých typů šifer. Zavedl také model komunikačního kanálu, který se používá při popisu kryptografických systémů dodnes. Nečekané impulsy pro kryptologii přinesla počítačová revoluce v sedmdesátých letech. Nové technologické možnosti přinesly nové koncepty. Vznikly moderní blokové šifry a byl objeven princip kryptografie s veřejným klíčem [5], [6]. Ochrana dat ve státní sféře v USA si pak vynutila i vydání veřejné "státní" šifry DES [7]. 18

Průmysl informačních a komunikačních technologií převrátil původní poválečný koncept co největšího zahalování kryptologie do státního aparátu. Kryptologie dostala nové impulsy a vymkla se státní kontrole. V roce 1982 se konala první veřejná mezinárodní konference kryptologů a o dvacet let později se tato věda a její aplikace probírají nejméně na dvaceti mezinárodních konferencích ročně [8]. Šifrovací technologie se dostaly do domácích počítačů, mobilních telefonů, internetu a bankovnictví. Vznikla řada nových myšlenek v kryptografii i v kryptoanalýze. Na přelomu tisíciletí byly objeveny nové principy kryptoanalýzy. Dokonce se spekuluje, že se vyrovnává potenciál tajné státní vědy a veřejné kryptologie. Na přelomu tisíciletí se také na veřejnost po 50 letech od svého vzniku dostávají odtajněné informace o luštění ve druhé světové válce. Veřejnost současně začíná postupně odhalovat skutečný cíl mohutných odposlouchávacích objektů a umístění moderních podzemních špionážních a luštících center tajných služeb. [9] Obrázek 5: Centrum F83, rozsáhlé podzemní pracoviště systému Echelon, www.google.com 19

Po ukončení studené války v posledním desetiletí minulého století dochází k přeměně zaměření těchto center na průmyslově orientovanou špionáž. Do této pasti padají nakonec i vlastní spojenci. Navíc se projevuje mezinárodní terorismus. Na jedné straně existují snahy o omezování kryptografie z obavy z jejího zneužití teroristy a zločinci, na druhé straně je silná snaha veřejnosti o absolutní uvolnění kryptografie z důvodu ochrany vlastního soukromí. [12] Obrázek 6: Budova luštitelské služby v Moskvě, www.google.com 20

2 Symetrické a matematické metody šifrování Symetrické šifrování také známé pod pojmem konvenční šifrování je založeno na jediném šifrovacím klíči, které musí být známo oběma zařízením jak pro šifrování, tak pro odšifrování. V použití jednoho klíče pro šifrování i odšifrování je snad největší slabina symetrického šifrování. Nebezpečná je hlavně proto, že se nějakým způsobem musí šifrovací klíč dostat oběma stranám té která chce informace psát a i ta co je chce číst pro přenos šifrovacího klíče je tak potřeba použít nějaký zabezpečený přenos. Ovšem pokud takovýto přenos mezi uživateli potřebující šifrování existuje nevzniká potřeba šifrovat odesílaná data a je možné je poslat tímto zabezpečeným přenosem. Největší výhoda symetrického šifrování spočívá v nenáročnosti na výpočetní výkon. Toto zatížení je měřitelně až 1000x menší než při šifrování asymetrickém!!! Symetrické šifry se dělí na další dvě kategorie a to na šifry proudové a šifry blokové. Proudové šifry - jde o šifrování založené na bázi symetrického. Toto šifrování probíhá pomocí šifrovacího klíče postupně bit po bitu, tedy každý bit je zvláště zašifrován, a při dešifraci, je opět každý bit rozšifrován a následně složen do výchozí podoby například souboru s dokumentem. Blokové šifry - jde o rozšířenější šifrování, které výchozí bitový sled rozdělí na bitová slova a ty poté vhodně doplní bitovou šifrou, tak aby všechna slova měla shodnou velikost. V poslední době se nejvíce používá šifrování 64 bitů 128 bitů, a již se začaly objevovat služby, které vyžadují šifrování pomocí 256 bitů. [12] 2.1 Proudové šifry Termín proudová šifra používají různí autoři rozdílným způsobem. Mnozí hovoří o slovových, případně písmenných proudových šifrách. U nich je text šifrován slovo po slovu (nebo písmeno po písmeni), přičemž pravidlo pro šifrování jednotlivých slov (písmen) se řídí jeho pozicí ve zprávě. Tato definice lze použít např. na Vigenérovu šifru nebo na jednorázovou tabulku. Nejznámějším historickým příkladem je slavná šifra Enigma. Ovšem nejčastější moderní použití termínu proudová šifra se vztahuje na šifry, u nichž je otevřený text šifrován jeden bit po druhém. Je zřejmé, že s libovolným bitem se mohou stát jenom dvě věci: buď se jeho hodnota změní nebo zůstane beze změny. Vzhledem k tomu, že bit může mít 21

jenom dvě různé hodnoty, změna bitu znamená jeho nahrazení bitem s opačnou hodnotou. Navíc platí, že změní-li se bit dvakrát, vrátí se do původního stavu. Obrázek 7: Přístroj Enigma, www.google.com Jestliže útočník ví, že byla použita proudová šifra, stojí před úkolem zjistit, na jakých pozicích se bity změnily a následně jim musí vrátit jejich původní hodnoty. Jestliže je v kryptogramu jednoduše patrný vzorec změněných bitů, pak má útočník poměrně snadnou práci. Polohy změněných bitů tedy musí být pro nepovolané osoby nepředvídatelné ale oprávněný příjemce je musí (jak je tomu u šifer vždy) identifikovat velice snadno. U proudových šifer si můžeme šifrovací proces představit jako posloupnost následujících operací: změny a ponechání původního stavu. Tuto posloupnost určuje šifrovací klíč a bývá často nazývána posloupností hesla nebo krátce heslo. Pro zjednodušení se můžeme dohodnout na tom, že 0 znamená ponechat původní stav a 1 znamená změnit. Nyní se nacházíme ve fázi, kdy otevřený text, šifrový text i proudový klíč máme jako binární řetězce. Abychom tento popis trochu lépe objasnily, předpokládejme, že máme otevřený text 1110101 a heslo je 1000110. Protože 1 v hesle znamená, že se má bit v otevřeném textu na dané pozici změnit, vyměníme hodnotu u bitu v otevřeném textu, jenž se nachází úplně vlevo ale další bit ponecháme, tak jak je. Opakováním tohoto pravidla nám vyjde tento šifrovaný text 0110011. Již jsme se zmínili o tom, že dvojitou změnou bitu mu vrátíme jeho původní hodnotu. Z toho vyplývá, že dešifrovací proces je shodný se šifrovacím, heslo tedy slouží i dešifrování. 22

Ve výše uvedeném postupu jsme kombinovali dvě binární sekvence a vznikla nám sekvence třetí. Řídili jsme se přitom pravidlem, jenž šlo v našem případě definovat jako je-li na nějaké pozici ve druhém řetězci 1, poté je nutné změnit bit na odpovídajícím místě v řetězci prvním. Existuje mnoho oblastí pro, něž jsou proudové šifry takřka optimálním řešením. Jedním z důvodů je, že pokud dojde k nesprávnému příjmu některého bitu šifrovaného textu, definuje se špatně pouze tento jeden bit, protože každý bit otevřeného textu je určen jen jedním bitem textu šifrového. Touto vlastností se proudové šifra liší od šifer blokových, kde má jeden špatně přijatý bit za následek špatné definování celého bloku. Tato vlastnost malé propagace chyby dešifrovacím algoritmem je nezbytná, pokud je šifrový text vysílán po kanálu s vysokou hladinou šumu. Proto se proudové šifry používají například pro šifrování digitalizované řeči na mobilních sítích GSM. Další výhodou proudových šifer oproti blokovým je rychlost a nenáročná implementace. [1] FISH RC4 - (Rivest Cipher 4) Klíč má proměnlivou délku. šifra je streamová - nemá jednoznačně určenou délku bloku. Kromě problému s bezpečným předáním klíče, je toto šifrování nebezpečné také tím, že používaný klíč je bezpečný do té doby, dokud jej nemá ještě někdo jiný v nejhorším případě například stovky osob. A pokud bychom chtěli mít pro každou komunikaci jiný klíč musíme mít klíčů opravdu hodně. [12] 23

2.2 Blokové šifry U blokových šifer je bitový řetězec rozdělen do bloků o pevné délce. Šifrovací algoritmus se aplikuje přímo na takovýto blok, čímž vznikne blok kryptogramu, jehož velikost je stejná. (Alespoň u většiny symetrických šifer) Blokové šifry mají širokou škálu využití. Dokáží nabídnout vysokou míru zabezpečení, integritu dat či ověření uživatele a dokonce mohou složit jako generátory hesel pro proudové šifry. Ovšem stejně jako u proudových šifer se zde jen obtížně stanovuje přesná míra zabezpečení. Horní hranici kryptografické síly algoritmu určuje velikost klíče. Již u jednoduchých substitučních šifer jsme ale zjistili, že vysoký počet klíčů není žádnou zárukou skutečné síly. Jestliže je u symetrických algoritmů nejjednodušším typem útoku, útok hrubou silou, říkáme o nich, že jsou dobře navržené. Ovšem jestliže je počet klíčů příliš nízký, může být algoritmus navržen dobře a přesto jej půjde snadno prolomit. Navrhování silných šifrovacích algoritmů je velice specializovaná činnost. Přesto existuje několik zásadních prvků, které by měla každá silná bloková šifra mít. Jestliže útočník získal odpovídající dvojici otevřeného a šifrového textu a nezná klíč, neměl by mít možnost snadno odvodit, který šifrový text odpovídá danému bloku textu otevřeného. Algoritmus, jehož výsledkem je předvídatelná změna v šifrovém textu, tuto podmínku například nesplňuje. To je jedním z důvodů proč by měli mít blokové šifry tzv. vlastnost difúze, což znamená, že i malá změna v otevřeném textu například na jedné či dvou pozicích má za následek nepředvídatelné změny v šifrovém textu. Pokud útočník použije útok silou je možné, že během takovéhoto hledání vyzkouší klíč, který se od toho správného liší jen na několika málo pozicích. Pokud by útočníkovy cokoliv naznačilo, že použil například klíč, který se od původního řetězce lišil jenom na jediné pozici, přestal by s kompletním vyhledáváním a místo toho by jen u tohoto klíče zkoušel měnit jednu pozici po druhé. To by výrazně snížilo čas potřebný pro hledání klíče. Což je další věc, kterou si rozhodně nepřejeme. Součástí blokové šifry by tedy měla být i vlastnost konfúze, jež lze shrnout jako požadavek, aby útočníkovi při hledání klíče nic nenaznačovalo, že už přihořívá. Pokud útočník může zjišťovat jednotlivé části klíče bez ohledu na jeho zbytek, říkáme, že provádí útok rozděl a panuj. Aby něco takového nebylo možné, 24

vyžadujeme po šifře úplnost, teda aby se každá část šifrovaného textu nějak odvíjela od každé části klíče. Významnou součástí procesu vyhodnocováni blokových šifer je kromě zmíněných tří je i statistické testování. To ostatně hraje roli při analýze všech symetrických šifer. Nejjednodušším a pravděpodobně také nejpřirozenějším způsobem použití blokové šifry na dlouhou zprávu je rozdělení binární sekvence do bloků o příslušné délce a následné samostatné šifrování každého bloku nezávisle na ostatních. V takovém případě říkáme, že je používán mód elektronické kódové knihy neboli ECB. Jestliže je zvolen klíč a vy se rozhodnete pro použití módu ECB, budou poté shodné bloky původní zprávy zašifrovány do shodných bloků kryptogramu. Nebezpečí hrozí, jestliže útočník získá odpovídající dvojici šifrového textu a otevřeného textu, dokáže pak najít ve zprávě tentýž blok otevřeného textu jednoduše tím, že vyhledá známý blok textu šifrového. Z tohoto pohledu se mu rozhodně vyplatí obětovat trochu času a vybudovat si slovník známých dvojic bloků otevřeného a šifrového textu. Navíc je zřejmé, že jestliže se ve zprávě objevuje jeden a tentýž blok, promítnou se tyto bloky i do výsledného kryptogramu. To je jedním z důvodů proč bychom měli používat poměrně velké bloky, například po čtyřiašedesáti bitech, což odpovídá osmi písmenům. Použití ECB má ještě jednu možnou nevýhodu, kterou si ukážeme na následujícím příkladu.[1] Představme si, že k zašifrování zprávy The price is four thousand pounds. Byla použita neznámá bloková šifra s neznámým klíčem. Víme jen to, že se zpráva skládá ze dvoupísmenných bloků, že mezery a interpunkce byly odstraněny a kryptogram zní: C 1,C 2,C 3,C 4,C 5,C 6,C 7,C 8,C 9,C 10,C 11,C 12,C 13,C 14. Předpokládejme, že útočník zprávu zná. V takovém případě si snadno odvodí, že C 1 zastupuje th, C2 zastupuje ep, atd. Poté upraví zprávu tak, že ji poskládá jen do bloků: C 1,C 2,C 3,C 4,C 5,C 6,C 7,C 12,C 13,C 14. Příjemce použije na kryptogram dešifrovací algoritmus se správným klíčem a získá zprávu The price is four pounds. Protože dešifrování proběhlo v pořádku a zpráva dává smysl, nemá příjemce žádný důvod pojmout podezření, že bylo s kryptogramem manipulováno. A tak se domnívá, že uvedená cena je správná. 25

Všem těmto potencionálním rizikům vyplývajícím z blokových šifer v ECB módu lze předejít tím, že při šifrování bude každý blok nějakým způsobem provázaný s blokem předešlým. V takovém případě vzniknou ze stejných bloků otevřeného textu jiné bloky textu šifrového a manipulace s kryptogramem bude mít za následek, že zpráva po dešifrování nebude dávat smysl. Lze toho docílit dvěma běžnými způsoby. Říká se jí zpětná vazba (cipher feed-back, mód CFB) a řetězení šifrových bloků (cipher block chaining, mód CBC). [1] 2.2.1 Typy blokových šifer AES (Advanced Encryption Standard) Vytvořila ji americká vláda za účelem šifrování svých dokumentů Velikost klíče může být 128, 192 nebo 256 bitů prozatím nebyla prolomena. Blowfish - Šifra je dílem B. Schneierem a poprvé byla zveřejněna roku 1994. jde o šifru s velikostí bloku 64 bitů a délkou klíče nejvýše 448b (tj. 56B). Autor tuto šifru vytvořil jako neplacenou nelicencovanou alternativu k DES, avšak na rozdíl od DES, dodnes nebyla prolomena. DES byla vyvinuta v sedmdesátých letech a je považována za nedostatečnou neboť používá pouze 56 bitů pro šifrování šifru je metodou brute force možné rozlousknout přibližně za 24 hodin standardním počítačem dnešní doby. Triple DES rozšířená verze nejpoužívanější 3TDES používá klíč o délce 168 bitů je tak bezpečnější než klasický DES, avšak taky o dost pomalejší více než AES 256 bitů GOST - Šifra používající 64-bitový blok a 256-bitový klíč. Navržena v Sovětském Svazu. IDEA - šifra používající bloky o 64 bitech a 128-bitový klíč. Považována za jeden z nejsilnějších algoritmů. Patentovaná do roku 2010 2011. Jde o jednu z nejlepších šifer. RC2 - ( Rivest Cipher 2 ) šifra o délce bloku 64-bitů, klíč má proměnlivou délku. Obchodní tajemství RSA, SDI. 26

RC5 ( Rivest Cipher 5 ) Bloková šifra s množstvím argumentů jako délka bloku, délka klíče nebo počet iterací šifrování nad jedněmi daty.[12] 2.3 Používání symetrických algoritmů k autentizaci a ověření integrity dat Autentizace a ověření integrity dat lze docílit i pomocí symetrické kryptografie. Existují dva druhy autentizace: jednosměrná, kdy se jeden uživatel prokazuje druhému, a oboustranná autentizace, při které se oba uživatelé prokazují sobě navzájem. Příkladem jednostranné autentizace je používání magnetických karet v bankomatech. Bankomat kartu kryptograficky ověří za použití vašeho PIN. Majitel karty se ovšem musí při ověřování pravosti bankomatu spoléhat na nekryptografické prostředky, jako je například jeho poloha a design. Dalším příkladem jednostranné autentizace je přihlašován do počítače. K autentizaci dojde správným použitím klíče v algoritmu. Tento systém spoléhá na to, že nebude nikomu prozrazen. Integrity dat ve zprávě lze docílit pomocí autentizačního algoritmu a tajného klíče. Autentizační algoritmus přijme jako vstupní data zprávu a smluvený klíč a následně vypočítá jako výstup autentizací hodnotu. Ta je krátkým bitovým řetězcem, jehož hodnota se odvíjí od použitého autentizačního algoritmu zprávy a smluveného klíče. Obrázek 8: Ověřování za pomoci symetrické autentizace Pokud chce uživatel A poslat zprávu uživateli B, přiloží ke zprávě autentizací hodnotu. B přijme zprávu i autentizací hodnotu. Poté spočítá výstup autentizačního algoritmu, jehož výstupem bude zpráva od uživatele A a smluvený tajný klíč. Jestliže 27

je tento výstup shodný s autentizační hodnotou, kterou poslal A, bude mít B jistotu, že zprávu od A nikdo nezměnil. Funkce tedy ověřuje, jak integritu dat, tak i totožnost. Důležitým aspektem tohoto autentizačního procesu je, že odesilatel i příjemce provádějí přesně ty samé propočty. Proto si musejí A i B navzájem důvěřovat. Sdílejí stejný klíč a spoléhají se na to, že pozměňování obsahu zprávy předejdou uchováváním tohoto klíče v tajnosti. Nehledají ochranu jeden před druhým. [1] 28

3 Asymetrické metody šifrování Jako takové vzniklo v roce 1975 díky dvou lidem, kteří ji vyvinuli a to Whitfield Diff a Martin Hellman. Asymetrické šifrování využívá dvojice klíčů a to veřejný a soukromý. Veřejný jak už z jeho názvu vyplývá je přístupný všem, dále soukromý je dostupný jen tomu, kdo má právo šifrovanou zprávu odšifrovat. Tyto klíče je třeba vygenerovat na začátku komunikace. Veřejný umístím buďto na server dostupný lidem, kteří tento klíč budou používat pro šifrování anebo jej poslat přímo těmto lidem, některou z dostupných elektronických cest. Hlavní výhodou asymetrického šifrování je, že klíče soukromé jsou dostupné pouze majitelům těchto klíčů. Za nejvýznamnější systémy jmenujme tři zástupce - Elgamal (autorem Tahela Elgamala), RSA (Autory - Ron Rivest, Adi Shamir, Leonard Adleman, Diffie- Hellman) a nakonec DSA (Digital Signature Algorithm jehož autorem je David Kravitz)[12] Odesilatel posílající příjemci zprávu (šifrovaně) si vyžádá Váš veřejný šifrovací klíč, tímto zprávu zašifruje, a takto zašifrovanou ji pošle Vám. Vy jakožto jediný vlastník svého privátního klíče zprávu odšifrujete ale nikdo jiný s jiným šifrovacím privátním klíčem již ne pokud se o to pokusí vypadne mu po dešifrování holý nesmysl ve formě nespecifikovaného shluku znaků. Šifrovací metoda RSA je zatím jedna z nejrozšířenějších, používá Fermatovu větu a modulární aritmetiku. Jde o část matematiky, která se zabývá zbytky po dělení celých čísel. Síla této šifry spočívá v tom, že dosud nebyla objevena metoda, jak rozložit velká čísla na prvočísla - faktorizace. V danou chvíli není ani zcela jisté zda je vůbec možné takovouto metodu objevit. Pokud se tak ovšem stane, bude tato šifra nepoužitelná. Základní myšlenkou kryptografických systémů veřejných klíčů je, že každá zúčastněná strana má veřejný klíč a odpovídající soukromý klíč. Ty jsou zvoleny tak, aby odvození soukromého klíče z klíče veřejného bylo prakticky nemožné. U systémů veřejných klíčů jsou algoritmus i šifrovací klíče veřejné. Útočník tedy stojí před úkolem dešifrovat zprávu z kryptogramu vytvořeného metodou, kterou zná. Šifrovací proces tedy musí být zvolen velice pečlivě, aby to útočník neměl nijak snadné. Současně ovšem nesmíme zapomínat na to, že dešifrování musí být pro 29

oprávněného příjemce jednoduché. Celý proces tím pádem musí být nastaven tak, aby k získání zprávy z kryptogramu postačovala znalost dešifrovacího klíče. Takovýto koncept je náročný a nikterak samozřejmý. Častá otázka zní: Jestliže každý ví, jakým způsobem jsem dostal kryptogram, co brání v tom, aby z něj dostali původní zprávu? Odpověď nám dá následující nematematický příklad. Představme si, že jsme v zavřené místnosti bez telefonní linky a dostanete pražský telefonní seznam. Když Vám pak někdo dá jméno a adresu a chce zjistit telefonní číslo je náš úkol jednoduchý. Ovšem jestliže dostanete náhodně zvolené telefonní číslo a my k němu máme dohledat jméno a adresu, pak se máme co otáčet. Problém není v tom, že by jsme nevěděli, co dělat. Teoreticky můžeme začít na první stránce a číst jedno číslo za druhým tak dlouho, dokud nenarazíte na to pravé. Jenže háček vězí v tom obrovském množství námahy, jež je s tím spojeno. Představíme-li si tedy zprávu jako jméno a adresu, kryptogram jako telefonní číslo a dešifrovací proces jako najdi správné číslo, pak se nám zadání původního úkolu alespoň pro pražský telefonní seznam splnit podařilo. Většina v praxi využívaných algoritmů s veřejnými klíči jsou blokové šifry, jež se zprávou zacházejí jako se zprávou složenou z velkých celých čísel, přičemž bezpečnost jim zaručuje obtížnost řešení daného matematického problému. Nejznámější šifrou se už výše popsaná šifra RSA. Matematickým problémem spojeným s šifrou RSA je rozklad na prvočinitele. Máme veřejně známé číslo N, jež je násobkem dvou prvočísel, která jsou tajná. Tato čísla jsou velice důležitá, protože ten, kdo je zná, může s jejich pomocí vypočítat z veřejného klíče klíč soukromý. Číslo N, jež určuje velikost bloku zprávy, tedy musí být dost velké na to, aby je útočník nedokázal rozložit na příslušná prvočísla. Jestliže by toto N bylo malé, dokázal by rozklad provést kdokoliv. Velice snadným příkladem může být N =15, kde jsou prvočísly 3 a5. Obecně se však má za to, že jestliže je N dostatečně velké je hledání prvočísel prakticky nemožné. Číslo N určuje velikost bloku i klíče. Z toho vyplívá, že velikost bloků i klíčů bývá mnohem větší, než je tomu u symetrických šifer. Zatímco u těch je běžná velikost bloku 64 nebo 128 bitů, u RSA narazíte minimálně na bloky o velikosti 640 bitů a žádnou výjimkou nejsou ani bloky s 1024 nebo 2048 bity. Dalším důsledkem je, že šifrovací i dešifrovací procesy zahrnují mnoho výpočtů s velkými čísly. Jsou proto o poznání pomalejší, 30

než je tomu u symetrických šifer. Jen zřídka se tedy používají k šifrování velkých objemů dat, ale nacházejí uplatnění spíš pro digitální podpisy nebo pro šifrování klíčů symetrických algoritmů, aby je bylo možné následně bez obav distribuovat nebo ukládat. Dalším široce rozšířeným algoritmem veřejných klíčů je El-Gamal, který je základem amerického standardu pro digitální podpisy (DSS). U systému El Gamal, jsou velikosti klíčů obdobné jako u RSA, ale jeho bezpečnost se odvíjí od obtížnosti jiného matematického problému, známého jako diskrétní logaritmus. El Gamal však má jisté vlastnosti, kvůli kterým se pro šifrování jako takové příliš nehodí. [1] 3.1 Útoky na systémy s veřejnými klíči U asymetrických algoritmů jsou klíče delší než u algoritmů symetrických. To ovšem ještě neznamená, že asymetrické algoritmy musejí být zákonitě silnější. Nebývají totiž napadány útoky hrubou silou, protože je jednodušší se zaměřit na útok na matematický problém, na němž je algoritmus postaven. Například u RSA je snazší najít dělitele pro modulo N, než vyzkoušet všechny možné dešifrovací klíče. Abychom si ukázali, jak současný vývoj v matematice ovlivnil kryptografii veřejných klíčů, soustředíme se na RSA a rozklad na prvočinitele. Podobně bychom se ovšem mohli podívat i na jiné systémy veřejných klíčů, jež jsou vystaveny na jiném matematickém problému. Zpracování rozkladu na prvočinitele (faktorizace) prošlo během posledních 30 let ohromným vývojem. Vděčí za to pokroku jak na poli teoretickém, tak na poli technologickém. V roce 1970 bylo rozloženo na dvě prvočísla devětatřiceticiferné číslo (2 128 +1). V té době byl podobný počin považován za něco úžasného. Když byla roku 1978 poprvé publikována šifra RSA, byla jako součást studie zveřejněna i soutěž o rozklad 128 ciferného čísla, přičemž vypsaná odměna měla hodnotu 100 dolarů. Jednalo se první takto navrženou odměnu podobných projektů byla později celá řada. Požadované číslo bylo rozloženo na činitele až roku 1994, kdy se do práce zapojila celosvětová počítačová síť. Při rozhodování o délce klíčů pro RSA je nutné vzít v potaz nejen Moorův zákon, ale také možný vývoj faktorizačních technik. Moorův zákon říká, že každých 18 měsíců se výkon počítačů zdvojnásobí, aniž by se nějak změnila jejich cena. Pro ilustraci můžeme uvést dramatický dopad nové matematické metody známé jako obecné síto 31

číselných polí (GNFS) publikované roku 1993. Díky této metodě bylo možné zdroje určené pro rozklad čísla o určité velikosti využít k faktorizaci výrazně větších čísel. Například zdroje, jež byly dříve zapotřebí pro rozklad čísla o 150 cifrách, nyní stačí k rozkladu čísla o skoro 180 cifrách. Tento pokrok v matematice výrazně převyšuje vliv technologického vývoje předpovídaného pro mnoho let dopředu. Díky této metodě bylo roku 1999 rozloženo 155 ciferné číslo RSA-512. Faktorizace trvala méně než 8 měsíců a opět se na ní podílela celosvětová počítačová síť. Pro ilustraci matematické složitosti tohoto problému uveďme, že v závěrečné fázi byla řešena soustava šesti miliónů rovnic! Následovala soutěž publikovaná v Knize kódů a šifer, ve které šlo také o faktorizaci 512bitového modula. Tyto rozklady na činitele mají velký význam, protože modula této velikosti (155 cifer či 512 bitů) byla ještě před několika lety běžně používaná v kryptografii veřejných klíčů. V současné době se doporučuje, aby se velikost modula RSA pohybovala v rozmezí 640 2048 bitů v závislosti na potřebném stupni zabezpečení. Číslo o 2048 bitech má v desítkové soustavě 617 cifer. Abych demonstroval o jak ohromné číslo se jedná přikládám číslo o uvedené velikosti. Sláva a peněžní výhra v hodnotě 200 000 dolarů čekají na toho, kdo jako první dokáže rozložit na prvočíselné činitele např. číslo: 25195910236225489788452130212365966985474120023154812917541895162458 91023032178902305148956230154785489562312222003204080090788485598352 51489785589526659845784522125587896231012365478952336598477894100023 06059850147949569879452156311647894562123015489547859595455505120605 98502147878925195910236225482519591023622548978845213021236596698547 41200231548129175418951624589102303217890230514895623015478548956231 22220032040800907884855983525148978558952665984578452212558789623101 23654789523365984778941000230605985014794956987945215631164789456212 30154895478595954555051206059850214787892519591023622548123659800187 73740 Jak jsem se už zmiňoval o útocích hrubou silou, rád bych zmínil možný vliv kvantových počítačů. Ačkoliv by kvůli nim jistě muselo dojít k dramatickému nárůstu délky symetrických klíčů, těžko si představit, že by se tomu kryptografie nepřizpůsobila a, že by se symetrické algoritmy přestaly používat. U veřejných klíčů 32

by situace mohly být jiná. Pro tyto systémy by totiž kvantové počítače představovali mnohem větší hrozbu. Například rozklad na prvočinitele by byl o poznání jednodušší. Naštěstí ani největší nadšenci pro kvantové počítače nepředpokládají, že by se tyto počítače začali šířeji používat dříve než za 20 let. [1],[12] 3.2 Hashovací funkce Kryptografie je často používána i v oblastech, kde není požadována schopnost odvodit znění původní zprávy z jejího zašifrovaného tvaru. Dokonce se může vyskytnout i požadavek, aby něco takového bylo nemožné. Jako příklad může sloužit třeba ukládání hesla v počítači. Je-li heslo někde v počítači uloženo, konkrétně třeba v databázi sloužící pro ověření identity uživatele, musí být použit nějaký druh ochrany. Základním požadavkem je pak v tomto případě zjistit, zda bylo heslo při přihlašování zadáno správně. Už však není zapotřebí získat z databáze samotné znění tohoto hesla. Kryptografie je také často používána v případech, kdy je zapotřebí zhustit dlouhou zprávu do krátkého řetězce. V takových případech se nelze vyhnout tomu, aby více takovýchto zpráv nemělo stejný ekvivalent v podobě kratšího bitového řetězce. Z toho přímo vyplívá, že zmíněný proces je nevratný. Těmto funkcím se říká hashovaní funkce a v závislosti na konkrétním typu použití mohou či nemusejí používat kryptografické klíče. Základní princip hashovacích funkcí spočívá v tom, že výsledná hashovaní funkce je zhuštěným otiskem, který zastupuje původní zprávu. Hashovacím hodnotám se říká různě, například digitální otisk nebo prostě hash. Hashování nachází spoustu různých uplatnění, například při kontrole integrity dat nebo jako součást schémat digitálního podpisu. Obecně řečeno, hashovaní funkce přijímají vstupní dat o libovolné délce, ale výstupem je řetězec o délce pevně stanovené. Jestliže se objeví dva vstupy, jejichž výstup je stejný, došlo k takzvané kolizi. Existence kolizí je nevyhnutelná. Chceme-li tedy jednoznačně identifikovat zprávu pomocí jejího digitálního otisku, musíme hashovaní funkci zvolit velice rozvážně. 33