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:
Praha
Ing. Vladimír Beneš, Ph.D.
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
2
3
Ú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
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
Symetrické šifrovací algoritmy ......................................................................................... 24 3.1
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
4
Blokové šifry.............................................................................................................. 25
Výměna klíčů ............................................................................................................. 42
3.3.1
Shamirův algoritmus .......................................................................................... 42
3.3.2
Diffie-Hellman protokol ..................................................................................... 43
Asymetrické šifrovací algoritmy ....................................................................................... 44 4.1
Zavazadlový algoritmus ............................................................................................. 46 5
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
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.2Zají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 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 2
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.
šifrovací funkce (zkratka z angl. encryption function), působící
E(P)
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 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 11
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.
•
13
Implementace šifrovacího algoritmu by měla být co nejjednodušší.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 pi bylo zašifrováno písmenem ci podle pravidla ci=E(pi)=pi+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 16
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 5 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 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 27
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 30
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 6 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 it 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 Budou li kvantové vlny velkého ké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é 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í; 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ě soustavě 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 kryptologie. ISBN 80-7041-737 80 737-4. Str. 119 32 PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01 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 2n 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 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é ymetrické šifrování [20] [20
Zdroj: http://commons.wikimedia.org/wiki/File:Symetrick%C3%A1_%C5%A1ifra.png [20] Existují dva základní 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ů textu, 64 bitů nebo větší. Proudové šifry zpracovávají posloupnosti otevřeného textu a posloupnosti posloupnosti šifrovaného textu po jednotlivých bitech nebo bytech 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 bitu nebo bytu otevřeného textu se vytvoří 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 80 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 p1,p2,p3,..., pak c1=E(p1,k), c2=E(p2,k), c3=E(p3,k),... .
38 39
PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 78 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 191 26
Dešifrování je velmi snadné, protože každý blok šifrovaného textu může být dešifrován zvlášť.40 Nevýhodou ECB je tedy bezpečnost. Kryptoanalytik může zahájit luštění textu bez 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 klíčem.41 Bezpečnost: - 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. Tolerování chyb: - Chyba v šifrovaném textu ovlivní celý blok otevřeného textu, - Synchronizační chyba je neodstranitelná.42
3.1.1.2 CBC 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: c1=E(p1 ⊕ c0,k), c2=E(p2 ⊕ c1,k), c3=E(p3 ⊕ c2,k),... . Dešifrování je stejně přímočaré: p1=D(c1,k) ⊕ c0, p2=D(c2,k) ⊕ c1, p3=D(c3,k) ⊕ c2,... .43Rež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
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 stejně.44 Bezpečnost: -/+ 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: k0=IV, k1=E(k0,k), k2=E(k1,k), k3=E(k2,k),... a pak pro každý blok otevřeného textu: c1=p1 ⊕ k1, c2=p2 ⊕ k2, c3= p3 ⊕ k3,... .
44 45
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 197 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: c1=E(c0,k) ⊕ p1, c2=E(c1,k) ⊕ p2, c3=E(c2,k) ⊕ p3,... . A obráceně: p1=c1 ⊕ E(c0,k), p2=c2 ⊕ E(c1,k), p3=c3⊕ E(c2,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 47
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 216 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 2128 š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 49
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 216 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 Xi je jeden ze subbloků a Zi je subklíč. 3. Jedno kolo výpočtu, kde modul je 216, 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: Xi
16-bitový subblok otevřeného textu,
Yi
16-bitový subblok šifrovaného textu,
ZiJ
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 2128 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íž 256 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 s1, s2, s3 a s4. 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 v1v2v3v4v5v6 reaguje vstup matice v rozsahu čtyř bitů, kde i je binární číslo v1v6 a j je binární číslo v2v3v4v5. Například je-li S=S1, pak Ŝ poskytuje například tyto odezvy: 000000 → 14=1100 000001 → 0=0000 100000 → 4=0100 100001 → 15=1101 atd. 51 52
VAN DER LUBBE C. A. Jan. Basics Methods of Cryptography. ISBN 0-521-55559-0. Str. 61 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 45 32
Postup šifrování DES: Otevřený text je rozdělen do binárních slov o délce 64 bitů. Slova jsou zašifrována klíčem k o délce 64 bitů. Klíč je zvolen uživatelem a vytváří šestnáct klíčů k1, k2, k3, ..., k16 o délce 48 bitů. 64-bitové bloky dat jsou nejdříve podrobeny permutaci a pak rozděleny na dvě 32-bitové části, které jsou označeny písmeny l a r. Tyto části jsou podrobeny iteračnímu výpočtu, do něhož vstupují hodnoty klíčů k. V 16 kolech výpočtu se opakuje výpočet podle rovnic: ln=rn-1 rn=ln-1+f(rn-1,kn) Klíče kn jsou 48-bitové permutace 64-bitového šifrovacího klíče k.53 Tímto postupem je provedeno zašifrování: Obrázek č. 6 - Algoritmus DES [22]
Zdroj: http://www.iusmentis.com/technology/encryption/des/ [22]
53
VLČEK, Karel. Teorie informace, kódování a kryptografie. ISBN 80-7078-614-0. Str. 113 33
3.1.4 3-DES 3-DES neboli Triple DES je zesílená varianta DES, která využívá v porovnání s DES dvojnásobně nebo i trojnásobně dlouhý klíč, to jest 112 nebo i 168 bitů. Algoritmus DES je zde použit třikrát. V prvním a třetím kroku šifruje a to se stejným klíčem a v druhém kroku dešifruje s rozdílným klíčem. Trojité šifrování se dvěma rozdílnými klíči pak vypadá takto: C=Ek1(Dk2(Ek1(P))) pro šifrování P=Dk1(Ek2(Dk1(P))) pro dešifrování V některých případech používá 3-DES i ve třetím kroku odlišný klíč, pak délka klíče dosahuje 168 bitů. Trojité šifrování se třemi rozdílnými klíči pak vypadá takto: C=Ek3(Dk2(Ek1(P))) pro šifrování P=Dk1(Ek2(Dk3(P))) pro dešifrování Rychlost 3-DES je téměř třikrát pomalejší, než rychlost DES, jeho výhodou je však mnohem větší bezpečnost a skutečnost, že aplikace používající DES lze převést na používaní 3-DES.54 Obrázek č. 7 - Algoritmus 3DES [24]
Zdroj: http://www.tropsoft.com/strongenc/des3.htm [24]
54
ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 72 34
3.1.5 AES-Rijndael V roce 1997 vypsal National Institute of Standards and Technology výběrové řízení na symetrický šifrovací algoritmus Advanced Encryption Standard (AES). Minimální požadavek na AES byla implementace symetrické blokové šifry s velikostí bloku alespoň 128 bitů a velikostí klíče 128, 192 a 256 bitů. AES měl kromě samotného šifrování a dešifrování umožnit i autentizaci dat a měl být využitelný i při generování pseudonáhodných čísel. Také měl být AES veřejně dostupný a bezplatný. Z patnácti algoritmů vyhrál právě Rijndael, jehož název je složený ze jmen jeho autorů Joana Daemena a Vincenta Rijnmena. Rijndael je bloková šifra používající transformaci, která je několikrát iterována nad blokem dat, která se mají šifrovat či dešifrovat. Každá iterace je označována jako runda a každá transformace jako funkce rundy. Pro šifrování se používá posloupnost klíčů, které jsou odvozeny z klíče původního. Funkce rundy používá v daném kroku operace s datovým blokem odlišné subklíče. Rijndael je substitučně-lineární transformační sít´ s 10, 12 nebo 14 rundami v závislosti na délkách bloku a klíče, které lze nezávisle volit z hodnot 128, 192 a 256. Datový blok se rozdělí do pole bytů. Funkce rundy je ze čtyř vrstev. V první vrstvě je na každý byte aplikován S-box, který jej transformuje na výstupní byte. Druhá a třetí vrstva jsou lineární mísící vrstvy, kde se ve druhé vrstvě provádí rotace v řádcích a ve třetí násobení matic. Ve čtvrté vrstvě je ke každému bytu pole přičten příslušný byte subklíče operací XOR.55
55
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 56 35
Obrázek č. 8 - Algoritmus Rijndael [21]
Zdroj: http://www.iis.ee.ethz.ch/~kgf/acacia/fig/aes.png [21]
3.1.6 GOST GOST je algoritmus s délkou bloku šifrovaného textu 64 bitů, s 256 bitovým klíčem a s 32 koly výpočtu. Roku 1989 byl schválen jako ruský kryptografický standard a byl určen pro státní správu k šifrování dokumentů bez ohledu na stupeň utajení. 256 bitová délka klíče zajišťuje odolnost vůči útokům hrubou silou, ale prodlužuje dobu šifrování. Rozdíly mezi GOST a DES: • V normě GOST nejsou definovány S-boxy. • V GOST je jednoduchá generace klíčů z 256 bitového klíče rozdělením klíče do 9 bitových a 32 bitových bloků. • GOST má 32 kol výpočtu proti 16 kolům výpočtu DES.56
56
ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 75 36
Obrázek č. 9 - Algoritmus lgoritmus GOST [18] [18
Zdroj: http://upload.wikimedia.org/wikipedia/en/a/ae/GOSTDiagram.png [18] [
3.1.7 Blowfish Blowfish je algoritmus navrhnutý Dr. Schneierem z Cambridge Security Workshop a zveřejněný roku 1993. 1993. Blowfish byl navržen jako volně šiřitelný a nelicencovaný algoritmus. Šifruje 64-bitový 64 bitový otevřený text do 64-bitového 64 bitového šifrovaného textu použitím variabilní klíčové délky až 448 bitů. bitů Z této šifry vychází o čtyři roky později publikovaný Twofish, což je 128-bitová 128 bitová bloková šifra, která pracuje s variabilní délkou klíče až 256 bitů. Před samotným šifrováním dat Blowfish ze zadaného klíče vypočte podklíče. Podklíče jsouu uložené v pěti polích, kde první pole je označované jako P-box, P box, které má osmnáct 32 bitových položek, označovaných jako P1, P2, P3, ..., P18. Zbývající ývající čtyři pole jsou označované jako S-boxy, označované S boxy, kde každý SS-box box má 32 bitových položek 256. Šifrování je prováděno prováděno v 16 rundách po blocích 64 bitů. Každá runda provádí permutaci, která je závislá na klíči a substituci, která je závislá na klíči i na šifrované zprávě. V každé rundě jsou prováděny čtyři operace výběru dat z pole vypočteného indexu. Operace prováděné v Blowfish jsou XOR a sčítání 32 bitových slov. 57 prováděné
57
GOOS, G., J. HARTMANIS a J. LEEUWEN. Fast Software Encryption. ISBN 3-540 540-60865-6. Str. 29 37
Obrázek č. 10 - Algoritmus lgoritmus Blowfish [23]
Zdroj: https://www.usenix.org/legacy/publications/library/proceedings/usenix99/provos/provos_html /node3.html [23]
3.2 Proudové šifry Proudové šifry jsou šifrovací algoritmy, které mohou zpracovávat zprávu libovolné délky a to tak, že šifrují pouze její jednotlivé prvky. Jsou to v podstatě jednoduché blokové šifry s délkou bloku jedna. Nemusí tedy před šifrováním shromáždit celý blok dat. dat. Konstrukce sestává z náhodného generátoru, jehož výstupní hodnoty závisí na hodnotách symetrického klíče. Výstupní posloupnost generátoru je poté kombinována s otevřeným textem. K tomu je obvykle využíván XOR. Dešifrování
proudových
šifer
probíhá
analogickým analogickým
způsobem.
Náhodným
generátorem v závislosti na hodnotě symetrického klíče je generována pseudonáhodná
38
posloupnost, což je heslo a sečtením modulo dva této posloupnosti a šifrovaného textu získáme opět otevřený text.58 Je-li K prostor klíčů množiny šifrovacích transformací, pak posloupnosti symbolů e1e2e3....ei ∈ K se říká proudový klíč. Jestli A je abeceda o q symbolech a Ee je jednoduchá substituční šifra s délkou bloku 1, kde e ∈ K. Nechť m1m2m3... je posloupnost otevřeného textu a e1e2e3... je proudový klíč z K. Proudová šifra přijímá posloupnost otevřeného textu a transformuje ji na posloupnost šifrovaného text c1c2c3..., kde ci=Eei(mi). Bude-li di inverzní ei, pak Ddi(ci)=mi bude dešifrovat posloupnost šifrovaného textu. Proudová šifra aplikuje jednoduché šifrovací transformace podle použitého proudového klíče. Proudový klíč může být vygenerován náhodně nebo algoritmem, který bude odvozovat proudový klíč z malého primárního proudového klíče respektive z jádra, nebo z jádra a předcházejících symbolů šifrovaného textu. Takovému algoritmu se říká generátor proudového klíče.59 Výhody proudového šifrování jsou tyto: •
Rychlost transformace. Jelikož je každý symbol šifrován nezávisle na ostatních symbolech otevřeného textu, tak každý symbol může být zašifrován ihned po svém přečtení. Čas pro zašifrování každého symbolu tedy závisí pouze na vlastním šifrovacím algoritmu a ne na době potřebné pro příjem rozsáhlejšího otevřeného textu.
•
Malé šíření chyb. Jelikož je každý symbol kódován samostatně, tak chyba šifrovacího procesu ovlivní pouze ten znak. Například jestli v šifrovacím algoritmu ci=(a*pi+b) mod k, kde a, b a k jsou konstanty, udělá šifrátor chybu v aritmetice, tak to neovlivní transformaci dalších znaků.
Nevýhody proudového šifrování: •
Nízká úroveň difúze. Každý symbol je šifrován samostatně, a proto je každá informace tohoto symbolu transformována do jednoho symbolu šifrovaného textu. Kryptoanalytik tak může chápat každý symbol jako samostatnou entitu a snažit se o její prolomení analýzou charakteristik všech individuálních symbolů.
58 59
POŽÁR, Josef. Informační bezpečnost. ISBN 80-86898-38-5. Str. 200 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 32 39
•
Náchylnost k úmyslným falzifikacím a modifikacím. modifikacím. Protože je každý symbol šifrován samostatně, samostatně, tak narušitel, narušitel který odhalí kód, může spojovat úseky předchozích zpráv a vysílat je jako věrohodně vypadající padělky.60
3.2.1 RC4 Proudová šifra RC4 byla vyvinuta Ronaldem Rivestem roku 1987. V roce 1994 detaily RC4 unikly kvůli neznámým útočníkům na internet a od té doby je algoritmus veřejně znám. RC4 je používán například pro šifrovaný přenos webových stránek nebo pro zabezpečení přenosu v bezdrátových sítích. RC4 má dvě části. První je KSA, kde je klíč použit k produkci permutace všech hodnot od 0 do 255, 255 toto je nazývané jako pole S. S Nejdříve je pole S inicializováno na Si=i, i, kde i a j jsou dvě celočíselné proměnné, proměnné a pak zpracováno v cyklu s 256 opakováními. Druhá část je PRSG, PRSG, což je pseudonáhodný proudový generátor, generátor, kde je výsledek první části použit ke generování náhodných hodnot v rozsahu od 0 do 255. V každé iteraci generátor přidává k i hodnotu S,, na kterou ukazuje i a j a vymění hodnoty Si a Sj, S , tudíž všechny prvky S jsou tak vyměněny s jinými prvky alespoň jednou za 256 iterací. Výsledným bajtem iterace je tedy S=(S S=(Si+Sj) mod 256. 256 RC4 může být implementována jako operující na bytech, na celých číslech od 0 do 255 nebo jako mix obojího.61 Obrázek č. 1111 Algoritmus lgoritmus RC4 [19]
Zdroj: http://commons.wikimedia.org/wiki/File:RC4.svg [19]
60 61
PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01 01-01664-1.. Str. 77 MCANDREW, CANDREW, Alasdair. Introduction to cryptography with open-source open source software. ISBN 978-1-4398 978 4398-2570-9.. Str. 348 40
3.2.2 A5/1 A5/1 je proudová šifra, šifra, vytvořená roku 1987, určená k zabezpečení soukromí pro komunikaci mobilními telefony v GSM standardu. Jedná Jedná se o jeden ze sedmi algoritmů zadaných pro GSM užití. Původně byl A5/1 držen v tajnosti a po uveřejnění byla identifikována celá řada závažných nedostatků v šifře. A5/1 obsahuje tři posuvné registry. X má 19 bitů (x18, x17, x16, ..., x0), Y 22 bitů (y21, y20, y19, ..., y0) a Z 23 bitů (z22, z21 je počáteční hodnota registrů. 2 , z20, ..., z0). Klíčová je V každém kroku se registr posune nebo zůstane stát a každá buňka obsahuje 1 bit. Proud klíče vzniká užitím operace XOR na výstupy tří registrů. A5/1 používá tři LFSR (Linear Feedback Shift Registers), což jsou posuvné registry, jejichž vstupní bit je lineární funkcí původního stavu. Registr se posune, pokud hodnota jeho "hodinového stavu. hodinového bitu" bitu souhlasí s většinovou hodnotou všech "hodinových hodinových bitů". bitů Na počátku jsou registry vynulová vynulovány ny a poté je v 64 krocích namixován 64 bitový klíč Ki podle principu, že pro 0
Zdroj: http://en.wikipedia.org/wiki/A5/1 [15]
62
A5/1. In: Wikipedia: the free encyclopedia [online]. Dostupné z: http://en.wikipedia.org/wiki/A5/1
41
3.3 Výměna klíčů Velkou nevýhodou symetrického šifrování je, že výměna klíčů je velmi nebezpečný akt. Pokud spolu chtějí dvě strany komunikovat pomocí šifrovaných zpráv, musejí se nejprve dohodnout na symetrickém šifrovacím klíči. Ovšem i tato dohoda bude pravděpodobně probíhat po nezabezpečeném kanálu, a proto by bylo vhodné ji šifrovat.
3.3.1 Shamirův algoritmus Jedno z možných řešení navrhl Adi Shamir. Jeho algoritmus dovoluje Alici bezpečně poslat tajnou zprávu Bobovi bez toho, že by se předtím dohodli na klíči. Postup je následující: 1. Alice vloží zprávu do kufříku, zamkne ho svým zámkem a kufřík pošle Bobovi. 2. Bob nemá klíč od Alicina zámku, tudíž ho nemůže odemknout, tak kufřík zamkne ještě jednou svým zámkem a pošle ho zpátky Alici. 3. Alice odemkne svůj zámek, tudíž už je kufřík zamčen pouze na Bobův zámek, a tak ho pošle zpět Bobovi. 4. Bob teď může odemknout zámek a dostat se ke zprávě. Pokud zpráva bude m, Alicina šifrovací funkce EA, Bobova šifrovací funkce EB, Alicina dešifrovací funkce DA a Bobova dešifrovací funkce DB, pak použití Shamirova algoritmu vypadá takto: 1. Alice → Bob: EA(m) 2. Bob → Alice: EB(EA(m)) 3. Alice → Bob: EB(m)=DA(EB(EA(m)) 4. Bob:
m=DB(EB(m))
Problém je ovšem ve třetím bodě, kdy by použité šifry musely být takzvaně komutativní, tedy nesmělo by záležet na pořadí dešifrování dvakrát zašifrované zprávy.63
63
BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 47 42
3.3.2 Diffie-Hellman protokol Jeden z algoritmů umožňujících bezpečně ustanovit symetrický šifrovací klíč byl navržen Whitfieldem Diffiem a Martinem Hellmanem. Posup je následovný: 1. Alice s Bobem se shodnou na velkém prvočíslu p a číslu q. 2. Alice si zvolí x takové, že 1≤x
64
BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 49 43
4 Asymetrické šifrovací algoritmy Na nápad řešit kryptosystém pomocí veřejného klíče jako první přišli Whitfield Diffie s Martinem Hellmanem a nezávisle na nich i Ralph Merkle. Jednalo se o představu, že klíče mohou existovat v párech, jakožto jeden šifrovací klíč a jeden dešifrovací klíč a že není možné jeden klíč od druhého odvodit. Tato myšlenka byla poprvé zveřejněna koncem 70. let. Od té doby bylo navrženo velké množství kryptografických algoritmů s veřejným klíčem, ale mnohé z nich nejsou bezpečné, či je jejich klíč příliš dlouhý, či je zašifrovaný text o mnoho delší než otevřený text. Z těch bezpečných a praktických algoritmů veřejného klíče se některé hodí pouze pro distribuci klíčů, jiné jsou vhodné pro šifrování a po rozšíření i pro distribuci klíčů a další pouze jen pro digitální podpis. Jen několik algoritmů se osvědčilo pro šifrování a digitální podpis, těmi jsou RSA, El Gamalův algoritmus a Rabinův algoritmus.65 Použití šifrovacích technik s asymetrickým klíčem tedy spočívá ve vytvoření dvou komplementárních klíčů, soukromého a veřejného. Pokud Alice chce, aby jí Bob poslal zašifrovanou zprávu pomocí asymetrického šifrování, pak Alice musí dát nejprve k dispozici svůj veřejný klíč. Ten Bob použije k zašifrování zprávy a zprávu odešle. Pro dešifrování pak Alice potřebuje mít druhý klíč z páru, svůj vlastní soukromý klíč, který zprávu dešifruje.66 Ať {Ee : e ∈ K} je množina šifrovacích transformací a nechť {Dd : d ∈ K} je množina všech odpovídajících dešifrovacích transformací, kde K je prostor klíčů. U sdruženého páru šifrovacích/dešifrovacích transformací (Ee, Dd) budeme předpokládat, že každý takový pár má tu vlastnost, že na základě znalosti Ee není výpočetně možné nalézt pro daný náhodný šifrovaný text c ∈ C takovou zprávu m ∈ M, aby Ee(m) = c. Z této vlastnosti vyplývá, že z daného e není možné získat odpovídající dešifrovací klíč d. Ee je zde jednosměrná funkce s tajnou informací, kde tajnou informaci nezbytnou k výpočtu inverzní funkce pro dešifrování představuje klíč d. To je rozdíl oproti šifrování tajným klíčem, kde klíče e a d jsou v podstatě stejné.67
65
PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 151 POŽÁR, Josef. Informační bezpečnost. ISBN 80-86898-38-5. Str. 203 67 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 38 66
44
Výhody a nevýhody asymetrického šifrování: - Metody asymetrického asymetrického šifrování jsou až 1000 000 x pomalejší než metody symetrické. symetrické - Nutnost ověření pravosti klíče. Pro tyto účely existují například certifikační úřady. úřady - Podstatně větší délka klíče pro dosažení stejné úrovně bezpečnosti bezpečnosti. + Lze použít kromě šifrování pro digitální podpis. podpis + Není třeba posílat soukromý klíč a tak nemůže dojít k jeho vyzrazení vyzrazení. + Je třeba méně klíčů než u symetrických metod pro komunikaci několika osob. osob Vzhledem k pomalosti asymetrických metod se v praxi často využívá kombinace asymetrického a symetrického klíče. klíče. Zpráva se tedy nejprve zašifruje symetrickým klíčem, ten je poté zašifrován asymetrickým klíčem a přiložen ke zprávě. Příjemce svým soukromým klíčem získá šifrovaný klíč, který pak použije k dešifrování zprávy.68 Obrázek č. 13 - Asymetrické symetrické šifrování [17]
Zdroj: http://commons.wikimedia.org/wiki/File:Asymetrick%C3%A1_kryptografie.png [17]
68
POŽÁR, Josef. Informační bezpečnost. ISBN 80-86898-38 80 38-5. Str. 204 45
4.1 Zavazadlový algoritmus Zavazadlový algoritmus, známý též jako Mekrle-Hellman algoritmus, byl prvním algoritmem pro šifrování veřejným klíčem. Vychází z analogie tvorby zavazadla dané hmotnosti, složené z jednotlivých předmětů, které se v zavazadle nacházejí jen jednou. Úlohou pro dešifrování je hledání koeficientů bi, kde bi=0 nebo 1, tedy předmět, je či není obsažen v zavazadle, pro vztah S=Σ biMi , kde S je celková hmotnost, Mi je hmotnost i-tého předmětu, který může/nemusí být v zavazadle a n je celkový počet předmětů. Posloupnost, ve které je každý následující člen větší než součet všech předcházejících členů se nazývá superrostoucí. Pokud se při sestavování zavazadla použijí předměty, které mají hmotnosti odpovídající superrostoucí posloupnosti, je hledání jejich zastoupení v zavazadle, známe-li celkovou hmotnost a hmotnost jednotlivých předmětů, jednoduché. U superrostoucího
zavazadla
stačí
při
hledání
koeficientů
bi,
použít
algoritmus,
kdy se porovnává hmotnost superrostoucího zavazadla s největším členem posloupnosti. Je-li hmotnost zavazadla vyšší než hmotnost největšího členu posloupnosti, je člen zavazadla obsažen a zároveň se od hmotnosti superrostoucího zavazadla tento člen odečte, bi=1, jinak není obsažen a nic se neodečítá. Testování pokračuje stejně i s dalším členem posloupnosti s nejblíže nižší hmotností. Pokud je při testování dosaženo nuly, pak má úloha řešení, v opačném případě je pro danou posloupnost neřešitelná. Postup šifrování s použitím zavazadlového algoritmu je tedy následovný: Použijeme n=31 a m=105. 1. Zvolíme superrostoucí posloupnost, například (2, 3, 6, 13, 27, 52), tvořící soukromý klíč. 2. Vytvoříme veřejný klíč z klíče soukromého. Veřejný klíč vznikne transformací soukromého klíče na veřejný klíč, a to vynásobením číslem n mod m, kde m je větší než po posledním uvedeném členu posloupnosti následující člen posloupnosti, přičemž je splněna podmínka, že n nemá žádné společné dělitele s m. 69 Posloupnost normálního zavazadla, kterou tímto postupem získáme, bude:
69
ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 96 46
2*31 mod 105=62 3*31 mod 105=93 6*31 mod 105=81 13*31 mod 105=88 27*31 mod 105=102 52*31 mod 105=37 Obsah normálního zavazadla je tedy množina {62, 93, 81, 88, 102, 37}. Superrostoucí zavazadlová posloupnost je soukromým klíčem a normální zavazadlová posloupnost je veřejným klíčem. 3. K zašifrování dvojkové zprávy je třeba zprávu nejprve rozdělit na stejný počet bloků, jako je počet zavazadlové posloupnosti. Následně se určí celkové váhy zavazadel odpovídajících jednotlivým blokům, přičemž celkovou váhu každého zavazadla tvoří položky příslušející jedničkovým bitům určitého bloku zprávy. Kdyby zprávu představovala dvojková posloupnost například 011000110101101110, pak: zpráva = 011000 - 110101 - 101110 011000
93+81=174
110101
62+93+88+37=280
101110
62+81+88+102=333
4. Šifrovaným textem jsou čísla 174, 280, 333. Postup dešifrování s použitím zavazadlového algoritmu je následovný: 1. Příjemce zná hodnoty superrostoucího zavazadla, stejně jako hodnoty n a m. 2. Příjemce nejprve určí n-1 pomocí n(n-1)≡1(mod m). Potom vynásobí všechny hodnoty šifrovaného textu výrazem n-1 mod m a výsledky rozloží na prvky posloupnosti "soukromého zavazadla". Přiřazením jedniček těmto prvkům a nul prvkům chybějícím dostane hodnoty otevřeného textu. n-1=61 174*61 mod 105=9=3+6
011000
280*61 mod 105=70=2+3+13+52
110101
333*61 mod 105=48=2+6+13+27
101110
47
Přestože byl původně zavazadlový algoritmus považován za bezpečný, ukázalo se, že nejde o bezpečný algoritmus a ani pokusy jej zesílit nebyly úspěšné.70
4.2 RSA Po Merkl-Hellmanově zavazadlovém algoritmu se objevil již bezpečný asymetrický kryptosystém, jenž se dá využít jak pro šifrování, tak pro digitální podpis, tím je RSA. Ze všech
algoritmů
veřejného
klíče
navržených
během
řady
let
je
RSA
tím
nejsrozumitelnějším a nejjednodušeji realizovatelným kryptosystémem.71 RSA je pojmenovaný po svých tvůrcích Ron Rivestovi, Adi Shamirovi a Leonardu Adlemanovi. Jedná se původně o patentovanou šifru, kdy po sedmnácti letech patent vypršel a RSA se stal rozšířeným algoritmem v oblasti bezpečných komunikací. Dnes se již běžně používá v bankomatech, mobilních telefonech či pro elektronické podpisy. Bezpečnost RSA je založena na obtížnosti faktorizace velkých čísel. Veřejný a soukromý klíč se odvozuje ze dvou velkých prvočísel, která jsou několika set místná. Luštění otevřeného textu pomocí veřejného klíče a šifrovaného textu se zakládá na odhadu správné faktorizace součinu dvou prvočísel.72 Generace dvojice klíčů vypadá následovně: 1. Alice zvolí dvě velká prvočísla p,q a vypočítá jejich součin n=p*q. 2. Zvolí si libovolné číslo e
70
PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 155 PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 157 72 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 97 71
48
Pokud by se šifrovaná zpráva dostala k Evě, pak díky problému faktorizace nebude schopna v reálném čase získat odpovídající otevřený text. 73Pokud by se n dalo v reálném čase faktorizovat, pak by bylo možné spočítat z veřejného klíče soukromý klíč s použitím Euklidova algoritmu. Počet prvočísel se odhaduje pomocí zjednodušeného Gaussova vztahu π*(n)=n/ln*(n) z něhož vyplývá, že prvočísel je dostačující množství, pokud zvolíme vhodný interval, z něhož jsou prvočísla vybírána. Počet stomístných prvočísel je odhadem o tři řády menší, než je celkový počet čísel, tedy π*(10100)-π*(1099)=3.9*1097.74 Tabulka č. 3 - Doba pro faktorizaci čísla n v závislosti na počtu jeho číslic [14] počet číslic klíče n 50
doba pro nalezení prvočísel p a q při 1000000 operací/s 3.9 hod
100
74 let
150
1000000 let
200
3.8 mld let
250
5.9 bilionů let
Zdroj: ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. Str. 98 [14]
4.3 El Gamalův algoritmus El Gamalův kryptosystém s veřejným klíčem, který je založen na základě DiffieHelmmanově výměně klíčů, je podobný šifrovacímu algoritmu RSA. Algoritmus byl navržen Taherem El Gamalem, egyptským kryptologem, roku 1985. Lze jej používat pro šifrování zpráv i pro digitální podpis. Algoritmus sestává ze tří komponentů, těmi jsou generátor klíče, šifrovací algoritmus a dešifrovací algoritmus. Generace dvojice klíčů vypadá následovně: 1. Alice si zvolí prvočíslo p a dvě náhodná čísla q a x, která jsou menší než p. 2. Vypočítá y=qx mod p, kde x je tajným klíčem a čísla y, p a q se mohou zveřejnit jako veřejný klíč.
73 74
BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 51 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 98 49
Zašifrování zprávy vypadá následovně: 1. Bob použije veřejný klíč a náhodně zvolené číslo k, které je číslem p-1 nesoudělné. 2. Pro zašifrování zprávy M vypočítá a=qk mod p a b=ykM mod p. 3. Čísla a a b jsou výsledným šifrovaným textem, který je dvakrát tak delší než-li otevřený text. Dešifrování zprávy vypadá následovně: 1. Alice přijme a i b a vypočte M=b/ax mod p. 2. Z je hodnotou původní zprávy. Bezpečnost El Gamalova algoritmu je založena na velké složitosti výpočtu diskrétních logaritmů v konečném tělese. Spočívá v pseudojednostrannosti funkcí modulárního umocňování. Je snadné vypočítat výraz ax mod n, ale zjistit x z výrazu ax≡b (mod n) je již značně složitý problém.75
4.4 Rabinův algoritmus Rabinův algoritmus byl vytvořen roku 1987 Michaelem O. Rabinem. Bezpečnost Rabinova systému je založena na obtížnosti hledání druhých odmocnin modulu složených čísel. Tento problém je podobně obtížný jako faktorizace. Generace dvojice klíčů vypadá následovně: 1. Alice si zvolí dvě prvočísla p a q, obě kongruentní s 3 mod 4. 2. Tato čísla představují soukromý klíč a jejich součin n=p*q klíč veřejný. Zašifrování zprávy vypadá následovně: 1. Bob zvolí zprávu M, která musí být menší než n. 2. Spočítá C=M2 mod n. 3. C je výsledným šifrovaným textem
75
ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 105 50
Dešifrování zprávy vypadá následovně: 1. Jelikož Alice zná p a q, může pomocí čínské věty o zbytcích určit dvojice kongruencí. 2. Vypočítá: m1=C(p+1)/4 mod p m2=(p-C(p+1)/4) mod p m3=C(q+1)/4 mod q m4=(q-C(q+1)/4) mod q 3. Potom zvolí celé číslo a=q(q-1 mod p) a celé číslo b=p(p-1 mod q). 4. Možná řešení jsou: M1=(am1+bm3) mod n M2=(am1+bm4) mod n M3=(am2+bm3) mod n M4=(am2+bm4) mod n 5. Jedno ze čtyř řešení M1, M2, M3 nebo M4 se bude rovnat M. Jestliže bude zpráva v nějakém národním jazyce, pak výběr správného textu nebude problém. Bude-li ale zpráva posloupností náhodných bitů, jako například přenášený klíč nebo digitální podpis, pak výběr správné zprávy nebude možný. Jedna cesta k řešení tohoto problému spočívá v připojení známého záhlaví ke zprávě před jejím zašifrováním.76
4.5 DSA DSA (Digital Signature Algorithm) je algoritmus, jenž je standardem americké vlády pro digitální podpis. Byl navržen americkým institutem NIST (National Institute of Standards and Technology) roku 1991 a je připisován Davidovi W. Kravitzovi. NIST dal tento patent celosvětové veřejnosti k volnému užívaní a to bez poplatků. DSA je založen na problému výpočtu diskrétního logaritmu, je podobný El Gamalově algoritmu. Generování klíčů má dvě části, kde první část je o výběru parametrů algoritmu, které nejsou tajné a mohou být sdíleny mezi různými uživateli: 1. Provede se výběr hash funkce, SHA-1 nebo SHA-2. 2. Rozhodne se o parametrech L a N , které určují délku klíče. Doporučená délka L je 2048 při použití adekvátně velkého N. 3. Vybere se N bitové prvočíslo q. 76
PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. ISBN 80-01-01664-1. Str. 165 51
4. Vybere se L bitové prvočíslo p, kde p-1 je násobkem q. 5. Vybere se g jako takové číslo, jehož multiplikativní řád modulo p je právě q. Dosáhnout toho lze dosazováním do vzorce g=h(p-1)/q mod p pro náhodná h, kde 1< h < p-1, dokud výsledek není různý od jedné. Nejčastěji se užívá h=2. Následuje generování samotných klíčů: 1. Vybere se x v rozsahu 0<x
4.6 Hash funkce Hash funkce je výpočetně efektivní funkce, která transformuje posloupnosti binárních symbolů libovolné délky na binární posloupnosti určité konstantní délky, které se nazývají hash hodnoty. Pro hash funkci, která generuje n-bitové výstupní hash hodnoty a má požadované vlastnosti, je pravděpodobnost náhodného výběru posloupnosti s transformací do stejné n-bitové hash hodnoty 2-n. Hash hodnota je komprimovaným obrazem vstupní posloupnosti, což je hlavní význam hash funkce. Aby hash funkce h byla kryptograficky použitelná, musí být vybrána s ohledem na výpočetní nemožnost vyhledání dvou různých vstupů x a y, které 77
Digital_Signature_Algorithm. In: Wikipedia: the free encyclopedia [online]. Dostupné z: http://cs.wikipedia.org/wiki/Digital_Signature_Algorithm
52
by daly stejnou hash hodnotu tedy, h(x)=h(y) a na výpočetní nemožnost vyhledání vstupu x, který by vyhověl dané specifické hash hodnotě y, tedy h(x)=y. Hash funkce se nejčastěji uplatňují v případě digitálních podpisů a datové integrity. U digitálních podpisů se obvykle podepisují jen vytvořené hash hodnoty dlouhé zprávy. Subjekt, který zprávu přijme, vygeneruje hash hodnotu této zprávy a ověří, že přijatý podpis patří této hash hodnotě. Bezpečnost je zajištěna nemožností získat dvě zprávy o totožné hash hodnotě, protože jinak by podpis hash hodnoty jedné zprávy mohl být nahrazen podpisem hash hodnoty druhé zprávy. Hash funkce mohou taktéž sloužit k zajištění datové integrity a to tak, že se nejprve pro daný vstup vypočte jeho hash hodnota a ta se nějak ochrání. Po určité době se provede kontrola datové integrity vstupních dat tak, že se ze vstupních dat, která jsou k dispozici, opětovně vypočte hash hodnota a výsledek se porovná s původní hash hodnotou.78
4.6.1 MD2 MD2 (Message Digest 2) je kryptografická hash funkce vyvinutá Ronaldem Rivestem roku 1989. Ačkoliv byl původně optimalizován pro 8 bitové procesory a od jeho vzniku se objevilo mnoho dalších algoritmů, je možné se s touto hash funkcí ještě stále setkat, již ale není považován za bezpečný. Výsledná hash hodnota má velikost 128 bitů.
4.6.2 MD4 Čtvrtý ze série MD byl také vyvinut Ronaldem Rivestem a stejně jako MD2 vytváří 128 bitové hash hodnoty. Z návrhu MD4 později čerpaly některé z dalších hash funkcí. I MD4 je dnes již zastaralý, jelikož byly objeveny slabiny, s jejichž pomocí lze nalézt kolize.
4.6.3 MD5 MD5 patří k nejznámějším algoritmům a byl rovněž navržen Ronaldem Rivestem roku 1991. MD5 byla reakce na slabiny MD4. Algoritmus MD5 je ještě stále využíván i přesto, že i v něm se vyskytují slabiny a délka výsledné hash hodnoty 128 bitů již není považována za bezpečnou.
78
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 46 53
4.6.4 HAVAL Algoritmus HAVAL vznikl roku 1992, kdy jej vytvořil trojčlenný tým Josef Pieprzyk, Yuliang zheng a Jennifer Seberryová. Předcházející algoritmy MD poskytovaly pouze pevnou délku hash hodnoty, která byla 128 bitů. Naproti tomu HAVAL dává uživateli možnost volby z více variant a to 128, 160, 192, 224 a 256 bitů. Kratší délky však nejsou příliš bezpečné.
4.6.5 SHA Soubor algoritmů SHA (Secure Hash Algorithm) byl vytvořen v NSA (National Security Agency). První verze této hash funkce vznikla roku 1993 a nesla označení SHA. Až o 2 roky později dostala první verze označení SHA-0, protože vznikl nový algoritmus SHA-1 a dále vzniklo také několik mírně modifikovaných variant SHA-224, SHA-256, SHA384 a SHA-512, které se označují jako SHA-2.
4.6.6 RIPEMD-160 Algoritmus RIPEMD (Race Integrity Primitives Evaluation Message Digest) byl navržen Hansem Dobbertinem, Antonem Bossealersem a Bartem Preneelem. Oproti SHA se jedná o výsledek akademického úsilí. Výstupem algoritmu RIPEMD-160 je hash hodnota o délce 160 bitů. Jak bezpečností, tak i výkonem jsou si RIPEMD-160 i SHA velice podobní.79
79
BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 56 54
5 Bezpečnost šifer Postupy kryptoanalýzy mohou být rozděleny do dvou tříd na pasivní a aktivní. Pasivní útoky používají techniky jako je monitorování toku dat a analýza, která nevyžaduje zjevnou manipulaci se zašifrovaným textem. Pasivní útoky mají většinou za cíl narušit privátnost dat. Naproti tomu aktivní útoky mají za cíl kromě narušení privátnosti i narušení jejich integrity a autenticity. Kryptosystém je považován za prolomitelný, jestliže třetí subjekt může v přijatelné době systematicky vyhledat k šifrovanému textu odpovídající otevřený text bez apriorní znalosti páru klíčů. Přijatelná doba je funkcí životnosti chráněných dat. Šifrovací systém může být prolomen vyzkoušením všech možných klíčů za předpokladu, že třída šifrovacích funkcí je obecně známá. Tento postup je znám jako vyčerpávající průzkum prostoru klíčů či jako útok hrubou silou. Z toho vyplívá, že rozsah prostoru klíčů by měl být dostatečně velký, aby metoda totálních zkoušek byla prakticky nerealizovatelná.80
5.1 Luštění šifrovacích systémů Cílem níže popsaných způsobů luštění je symetrické opětovné získání otevřeného textu z textu šifrovaného nebo dedukce dešifrovacího klíče. 1. Luštění se znalostí šifrovaného textu je takové luštění, při kterém se narušitel snaží nalézt dešifrovací klíč nebo otevřený text pouze na základě analýzy šifrovaného textu. Šifrovací systém, který je zranitelný tímto způsobem, se považuje za zcela nebezpečný. 2. Luštění se znalostí otevřeného textu je takové luštění, při kterém má narušitel k dispozici určité množství otevřeného textu a odpovídající šifrovaný text. Tento způsob luštění je složitější než luštění se znalostí šifrovaného textu. 3. Luštění se znalostí vybraných otevřených textů je takové luštění, při kterém narušitel vybírá otevřený text, pro který má šifrovaný text a potom použije každou vydedukovanou informaci k rozluštění nově získaného šifrovaného textu. 4. Adaptivní metoda luštění se znalostí vybraných otevřených textů je metoda luštění se znalostí vybraných otevřených textů, kde volba otevřeného textu může záviset na šifrovaném textu získaném na základě předchozích výběrů. 80
McCLURE, S., J. SCAMBRAY a G. KURTZ. Hacking bez tajemství. ISBN 80-722-6948-8. Str. 496 55
5. Luštění se znalostí vybraných šifrovaných textů je takové luštění, kde narušitel vybírá šifrovaný text, pro který má odpovídající otevřený text. Tento způsob může využít narušitel, který má přístup k nerozebíratelnému dešifrovacímu zařízení, ale ne k dešifrovacímu klíči, který může být bezpečně do zařízení integrován. Účelem je to, aby narušitel získal možnost dedukovat otevřený text z jiného šifrovaného textu bez možnosti přístupu k takovému dešifrovacímu zařízení. 6. Adaptivní metoda luštění se znalostí vybraných šifrovaných textů je metoda luštění se znalostí vybraných šifrovaných textů, u které výběr šifrovaného textu může záviset na otevřeném textu získaném na základě předchozích výběrů. Většina těchto způsobů luštění se dá aplikovat i na digitální podpisová schémata a kódy pro autentizaci, kde je cílem například padělání zpráv.81
5.2 Modely pro hodnocení bezpečnosti Bezpečnost šifer lze hodnotit podle několika různých modelů. K nejvhodnějším bezpečnostním metrikám patří absolutní bezpečnost, teoretická bezpečnost, dokazatelná bezpečnost, výpočetní bezpečnost a ad hoc bezpečnost.
5.2.1 Absolutní bezpečnost Nejpřesnější teoretickou mírou je informace vyjadřující skutečnost, zda je nebo není systém absolutně bezpečný. V tomto případě se předpokládá, že narušitel má k dispozici neomezenou výpočetní kapacitu a otázkou je, zda existuje dostatek informací postačujících k prolomení systému. Absolutní bezpečnost je označována jako dokonalé zabezpečení. Analýza šifrovaného textu nedává narušiteli žádnou informaci. Podmínkou pro absolutní bezpečnost šifrovacího systému symetrického klíče je to, aby délka klíče byla minimálně tak dlouhá, jako je délka zprávy. Šifrovací schémata obecně nezajišťují absolutní bezpečnost a každý analyzovaný znak snižuje teoretickou míru bezpečnosti šifrovacího klíče. Šifrovací systémy veřejného klíče nemohou být absolutně bezpečné, protože daný šifrovaný text lze principiálně luštit šifrováním všech možných textů tak dlouho, dokud narušitel nezíská c.
5.2.2 Teoretická bezpečnost Analýza teoretické bezpečnosti je založena na teorii složitosti. Nadefinuje se vhodný model výpočetních operací a narušitelé jsou modelováni tak, aby měli k dispozici výpočetní 81
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 57 56
kapacitu polynomiální mohutnosti. Poté se navrhne testování bezpečnosti vytvořeného modelu. Cílem je návrh kryptografické metody založené na nejméně spolehlivých předpokladech, které může narušitel odhadnout. Provede se přibližovací analýza a zpravidla i analýza nejhorších případů a posléze se zjistí, zda získané výsledky budou mít praktický význam. Naproti tomu útoky polynomiální složitosti, které modelu vyhovují, mohou být v praxi výpočetně nerealizovatelné. Tato bezpečností analýza nemusí mít vždy praktický smysl, ale může posloužit k lepšímu pochopení celkové bezpečnostní problematiky.82
5.2.3 Dokazatelná bezpečnost Kryptografická metoda je dokazatelně bezpečná, pokud bude možné dokázat, že obtížnost jejího prolomení bude stejná jako řešení srovnatelně obtížného problému, kterým je faktorizace celých čísel nebo výpočet diskrétního logaritmu. Dokazatelnost se tedy vztahuje k určitým předpokladům.
5.2.4 Výpočetní bezpečnost Výpočetní bezpečnost charakterizuje množství početních operací, které nejlepší známé metody potřebují k prolomení systému. Systém se považuje za výpočetně bezpečný, jestliže předpokládané množství početních operací nutné k jejímu prolomení překročí dostatečným způsobem výpočetní možnosti narušitele. Tyto metody se často týkají obtížných problémů, ale na rozdíl od dokazatelné bezpečnosti není znám žádný důkaz o ekvivalentnosti. Mnoho využívaných systémů veřejného a symetrického klíče spadá do této třídy, která je také někdy označována jako třída praktické bezpečnosti.
5.2.5 Ad hoc bezpečnost Tento přístup je založen na nějaké množině přesvědčivých argumentů pro tvrzení, že každý úspěšný útok vyžaduje vyšší úroveň zdroje, to jest čas a prostor, než jsou omezené zdroje narušitele. Kryptografické prostředky, které přežijí takovou analýzu, jsou označovány jako heuristicky bezpečné. Základní systémy jsou navrženy tak, aby čelily standardním útokům. Tento přístup patří k běžně používaným, avšak v některých ohledech vyhovuje jen minimálně.83 82
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 58 57
5.3 Kvantitativní měřítka bezpečnosti K hodnocení bezpečnosti kryptografických systémů se často používají určitá kvantitativní měřítka. Činitel pracnosti Wd vyjadřuje minimální množství práce nutné pro výpočet soukromého klíče d z daného veřejného klíče e, nebo v případě systémů symetrického klíče, k určení tajného klíče k. Wd je měřený ve vhodných jednotkách jakými jsou například základní operace nebo hodinové cykly. Wd(n) vyjadřuje množství práce nutné k rozluštění n zadaných šifrovaných textů, což je luštění se znalostí šifrovaného textu. Jestliže Wd bude vyjadřovat počet let t, pak při dostatečně velkém t bude kryptografický systém bezpečným. Historický činitel pracnosti Wd* vyjadřuje minimální množství práce, které je potřeba k odvození soukromého klíče d z veřejného klíče e použitím nejlepšího známého algoritmu k danému datu. Historický činitel Wd* se mění tak, jak se postupně vylepšují algoritmy a technologie. Wd* odpovídá výpočetní bezpečnosti, zatímco Wd skutečné úrovni zabezpečení.84
5.4 Útoky proti šifrám Útoky proti šifrám se liší navzájem výchozími podmínkami a výchozími znalostmi, kterých útočník využívá a s tím souvisí i volba kryptoanalytického útoku. Obecně vede zveřejňování šifrovacích algoritmů k teoretickému i praktickému ověření odolnosti proti kryptoanalytickým útokům, případně i k jejich úpravě a zesílení nebo také k odmítnutí, pokud se najdou zásadní slabiny algoritmu. Cílem kryptoanalýzy je získat použitý šifrovací klíč, a tak přístup ke všem zachyceným zprávám, které byly tímto klíčem šifrovány, nebo získat alespoň část zprávy či zprávu poškodit. Při kryptoanalytickém útoku využívá kryptoanalytik různé znalosti o šifrovacím algoritmu, postupu šifrování, klíči, otevřeném textu, jazyce a tak dále. Mezi tyto obecné znalosti patří: •
Frekvence výskytu písmen je odlišná u různých jazyků a tyto frekvence jsou pro každý jazyk známy,
•
Použití polyalfabetické šifry a homofonní šifry vede ke zploštění frekvence výskytu písmen,
83 84
PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 59 PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. ISBN 80-01-02863-1. Str. 61 58
•
Pro ulehčení dešifrování útočník používá další vstupní informace jako odhad, ve kterém jazyce je zpráva psána, použitý kryptosystém či předpoklad výskytu určitých slov,
•
Útok hrubou silou je usnadněn zmenšením prostoru klíčů nebo potencionálních textů a zvýšením výpočetního výkonu pro kryptoanalýzu,
•
Výrazně ulehčit prolomení šifry může i nevhodné použití šifrovacího algrotimu,
•
Použití příliš malého prostoru klíčů, kdy i 256 je málo, usnadňuje práci kryptoanalytika,
•
Dešifrování nemusí dát jasný výsledek. 85
5.4.1 Útok hrubou silou Krátké heslo může podlehnout útoku hrubou silou, též označovaného jako brute force útok. Při něm jsou systematicky testována všechna slova nad použitou abecedou znaků. V praxi takovýto útok například vypadá tak, že se nejprve otestují všechna samostatná písmena, poté všechny dvojznakové kombinace aa až zz, potom všechny trojice znaků aaa až zzz a tak dále.86
5.4.1.1 Útok hrubou silou na symetrické šifrovací algoritmy Pro ověření správnosti útoku je třeba dvojice otevřený text - šifrovaný text, například z kontextu známá hlavička souboru. Počet možných klíčů pro délku klíče n bitů je 22 a útok spočívá ve vyzkoušení všech klíčů, respektive části, jelikož se zpravidla uvažuje 50% klíčů pro 50% pravděpodobnost nalezení klíče, kde výpočetní čas souvisí se složitostí algoritmu a výpočetním výkonem. Realizace velkého výpočetního výkonu je či teoreticky bude možná například použitím kvantových počítačů, DNA počítačů či biologických počítačů.87
5.4.1.2 Útok hrubou silou na asymetrické šifrovací algoritmy Mezi typické útoky hrubou silou proti asymetrickým šifrovacím algoritmům patří útok proti klíči, což je odvození soukromého klíče z klíče veřejného a generování možných textů, což znamená, že jestliže možných textů je příliš omezené množství jako třeba jména v telefonním seznamu, pak stačí všechny možné texty zašifrovat veřejným klíčem a porovnat výsledek se šifrovaným textem a při shodě byl zašifrován právě zkoušený text. 85
ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 112 86 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 94 87 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 117 59
Pravděpodobně nejvíce analyzována je úloha faktorizace, kde se účinnost faktorizačních algoritmů stále zvyšuje. Při výběru délky klíčů pro symetrickou a asymetrickou kryptografii je vhodné v hybridním kryptosystému dosáhnout stejné bezpečnosti obou šifrovacích algoritmů, a to v souladu se známým závěrem, že systém je tak bezpečný, jako je bezpečný jeho nejslabší článek.88 Tabulka č. 4 - Doporučená délka klíče v bitech pro kryptografii s veřejným klíčem [14] Rok
Osoby
Firmy
Vláda
1995
768
1280
1536
2000
1024
1280
1536
2005
1280
1536
2048
2010
1280
1536
2048
2015
1536
2048
2048
Zdroj: ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. Str. 122 [14]
5.4.2 Slovníkový útok Slovníkový typ útoku vychází z předpokladu, že si uživatelé často volí jako heslo přímo nějaké smysluplné slovo jako například auto, počítač, pocitac a podobně. Tento útok totiž spočívá v postupném zkoušení slov daného jazyka, většinou načítaných ze souborů vytvořených speciálně k tomuto účelu. Slovníkový útok lze ještě vylepšit přidáním čísel a permutacemi.89
5.4.3 Důkladný útok hrubou silou Slovníkovému útoku, který zkouší všechny možné kombinace, se říká důkladný útok hrubou silou. Tento typ útoku je schopný prolomit všechna hesla, ale zabere větší množství času, než je přijatelné. Například s 95 možnými vstupními hodnotami pro hesla generována nějakou funkcí existuje 958 možných hesel pro důsledné hledání ze všech osmiznakových hesel, což je více než sedm kvadrilionů možných hesel, protože každý znak exponenciálně zvýší počet 88
ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 122 89 BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. ISBN 80-86686-48-5. Str. 94 60
možných hesel. Jestliže budeme předpokládat rychlost prolomení 10000 pokusů za sekundu, pak vyzkoušet všechna hesla zabere 22875 let. Řešením problému dlouhého zkoušení hesel může být distribuce výpočtu mezi více strojů a procesorů, tím však dosáhneme pouze lineárního zrychlení. Pokud bychom do tohoto výpočtu zapojili dalších tisíc strojů s předpokladem, že všechny budou zpracovávat pokusy stejně rychle jako ten první, pak by řešení problému trvalo více než 22 let. Naopak odebíráním znaků z hesla se počet možných hesel exponenciálně snižuje. To znamená, že čtyřznakové heslo má pouze 944, tedy 84 milionů možných hesel. Například heslo "x8%C", které není v žádném slovníku, v rozumném čase prolomit lze.90
5.4.4 Frekvenční analýza Frekvenční analýza výskytu písmen nebo skupin písmen v textu různých jazyků je účinným způsobem útoku proti monoalfabetickým šifrám. Spočívá v porovnání frekvence výskytu znaků otevřeného textu a šifrovaného textu. Aby tato metoda byla efektivní, je nutné využití dostatečně dlouhého textu. U textů specifické struktury jako například programovací jazyky, se může výsledek frekvenční analýzy i pro dlouhý text lišit od zastoupení v jazyce.91
5.4.5 Útok se změnou bitů K útokům se změnou bitů jsou náchylné proudové šifry, jelikož zajišťují šifrování a dešifrování dat zpravidla po jednotlivých bitech a zpravidla provádí XOR nad prostým textem a klíčovým proudem. Protože proudová šifra šifruje data po bitech, může útočník změnit 1 bit šifrovaného textu a příjemce nemá možnost zjistit, že se data změnila. Kupříkladu zpráva ve formátu hh:mm dd-mm-yyyy. aaaaaaaaaaaaaaaa, kde hh:mm je čas ve 24 hodinovém formátu, dd-mm-yyyy je datum a aaaa je tělo zprávy. Alice se rozhodne poslat Bobovi zprávu, která bude vypadat takto: 16:00 03-03-2014. Sejdeme se na letišti. Alice. Eva nemá přístup k prostému textu zprávy, má jen šifrovaný text a zná její formát. Může však snadno změnit jeden nebo více šifrovaných bajtů v polích a změněnou zprávu poslat Bobovi. Ten nemá šanci zjistit, že zprávu někdo při přenosu změnil
90 91
ERICKSON, Jon. Hacking - umění exploitace. ISBN 978-80-7413-022-9. Str. 222 ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 113 61
a místo v 16 hodin přijde na setkání v 19 hodin nebo jiný měsíc či rok. Útokům se změnou bitů se dá zabránit pomocí digitálního podpisu nebo klíčovaného hash.92
5.4.6 Odvození kryptografických klíčů z hesel Kryptografické algoritmy provádějí šifrování a dešifrování dat pomocí klíčů, proto je důležité zvolit dobrý klíč, to jest klíč, který je dlouhý a dá se těžko uhodnout. Běžně si však lidé volí klíče ne příliš dobré, tedy snadno zapamatovatelná hesla nebo fráze. Budeme-li například v určité aplikaci používat algoritmus DES, který ke své činnosti vyžaduje 56 bitový klíč, tedy dobrý klíč DES by měl rovnoměrně rozdělenou pravděpodobností spadnout kdekoli do intervalu 0 až 256-1, tedy od 0 do 72057594037927899. Běžné heslo obsahuje ale zpravidla snadno čitelné znaky ASCII, jako je A-Z, a-z, 0-9 a interpunkční znaménka. Tyto hodnoty jsou již ovšem silně zredukovanou podmnožinou původního spektra. Pokud si je útočník vědom toho, že v aplikaci používáme algoritmus DES a bude počítat s tím, že používáme běžná uživatelská hesla, nebude při pokusu o uhodnutí hesla zkoušet všechny hodnoty intervalu 0 až 256-1, ale jen taková hesla, která obsahují snadné hodnoty v ASCII, což už je pro narušitele mnohem méně obtížné. Efektivní bitová délka hesla je rovna log2(nm), kde n je velikost fondu platných znaků a m je délka hesla.93 Níže je za různých scénářů uvedena velikost fondu dostupných znaků a z toho vyplívající délka hesla potřebná pro vytvoření ekvivalentního 56 bitového a 128 bitového klíče.
92 93
HOWARD, Michael a David LeBLANC. Bezpečný kód. ISBN 978-80-251-2050-7. Str. 291 HOWARD, Michael a David LeBLANC. Bezpečný kód. ISBN 978-80-251-2050-7. Str. 274 62
Tabulka č. 5 - Počet dostupných znaků a délka hesla u dvou typů klíčů [6] Scénář
Dostupný počet
Potřebná délka hesla
Potřebná délka hesla
znaků
pro 56 bitový klíč
pro 128 bitový klíč
Číselný pin
10 (0-9)
17
40
Písmena bez
26 (A-Z nebo a-z)
12
28
52 (A-Z a a-z)
10
23
62 ( A-Z, a-z a 0-9)
10
22
93 ( A-Z, a-z, 0-9
9
20
rozlišení velikosti Písmena s rozlišením velikosti Písmena s rozlišením velikosti a číslice Písmena s rozlišením velikosti, číslice
a intepunkce)
a interpunkce Zdroj: HOWARD, Michael a David LeBLANC. Bezpečný kód. Str. 275 [6]
5.5 Zesílené šifrování Zesilování šifrování využívá stávající šifrovací algoritmy a kombinuje je tak, aby došlo k výraznému posílení bezpečnosti výsledného šifrovaného textu. Nejčastěji je cílem efektivní prodloužení klíče.
5.5.1 Dvojité šifrování Dvojité šifrování spočívá v dvojím postupném použití stejného šifrovacího algoritmu se dvěma různými klíči, tedy C=EK2(EK1(P)) pro šifrování a P=DK1(DK2(C)) pro dešifrování. Při délce klíče n by pro útok hrubou silou bylo nutné 22n pokusů. Při znalosti otevřeného textu lze využít útoku meet-in-the-middle attack, kdy je potřeba pouze 2n+1 pokusů, což je stejně jako při jednoduchém šifrování. Pro aplikaci útoku je potřeba znát minimálně C1=EK2(EK1(P1)) a C2=EK2(EK1(P2)). Postup útoku vypadá následovně: 1. Pro každý klíč K se vypočítá EK(P) a uloží se do paměti dvojice K, EK(P), 2. Pro každý klíč K se vypočítá DK(C1)=DK(EK2(EK1(P))) a hledá se tejný obsah v paměti, při shodě by mohlo jít o klíče K=K2 a K1,
63
3. Spočítá se C2=EK2(EK1(P)), při shodě C2 jsou s pravděpodobností 1:22m-2n, kde m je velikost bloku a n je počet bitů klíče, K1 a K2 správné klíče. Jestliže se C2 neshoduje, pokračuje se v hledání. Nevýhodou této metody jsou vysoké nároky na paměťový procesor, kdy pro 56 bitový klíč je nutné vypočítat 256 64 bitových bloků, což představuje 109 GB.
5.5.2 Trojité šifrování Trojité šifrování může být využito se dvěma nebo se třemi klíči. Trojité šifrování se dvěma klíči využívá nejčastěji metodu EDE, což je metoda šifrování-dešifrování-šifrování, jejíž schéma je C=EK1(DK2(EK1(P))) a P=DK1(EK2(DK1(C))). Opět lze provést útok se znalostí otevřeného textu, který bude lehce modifikovaný. Prakticky využívané je zejména trojité šifrování se třemi klíči, jehož schéma je C=EK3(DK2(EK1(P))) a P=DK1(EK2(DK3(C))). Útok se znalostí otevřeného textu vyžaduje 22n kroků.94
94
ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. ISBN 80-7041-737-4. Str. 126 64
5.6 Nebezpečný algoritmus Vytvoření si vlastního algoritmu z důvodu toho, že známé algoritmy jsou až příliš známé, není zcela jednoduchá záležitost. Ve skutečnosti je vytvoření opravdu dobrého kryptografického algoritmu velmi obtížnou záležitostí, do které by se neměl pouštět nikdo, kdo se v dané problematice opravdu velmi dobře neorientuje. Například tento algoritmus napsaný v jazyce C++ je zcela nedostačující: void EncryptData(char *szKey, DWORD dwKeyLen, char *szData, DWORD dwDataLen) { for (int i = 0; i < dwDataLen; i++) { szData[i] ^= szKey[i % dwKeyLen]; } } Tento kód udělá nad prostým textem operaci XOR s klíčem a tím vytvoří šifrovaný text. Tato šifra je velice slabá, jelikož útočníkovy stačí provést XOR mezi šifrovaným textem a původně zadanými daty a má klíč. Nejrozumnějším způsobem šifrování je tedy využití vyzkoušeného a důvěrného algoritmu.95
95
HOWARD, Michael a David LeBLANC. Bezpečný kód. ISBN 978-80-251-2050-7. Str. 284
65
Závěr V práci jsem se zabýval historií kryptologie, symetrickými šifrovacími algoritmy, asymetrickými šifrovacími algoritmy a bezpečností šifer. Z dosaženého poznání vyplývá, že jako velmi bezpečný algoritmus lze doporučit co se týče symetrického šifrování AES s 256 bitovým klíčem, asymetrického šifrování RSA s 4096 bitovým klíčem, hash funkce SHA s 512 bitovým klíčem a pro digitální podpis algoritmus s hash funkcí SHA s 512 bitovým klíčem. Tato doporučení lze považovat obecně za velmi bezpečné, avšak jak se již v minulosti ukázalo, vláda, soukromý sektor a veřejnost mohou být na jiné úrovni poznání v oblasti kryptologie. Kryptologie se v průběhu let značně vyvinula a další velké pokroky ji čekají s nástupem kvantových počítačů. V minulosti sehrávala velkou roli nejen v osobní komunikaci, ale i v mezinárodních konfliktech. I dnes, kdy už je kryptologie rozšířená a běžně využívaná v osobním životě, lze především pozorovat její podíl na mezinárodních vztazích. Jako příklad uveďme použití kryptoanalýzy na emailovou komunikaci pro boj s terorismem. Či skandál, který se odehrál v nedávné době, týkající se odposlechů světových státních představitelů, za kterými stály USA. Jakou cestou se bude kryptologie ubírat a jakou roli v našich životech ještě sehraje, se můžeme pouze domnívat.
66
Seznam použité literatury Bibliografie [1]
BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. Kralice na Hané: Computer Media s.r.o., 2005. ISBN 80-86686-48-5
[2]
ERICKSON, Jon. Hacking - umění exploitace. Brno: Zoner Press, 2009. ISBN 978-807413-022-9
[3]
GERHARD, G., J. HARTMANIS a J. LEEUWEN. State of the art in applied cryptography. Berlin: Spring, 1998. ISBN 3-540-65474-7
[4]
GOOS, G., J. HARTMANIS a J. LEEUWEN. Fast Software Encryption. Berlin: Springer, 1996. ISBN 3-540-60865-6
[5]
GROŠEK, Otakar a Štefan PORUBSKÝ. Šifrovánie - algoritmy, metody, praxe. Praha: Grada a.s., 1992. ISBN 80-85424-62-2
[6]
HOWARD, Michael a David LeBLANC. Bezpečný kód. Brno: Computer Press a.s., 2008. ISBN 978-80-251-2050-7
[7]
MCANDREW, Alasdair. Introduction to cryptography with open-source software. Melbourne: CRC Press, 2011. ISBN 978-1-4398-2570-9
[8]
McCLURE, S., J. SCAMBRAY a G. KURTZ. Hacking bez tajemství. Brno: Computer Press a.s., 2003. ISBN 80-722-6948-8
[9]
POŽÁR, Josef. Informační bezpečnost. Plzeň: Aleš Čeněk, s.r.o., 2005. ISBN 8086898-38-5
[10] PŘIBYL, Jiří. Informační bezpečnost a utajování zpráv. Praha: Vydavatelství ČVUT, 2004. ISBN 80-01-02863-1 [11] PŘIBYL, Jiří a Jindřich KODL. Ochrana dat v informatice. Praha: Vydavatelství ČVUT, 1997. ISBN 80-01-01664-1 [12] VAN DER LUBBE C. A. Jan. Basics Methods of Cryptography. Cambridge: Cambridge University Press, 1998. ISBN 0-521-55559-0 [13] VLČEK, Karel. Teorie informace, kódování a kryptografie. Ostrava: Ediční středisko VŠB, 1999. ISBN 80-7078-614-0 [14] ZELENKA, J., J. ČAPEK, J. FRANCEK a H. JANÁKOVÁ. Ochrana dat: kryptologie. Hradec Králové: GAUDEAMUS, 2003. ISBN 80-7041-737-4
67
Elektronické dokumenty [15] A5/1. In: Wikipedia: the free encyclopedia [online]. St. Petersburg (Florida): Wikipedia Foundation, 9. 5. 2010, last modified on 24. 2. 2014 [cit. 2014-03-14]. Dostupné z: http://en.wikipedia.org/wiki/A5/1 [16] Digital_Signature_Algorithm. In: Wikipedia: the free encyclopedia [online]. St. Petersburg (Florida): Wikipedia Foundation, 31. 5. 2006, last modified on 9. 3. 2013 [cit. 2014-03-18]. Dostupné z: http://cs.wikipedia.org/wiki/Digital_Signature_Algorithm [17] File:Asymetrická_kryptografie.png. In: Wikipedia: the free encyclopedia [online]. St. Petersburg (Florida): Wikipedia Foundation, 7. 4. 2008, last modified on 21. 5. 2012 [cit. 2014-03-10]. Dostupné z: http://commons.wikimedia.org/wiki/File:Asymetrick%C3%A1_kryptografie.png [18] File:GOSTDiagram.png. In: Wikipedia: the free encyclopedia [online]. St. Petersburg (Florida): Wikipedia Foundation, 18. 6. 2004, last modified on 5. 2. 2012 [cit. 2014-037]. Dostupné z: http://en.wikipedia.org/wiki/File:GOSTDiagram.png [19] File:RC4.svg. In: Wikipedia: the free encyclopedia [online]. St. Petersburg (Florida): Wikipedia Foundation, 21. 3. 2007, last modified on 17. 11. 2012 [cit. 2014-03-10]. Dostupné z: http://commons.wikimedia.org/wiki/File:RC4.svg [20] File:Symetrická_šifra.png. In: Wikipedia: the free encyclopedia [online]. St. Petersburg (Florida): Wikipedia Foundation, 7. 4. 2008, last modified on 25. 8. 2009 [cit. 2014-031]. Dostupné z: http://commons.wikimedia.org/wiki/File:Symetrick%C3%A1_%C5%A1ifra.png [21] GÜRKAYNAK, Frank. GALS System Design: Side Channel Attack Secure Cryptographic Accelerators . In: ETH [online]. Dec 20, 2006, 3 pm [cit. 2014-03-08]. Dostupné z: http://www.iis.ee.ethz.ch/~kgf/acacia/c3.html#tth_sEc3.2 [22] IUS MENTIS. Des. Iusmentis.com [online]. © 2003-2005 [cit. 2014-03-03]. Dostupné z: http://www.iusmentis.com/technology/encryption/des/ [23] PROVOS, Niels a David MAZIERES. Design criteria for password schemes. In: Usenix [online]. Apr 28, 1998 [cit. 2014-03-08]. Dostupné z: https://www.usenix.org/legacy/publications/library/proceedings/usenix99/provos/provos _html/node3.html [24] TROPICAL SOFTWARE. Des3. Tropsoft.com [online]. © 1997 [cit. 2014-03-08]. Dostupné z: http://www.tropsoft.com/strongenc/des3.htm [25] UNISTRING TECH SOLUTIONS. Network. Unistring.com [online]. © 2006-2013 [cit. 2014-03-08]. Dostupné z: http://www.unistring.com/network.htm [26] UNIVERSITY OF PITTSBURGH. Research. Pitt.edu [online]. © 2011-2012 [cit. 201403-08]. Dostupné z: http://qo.pitt.edu/research_qc.html
68
Seznam použitých tabulek a obrázků Tabulka č. 1 - Přehled zkratek běžně používaných v kryptologii [14] Tabulka č. 2 - Ukázka Polybiovy šifry [5] Tabulka č. 3 - Doba pro faktorizaci čísla n v závislosti na počtu jeho číslic [14] Tabulka č. 4 - Doporučená délka klíče v bitech pro kryptografii s veřejným klíčem [14] Tabulka č. 5 - Počet dostupných znaků a délka hesla u dvou typů klíčů [6] Obrázek č. 1 - Ukázka Spartské transpoziční šifry [5] Obrázek č. 2 - Vigenérův čtverec [1] Obrázek č. 3 - Bit vs. qubit [26] Obrázek č. 4 - Symetrické šifrování [20] Obrázek č. 5 - Algoritmus IDEA [25] Obrázek č. 6 - Algoritmus DES [22] Obrázek č. 7 - Algoritmus 3DES [24] Obrázek č. 8 - Algoritmus Rijndael [21] Obrázek č. 9 - Algoritmus GOST [18] Obrázek č. 10 - Algoritmus Blowfish [23] Obrázek č. 11- Algoritmus RC4 [19] Obrázek č. 12 - Algoritmus A5/1 [15] Obrázek č. 13 - Asymetrické šifrování [17]
69