Nejpoužívanější kryptografické algoritmy

Rozměr: px
Začít zobrazení ze stránky:

Download "Nejpoužívanější kryptografické algoritmy"

Transkript

1 Bankovní institut vysoká škola Praha Katedra informatiky a kvantitativních metod Nejpoužívanější kryptografické algoritmy Diplomová práce Autor: Bc. Pavel Vojtěch Informační technologie a management Vedoucí práce: Ing. Vladimír Beneš, Ph.D. Praha Březen, 2014

2 Prohlášení Prohlašuji, že jsem diplomovou práci zpracoval samostatně a v seznamu uvedl veškerou použitou literaturu. Svým podpisem stvrzuji, že odevzdaná elektronická podoba práce je identická s její tištěnou verzí a jsem seznámen se skutečností, že se práce bude archivovat v knihovně BIVŠ a dále bude zpřístupněna třetím osobám prostřednictvím interní databáze elektronických vysokoškolských prací. V Praze dne Bc. Pavel Vojtěch

3 Poděkování Chtěl bych velice poděkovat svým rodičům za podporu. Především za to, že mě oba po celou dobu studia psychicky a finančně podporovali. Dále bych chtěl poděkovat svému vedoucímu diplomové práce panu Ing. Vladimíru Benešovi, Ph.D. za velmi cenné rady a čas, který mi věnoval při osobních a ových konzultacích. Na závěr bych chtěl poděkovat své přítelkyni za to, že se mnou měla trpělivost během dlouhé doby zpracovávání diplomové práce.

4 Anotace Diplomová práce se v teoretické rovině zaobírá nejpoužívanějšími symetrickými a asymetrickými kryptografickými algoritmy. Charakterizuje je a rozebírá jejich klady, zápory, implementační omezení a studuje kryptoanalytické útoky. Práce se zaměřuje na proudovou šifru RC4, blokovou šifru AES a asymetrickou šifru RSA. V praktické rovině byl navržen a realizován programový kód v jazyce C++ na prolomení šifry RC4 hrubou silou. Z naměřených hodnot byla zpracována statistická studie potvrzující časovou závislost prolomení šifry s ohledem na délku šifrovacího klíče. Klíčová slova Symetrická kryptografie, proudové šifry, RC4, blokové šifry, AES, asymetrická kryptografie, RSA. Abstract Thesis deals with most widely used symmetric and asymmetric cryptographic algorithms. They are characterized and analyzed their pros and cons, implementation constraints and studying cryptanalytic attacks. The thesis focuses on the stream cipher RC4, block cipher AES and asymmetric cipher RSA. In practical terms, has been designed and implemented a program code in C + + to break the cipher RC4 brute force. The measured values were processed by statistical studies confirming the time dependence of breaking ciphers with regard to the length of the encryption key. Keywords Symmetric cryptography, stream ciphers, RC4, block ciphers, AES, asymmetric cryptography, RSA.

5 Obsah Obsah... 5 Úvod... 7 Zvolené metody zpracování Terminologie kryptografie Pojmy kryptografie, kryptoanalýza a kryptologie Definice kryptografie Šifra a klíč Cíle kryptografie Integrita dat Autentizace entit a dat Autorizace Důvěrnost dat Nepopiratelnost Důvěryhodné vyznačení času a monitoring Řízení přístupu Základní kryptografická primitiva Pojmy transformace, kryptogram, zobrazení, kryptografický algoritmus, kryptografický systém Definice kryptografického systému Stupeň zabezpečení kryptografických systémů Nepodmíněná bezpečnost Dokazatelná bezpečnost Výpočetní bezpečnost Kryptoanalytické útoky Útok hrubou silou MITM útok... 17

6 1.8.3 Biclique útok Kryptografické algoritmy Symetrické šifrovací algoritmy Klady symetrických šifrovacích algoritmů Zápory symetrických šifrovacích systémů Proudové symetrické šifry Operace XOR Synchronní proudové šifry Asynchronní proudové šifry Klady proudových šifer Zápory proudových šifer RC Blokové symetrické šifry Definice blokové šifry Difúze, konfúze a náhodné permutace Módy blokových šifer DES AES Asymetrické šifrovací algoritmy Výhody asymetrických šifrovacích algoritmů Nevýhody asymetrických šifrovacích algoritmů RSA Algoritmus RSA Výhody a nevýhody RSA Kryptografie z pohledu svět a ČR Kryptografie v USA Kryptografie v České republice z pohledu legislativy... 67

7 3 Návrh a realizace programového kódu na prolomení šifry RC4 hrubou silou Návrh programového kódu Realizace a spouštění programového kódu Software využitý při realizaci a spouštění programu Hardware využitý při realizaci a spouštění programu Nejdůležitější proměnné, funkce, procedury a další části programového kódu Soubor Prolomeni Soubor main Výstupy z programu Studie vypracovaná na základě výstupních hodnot programového kódu Výstupní hodnoty z programového kódu na prolomení šifry RC4 hrubou silou Časová závislost prolomení šifry s ohledem na délku šifrovacího klíče Závěr Literatura Seznam zkratek Seznam obrázků Seznam tabulek Příloha A... 1 Příloha B... 1 Příloha C... 1 Příloha D... 1 Příloha E... 1 Příloha F... 1 Příloha G... 1

8 Úvod Diplomová práce Nejpoužívanější kryptografické algoritmy provází čtenáře tajuplným světem šifrovaných zpráv a přináší náhled do moderních kryptografických algoritmů a technologií. V dnešní době nepříliš bezpečného internetu by měl přehled o možnostech šifrování komunikace a citlivých dat patřit k základním znalostem každého uživatele, či zájemce o bezpečný provoz dat a aplikací. Kryptografie prochází v období posledních třiceti let velikým vývojem. Podstatně vzrůstá mohutnost jejího záběru. Neustále vznikají nové symetrické a asymetrické šifry, ale ne všechny kryptografické algoritmy jsou opravdu kvalitní a v praxi neprolomitelné. V uplynulých čtyřiceti letech se zásadně změnili oblasti, ve kterých je kryptografie uplatňována. Kromě klasického užití ve vojenství a diplomacii, kde se uplatňují především utajované kryptografické algoritmy (tzv proprietální šifry). Dochází k využití kryptografie veřejností pro komerční účely, především spojené s příchodem internetové komunikace a elektronického bankovnictví. S příchodem WWW kolem roku 1990 dochází ke změně situace. Výkonnost počítačů dospěla do stádia, kde procesy šifrování a dešifrování již nejsou problémem. Aplikace pro elektronický obchod mají přesně ty vlastnosti, které vyžadují užití kryptografie. Ze své podstaty nemá webová síť centrální řízení bezpečnosti: Každý, kdo chce prostřednictvím webové sítě prodávat jakékoli zboží, potřebuje chránit citlivá data. Mnoho zákazníků by přestalo nakupovat prostřednictvím elektronických obchodů, kdyby riskovaly svoje čísla kreditních karet nebo jiné velice citlivá data. Kryptoanalytik (útočník na kryptografický algoritmus) má při prolamování zašifrovaných dat ztíženou roli, pokud zpočátku ani neví, jaký algoritmus byl pro zašifrování použit. Avšak tento moment utajení použité šifry se při současných aplikacích stává nereálným. Především z důvodu komunikace mezi účastníky v rozsáhlých sítích, je zapotřebí aby byly prostředky zajištující ochranu informace během přenosu unifikovány. Takováto unifikace vedla k vytvoření kryptografických norem. 7

9 Kryptografických norem je veliké množství, diplomová práce popisuje a hodnotí jednu z nejpoužívanějších norem současnosti FIPS 197, jedná se o blokovou šifru AES. Práce popisuje kryptografický algoritmus AES z hlediska šifrovacích a dešifrovacích operací. Zaměřuje se na její silné a slabé stránky. Studuje nejúspěšnější kryptoanalytické útoky na šifru AES a hodnotí její využití v blízké budoucnosti. Cílem diplomové práce je v neposlední řadě vytvořit programový kód v jazyce C++, který dokáže prolomit v minulosti nejpoužívanější proudovou šifru RC4 hrubou silou. Každý kryptografický algoritmus lze teoreticky prolomit hrubou silou. Vytvořený program umožní prakticky dokázat, že v závislosti na velikosti šifrovacího klíče, dochází k velikému znesnadnění prolomení šifry hrubou silou a že při delším šifrovacím klíči se prolomení šifry hrubou silou ve využitelné době stává prakticky nereálné. 8

10 Zvolené metody zpracování Výběr metod a technik navázal na dřívější zkušenosti získané během zpracování Bakalářské práce a dalších prací. Volba metod se řídila stanovenými cíli a byla do značné míry podmíněna charakterem studovaných zdrojů. Většina důvěryhodných kryptografických zdrojů, pramenů a literatury je psána v anglickém jazyce. Myšlenkový obsah vědeckých poznatků je původní, citace a odkazy jsou uvedeny v souladu s autorským zákonem. Metoda číslování zdrojů probíhala prostřednictvím Správce pramenů v MS Word, jako norma byla zvolena ISO 690 číselná reference. Obecně se při zpracování Diplomové práce postupovalo od nejznámějšího k méně známému. Autor diplomové práce nejprve prostudoval danou tématiku v českém jazyce (pokud v českém jazyce byla), a když jí porozuměl, našel si zdroj většinou přímo od autora šifry nebo jiného věhlasného kryptoanalytika či kryptografa. Vlastní hodnocení silných, slabých stránek, implementačních omezení a dalších vlastností jednotlivých kryptografických algoritmů je autorem Diplomové práce argumentačně podloženo. Samotnému vývoji programového kódu předcházela analýza problému. Postup vytvoření programového kódu v C++ probíhal od jednoduššího programování ke složitějšímu. Během hledání chyb, testování a ladění programu bylo využíváno krokování. Nejdříve byla vytvořena jednoduchá třída umožňující šifrování a dešifrování algoritmem RC4. Poté byly programovány další funkce včetně samotného prolomení šifry. Programový kód je řádně okomentován v českém jazyce (v některých jiných vývojových prostředích než Visual studio by se mohl objevit problém s diakritikou). Sběr dat z výstupu programového kódu je velice časově náročný, protože prolomení šifry hrubou silou může trvat od desetin vteřiny, po několik dní, až po velice dlouhou dobu (v závislosti na délce šifrovacího klíče). Spuštění programu na delší dobu (několik dní) vyžaduje hardware s dobrým chladícím systémem, aby nedošlo k přehřátí a případnému poškození hardwaru. Práce je ukončena shrnutím dosažených poznatků a uvedením jejich možností využitelnosti v budoucnu. Dosažené výsledky jsou přezkoumané a srozumitelně vyjádřené. Autor potvrzuje tvrzení o dosažení cíle. 9

11 1 Terminologie kryptografie Kryptografie je věda, která se zabývá konstrukcí matematických metod, sloužících k zajišťování bezpečnosti dat. Základní kryptografické metody se nazývají šifrování a dešifrování. Metody šifrování převádí pomocí kryptografického algoritmu (šifry) otevřený text (zpráva, data) na zašifrovaný text (kryptogram). Naopak metody dešifrování převádí zašifrovaný text zpět na otevřený text. Odborný výraz kryptografie pochází původem z řečtiny, kde kryptós znamená skrytý a gráphein znamená psát. Kryptografické technologie se nachází všude kolem nás a využívají je například: desktopy a notebooky na ochranu dat, mobilní telefony, v bankovnictví, platební terminály a systémy platebních karet, satelitní televizní kanály, počítačové sítě virtuální měny, internetové obchodní transakce. 1.1 Pojmy kryptografie, kryptoanalýza a kryptologie Zatím co kryptografie se zabývá návrhem a implementací šifrovacích systémů, tak kryptoanalýza je vědní obor zabývající se metodami získávání obsahu zašifrovaných informací. Kryptografie tvoří spolu s kryptoanalýzou vědní obor nazývající se kryptologie. Můžeme říci, že kryptologie je věda, která se zabývá šifrováním ze všech úhlů pohledu. Velkým rozmach zažívala kryptografie a kryptoanalýza v období druhé světové války. Dříve zatajovaným i opomíjeným vědním oborům věnovaly pozornost vojenské generální štáby. Kryptografie byla obraným štítem, který umožňoval dopravovat zprávy na frontu a do týlu nepřítele. Zatímco kryptoanalýza přinášela informace z nejvyšších míst nepřátelského velení bez jediného výstřelu. (1) 10

12 1.2 Definice kryptografie Přední světový kryptograf, autor řady publikací a člen Centra Aplikovaného Kryptografického Výzkumu (CACR) Alfred Menezes definuje kryptografii jako: Cryptography is the study of mathematical techniques related to aspects of information security such as confidentiality, data integrity, entity authentication, and data origin authentication. (2) Definice v překladu znamená, že: Kryptografie se zabývá studiem matematických metod v souvislosti s aspekty informační bezpečnosti, jako jsou důvěrnost, integrita dat, autentizace subjektu a ověřování původu dat. (2) 1.3 Šifra a klíč Výrazem šifra je označován kryptografický algoritmus, který převádí čitelnou zprávu na její nečitelnou podobu. Cílem šifrování je skrýt obsah zprávy před každým, komu tato zpráva není určena. Dešifrování je opačný postup vzhledem k šifrování, je to převedení šifrového textu zpět do podoby otevřeného textu. (2) Výraz klíč značí tajnou informaci, bez níž nelze zašifrovanou zprávu přečíst. Délkou klíče obvykle rozumíme počet bitů jednotlivého klíče, počet bitů je roven logaritmu se základem dva velikosti množiny klíčů. Tajný klíč nebo také šifrovací klíč, je výraz pro klíč používaný v symetrické kryptografii (viz. kapitola 2.1 Symetrické šifrovací algoritmy), je znám zúčastněným stranám, ale nesmí být znám neoprávněným stranám. Sdílený tajný klíč je klíč sdílený více stranami, obvykle bývá výsledkem dohody na klíči. Veřejný klíč je jedním z dvojice klíčů užívané v asymetrické kryptografii (viz. kapitola 2.2 Asymetrické šifrovací algoritmy), obvykle bývá široce dostupný a je využíván k šifrování zpráv, zatímco soukromý klíč je vlastnictvím pouze jedné entity a nesmí být nikomu jinému sdělován a je využíván k dešifrování zpráv. Autentizovaný klíč je vázán cestou autentizace na svého uživatele, například digitálním certifikátem. (3) 1.4 Cíle kryptografie Základním cílem kryptografie je rozvíjet kryptografické algoritmy. Tyto algoritmy se používají ke skrytí obsahu zprávy přede všemi (kromě vysílající a přijímající strany) a k ověření správnosti zprávy přijímající stranou. 11

13 Kryptografie se ale nezabývá pouze utajením dat, může sloužit také k zajištění následujících cílů: Integrita dat Kryptografie zajišťuje celistvost dat tak, aby se zamezilo úmyslné nebo neúmyslné změně dat neoprávněným uživatelem. Změna dat může být v podobě smazání, pozměnění, substituce stávajících dat jinými daty. Důležitá je schopnost výše zmíněné modifikace detekovat Autentizace entit a dat Autentizace entit znamená identifikaci totožnosti entit, například uživatele, procesu, PC. Autentizace dat znamená prokázání identity dat, například jejich obsah, původ a čas jejich vzniku. Autentizace může probíhat na základě znalosti hesla, binomické informace, vlastnictví například kreditní kary, atd Autorizace Autorizace slouží k tomu, aby konkrétní činnosti mohli vykonávat pouze subjekty k této činnosti určené. Také je to potvrzení původu dat a prokázání, že autorem dat je skutečně ten,o němž si myslíme, že autorem je Důvěrnost dat Důvěrnost dat znamená bezpečnost zprávy. Jedná se o udržení obsahu zprávy v tajnosti před neoprávněnými uživateli Nepopiratelnost Zajišťuje, aby autor nemohl popřít své autorství. Nepopíratelnost může být více typů, například znalosti (subjekt se seznámil s obsahem zprávy), odeslání, přijmu, původu, přenosu, podání (doručovatel zprávu přijal) Důvěryhodné vyznačení času a monitoring Garantuje, že událost nastala v daný čas a garantuje záznam událostí Řízení přístupu Řízení přístupu je proces ověřování subjektů (uživatelů, skupin, počítačů, atd...) pro přístup k objektům pomocí oprávnění a uživatelských práv. (1)(2)(3) 12

14 1.5 Základní kryptografická primitiva Bezpečnostní cíle kryptografie zajišťuje řada kryptografických nástrojů (primitiv), které rozšiřují původně jediný cíl a jediný nástroj. Původním cílem bylo utajení a nástrojem bylyy šifry. Kryptografická primitiva zobrazuje Obrázek 1. Obrázek 1 - Kryptografická primitiva Zdroj: upraveno na základě (2), strana 5 Použití konkrétních kryptografických primitiv můžeme hodnotit podle více kritérií. Kritéria mohou být z hlediska úrovně bezpečnosti, funkcionality, složitosti implementace, činnosti, výkonu a cíle, pro které jsou určeny. Důležitost rozdílných kritérií závisí na konkrétním typu použité aplikace a dostupných zdrojích. Například, pokud existuje požadavek na zvýšenýý výpočetní výkon, lze redukovat velmi vysokou úroveň zabezpečení ve prospěch celkovéhoo lepšího výkonu systému (například užít místo blokových šifer proudové atd...). (1) (2) 13

15 1.6 Pojmy transformace, kryptogram, zobrazení, kryptografický algoritmus, kryptografický systém Obrázek 2 zobrazuje základní schéma kryptografického systému. Na vysílací straně existují dva informační zdroje, těmi jsou zdroj zprávy M a zdroj klíče K. Zdroj klíče vytváří klíč, který je přenášen hypoteticky nezachytitelnými prostředky, například kurýrem, na přijímací straně. Zdroj zprávy vytváří zprávy, které jsou následně zašifrovány. Zašifrované zprávy jsou označovány jako kryptogram (zašifrovaná zpráva) E. {1} Kryptogram je odeslán pomocí možno zachytitelných prostředků, například rádiem. Na konci je kryptogram dešifrován pomocí klíče na původní zprávu.. {2} Obrázek 2 - Základní schéma kryptografického systému Zdroj: upraveno na základě (4) Kryptografická transformace označovaná jako T K je funkce, která definuje zpracování dat pomocí daného konkrétního klíče., Transformace T K, jenž je aplikovaná na zprávu M, vytváří kryptogram E. Kryptogram je text se skrytým údajem. Kryptografické zobrazení je zobrazení, které každému klíči nebo jinému parametru kryptografického systému přiřadí konkrétní kryptografickou transformaci. Kryptografický algoritmus je souhrn všech kryptografických zobrazení a transformací daného kryptografického systému. (1)(4) Vzorce {1} a {2} a příslušné komentáře byly inspirovány zdroji (1) a (4). 14

16 1.6.1 Definice kryptografického systému Kryptografický systém je obecný termín množiny kryptografických primitiv (viz. kapitola 1.5 Základní kryptografická primitiva) používaných k poskytování bezpečnostních informačních služeb. Je to matematická metoda zahrnující celý proces zpracování dat a klíče a všechny jeho okolnosti. (2) Kryptografický systém lze z matematického hlediska definovat jako pětici (M, C, K, E, D), kde: M (Message, zpráva) je konečná množina otevřených zpráv, C (Cipher, šifra) je konečná množina zašifrovaných zpráv, K (Key, klíč) je konečná množina klíčů, E (Encryption, šifrování), D (Decryption, dešifrování) je dvojice zobrazení. E a D každému klíči k K přiřazují transformaci pro zašifrování zpráv E k a transformaci pro dešifrování zpráv D k. Šifrovací funkce E k : M C: m c, dešifrovací funkce D k : C M: c m, přičemž pro každé k K a m M platí. (1) 1.7 Stupeň zabezpečení kryptografických systémů Na šifry je kladen požadavek, aby na základě jakéhokoliv útoku nemohl útočník získat zprávu (otevřený text), kterou přenášejí. Typů kryptoanalytických útoků přibývá a požadavky na ochranu dat se stále zvyšují. Nejspolehlivější míra bezpečnosti je založena na informačním a teoretickém přístupu. Stupeň zabezpečení kryptografických systému můžeme klasifikovat třemi odlišnými způsoby, těmi jsou: Nepodmíněná bezpečnost Nepodmíněné bezpečnosti se někdy také říká absolutní bezpečnost. Otevřený text nelze nikdy jednoznačně určit bez ohledu na zachycení jakéhokoliv množství informace. Kryptografický systém zůstává bezpečný, i když útočník má k dispozici neomezené materiální prostředky k dešifrování, ale nemá k jeho dešifrování dostatek informací. Naprostá většina kryptografických systémů není absolutně bezpečná. (1) 15

17 1.7.2 Dokazatelná bezpečnost Prolomení dokazatelně bezpečného kryptografického systému vyžaduje vyřešení velice těžkého výpočetního problému. Kryptografický systém je dokazatelně bezpečný, je-li jeho složitost velmi vysoká, například faktorizace nebo diskrétní logaritmus. (1) Výpočetní bezpečnost Výpočetně bezpečný kryptografický systém nelze prolomit systematickou analýzou s použitím dostupných zdrojů nebo v rozumné době. Jeho prolomení s použitím nejefektivnějších útoků je natolik složité, že převyšuje zdroje a výpočetní možnosti útočníka. Za výpočetně bezpečné systémy pro vojenské užití se považují kryptografické systémy s výpočetní složitostí minimálně Pro komerční účely se nachází výpočetní složitost v rozmezí 2 80 až (1) 1.8 Kryptoanalytické útoky Typů útoků je v kryptologii nepřeberné množství 1, jedná se o metody získávání obsahu šifrovaných zpráv nebo šifrovacích klíčů. Následující podkapitoly zmiňují útok hrubou silou, MITM útok a Biclique útok. Kapitola Studie kryptoanalytických útoků na AES dále nastiňuje Square (Čtvercový) útok a Impossible Differential (Nemožný diferenciál) útok Útok hrubou silou Útok hrubou silou může být teoreticky použit proti jakémukoliv šifrovacímu algoritmu. Je založen na systematickém prohledávání všech možných šifrovacích klíčů nebo hesel (jedná se o variace s opakováním), dokud nebude nalezen ten správný. Po nalezení správného šifrovacího klíče může kryptoanalytik snadno dešifrovat jakýkoli šifrovací text zašifrovaný tímto klíčem. V nejhorším případě vyžaduje útok prohledání celého vyhledávacího prostoru. Praktickou proveditelnost útoku hrubou silou určuje délka klíče daného kryptografického algoritmu. Delší šifrovací klíče je exponenciálně těžší prolomit, než ty kratší. Kryptografický algoritmus s délkou klíče n bitů může být prolomen v nejhorším případě ve složitosti 2 n a průměrná doba prolomení šifrovacího klíče je poloviční. (5) 1 seznam útoků zde: 16

18 Například útok hrubou silou na 128 bitovou šifru (například AES-128 ) by vyžadoval maximálně = 3, e+38 operací prohledávání, což je při současných technologiích v praktické rovině neproveditelný úkol MITM útok MITM (Meet-in-the-middle) útok byl poprvé aplikován na blokovou šifru (viz. kapitola 2.3 Blokové šifry) s názvem Diffie and Helmann. Základní idea útoku spočívá v tom, že bloková šifra E k může být viděna jako kaskáda, složená ze dvou podšifer : {3} Pro pár otevřeného textu a šifrovaného textu (P, C) kryptoanalytik odhaduje šifrové klíče K 1, K 2 a kontroluje, zda: {4} Pokud podmínka platí, tak útočník může mít správný klíč, jinak musí být hádaný klíč špatný. MITM útok bude pomalejší než útok hrubou silou, pokud sjednocení K 1 a K 2 je větší než K: ( {5} Nicméně útočník může použít TMTO (Time-memory-trade-off) techniku pro předem vypočítanou hodnotu v rámci každého K 1 a uloží je do hašovací tabulky. Potom hádá K 2 a vypočítává a dívá se do předem vypočítané tabulky. Pro blokovou šifru s dobrým rozvrhnutím klíčů (key schedule) je počet rund, které mohou být prolomeny stále omezen. Další informace o MITM obsahuje kapitola Studie kryptoanalytických útoků na AES. (6) Vzorce {3}, {4}, {5} a příslušné komentáře byly inspirovány zdrojem (6) Biclique útok Nechť je pod šifra, která mapuje vnitřní stav S šifrovaného textu C:. spojuje 2 d vnitřních stavů {S j } na 2 d šifrovacího textu {C i } s 2 2d šifrovacího klíče {K[i,j]}: 0,0 0,1 0, 2 1 {6} 2 1,0 2 1,1 2 1, 2 1 Trojice {S j }, {C i } a {K[i,j]} je nazývána d-dimenzionální biclique pokud:, pro všechna, 0,, 2 1. {7} 17

19 Jinými slovy v biclique útoku mapuje klíč K[i,j] vnitřní stav pole S i na šifrovaný text C j a naopak (viz. obrázek 3). (7) Vzorce {6}, {7} a příslušné komentáře byly inspirovány zdrojem (7).. Obrázek 3 - d-dimenzionální biclique Zdroj: (7), strana Postup Biclique kryptoanalýzy Ještě před zahájením samotného postupu je třeba příprava. Podle mohutnosti klíče 2 2d rozdělí útočník oddíly klíčového prostoru do skupin. Pro každé d považuje blokovou šifru jako složení dvou pod šifer, kde vyplývá z. Šifrovací klíč je ve skupině indexován jako součást 2 2 matice K[i,j] (která je uvedená výše). 1. Pro každou skupinu šifrovacích klíčů vytvoří útočník strukturu 2 d šifrovacího textu C i a 2 d vnitřních stavů S j vzhledem ke skupině klíčů {K[i,j]} tak, aby dílčí dešifrování C i klíčem K[i,j] přinášelo S j. Jinými slovy struktura splňuje následující podmínku:, :,, pro š. {8} 2. Útočník dešifruje šifrový text C i tajným klíčem K a obdrží 2 d čistého textu P i. {9} 3. Jestliže je jeden z testovaných klíčů K[i,j] tajný klíč K, potom vnitřní stav S j mapuje čistý text P i. Následně útočník zkontroluje, zda:, :,, pro š. {10} Platný pár navrhuje K[i,j] jako kandidáta na šifrovací klíč. (7) Vzorce {8}, {9}, {10} a příslušné komentáře byly inspirovány zdrojem (7). Další informace o Biclique útoku obsahuje kapitola Studie kryptoanalytických útoků na AES. Nejnovější Biclique útoky jsou schopné teoreticky zaútočit na plný počet rund kryptografického algoritmu AES (viz. kapitola AES) za cenu použití úplné smyčky na všech bitech klíče. 18

20 2 Kryptografické algoritmy V dnešní době neustálého nebezpečí a také hrozby teroristických útoků dochází často k rozepřím mezi dvěma stranami. Na jedné straně stojí zástupci ochrany soukromí, na druhé pak zastánci toho názoru, že by se člověk měl vzdát části svého tajemství ve prospěch celkové bezpečnosti. Existují snahy o omezování poskytování kryptografie z obavy jejího zneužití zločinci a teroristy a naopak je silná snaha veřejnosti o uvolňování kryptografie z důvodu ochrany osobního soukromí. Spojení kryptografie a státní moci vyvolává časté diskuze a obchodní bariéry ve vývozu aktuálních a kvalitních šifrovacích technologií. 2.1 Symetrické šifrovací algoritmy Symetrický šifrovací algoritmus je takový algoritmus, který obsahuje množiny šifrovacích transformací E k a dešifrovacích transformací D k, kde pro každé k K (prostor tajných klíčů) lze z transformace zašifrování E k určit transformaci dešifrování D k a naopak. Díky této symetrii se algoritmy nazývají symetrické. (8) Symetrický kryptografický systém lze popsat matematickou rovnicí (popis proměnných viz. kapitola Definice kryptografického systému): {11} Symetrické šifrovací algoritmy využívají pro šifrování a dešifrování tentýž tajný klíč. Všechny klíče musí zůstat skryty, aby bylo zajištěno, že neoprávněné strany nemůžou použít tajný klíč k dešifrování tajných zpráv. Tudíž si musí odesílatel a příjemce mezi sebou vyměnit klíč nějakým zabezpečeným kanálem (viz. systém přenosu tajných klíčů na obrázku 3). Tajný klíč by měl být náhodný a měl by být často měněn. Délky klíčů jsou různé, v závislosti na použitém kryptografickém algoritmu. Čím delší je tajný klíč, tím bývá obvykle větší zabezpečení před prolomením. (3) Symetrické šifrovací algoritmy se dále dělí na proudové šifry (popsané v kapitole 2.2) a blokové šifry (popsané v kapitole 2.3). Základní schéma symetrického šifrovacího systému znázorňuje obrázek 4. Vzorec {11} a příslušné komentáře byly inspirovány zdrojem (8). 19

21 Obrázek 4 - Základní schéma symetrického šifrovacího systému Zdroj: vytvořeno na základě (8) Klady symetrických šifrovacích algoritmů Poskytují autentizaci, dokud zůstane šifrový klíč utajen. Umožňují šifrování a dešifrování se stejným šifrovým klíčem. Hlavní výhodou symetrického šifrování je, že je obecně velmi rychlé a dá se použít pro šifrování velkého objemu dat. Uživatel, který šifru zašifroval, může tuto šifru i dešifrovat (na rozdíl od asymetrických šifrovacích systémů). V případě, že chceme zašifrovat vlastní data, je nejlepší užít symetrické šifry, protože není třeba vytvářet veřejný a soukromí klíč jako v případě asymetrických šifer. Symetrické šifry mají menší nároky na systémové prostředky (hardware), než asymetrické šifry Zápory symetrických šifrovacích systémů Veliká nevýhoda symetrických šifrovacích algoritmů spočívá vtom, že odesílatel musí nějakým způsobem distribuovat tajný klíč příjemci. Odesílatel musí zaručit, že tajný klíč nebude zachycen neautorizovanou osobou. Problém se ještě zvyšuje v systémech s velkým počtem uživatelů. Přenosem, generováním, zálohováním a destrukcí klíčů (jakmile klíč jednou splní svoji funkci, měl by být zničen, aby nemohl mít žádnou cenu pro narušitele) se zabývá takzvané klíčové hospodářství. (3) 20

22 Pokud dojde k odhalení nebo odcizení tajného šifrového klíče, narušitel může data okamžitě dešifrovat a může produkovat falešné zprávy, které vydává za odesílatele. Částečným řešením může být častá změna šifrového klíče, ale tato metoda nemusí ve většině situací fungovat. Bezpečná distribuce (přenos) klíčů bývá často problémem, zvláště v případě dochází-li ke změně klíče příliš často. Klíče musí být přenášeny velice obezřetně, protože umožňují přístup ke všem datům zašifrovaných těmito klíči. Pro aplikace probíhající po internetové síti může být toto velmi složitý úkol. Jedním z řešení tohoto problému může být distribuovat šifrové klíče osobně ( tváří v tvář ), ale tento způsob není efektivní, zvláště ve větších skupinách. Dalším z řešení může být využití kurýrních služeb. V neposlední řadě může být distribuce šifrového klíče rozdělena na více přenosů, tím že bude klíč přenášen po částech. Například jedna část bude odeslána em a druhá část bude odeslána hlasovou zprávou, ale i tento způsob může být náchylný na útoky. V případě, že by distribuce klíče probíhala prostřednictvím symetrické kryptografie v PC síti a tato síť měla n navzájem propojených uživatelů, bylo by třeba užít různých šifrových klíčů, které by si uživatelé mezi sebou vyměňovali. Pokud by se například n = 500, bylo by nutno uchovávat v systému různých šifrových klíčů. Vzhledem k obnově klíčů za nové by tato situace představovala prakticky špatně realizovanou situaci. Proto je výhodnější užívat pro distribuci klíčů asymetrické kryptografické algoritmy (viz. kapitola 2.4 Asymetrické šifrovací algoritmy). (9) Symetrické šifrové klíče bývají předmětem útoků hrubou silou, kdy jsou systematicky prohledány všechny klíče v klíčovém prostoru. Řešením může být například využití asymetrického šifrování nebo hybridních šifer. 2.2 Proudové symetrické šifry Proudové šifry jsou důležitou kategorií šifrovacích algoritmů, zpracovávají vstupní otevřený text po znacích. Zpracování probíhá bit po bitu nebo bajt po bajtu v jednom časovém momentu, kde je vstupní otevřený text kombinován většinou pomocí funkce XOR s pseudonáhodným proudem bitů vytvořeným pomocí tajného klíče a šifrovacího algoritmu. (2) 21

23 Základní popis proudových šifer: Otevřený text je zpracováván bajt po bajtu P 1, P 2, P 3,..., P n. Klíč K je využíván pro generování sekvence pseudonáhodného proudu bajtů K 1, K 2, K 3,..., K n. Šifrový text je C 1, C 2, C 3,..., C n, kde P K. Díky symetrii můžeme získat otevřený text P K. Variace proudových šifer se liší především způsobem, jakým je generován pseudonáhodný proud znaků. (2) Mezi proudové šifry patří například RC4, A5, SEAL, E0, VEST, FISH, CryptMT, ISAAC Operace XOR Název operace XOR pochází z anglického exclusive OR, tedy výlučně nebo. Pravdivostní tabulku XOR zobrazuje tabulka 1. y a XOR b a b {12} Synchronní proudové šifry a b y Tabulka 1 - Pravdivostní tabulka XOR Zdroj: Autor Diplomové práce Synchronní proudová šifra je taková šifra, kde je proud pseudonáhodných čísel nezávisle generován na otevřeném nebo šifrovém textu. K šifrování dochází během kombinace pseudonáhodného proudu a čistého textu (zprávy). Příjemce a odesílatel musí být přesně synchronizováni, protože výpadek jednoho znaku šifrového textu při dešifrování naruší veškerý následující otevřený text, který může být obnoven prostřednictvím technik pro re-synchronizaci. Bezpečné použití synchronní proudové šifry vyžaduje, aby nikdy nebyl použit stejný šifrovací klíč dvakrát. (8) 22

24 Proces šifrování synchronní proudové šifry lze popsat následujícími rovnicemi: {13} {14} {15} Kde: je počáteční stav, který je stanoven klíčem k, f je další stav funkce, g je funkce, která vytváří pseudonáhodný proud, h je výstupní funkce, která kombinuje pseudonáhodný proud a čistý text šifrový text. Šifrovací a dešifrovací procesy synchronní proudové šifry znázorňuje obrázek 5., produkuje Vzorce {13}, {14}, {15} a příslušné komentáře byly inspirovány zdrojem (2) Asynchronní proudové šifry Asynchronní proudové šifry se také nazývají samo-synchronizující se šifry, protože u nich dochází v krátké době k synchronizaci a správné dešifraci otevřeného textu. Proud textu. Proces šifrování asynchronní proudové šifry lze popsat následující rovnicí: h je výstupní funkce, f je další stav funkce, k je šifrový klíč, c je šifrový text. Obrázek 5 - Procesy šifrování a dešifrování synchronní proudové šifry Zdroj: upraveno na základě (2) strana 193 pseudonáhodných znaků je generovánn pomocí klíče k a n předcházejících znaků šifrovéhoo 23, kde: {16}

25 Výpadek některého znaku šifrového textu se projeví celkem na n sousledných znacích otevřeného textu, ale další otevřené znaky budou již správně dešifrovány. Z výše uvedeného vzorce vyplývá, že k synchronizaci dojde hned, jakmile se přijme souvislá posloupnost n+1 správných znaků šifrového textu. Šifrovací a dešifrovací procesy asynchronní proudové šifry znázorňuje obrázek 6. (8) Obrázek 6 - Procesy šifrování a dešifrování asynchronní proudové šifry Zdroj: Vzorec {16} a příslušné komentáře byly inspirovány zdrojem (8) Klady proudových šifer Proudové šifry jsou stále v praxi používány a jsou stále aktuálním tématem problematiky ochrany dat. Jejich klady spočívají především v malém času potřebném pro zpracování, v rychlosti a relativní jednoduchosti hardwarové implementace. Využití proudových šifer je nejlepší tam, kde je množství dat kontinuální (souvislé), například v počítačových sítích. Výhoda proudových šifer oproti blokovým šifrám je v malé propagaci chyby. Vzniklá chyba na komunikačním kanálu v jednom znaku šifrového textu se projeví u proudových šifer pouze v jednom odpovídajícím znaku otevřeného textu, u blokové šifry má tato chyba vliv na celý blok znaků Zápory proudových šifer Proudové šifry jsou náchylnější k útoku než blokové šifry. Bezpečné použití synchronní proudové šifry vyžaduje, aby nikdy nebyl použit stejný šifrovací klíč dvakrát. Je možné dešifrovat libovolný bajt, který je třeba uprostřed zprávy. Na proudové šifry lze obecně lépe útočit než na blokové šifry, stačí změnit jediný bajt, pokud známe formát zprávy. Proudové šifry neposkytují ochranu datové integrity nebo autentizace, zatímco blokové šifry ano (záleží na módu, viz. kapitola Módy blokových šifer). 24

26 2.2.6 RC4 RC4 je jednoduchá, rychlá, symetrická, proudová, synchronní, silná šifra, která se v minulosti stala jednou z nejpoužívanějších šifer v internetové a komerční kryptografii. Byla vytvořena v roce 1987 americkou společností RSA Security. Na návrhu šifry se podílel Ron Rivest, kterým je jedním ze zakladatelů společnosti RSA (Rivest Shamir Adleman). RC znamená v překladu Riverst Cypher. Šifra RC4 je někdy také označován, jako Ron Code 4. (10) Fakta o RC4: variabilní délka klíče, proudová šifra orientovaná na šifrování po bajtech, utajovaná do roku 1994, složená převážně ze dvou algoritmů KSA a RPGA, využívána převážně pro webové a bezdrátové komunikace Rozluštění RC4 RC4 byla rozkryta anonymním kryptoanalytikem, který zaslal její zdrojový kód v jazyce C (uveden v Příloze A) do elektronické schránky skupiny CypherPunks a odtud se začal volně šířit volně internetem. Získání zdrojového kódu šifry znehodnotilo obchodní tajemství společnosti, ale šifra byla dál chráněna obchodním názvem RC4. Proto vznikly alternativní názvy, jako ARCFOUR nebo ARC4. (11) Předtím, než byl kód šifry RC4 rozkryt a veřejně rozšířen, patřila šifra do skupiny takzvaných proprietárních algoritmů. Na světě existuje velký počet proprietárních šifrovacích algoritmů, o kterých nemáme ani tušení. Jsou to utajované šifry používané například v bankovnictví, ozbrojených silách, v diplomacii atd... Jejich utajení je bezpečnostní opatření, které znesnadňuje jejich prolomení. To byl důvod, proč byla RC4 utajená. Jejím úkolem bylo chránit citlivá data. (11) Využití RC4 Šifra je určena na rychlé šifrování velkého objemu dat. Příklad aplikací, technologií a protokolů, kde se RC4 šifra používala: WEP, WPA, RDP, PDF, SSL, TLS, Oracle SQL, Microsoft Office, Skype, BitTorrent, Kerberos a mnoho dalších. Dnes se již doporučuje šifru neužívat, protože byla mnohokrát prolomena. Například umožňuje vyzkoušet šifrování a dešifrování pomocí RC4. 25

27 Popis algoritmu RC4 Základní princip symetrického proudového šifrování popisují kapitoly a RC4 se skládá převážně ze dvou algoritmů, těmito algoritmy jsou KSA (Key Scheduling Algorithm) a PRGA (Pseudo Random Generation Algorithm). Algoritmus KSA inicializuje permutace pole S. Permutace množiny, která obsahuje n-prvků, je jedno z možných uspořádání těchto prvků, přičemž výsledná uspořádaná n-tice má stejný počet prvků jako původní množina. Klíčový proud je nezávislý na otevřeném textu. Klíč K je složen ze slova volitelné délky, kde každé slovo má n bitů, nejčastěji využívaná hodnota je n = 8, z toho vyplývá, že v algoritmu uvedeném níže se 2 n =256. Pracujeme se dvěma čítači i a j, které se inicializují na 0 (i = 0, j = 0). Funkce mod znamená modulo dělení. Pseudokód KSA: for i from 0 to 2 n - 1 K[i] = k[i mod l] for i from 0 to 2 n - 1 Set S[i] = i Set j = 0 for i from 0 to 2 n - 1 Set j = (j + S[i] + K[i]) mod 2 n Swap S[i] and S[j] 1. Šifrovací klíč K opakujeme tolikrát za sebou, až naplníme pole K[i] 256 bajty. 2. Zvolíme identickou počáteční permutaci S[i]. 3. Nastavíme čítač j na V každém kroku se vyměňují na pozicích i a j prvky permutace S. Index i je průběžný, zatímco j závisí na klíči. Aby se eliminovalo opakování v posloupnosti K, index j závisí nejen na K, ale na všech průběžných hodnotách j, S a K. Díky tomu je závislost na klíči velmi složitá, náhodná a periodičnost je odstraněna. Algoritmus RPGA následuje po algoritmu KSA a v každém kroku produkuje jeden bajt pseudonáhodného proudu. 26

28 Pseudokód algoritmu RPGA: Set i = 0 and j = 0 while //dokud je požadován keystream Set i = (i + 1) mod 2 n Set j = (j + S[i]) mod 2 n Swap S[i] and S[j]. K = S[ [(S[i]+S[j]) mod 2 n ] Output K Je prováděno mnoho iterací, generát rátor upravuje stav a výstupy bajtů v pseudonáhodném proudu bajtů. V každé iteraci generátor k přírůstku i přidává hodnotu S, na kterou ukazuje i a j a vymění hodnoty S[i] a S [j], každý prvek S se tak vymění s jiným prvkem alespoň jednou za 256 iterací. Výsledným bajtem iterace je další slovo pseudonáhodného proudu bajtů (v překladu keystream) K. Obrázek 7 zobrazuje smyčku generátoru RPGA graficky. Výstupní pseudonáhodný proud bajtů K tvoří hodnoty S[i] + S[j],, na které se aplikuje modulo dělení 2 n (2 8 =256). Obrázek 7 - Princip RPGA Zdroj: upload.wikimedia.org/wikipedia/commons/e/e9/rc4.svg Šifrový text C vznikne aplikováním operace XOR na pseudonáhodný proud K a otevřený text P: (viz. Kapitola Proudové symetrické šifry). (9) (10) (11) 27

29 Klady RC4 Kladem proudové šifry je především rychlost zpracování, která z ní dělá šifru využitelnou u mnoha komerčních produktů. Proudová šifra RC4 je řádově desetkrát rychlejší než bloková šifra DES. RC4 kóduje jen tolik bytů, kolik jich má otevřený text, tudíž se neprodlužuje délka dat. Je to zajímavá, výjimečná šifra, která je jedna z mála velice rozšířitelných proprietálních šifer, zůstávala 7 let tajná. Vymyká se obecně oblíbenému omylu, že proprietální šifry jsou slabé. (11)(9) Zápory RC4 Některé aplikace využívající proudovou šifru RC4 mohou být napadnutelné kvůli nedostatkům v klíčových nastaveních. Klíč může být teoreticky dlouhý 256 bajtů, ale ve skutečnosti nemůže být využit zcela, klíč poskytuje maximálně 455 bitů (57 bajtů) entropie, to je způsobeno prácí s klíčovým polem. (12) Výsledkem výzkumu vytváření pseudonáhodného proudového klíče bylo zjištění, že některé bity tajného klíče mají větší vliv na několik prvních bytů výsledného proudového klíče než ostatní. Tyto klíče jsou nazývány slabými. Slabých klíčů lze využít při útoku na několik prvních bajtů šifry, proto by první bajty šifrovacího klíče měly být z důvodu bezpečnosti vynechány. Přestože šifra RC4 má slabiny, lze ji využívat s jejich vědomím a drobnými úpravami, je třeba se ujistit, že všechny klíče jsou jedinečné a ideálně nesouvisející, například mohou být klíče generované pomocí hašovací funkce. (12) 2.3 Blokové symetrické šifry Blokové šifry jsou třídou symetrických šifrovacích systémů, které zpracovávají otevřený a šifrový text po blokách pevné délky (64 nebo 128 bitů). Šifry tedy obvykle definují vzájemně jednoznačné zobrazení z množiny 64bitových čísel na množinu 64bitových čísel. Symetrické blokové šifry jsou významnými a důležitými prvky v mnoha kryptografických systémech, využívají se nejen pro zabezpečení důvěrnosti dat šifrováním, ale i pro konstrukci jiných kryptografických prvků (například hašovacích funkcí, MAC, pseudonáhodných generátorů, atd.). Dále mohou sloužit jako ústřední součást metod pro ověřování zpráv, jako části ověřovací (autentizačních) protokolů, mechanizmů datové integrity nebo digitálních podpisových schémat. Mezi blokové šifry patří například DES, AES, FEAL, IDEA, SAFER, RC5,BLOWFISH, KASUMI, LOKI89, XTEA. (2) (3) 28

30 Blokové šifry využívají principy algoritmů tzv Feistelova typu, který umožňuje postupnými aplikacemi relativně jednoduchých transformací na bázi nelineárních posuvných registrů vytvořit složitý kryptografický algoritmus. Během návrhu blokových šifer je třeba splnit současně několik častokrát protichůdných požadavků. Základní požadavky jsou bezpečnost, výkon a paměťové nároky. Bezpečnost je nedůležitější požadavek, šifrovací systém musí být odolný proti všem známým útokům. Z hlediska výkonu je potřeba, aby šifrování a dešifrování dat bylo na zvolené implementační platformě co nejefektivnější. Odolnost šifrovacího algoritmu můžeme zlepšovat navyšováním vrstev zpracování otevřeného textu, ale na druhou stranu méně transformací otevřeného textu urychlí proces šifrování. Paměťové nároky kryptografického systému by měli být co nejmenší. (13) Definice blokové šifry Nechť A je abeceda q symbolů, t N a M = C je množina všech řetězců délky t znaků nad abecedou A, kde: M (Message) je konečná množina otevřených zpráv, C (Cipher) je konečná množina zašifrovaných zpráv, K (Key) je konečná množina klíčů, E (Encryption), D (Decryption) je dvojice zobrazení. Bloková šifra je kryptografický systém (M, C, K, E, D), kde E a D jsou zobrazení, definující pro každé k K transformaci zašifrování E K a dešifrování D K. Šifrování bloků otevřeného textu m(1), m(2), m(3),..., m(n), kde m(i) M pro každé i N probíhá podle vztahu:, pro každé i N {17} Dešifrování podle vztahu:, pro každé i N. {18} Všechny bloky otevřeného textu jsou šifrovány toutéž transformací E K a všechny bloky šifrového textu jsou dešifrovány toutéž transformací D K. (8) Vzorce {17}, {18} a příslušné komentáře byly inspirovány zdrojem (8). 29

31 2.3.2 Difúze, konfúze a náhodné permutace Historické šifry se většinou dají luštit přímo ze šifrového textu. Důvod je ten, že šifrový text u nich příliš dobře a přímočaře odráží statistické charakteristiky otevřeného textu. Claude E. Shannon navrhl metody difúzi a konfúzi, které tomu zabraňují. Vlastnosti konfúze a difúze by měly zabránit tomu, aby ze znalosti otevřeného i šifrovacího textu mohl být odvozen použitý šifrovací klíč. Při návrhu šifry je takovýto požadavek velice složitý. (8) Difúze Difúze si klade za cíl rozprostřít statistické charakteristiky otevřeného textu do delších úseků šifrového textu. Jestliže jeden znak otevřeného textu ovlivňuje více znaků šifrového textu, potom se závislosti jazyka mohou projevit až v delších úsecích šifrového textu. Čím větší je difúze otevřeného textu do šifrového textu, tím je obtížnější tyto závislosti zkoumat. Ideálně každý bit otevřeného textu ovlivňuje každý bit šifrového textu. (8) Konfúze Konfúze je metoda, jejímž cílem je učinit vztah mezi statistickými vlastnostmi šifrového textu a klíčem co nejsložitější a zahrnující co největší části šifrového textu a klíče. Konfúze zajišťuje difúzi klíče do šifrového textu tak, aby tato difúze byla složitá. (8) Náhodné permutace Kvalitní n-bitové blokové šifry se jeví jako náhodné permutace na množině n-bitových bloků. Blokové šifry by měly mít takovou vlastnost difúze a konfúze, že bez znalosti tajného šifrovacího klíče by měly být nerozeznatelné od náhodných permutací na množině {0,1} n (Obrázek 8). Obrázek 8 - Náhodné permutace Zdroj: upraveno na základě (8) Tato vlastnost způsobuje, že znalost jakékoli dvojice otevřeného a šifrovacího textu nepomáhá k odvození dalších možných šifrových textů pro blízké otevřené texty nebo naopak možných šifrových textů pro blízké otevřené texty. (8) 30

32 2.3.3 Módy blokových šifer Mody blokových šifer vznikly, protože požadavky na blokové šifry jsou takové, že je potřeba šifrovat nejen celé n-bitové bloky, ale obecně jakoukoliv posloupnost bitů. Blokové šifry se používají v kryptografických systémech různými způsoby. Tyto způsoby se projeví v případě, že má otevřený text více než jeden blok. Způsobům použití se říká také módy použití blokových šifer, mezi módy patří ECB, CBC, CFB, OFB, CTR a MAC ECB ECB (Electronic Codebook) je základní mód přímočarého použití blokové šifry. Šifry v tomto módu jsou bezpečné především proto, že jejich tabulka je velmi velká. U moderních šifer s délkou bloku 128 bitů má šifrovací tabulka položek. Z důvodu této velikosti nelze tabulku celou vypočítat ani uložit. Ukládá se pouze algoritmus výpočtu, nikoli tabulka této transformace. (14) Bloky otevřeného textu jsou šifrovány nezávisle na sobě. Pokud není integrita dat zabezpečena jiným způsobem, může nepřátelský kryptoanalytik některé bloky dat vynechat, vkládat, změnit jejich pořadí, atd. Toto ilustruje často opomíjený fakt, že integrita otevřeného textu se šifrováním nezajistí. Algoritmus ECB módu: Vstupy: k-bitový klíč K; n-bitový otevřený text bloků x 1, x 2,..., x t. Shrnutí: produkce bloků šifrovaného textu c 1, c 2,..., c t ; dešifrování zpátky na čistý text. Šifrování: 1,. Dešifrování: 1,. Šifrování v ECB módu zobrazuje následující obrázek 9. (2) Obrázek 9 - ECB mód n-bitových blokových šifer Zdroj: upraveno na základě (2), strana

33 Nevýhodou ECB je, že stejné bloky otevřeného textu mají vždy stejný šifrový obraz. Několik shodných bloků šifrového textu může odkrývat hodnotu otevřeného textu. Mód ECB nezajišťuje integritu otevřeného textu, proto se tímto módem nedoporučuje šifrovat velké objemy dat. (13) CBC CBC (Cipher Block Chaining) mód neobsahuje některé bezpečnostní nedostatky ECB módu. V současnosti je jedním z nejpoužívanějších módů blokových šifer. Jedná se o řetězovou závislost na otevřeném a šifrovém textu. Každý blok otevřeného textu se nejprve modifikuje předchozím blokem šifrového textu, až teprve poté dochází k šifrování. Protože šifrový text je náhodný, stává se také modifikovaný otevřený text náhodným. Správné dešifrování bloku otevřeného textu vyžaduje správný předchozí blok šifrového textu. (14) CBC mód využívá inicializační vektor IV (n-bitový řetězec). Inicializační vektor IV je generován a přenáší jako první (nultý) blok šifrového textu. Důležité je zabezpečit jeho integritu.(13) Algoritmus CBC módu (obrázek 10): Vstupy: k-bitový klíč K; n-bitový inicializační vektor IV; n-bitový otevřený text bloků x 1, x 2,..., x t. Shrnutí: produkce bloků šifrovaného textu c 1, c 2,..., c t ; dešifrování zpátky na čistý text. Šifrování:, 1,. Dešifrování:, 1,. (2) Obrázek 10 - CBC mód n-bitových blokových šifer Zdroj: upraveno na základě (2), strana

34 Další vlastností CBC je samo synchronizace (stejný princip jako v kapitole Asynchronní proudové šifry). Pokud ztráta celého bloku šifrového textu zapříčiní chybné dešifrování následujícího bloku, tak další bloky již jsou dešifrované správně. Záporem z hlediska difúze a zároveň kladem z hlediska samo synchronizace je, že závislost běžného šifrového bloku je pouze na předchozí šifrový blok. (13) CFB Zatím co režim CBC zpracovává otevřený text n-bitů najednou (s použitím n-bitové blokové šifry), některé aplikace vyžadují, aby r-bity otevřeného textu byly šifrovány a předávány bez zpoždění pro některé fixní r < n (nejčastěji r = 1 nebo r = 8). V tomto případě se využívá mód CFB (Cipher Feedback). Algoritmus CFB módu (ilustrovaný na obrázku 11): Vstupy: k-bitový klíč K; n-bitový inicializační vektor IV; r-bitový otevřený text bloků x 1,x 2, x 3,..., x u (1 r n). Shrnutí: produkce r-bitových bloků šifrovaného textu c 1, c 2,..., c u ; dešifrování zpátky na čistý text. Šifrování: (I j je vstupní hodnota posuvného registru), pro 1 : 1. O E I výpočet výstupu blokové šifry. 2. r-bity nejvíce vlevo O j (Předpokládáme, že bit nejvíce vlevo je označen jako bit 1). 3. (přenos r-bitů šifrového bloku c j ) (Posun c j na pravý konec posuvného registru). Dešifrování:, 1, po obdržení c j :, kde t j, O j a I j jsou počítány podle výše uvedených bodů. (2) Mezi důležité vlastnosti CFB patří samo synchronizace na úrovni bloků (chybný blok zaviní výpadek celého bloku. CFB využívá pouze transformaci E K (transformace D K není vůbec použita). Existuje řetězová závislost na otevřeném a šifrovém textu. Ke správnému dešifrování je nutný předposlední a poslední blok šifrového textu. Mód CFB převádí blokovou šifru na synchronní proudovou šifru. (14) 33

35 OFB Módy OFB (Output Feedback) a CFB (zmíněný výše) využívají blokové šifry k vygenerování hesla Používají náhodný inicializační vektor IV, který nastavuje odpovídajícíí konečný automatu do náhodné polohy. Konečný automat produkuje posloupnost hesla. První blok hesla se získá zašifrováním vektoru IV. Konečný automat posílá vzniklé heslo na vstup blokové šifry a jeho zašifrováním je produkován následující blok hesla. (14) Inicializační vektor IV nemusí být tajný, ale musí být změněn, pokud je znovu použít stejný klíč K. Jinak můžeme dostat identické výsledky pseudonáhodného proudu bitů s aplikování operace XOR kryptoanalytikem. Algoritmus OFB módu (ilustrovaný na obrázku 12): OFB má vlastnosti synchronní proudové šifry (kapitola 2.2.2), protože heslo je generováno o zcela autonomně bez vlivu otevřenéhoo a šifrovéhoo textu. Samo-synchronizaci umožňují stejně jako v případě CBC a CFB dva za sebou jdoucí správné bloky šifrovéhoo textu. (2) Vstupy: k-bitový klíč K; n-bitový inicializační vektor IV; r-bitový otevřený text bloků x 1, x 2, x 3,..., x u (1 r n). Shrnutí: produkce r-bitových bloků šifrovaného textu c 1, c 2,..., c u ; dešifrování zpátky na čistý text. Obrázek 11 - CFB mód n-bitových blokových šifer Zdroj: upraveno na základě (2), strana 229, které aplikuje operaci XOR (binárně načítá) na otevřený text ( na odpovídající šifrový text, může sloužit k zjištění klíče nepřátelským ). 34

36 Šifrování:, Dešifrování: je označen jako bit 1)., vzhledem k bloku čistého textu: výpočet výstupu blokové šifry. r-bity nejvíce vlevo O j (Předpokládáme, (přenos r-bitů šifrového bloku c j ). (Aktualizace vstupu blokové šifry pro další blok). po obdržení c j :, kde t j, O j a I j jsou počítány, podle výše uvedených bodů. že bit nejvíce vlevo (2) Obrázek 12 - OFB mód n-bitových blokových šifer Zdroj: upraveno na základě (2), strana DES Během sedmdesátých let došlo k velikému rozvoji elektronických bankovních systémů, exekutiva Spojených států amerických dospěla k závěru, že je třeba zajistit standard pro bezpečný transfer dat. Zatím to účelem byl vytvořen algoritmus DES (Data Encryptionn Standard) a ve Spojených státech amerických byl zvolen za standard FIPS Tento standard se stal v minulosti nejpoužívanějším šifrovacím algoritmem na světě. Byl součástí mnoha průmyslových, internetových a bankovních standardů (například ANSI standardd X9.32). 35

37 Jedná se o blokovou šifru, kde je otevřený text zpracováván po blokách délky 64 bitů. Algoritmus DES byl v minulosti různě modifikován. Došlo například ke vzniku algoritmu Triple DES, kdy je algoritmus DES aplikován trojnásobně. V současnosti (rok 2014) je již šifra považována za prolomitelnou a nespolehlivou. Roku 2002 nahradil DES kryptografický standard AES. (8) (9) AES Kryptografický algoritmus AES (Advanced Encryption Standard) schválený standardem FIPS 197 (Federal Information Processing Standards) může být použit pro ochranu elektronický dat. Algoritmus AES je symetrická bloková šifra, která dokáže zpracovat datové bloky o délce 128 bitů a je schopna užívat šifrovací klíče délky 128, 192 a 256 bitů. Prognóza je taková, že 128 bitů zaručuje utajení minimálně na několik desítek let dopředu. (15) Norma FIPS PUB 197 může být přijata a používána nevládními organizacemi a její použití se v současnosti (rok 2014) doporučuje při poskytování požadované bezpečnostní jistoty pro komerční a soukromé organizace. Algoritmus AES uveden ve zmíněné normě muže být implementován v softwaru, firmwaru, hardwaru nebo v jakékoli jejich kombinaci. Konkrétní implementace závisí na faktorech jako je například aplikace, použité technologie, životní prostředí, atd... Implementace algoritmu AES byly testovány a ověřeny v akreditovaných laboratořích.(15) Algoritmus AES se používá ve spojení s normou FIPS schválenou federálním úřadem NIST (National Institute of Standards and Technology), který doporučuje její provoz. Identifikátory objektů a všechny související parametry pro AES používané v těchto režimech jsou k dispozici v registru objektů počítačové bezpečnosti CSOR 2 (Computer Security Objects Register).(15) Výběrové řízení AES Úřad Spojených státu amerických NIST (National Institute of Standards and Technology) vyhlásil plně veřejné a otevřené výběrové řízení, které si kladlo za cíl výběr blokového šifrovacího algoritmu. Tento kryptografický algoritmus nahradil DES a slouží k ochraně citlivých informací. V roce 1998 NIST oznámil přijetí patnácti kandidátů a požádal o pomoc s analýzou komunitu pro kryptografický výzkum. Analýza zahrnovala počáteční posouzení bezpečnosti, účinnosti a vlastnosti každého algoritmu. Po přezkoumání výsledků 2 CSOR (Computer Security Objects Register) se nachází zde: 36

38 tohoto předběžného výzkumu byly vybrány jako finalisti šifry MARS, RC6, Rijndael, Serpent a Twofish. Po přezkoumání další veřejné analýzy se NIST rozhodla navrhnout Rijndael jako Advanced Encryption Standard (AES) 3. Od se AES stává federálním standardem Spojených státu amerických jako FIPS PUB 197. (16) Hodnotící kritéria výběrového řízení AES se týkají 1. Bezpečnosti: Skutečná bezpečnost ve srovnání s ostatními hodnocenými algoritmy. Výstupní šifrový text musí být nerozeznatelný od náhodné permutace stejného vstupního bloku. Algoritmus musí být podložen dostatečnými matematickými základy. Bezpečnostní otázky od odborné veřejnosti. Praktická demonstrace odolnosti proti kryptografickým útokům. 2. Ceny Cenově dostupný. Licenční požadavky se musí týkat jak softwarové, tak hardwarové implementace. Rychlost provádění algoritmů pod různými platformami. Paměťové nároky jak u hardwarové, tak softwarové implemetace. 3. Implementace Bezpečná a efektivní implementace v rozsáhlém spektru vývojových prostředí a aplikací. Například bankomaty, satelitní komunikace, počítačové sítě. Umožnění práce s delšími klíči ( bitů). Možnost implementace generátorů MAC (Message Authentication Code) a PRN (Pseudo-Random Number). Jednoduchost návrhu a implementace. (16) 3 Výsledky výzkumu a zdůvodnění výběru šifry Rijndael jako AES, podrobně popisuje zpráva uvedená zde 37

39 Vítězný algoritmus Rijndael je pojmenován po svých tvůrcích, Belgičanech Vincentu Rijmenovi a Joan Daemenovi z COSIC laboratoře (Computer Security and Industrial Cryptography) na KU Leuven, v Belgii. AES není přesné kopie Rindaelu, protože Rijndael podporuje větší rozsah délky bloku, délky klíčů a má jinak pojmenované některé metody. (9) Matematický základ AES Vstupní, výstupní bitové sekvence a šifrovací klíč jsou zpracovávány jako pole bajtů, které vznikají rozdělením těchto sekvencí do skupin po osmi sousedních bitech. Vstup, výstup nebo šifrovací klíč je označen jako a, bajty v poli jsou označeny a n nebo a[ [n], kde n je v jednom z následujících rozsahů: Délka klíče= 128 bitů, 0 n < 16; Délka bloku = 128 bitů, 0 n < 16; Délka klíče= 192 bitů, 0 n < 24; Délka klíče= 256 bitů, 0 n < 32. Vnitřní operacee algoritmu AES jsou prováděny ve dvourozměrném poli bajtů nazývaném Stav. Vstup je tvořen polem bajtů, které jsou zkopírovány do pole Stav. Šifrovací operace jsou prováděny v omto poli a jejich konečné hodnota je poté zkopírována do výstupního pole bajtů. Tento proces je zobrazen na obrázku 13. (15) (17) Obrázek 13 - Vstup, výstup, pole Stav Zdroj: upraveno na základě (15), strana 13 38

40 Pole GF (2 8 ) Konečné těleso GF (p k ) je označováno jako tzv Galoisovo těleso, kde p označuje prvočíslo a k, značí kladné přirozené číslo. Většina operací šifry AES je definována na úrovni bajtů. Tyto bajty představují prvky konečného pole GF (2 8 ). Prvky konečného pole GF (2 8 ) mohou být zastoupeny několika různými způsoby. Pro každý primární výkon je jediné konečné pole, tedy všechny reprezentace GF (2 8 ) jsou izomorfní (vzájemně jednoznačné). Navzdory této rovnocennosti má zastoupení konečného pole vliv na složitost implementace. Autoři algoritmu vybrali klasické polynomiální zastoupení. (17) Polynomy AES je nelineární. Všechny hodnoty bajtů v algoritmu AES jsou prezentovány jako zřetězení jednotlivých bitových hodnot (0 nebo 1) mezi složenými závorky v pořadí {b7, b6, b5, b4, b3, b2, b1, b0}, tyto bajty jsou interpretovány jako konečné prvky pole vyjádřené pomocí polynomu stupně 7: {19} Příklad polynomu: polynomiální zápis binární zápis hexadecimální zápis (17) Vzorec {19} a příslušné komentáře byly inspirovány zdroji (9) a (15) Operace sčítání V polynomiální reprezentaci je dán součet dvou prvků polynomem s koeficienty, které jsou dány součtem modulo 2 (1+1=0) koeficientů dvou prvků. Součet modulo 2 je operace XOR (kapitola 2.2.1). 39

41 Příklad sčítání: polynomiální zápis binární zápis hexadecimální zápis (17) Operace násobení V polynomiální reprezentaci je násobení v GF (2 8 ) označováno a odpovídá násobení polynomů modulo ireducibilním polynomem stupně 8. Ireducibilní polynom je takový polynom, který nelze rozložit na součin jednodušších polynomů a je označován, jako m(x). Pro AES algoritmus je ireducibilní polynom: 1 {20} Hexadecimální zápis vzorce uvedeného výše: m(x) = {01}{1b} Příklad násobení C1 : a (17) Modulární redukce m(x) zajišťuje, že výsledkem násobení bude binární polynom stupně méně než 8 (může být reprezentován bajty). Na rozdíl od sčítání neexistuje na úrovni bajtů žádná jednoduchá operace, která by odpovídala tomuto násobení. Množina 256 možných hodnot bajtů, využívá operaci XOR jako doplněk pro násobení uvedené výše, má strukturu konečného pole GF (2 8 ). (15) Vzorec {20} a příslušné komentáře byly inspirovány zdrojem (15). 40

42 Specifikace algoritmu AES AES je lineární substituční transformace s 10, 12 nebo 14 rundy (záleží na velikosti klíče). Bloky dat, které mají být zpracovávány, jsou rozděleny v poli bajtů a každá ze šifrových operací je bajtově orientovaná. Rundovní funkce jsou složeny ze čtyř vrstev. V první vrstvě je S-box (nelineární substituční funkce měnící jednotlivé bity) aplikován na každý bajt. Druhá a třetí vrstva jsou lineární míchání, ve kterém jsou řádky pole posouvány a sloupce míchány. Ve čtvrté vrstvě je na klíč bajtů aplikována operace XOR do každého bajtu pole, v poslední rundě je míchání sloupce vynecháno. (16) Všechny operace algoritmu AES se provádějí v dvourozměrném poli zvaném Stav (obrázek 13). Algoritmus AES má velikost vstupního bloku, výstupního bloku a bloku Stav 128 bitů. Blok Stav může být zobrazen jako obdélníkové pole bajtů. Toto pole má čtyři řádky, počet sloupců je označován proměnou N b a je roven délce bloku / 32. Velikost bloku N b reflektuje počet 32-bitových slov v bloku Stav (N b = 128 / 32 = 4). Délka šifrovacího klíče je 128 nebo 192 nebo 256 bitů. Délku klíče určuje proměnná N k = 4 nebo 6 nebo 8, která reflektuje počet 32-bitových slov v šifrovém klíči. Počet rund, které jsou prováděny v průběhu algoritmu AES, záleží na délce klíče N k a jsou určeny proměnnou N r. N r = 10, pokud N k = 4, N r = 12, pokud N k = 6 a N r =14, pokud N k = 8. Kombinace délky klíče, velikosti bloku a počet rund v souladu s normou FIPS PUB 197 určuje následující tabulka: AES délka klíče N k velikost bloku N b počet rund N r Tabulka 2 - Specifikace AES, počet rund v závislost na délce klíče a velikosti bloku Zdroj: vytvořeno na základě (15), strana 18 AES algoritmus využívá pro šifrování i dešifrování rundovní funkce, které se skládají ze čtyř různých bajtově orientovaných transformací: 1. Bajtová substituce využívající substituční tabulku (S-box). 2. Přesun řádků pole Stav (za pomocí různých offsetů ). 3. Míchání dat v každém sloupci pole Stav. 4. Přidáním Rudovního klíče do pole Stav. (9)(15)(17) 41

43 Na začátku šifrování je vstup zkopírován do pole Stav (obrázek 13). Po inicializaci rundovního klíče je pole Stav za pomocí rundovních funkcí desetkrát nebo dvanáctkrát nebo čtrnáctkrát transformováno (v závislosti na délce klíče). Na konci je obsah pole Stav zkopírován do výstupu. (15) Algoritmus AES lze rozdělit na procesy, kterými jsou samotné šifrování a tvorba klíčů. Šifrování využívá především čtyři procedury, které jsou prováděny v každé rundě. Tyto operace jsou SubBytes(), ShiftRows(), MixColumns(), AddRoundKey(). Všechny rundy jsou identické, kromě poslední rundy, která neobsahuje MixColumns() transformaci. (9) Zpracování klíče algoritmu AES Ještě před započetím vlastního šifrovacího procesu je třeba na začátku zadat šifrovací klíč (šifrovací klíč je obecně vysvětluje kapitola 1.3). Zadaný šifrovací klíč může mít různou délku, počet provedených rund závisí na délce tohoto šifrovacího klíče. Šifrovací klíč kratší délky urychluje šifrovaní i dešifrování a spoří čas. Zato delší klíč zvyšuje bezpečnost, ale procesy šifrování a dešifrování trvají déle. Klíč je zapisován do matice 4 (viz. kapitola Specifikace algoritmu AES), N = 4 nebo 6 nebo 8 pro délku klíčem 128 nebo 196 nebo 256 bitů (viz. tabulka 2). (9) Procedura KeyExpansion() KeyExpansion() je operace (procedura), která vytváří nové šifrovací klíče v algoritmu AES. Procedura generuje celkem N b (N r + 1) slov (proměnné popsány v kapitole Specifikace algoritmu AES). Algoritmus vyžaduje počáteční soubor N b slov a pro každou rundu N r vyžaduje N b slova klíčových dat. Výsledný klíč je rozvržen v lineárním poli čtyřbajtových slov, označeného [w i ], kde i je v rozsahu

44 Vytvoření zašifrovaného klíče algoritmu AES lze popsat v následujících krocích (obrázek 14): Obrázek 14 - Nastínění procedury KeyExpansion() v 6 krocích Zdroj: vytvořeno na základě (9), strana 255 a Nový klíč je vytvářen z námi zadaného klíče (následující klíče se vytvářejí dle nově vytvořených klíčů) a je uložen v hexadecimálním poli. 2. Poslední sloupec nově vytvořeného klíče vezmeme a prvky posuneme o nahoru tak, že se první prvek přesune na spodek sloupce. Tuto operaci provádí procedura RotWord(), jedná o cyklickou rotaci čtyřbajtového slova o bajt, kde slovo [a 0, a 1, a 2, a 3 ] transformuje na čtyřbajtové slovo [a 1, a 2, a 3, a 0 ]. 3. Na tento sloupec je dále aplikována operace SubWord() (viz. kapitola Šifrovací proces AES). Tato procedura aplikuje na všechny čtyři bajty S-box. 4. Následně je aplikována operace XOR ( ) tak, že je náš sloupec z kroku 3 je sečten se sloupcem s menším indexem (tento index se každé rundovní kolo mění). 5. V posledním kroku je na vzniklý sloupec aplikována operace XOR s příslušným sloupcem tabulky Rcon[i]. Tabulka (pole) konstantních slov Rcon[i] obsahuje prvky [x i-1, 00, 00, 00]. 6. Následující sloupce jsou vytvářeny analogicky podle kroků 2 až 5. Sčítá se vždy nově vytvořený sloupec se sloupcem o index menší a tyto kroky se několikrát opakují. (9) (15) 43

45 Pseudokód procedury KeyExpansion() zobrazují následující řádky: KeyExpansion(byte key[4*nk],, word w[ [Nb*(Nr+1)], Nk) begin word temp i = 0 while (i < Nk) w[i] = word(key[4* *i], key[ [4*i+1], key[4*i+ +2], key[ [4*i+3]) i = i+1 end while i = Nk end while (i < Nb * (Nr+1)] temp = w[ [i-1] if (i mod Nk = 0) temp = SubWord(RotWord(temp)) ) xor Rcon[i/Nk] else if (Nk > 6 and i mod Nk = 4) temp = SubWord(temp) ) end if w[i] = w[ [i-nk] xor temp i = i + 1 end while (15) Zmíněný pseudokód je implementovaných šest kroků procedury popsaných výše do kódové podoby (obrázek 14 a obrázek 15). KeyExpansion() Obrázek 15 - Procedura KeyExpansion() algoritmu AES Zdroj: ftp://ftp.kemt.fei.tuke.sk/kemt414_ak/_materialy/cvicenia/kryp_6.pdf, strana 5 Další grafický pohled na proceduru obsahuje expandovaný klíč. KeyExpansion() poskytuje obrázek 15. Pole w[i] 44

46 Šifrovací proces AES Celý šifrovací a dešifrovací proces probíhá podle následujícího schématu, vyobrazeném na obrázku 16. Na začátku se pole Stav, ve kterém je uložena šifrovací zpráva, sečte operací XOR s námi zadaným šifrovacím klíčem. Následuje provádění deseti, dvanácti nebo čtrnácti rund (podle velikosti klíče). Během provádění těchto rund se opakují procedury popisované v následujících podkapitolách. AES šifrování využívá v jedné rundě čtyři transformace. Jedná se o jednu permutaci a tři substituce. Tyto operace jsou SubBytes(), ShiftRows() ), MixColumns() ), AddRoundKey( (). Poslední runda vynecháváá operaci MixColumns(). Obrázek 16 Šifrovací a dešifrovací procesy AES Zdroj: upraveno na základě (18), strana 23 45

47 Jedna runda šifrovacího procesu a její tranformace Z obrázku 17 vyplývá, že transformace SubBytes(), ShiftRows(), MixColumns() a AddRoundKey()operují na poli Stav, které je dvourozměrné (obrázek 13). Komponenty transformace jsou specifikovány v následujících kapitolách. Obrázek 17 zobrazuje jednu rundu šifrování algoritmem AES graficky: Obrázek 17 - Jedna runda šifrovacího procesu AES Zdroj: upraveno na základě 1. Na začátku šifrování každé rundy je postupně naplněn vstup 16 bajtů do matice 4 x 4 (jedná se o dvourozměrné pole Stav), plnění probíhá zleva doprava po řádcích a od shora dolů po sloupcích. 2. V kroku 2 je na každý bajt pole Stav je aplikována substituce SubBytes(). 3. Následně operace ShiftRows()cyklicky posune prvky pole Stav o nula až tři bajty doleva. První řádek je posunut o nula bajtů, druhý o jeden bajt, třetí o dva bajty a čtvrtý o tři bajty doleva. Tímto krokem dochází k transpozici na úrovni bajtů. 4. V dalším kroku je na každý jednotlivý sloupec dvourozměrného pole aplikována procedura MixColumns(), která každý bajt změní na novou hodnotu. 5. Poslední operace rundy se nazývá AddRoundKey(), která na jednotlivé sloupce aplikuje operaci XOR s odpovídajícími rundovními klíči. 46 (18)

48 Procedura SubBytes Transformace SubBytes()je nelineární bajtová substituce, která transformuje jednotlivé bajty pole Stav. Využívá substituční tabulku (S-box) 4. Tento S-box je invertibilní (regulární) a je tvořen dvěma složenými transformacemi: 1. Na každý bajt je v konečném poli GF (2 8 ) (viz. kapitola Pole GF (2 8 )) aplikována multiplikativní (zesilující) inverze. 2. Na každý bajt je v konečném poli GF (2) aplikována afinní transformace: b b b b c {21} Pro 0 8, kde b i je i-tý bit v bajtu. c i je i-tý bit v bajtu c s hodnotou {63} hexadecimálně nebo { } binárně. V maticové podobě mohou být afinní transformace prvku S-boxu vyjádřeny jako: {22} Vzorce {21},{22} a příslušné komentáře byly inspirovány zdroji (9) (15) (17). Obrázek 18 ilustruje efekt transformace SubBytes()na dvourozměrné pole Stav. Obrázek 18- ByteSub() působí na jednotlivé bajty pole Stav Zdroj: 4 S-box použitý v proceduře SubBytes()je uveden v hexadecimálním tvaru v Příloze B. 47

49 Procedura ShiftRows Během procedury ShiftRows()dochází k posunu bajtů v rámci řádků v dvourozměrném poli Stav. První řádek není posouván (r=0), druhý řádek je posunut o jednu pozici vlevo, třetí řádek o dvě pozice vlevo a čtvrtý řádek je posunut o tři pozice. ShiftRows()transformace probíhá takto:,,, ] {23} Kde hodnota posunu, závisí na počtu řádků r a se mění takto (N b = 4): 1,4 1; 2,4 2; 3,4 3 (15) Velikost posunu je přímo úměrná velikosti šifrového bloku. Základním cílem transformace je zajištění vysoké difůze mezi sloupci (viz. kapitola Difúze). Obrázek 19 ShiftRows() cyklicky posouvá poslední tři řádky pole Stav Zdroj: (15), strana 21 Obrázek 19 zobrazuje proceduru ShiftRows()graficky, jedná se o variantu s blokem délky 128 bitů, 4 4 bajtů. Vzorec {23} a příslušné komentáře byly inspirovány zdrojem (9). 48

50 Procedura MixColumns V operaci MixColumns()dochází ke změně jednotlivých sloupců dvourozměrného pole Stav. Každý jednotlivý bajt je měněn na novou hodnotu, která je funkcí všech čtyř bajtů sloupce. Sloupce pole Stav jsou považovány za polynomy nad Galoisovým tělesem 5 GF (2 8 ) (kapitola Pole GF (2 8 )) a násobeny modulo x 4 + 1, s fixním polynomem a (x), který je vyjádřen jako: {24} Procedura převede sloupec sc na sloupec : 1 {25} Tento proces může být zapsán také jako násobení matic:, ,, ,, , ,, 0 {26} Výsledkem tohoto násobení matic (této procedury) jsou ve sloupcích dvourozměrného pole Stav nahrazené čtyři bajty (obrázek 20). Obrázek 20 - Procedura MixColumns() na dvourozměrném poli Stav Zdroj: upraveno na základě Implementace operace na všech sloupcích pole Stav vykoná příkaz MixColumns(Stav). Vzorce {24}, {25}, {26} a příslušné komentáře byly inspirovány zdroji (9) (17). 5 Galoisovo těleso, je takové těleso, které má konečný počet prvků. 49

51 Procedura AddRoundKey Tato transformace přičte pomocí operace XOR jednotlivé prvky pole Stav k prvkům příslušného rundovního klíče. Rundovní klíč je určen pomocí klíčového plánovacího algoritmu (key schedule). Každý rundovní klíč je složen N b slov, na tyto slova je aplikována operace XOR se sloupci pole Stav s c :,,,,,,,,,,,,, 0 {27} Proměná round (runda) je hodnota mezi 0 až N r (N r popisuje kapitola Specifikace algoritmu AES). W[i] je lineární pole čtyřbajtových slov, ve kterém jsou uloženy klíče (popsané v kapitole Zpracování klíče algoritmu AES). Cílem transformace AddRoundKey() je, aby operace v rundě byly závislé na rundovním klíči. Pohledem na obrázek 17 můžeme zjistit, že tato operace je poslední transformací šifrovacího procesu AES algoritmu. Vzorec {27} a příslušné komentáře byly inspirovány zdroji (9) (15) Implementace šifrovacího procesu AES Implementaci šifrovacího algoritmu AES popisuje následující pseudokód, obsahující procedury a proměnné popsané v předchozích kapitolách. Cipher(byte in[4*nb], byte out[4*nb], word w[nb*(nr+1)]) begin byte state[4,nb] state = in AddRoundKey(state, w[0, Nb-1]) for round = 1 step 1 to Nr1 SubBytes(state) ShiftRows(state) MixColumns(state) AddRoundKey(state, w[round*nb, (round+1)*nb-1]) end for SubBytes(state) ShiftRows(state) AddRoundKey(state, w[nr*nb, (Nr+1)*Nb-1]) end out = state 50

52 (15) Dešifrovací proces AES Během dešifrování jsou používány operace inverzní k operacím použitých při šifrování, protože všechny jsou reverzibilní (schopné zpětného procesu). Tyto operace probíhají v opačném pořadí než při šifrování (obrázek 16 a obrázek 21). Při provádění dešifrování je nezbytné, aby jediná nelineární operace InvSubBytes() byla první transformace v rundě. Je třeba, aby byly řádky posunuty ještě před použitím operace InvMixColumns(). (17) Obrázek 21 - Dešifrovací proces AES Zdroj: upraveno na základě Individuální transformace, které využívají dešifrovací proces, jsou InvShiftRows(), InvSubBytes(), InvMixColumns() a AddRoundKey()(operace popsána výše, v kapitole Procedura AddRoundKey). W[i] je lineární pole, ve kterém jsou uloženy klíče. Expanze klíče je popsána v kapitole Zpracování klíče algoritmu AES. 51

53 Implementace dešifrovacího procesu AES Implementaci dešifrování nastiňuje následující pseudokód: InvCipher(byte in[4*nb], byte out[4*nb], word w[nb*(nr+1)]) begin byte state[4,nb] state = in AddRoundKey(state, w[nr*nb, (Nr+1)*Nb-1]) for round = Nr-1 step -1 downto InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w[round*nb, (round+1)*nb-1]) InvMixColumns(state) end for InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w[0, Nb-1]) end out = state (15) Uvedený pseudokód popisuje grafickou formou obrázek 21. Přestože transformace InvMixColumns()operuje na dvourozměrném bajtovém poli, zatím co rundovní klíče jsou uloženy v jednorozměrném poli slov. Volání procedury InvMixColumns()v tomto pseudokódu zahrnuje změnu typu, vstup do InvMixColumns(Stav)zajišťuje pole Stav, který je považován za dvourozměrné pole bajtů, přičemž vstup zde je vypočítáván jako jednorozměrné pole. (15) Bezpečnostní vlastnosti AES Autoři šifry pojednávají o třech nedostatcích v matematické struktuře AES a potenciální zranitelnosti, ke které vedou. Za prvé uvádí, že všechny operace šifrovacího procesu pracují s bajty, ne s bity. Tato vlastnost umožňuje čtvercový útok na redukování rundovních variant. Kromě toho algoritmus může mít téměř symetrický pohyb bajtů, jediné přerušení symetrie je používání různých rundovních konstant v klíčovém plánování. Pro prvních osm rund je tato konstanta pouze jeden bit. Pokud v AES dojde k vynechání těchto rundovních konstant, pak šifrování může být kompatibilní s otáčením každého slova dat a rundovních klíčů o bajt. (16) AES je převážně lineární, využívá XOR operace a operace běžného sčítání. Aplikuje lineární mapu na bity s běžnými operacemi sčítání. Aplikuje lineární mapu na bity v každém bajtu, 52

54 aniž by měnil celkový algoritmus. Galoisovo pole (které je základem S-boxu) může být zastoupeno různými bazickými vektory nebo může být transformováno na jiné Galoisovo pole (kapitola Pole GF (2 8 )) s různými definovanými polynomy. Jinými slovy matematická struktura AES umožňuje řadu ekvivalentních formulací. Autoři naznačují, že provedením řady manipulací na S-boxu by mohl být útočník schopný najít využitelnou slabinu. (16) AES obsahuje relativně jednoduchý algebraický vzorec pro S-box. Tento vzorec je polynom stupně 254 nad Galoisovým polem, ale v tomto polynomu je pouze devět podmínek, což je mnohem méně, než by se dalo očekávat v typickém náhodně generovaném S-boxu (nelineární substituční funkce měnící jednotlivé bity) stejné velikosti. Matematický výraz opakovaný v několika rundách by mohl být složitější, ale autoři uvádí několik příkladů výpočtů v tomto prostředí, pokud by měl výraz jen pět rund, ukázalo se, že útok na něj by vyžadoval, aby útočník shromáždil dva miliony párů otevřeného a šifrového textu. (16) Útočník, který zpětně získá nebo odhadne vhodné bity AES pod-klíče, bude schopen vypočítat další bity pod-klíče (V případě algoritmu DES tato schopnost pomáhala ke konstrukci lineárních a diferenciálních útoků). Autoři považují tuto vlastnost za znepokojující a naznačují, že na rozdíl od prohlášení ve specifikaci Rijndaelu 6 klíčové plánovaní nemá vysoký rozptyl. Zdá se, že AES má dostatečnou bezpečnostní rezervu. Tuto rezervu je trochu obtížné měřit, protože počet rund se mění s velikostí klíče. AES přijal některou kritiku a to, že jeho matematická struktura může vést k útokům. Nicméně jeho struktura je poměrně jednoduchá, což usnadňuje analýzu bezpečnosti během specifického časového horizontu vývojového procesu vylepšení AES. Šifra AES umožňuje výpočet pod-klíče současně se šifrováním, ale ne s dešifrováním. Výpočet pod-klíče je kompatibilní a přístupný zřetězení do určité míry, která není v manuálech přesně specifikována. Efektivní výpočet pod-klíče produkuje poměrně nízkou šifrovací latenci (zpoždění). Nicméně pro dešifrování vyžaduje pod-klíč výpočet buď ve vyrovnávací paměti, nebo vygenerování kompletního klíčového plánu, ještě před započetím vlastního dešifrování. (16) 6 specifikace Rijndaelu (původní název algoritmu AES) viz. (17) 53

55 Maskování AES AES je relativně snadné maskovat, protože používá pouze logické operace a tabulky vyhledávání. Vyhledávací tabulka je dostatečně malá, aby byla maskována a uložena v paměti RAM. Všechny operace maskování jsou nezávislé na datech, což umožnuje předběžný výpočet hodnot masky. AES je velice rychlý v maskovém režimu a má malé požadavky na ROM a RAM. (16) OTFE On-the-fly (OTFE) znamená, že data jsou dostupné ihned po zadání šifrovacího klíče. AES podporuje on-the-fly výpočet podklíče pro šifrování i dešifrování. Nicméně není možné produkovat první dešifrovací podklíč přímo z originálního šifrovacího klíče v jediném výpočtu. Proto ještě před prvním dešifrováním šifrovým klíčem AES vyžaduje provedení jednorázového klíčového plánování, cyklování přes všechny podklíče generuje první dešifrovací podklíč a poté všechny ostatní dešifrovací podklíče mohou být přepočítány on the-fly. Tento způsob minimálně zatěžuje zdroje a je výkonný. (16) Útoky na implementaci Operace využívané AES patří mezi nejjednodušší obranu proti útokům hrubou silou. Použití maskovaných technik poskytuje AES algoritmu obranu proti těmto útokům a nezpůsobuje značné snížení výkonu a požadavky na RAM růstávají přiměřené. Nicméně AES má implementaci náchylnou na analytické útoky Implementační omezení AES Variant implementací je mnoho, může být využita v mnoha případech. Nabízí výkon a další výhody Flexibilní implementace Dešifrování může být prováděno se stejnou strukturou jako šifrování, pouze s různými komponenty (viz. obrázek 16). Chceme-li optimalizovat propustnosti procesorů s délkou slova na 32 bitů. Rundovní funkce mohou být kombinovány do množiny čtyř vyhledávacích tabulek. Jedna tabulka může nahradit ostatní vyhledávací tabulky na úkor dalších rotačních operací. Stejná optimalizace platí i pro dešifrování rundovní funkce, ačkoli s jinými tabulkami. Operace MixColumns()je navržena tak, aby umožňovala efektivní implementaci na osmibitových procesorech. AES klíčové plánování využívá S-box, který nabízí příležitosti pro sdílení zdrojů v hardwarové implementaci. 54

56 Softwarová a hardwarová implementace AES je vhodný pro hardwarovou implementaci. Implementace AES využívá logické funkce a vyhledávací tabulky. Dochází však k asymetrii mezi šifrováním a dešifrováním. Inverzní funkce procedury InvMixColumns() používá složitější konstantní hodnoty, než MixColumns() (kapitola ). Z tohoto důvodu je kritická cesta delší pro dešifrování. Tabulku vyhledávání představuje zhruba z poloviny zpoždění. Nastavení klíče trvá asi o 85% déle v případě dešifrování než u šifrování. (16) AES umožňuje velmi dobré šifrování a dešifrování na celé řadě platforem, včetně osmi bitových a šedesáti-čtyř bitových platforem a DSP (Digitální signálový procesor). Avšak při větších velikostech klíčů dochází z poklesu výkonu a to z důvodu zvýšení počtu rund, které jsou prováděny. Další důležitou vlastností AES je paralelizmus, který umožňuje efektivní využívání prostředků procesoru, což má za následek velice dobrý softwarový výkon. AES má samostatné šifrovací a dešifrovací jednotky. Tyto jednotky sdílí šestnáct vyhledávacích tabulek a jsou implementovány na Galoisově poli GF (2 8 ). Tyto jednotky jsou nezávislé a vyhledávací tabulky zabírají kolem 40 % šifrovacího prostoru. Implementace šifrování i dešifrování současně vyžaduje o 60 % více hardwarových požadavků, než pouze implementace šifrování samostatně. Paměť ROM je na bází plně paralelní vyhledávací tabulky, implementace poskytuje nízkou latenci a vysokou propustnost. Využití oddělených hodin pro nastavení klíče a kryptografického jádra latenci nepatrně zvyšuje. Logické zdroje nejvíce využívají S-boxy. Každý S-box využívá osm bitů vyhledávací (lookup) tabulky, šestnáct jeho kopií je vyžadováno za rundu. Další operace jsou jednodušší, plné rozbalování smyček a vnější řetězení jsou neproveditelné z hlediska prostorových omezení. V režimu zpětné vazby dosahuje nejlepších výkonů druhé kolo rozbalování smyček. Nicméně zatím co zlepšení propustnosti na základní architektuře je mírné, tak nárůst velikosti oblasti je asi o 50%. Všechny formy zřetězeného zpracování produkují menší propustnost. V režimu zpětné vazby je asi polovina zpoždění rundovní funkce vytvářena substitucí S-boxů. (16) 55

57 Studie kryptoanalytických útoků na AES Kapitola je pojmenována studie kryptoanalytických útoků na šifru AES, ale časová složitost prolomení AES je stále tak vysoká (viz. tabulky 3, 4 a 5), že je žádné současné nejmodernější technologie nemůžou prolomit AES v praxi. Tudíž se útoky na AES pohybují stále v teoretické rovině. Kryptoanalytické útoky na AES lze rozdělit do tří kategorií. První kategorie obsahuje útoky na oslabený AES, kde je omezený počet rund. Druhá kategorie obsahuje matematické vyjádření vlastností dílčích komponent AES, které by mohly vést ke kryptoanalytickým útokům. Třetí kategorie tvoří útoky postraními kanály, které se zaměřují na nedostatky v hardwarové a softwarové implementaci. Do studie autor diplomové práce nezahrnuje slabé modifikované verze AES s malým počtem rund a snaží se analyzovat kryptoanalytické útoky především na silnější verze AES. Veličina data v tabulkách 3, 4 a 5 představuje velikosti otevřeného textu. Veličina čas představuje výpočetní složitost, zatím co veličina paměť představuje paměťovou náročnost. Hodnota počet rund říká, až do jaké rundy byl veden útok (viz. kapitola Specifikace algoritmu AES) a zdroj (v tabulkách 3, 4 a 5) prezentuje, z jakých materiálů byly hodnoty nejúspěšnějších teoretických útoků čerpány Nejúspěšnější kryptoanalytické útoky na 128 bitovou AES Šifra AES-128 Počet rund Typ útoku Data Čas Paměť Zdroj Impossible 7 Differential 2 112, , ,2 (19) 7 Impossible Differential 2 106, ,2 2 90,2 (20) 7 MITM (21) 7 MITM (22) 8 Biclique ,3 2 8 (7) 10 (úplná šifra) Biclique ,2 2 8 (7) Tabulka 3 - Shrnutí nejúspěšnějších teoretických útoků na šifru AES-128 Zdroje: (19) (7) (20) (21) (22) V tabulce 3 si můžeme všimnout jednoho úspěšného teoretického útoku na 128 bitový AES se sedmi rundami od autorů Derbeze, Fouque a Jeana, kterým se podařilo snížit časovou složitost až na (22) Biclique útok na úplnou 128 bitovou šifru AES od Andrey Bogdanova, Dmitryho Khovratoviče a Christiana Rechbergera (7) umožňuje najíst šifrový klíč v maximálním počtu 2 126,2 ale stejně je útok těžko prakticky proveditelný. operací, což je 3,5 rychleji než při útoku hrubou silou, 56

58 Nejúspěšnější kryptoanalytické útoky na 192 bitovou AES Šifra AES-192 Počet rund Typ útoku Data Čas Paměť Zdroj 7 MITM (22) 7 Imposible Differential 2 91, ,2 (19) 8 MITM (21) 8 MITM (22) 8 MITM (23) 9 Biclique ,8 2 8 (7) 9 MITM (6) 12 (úplná šifra) Biclique ,4 2 8 (7) Tabulka 4 - Shrnutí nejúspěšnějších teoretických útoků na šifru AES-192 Zdroje: (6) (19) (7) (22) (21) (23) Jedním z neúspěšnějších teoretických útoků na 192 bitovou AES je MITM útok na prvních osm rund algoritmus od kryptoanalytiků Patricka Derbeze a Pieerre Alaina při velikosti dat dosáhli časové náročnosti Biclique útok na úplnou 192 bitovou AES má náročnost 2 189,4, což umožňuje dešifrování šest krát efektivněji, než útok hrubou silou, ale tato časová složitost je stále moc velká, než aby se dal útok v současnosti prakticky realizovat Nejúspěšnější kryptoanalytické útoky na 256 bitovou šifru AES Šifra AES-256 Počet rund Typ útoku Data Čas Paměť Zdroj 7 MITM (21) 7 MITM (22) 7 MITM , (23) 8 MITM (21) 8 MITM (22) 8 MITM (23) 9 Biclique ,9 2 8 (7) 9 MITM (22) 14 (úplná šifra) Biclique ,4 2 8 (7) Tabulka 5- Shrnutí nejúspěšnějších teoretických útoků na šifru AES-256 Zdroje: (7) (21) (22) (23) Úspěšným teoretickým útokem je MITM útok na devět rund 256 bitové AES od Patricka Derbeze, Pieerre Alaina a Jérémyho Jeana. Podařilo se jim při velikosti dat dosáhnout časové složitosti (22) Biclique útok na úplnou 256 bitovou AES má náročnost 2 254,4, což umožňuje dešifrování třikrát rychleji, než jak dlouho by trval útok hrubou silou, ale stejně je složitost tak veliká, že je praktické prolomení nemožné. 57

59 Kryptoanalytický útok hrubou silou na AES Útok hrubou silou na žádnou z verzí AES není z praktického hlediska vůbec možný. I kdyby bylo požito pro útok hrubou silou na plnou verzi 256 bitové AES (složitost ) padesát super počítačů, které by kontrolovaly triliony (10 18 ) AES klíčů za vteřinu (v případě, že by takové zařízení existovaly) by útok trval let, než by byl vyčerpán 256 bitový prostor Útoky na 192 a 256 bitovou AES založené na podobnosti klíčů V roce 2009 prezentovali Alex Biryukov a Dmitry Khovratovich z Univerzity v Lucemburku dva teoretické útoky založené na podobnosti klíčů (related-key útoky), tyto útoky byly založeny na pokročilé variantě diferenciální kryptoanalýzy. Autoři ukázali, že optimální trasy rozvrhnutí klíče by měly být založeny na nízké váze kódových slov v rozvrhnutí klíče (key schedule). Teoretické útoky probíhaly na plnou verzi AES. Oba útoky se nazývaly boomerangové útoky, které jsou založeny na myšlence najít lokální kolize v blokové šifře a vylepšit tak boomerangovou přepínací techniku, jak získat uprostřed šifry volné rundy. Oba útoky byly pouze teoretické a nebyly realizovány prakticky. (24) Pro 256 bitovou AES dosáhl útok časové a datové složitosti 2 99,5, což je historicky neúspěšnější teoretický útok. Druhý útok byl na 192 bitovou AES a dosáhl paměťové složitosti 2 152, datové a časové složitosti 2 176, což byl opět neúspěšnější teoretický útok na plnou 192 bitovou AES. (24) Výše zmíněné výsledky by znamenaly, že se jedná o historicky nejúspěšnějších teoretické útoky na plné verze AES a hodnoty časové složitosti by ukazovaly, že může být algoritmus AES prakticky prolomen. Jenže útoky byly následně podrobněji zkoumány mnoha kryptoanalytiky a bylo shledáno, že by prakticky vůbec nefungovaly 7. Proto autor diplomové práce jejich výsledky vůbec nezahrnul do následující studie (tabulky 3, 4 a 5) MITM útok na AES Základní princip Meet-in-the-middle útoku obsahuje kapitola MITM útok. Z tabulek 3, 4 a 5 můžeme vyčíst, že MITM je jeden z nejúspěšnějších současných útoků na AES. 7 Důkazy toho, proč nejsou uvedené related-key útoky z praktického hlediska možné. Uvádějí autoři AES Joan Daemen a Vincent Rijmen zde: 58

60 Nemožný diferenciál kryptoanalytický útok na AES Tabulka 3 a 4 obsahuje hodnoty s Impossible differential (Nemožný diferenciál) útoky na některé oslabené verze AES. Všechny uvedené Impossible differential útoky využívají velmi podobné algoritmy a jsou založeny na čtyř rundovém nemožném diferenciálu útoku na AES (obrázek je uveden v příloze C). Nechť označuje vstupní diferenci rundy i a nechť označuje diferenci po operaci ShiftRows() rundy i+3. V případě, že platí dvě následující podmínky: 1. má pouze jeden nenulový bajt, 2. V nejméně jedna ze čtyř množin bajtů SR(Col(i)), pro čtyři různé možné sloupce je rovna nule, poté je nemožný diferenciál pro každé čtyři po sobě jdoucí rundy AES. Nastínění těchto nemožných diferenciálů obsahuje Příloha C. Jestliže je v rundě i+3 pořadí operací MixColumns() a AddRoundKey() vyměněno, poté obsahuje nemožný diferenciál. Jestliže má jenom jeden nenulový bajt, poté má nenulovou hodnotu v jednom sloupci, a proto má nenulové hodnoty ve všech 16 bajtech tabulky (v návaznosti na základní difúzní vlastnosti AES, což je skutečnost, používaná v mnoha kryptoanalytických útocích na AES) Biclique kryptoanalytický útok na AES Následující kapitola prezentuje výsledky biclique útoků na šifrovací algoritmus AES (popsaný v kapitole Biclique útok) uvedené v Tabulkách 3, 4 a 5: Útok na plnou 128 bitovou AES dosáhl výpočetní složitosti 2 126,2. Útok na plnou 192 bitovou AES dosáhl výpočetní složitosti 2 189,4. Útok na plnou 256 bitovou AES dosáhl výpočetní složitosti 2 254,4. Útoky s nižší složitostí, včetně útoku na 8 rundu 128 bitové AES se složitostí 2 126,2, nejsou považovány za velký krok vpřed. Na rozdíl od jiných zkrácených útoků na varianty AES biclique útok nepotřebuje žádné související klíče a vyžaduje jen velmi malou část kódové knihy (codebook) a má malou náročnost na paměť. Biclique útoky dosahují stále ohromné výpočetní složitosti a prakticky AES v žádném případě neohrožují. (7) 59 (19)

61 Čtvercový kryptoanalitický útok na AES Vlastnost AES, kterou využívá Čtvercový (Square) útok, spočívá vtom, že vezmeme-li dva čisté texty, jejichž XOR diference (rozdíl) je nenulová v jednom bajtu, pak tato diference bude expandovat pomocí známých způsobů. Po provedení první rundy algoritmu XOR diference mezi mezilehlými stavy bude ukazovat, že jeden sloupec matice stav má nenulovou diferenci (viz. následující matice). Tato vlastnost se bude šířit do všech bajtů v matici (dvourozměrném poli) Stav, dle stejné úvahy i po druhé rundě algoritmu. Příklad, kde je diference ve dvou čistých textech: Šíření jedno bajtové diference ve dvou rundách AES zobrazují následující matice: {28} čistý text první runda druhá runda Je tedy možné, že XOR diference mezi dvěma čistými texty bude po dvou rundách v každém bajtu nula. Tato vlastnost bude trvat až to příští operace MixColumns() (viz. kapitola Procedura MixColumns) a používá se pro kryptoanalytický útok nemožnými diferenciály, protože XOR diference po dvou kolech nemůže být nula. Zmíněná vlastnost se využívá i při konstrukci útoku označovaný jako Square (čtvercový) útok. (25) typ AES počet rund data čas paměť AES AES AES AES ,5 - AES ,5 - AES AES AES AES Tabulka 6 - Čtvercové kryptoanalytické útoky na AES Zdroj: (25) Z tabulky 6 vyplývá, že výpočetní složitost (veličina čas) uvedených hodnot je velice dobrá (protože je nízká). Jenže při pohledu na počet rund a velikost dat si můžeme všimnout, že se nejedná o plné nebo silné verze AES, tudíž žádná z hodnot čtvercového útoku nebyla autorem diplomové práce zařazená do tabulek 3, 4 a 5 nejúspěšnějších útoku na AES a nemůžeme říci, že by čtvercový útok na AES byl nějakým způsobem efektivní v praxi. Matice {28} a příslušné komentáře byly inspirovány zdrojem (25). 60

62 Klady AES Rijndael prošel velice dlouhým, složitým a přísným výběrovým řízením proto, aby mohl být přejmenován na AES a stát se standardem Spojených státu amerických jako FIPS PUB 197. Byl hodnocen jak pracovníky NIST, tak odbornou veřejností. NIST analyzoval všechny komentáře v papírové i slovní podobě, byl analyzován na konferencích a v laboratorních studiích. Proto je u něj mnohem jednodušší hledat silné stránky než ty slabé. AES šifrování využívají tisíce jednotlivců, korporací a i několik oddělení uvnitř vlády Spojených států amerických. Je to velice silný šifrovací nástroj, je to open source a je poskytován zdarma v mnoha programovacích jazycích. Algoritmus AES má velikou výhodu v rychlosti před svými konkurenty. Zajišťuje trvale špičkový výkon pro šifrování, dešifrování a umožňuje nastavení klíče, i když výkon mírně klesá s 192 bitovou a 256 bitovou délkou klíče. AES má velmi nízké RAM a ROM požadavky a je velmi vhodný pro omezené diskové prostředky, kde se provádí buď šifrování, nebo dešifrování. AES má trvale velmi dobrý výkon v hardwarové i softwarové implementaci, bez ohledu na jeho použití v režimech se zpětnou vazbou nebo bez zpětné vazby. Nastavení klíče je vynikající, operace AES patří mezi tu nejjednodušší obranu proti útokům hrubou silou a časovým útokům. Kromě toho tyto obrany se poskytují bez výrazného dopadu na výkon. AES je navržen s určitou pružností, jedná se o velikosti bloků a délku klíče. Algoritmus může přizpůsobit změny v počtu rund. Interní rundovní struktura umožňuje využívat instrukce na úrovni paralelismu. (16) Existuje mnoho neznámého ohledně budoucích počítačových platforem. AES byl navržen tak, aby mohl být realizován v široké škále prostředí. AES kombinuje bezpečnost, výkon, účinnost, proveditelnost a flexibilitu. AES je vhodná šifrovací technologie pro použití dnes (rok 2014) i v blízké budoucnosti. 61

63 Zápory AES Nevýhodou je, že se požadavky na ROM zvýší (konkrétně dvojnásobně), pokud jsou šifrování a dešifrování prováděny současně, i když algoritmus AES stále zůstává vhodný pro omezené prostory na disku. AES je bajtově orientovaná šifra na základě dynamického čtvercového pole. Prezentace vývojářů na Square útok slouží jako výchozí bod pro další analýzu. Typy substitučních a permutačních operací používané v AES jsou standardní. S-box má matematickou strukturu založenou na kombinaci inverze na Galoisově poli a afinní transformaci. I když matematická struktura může teoreticky napomáhat útoku, tato struktura není skryta a mohl by to být případ zadních vrátek. AES specifikace tvrdí, že v případě, že by S-box obsahoval zadní vrátka, mohl by být tento S-box nahrazen jiným. Pipelining (zřetězené zpracování) omezuje atomická povaha přístupu k S-boxům. V roce 2002, kdy se šifra Rijndael stala standardem AES, nebyly známé žádné úspěšné útoky na tento algoritmus. Dnes (rok 2014) jsou známy teoretické útoky na některé verze šifrovacího algoritmu AES (viz. kapitola Studie útoků na AES). V praxi ještě nebyl algoritmus AES prolomen, respektive se nepodařilo autorovy diplomové práce nikde najít pádné důkazy, že by byl algoritmus AES mohl být prolomen v praktické rovině, protože se zatím nepodařilo najít a provést vhodný útok na šifru tak, aby byla časová náročnost algoritmu rapidně snížena a mohla být prolomena superpočítači. NSA zahájila plán na vybudování utajovaného superpočítače v Utahu, určeného speciálně pro dešifrování algoritmu AES. NSA očekává, že bude moci prolomit šifrové klíče 256 bitového AES kolem roku NSA tvrdí, že bude schopna prolomit 256 bitovou AES ve využitelné lhůtě a klade si za cíl číst a zpracovávat zašifrované data diplomatické a vojenské komunikace. (26) 2.4 Asymetrické šifrovací algoritmy Asymetrické algoritmy jsou též nazývány jako algoritmy s veřejným klíčem. Hlavní princip spočívá v existenci dvou šifrových klíčů, jeden je označován jako veřejný a druhý se nazývá soukromý (privátní, tajný) viz. obrázek 22. Ze znalosti veřejného klíče nelze zjistit soukromý klíč. 62

64 Asymetrický šifrovací algoritmus je takový algoritmus, kde pro všechna k K (prostor tajných klíčů) nelze z transformace šifrování E k, určit transformaci dešifrování D k. Transformace vygeneruje dvojici šifrových klíčů, které se nazývají veřejný (e) a privátní (d) klíč. Tyto klíče parametrizují transformace šifrování a dešifrování tak, že E k = E e a D k = D d. (8) Jestliže chce odesílatel B předat zprávu m příjemci A, obdrží autentickou kopii veřejného klíče e odesílatele A, využitím šifrovací transformace (zašifrováním) dostane šifrový text c, poté odešle šifrový text c příjemci A. {29} Pro dešifrování šifrové zprávy c aplikuje příjemce A dešifrovací transformaci D d (příjemce využije svůj privátní klíč d) na šifrovou zprávu c a získá původní zprávu (otevřený text) m, kde: {30} Vzorce {29}, {30} a příslušné komentáře byly inspirovány zdrojem (2). Obrázek 22- Základní princip asymetrického šifrování Zdroj: upraveno na základě Asymetrický kryptografický systém lze popsat matematickou rovnicí (popis proměnných viz. kapitola Definice kryptografického systému). Kde: m - message (otevřený text, zpráva), E - transformace šifrování, D - transformace dešifrování. {31} 63

65 Někdy také můžeme asymetrický systém definovat jako: {32} Vzorce {31}, {32} a příslušné komentáře byly inspirovány zdrojem (27). Veřejný klíč e nemusí být udržován v absolutní tajnosti, ve skutečnosti může být široce dostupný, ale jeho pravost musí být garantována. Příjemce A musí být jediný skupině, kdo ví o odpovídajícím soukromém klíči d. Hlavní výhodou těchto systémů je to, že poskytování autentických veřejných klíčů e je o mnoho jednodušší, než distribuce šifrových klíčů vyžadovaná v symetrických kryptografických systémech. Hlavním cílem asymetrické kryptografie je zajištění soukromí a důvěrnosti. Asymetrické šifrování je nejlépe využitelné při šifrování malého objemu dat, jako jsou například čísla kreditních karet a PIN kódy. (2) Mezi asymetrické šifry patří například RSA, ElGamal, Diffie Hellman, ECC (kryptografie eliptických křivek), DSA, Cramer Shoup system, Paillieriho kryptografický systém Výhody asymetrických šifrovacích algoritmů V asymetrickém šifrování má každý uživatel pouze jeden pár šifrových klíčů, to znamená, že veřejný klíč je měněn pro celou skupinu uživatelů. Distribuce šifrových klíčů je lépe řešená než v symetrickém šifrování, protože veřejný klíč může být sdílen s kýmkoli. Hlavní výhoda oproti symetrickým kryptografickým algoritmům je, že není potřeba častá výměna klíčů. Je tedy umožněna bezprostřední komunikace bez potřeby složité distribuce klíčů. Asymetrické šifry jsou velmi dobré pro účely otevřené komunikace.(9) Počet šifrových klíčů je roven v asymetrických systémech dvojnásobku uživatelů (entit), na rozdíl od symetrických algoritmů, kde je počet šifrových klíčů kvadraticky větší (viz. kapitola Zápory symetrických šifrovacích systémů). Při vstupu nového uživatele do komunikace v asymetrických systémech není potřeba, aby dřívější (starší) uživatelé aktualizovali data na rozdíl od symetrických kryptografických systémů, kde si musí všichni dřívější účastníci vyměnit s novým účastníkem šifrový klíč. 64

66 2.4.2 Nevýhody asymetrických šifrovacích algoritmů Asymetrické šifrovací systémy jsou o mnoho pomalejší než symetrické šifrovací systémy. Z tohoto důvodu se asymetrické šifrování nejčastěji využívá pro distribucí klíčů. Tyto šifrové klíče jsou následně využity pro šifrování pomocí symetrických algoritmů (například AES). Asymetrická kryptografie neposkytuje záruky ověřování původu dat nebo datové integrity. Tyto záruky musí být poskytovány prostřednictvím dalších technik a služeb, zajištující autentizaci zprávy a digitální podpisy. (2) Některé asymetrické algoritmy jsou vhodné pouze pro distribuci klíče. Asymetrických algoritmů, které jsou bezpečné a zároveň využitelné v praxi (rychlé), není mnoho. Řešením může byt využití hybridních kryptografických systémů RSA Kryptografický algoritmus RSA je jedna z nejpoužívanějších asymetrických šifer (algoritmy s veřejným klíčem). Byla vyvinuta roku 1978 R. L. Rivestem, A. Shamirem a L. Adlemanem v MIT (Massachusetts Institute of Technology). Hlavní princip bezpečnosti RSA, je založen na výpočetní a technické imunitě vůči faktorizaci celého čísla. (28) Algoritmus RSA Veřejný klíč v kryptografickém systému RSA obsahuje proměnnou n, která je nazývána modus a proměnnou e, která je nazývána veřejný exponent. Privátní klíč obsahuje modus n a hodnotu d, která je nazývána privátní exponent. Pár veřejného a soukromého klíče může být generován pomocí následujících kroků: 1. Vygenerování páru velkých náhodných prvočísel p a q (je třeba je držet v tajnosti). 2. Vypočítat celé číslo n: {33} 3. Vybrat lichý veřejný exponent e mezi 3 a n-1, který je nesoudělný (nesoudělná jsou čísla, která mají pouze jednoho kladného společného dělitele a to číslo 1) s p-1 a q Vypočítat privátní exponent d z e, p a q. Platí vztah: 1 mod 1 1) {34} 5. Výstup (n, e) je poté veřejný šifrovací klíč a (n, d) je privátní šifrovací klíč. Vzorce {33}, {34} a příslušné komentáře byly inspirovány zdroji (9) (29). 65

67 Šifrování RSA Operace šifrování je v kryptosystému RSA umocnění e-tého exponentu mondulo n: ENCRYPT mod {35} Vstup je zpráva m. Výstup je zašifrovaný text c. V praxi bývá zpráva m obvykle nějaký vhodně naformátovaný šifrovací klíč, který má být posléze sdílen. Vlastní zpráva je šifrována pomocí tohoto sdíleného klíče některým tradičním symetrickým algoritmem. Tato konstrukce umožňuje zašifrování zprávy libovolné délky pouze s jedním umocňováním. Vzorec {35} a příslušné komentáře byly inspirovány zdrojem (29) Dešifrování RSA Operace dešifrování je umocnění d-tého exponentu modulo n: DECRYPT mod {36} Vztahy mezi exponenty e a d zajišťují, že šifrování i dešifrování jsou inverzní operace, takže dešifrování obnoví původní zprávu m. Bez privátního klíče (n, d) je velmi obtížné obnovit otevřený text m ze zašifrovaného textu c. Proto mohou být zveřejněny n a e, bez toho aby byla ohrožena bezpečnost, která je základním požadavkem na šifrovací systémy s veřejným klíčem. Vzorec {36} a příslušné komentáře byly inspirovány zdroji (28) (29) Výhody a nevýhody RSA Kryptografický algoritmus RSA z hlediska šifrování a dešifrování pomalý, proto je jeho hlavní přínos především pro distribuci klíčů mezi symetrickými šiframi a pro elektronické podpisy. Během tvorby elektronického podpisu je využívána komprese, proto není nutno šifrovat velké soubory. Některé zprávy nasvědčují tomu, že RSA s délkou klíče 1024 bitů již může být prakticky prolomena 8 (například americkou NSA). Bezpečná délka šifrovacího klíče je v součastné době (rok 2014) minimálně 2048 bitů. 8 Bližší informace o prolomení RSA na video přednášce zde: 66

68 2.5 Kryptografie z pohledu svět a ČR Současným světovým trendem v komerční kryptografii je používání veřejných šifer. Tyto šifry zajišťují různé bezpečnostní služby v podobě důvěrnosti, autentizace, integrity, atd... (viz. kapitola 1.4 Cíle kryptografie). Je správné, aby jejich kvalita byla veřejně posuzována. Takovýchto šifer nejí mnoho, ale v komerční sféře mají velice silné zastoupení. Můžeme říci, že o jiných šifrách se v podstatě neví. (11) Kryptografie v USA Jedna ze současných norem Spojených státu amerických FIPS 197 a její algoritmus AES je uveden v kapitole Některé šifrovací zařízení a technické údaje o nich jsou předmětem federálních kontrol vývozu. Vývoz kryptografických modulů a implementace těchto standardů a technické údaje musí být v souladu s federálními předpisy a licencovány úřady exportní administrativy amerického ministerstva obchodu. Kontrola vývozu a dovozu je uvedena v CFR 9 (Code of Federal Regulations) hlava 15, část a hlava 15, část 742 a hlava 15 část 774, kategorie5, část 2. (15) Kryptografie v České republice z pohledu legislativy V České republice existuje tzv. NBÚ 10 (Národní bezpečnostní úřad), který zajišťuje kryptografický vývoj, výzkum a řídí kryptografické ochrany utajovaných skutečností V České republice byl vydán Zákon o ochraně utajovaných informací a o bezpečnostní způsobilosti 11., jedná se o Předpis č.412/2005 Sb. Certifikace kryptografické technologie, která je využívána k ochraně utajovaných informací, je prováděna v souladu s tímto zákonem. Základní přístupy k certifikaci kryptografických prostředků upravuje Předpis č. 432/2011 Sb. Vyhláška o zajištění kryptografické ochrany utajovaných informací 12. Problematiku elektronického podpisu řeší zákon 227/2000 Sb. Zákon o elektronickém podpisu 13. (30) (31) 9 elektronická podoba CFR dostupná zde: 10 Webové stránky NBÚ a jeho hlavní úkoly dostupné zde: 11 Zákon o ochraně utajovaných informací a o bezpečnostní způsobilosti, veznění pozdějších předpisů (jeho novely) je dostupný zde: 12 Vyhláška o zajištění kryptografické ochrany utajovaných informací (včetně novel) dostupná zde: 13 Zákon o elektronickém podpisu dostupný zde: 67

69 3 Návrh a realizace programového kódu na prolomení šifry RC4 hrubou silou Byl navrhnut a realizován program v C++ na lámání RC4 pomocí útoku hrubou sílou. Přičemž byl programový kód realizován tak, aby bylo možné ověřit závislost délky šifrovacího klíče na čase prolomení šifry hrubou silou. Výchozí požadavky na prolomení byly takové, že útočník (autor diplomové práce) bude znát otevřený text, šifrový text a délku šifrového klíče a z těchto hodnot bude pomocí vyzkoušení všech různých variací s opakováním hledat správný šifrový klíč. Návrh a realizaci a další podrobnosti popisují následující kapitoly, zaměřené na praktickou rovinu diplomové práce. Přílohy D, E, F a G obsahují okomentovaný naprogramovaný kód, přílohy jsou rozděleny podle jednotlivých souborů, přičemž Příloha D obsahuje main.h, Příloha E obsahuje Prolomeni.h, Příloha F obsahuje main.cpp a Příloha G obsahuje Prolomeni.cpp. 3.1 Návrh programového kódu Během návrhu programu na prolomení proudové šifry RC4 (šifru popisuje kapitola RC4) se vycházelo z obecných principů lámání šifry hrubou silou (viz. kapitola Útok hrubou silou). Hrubou silou je teoreticky možné prolomit jakýkoli šifrovací algoritmus, ale v drtivém případě to není možné dokázat ve využitelném čase. Takže je v praxi tento útok nepoužitelný, vytvořený program umožňuje pracovat s malými délkami klíčů. Pokud bude použit pro zašifrování otevřeného textu klíč s malou délkou, lze šifru RC4 prolomit ve využitelném čase. Šifrovací klíč je na začátku algoritmu vygenerován náhodně a jeho rozsah je v programu nastaven tak, že může nabývat hodnot v rozsahu písmen malé abecedy (a-z). Od rozsahu hodnot, který může klíč nabývat, se taky odvíjí doba prolamování šifry RC4. Nejvíce však dobu lámání šifry ovlivňuje délka toho šifrovacího klíče, nastavení jeho délky je jedno z nejdůležitějších nastavení v programovém kódu, aby mohla být vytvořena statistická studie na závislost délky klíče na čase prolomení šifry RC4. Příklad šifrového klíče vytvořeného náhodným generátorem v programu: jdgfhuqoqu Můžeme vidět, že se opravdu jedná o znaky malé abecedy a šifrovací klíč má délku 10. Tímto klíčem je následně zašifrován kryptografickým algoritmem RC4 otevřený text, který zní: 68

70 Toto je otevreny text, ktery bude zasifrovan pomoci sifry RC4 Šifrový text (kryptogram) v hexadecimálním formátu bude, po využití zmíněného šifrovacího klíče a zmíněného otevřeného text vypadat takto: d7 4a 8b e4 94 b1 3c 56 0b d d d5 ab a2 d6 6c 94 3b 2d c1 9f 99 7c ab e ea 72 e1 82 9b ba d 6e df b3 5e ea cb c 53 c e bf 0c 4c fd f3 f9 e1 2c Tabulka 7 - Příklad šifrového textu zašifrovaného RC4 v hexadecimálním formátu Zdroj: vytvořený programový kód Programový kód vychází ze znalosti otevřeného a šifrovacího textu a pomocí těchto nejdůležitějších indicií hledá správný šifrový klíč. Podaří-li se získat správný šifrový klíč, znamená to, že je šifra RC4 prolomena hrubou silou. Tento šifrový klíč se díky útoku hrubou silou, ve kterém jsou zkoušeny všechny varianty klíče, podaří získat naprosto vždy, ale tato operace může trvat například i stovky let, proto bylo při spuštění programu pracováno s pouze malými délkami šifrovacích klíčů, aby bylo možné měření hodnot v diplomové práci vůbec dokončit. V případě vyhledání správného šifrovacího klíče se jedná o zkoušení jednotlivých variací s opakováním. Jedná se o variace s opakováním, protože variace jsou vždy uspořádané, tzv. záleží u nich na pořadí prvků. Opakování znamená, že jeden prvek (v tomto případě znak malé abecedy) může být v šifrovacím klíči zahrnut vícekrát. Byl vytvořen rekurzivní algoritmus (rekurze je funkce, která volá sama sebe), který postupně prochází všechny hodnoty, kterých může šifrovací klíč nabývat, dokud tento klíč neobjeví. Vždy když je vygenerován nový potenciální klíč, je pomocí tohoto klíče dešifrován algoritmem RC4 zašifrovaný text, to znamená, že dostaneme nový otevřený text, který se porovná s původním otevřeným textem. Pokud budou oba otevřené texty naprosto shodné, znamená to, že byl objeven správný šifrový klíč a vyhledávání bude ukončeno. V případě, že tyto otevřené texty nejsou shodné, je generována další variace s opakováním (další možný klíč) a postup je opakován. Během běhu programu je měřen čas, měření času je spuštěno vždy v okamžiku zahájení hledání správného šifrovacího klíče a skončí ihned ve chvíli, kdy je správný klíč nalezen. Měření času je v programu prováděno v jednotkách sekundy. 69

71 Vývojový diagram vytvořeného programového kódu na prolomení RC4 hrubou silou (obrázek 23) znázorňuje jednotlivé nejdůležitější kroky algoritmu, uvedené symboly charakterizují jednotlivé procesy a šipky určují tok řízení. Obrázek 23 - Vývojový diagram vytvořeného programu na prolomení RC4 hrubou silou formátu Zdroj: Autor Diplomové práce 70

72 3.2 Realizace a spouštění programového kódu Následující podkapitoly diplomové práce se věnují programovému kódu (uveden v Příloze D, E, F, G), dále zmiňuje software a hardware, na kterém byl program realizován a spouštěn Software využitý při realizaci a spouštění programu Použité softwarové technologie zobrazuje následující tabulka: Programovací jazyk C++ Kryptografický algoritmus RC4 Operační systém Windows 7 Ultimate 64 bitový Vývojové prostředí Visual Studio 2008 Potřebné knihovny 14 Crypto Tabulka 8 - Použité softwarové technologie pro lámání RC4 hrubou silou Zdroj: Autor Diplomové práce K vytvoření a následnému spouštění programového kódu na prolomení šifry RC4 hrubou silou byl použit operační systém Windows bit. Program byl vytvářen ve vývojovém prostředí Microsoft Visual Studio Programování probíhalo v programovacím jazyce C++. V současné době patří C++ mezi nejrozšířenější programovací jazyky. Pro certifikované šifrování a dešifrování kryptografickým algoritmem RC4 byla stažena freeware C++ knihovna Crypto++ verze (pozor novější verze Crypto++ již neobsahují šifru RC4). Pro spuštění programu je třeba tuto knihovnu správně nainstalovat do vývojového prostředí Hardware využitý při realizaci a spouštění programu Programový kód byl vyvíjen a spouštěn na notebooku autora diplomové práce, nejdůležitější parametry notebooku zobrazuje následující tabulka: notebook MSI GT640 procesor Inter Core(TM) i7 CPU Q 1.60GHZ operační paměť 4GB grafická karta GeForce GTS 250M Tabulka 9 - Použitý hardware pro lámání šifry RC4 hrubou silou Zdroj: Autor Diplomové práce Všechny uvedené komponenty měly nejnovější softwarové ovladače. Více jádrový procesor umožnil spouštění programu vícekrát najednou. Respektive se jednalo o naprosto stejné programy pod různým jménem (aby se proces v paměti nejmenoval stejně). Jedno jádro procesoru, obsluhuje vždy jeden program, což je celkově 12% - 13% (průměr 12,5% ) 14 Crypto++ je freewarová C++ knihovna kryptografických schémat, ke správnému spuštění programu je třeba stáhnout a naincludovat do Visual studia verzi 5.5.2, ke stažení zde: 71

73 z celkového výkonu procesoru PC (viz. obrázek 24). Vícenásobné spuštění programu umožnilo sběr více dat v kratším čase, než kdyby byl program pro prolomení šifry spuštěn pouze jednou, viz. následující obrázek. Obrázek 24 - Zatížení procesoru během běhu programů na prolomení šifry RC4 Zdroj: Autor Diplomové práce Na obrázku 24 uvedeném výše, je vidět celkové zatížení procesoru i jeho jednotlivých jader, při běhu čtyř stejných programů na prolomení šifry RC4 (programy se liší názvem, aby jich mohlo být spuštěno více najednou). Pět stejných programů na lámání šifry RC4 najednou nebylo spouštěno, jelikož je při spuštění pěti programů nepatrně snížen výkon všech jader a mohlo by to nepatrně znehodnocovat naměřené hodnoty. Z důvodu, že prolamování šifry RC4 s hrubouu silou trvá s kratší délkou klíče i několik dní. Každý program láme kryptografický algoritmus RC4 hrubou silou, o jiné délce šifrového klíče. Z údaje zatíženíí procesoru celkem (vpravo nahoře), je vidět, že procesor je převážně zatížen pouze běhy programů na prolomení šifry RC4. 72

74 3.3 Nejdůležitější proměnné, funkce, procedury a další části programového kódu Celý programový kód v jazyce C++ obsahují Přílohy D, E, F, G. Program byl zhotoven jako projekt s názvem ProlomeniRC4PavelVojtech. Vznikl ve vývojovém prostředí Visual studio 2008 a je rozdělen do čtyř souborů, jedná se o zdrojové soubory main.cpp, Prolomeni.cpp a k nim přidružené hlavičkové soubory main.h a Prolomeni.h. Program je řádně okomentován viz. přílohy a zdrojový kód v projektu. Vývojový diagram na obrázku 23 popisuje některé níže uvedené funkce a procedury obecněji Soubor Prolomeni Soubor Prolomeni obsahuje konstruktor: Prolomeni::Prolomeni(std::string otext, std::string stext, int dklice) { this->otevrenytext = otext; this->delkaklice = dklice; this->sifrovytext = stext; } Parametry konstruktoru jsou otevřený text, šifrový text (otevřený text je zašifrovaný pomocí šifry RC4) a délka šifrovacího klíče, tyto parametry jsou známé dopředu před samotným záhájením prolamování šify RC4. Funkce, která postupně generuje potenciální klíče, zde: bool Prolomeni::najdiKlic(std::vector<char> &genklic, int k, int n, int index) { if (index < k) //parametr k značí délku klíče { //ASCII_a má hodnotu a v ASCII tabulce, tudíž 97 for(int i = ASCII_a; i < ASCII_a + n; ++i) { //v každém cyklu vygeneruje jednu možnost variace a posune parametr i o 1 genklic[index] = i; //funkce se zavolá rekurzivně a vygeneruje další možnost, která je založena na předchozí variaci if (najdiklic(genklic, k, n, index + 1)) return true; } } 73

75 } else { if (zkusprolomit(genklic)) //zjistí, zda je klíč ten správný { return true; //máme nalezený správný šifrový klíč } } return false; //klíč nebyl ten správný, pokračuje hledání Rekurzivní funkce generuje jednotlivé variace s opakováním, dokud nenarazí na tu správnou - tím pádem je nalezen šifrovací klíč. Prohledávání začíná u znaku a to znamená, že klíč obsahující znaky a bude nalezen ve výsledku rychleji, než klíč obsahující znaky z. Funkce zkusprolomit(genklic) má za úkol otestovat, zda-li je vygenerovaný klíč správný, pokud není, je následně generována další variace. Funkce bool Prolomeni::zkusProlomit(std::vector<char> klic)nejprve převede potenciální klíč z vektoru charů na pole bajtů. Poté zkusí originální zašifrovaný text dešifrovat pomocí získaného klíče. Dešifrování probíhá algoritmem RC4 pomocí C++ knihovny Crypto++. Následně porovná původní originální text a otevřený text získaný dešifrováním potenciálního klíče takto: if (desifrovanytext.compare(otevrenytext) == 0){ return true; } return false; Jestliže se oba otevřené texty shodují, byl nalezen správný šifrovací klíč a šifra RC4 byla prolomena hrubou silou, pokud se otevřené texty neshodují, funkce vrací false a funkce najdiklic() pokračuje dále Soubor main Soubor main obsahuje for cyklus, který určuje, kolikrát bude šifra prolomena (POCET_POKUSU) a pro jakou délku klíče (MAX_DELKA_KLICE). Například z obrázku 25 uvedeném níže lze vyčíst, že se bude jednat o čtyři pokusy pro délku klíče až pět (délka 1-5), přičemž z obrázku 25 můžeme vidět, že druhý pokus u délky číslo pět, ještě není dokončen. Tím pádem zbývající dvě prolomení u šifrovacího klíče délky pět ještě nezačali. 74

76 Zmíněný for cyklus: for (int delkaklice = 1; delkaklice <= MAX_DELKA_KLICE; ++delkaklice) { for (int pocetpokusu = 1; pocetpokusu <= POCET_POKUSU; ++pocetpokusu) { testujklic(delkaklice); } } MAX_DELKA_KLICE a POCET_POKUSU jsou konstanty definované v main.h. testujklic(delkaklice) je hlavní metoda, která láme šifru RC4 hrubou silou (hledá správný šifrovací klíč) a měří čas (za jak dlouho k nalezení došlo). Vyváří otevřený text: string otevrenytext = "Toto je otevreny text, ktery bude zasifrovan pomoci sifry RC4"; Následně je uvedený otevřený text zašifrován šifrovacím algoritmem RC4, který poskytuje C++ knihovna Crypto++: Soubor main.cpp obsahuje proceduru pro prvotní vygenerování šifrovacího klíče, klíč je generován náhodně funkcí rand(). Metoda vyžaduje číselnou hodnotu délky klíče (length), tato délka znamená, jak dlouhý bude vygenerovaný klíč. Klíč je uložen do pole bajtů (outkey[i]) a může nabývat 25 hodnot malé abecedy. Na pozici 97 se nachází a (viz. ASCII tabulka 15 ). Z programového kódu uvedeného níže vyplývá, že šifrovací klíč může nabývat těchto hodnot: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y Čím více hodnot může klíč nabývat, tím je těžší šifru prolomit hrubou silou (prolomení trvá déle). void generovaniklice(int length, byte *outkey) { for (int i = 0; i < length; ++i){ outkey[i] = 97 + (byte)(rand() % 25); } } Soubor main dále obsahuje proceduru pro vypsání šifrovacího klíče viz. Příloha F. 15 výpis znaků ASCII tabulky lze najít například zde: 75

77 3.4 Výstupy z programu Programový výstup musí evidovat šifrový klíč, jeho délku a čas, za který byl daný klíč nalezen. Příklad výstupu na obrazovce je zobrazen na následujícím obrázku. Obrázek 25 - Příklad výstupu programu na obrazovce Zdroj: výstup vytvořeného programu na lámání RC4 hrubou silou Z obrázku je patrné, jak velký má vliv délka klíče na prolomení šifry. U posledního údaje klíče na obrázku 25 si můžeme všimnout, že ještě nemá přiřazen čas, za který byl tento klíč nalezen, to protože útok hrubou silou stále ještě probíhá a uvedený klíč ještě nebyl nalezen, tzv ještě nebyla nalezena správná variace s opakováním. Pro jednodušší zpracovávání údajů nemusí být využíván výstup a na obrazovce (aby se údaje nemusely přepisovat), ale data mohou být uloženy do souboru (ve formátu nazev_souboru.csv) a následně zpracovány v programu Excel. 76

78 4 Studie vypracovaná na základě výstupních hodnot programového kódu V programovém kódu je šifrovací klíč (v tabulkách označen jako klíč) generován zcela náhodně. Rozsah klíče je programem nastaven tak, že může nabývat 25 hodnot, jedná se o znaky malé abecedy a až y. V tabulkách uvedená veličina čas, charakterizuje čas potřebný pro nalezení správného šifrovacího klíče a tudíž prolomení šifry RC4 hrubou silou. Čas měří programový kód na desetiny vteřiny. Aby bylo možno vypracovat studii, musela být šifra RC4 lámána pro různé délky klíčů (viz. proměnná délka klíče). 4.1 Výstupní hodnoty z programového kódu na prolomení šifry RC4 hrubou silou Následující tabulky zobrazují šifrovací klíč, jeho délku a čas potřebný na prolomení šifry RC4 hrubou silou při znalosti otevřeného a šifrovacího textu. klíč délka klíče čas [s] i 1 0,00 w 1 0,00 q 1 0,00 w 1 0,01 c 1 0,00 p 1 0,00 b 1 0,00 v 1 0,01 y 1 0,00 g 1 0,00 průměr 1 0,005 Tabulka 10 - Čas potřebný pro nalezení klíče délky 1 Zdroj: výstup vytvořeného programu na lámání RC4 hrubou silou Z naměřených hodnot vyplývá, že prolomení šifry RC4 hrubou silou s délkou klíče jedna je uskutečněno téměř okamžitě. Hodnota času 0,00 znamená, že nalezení klíče se pohybovalo pod hodnotou 0,01 vteřin, protože čas je programovém kódu měřen přesně převážně do řádu desetin. Průměrná hodnota prolomení klíče o velikosti jeden znak je 0,005 vteřin. 77

79 Následující tabulka zobrazuje hodnoty prolomení šifry RC4 hrubou silou s délkou šifrovacího klíče dvě: klíč délka klíče čas [s] nu 2 0,04 ee 2 0,01 vd 2 0,04 mv 2 0,04 yh 2 0,08 eo 2 0,01 nc 2 0,04 ni 2 0,02 gd 2 0,01 fm 2 0,02 průměr 2 0,03 Tabulka 11 - Čas potřebný pro nalezení klíče délky 2 Zdroj: výstup vytvořeného programu na lámání RC4 hrubou silou Z naměřených hodnot vyplývá, že prolomení šifry RC4 hrubou silou s délkou šifrovacího klíče dvě je uskutečněno téměř okamžitě. Průměrná hodnota nalezení klíče o velikost dvou znaků trvá ve vytvořeném programovém kódu 0,03 vteřiny. Tabulka 12 uvedená níže, zobrazuje čas potřebný, pro prolomení šifry RC4 s délkou šifrovacího klíče tři metodou hrubou silou: klíč délka klíče čas [s] wwq 3 1,35 vkf 3 1,28 pjn 3 0,82 yet 3 1,43 fpl 3 0,37 hwx 3 0,51 cfc 3 0,16 usk 3 1,34 cuq 3 0,19 gsg 3 0,35 aqc 3 0,04 cuh 3 0,16 wfj 3 1,40 epx 3 0,26 rep 3 1,19 syi 3 1,23 uup 3 1,30 78

80 aqc 3 0,04 cuh 3 0,16 wfj 3 1,40 průměr 3 0,75 Tabulka 12 - Čas potřebný pro nalezení klíče délky 2 Zdroj: výstup vytvořeného programu na lámání RC4 hrubou silou Z naměřených hodnot vyplývá, že pro prolomení kryptografického algoritmu RC4 s délkou šifrovacího klíče tři hrubou silou, je možné do 1,5 vteřiny a průměrně trvá 0,75 vteřiny. Dobu nalezení správného šifrovacího klíče při délce čtyři, zobrazuje následující tabulka: klíč délka klíče čas [s] vcft 4 52,43 opft 4 22,28 xdmq 4 36,31 nwgh 4 21,58 admi 4 0,170 cnhi 4 3,594 gifc 4 9,99 aboi 4 0,12 vrck 4 34,25 flcl 4 8,46 xcvc 4 55,32 jfjs 4 22,9 pgqm 4 24,7 jlpq 4 15,67 uwtf 4 32,35 yobo 4 38,26 egrp 4 6,530 sutw 4 29,28 xecn 4 36,27 nmii 4 21,40 průměr 4 23,59 Tabulka 13 - Čas potřebný pro nalezení klíče délky 4 Zdroj: výstup vytvořeného programu na lámání RC4 hrubou silou 79

81 Doba potřebná na prolomení šifry RC4 s délkou šifrovacího klíče pět: klíč délka klíče čas [s] sqval 5 731,09 gdslm 5 240,49 rwgcg 5 711,08 jeavd 5 360,56 xpayf 5 925,78 rgrbs 5 675,64 ujqyi 5 799,33 scims 5 704,62 ioeoo 5 334,31 cmuvp 5 96,82 fvblg 5 226,93 axwpy 5 37,07 damoa 5 119,43 cccye 5 79,66 nmafy 5 528,67 ysogt 5 969,50 nmmxl 5 526,97 acpci 5 1,49 yscpg 5 968,60 heogr 5 284,39 průměr 5 466,12 Tabulka 14 - Čas potřebný pro nalezení klíče délky 5 Zdroj: výstup vytvořeného programu na lámání RC4 hrubou silou Můžeme si všimnout, že prolomit hrubou silou šifru RC4 s délkou šifrovacího klíče pět, trvá ve vytvořeném programovém kódu, který byl puštěn na běžném notebooku od několika vteřin, do patnácti minut. Průměrně trvá prolomení 466,12 vteřin v přepočtu pod osm minut. Pokud má šifra RC4 délku šifrovacího klíče šest, prolomení hrubou silou trvá v řádu hodin, viz. následující tabulka: klíč délka klíče čas [s] ghmjcn ,07 ehbphl ,94 sjjtqt ,76 muuehb ,17 qsjerg ,16 upimjb ,83 srjemm ,46 xubvuo ,09 ibeowk ,31 80

82 fwhufk ,42 htqcwh ,04 jxafxb ,52 bpbfls ,12 tvllyg ,1 skxleg ,47 xeomhl ,86 fkjapy ,42 gttgcc ,89 ispvgu ,98 aowens 6 522,68 průměr ,51 Tabulka 15 - Čas potřebný pro nalezení klíče délky 6 Zdroj: výstup vytvořeného programu na lámání RC4 hrubou silou Vytvořený programový kód lámal šifru RC4 s délkou klíče sedm i několik dní, viz. následující tabulka: klíč délka klíče čas [s] urmyjnk ,52 bpxqsgx ,60 aeruecp ,08 nqceopb ,60 nkcnxew ,70 průměr ,30 Tabulka 16 - Čas potřebný pro nalezení klíče délky 7 Zdroj: výstup vytvořeného programu na lámání RC4 hrubou silou Průměrné prolomení šifry RC4 s délkou klíče sedm hrubou silou trvá ,30 vteřin, což je v přepočtu tři dny. Protože prolomení šifry RC4 hrubou silou při délce klíče sedm tvá několik dní nepřetržitého běhu notebooku, nebylo možno v rámci včasného dokončení Diplomové práce zaznamenat hodnoty více náhodně vygenerovaných šifrovacích klíčů délky sedm. Autor diplomové práce potřeboval ještě čas na pokus o prolomení šifry o délce klíče osm a více. Lze se domnívat, že prolomení šifry RC4 hrubou silou s délkou šifrovacího klíče osm trvá několik týdnů, protože po jednom týdnu běhu programu nebyl šifrovací klíč stále nalezen a pokus byl kvůli včasnému odevzdání Diplomové práce přerušen, stejně tak byly přerušeny pokusy o prolomení šifry s délkou šifrovacího klíče devět. 81

83 4.2 Časová závislost prolomení šifry s ohledem na délku klíče Následující graf zobrazuje průměrné hodnoty vypočítané z naměřených hodnot (tabulky 10, 11, 12, 13, 14, 15, 16) časové doby prolomení šifry RC4 hrubou silou, pro jednotlivé délky šifrovacích klíčů. Vodorovná osa zobrazuje délku klíče. Svislá osa zobrazuje čas v sekundách, hodnoty na vodorovné ose jsou pro lepší představu v logaritmickém měřítku Průměrný čas (v sekundách) potřebný pro prolomení šifry RC4 hrubou silou v závislosti na délce šifrovacího klíče Obrázek 26 - Čas potřebný pro prolomení šifry RC4 v závislosti na délce šifrovacího klíče Zdroj: zpracované výstupní hodnoty z programového kódu Obrázek 26 potvrzuje časovou závislost prolomení šifry s ohledem na délku klíče. 82

84 Závěr Teoretická rovina Diplomové práce nejdříve nastiňuje důležitou kryptologickou terminologii, kryptografická primitiva, cíle a některé kryptoanalytické útoky. Následně práce analyzuje symetrické a asymetrické šifry. Kryptografické šifrovací algoritmy byly nejdříve charakterizovány a následně byly rozebírány jejich klady a zápory, případně implementační omezení. Diplomová práce se konkrétně zaměřila na proudovou symetrickou šifru RC4, blokovou symetrickou šifru AES a asymetrickou šifru RSA. Z kapitoly Studie kryptoanalytických útoků na symetrickou šifru AES vyplývá, že plné 128, 192 a 256 bitové verze AES ještě nemohou být v současnosti (rok 2014) prolomeny v praxi, protože i kdyby útočník využil nejmodernější současné technologie, tak mu momentálně chybí druh útoku, který by umožnil prolomení šifry AES ve využitelném čase. Kryptografie se zabývá především bezpečnostními opatřeními, pokud se podaří prolomit n rund šifry, může být navržena s 2n nebo 3n rundami. Ze současných typů útoků na AES je zřejmé, že bezpečnostní rezerva AES není tak velká, jak se dříve očekávalo. V současné době neexistuje důvod upustit od AES a favorizovat jiný kryptografický algoritmus. NSA by klidně mohla v budoucnosti zvýšit počet rund všech tří variant AES. V tomto momentě navrhuji pro 128 bitovou AES 16 rund, 192 bitovou AES 20 rund a 256 bitovou AES 28 rund. Počet rund algoritmu by mohl být navýšen ještě i více, pokud nechceme, aby se standard FIPS 197 v budoucnu znovu a znovu revidoval. Aneb jak říkají kryptografové: Kryptoanalytické útoky se vždycky jen zlepšují, ale se nikdy nezhoršují. Jednoduché matematické pojmy (prvočísla, faktorizace celého čísla, umocňování) měly dramatický dopad na počítačovou bezpečnost a to zejména pro elektronický obchod. Teorie dobře funguje v praxi prostřednictvím asymetrické šifry RSA. Z hlediska asymetrické kryptografie matematici stále neznají nebo nezkusili rychlejší metodu faktorizace celého čísla, než tu která je v současnosti dostupná. Z hlediska výzkumu je zapotřebí, aby se pokusili nalézt rychlejší způsoby. Mnohem rychlejší metody faktorizace celého čísla již teoreticky existují, ale běžely by na super počítačích, které dosud nebyly postaveny. Pokud by byl vyvinut v plném rozsahu kvantový počítač, bude možné šifry prolamovat mnohem rychleji, než je tomu doposud. 83

85 V případě, že by jedna nebo více současně bezpečných asymetrických šifer byla v budoucnu prolomena, bylo by užitečné mít na výběr další alternativu. Toto je další důležitou oblastí výzkumu, jaké další těžké problémy v matematice jsou, z nichž by mohly být odvozeny kryptografické systémy s veřejným klíčem a schémata digitálního podpisu. V praktické rovině byl navržen a vytvořen programový kód v programovacím jazyce C++, který umožňuje prolomení rychlé proudové šifry RC4 hrubou silou. Vycházelo se ze zadání, že útočník (autor diplomové práce) zná otevřený i zašifrovaný text. Data získaná z výstupních hodnot programu umožnila realizovat statisticky vyhodnocenou studii potvrzující časovou závislost prolomení kryptografického algoritmu s ohledem na délku šifrovacího klíče. Před zahájením samotného programování kódu v C++ na prolomení šifry RC4 hrubou silou byla provedena důkladná analýza daného problému. Byl vytvořen Vývojový diagram (obrázek 23), který znázorňuje jednotlivé nejdůležitější kroky algoritmu. Do vývojového prostředí Visual studio 2008 byla includována kryptografická knihovna Crypto++, obsahující unifikovanou šifru RC4, kterou bylo poté možno prolomit hrubou silou. Během programování programového kódu v C++ byly využity standardní programátorské postupy, tj. trasování (využívání krokování při hledání chyb), testování a ladění programu. Je třeba si uvědomit, že šifrovací klíč je v programovém kódu náhodně generován tak, aby mohl nabývat pouze znaky o 25 hodnotách (znaky a až y). Tento postup byl takto zvolen, protože lámání šifry hrubou silou je velice časově náročná operace a při zvolení většího počtu znaků, který by mohl šifrovací klíč nabývat, by se nepodařilo tolikrát prolomit šifru RC4 hrubou silou a nepodařilo by se v omezeném čase, který je na vypracování Diplomové práce naměřit více hodnot pro vypracování studie (bylo třeba řádně dodržet termín odevzdání Diplomové práce). V reálném prostředí může šifrovací klíč nabývat mnohem více hodnot (znaky malé a velké abecedy, číslice, ostatní znaky,...), tím pádem se mnohonásobně zvyšuje počet variací s opakováním, které je třeba prohledat k nalezení správného šifrovacího klíče a nalezení správného šifrovacího klíče by trvalo déle. Časovou závislost prolomení šifry RC4 hrubou silou s ohledem na délku klíče zobrazuje obrázek 26. Z naměřených hodnot (kapitola 4.1 Výstupní hodnoty z programového kódu na prolomení šifry RC4 hrubou silou) si můžeme všimnout, že prolomit hrubou silou šifru RC4 s délkou šifrovacího klíče pět trvá na běžném notebooku od několika vteřin, do patnácti minut (průměrně osm minut). Přičemž ta samá operace s délkou šifrovacího klíče sedm trvá průměrně tři dny. Délku šifrovacího klíče osm se nepodařilo autorovy diplomové práce během 84

86 zhruba dvou týdenního neustálého běhu programu vůbec prolomit. Z tohoto důvodu bych doporučoval používat délky šifrovacích klíčů (nebo hesel obecně) minimálně osm. Protože tím výrazně zvýšíme počet variací s opakováním, které je třeba prohledat pro nalezení správného šifrovacího klíče. Jakýkoli šifrovací kryptografický algoritmus může být prolomen hrubou silou. Tedy tak, že postupně vyzkoušíme všechny možné variace s opakováním, které může šifrovací klíč nabývat. Diplomová práce dokazuje, že časová závislost prolomení kryptografického algoritmu se zvětšuje s přibývající délkou šifrovacího klíče. Pokud bude šifrovací klíč dostatečně dlouhý (například 16 až 32 znaků), může zmíněná operace trvat při využití nejlepších součastných technologií desítky nebo stovky let. Kryptografický algoritmus se tak stává odolný na útok hrubou silou, protože šifru nelze prolomit ve využitelném čase. 85

87 Literatura (1) KLÍMA, Vlastimil. I. Moderní kryptografie. [Online] 2.1, [Citace: ] (2) MENEZES, Alfred J, OORSCHOT, Paul C a VANSTONE, Scott A. Handbook of applied cryptography. Vyd. 5. Boca Raton : CRC Press, str ISBN (3) PINKAVA, Jaroslav. Úvod do kryptologie. [Online] [Citace: ] (4) SHANNON, Claude E. Bell System Technical Journal: Communication Theory of Secrecy Systems. [Online] Bell System, [Citace: ] (5) BITTO, Ondřej. Šifrování a biometrika aneb tajemné bity a dotyky. Vyd. 1. Kralice na Hané : Computer Media, str ISBN (6) LEIBO, Li, KETING, Jia a Wang, XIAOYUN. Improved Meet-in-the-Middle Attacks on AES-192 and PRINCE. [Online] Key Laboratory of Cryptologic Technology and Information Security, Ministry of Education, China, [Citace: ] (7) BOGDANOV, Andrey, KHOVRATOVICH, Dmitry a RECHBERGER, Christian. Biclique Cryptanalysis of the Full AES. [Online] K.U. Leuven, Belgium Microsoft Research Redmond, USA; ENS Paris and Chaire France Telecom, France, [Citace: ] (8) KLÍMA, Vlastimil. II. Symetrické šifrovací systémy. [Online] 2.1, Crypto-World, [Citace: ] (9) PASEKA, Jan. Kryptografie. [Online] Masarykova univerzita, [Citace: ] 86

88 (10) MISTER, S a TAVARES, S E. Cryptanalysis of RC4-like Ciphers. [Online] Security Techlogogy Group, Ontario, Canada, [Citace: ] (11) KLÍMA, Vlastimil. RC4 Šifra, která mícha karty. [Online] Chip, [Citace: ] (12) CONNOR, Luke O. On the Entropy of Arcfour Keys. [Online] Cryptology eprint Archive, [Citace: ] (13) STANEK, Martin. Kryptológia blokové šifry. [Online] [Citace: ] a/teoria%20kodovania%20a%20kryptologia%20%283itm%204itm%29. (14) KLÍMA, Vlastimil. III. Mody činnosti blokových šifer a hašovací funkce. [Online] 2.1, Crypto-World, [Citace: ] (15) Federal Information Processing Standards Publication 197. Advanced Encryption Standard (AES). [Online] National Institute of Standards, [Citace: ] (16) NECHVATAL, James, a další. Report on the Development of the Advanced Encryption Standard (AES). [Online] U.S. Department of Commerce, [Citace: ] (17) DAEMEN, Joan a RIJMEN, Vincent. AES Proposal: Rijndael. [Online] National Institute of Standards and Technology, [Citace: ] (18) LÓRENCZ, Róbert. Bezpečnost 7. Proudové šifry, blokové šifry, DES, 3DES, AES, operační módy. [Online] ČVUT Fakulta informačních technologii Katedra počítačových systémů, [Citace: ] (19) LU, Jiqiang, a další. New impossible differential attacks on AES. Seoul : Indocrypt, stránky pp LNCS

89 (20) MALA, Hamid, a další. Improved Impossible Differential Cryptanalysis of 7-Round AES-128. Gong, G., Gupta, K.C. : INDOCRYPT, stránky (21) DUNKELMAN, Orr, KELLER, Nathan a SHAMIR, Adi. Improved Single-Key Attacks on 8-round AES-192 and AES-256. [Online] Faculty of Mathematics and Computer Science, Weizmann Institute of Science, [Citace: ] (22) DERBEZ, Patrick, FOUQUE, Pierre Alain a JEAN, Jérémy. Improved Key Recovery Attacks on Reduced-Round AES in the Single-Key Setting. [Online] École Normale Supérieure, France, [Citace: ] (23) DERBEZ, Patrick a FOUQUE, Pierre Alain. Exhausting Demirci-Selçuk Meet-in-the- Middle Attacks against Reduced-Round AES. [Online] École Normale Supérieure, France, [Citace: ] (24) BIRYUKOV, Alex a KHOVRATOVICH, Dmitry. Related-key Cryptanalysis of the Full AES-192 and AES-256. [Online] University of Luxembourg, [Citace: ] (25) TUNSTALL, Michael. Improved "Partial Sums"-based Square Attack on AES. [Online] Department of Computer Science, University of Bristol, [Citace: ] (26) COURTOIS, Nicolas T. Is AES a Secure Cipher? [Online] Independent AES security observatory, [Citace: ] (27) Jessica, J BENZ. PGP: A Hybrid Solution. [Online] 1.2e, SANS Institute, [Citace: ] (28) COUTINHO, S. C. The Mathematics of Ciphers: Number Theory and RSA Cryptography. Natick, Mass. : A K Peters, str ISBN (29) KALISKI, Burt. The Mathematics of the RSA Public-Key Cryptosystem. [Online] RSA Laboratories, [Citace: ] (30) Národní bezpečnostní úřad. Právní předpisy. [Online] NBÚ. [Citace: ] 88

90 (31) PINKAVA, Jaroslav. Normy a mezinárodní doporučení v oblasti elektronického podpisu a kryptografie. [Online] Crypto-World, [Citace: ] (32) ANONYMOUS. RC4 Source Code. [Online] CypherPunks mailing list, [Citace: ] 89

91 Seznam zkratek AES Advanced Encryption Standard ASCII American Standard Code for Information Interchange DES Data Encryption Standard DSP Digital Signal Processor CACR Centre for Applied Cryptographic Research CBC Cipher Block Chaining CFB Cipher FeedBack CFR Code of Federal Regulations COSIC Computer Security and Industrial Cryptography CTR CounTeR CSOR Computer Security Objects Register DSA Digital Signature Algorithm ECB Electronic CodeBook ECC Elliptic Curve Cryptography FIPS Federal Information Processing Standards KSA Key Scheduling Algorithm MAC Message Authentication Code MIT Massachusetts Institute of Technology MITM Meet In The Middle NBÚ Národní Bezpečnostní Úřad NITS National Institute of Standards and Technology NSA National Security Agency OFB Output FeedBack PDF Portable Document Format PRN PseudoRandom Number PRGA Pseudo Random Generation Algorithm RC4 Riverst Cypher 4 RDP Remote Desktop Protocol RSA Rivest Shamir Adleman SSL Secure Sockets Layer TLS Transport Layer Security TMTO Time Memory Trade Off 90

92 WEP WPA WWW XOR Wired Equivalent Privacy Wifi Protected Access World Wide Web exclusive OR 91

93 Seznam obrázků Obrázek 1 - Kryptografická primitiva Obrázek 2 - Základní schéma kryptografického systému Obrázek 3 - d-dimenzionální biclique Obrázek 4 - Základní schéma symetrického šifrovacího systému Obrázek 5 - Procesy šifrování a dešifrování synchronní proudové šifry Obrázek 6 - Procesy šifrování a dešifrování asynchronní proudové šifry Obrázek 7 - Princip RPGA Obrázek 8 - Náhodné permutace Obrázek 9 - ECB mód n-bitových blokových šifer Obrázek 10 - CBC mód n-bitových blokových šifer Obrázek 11 - CFB mód n-bitových blokových šifer Obrázek 12 - OFB mód n-bitových blokových šifer Obrázek 13 - Vstup, výstup, pole Stav Obrázek 14 - Nastínění procedury KeyExpansion() v 6 krocích Obrázek 15 - Procedura KeyExpansion() algoritmu AES Obrázek 16 Šifrovací a dešifrovací procesy AES Obrázek 17 - Jedna runda šifrovacího procesu AES Obrázek 18- ByteSub() působí na jednotlivé bajty pole Stav Obrázek 19 ShiftRows() cyklicky posouvá poslední tři řádky pole Stav Obrázek 20 - Procedura MixColumns() na dvourozměrném poli Stav Obrázek 21 - Dešifrovací proces AES Obrázek 22- Základní princip asymetrického šifrování Obrázek 23 - Vývojový diagram vytvořeného programu na prolomení RC4 hrubou silou formátu Obrázek 24 - Zatížení procesoru během běhu programů na prolomení šifry RC Obrázek 25 - Příklad výstupu programu na obrazovce Obrázek 26 - Čas potřebný pro prolomení šifry RC4 v závislosti na délce šifrovacího klíče

94 Seznam tabulek Tabulka 1 - Pravdivostní tabulka XOR Tabulka 2 - Specifikace AES, počet rund v závislost na délce klíče a velikosti bloku Tabulka 3 - Shrnutí nejúspěšnějších teoretických útoků na šifru AES Tabulka 4 - Shrnutí nejúspěšnějších teoretických útoků na šifru AES Tabulka 5- Shrnutí nejúspěšnějších teoretických útoků na šifru AES Tabulka 6 - Čtvercové kryptoanalytické útoky na AES Tabulka 7 - Příklad šifrového textu zašifrovaného RC4 v hexadecimálním formátu Tabulka 8 - Použité softwarové technologie pro lámání RC4 hrubou silou Tabulka 9 - Použitý hardware pro lámání šifry RC4 hrubou silou Tabulka 10 - Čas potřebný pro nalezení klíče délky Tabulka 11 - Čas potřebný pro nalezení klíče délky Tabulka 12 - Čas potřebný pro nalezení klíče délky Tabulka 13 - Čas potřebný pro nalezení klíče délky Tabulka 14 - Čas potřebný pro nalezení klíče délky Tabulka 15 - Čas potřebný pro nalezení klíče délky Tabulka 16 - Čas potřebný pro nalezení klíče délky

95 Příloha A Zdrojový kód proudové šifry RC4 zdroj: (32) Zdrojový kód uveden v jazyce C tak, jak ho zaslal anonymní kryptoanalytik skupině Cyberpunks. Tímto krokem byla doté doby silně utajovaná proprietární šifra RC4 rozkryta. /* rc4.h */ typedef struct rc4_key { unsigned char state[256]; unsigned char x; unsigned char y; } rc4_key; void prepare_key(unsigned char *key_data_ptr,int key_data_len, rc4_key *key); void rc4(unsigned char *buffer_ptr,int buffer_len,rc4_key * key); /*rc4.c */ #include "rc4.h" static void swap_byte(unsigned char *a, unsigned char *b); void prepare_key(unsigned char *key_data_ptr, int key_data_len, rc4_key *key) { unsigned char swapbyte; unsigned char index1; unsigned char index2; unsigned char* state; short counter; state = &key->state[0]; for(counter = 0; counter < 256; counter++) state[counter] = counter; key->x = 0; key->y = 0; index1 = 0; index2 = 0; for(counter = 0; counter < 256; counter++) { index2 = (key_data_ptr[index1] + state[counter] + index2) % 256; swap_byte(&state[counter], &state[index2]); } } index1 = (index1 + 1) % key_data_len; 1

96 void rc4(unsigned char *buffer_ptr, int buffer_len,rc4_key *key) { unsigned char x; unsigned char y; unsigned char* state; unsigned char xorindex; short counter; x = key->x; y = key->y; state = &key->state[0]; for(counter = 0; counter < buffer_len; counter ++) { x = (x + 1) % 256; y = (state[x] + y) % 256; swap_byte(&state[x], &state[y]); xorindex = (state[x] + state[y]) % 256; } buffer_ptr[counter] ^= state[xorindex]; } key->x = x; key->y = y; static void swap_byte(unsigned char *a, unsigned char *b) { unsigned char swapbyte; } swapbyte = *a; *a = *b; *b = swapbyte; 2

97 Příloha B S-box Substituční hodnoty pro bajt xy v hexadecimálním formátu. zdroj: (15) strana 20 1

98 Příloha C Čtyř rundový Imposible diffenciál útok na AES zdroj: (19) strana 21 SB- operace SubBytes(), SR- operace ShiftRows(), MC- operace MixColumns(), ARK- operace AddRoundKey(). Šedé dvourozměrné pole Stav představuje nenulovou diferenci v bajtech, zatímco bílé značí nulovou diferenci. 1

Šifrování Kafková Petra Kryptografie Věda o tvorbě šifer (z řečtiny: kryptós = skrytý, gráphein = psát) Kryptoanalýza Věda o prolamování/luštění šifer Kryptologie Věda o šifrování obecné označení pro kryptografii

Více

UKRY - Symetrické blokové šifry

UKRY - Symetrické blokové šifry UKRY - Symetrické blokové šifry Martin Franěk (frankiesek@gmail.com) Fakulta jaderná a fyzikálně inženýrská, ČVUT Praha 18. 3. 2013 Obsah 1 Typy šifer Typy šifer 2 Operační mody Operační mody 3 Přiklady

Více

Informatika / bezpečnost

Informatika / bezpečnost Informatika / bezpečnost Bezpečnost, šifry, elektronický podpis ZS 2015 KIT.PEF.CZU Bezpečnost IS pojmy aktiva IS hardware software data citlivá data hlavně ta chceme chránit autorizace subjekt má právo

Více

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

Šifrová ochrana informací věk počítačů PS5-1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-1 1 Osnova šifrová ochrana využívající výpočetní techniku např. Feistelova šifra; symetrické a asymetrické šifry;

Více

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

Moderní metody substitučního šifrování PEF MZLU v Brně 11. listopadu 2010 Úvod V současné době se pro bezpečnou komunikaci používají elektronická média. Zprávy se před šifrováním převádí do tvaru zpracovatelného technickým vybavením, do binární

Více

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

Šifrová ochrana informací věk počítačů PS5-2 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 Osnova

Více

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

CO JE KRYPTOGRAFIE Šifrovací algoritmy Kódovací algoritmus Prolomení algoritmu KRYPTOGRAFIE CO JE KRYPTOGRAFIE Kryptografie je matematický vědní obor, který se zabývá šifrovacími a kódovacími algoritmy. Dělí se na dvě skupiny návrh kryptografických algoritmů a kryptoanalýzu, která

Více

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

Šifrová ochrana informací věk počítačů PS5-2 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 1 Osnova šifrová ochrana využívající výpočetní techniku např. Feistelova šifra; symetrické a asymetrické šifry;

Více

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

Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007 Kryptografie, elektronický podpis Ing. Miloslav Hub, Ph.D. 27. listopadu 2007 Kryptologie Kryptologie věda o šifrování, dělí se: Kryptografie nauka o metodách utajování smyslu zpráv převodem do podoby,

Více

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

kryptosystémy obecně další zajímavé substituční šifry klíčové hospodářství kryptografická pravidla Hillova šifra Vernamova šifra Knižní šifra kryptosystémy obecně klíčové hospodářství klíč K, prostor klíčů T K kryptografická pravidla další zajímavé substituční šifry Hillova šifra Vernamova šifra Knižní šifra klíč K různě dlouhá posloupnost znaků

Více

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

Proudové šifry a posuvné registry s lineární zpětnou vazbou Proudové šifry a posuvné registry s lineární zpětnou vazbou Andrew Kozlík KA MFF UK Proudové šifry Bloková šifra Šifruje velké bloky otevřeného textu. Bloky mají pevnou délku. Velké znamená, že je prakticky

Více

PA159 - Bezpečnostní aspekty

PA159 - Bezpečnostní aspekty PA159 - Bezpečnostní aspekty 19. 10. 2007 Formulace oblasti Kryptografie (v moderním slova smyslu) se snaží minimalizovat škodu, kterou může způsobit nečestný účastník Oblast bezpečnosti počítačových sítí

Více

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

Základy šifrování a kódování Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Základy šifrování a kódování

Více

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

Identifikátor materiálu: ICT-2-04 Identifikátor materiálu: ICT-2-04 Předmět Téma sady Informační a komunikační technologie Téma materiálu Zabezpečení informací Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí kryptografii.

Více

Asymetrická kryptografie

Asymetrická kryptografie PEF MZLU v Brně 12. listopadu 2007 Problém výměny klíčů Problém výměny klíčů mezi odesílatelem a příjemcem zprávy trápil kryptografy po několik století. Problém spočívá ve výměně tajné informace tak, aby

Více

Operační mody blokových šifer a hašovací algoritmy. šifer. Bloková šifra. šifer. Útoky na operační modus ECB

Operační mody blokových šifer a hašovací algoritmy. šifer. Bloková šifra. šifer. Útoky na operační modus ECB Operační mody blokových šifer a hašovací algoritmy Operační mody blokových šifer RNDr. Vlastimil Klíma vlastimil.klima@i.cz ICZ a.s. 2 Operační mody blokových šifer T způsob použití blokové šifry k šifrování

Více

Autentizace uživatelů

Autentizace uživatelů Autentizace uživatelů základní prvek ochrany sítí a systémů kromě povolování přístupu lze uživatele členit do skupin, nastavovat různá oprávnění apod. nejčastěji dvojicí jméno a heslo další varianty: jednorázová

Více

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

základní informace o kurzu základní pojmy literatura ukončení, požadavky, podmiňující předměty, základní informace o kurzu ukončení, požadavky, podmiňující předměty, základní pojmy kód x šifra kryptologie x steganografie kryptografie x kryptoanalyza literatura klasická x moderní kryptologie základní,

Více

6. Cvičení [MI-KRY Pokročilá kryptologie]

6. Cvičení [MI-KRY Pokročilá kryptologie] 6. Cvičení Náplň cv. 6 Náplní šestého cvičení jsou módy blokových šifer. Výběr módu by neměl nikdy oslabit bezpečnost samotné šifry, ale vhodně podpořit vlastnosti, které od bezpečnostního řešení očekáváme.

Více

KRYPTOGRAFIE VER EJNE HO KLI Č E

KRYPTOGRAFIE VER EJNE HO KLI Č E KRYPTOGRAFIE VER EJNE HO KLI Č E ÚVOD Patricie Vyzinová Jako téma jsem si vybrala asymetrickou kryptografii (kryptografie s veřejným klíčem), což je skupina kryptografických metod, ve kterých se pro šifrování

Více

BEZPEČNOST INFORMACÍ

BEZPEČNOST INFORMACÍ Předmět Bezpečnost informací je zaměřen na bezpečnostní aspekty informačních systémů a na zkoumání základních prvků vytvářeného bezpečnostního programu v organizacích. Tyto prvky technologie, procesy a

Více

ČESKÁ TECHNICKÁ NORMA

ČESKÁ TECHNICKÁ NORMA ČESKÁ TECHNICKÁ NORMA ICS 35.240.15 2003 Bankovnictví - Bezpečný přenos souborů (drobné obchody) ČSN ISO 15668 97 9120 Listopad Banking - Secure file transfer (retail) Banque - Transfert de fichier de

Více

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

Od Enigmy k PKI. principy moderní kryptografie T-SEC4 / L3. Tomáš Herout Cisco. Praha, hotel Clarion 10. 11. dubna 2013. Praha, hotel Clarion 10. 11. dubna 2013 Od Enigmy k PKI principy moderní kryptografie T-SEC4 / L3 Tomáš Herout Cisco 2013 2011 Cisco and/or its affiliates. All rights reserved. Cisco Connect 1 Největší

Více

Bezpečnostní mechanismy

Bezpečnostní mechanismy Hardwarové prostředky kontroly přístupu osob Bezpečnostní mechanismy Identifikační karty informace umožňující identifikaci uživatele PIN Personal Identification Number úroveň oprávnění informace o povolených

Více

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

Digitální podepisování pomocí asymetrické kryptografie Digitální podepisování pomocí asymetrické kryptografie 11. dubna 2011 Trocha historie Asymetrické metody Historie Historie Vlastnosti Asymetrické šifrování 1976 Whitfield Diffie a Martin Hellman první

Více

Šifrová ochrana informací historie KS4

Šifrová ochrana informací historie KS4 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací historie KS4 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 Osnova

Více

Správa přístupu PS3-2

Správa přístupu PS3-2 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Správa přístupu PS3-2 1 Osnova II základní metody pro zajištění oprávněného přístupu; autentizace; autorizace; správa uživatelských účtů; srovnání současných

Více

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

MINIMÁLNÍ POŽADAVKY NA KRYPTOGRAFICKÉ ALGORITMY. doporučení v oblasti kryptografických prostředků MINIMÁLNÍ POŽADAVKY NA KRYPTOGRAFICKÉ ALGORITMY doporučení v oblasti kryptografických prostředků Verze 1.0, platná ke dni 28.11.2018 Obsah Úvod... 3 1 Doporučení v oblasti kryptografických prostředků...

Více

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

Co je Czech Point? Podací Ověřovací Informační Národní Terminál, zredukovat přílišnou byrokracii ve vztahu Czech Point Co je Czech Point? Podací Ověřovací Informační Národní Terminál, tedy Czech POINT je projektem, který by měl zredukovat přílišnou byrokracii ve vztahu občan veřejná správa. Czech POINT bude

Více

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

Základy kryptografie. Beret CryptoParty 11.02.2013. 11.02.2013 Základy kryptografie 1/17 Základy kryptografie Beret CryptoParty 11.02.2013 11.02.2013 Základy kryptografie 1/17 Obsah prezentace 1. Co je to kryptografie 2. Symetrická kryptografie 3. Asymetrická kryptografie Asymetrické šifrování

Více

Symetrické šifry, DES

Symetrické šifry, DES Symetrické šifry, DES Jiří Vejrosta Fakulta jaderná a fyzikálně inženýrská, ČVUT Jiří Vejrosta (FJFI) UKRY 1 / 20 Klíče Symetrická šifra tajný klíč klíč stejný u odesilatele i příjemce Asymetrická šifra

Více

SSL Secure Sockets Layer

SSL Secure Sockets Layer SSL Secure Sockets Layer internetové aplikační protokoly jsou nezabezpečené SSL vkládá do architektury šifrující vrstvu aplikační (HTTP, IMAP,...) SSL transportní (TCP, UDP) síťová (IP) SSL poskytuje zabezpečenou

Více

Tel.: (+420) 312 608 207 E-mail: szabo@fbmi.cvut.cz

Tel.: (+420) 312 608 207 E-mail: szabo@fbmi.cvut.cz Internet a zdravotnická informatika ZS 2007/2008 Zoltán Szabó Tel.: (+420) 312 608 207 E-mail: szabo@fbmi.cvut.cz č.dv.: : 504, 5.p Dnešní přednáškař Bezpečnost dat Virus, červ a trojský kůň Základní bezpečnostní

Více

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

Asymetrické šifry. Pavla Henzlová 28.3.2011. FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3. Asymetrické šifry Pavla Henzlová FJFI ČVUT v Praze 28.3.2011 Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.2011 1 / 16 Obsah 1 Asymetrická kryptografie 2 Diskrétní logaritmus 3 Baby step -

Více

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

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča Asymetrická kryptografie a elektronický podpis Ing. Dominik Breitenbacher ibreiten@fit.vutbr.cz Mgr. Radim Janča ijanca@fit.vutbr.cz Obsah cvičení Asymetrická, symetrická a hybridní kryptografie Kryptoanalýza

Více

Kerchhoffův princip Utajení šifrovacího algoritmu nesmí sloužit jako opatření nahrazující nebo garantující kvalitu šifrovacího systému

Kerchhoffův princip Utajení šifrovacího algoritmu nesmí sloužit jako opatření nahrazující nebo garantující kvalitu šifrovacího systému Základní cíle informační bezpečnosti Autentikace Autorizace Nepopiratelnost Integrita Utajení Shannonův model kryptosystému Kerchhoffův princip Utajení šifrovacího algoritmu nesmí sloužit jako opatření

Více

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

PSK2-16. Šifrování a elektronický podpis I PSK2-16 Název školy: Autor: Anotace: Vzdělávací oblast: Předmět: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Jak funguje asymetrická šifra a elektronický podpis Informační

Více

Šifrová ochrana informací historie PS4

Šifrová ochrana informací historie PS4 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací historie PS4 1 Osnova úvod, definice pojmů; substituční šifry; transpoziční šifry; první prakticky používané šifrové systémy;

Více

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

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy VY_32_INOVACE_BEZP_08 Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/34.0304 Digitální podpisy Základní myšlenkou elektronického podpisu je obdoba klasického podpisu, jež má zaručit jednoznačnou identifikaci

Více

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

klasická kryptologie základní pojmy požadavky na kryptosystém typologie šifer transpoziční šifry substituční šifry klasická kryptologie transpoziční šifry substituční šifry základní pojmy požadavky na kryptosystém pravidla bezpečnosti silný kryptosystém typologie šifer bloková x proudová s tajným klíčem x s veřejným

Více

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

Šifrová ochrana informací věk počítačů KS - 5 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů KS - 5 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2

Více

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

Základní definice Aplikace hašování Kontrukce Známé hašovací funkce. Hašovací funkce. Jonáš Chudý. Úvod do kryptologie Úvod do kryptologie Základní definice Kryptografická hašovací funkce Kryptografickou hašovací funkcí nazveme zobrazení h, které vstupu X libovolné délky přiřadí obraz h(x) pevné délky m a navíc splňuje

Více

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

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc. Bezpečnost 8. RSA, kryptografie s veřejným klíčem doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů

Více

7. Proudové šifry, blokové šifry, DES, 3DES, AES, operační módy. doc. Ing. Róbert Lórencz, CSc.

7. Proudové šifry, blokové šifry, DES, 3DES, AES, operační módy. doc. Ing. Róbert Lórencz, CSc. Bezpečnost 7. Proudové šifry, blokové šifry, DES, 3DES, AES, operační módy doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů

Více

J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, Masarykova univerzita Fakulta informatiky

J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, Masarykova univerzita Fakulta informatiky Analýza postranních kanálů (kryptoanalýza hardvérových zařízení) J.Breier, M.Vančo, J.Ďaďo, M.Klement, J.Michelfeit, M.Moráček, J.Kusák, J.Hreško Masarykova univerzita Fakulta informatiky 6.5.2010 Klasifikace

Více

Šifrová ochrana informací historie PS4

Šifrová ochrana informací historie PS4 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací historie PS4 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 Osnova

Více

BI-BEZ Bezpečnost. Proudové šifry, blokové šifry, DES, 3DES, AES,

BI-BEZ Bezpečnost. Proudové šifry, blokové šifry, DES, 3DES, AES, BI-BEZ Bezpečnost Róbert Lórencz 7. přednáška Proudové šifry, blokové šifry, DES, 3DES, AES, operační módy https://edux.fit.cvut.cz/courses/bi-bez lorencz@fit.cvut.cz Róbert Lórencz (ČVUT FIT, 2011) BI-BEZ

Více

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

Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz Asymetrická kryptografie a elektronický podpis Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz Obsah cvičení Asymetrická, symetrická a hybridní kryptografie Matematické problémy, na kterých

Více

Informatika Ochrana dat

Informatika Ochrana dat Informatika Ochrana dat Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Obsah Kryptografické systémy s veřejným klíčem, výměna tajných klíčů veřejným kanálem, systémy s veřejným

Více

Kryptografie - Síla šifer

Kryptografie - Síla šifer Kryptografie - Síla šifer Rozdělení šifrovacích systémů Krátká charakteristika Historie a současnost kryptografie Metody, odolnost Praktické příklady Slabá místa systémů Lidský faktor Rozdělení šifer Obousměrné

Více

Moderní kryptografické metody

Moderní kryptografické metody Bankovní institut vysoká škola Praha Katedra matematiky, statistiky a informačních technologií Moderní kryptografické metody Bakalářská práce Autor: Daryna Polevyk Informační technologie Vedoucí práce:

Více

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

Matematické základy šifrování a kódování Matematické základy šifrování a kódování Permutace Pojem permutace patří mezi základní pojmy a nachází uplatnění v mnoha oblastech, např. kombinatorice, algebře apod. Definice Nechť je n-prvková množina.

Více

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

Návrh kryptografického zabezpečení systémů hromadného sběru dat Návrh kryptografického zabezpečení systémů hromadného sběru dat Ing. Martin Koutný Ing. Jiří Hošek Fakulta elektrotechniky a komunikačních technologií VUT v Brně, Ústav telekomunikací, Purkyňova 118, 612

Více

Bezpečnost internetového bankovnictví, bankomaty

Bezpečnost internetového bankovnictví, bankomaty , bankomaty Filip Marada, filipmarada@gmail.com KM FJFI 15. května 2014 15. května 2014 1 / 18 Obsah prezentace 1 Bezpečnost internetového bankovnictví Možná rizika 2 Bankomaty Výběr z bankomatu Možná

Více

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky. Proudové šifry

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky. Proudové šifry České vysoké učení technické v Praze Fakulta elektrotechnická Katedra telekomunikační techniky Proudové šifry Ing. Tomáš Vaněk, Ph.D. tomas.vanek@fel.cvut.cz Osnova Proudové šifry synchronní asynchronní

Více

Bezpečnostní aspekty informačních a komunikačních systémů KS2

Bezpečnostní aspekty informačních a komunikačních systémů KS2 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Bezpečnostní aspekty informačních a komunikačních systémů KS2 VŠFS; Aplikovaná informatika; SW systémy

Více

Protokol pro zabezpečení elektronických transakcí - SET

Protokol pro zabezpečení elektronických transakcí - SET Protokol pro zabezpečení elektronických transakcí - SET Ing. Petr Číka Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, Purkyňova 118, 612 00 Brno,

Více

Konstrukce šifer. Andrew Kozlík KA MFF UK

Konstrukce šifer. Andrew Kozlík KA MFF UK Konstrukce šifer Andrew Kozlík KA MFF UK Kerckhoffsův princip V roce 1883 stanovil Auguste Kerckhoffs 6 principů, kterými by se měl řídit návrh šifrovacích zařízení. Například, že zařízení by mělo být

Více

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

klasická kryptologie základní pojmy požadavky na kryptosystém typologie šifer transpoziční šifry substituční šifry Květuše Sýkorová Květuše Sýkorová klasická kryptologie transpoziční šifry substituční šifry základní pojmy požadavky na kryptosystém pravidla bezpečnosti silný kryptosystém typologie šifer bloková x proudová

Více

Úvod - Podniková informační bezpečnost PS1-2

Úvod - Podniková informační bezpečnost PS1-2 VŠFS; Aplikovaná informatika - 2006/2007 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Úvod - Podniková informační bezpečnost PS1-2 VŠFS; Aplikovaná informatika - 2006/2007 2 Literatura Kovacich G.L.:

Více

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy

Více

POPIS STANDARDU CEN TC278/WG4. 1 z 5. Oblast: TTI. Zkrácený název: Zprávy přes CN 4. Norma číslo:

POPIS STANDARDU CEN TC278/WG4. 1 z 5. Oblast: TTI. Zkrácený název: Zprávy přes CN 4. Norma číslo: POPIS STANDARDU CEN TC278/WG4 Oblast: TTI Zkrácený název: Zprávy přes CN 4 Norma číslo: 14821-4 Norma název (en): Traffic and Traveller Information (TTI) TTI messages via cellular networks Part 4: Service-independent

Více

Kryptografie a počítačová

Kryptografie a počítačová Kryptografie a počítačová Úvod KPB 2018/19, 1. přednáška 1 Informace k předmětu Kontakt Kancelář EA439 eliska.ochodkova@vsb.cz Všechny důležité informace na www.cs.vsb.cz/ochodkova Organizace výuky sledujte

Více

SIM karty a bezpečnost v mobilních sítích

SIM karty a bezpečnost v mobilních sítích Spojujeme software, technologie a služby SIM karty a bezpečnost v mobilních sítích Václav Lín programátor 19.5.2009 1 Osnova SIM karty Role SIM karet v telekomunikacích Hardwarové charakteristiky Bezpečnost

Více

Andrew Kozlík KA MFF UK

Andrew Kozlík KA MFF UK Autentizační kód zprávy Andrew Kozlík KA MFF UK Autentizační kód zprávy Anglicky: message authentication code (MAC). MAC algoritmus je v podstatě hashovací funkce s klíčem: MAC : {0, 1} k {0, 1} {0, 1}

Více

asymetrická kryptografie

asymetrická kryptografie asymetrická kryptografie princip šifrování Zavazadlový algoritmus RSA EL GAMAL další asymetrické blokové algoritmy Skipjack a Kea, DSA, ECDSA D H, ECDH asymetrická kryptografie jeden klíč pro šifrování

Více

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

ISMS. Autentizace ve WiFi sítích. V Brně dne 5. a 12. prosince 2013 ISMS Případová studie Autentizace ve WiFi sítích V Brně dne 5. a 12. prosince 2013 Pojmy Podnikové WiFi sítě Autentizace uživatelů dle standardu 802.1X Hlavní výhodou nasazení tohoto standardu je pohodlná

Více

C5 Bezpečnost dat v PC

C5 Bezpečnost dat v PC C5 T1 Vybrané kapitoly počíta tačových s sítí Bezpečnost dat v PC 1. Počíta tačová bezpečnost 2. Symetrické šifrování 3. Asymetrické šifrování 4. Velikost klíče 5. Šifrování a dešifrov ifrování 6. Steganografie

Více

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

ŠIFROVÁNÍ, EL. PODPIS. Kryptografie Elektronický podpis Datové schránky ŠIFROVÁNÍ, EL. PODPIS Kryptografie Elektronický podpis Datové schránky Kryptografie Kryptografie neboli šifrování je nauka o metodách utajování smyslu zpráv převodem do podoby, která je čitelná jen se

Více

III. Mody činnosti blokových šifer a hašovací funkce

III. Mody činnosti blokových šifer a hašovací funkce III. Mody činnosti blokových šifer a hašovací funkce verze: 2.1, 11.4.2007 Vlastimil Klíma Obsah 11. Operační mody blokových šifer... 2 11.1. Elektronická kódová kniha (ECB)... 2 11.1.1. Informace, vyzařující

Více

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

Problematika náhodných a pseudonáhodných sekvencí v kryptografických eskalačních protokolech a implementacích na čipových kartách Problematika náhodných a pseudonáhodných sekvencí v kryptografických eskalačních protokolech a implementacích na čipových kartách Masarykova univerzita v Brně Fakulta informatiky Jan Krhovják Kryptografické

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

PV157 Autentizace a řízení přístupu

PV157 Autentizace a řízení přístupu PV157 Autentizace a řízení přístupu Zdeněk Říha Vašek Matyáš Konzultační hodiny FI MU: B415 St 17:00 18:00 část semestru mimo CZ Microsoft Research Cambridge Email: zriha / matyas @fi.muni.cz Průběh kurzu

Více

BEZPEČNÁ SPRÁVA KLÍČŮ POMOCÍ HSM. Petr Dolejší Senior Solution Consultant

BEZPEČNÁ SPRÁVA KLÍČŮ POMOCÍ HSM. Petr Dolejší Senior Solution Consultant BEZPEČNÁ SPRÁVA KLÍČŮ POMOCÍ HSM Petr Dolejší Senior Solution Consultant OCHRANA KLÍČŮ A ZOKB Hlavní termín kryptografické prostředky Vyhláška 316/2014Sb. o kybernetické bezpečnosti zmiňuje: v 17 nástroj

Více

Karel Kohout 18. května 2010

Karel Kohout 18. května 2010 Karel (karel.kohout@centrum.cz) 18. května 2010 1 2 3 4 Hašovací funkce = Message-Digest algorithm 5, vychází z MD4 (podobně jako SHA-1), autor prof. Ronald Rivest (RSA) Řetězec livobovolné délky na řetězec

Více

Stavební bloky kryptografie. Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií

Stavební bloky kryptografie. Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií Stavební bloky kryptografie Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií 1 Módy blokových šifer Šifrování textu po blocích 64, 80, 128, bitové bloky Jak zašifrovat delší zprávy?

Více

EXTRAKT z mezinárodní normy

EXTRAKT z mezinárodní normy EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě ICS: 03.220.01; 35.240.60 CALM Základní přístupy k ochraně osobních dat z informačních

Více

ElGamal, Diffie-Hellman

ElGamal, Diffie-Hellman Asymetrické šifrování 22. dubna 2010 Prezentace do předmětu UKRY Osnova 1 Diskrétní logaritmus 2 ElGamal 3 Diffie-Hellman Osnova 1 Diskrétní logaritmus 2 ElGamal 3 Diffie-Hellman Osnova 1 Diskrétní logaritmus

Více

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

Y36PSI Bezpečnost v počítačových sítích. Jan Kubr - 10_11_bezpecnost Jan Kubr 1/41 Y36PSI Bezpečnost v počítačových sítích Jan Kubr - 10_11_bezpecnost Jan Kubr 1/41 Osnova základní pojmy typy šifer autentizace integrita distribuce klíčů firewally typy útoků zabezpečení aplikací Jan Kubr

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: 28 CZ.1.07/1.5.00/34.0410 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

Více

Komerční výrobky pro kvantovou kryptografii

Komerční výrobky pro kvantovou kryptografii Cryptofest 05 Katedra počítačů, Fakulta elektrotechnická České vysoké učení technické v Praze 19. března 2005 O čem bude řeč Kryptografie Kryptografie se zejména snaží řešit: autorizovanost přístupu autenticitu

Více

Základy kryptologie. Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií

Základy kryptologie. Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií Základy kryptologie Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií 1 Detaily zkoušky Během semestru je možno získat maximální počet 100 bodů projekty - 20b. vnitrosemestrální písemka

Více

Integrovaný informační systém Státní pokladny (IISSP) Dokumentace API - integrační dokumentace

Integrovaný informační systém Státní pokladny (IISSP) Dokumentace API - integrační dokumentace Česká republika Vlastník: Logica Czech Republic s.r.o. Page 1 of 10 Česká republika Obsah 1. Úvod...3 2. Východiska a postupy...4 2.1 Způsob dešifrování a ověření sady přístupových údajů...4 2.2 Způsob

Více

9. května menší, než by tomu bylo, pokud by se jednalo o sít bezdrátovou. V tomto okamžiku jsou. blokovat nebo narušit vysílané signály [1].

9. května menší, než by tomu bylo, pokud by se jednalo o sít bezdrátovou. V tomto okamžiku jsou. blokovat nebo narušit vysílané signály [1]. WEP - Zabezpečení sítě Wi-Fi Ondřej Vašíček 9. května 2007 1 Úvod Bezdrátové sítě jsou mnohem zranitelnější vůči narušení než jejich kabelové protějšky. Některá z rizik jsou obdobná jako v případě kabelových

Více

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

Elektronický podpis. Základní princip. Digitální podpis. Podpis vs. šifrování. Hashování. Jednosměrné funkce. Odesílatel. Příjemce Základní princip Elektronický podpis Odesílatel podepíše otevřený text vznikne digitálně podepsaný text Příjemce ověří zda podpis patří odesílateli uvěří v pravost podpisu ověří zda podpis a text k sobě

Více

EU-OPVK:VY_32_INOVACE_FIL13 Vojtěch Filip, 2014

EU-OPVK:VY_32_INOVACE_FIL13 Vojtěch Filip, 2014 Číslo projektu CZ.1.07/1.5.00/34.0036 Tématický celek Inovace výuky ICT na BPA Název projektu Inovace a individualizace výuky Název materiálu Kryptografie Číslo materiálu VY_32_INOVACE_FIL13 Ročník První

Více

Postranními kanály k tajemství čipových karet

Postranními kanály k tajemství čipových karet SIX Research Centre Vysoké učení technické v Brně martinasek@feec.vutbr.cz crypto.utko.feec.vutbr.cz Kryptoanaly za postrannı mi kana ly Proudova analy za Pr edstavenı U vod Crypto Research Group, Vysoke

Více

Bezpečnost elektronických platebních systémů

Bezpečnost elektronických platebních systémů Katedra matematiky, Fakulta jaderná a fyzikálně inženýrská, České vysoké učení technické v Praze Plán Platby kartou na terminálech/bankomaty Platby kartou na webu Internetové bankovnictví Platby kartou

Více

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

Digitální podepisování pomocí asymetrické kryptografie Digitální podepisování pomocí asymetrické kryptografie Jan Máca, FJFI ČVUT v Praze 26. března 2012 Jan Máca () Digitální podepisování 26. března 2012 1 / 22 Obsah 1 Digitální podpis 2 Metoda RSA 3 Metoda

Více

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

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

Více

Kryptografie a počítačová bezpečnost

Kryptografie a počítačová bezpečnost Kryptografie a počítačová bezpečnost Symetrické algoritmy (cont.) KPB 2017/18, 6. přednáška 1 Teoretické základy blokových algoritmů Koncept moderní kryptografie navrhli C. Shannon a H. Feistel. Claude

Více

Blokové a prúdové šifry

Blokové a prúdové šifry Informačná bezpečnosť 2, jar 2015 Blokové a prúdové šifry Ján Karabáš Blokové šifry a dlhé správy Bloková šifra je vhodná pre zašifrovanie iba jedného, relatívne krátkeho bloku Blok je skupina znakov (otvorenej

Více

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

Bezpečnost dat. Možnosti ochrany - realizována na několika úrovních Bezpečnost dat Možnosti ochrany - realizována na několika úrovních 1. ochrana přístupu k počítači 2. ochrana přístupu k datům 3. ochrana počítačové sítě 4. ochrana pravosti a celistvosti dat (tzv. autenticity

Více

Banking - Personal Identification Number management and security Part 1: PIN protection principles and techniques

Banking - Personal Identification Number management and security Part 1: PIN protection principles and techniques ČESKÁ NORMA ICS 03.060;35.240.40 Leden 1996 Bankovnictví ŘÍZENÍ A BEZPEČNOST OSOBNÍCH IDENTIFIKAČNÍCH ČÍSEL Část 1: Principy a techniky ochrany PIN ČSN ISO 9564-1 97 9007 Banking - Personal Identification

Více

KPB. Režimy činnosti symetrických šifer - dokončení. KPB 2015/16, 7. přednáška 1

KPB. Režimy činnosti symetrických šifer - dokončení. KPB 2015/16, 7. přednáška 1 KPB Režimy činnosti symetrických šifer - dokončení KPB 2015/16, 7. přednáška 1 Blokové šifry v proudovém režimu (CFB, OFB) KPB 2015/16, 7. přednáška 2 Cipher-Feedback Mode CFB U CFB se nemusí zpráva rozdělovat

Více

Hardwarové bezpečnostní moduly API a útoky

Hardwarové bezpečnostní moduly API a útoky Hardwarové bezpečnostní moduly API a útoky Masarykova univerzita v Brně Fakulta informatiky Jan Krhovják Daniel Cvrček Vašek Matyáš Shrnutí Úvod Základní terminologie Architektura HSM (Hardware Security

Více

Bezepečnost IS v organizaci

Bezepečnost IS v organizaci Bezepečnost IS v organizaci analýza rizik Zabezpečení informačního systému je nutné provést tímto postupem: Zjistit zranitelná místa, hlavně to, jak se dají využít a kdo toho může zneužít a pravděpodobnost

Více

NÁVRH HARDWAROVÉHO ŠIFROVACÍHO MODULU

NÁVRH HARDWAROVÉHO ŠIFROVACÍHO MODULU VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS

Více

Šifrování. Tancuj tak, jako když se nikdo nedívá. Šifruj tak, jako když se dívají všichni! Martin Kotyk IT Security Consultnant

Šifrování. Tancuj tak, jako když se nikdo nedívá. Šifruj tak, jako když se dívají všichni! Martin Kotyk IT Security Consultnant Šifrování Tancuj tak, jako když se nikdo nedívá. Šifruj tak, jako když se dívají všichni! Martin Kotyk IT Security Consultnant Šifrování pevných disků Don't send the encryption key by email! Šifrování

Více