Moderní aplikace šifer

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

Download "Moderní aplikace šifer"

Transkript

1 Bankovní institut vysoká škola Praha Katedra informačních technologií a elektronického obchodování Moderní aplikace šifer Diplomová práce Autor: Michal Janák Informační technologie a management Vedoucí práce: Ing. Vladimír Beneš Odborný konzultant: Praha březen, 2009

2 Prohlášení: Prohlašuji, že jsem diplomovou práci zpracoval samostatně a s použitím uvedené literatury. V Praze, dne Michal Janák

3 Děkuji Ing. Benešovi, vedoucímu mé bakalářské práce za cennou odbornou pomoc při vedení této práce, za jeho cenné připomínky, které byly přínosem při zpracování a dokončení mé bakalářské práce. V Praze 14. dubna 2009 Michal Janák

4 Anotace Diplomová práce Moderní aplikace šifer se zabývá kvalitou implementace kryptografických algoritmů v prostředí internetu a internetových standardů. Základ práce tvoří rozbor klíčových používaných algoritmů jejich slabin a předností. Dále se zabývá použitými algoritmy včetně implementace a implementačních omezení. Soustřeďuje se na tyto vybrané oblasti symetrické a asymetrické algoritmy, generátory náhodných čísel, autentizační algoritmy a mechanizmy. Tyto zjištění jsou pak porovnána s jejich reálném nasazení v prostředí internetu. Annotation Thesis Modern encryption and implementation considers implementation quality of encryption algorithm in Internet environment. Thesis key part is based on key algorithm analyses including their strengths and weaknesses. Implementation and implementation constraints are also discussed. Special interest is put on symmetric and asymmetric encryption algorithm, random number generators, authentication algorithm and methods. Results are confronted with real implementation in the Internet.

5 Obsah 1 Vybrané termíny z kryptologie a kryptoanalýzy Kryptoanalýza FIPS Bloková šifra Pokročilé operační módy Kombinování blokových šifer PKCS Symetrická šifrovací schémata Asymetrická šifrovací schémata Postranní kanály Nejpoužívanější algoritmy a módy šifer, rozbor jejich slabin a implementačních omezení RSA Šifrovací schemata Implementace a implementační omezení týkající se RSA Prvočísla Diffie-Hellman výměna klíčů (Diffie-Hellman Key exchange algorythm) Kryptograficky bezpečné generátory náhodných čísel a jejich vlastnosti Generátory náhodných čísel a jejich vlastnosti Řešení PRNG na bázi SW Generátory pseudonáhodných čísel (PRNG) Ostatní požadavky na CSPRBG Kryptograficky bezpečné generátory náhodných čísel ANSI X.9 generátory HW generátory Autentizační mechanizmy a algoritmy Vlastnosti MAC Módy autentizační Módy autentizačně šifrovací Příklady implementací a zkušenosti s jejich implementací Šifrování médií SSL a PKIX Zhodnocení Algoritmy Kryptograficky bezpečné generátory a jejich vlastnosti Autentizační mechanismy

6 Úvod Práce Moderní aplikace šifer se snaží najít odpovědi, na vybrané otázky související s implementací, používáním a z toho vyplývajícími riziky v podobě chyb implementace, nebo nevhodného nasazení. Moderní informační systémy se bez efektivní implementace krypto systémů neobejdou. Kryptografické prostředky zajišťují integritu dat, jejich bezpečný přenos a bezpečné uložení po určitou dobu. Bez použití kryptografických metod by v současnosti nebylo možné realizovat rozsáhlé elektronické transakce, anebo i jen relativně jednoduché a bezpečné ukládání hesel. Nasazování kryptografických prostředků se odehrává i v oblastech dříve nemyslitelných, vzhledem ke své náročnosti jako je DRM, anebo jen zajištění integrity modulů programů. Cena a dostupnost, jež byla dříve překážkou je dnes argumentem pro nasazení kryptografických prostředků, ustupuje požadavkům na integritu, utajení a podobně. Otevřenost a dostupnost informací týkající se kryptografie a prostředků, jež používá umožňuje přesunout výzkum z oblastí vojenské, zpravodajské, do oblasti komerčního a civilního výzkumu. Ukazuje se, že v těchto neprivilegovaných oblastech se nachází živná půda pro další rozvoj.

7 1 Vybrané termíny z kryptologie a kryptoanalýzy 1.1 Kryptoanalýza Kryptoanalýza je věda mající za cíl získání otevřeného textu pomoci analytických metod a to bez znalosti tajného klíče. Rozeznáváme následující základní metody: Útok se znalostí pouze šifrované správy (Ciphertext-only attack). Tento útok je založen na skutečnosti, že je možné získat otevřený text ze šifrovaných zpráv pouze znalostí zašifrovaného textu (je potřeba více než jedna zpráva). Útok je tehdy úspěšný pokud platí následující vztahy: C 1 = E k (P 1 ), C 2 = E k (P 2 ),..., C i = E k (P i ) (vztah 1) odtud lze snadno odvodit P 1, P 2,..., P i, ale i k, nebo dokonce algoritmus. Odtud lze také odvodit C i+1 = E k (P i+1 ). Uvedené vzorce jasně vysvětlují, proč není vhodné používat, poměrně jednoduchý algoritmus v důvěrné komunikaci. Tento typ útoku je zvláště účinný proti některým typům blokových šifer, nebo doplňovacích schémat Útok pomocí voleného otevřeného textu. (Chosen-plain attack) Útok vedený voleným otevřeným textem se používá za situace, kdy není možné použít předchozí útok. Kryptoanalytik má přístup pouze k šifrované zprávě, anebo její části a příslušnému otevřenému textu. Pokud má kryptoanalytik přístup k části textu, nebo jej může modifikovat mluvíme o útoku adaptivním voleným textem. Také útok je použitelný i v případě, že máme k dispozici neznámý algoritmus (black box) a snažíme se získat jeho popis. Pokud má kryptoanalitik možnost volby textu, dostává do ruky mnohem silnější nástroj než v předešlém případě. Ze vztahů uvedených v pasáži týkajících se otevřeného textu je patrné, že pokud zvolíme vhodný otevřený text (např.: 0...0), pak je velmi jednoduché získat klíč E k Útok pomocí voleného zašifrovaného textu (Chosen-ciphertext attack) Útok vedený volbou zašifrovaného textu je rozdílný v cíli jehož kryptoanalitik chce dosáhnout. Cílem není získat otevřený text, nýbrž klíč. Nutný předpoklad, který je nutné splnit, představuje znalost dešifrovacího klíče D k. Platí následující vztahy: C 1, P 1 = D k (C 1 ), P 2 = D k (C 2 ),..., P i = D k (C i ). Odsud lze získat klíč k. Útok je nejlépe aplikovatelný na algoritmy s veřejným klíčem. Vůči algoritmům se symetrickým klíčem není příliš vhodný. Pro útok na šifry se symetrickým algoritmem je vhodné použít kombinaci obou variant voleného textu tj. voleného otevřeného textu

8 a voleného zašifrovaného textu Útok voleným klíčem (Chosen-key attack) Tento typ útoku, využívá závislostí mezi jednotlivými klíči. Typickými představiteli jsou lineární a diferenciální kryptoanalýza Lineární kryptoanalýza Lineární kryptoanalýza je založena na lineárních aproximacích mezi dvěma nebo více po sobě jdoucím bitům. Platí že, pokud se provede nějaká slučovací operace nad zašifrovaným textem, například pomocí operace XOR, pak výstupem bude jeden bit. To je fakticky lineární aproximace s pravděpodobností p. Pokud je ovšem pravděpodobnost p ½, pak je možné tuto pravděpodobnost využít k odhadu hodnoty bitu klíče. Metoda byla objevena Mitsuru Matsuim. Otázkou zůstává, jak správně volit vhodnou lineární aproximaci. Zde je nutné říci, že pro každý algoritmus je nutné volit jiný přístup a zdroj aproximace Diferenciální kryptoanalýza Diferenciální kryptoanalýza je jedna z nejnovějších metod, jak luštit zašifrované zprávy. Metodu objevili E. Biham a A. Shamir v roce 1990 pro veřejnost (IBM, NSA apod. byla známa pod jinými názvy již dříve) a výrazně zvyšuje účinnost útoku voleným klíčem. Metoda se přednostně zaměřuje na pár zašifrovaných textu a jím příslušným otevřeným textům, jenž jeví určité rozdíly. Metoda je zvláště účinná proti algoritmu DES. AES je proti diferenciální kryptoanalýze odolný (jedna z podmínek zadání) Obušková kryptoanalýza (Rubber-hose cryptoanalysis) Princip tohoto útoku je založen na získání klíče jinými než kryptografickými metodami. Vydírání, hrozby, úplatky jsou velmi účinné metody, jak získat klíč. Do této skupiny patří i koupě, nebo i krádež klíče (špionáž). Je to pravděpodobně vůbec nejúčinější metoda, jak získat klíč. 1.2 FIPS FIPS (Federal Information Processing Standards) je americký standard pro počítačovou bezpečnost s důrazem na používání kryptografických prvků. Je platný od 3. prosince 2002 a nahradil tak předcházející platnou verzi z 25. května 2001

9 ( ) **/*1. Původní FIPS 140 vznikl už v roce 1994, jako reakce na potřebu formalizovat kvalitativní parametry kryptografických a bezpečnostních technologií. Úřad NIST vydal standard jako soubor dokumentů pro kryptografické prvky, jak HW, tak i SW provedení. Certifikace je udělována pro jednoznačně definovaný prvek. Certifikace je udílena procesem Cryptographic Module Validation Program (CMVP). Ten je výsledkem společného úsilí NIST a CSEC (Communications Security Establishment Canada). FIPS má celkem 4 úrovně které se nazývají level 1 level 4. Uvádíme zde sumarizaci požadavků pro jednotlivé úrovně. Detaily, včetně odkazů je možné nalézt ve výše zmíněném dokumentu. FIPS je zároveň velice zevrubným testem prostředí, kvality návrhu a odolnosti proti útokům na kryptosystém. Standard se zaměřuje na následující oblasti: Cryptographic Module Specification Cryptographic Module Ports and Interfaces Roles, Services, and Authentication Finite State Model Physical Security Operational Environment Cryptographic Key Management Electromagnetic Interference/Electromagnetic Compatibility (EMI/EMC) Self Tests Design Assurance Mitigation of Other Attacks Level 1 Level 1 je nejnižší zabezpečení a nevyžaduje prakticky žádné zabezpečení mechanické povahy. Level 1 nevyžaduje, aby příslušný prvek byl provozován v prostředí, které má garantovanou úroveň zabezpečení (např EAL-x). Jako příklad se uvádí PC s šifrovací kartou. 1 Tento dokument je převzat z: ( ) a shrnuje požadavky na různé úrovně bezpečnosti

10 1.2.2 Level 2 Level 2 rozšiřuje Level 1 o zabezpečení fyzické (tamper-proof). Minimálním požadavkem je zajištění proti překonání fyzické ochrany a to buď pomocí pečetě, nebo bezpečného zámku, odolného proti násilnému otevření (pick-resistant) umístěného na kryptografickém prvku. Úroveň zabezpečení OS nebo operačního prostředí je minimálně na úrovni EAL-2. Požadavky na prostředí jsou definovány v příloze B (Annex B) jako Common Criteria (CC) a Protection Profiles (PP) Level 3 Level 3 rozšiřuje požadavky na kryptosystém z Level 2 o zabezpečení kryptografických primitiv oproti přístupu nepovolané osoby (CSP - critical security parameters). Smyslem těchto opatření je snaha o zjištění průniku nepovolané osoby. Fyzická bezpečnost pak může zahrnovat bezpečnostní prvky jako: zesílené oplášťování, detektor průniku s následným vymazaní (vynulováním) CSP při otevření překrytu kryptografického prvku. Level 3 vyžaduje autentizaci a autorizaci operátora s následnou verifikací. Předpokládá se, že jsou jednoznačně vytvořeny role pro přístup k kryptografickému zařízení. Prostředí operačního systému musí splňnovat nejméně EAL 3 s rozšířením o TOE (Informal Target of Evaluation ) o bezpečnostní model (ADV_SPM.1) Level 4 Level 4 je nejvyšší úrovní definovanou standardem FIPS Bezpečnostní požadavky jsou na velmi vysoké úrovni. Úroveň fyzického zabezpečení zahrnuje zabezpečení vnějšího pláště s detekcí průniku. Detekce průniku musí být schopna detekovat průnik s vysokou pravděpodobností. Při detekování průniku musí být všechny nekryptované CSP okamžitě vynulovány. Level 4 vyžaduje, aby kryptografický prvek byl chráněn oproti změnám a fluktuacím v okolním prostředí. Další požadavky, které je třeba pro dosažení Level 4 jsou tyto: splnění funkčních požadavků nastolených v Level 3 kriteria CC (Common Criteria) s úrovní zajištění alespoň na úrovni EAL 4. Připouští se možnost použití zabezpečeného prostředí OS s ekvivalentní úrovní zabezpečení.

11 Ilustrace 1: Tabulka 1. uveřejněná v **/* shrnuje požadavky na jednotlivé úrovně zabezpečení Cryptographic Module Validation Program (CMVP) Požadavky na FIPS jsou dány programem Cryptographic Module Validation Program (CMVP). Výsledný certifikát obsahuje i algoritmy a moduly, pro které je certifikace platná. Certifikace se provádí v souladu s těmito dodatky standardu FIPS 140-2: Annex A: Approved Security Functions for FIPS PUB 140-2, Security Requirements for Cryptographic Modules. Annex A definuje symetrické šifry použitelné pro FIPS PUB Jmenujme především: AES, Triple-DES. Dále definuje operační módy blokových šifer dle specifikace A a D. Oblast asymetrických šifer a podpisových schémat zastupují: DSS, PKCS#1 v2.1 (podpisová schémata na základě RSA algoritmu), ECDSA a některé další. Kryptografické hashe jsou zastoupeny SHA-1 a SHA-2. V budoucí verzi zde bude zahrnut i budoucí varianta SHS (Secure Hash Standard), který je v současnosti ve stádiu výběru. Budoucím stadardem pro hashe (někdy také nazývaný SHA-3), který má

12 nahradit SHA-1 a SHA-2, protože jsou považovány za nedostatečně odolné vůči kryptografickému útoku. Zatím je chápán jako SHS algoritmus SHA-2 (SHA-256, 384, 512). Annex B: Approved Protection Profiles for FIPS PUB 140-2, Security Requirements for Cryptographic Modules. Protection profiles jsou celým názvem Controlled Access Protection Profile (CAPP) a jsou nástupcem TCSEC (Trusted Computer System Evaluation Criteria). CAPP je soubor požadavků na bezpečnost výpočetních systémů. Bezprostředně není významný pro šifrovací algoritmy i když je nepřímo používá. Například, pro šifrování systémového logu. Annex C: Approved Random Number Generators for FIPS PUB 140-2, Security Requirements for Cryptographic Modules. Annex C se zabývá především schálenými PRNG pro jednotlivé skupiny algoritmů. Annex C popisuje pouze a jen pouze deterministické PRNG. Nedeterministické PRNG nejsou schváleny pro standard FIPS Generátor ANSI X je schválen pro použití ve finančním sektoru, konkrétně pro použití s rdsa (Digital Signatures Using Reversible Public Key Cryptography for the Financial Services Industry). Jedním ze schválených generátorů je i X , který je dále diskutován. Ostatní zde uvedené algoritmy jsou navržené speciálně pro použití s podpisovým schématem DSA. Další uvedené algoritmy se přímo týkají PRNG šifrovacích algoritmů AES, Triple-DES. AES využívá generátor X 9.31 (appendix 2.4.1) modikovaný tím, že místo DES-EDE používá algoritmus AES, příslušející délce požadovaného algoritmu. V souvislosti s tímto algoritmem se objevila diskuse o vhodnosti použitého generátoru, neboť je používán nepříliš kvalitní generátor s kvalitní šifrou. Dokonce někteří kryptologové požadují náhradu za spolehlivější, protože se domnívají, že použitý generátor představuje značné bezpečnostní riziko (B. Schneier) a požadují jeho úplnou náhradu. Bruce Schneier jde dokonce tak daleko, že obviňuje americkou vládu z machinací ne nepodobných těm, které provázely vznik algoritmu DES. Triple-DES používá zmíněný DES-EDE algoritmus. Domnívám se, že náhrada PRNG je poměrně jednoduchá. Příkladem může být použití CPRNG FORTUNA s modifikací difuzní funkce, kdy nahradí SHA-1 za SHA-2, nebo AES požadované délky. Generátor byl navržen tak, aby bylo možné měnit difuzní funkci dle potřeby. V této souvislosti je třeba připomenout standard NIST Special Publication Recommendation for RandomNumber Generation Using Deterministic Random Bit Generators (revize z března 2007). Bruce Schneier upozorňuje na nedostatky uvedené v této publikaci a v této souvislosti zmiňuje vliv nechvalně známé instituce NSA.

13 Jeho zájem se týká generátoru Dual_EC_DRBG u kterého byly nalezeny dosti značné nedostatky. Vyvozuje z toho snahu amerických vládních agentur ovlivňovat standardizační proces, tak aby v případě nutnosti dala snadno dešifrovat korespondence ( Jako důkaz pro své tvrzení zmiňuje prezentaci uvedenou na konferenci CRYPTO 2007, Danem Shumowem and Nielsem Fergusonem ( ). Na pozadí poměrně komplexního matematického popisu tito pánové vyvozují vychýlenost náhodných čísel generovaných tímto generátorem. To, že tento PRNG není zcela v pořádku podtrhuje i následující analýza pánů Berryho Schoenmakerse and Andreje Sidorenka ( ). Z analýzy lze nabýt dojmu, že se někdo snaží o to, aby byl standard dostatečně silný pro potřeby veřejnosti potažmo potřeb komerčních subjektů, ale ne tak silný, aby byl nepřekonatelný pro státní agentury. Doporučení je jednoznačné. Vyhnout se Dual_EC_DRBG a místo toho použít CTR_DRBG, nebo Hash_DRBG. Annex D: Approved Key Establishment Techniques for FIPS PUB 140-2, Security Requirements for Cryptographic Modules. Annex D je fakticky implementační a validační příručkou pro provádění validací pro FIPS level 1 level Proudová šifra Klasické pojetí kryptografie definuje proudovou šifru jako symetrickou šifru, která vytváří zašifrovanou zprávu slučováním s klíčem bit po bitu, nebo byte po bytu. Pro slučování se nejčastěji používá funkce výhradní shody (XOR). Rozdíl mezi blokovou a proudovou šifrou je v tom, že bloková šifra pracuje po blocích předem definované neměnné délky, kdežto proudová šifra pracuje právě s jednotlivými bity nebo byty. Proudové šifry mohou být nerozluštitelné, pokud je klíč unikátní pro každou relaci a je nejméně tak dlouhý jako otevřený text, pak se mluví o Vernamově šifře, nebo o OTP (One Time Pad). Podmínkou je, že klíč musí být dokonale náhodný. Jejich použití v moderních systémech je sice možné, ale vhodnější pro mnoho úkolů, které je nucena řešit moderní praxe, plně postačí blokové šifry v kombinaci s používánými kryptografickými schématy založených na symetrické a asymetrické kryptografii. Proudové šifry se obecně dělí na synchronní šifry a na šifry s vlastní synchronizací Synchronní proudová šifra Synchronní proudová šifra je charakteristická tím, že generování klíče je nezávislé na otevřeném a šifrovaném textu. V následném výčtu ve zkratce uvedeme jejich vlastnosti.

14 Synchronizace. Adresát i odesílatel musí být v stavu absolutní synchronizace. Výpadek jednoho jediného bitu znamená ztrátu celé informace, nebo její části. Přenosové zpoždění a potřebný výpočetní výkon. Přenosové zpoždění je malé. Obvykle platí, že nárůst zpoždění je minimální. Potřebný výpočetní výkon je rovněž minimální: Operace XOR je výpočetně nenáročná. Odolnost a rychlost přenosu. Požadavek na zajištění odolnosti vůči chybám jde proti požadavku na rychlost Samosynchronizující se proudové šifry Symosynchronizující se šifry, též šifry s vlastní synchronizací, Zvážíme - li předchozí výhody a nevýhody, dojdeme k závěru, že splnit v reálném nasazení takto protichůdné požadavky nejspíše nebude možné. Proto je třeba zvážit i jiné technické možnosti. 1.3 Bloková šifra Termín operační mód je dle definice uvedené << [HaC] >> mapováním bloku šifry předem dané délky n na blok otevřeného textu daného n-ticí bitů. S termínem operační mód souvisí ještě datová expanze. Expanzí dat se pak nazývá situace, kdy délka klíče k < n. Pokud platí, že k = n, pak mluvíme o nulové aritmetické expanzi. Na blok šifry lze nahlížet jako na substituční šifru s velkou délkou klíče 64 bit. Funkce je pak parametrizována na k-bitový klíč K 1 z podmnožiny prostoru všech klíčů V k. Jestliže je požadováné jednoznačné dešifrování, pak je nezbytně nutné, aby byl stanoven poměr otevřených dat k zašifrovaným roven 1:1 (princip inverze). Základní operační módy jsou ECB, CBC, CFB, a OFB. Motivací pro zavedení operačních módů jsou důvody ryze ekonomické. Následující faktory vedou přímo k zavedení operačních módů <<hac str. 227>> Požadavky na operační módy Požadovaná úroveň zabezpečení. Důvěra v kryptografické schémata z hlediska historické perspektivy závisela a závisí na schopnosti odolat kryptoanalytickým pokusům po poměrně dlouhou dobu. Pokud takové kryptoschéma odolá po dostatečně dlouhou dobu, je víceméně vždy považováno za bezpečné. Mimo jiné i proto jsou kryptografická schémata navrhována s perspektivou spíše několika desetiletí. Délka klíče je volena

15 s ohledem na skutečnost, že objem dat, v potřebný k provedení úspěšného útoku, musí výrazně převýšit délku unikátní vzdálenosti šifry. <<---hac (Definition 7.69)>> Délka klíče Efektivní bitová délka klíče, či spíše entropie prostoru klíčů, definuje horní hranici bezpečnosti šifry, nutnou pro určení počtu nutných hledání všech klíčů. Používání dlouhých klíčů si vynucuje dodatečné náklady v podobě nákladů na generování, přenos, obtíže s ukládáním a v neposlední míře i se zapamatováním si hesel, nebo heslových frází. Zde se přímo nabízí úvaha, jak moc je účinné používat k ochraně dat klíče délky 128 a více bitů, když passphrase má entropii maximálně bitů a to ještě ve velmi ideálním případě Délka bloku Délka bloku přímo ovlivňuje celkovou náročnost řešení (cenu) dvěma způsoby. Velikost bloku má vliv na bezpečnost, protože delší blok je více žádoucí, než kratší, za to však má dopad na komplexnost a náročnost řešení, protože je třeba řešit problémy s rozdílnou délkou šifry a dat Komplexnost mapování Složitost mapování má dopad na rychlost provádění, velikost kódu nebo složitost HW řešení. Volba metody transformace může a také obvykle má přímý dopad na vhodnost realizovatelnosti v SW, nebo HW řešení. Dobrým příkladem je šifra DES, která je poměrně rychlá v HW provedení, ale selhává v SW realizaci Datová expanze Celkem pochopitelným požadavkem je, aby šifra byla kratší než délka bloku. Tento požadavek lze řešit je možné řešit substitucí, nebo randomizací pomocí rund Šíření chyb Propagace chyb je méně zjevný problém už proto, protože se v návrhu nevyskytuje. Je třeba ho řešit v realizační fázi. Nejčastěji jej ovlivňuje délka bloku šifry. Obrázek převzatý z <<hac str. 229 názorně demonstruje mód ECB>> Základní operační módy V práci uvádím většinu problémů, před kterými stojí realizace. Operační módy mohou pomoci tyto problémy překlenout. To však neznamená že jsou samospasitelné. Při detailním návrhu je třeba

16 počítat také s jejich negativními vlastnostmi. Zvláště v nevhodně kombinaci s primární šifrou mohou způsobit, že jinak dobrý algoritmus se stane bezcenným. Vlastnosti jednotlivých základních módů prezentuje následující shrnutí ECB ECB (Electronic codebook) 2 šifruje po blocích pomocí jednoho a toho samého klíče. Výsledkem jeidentický zašifrovaný text. Důsledky takovéhoto návrhu jsou zřejmé: Šifrovaný text je možné přeskupit a tím i přeskupit i otevřený text. Šíření chyb je tímto omezeno pouze na blok ve kterém chyba vznikla. Nemá dopad na ostatní bloky šifrovaného nebo otevřeného textu. Odolnost proti kryptografickým útokům je nulová. Substituční útok, nebo útok pomocí voleného textu je snadno proveditelný. Neméně závažná je i skutečnost, že mód neskrývá schéma otevřené zprávy. Otevírá tím prostor pro sofistikovanější útoky. Ilustrace 2: Schéma ECB Obrázek převzatý z << [HaC] str. 229 >> názorně demonstruje mód ECB v režimu šifrování a dešifrování>> Pro vysvětlení: key značí klíč, x i vstupní vektor (otevřený text), E šifrovací schéma, n délka bloku šifry E -1, x j výstupní vektor (otevřený text) CBC / CFB CBC (Cipher-block chaining) mód využívá mnohem komplexnější schéma než ECB. Je také mnohem bezpečnější. Pokud se použije identický otevřený text a jiný IV (inicializační vektor), výstupní soubor bude vždy rozdílný ve výsledku. IV nutně nemusí být tajný. Podobně jako v případě CBC, řetězící mechanismus způsobuje, že zašifrovaný c j blok závisí na obou předcházejících blocích x j a x j+1 otevřeného textu. 2 Ilustrace 2 představuje základní princip šifrování a dešifrování v módu ECB. Obrázek je převzat z HaC str. 229

17 Šíření chyb. Chyby se podobně jako u CBC módu objevují na stejné pozici x j, kde se nachází chyba v c j. Protože je přesně dané, kde se chyba objeví, útočník může může manipulovat předvídatelným způsobem s obsahem otevřeného textu x j. Zotavení se z chyb. Stejně jako v případě CBC je CFB mód samo synchronizující. Pro úplné zotavení je třeba n / r bloků šifry. Varianta podle ISO. Ta se používá v situaci, kdy z nějakého důvodu je rozdíl s a r je menší než jeden bit. Pak se bit nejvíce vlevo a hodnota c j se předzpočítá r s. Pak je r bitový feedback proměnné posunut na pozici nejméně významného bitu. Poznámka k vlastnostem. Na rozdíl od CBC nelze CFB použít v kombinaci s algoritmy pracující s veřejnými klíči. Ilustrace 3: Schématický obrázek popisující CFB mód OFB (Output feedback) mód OFB 3 je mód používaný tam, kde je nezbytně nutné zamezit propagaci chyb. OFB mód je jediný, který je specifikován v nějakém standardu (ISO a FIPS 81). OFB je stejně jako CFB vhodný pro šifrování posloupnosti znaků. Oproti CFB je rychlejší. Určitou výhodou je, že je možné spočítat podklíče nezávisle na datech a tím urychlit provádění výpočtů. To platí za předpokladu, že známe předem IV. 3 Kresba demonstruje princip OFB módu a je převzata z <<HAC str. 229>>:

18 Ilustrace 4: princip OFB módu Identický otevřený text s identickým IV vedou vždy ke stejnému šifrovanému textu. Výstupní vektor c j nezáleží jen na vstupním vektoru x j, ale i na všech předešlých vstupních vektorech x j-n. Šíření chyb. OFB je schopný se sám od sebe zotavit z chyb, není však schopen se sesynchronizovat. Z toho plyne, že je třeba implementovat algoritmus řešící synchronizaci. Bezpečnostní opatření. Pro zajištění bezpečnosti řešení je třeba implementovat blokovou šifru s délkou bloku n bitů pouze v n-bitovém OFB módu. Opětovné používání klíčů je možné pokud změnímě IV. V opačném případě útočník může snadno, za podmínky znalosti předchozího zašifrovaného textu, odvodit snadno klíč (XOR). Stejně jako v případě CFB dochází k snížení propustnosti v případě, že platí r < n. Tento nedostatek lze kompenzovat, pokud předem spočítáme klíče (nutná znalost IV) CTR mód CTR (counter mód) mód provozu blokové šifry je obdobný OFB. Ovšem namísto posuvného registru se používá čítač (tím se ztrácí jakákoliv zpětná vazba). Po každém zakódování jednoho bloku se hodnota čítače změní o konstantu, zpravidla se zvětší o jedna. Namísto čítače je možné

19 použít i např. generátor náhodných čísel (pro dešifrování je však vždy nutno použít stejnou posloupnost hodnot, která byla použita pro šifrování). Podobně jako u OFB, CTR mění blokovou šifru na proudovou. Bezpečnost CTR je zhruba stejná jako v případě OFB. 1.4 Pokročilé operační módy V práci jsem doposud uváděl pouze základními operačními módy. Ty pro reálné nasazení nejsou vůbec vhodné a to z mnoha důvodů. Především neposkytují dostatečnou úroveň bezpečnosti a to buď garantovanou, nebo odvoditelnou z použitého algoritmu. Rovněž nejsou sto zajistit autentizaci, kontrolu integrity a další vlastnosti, jako je odolnost proti zaneseným chybám a nebo vysokou rychlost šifrování. Požadavky, jako je rychlost šifrování nebo odolnost vůči chybám, nejsou jedinými požadavky pro zavedení pokročilejších módu. Obvyklým postupem je zvolení nějakého základního módu a přidání vhodného symetrického šifrovacího algoritmu jako je AES. AES je také nejčastější volbou. Tyto módy jsou převzaty z oficiálního doporučení NIST a je možné je nalézt v doporučeních Special Publication x << >>. Uvedené módy zajišťují dostatečnou úroveň zabezpečení a je možné pro tyto módy stanovit úroveň odolnosti oproti kryptografickým útokům. Tím, že lze určit úroveň robustnosti, vzniká dostatečný podklad pro rozhodování o vhodnosti nasazení daného kryptografického schématu. U základních módů to není vždy úplně možné, protože záleží mimo jiné, na dodatečném šifrovacím algoritmu, typu a struktuře dat. Nelze vždy dopředu odhadnout vliv faktorů, jako je například sémantická bezpečnost. Za pokročilejší módy lze považovat následující módy << a některé další << >>: Autentizační módy. Autentizačně - šifrovací módy. Autentizačně - šifrovací módy pro vysoké rychlosti šifrování Módy důvěry Módy důvěry. Tyto módy slouží především pro vytváření MAC (Message Authentication Code). Ověřování autenticity je kritickým faktorem. Umožňuje předejít útokům typu man-in-the-middle, flip-flop a různým variantám replay atack. Významným faktorem, proč používat MAC je i to, že detekují změny v délce přenášených zpráv. Navíc užití tajného klíče dává důvod věřit,

20 že zpráva přišla od skutečného odesílatele. MAC jsou velice rychlé, obzvláště, pokud není nutno zároveň i šifrovat. Jsou ovšem i jiné důvody proč používat módy důvěry. Jedním z nepříliš často uváděným důvodem je přirozený šum pozadí (rušení) a chybovost přenosového protokolu, která je vždy > 0, byť je chybovost velmi malé číslo. Tyto vlivy nelze úplně eliminovat, protože jsou dány kvantovými jevy. U velmi velkých souborů ( řádově jednotky TB) je pravděpodobnost výskytu bitové chyby blížící se jedné pro běžně dostupné přenosové technologie. Proto některé databáze mají zabudovaný (ORACLE) mechanismus detekce a opravy takovýchto chyb. Lze nalézt i jiné příklady. 10 Gbps ethernet má doporučenou hodnotu chybovosti (viz: Dále se zde projevují důsledky narozeninového paradoxu apod., které chybovost ještě více zvyšují. V práci se zabývám mimo jiné i praktickými aspekty protokolů, protože snahou je odhadnout odolnost proti luštění Šifrování dat v prostředí datových úložišť Šifrování v prostředí datových úložišť je implementací operačních módů. Datová úložiště se rychle dostávají do popředí v poslední době především proto, že je velmi snadné získat data z úložišť oproti luštění zašifrovaných zpráv. Rovněž je mnohem rychlejší získat data kompromitací systému, například, protože s časem hodnota dat rychle klesá. Jako ochrana se nejčastěji používá šifrování. Takto chráněný systém je bezpečný pokud platí následující postulát: Implementace je tehdy bezpečná, pokud útočník nemůže zjistit z přímého sledování média, jakoukoli užitečnou informaci a to buď uložením textu, nebo modifikací textu již uloženého. Z toho plyne, že ochrana dat v prostředí datových úložišť a prostředků výpočetní techniky obecně, vyžaduje vytvoření analýzy hrozeb (threat analysis). Zároveň je nutné předeslat, že ochrana datových úložišť je jen jednou z mnoha částí ochrany dat před zneužitím a šifrování je jen jeden z prostředků, jak dosáhnout požadované úrovně zabezpečení. Pokud se má vytvořit spolehlivý robustní systém, je nezbytností vytvořit model rizik a na ten implementovat známé a osvědčené principy. I zde platí, víc než kdekoli jinde, že lidová tvořivost se nevyplácí. Šifrování datových úložišť, vzhledem k povaze otevřeného textu, má svá specifika. Jako základní informace mohou posloužit články: a článek v časopise Hacking 1/2008 str Vlastnosti uložených souborů a médií Vzhledem k tomu, že je možné predikovat celou řadu vlastností uložených souborů jako je:

21 velikost souboru, charakteristické oblasti souboru, formátovací značky (například XML viz sémantická bezpečnost), bloky nul nebo jedniček apod. Další informací hodnotnou informací se může ukázat struktura FS (file system) jako inody, transakční log, informace relavantní k RAID grupě. Informace je využitelná v souvislosti s metodami založenými na diferenciální kryptoanalýze, ale i pomocí mnohem méně sofistikovaných metod. Šifrování blok po bloku je ve skutečnosti substituční šifra. Nahrazením substituce mnohem větším počtem možných kombinací 2 128, nebo stále jde o substituční šifru byť s velmi velkým počtem kombinací. Jestliže je na disku velký počet stejných řetězců, je jasné, že jde nulami vyplněný prostor, nebo může zaměňovat libovolné skupiny po 128 bytech. Mimo to většina systémů založených na CBC má nepříjemnou vlastnost, že musí použít použít inicializační vektor IV. Protože nelze uložit inicializační vektor pro každý blok média zvlášť je nutné ho odvodit od čísla sektoru. Jistě je možné použít master IV, nebo sůl a nějakou vhodnou funkcí spojit s číslem sektoru. Problém nastane v okamžiku, kdy není možné tento hlavní inicializační vektor obnovit, například po nějaké chybě OS a podobně i přes zajištění vícenásobným umístěním na médiu. Navíc je reálné riziko, že útočník může přepsat IV nějakým jiným vektorem a pak je celý obsah nedostupný (fakticky jde o denial of service atack). Velikost bloku na médiu. Nezřídka se setkáváme s délkou bloku rozdílnou od standardní velikosti 512 byte (například IBM AS/400 používá 520 byte). Je nutné přijmout opatření, aby útočník neměl příležitost k snadnému dešifrování. Tomu se dá předejít technikou kradení šifrového textu (cipherblock stealing). Páskové mechaniky používají mnohem delší bloky (4 8 kb, nebo i více). Narow-block a wide-block encryption. Rozdíl v přístupu k oběma typům je v tom, že není přímo možné použít jeden mód na libovolnou sektoru na disku. Důvody jsou zřejmé. Pokud je sektor malý tj menší než délka bloku šifry a blok má konstantní délku, je prakticky jediným problémem rychlost provádění operace šifrování a dešifrování. V dnešní době je už rychlost procesorů tak vysoká, že výpočetní operace spojené s šifrováním je možné provádět za chodu. V případě delšího bloku je situace odlišná. Je nutné vzít v potaz několik aspektů. Především, jak zajistit, aby délka bloku šifry neznamenala bezpečnostní riziko. Riziko spočívá v tom, že násobek délky sektoru šifry vůči bloku bude konstantní a celočíselný. Pokud tento násobek nesplňuje tuto podmínku, je třeba vyřešit konce zašifrovaného textu nějakým doplňovacím schématem. Lze namítnout, že je možné navrhnout délku šifry, tak aby tomuto požadavku odpovídala. V praxi takové řešení naráží na omezení daná OS, nebo požadavkem zašifrovat už existující soubory na disku. FS využívající velké bloky disponují schopností využívat zbytkový prostor, který by jinak zůstal nezaplněn. Pro zacházení

22 s extenty a nevyužitými zbytky sektorů (nezaplněnými daty) je třeba použít jednoznačný a spolehlivý algoritmus. Samostatnou kapitolu představují transakční, nebo žurnálovací FS, které díky své povaze mohou mít data duplikována, rozprostřena po celém disku a ukládat rozdíly vůči nějakému stavu apod. Zhruba platí, že se doposud používá pro narow-block encryption LRW a XEX a pro wide-block encryption CMC and EME. Nejčastějším obecně používaným řešením nejen pro velké sektory je použití XTS-AES a to především díky standardizaci. Tento šifrovací algoritmus vznikl modifikací a sloučením několika návrhů. Může mít tři délky klíče K: 256, 320 a 384 bitů. Klíč rozdělí na část K1, který použije jako klíč algoritmu AES-128, 192 nebo 256, a část K2, která má 128 bitů. Algoritmus nezabraňuje všem útokům, ale alespoň těm nejčastějším. Mimoto má dobrý poměr cena/výkon. Je vhodný pro šifrování sektorů, které nejsou zarovnány na 128 bitů, například sektory o 520 bajtech, a to technikou kradení šifrového textu, zmíněné dříve. Problémy spojené s ukládáním dat prostředky výpočetní techniky. Záměrně zde užívám termín výpočetní technika, neboť jde o více způsobů ukládání dat a to nejen na magnetická média, CD / DVD, ale i v papírové podobě. Samotný fakt, že data jsou často redundantní znamená, že je možné snáze provádět útoky typu plain text, nebo útok pomocí známého textu. V případě databázových aplikací je třeba vzít v úvahu, že objem dat může být výrazně menší než standardní velikost bloku použité šifry. To zapříčiňuje, že objem zašifrovaného textu je výrazně větší než u otevřeného textu. Je třeba zdůraznit, že archivační a zálohovací systémy také zvyšují objem zašifrovaného textu. Při nesprávně voleném algoritmu může dojít k oslabení ochrany, která může vést až k úplnému prolomení ochrany a to díky možným kryptografickým útokům. Redundantní objem dat dává prostor k analýze prostředí, jejíž výsledkem může být cílený útok, ať už v podobě man-in-the-middle, nebo útoku založeném na porovnání dvou či více zašifrovaných textů. Rychlost I/O operací. Rychlost I/O operací je kritickým faktorem zejména v případě masivně paralelních systémů, nebo databázových systémů a proto je třeba volit vhodný nejlépe vysokorychlostní algoritmus. Ukládání klíčů. Ukládání klíčů v případě dlouhodobého ukládání vyžaduje klíčové hospodářství na dostatečně vysoké úrovni, protože zde hrozí riziko možné krádeže klíče. Klíčové hospodářství. Klíčové hospodářství je nezbytným v případě organizace s velkým objemem dat a velkým počtem uživatelů. Komplexnost roste kvadraticky s počtem uživatelů a množstvím dat, ke kterým mají mít přístup. Ke zvyšování komplexnosti přispívá i fakt, že

23 systém musí být dostatečně flexibilní, aby byl schopen reagovat na změnu politik, rozšiřování objemu dat i uživatelů (dostatečný klíčový prostor). V neposlední míře musí být schopen pokrýt požadavky typu: uživatel A smí vidět pouze část souboru X, kdežto uživatel B celý soubor atd. Rozdíly dané architektonicky. V zásadě lze volit mezi dvěmi hlavními přístupy a to: link-by-link a end-to-end << [PC] str. 221>>. Je samozřejmě možné, za určitých podmínek kombinovat oba přístupy. Nicméně, ne vždy je to možné a žádoucí. Lze si představit situaci, kdy z nějakého důvodu je nutno ověřit konzistenci dat na jednotlivých uzlech a nebo ověřit, že data skutečně prošla přes nějaký uzel nebo bránu (typické pro bezpečnostní modely jako je Bell La Padulla apod.) Link-by-link. Spíše by se slušelo nahradit termínem point-to-point. K šifrování dochází na komunikačních spojích mezi jednotlivými uzly prostředí Bezpečnost mezi jednotlivými uzly V uzlech je obsah nezajištěn. Znamená to, že je na uzlech možné provádět odposlech. Otevřený text se vyskytuje v nezašifrované podobě na uzlu, který text odesílá. Role uživatele Šifrování provádí vždy zdrojový uzel (možnost zadních vrátek u zdroje) Šifrování zneviditelňuje data uživateli, nebo jejich vlastníkovi Jednotlivé uzly zajišťují šifrování Všichni uživatelé musí sdílet jeden mechanismus Výhodou je implementovatelnost HW prostředky Nevýhodou může být přístup všechno, nebo nic k šifrování dat Implementační omezení Jeden klíč je vždy nutný pro dvojici uzlů Na každém uzlu musí být přítomen šifrovací SW, nebo HW Nutnost autentizace každáho uzlu

24 End-to-end šifrování Bezpečnost mezi jednotlivými uzly Otevřený text je zašifrován na zdrojovém uzlu V mezilehlých uzlech je otevřený text zašifrován Role uživatele Šifrování provádí vždy zdrojový proces (možnost zadních vrátek u zdroje) uživatel je ten, kdo vždy aplikuje šifrování uživatel vždy volí algoritmus Výhodou je snadná impementace SW prostředky Uživatel volí soubor, případně algoritmus jímž bude soubor šifrován Implementační omezení Pro každý pár uživatelů je nutný jeden klíč Každý uzel musí být vybaven HW, nebo SW prostředky pro šifrování Nutnost autentizace každého uživatele Rozdíl v šifrování celého datového úložiště a jednotlivých souborů Šifrování jednotlivých souborů Výhody Jednoduchá implementace. Pružnost v zacházení se soubory. Při transportu dat mezi cílovým a zdrojovým uzlem, nebo procesem, není třeba odšifrovat a znovu zašifrovat. Zálohování je mnohem jednodušší (viz. předchozí bod). Bezpečností rizika Možný únik informace skrze nedostatečně zabezpečené programy.

25 Chybná, nebo nedostatečně kvalitní implementace. Pokud implementace nedostatečně zajišťuje bezpečnost kritických součástí kódu, nebo nesprávně zachází se soubory (i dočasnými), vážně snižuje nebo přímo ohržuje otevřený text. Takovým příkladem může být implementace hesla v které je nezajištěné v paměti, nebo v odkládacím souboru. Problémy spojené s používáním Uživatel musí vědět jak správně nakládat s daty a jak zacházet s nástroji pro šifrování. Pro dostatečné zabezpečení většího počtu souborů je potřeba odpovídající množství hesel. V ideálním případě platí, že co soubor to vlastní heslo. Řízení přístupu v podstatě neexistuje. Pokud nepoužijeme nějaký centralizovaný nástroj pro zprávu klíčů, pak uživatel je ten, kdo provádí řízení přístupu. Šifrování na úrovni celého datového úložiště Výhody Dočasné soubory, pracovní kopie, atp. jsou zajištěny. Pravděpodobnost, že něco nebude zašifrováno, nebo se zapomene zašifrovat je výrazně nižší. Bezpečností rizika Implementační nedostatky. Je obtížné správně navrhnout část programu uloženou v paměti a k tomu příslušný ovladač. Další bezpečnostní riziko vyplývá z chybné nebo nesprávné implementace hesel (autentizace a autorizace obecně). Pokud takto koncipovaný užívá master heslo jeho ztráta, nebo vyzrazení znamená automaticky kompromitování obsahu celého datového úložiště. Výběr šifer. Je třeba mít na paměti, že ne všechny algoritmy jsou vhodné pro šifrování obsahu datového úložiště. Vhodným příkladem může být OFB (viz výše). Problémy spojené s používáním. Jednoznačnou nevýhodou je snížení rychlosti přístupu k datů. Dalším nedostatkem

26 může být SW implementace (snížení výkonsti systému). Data se obtížně extrahují v případě, že dojde k poškození řídících struktur média. Zašifrované prostředí totiž může úplně znemožnit obnovu dat po havárii HW prostředky a SW prostředky HW prostředky byly dlouhou dobu jedinými, které bylo možné nasadit pro zajištění dat. Dnes spíše převládají SW prostředky, nicméně to neznamená, že by byly na ústupu. Dnes se opět začínají objevovat jako součást řadičů diskových polí, nebo jako součást čipsetů pro PC. V této souvislosti je třeba poznamenat, že pokud by takovéto řešení chtěl kdokoli použít pro zacházení s utajovanými skutečnosti, nebude mu to dovoleno, protože takové povolení vydává pouze a jen pouze příslušný úřad. Získat atestaci na jednotlivé komponenty je obtížné, vydává se pro celkové řešení. Atestaci předchází vždy důkladné zkoumání, které může být odňato. Výhodou HW řešení je jednoznačně rychlost. Výpočetní operace spojené s šifrováním a dešifrováním jsou většinou velmi náročné a proto není přínosné zatěžovat hlavní procesor těmito opracemi. Pro používání oddělených HW prostředků hovoří další faktor. Operace prováděné CPU mohou být trasovány a v neposlední míře je i možné provádět útoky typu timming atack přímo na procesoru. CPU většinou nejsou navrhovány s ohledem na zabezpečení prováděných operací. Specifický problémem je ochrana oproti snoopingu. Techniky jako je TEMPEST umožňují i vzdáleně, provádět odposlech pomocí sledování parazitního vyzařování (to se týká i tamperingu). Ochrana proti takovýmto útokům je mimo rámec této práce. Významným faktorem, který hovoří ve prospěch zavádění HW prostředků, je snadná implementace. Nevýhodou jsou časté problémy s kompatibilitou. Běžně se stává, že spolu nekomunikují zařízení od jednoho dodavatele. Velmi často opomíjeným faktorem při implementaci HW řešení je provoz a oprava chyb v algoritmu. Oprava chyb se v prostředí HW implementace provádí hůře než v případě SW implementace (pokud je vůbec možná). HW prostředky obvykle řeší část celkového zabezpečení, nikoliv celek jako takový. SW řešení naproti tomu je možné snáze implementovat, jako end-to-end. Jednoznačnou výhodou je portabilita. SW řešení je možné snadno implementovat na desítky, nebo stovky řešení a stejně rychle je možné provádět opravy chyb, pokud se vyskytnou. Na rozdíl od HW je možné, v prostředí SW řešení implementovat bezpečnostní politiky, které jsou mnohem flexibilnější a je možné je ušít na míru prostředí, ve kterém jsou implementovány. Kritickým faktorem je pak správa prostředí Standardizační úsilí v oblasti šifrování ukládaní dat Snaha o standardizaci vyústila ve vytvoření pracovních skupin IEEE P1619.x. Zatím byl pouze standardizovány disk storage standard P a tape storage standard P Standardy zatím

27 vyřešily některé problémy související s problematikou. Standard P definuje šifrování disků použitím algoritmu XTS-AES. Standard P (draft) navrhuje šifrování pásek použitím algoritmu AES v modech Counter mód s CBC-MAC (CCM), Galois/Counter Mode (GCM, viz dále), CBC-HMAC-SHA a XTS-HMAC-SHA. Standard P se zabývá šifrováním disků s použitím blokové šifry s blokem délky (512 bitů). Také se pracuje na standardu klíčového hospodářství pro paměťová média (draft P v době psaní práce). V práci se zabývám především stávajícím stavem a diskovými a SSD médii. Nejdříve se zaměřím na stávající stav. Nejčastěji využívanými algoritmy současnosti jsou založené na CBC, a to přes své dosti zásadní nedostatky, především v oblasti integrity dat. CBC se používá mimo jiné i proto, protože jiné vhodnější módy jsou patentovány. 1.5 Kombinování blokových šifer Kombinování blokových šifer je způsob jak dosáhnout následujících cílů a to už dohromady, anebo odděleně. Zvětšit délku klíče Zkrátit délku klíče Odstranit některé nedostatky v použitém algoritmu. Prodloužit délku použitého bloku Vícenásobné šifrování Nepříliš dobrým způsobem, jak zvýšit bezpečnost algoritmu, je použití dvou nebo více různých klíčů. Uvažujme následující způsob šifrování a dešifrování. C = E k2 (E k1 (P)) P = D k1 (D k2 (C)) Pokud je ovšem blokový algoritmus v grupě, pak platí, že: C = E k2 (E k1 (P)) = E k3 (P) To je nežádoucí stav a z praktických důvodů budeme se mu snažíme vyhnout. Důvod je nasnadě. Dva klíče nahradíme jiným klíčem. Pokud zajistíme, že k tomuto nedojde, nutně to neznamená výhodu delšího klíče. Nebezpečí je skryto v realizovatelném útoku známém jako setkání uprostřed (meet-in-the-middle). Tento útok umožňuje, za předpokladu dostatečně velké dostupné

28 paměti, snížit výpočetní náročnost řešení úlohy z 2 2n na 2 n+1. Útok předpokládá znalost následujících parametrů: P 1, C 1, P 2 a C 2 takových, pro která platí: C 1 = E k2 (E k1 (P 1 )) C 2 = E k2 (E k1 (P 2 )) Pak stačí pro všechna platná k spočítat E k (P 1 ) a uložit všechny výsledky do paměti. V následujícím kroku spočítá D k (C 1 ) a porovná s výsledky v paměti. Pokud se mu podaří najít takovou shodu, pak v následujícím kroku musí ověřit, že klíč K 1 je shodný s K 2. Pro ověření postačí zašifrovat P 1 pomocí K 1 a K 2. Pokud výsledkem bude C 2, lze s velkou pravděpodobností říci (s pravděpodobností 2 2m - 2n ), že máme správné hodnoty C 1 a C 2. Úvaha vypadá na první pohled nebezpečně pro dvojnásobné šifrování, ale v běžných podmínkách je spíše hypotetickou hrozbou, neboť vyžaduje velký objem paměti (2 2n ). Pokud se bude uvažovat pouze paměť nutná pro uložení dat, pak bude potřeba bitových bloků, což znamená 5, MB a to vše jen pro čistá data. Do tohoto odhadu nejsou započítána další nutné pomocné data jako jsou: indexy, CRC apod. Při těcchto to objemech jsou pomocná data absolutně nezbytná, už pro odhalení možné zanesené chyby V případě 128 bitového klíče to znamená nárůst na 2, MB. Při takových objemech není technicky možné provést útok metodou meet-in-the-middle, protože jen objem křemíku, který by byl potřeba pro paměť typu RAM by byl kvádr o velikosti hrany 1,73 km (za předpokladu, že budeme uvažovat 5 atomů na hradlo a jen křemík). Z tohoto zjištění plyne, že nejefektivnější způsob, jak zvýšit bezpečnost dat, je použití buď silnějšího algoritmu, nebo delšího klíče Trojnásobné a vícenásobné šifrování (EDE) EDE je akronym pro Encryption-Decryption-Encryption. Metoda je používána v souvislosti se snahou o zesílení algoritmu DES. Popis je možné nalézt v standardech X 9.17 a ISO Algoritmus byl vyvinut firmou IBM. Důvody byly v zásadě dva. Prvním důvodem byla zpětná kompatibilita a tím druhým snaha o zesílení algoritmu DES, který už v té době byl považován za nedostatečně silný (1978). V případě ostatních algoritmů nemá jeho užívání smysl, protože jsou samy o sobě podstatně silnější (např.: AES, TWOFISH apod.). EDE samo o sobě není dostatečně odolné řešení proti útokům za pomoci kvantových počítačů. Význam má především v CSPRNG (Cryptographicaly Secure Pseudo Random Generator) dle standardu X PKCS PKCS (Public Key Cryptography Standards) je standard proponovaný firmou RSA Inc. Jejímž cílem je standardizovat šifrování s veřejným klíčem založeným především na algoritmu RSA,

29 jenž měla patentovaný (zkončila platnost ). Související témata, jako kryptotokeny apod. řeší také, i když ne všechny související aspekty. Tento standard se fakticky průmyslovým standardem nestal, nicméně našel svou důležitost v prostředí IETF PKIX a jeho některé části jsou přímo využívány v internetových standardech jako je RFC-2704 (KeyNote Trust-Management System Version 2), RFC-2794 (DSA and RSA Key and Signature Encoding for the KeyNote Trust Management system), SSL 3.0, a v dalších oblastech PKCS #1 PKCS#1 je formalizace definicí vlastností veřejných a privátních klíčů. Formalizace obsahuje základní algoritmy, kódovací a doplňovací schémata nutná pro šifrování dešifrování a ověřování podpisů. Poslední vydaná verze 2.1, která řeší některé bezpečnostní problémy související s implementací schémat a kryptologických primitiv předchozích implementací, které se v průběhu času objevili a bylo třeba na ně adekvátně reagovat. PKCS #1 je popsán v internetovém standardu RFC Vybranými primitivy jako jsou RSA-OAEP a RSA-PSS se budeme zabývat dále PKCS #2 a #4 Tyto standardy byly zahrnuty do PKCS #1 a nejsou dále aktivní. PKCS #2 definoval kontrolní součty a PKCS #4 popisoval syntaxi klíčových primitiv PKCS #3 PKCS #3 definuje aspekty Diffie-Helman klíčové schody (dále jen D-H). D-H klíčová shoda v této specifikaci řeší výměnu společného tajného klíče mezi dvěmi subjekty skrze nezajištěný komunikační kanál. V současnosti je platnou verzí verze PKCS #5 PKCS #5 definuje schémata pro šifrovací techniky založené na tajném přístupovém kódu PKCS #6 PKCS #6 definuje další kryptografické rozšíření pro PKI certifikáty na bázi X.509v1 ve verzi 1.5. Dnes je kompletně nahrazena implementací ve verzi X509v PKCS #7 PKCS #7 je definicí pro předdávání zašifrovaných zpráv CMS (Cryptographic Message Syntax

30 Standard). CMSS se stal výchozím pro standard S/MIME. Je především užíván pro elektronický podpis a šifrování v rámci PKI. V současné době je specifikován v RFC PKCS #8 PKCS #8 je standard pro Private-Key Information Syntax Standard. Je především používán v prostředí http serveru APACHE, jako nástroj pro manipulace s privátními klíči certifikátů. Pozoruhodné je to, že nepoužívá šifrování PKCS #9 PKCS #9 definuje vybrané atributy pro ostatní PKCS. Pro PKCS #6 definuje atributy užité v PKI certifikátech, PKCS #7 atributy užité při podepisování zpráv a v PKCS #8 informace relevantní s privátními klíči. Trochu vyjímkou je PKCS # 10, pro který definuje atributy užité v CSR (certificate-signing requests). Platná verze je verze PKCS #10 PKCS #10, jak již bylo řečeno dříve, je popisem Certification Request Standard, standardem řešící vydávání PKI certifikátů a souvisejících otázek. CSR je kodifikován v RFC 2986 a platná verze je 1.7. Ve své podstatě je CSR žádost o vydání certifikátu vlastního veřejného klíče PKCS #11 PKCS #11 popisuje Cryptographic Token Interface (CTI, Cryptoki). CTI je generickým rozhraním pro kryptografické tokeny (HW bezpečnostní moduly, klíčenky apod.). PKCS #11 je často využíván v implementacích chytrých karet (smartcards) a single-sign-on řešení. Některé programovací jazyky a prostředí přímo nabízejí přímo použitelné třídy bezpečnostních rozhraní zabývající s realizací API pro PKCS #11. Poslední platná verze je 2.2. Jako zástupce uveďme JAVA J2EE (java.cryptoapi, java.security, java.net) a C# (CAPICOM.EnvelopedData, System.Security.Cryptography.X509Certificates a další) PKCS #12 PKCS #12 je definicí pro Personal Information Exchange Syntax Standard (PFX). PFX definuje atributy užívané pro ukládání privátních klíčů nejčastěji v souvislosti s PKI a certifikátů veřejných klíčů. PFX je de facto předchůdce PKCS #12. Formát je realizován jako kontejner a proto není

31 problém ukládání více certifikátů současně v jednom kontejneru. PKCS #12 je použit například pro ukládání certifikátů a klíčů v prostředí J2EE, jako keystore PKCS #13 PKCS #13 je zamýšlen jako standard pro ECC (Eliptic Curve Cryptography). Doposud však nebyl vydán ani jako veřejný draft PKCS #14 PKCS #14 je snahou o vytvoření jednotného standardu a rozhraní pro PRNG (Pseudo Random Generator). Stejně jako v případě PKCS #13 nebyl vydán ani jako veřejný draft PKCS #15 PKCS #15 je soubor definicí atributů a metod pro Cryptographic Token Information Format Standard. Pozoruhodné je, že PKCS #15 je nezávislý na PKCS #11. Tento standard je především spojen se standardem pro chytré karty dle ISO/IEC jehož nedílnou součástí je právě zmíněný standard. Metody a atributy zde popsané, dovolují interakci, vzájemnou identifikaci uživatele a aplikace pomocí chytrých karet. 1.7 Symetrická šifrovací schémata Symetrická šifrovací schémata jsou nejstarší používaná šifrovací schémata vůbec. Jejich používání je doloženo z doby před naším letopočtem. Společný rysem je, že používají stejný klíč pro šifrování i dešifrování textu. Stejný klíč pro šifrování i dešifrování přináší jeden zásadní problém a to nutnost přenést tento klíč mezi odesilatelem i příjemcem zabezpečeným kanálem. V praxi nastávají ještě další obtíže v případě komunikace více subjektů mezi sebou dochází, k nárůstu počtu klíčů, je potřeba vyřešit bezpečnou distribuci klíčů, jejich zničení, jejich úschovu apod. To řeší klíčové hospodářství. Nespornou výhodou je, že délka klíče je oproti šifrám asymetrickým malá, běžné kryptosystémy používají délku klíče mezi 56 až 448 bity, což je oproti asymetrickým kryptosystémům výrazně méně (RSA: a více bitů). Symetrická šifrovací schémata se dělí na dvě základní podskupiny a to blokové a proudové Proudové šifry Proudové šifry šifrují i dešifrují otevřený text bit po bitu, k tomu používají heslo. Heslo je v tomto

32 případě zažitý termín, který ve skutečnosti představuje proud pseudonáhodných bitů. Ty mohou být vygenerovány i zcela náhodně jako v případě Vernamovy šifry. V tomto případě mluvíme o jednorázovém klíči (OTP - One Time Pad). Protože je žádoucí, aby heslo bylo pokaždé jiné používáme k jeho změně inicializační vektor (IV), který je pro každou zprávu jiný. Obvykle se používá funkce XOR (výjmečná shoda) pro šifrování i dešifrování Velikost a délka je kvalitativním parametrem, nicméně nelze však říci, že platí, čím delší inicializační vektor, tím je šifra kvalitnější. K celkové kvalitě přispívá i použitý šifrovací algoritmus, kvalita návrhu a výsledná realizace. Vždy ale platí, že při inicializaci je algoritmus ve výchozím stavu a utajení je zajištěno pomocí klíče. Pokud by to tak nebylo, bylo by možné provést kryptografický útok na takový kryptosystém metodou studeného startu (cold boot atack). Pokud by totiž byl systém v počátečním stavu již nastaven, bylo by možné pomocí útoku voleným textem zjistit inicializační vektor a tím i jednoduše ohrozit celý kryptosystém Blokové šifry Blokové šifry se od proudových liší tím, že ke své činnosti užívají pevnou délku slova. Typickou délkou slova je 64, 128, nebo 256 bitů. Další charakteristickou vlastností je používání tzv. operačního módu (viz dále). Blokové šifry zpracovávají celý blok zprávy naráz. První novodobou komerční blokovou šifrou byl LUCIFER firmy IBM, Vzhledem ke skutečnosti, že šifrovací schéma pro komerční účely bylo velmi žádáno, LUCIFER se stal základem pro první komerčně dostupnou šifru DES. Od svého uveřejnění << Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm &r=1&f=g&l=50&s1= pn.&os=pn/ &rs=pn/ >> v roce 1976 a standardizování v roce 1977 jako FIPS PUB 46. DES je také znám kontroverzí, která jej provází od počátku. Jsou dobře známy a zdokumentovány snahy NSA redukovat sílu šifry a délku klíče. Už od počátku tato snaha poznamenala kvalitu této šifry. Její nástupci DESX, TDES apod. Dosahují přijatelných kvalitativních parametrů. Znamenají zkvalitnění tohoto algoritmu. DES je též první veřejně známou komerční šifrou na níž byl proveden úspěšný útok pomocí specializovaného stroje. Stalo se tak v roce 1998, kdy stroj DES CRACKER v ceně USD americké organizace EFF (Electronic Frontier Foundation) prolomil 56-bitový klíč v čase 56 hodin. Definitivně tak padla víra, že DES je neprolomitelný. Tuto víru utvrzovala hlavně NSA. Proto byla otevřeně podezřívána, že za tímto úsilím je snaha snadno a rychle luštit zprávy. DES se stal i prubířským kamenem moderních kryptologických technik, jako jsou lineární kryptoanalýza

33 a diferenciální kryptoanalýza. Jako pozoruhodná se jeví skutečnost, že šifru Triple DES (TDES) přes zjevné nedostatky schématu, uznal NIST jako dostatečnou pro šifrování citlivých informací americké vlády až do roku Je vhodné říci, že blokové šifry nejsou jen DES a jeho deriváty. Existují i jiné. Jmenuji například AES, BLOWFISH, GOST , Skipjack CAST 128 a další. Zde uvádím BLOWFISH / TWOFISH a AES jako velmi často užívané blokové šifry v prostředí aplikačního programování AES AES (Advanced Encryption Standard ) byl původně pracovní název pro budoucí standard symetrické šifry, který měl nahradit stárnoucí DES. V prvním kole se zůčasnilo 15 kandidátů a do druhého kola bylo vybráno celkem 5 kandidátů. Vybrány byly tyto algoritmy: MARS (IBM), RC6 (RSA Labs), Rijndael (Joan Daemen and Vincent Rijmen), Serpent (Anderson, Biham, Knudsen) and Twofish (Counterpane). Požadavky zadavatele byly následující: Šifra musí šifrovat 128-bit blocích a používat klíče délky128, 192, nebo 256 bitů. Šifra musí být navržena s ohledem na odolnost oproti útokům s použitím metod diferenciální a lineární kryptanalýzy. Rychlost. S ohledem na špatné zkušenosti s rychlostí některých šifer (např. DES v SW realizaci), byl do zadání dodán požadavek týkající se rychlosti šifrování a dešifrování (53 MB/s na procesoru Pentiu III). Osobně si myslím, že rychlost je největší přínos tohoto standardu. Uvážíme-li reálnou rychlost současných médií a výkon procesorů, tak tato podmínka umožňuje rozšířit tento standard do oblastí dříve nemyslitelných bez HW akcelerátorů. Tím myslím šifrování paměťových médií za běhu (on-the-fly), šifrování vysokorychlostní komunikace po síti (> 1Gbps) apod. při relativně nízké zátěži procesoru (řádově několik procent na moderních procesorech). Vysoká rychlost jak v HW tak i v SW prostředí. AES nebude podléhat licenčním poplatkům. Další požadavky je možné nalézt na: Vítěz je znám též pod názvem RIJNDAEL, což je akronym tvůrců Joan Daemen a Vincent Rijmen, pod kterým se zůčasnil soutěže o budoucí standard AES. Rijndael se stal vítězem soutěže vypsané v lednu Po pětiletém zkušebním období byl jako vítěz klání dne 26. ledna 2001 a přijat jako standard AES. Dne 26 května 2002 jako americký federální standard. AES dovoluje používat klíče,

34 v souladu se zadáním NIST, 128, 192 a 256 bitů při délce rundy128 bitů. Runda je cyklus, ve kterém se zpracovává vstupní text. Takto dlouhé délky klíčů se označují AES-128, AES-192 a AES-256. Podle toho jakou délku šifry, volíme počet rund je 10, 12, nebo 14. AES je publikován pod hlavičkou NIST v současnosti jako FIPS PUB 197-2, který je zároveň kompletní specifikací algoritmu. Předpokládá se, že standard bude platný podobu 10 až 15let. NIST ve specifikaci síly šifer pro jednotlivé úrovně bezpečnosti považuje AES za dostatečný do roku Již dnes, 7 let po ustavení standardu, se pomalu stává převládajícím kryptografickým standardem. Je třeba říci, že jako každý standard má své slabiny. Jako poměrně zásadní je třeba brát v úvahu ne zcela kvalitní návrh PRNG a možnost vzdáleného timming útoku na kryptosystém využívající implementaci AESu. Pokud zvážíme vhodnost ostatních kandidátů pro standard AES, je třeba poznamenat, že ve vztah k volbě šifrovacího algoritmu panovala a dosud panuje jistá kontroverze. Některé odborníky překvapilo, že nezvítězily jiné kryptosystémy, například TWOFISH. Pro lepší pochopení je třeba rozebrat alespoň z hlediska základních vlastností ostatní kandidáty. Informace zde použité jsou převzaty z RSA FAQ 41: << TWOFISH. TWOFISH byl navržen týmem za nímž stála společnost zabývající se počítačovou bezpečností COUNTERPANE (v současnosti vlastněná British Telecom). Tým složený z: Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall a Niels Ferguson. Twofish je založen na Schneier s algoritmu Blowfish. Twofish je založen na rychlém a velmi univerzální Feistelově síti. Algoritmus nevyžaduje mnoho paměti. BLOWFISH je celkem spolehlivá šifra, u které jsou dobře známé vlastnosti. Podobně jako u šifry MARS díky komplexní vnitřní struktuře, je obtížné analyzovat případné nedostatky a slabiny. Na rozdíl od MARSu algoritmus je postaven na vyzkoušeném a spolehlivém algoritmu. MARS. MARS byl dílem IBM a je třeba konstatovat, že je navržen poměrně novátorsky. To byl zřejmě ten důvod proč nakonec nebyla tato šifra zvolena jako standard AES. MARS je schopen pracovat s klíči až do délky 448 bitů. Skládá se z 16 rund, jádro algoritmu zabaleno do dvou úrovní po 8 rundách, mající za úkol vytvořit difuzi mícháním bitů. Algoritmus dobře odolává známým typům útoků. Další výhodou je používání jednoduchých matematických operací jako je: celočíselný součet, bitový součet a rotace. Rychlost šifrování je přinejmenším dobrá, spíše vynikající. Problémem byl nevyzkoušený algoritmus a obtížně odhadnutelná síla šifry (i oproti ostatním kandidátům). SERPENT. SERPENT byl navržen Rossem Andersonem, Eli Bihamem a Larsem

35 Knudsenem. SERPENT lze považovat za ztělesnění konzervativního přístupu. To se poněkud negativně odráží na výkonu (ze všech kandidátů je považován za nejpomalejší). Algoritmus používá 8 S-boxů víceméně převzatých z DESu a 32 rundách. Jejich počet více než dvakrát převyšuje požadavky zadání NISTu. SERPENT je tak možné považovat za spolehlivě bezpečnou šifru, s ověřitelnou úrovní spolehlivosti. Další výhodou je fakt, že malé paměťové nároky ji činí vhodnou pro aplikace založené na chytrých kartách. Je dokonce lepší než CAST 256. RC6. RC6 je dílem RSA Laboratories Inc. (dnes EMC Inc.). Algoritmus je založen na algoritmu RC5, který je považován za spolehlivý a odolný proti kryptologickým útokům. RC6 se skládá z 20 rund, což je požadováno za ne zcela dostatečné. Nicméně, v algoritmu se nepodařilo nalézt žádnou slabinu. To činilo ze všech kandidátů nejrychlejší šifru. Určitým omezením jsou v návrhu použité 32-bitové operace. To RC6 omezuje z hlediska výkonosti na jiných než 32-bitových platformách. RIJNDAEL. RIJNDAEL (vítěz AES) je založen na stejných osvědčených principech jako DES. Ty na rozdíl od DESu nebyly nikdy zpochybněny. RIJNDAEL používá rundy (10 14) a ve všech rundách je každý bit transformován, řádek rotován a sloupce jsou vynásobeny pomocí předem definovaným vektorem matice. Nad každou rundou je provedena operace XOR a tím vznikne rundový klíč. Spíše než nižší kvalitou konkrentů, zvítězila vyváženost RIJNDAELu. V nedávné minulosti byly objeveny slabiny, které bude třeba dříve, nebo později odstranit (viz PRNG generátor a vzdálený timming atack). V budoucnu bude zajímavé sledovat, jak dlouho tento kryptosystém dokáže odolávat kvantovým počítačům a rostoucímu tlaku ze strany kryptoanalitiků. Zatím je však, považován přes chyby v návrhu za bezpečný BLOWFISH BLOWFISH byl zmíněn v pasáži týkající se AES, jako základ poměrně sofistikovanějšího algoritmu TWOFISH. Ačkoli se TWOFISH nestal standardem AES používání šifry BLOWFISH je stále ještě poměrně rozšířeno a to i přes nástup AESu. Rozšíření šifry Blowfish bylo dáno hlavně tím, že za tuto šifru nebylo nutné platit,že její užívání bylo osvobozeno od placení licenčních poplatků. V době vzniku, v první polovině 90-tých let, kralovala šifra DES firmy IBM. Již tehdy byla považována za ne zcela spolehlivou. K tomu je třeba přičíst i malou délku klíče 56 bitů. Ostatní dostupné blokové šifry podléhali povinnosti platit licenční poplatky a to nikterak malé (RC4, RC5, IDEA). Ze strany vlády USA také nebyla snaha, z pochopitelných důvodů, zlepšit

36 situaci. Proto její tvůrce, význačný kryptolog a odborník na počítačovou bezpečnost, Bruce Schneier se rozhodl vytvořit návrh blokové šifry, která by mohla být použita jako náhrada za nevyhovující DES. BLOWFISH je poměrně spolehlivá šifra vytvořená s ohledem na 32-bitové prostředí. V minulosti se podařily najít určité slabiny, ale nezdá se, že kvalita by tím nějak utrpěla. Šifra je bloková se 64-bitovými bloky a každá runda obsahuje permutaci závislou na klíči a datech a feistelovou sítí. Klíč může být délky až do 448 bitů a používá se pro vytváření polí podklíčů. Všechny operace jsou založeny na operaci XOR. Šifra je výrazně rychlejší než DES. Na ověření kvalit šifry byl v roce 1995 vypsána soutěž, dotovanou 1000 USD, podporovaná časopisem Dr. Dobbs Journal na prolomení šifry. To se sice nepovedlo, nicméně byly nalezeny slabiny pro 3-rundovou verzi, některé klíče jsou slabé a v neposlední míře i slabší odolnost vůči diferenciální kryproanalýze. B. Schneier po té navrhl další pokračování výzkumu, který by našel další slabiny návrhu. BLOWFISH je stále ještě oblíbenou šifrou používanou v open-sourcové komunitě. Dnes však ustupuje do pozadí právě díky AESu. 1.8 Asymetrická šifrovací schémata Asymetrická šifrovací schémata jsou charakteristická tím, že používají dvojici nebo obecnou n-tici klíčů. Pokud mluvíme o dvojici klíčů jeden je vždy označován jako veřejný (public), druhý pak za tajný (private), nebo osobní. Tato vlastnost pak dala za vznik názvu asymetrická kryptografie. Tím, že jeden klíč používáme pro zašifrování a druhý pro od šifrování se tato vlastnost stává charakteristickým znakem, jenž asymetrickou kryprografii odlišuje od symetrické. Vznik asymetreické kryptografie, se datuje do poloviny 70 let minulého století, kdy W. Diffie a M. Hellman uveřejnili první koncept výměny klíčů, dnes známou jako D-H klíčová výměna (key exchange). Tento princip byl již znám britské zpravodajské službě GCHQ dříve, která jej důsledně utajila před veřejností. Uveřejnění D-H principu, je považováno za počátek éry kryptografie s veřejným klíčem. Princip je velmi jednoduchý. Tím, že můžeme předat nezajištěným kanálem klíč, který pak adresát může využít k přenesení svého tajného klíče symetrické šifry odesílateli, dává dříve netušené možnosti, jenž pouze s využitím symetrické kryptografie, nebyly myslitelné. Toto schéma má velký význam při dočasné výměně klíčů, protože jen po omezenou dobu (během spojení) existuje tajný klíč. Tato vlastnost je velice cenná, protože ze svého principu zajišťuje insitricky dopřednou bezpečnost (PFS Perfect Forward Secrecy). Vysoce významnou je i skutečnost, že D-H algoritmus je sémanticky bezpečný a není třeba používat doplňovací schémata, na rozdíl například od RSA. Konečně při výměně dat nedochází vůbec k výměně tajného klíče, respektive, bez prolomení kryptosystému ho není možné odvodit. D-H schéma není zdaleka jediné. Další velmi významný algoritmus RSA je dnes jedním z nejrozšířenějších schémat a je

37 považován, přes některé nedostatky, za jedno nejlepších schémat vůbec. Zkratka RSA je složena z iniciálů autoru R. Rivesta, A. Shamira a L. Adelmana. Podobně jako v případě D-H i toto schéma bylo známo CGHQ a to už v roce Stejně jako v případě D-H byl tento algoritmus důsledně utajen. Dnes, přes své relativní stáří je považována mnohými za nejlepší algoritmus pro asymetrickou kryptografii a to i přes některé nevýhody. Algoritmus RSA je velmi citlivý na implementaci, nicméně prodlužování klíče a zavádění nových doplňovacích schémat z ní dělá stále velmi častou volbu, už proto, že jí stačí výrazně menší délka klíče než v případě D-H. Podobně jako u DH algoritmu již vypršela patentová ochrana a tak padlo i poslední vážné omezení jejího širokého užívání. Dalším velmi známým schématem je ECC (Eliptic Curve Cryptography), kryptografie eliptických křivek. ECC je z nich nejmladší. Její základy byly položeny v roce 1985, kdy použití EC pro kryptologii navrhli nezávisle na sobě N. Koblitz a V. S. Miller. EC mají některé výhody oproti předchozím schématům, především jí stačí při stejné síle šifry mnohem kratší klíč. Dokonce je toto schéma některými odborníky preferováno oproti předchozím dvěma, protože se délkou klíče při stejné síle šifry se blíží šifrám symetrickým. Tato vlastnost je zvláště žádána v případě chytrých karet a jednoúčelových autentizačních zařízení. ECC je založen na skutečnosti, že není možné snadno najít řešení rovnice y 2 = x 3 +ax 2 + b na prostoru celých čísel. Výhodou je skutečnost, že lze tento algoritmus zkombinovat například s DH algoritmem, čímž vznikne schéma ECDH, které je mnohem robustnější při zachování výhod obou schémat. Také je možné jej spojit s DSA. Tyto kombinace jsou zahrnuty v tzv. Suit B amerického národního úřadu pro bezpečnost NSA, který dovoluje užívat tyto schémata i pro nejvíce utajované informace. Principy na nichž jsou jednotlivé šifry založeny: D-H (Diffie - Hellman) - klíčová shoda je založena na obtížnosti řešení diskrétního logaritmu. RSA (Rivest Shamir Adleman) je založena na obtížnosti (faktorizaci) součinu velkých prvočísel. Algoritmus je zatím považován za bezpečný, protože neexistuje (není známa metoda) jak faktorizovat velká čísla v čase kratším, než je polynomiální. RSA algoritmus bude bezpečný do té doby, než se takový algoritmus najde, nebo kvantové počítače dosáhnou takové úrovně, že je bude možné nasadit v reálném provozu. ECC Jak již bylo řečeno algoritmus je postaven na obtížnosti řešení rovnice: y 2 = x 3 +ax 2 + b na prostoru celých čísel. < Algoritmus bude bezpečný do té doby než se podaří najít rychlé řešení problému eliptických křivek nad diskrétním algoritmem.

38 Specifickým kryptografickým algoritmem je algoritmus McEliece, který se vymyká běžnému zařazení. Na principiálně podobném typu je založen algoritmus Niederreiter. Je to kryptosystém veřejného klíče, který je principiálně odlišný od předchozích uvedených algoritmů. Algoritmus je založen na algebraické teorii kódování. Algoritmus využívá vlastnosti určité třídy opravných kódů, které se nazývají Goppa kódy. Algoritmus je cenný dvěma vlastnostmi. Tou první je skutečnost, že se nepodařilo nalézt algoritmus, který by vedl k jeho úplnému prolomení a ta druhá spočívá ve faktu, že nalezení určité části kódu je dáno váhou v lineárním binárním kódu, což vede na řešení NP úplného problému (NP-complete). Z hlediska kryptologie a kryptografie to může být zanedlouho velmi cenné, protože takový algoritmus je odolný vůči dešifrování pomocí kvantových počítačů. Popis může být nalezen například v << [AC] Str >>. Další výhodou oproti kvantové kryptografie je i to, že řešení založené na algoritmu McEliece není omezeno dosahem (bitovou vydatností) spoje a především cenou, která by pak byla nejméně 100-krát, ale spíše 1000-krát nižší, než v případě právě kvantové kryptografie a souvisejícího technicko-organizačního zajištění souvisejícího s integritou šifrovacího řetězce. Velkým a zásadním nedostatkem, je ale délka veřejného klíče, která je enormní bitů. To zatím brání nasazení tohoto algoritmu jako náhrady za D-H a RSA. Pokud by se podařilo nalézt způsob, jak bezpečně redukovat délku klíče na přijatelnou délku, pak by tento algoritmus jednoznačně kvalitativně převýšil všechny své konkurenty. 1.9 Postranní kanály Postranní kanály jsou kryptografii velmi častým a diskutovaným tématem. Cílem útoku je získat utajené informace na základě sledování chování. Tím to se liší od metod jako jsou: útok hrubou silou, nebo kryptoanalytické metody snažící se využít slabin v algoritmu. Mezi postranní kanály se řadí i sociální inženýrství, nebo obušková kryptoanalýza. Jaké informace můžeme touto cestou získat? Jsou to především tyto: Jednotlivé bity klíče. To umožňuje snížit délku klíče natolik, že je možné efektivně prolomit kryptosystém pomocí jiných metod, například faktorizace, anebo metodami sít (GNFS, Pollardova ρ - metoda). Tyto informace je možné získat pomocí různých variant timing attack. Vnitřní stavy registrů. Vnitřní stavy registrů dávají informaci v jakém stavu se příslušná část výpočtu nachází, jak dlouho ještě bude prováděn, jaká je hodnota IV (inicializačního vektoru) apod.

39 Výsledky chybného výpočtu. Jedním ze způsobů jak zjistit utajované hodnoty registrů klíčů, nebo i vlastního algoritmu, je donutit systém udělat chybu. Při dosažení chybového stavu může nechtěně být odkryta podstatná část utajované informace. BPA (Branche Prediction Analysis) poměrně nová metoda. Umožňuje získat citlivé údaje z chování procesoru. Metoda se zaměřuje na odhad délky provádění instrukcí a z to odvozuje interní stavy kryptografického zařízení. Nejnovějším poznatkem v této oblasti je zjištění, že ani více jádrové procesory na tom nejsou nejlépe. V souvislosti s timing attackem je možné získat tyto informace i z jiného jádra, než na kterém je provozován kryptografický SW. Velká nebezpečnost spočívá nejenom v možnosti útoku na chabě technicky zabezpečený kryptosystém, ale je možné provést i útok na algoritmus, nebo jeho implementaci. Zvláště v případě realizace v prostředí počítačů je obtížné zabránit úniku informací o interních stavech, nebo jimi manipulovat. To především platí o generátorech náhodných čísel. Postranní kanály se dělí na následující třídy útoků: Timming attack. Timming attack pro zjištění klíčových informací (klíčů nebo jejich částí) používá měření doby, jakou dobu potřebují jednotlivé matematické operace. Z těchto informací, na základě znalosti algoritmu, nebo řešení, je možné rekonstruovat interní informace, které mohou vést k oslabení nebo úplnému prolomení kryptosystému. Měření výkonu zařízení (Power monitoring attack). Z názvu vyplývá, že pomocí měření odebrané energie a jejich následné korelace s událostmi v kryptosystému je možné získat vitální informace. Hlavními dvěmi metodami jsou jednoduchá a diferenciální metoda analýzy výkonu (simple and diferential power analysis). Obvykle nelze získat přímo klíče nebo otevřený text, nicméně je možné získat informace o stavu posuvných registrů, délce výpočtu a podobně. Z těch lze pak vydedukovat informace vedoucí k prolomení kryptosystému. TEMPEST je zkratkou pro Transient Electromagnetic Pulse Emission Standard. Další možný překlad tohoto akronymu může být i Tiny ElectroMagnetic Particles Emitting Secret Things, což poněkud humorně vysvětluje princip. Jde o sledování vyzařování elmg. vln v oboru MHz až GHz. Rádiové vlny jsou nejčastějším způsobem jak provádět odposlech, ale je možné využívat optických i zvukových projevů cílového zařízení. První veřejné informace o této technice přinesl van Eck v roce 1985, ale principy jsou známy od 50-tých let minulého století. Využívá se skutečnosti, že všechny polovodičové přechody vyzařují

40 elektromagnetické vlny v široké oblasti spektra a je možné je zachytit. Vedle čistě pasivní metody je možné použít i aktivní metodu. Aktivní metoda využívá aktivního vyzařování. Oblast zájmu se zaplaví elmg. zářením v oblasti cm nebo mm vln. Pozoruhodné je, že aktivní metodu je možné použít i k odposlechu. Mikrofon je fakticky rezonátor (dipól) a měří se zpětně vyzářený výkon (amplituda zpětně vyzářeného výkonu je funkcí akustického tlaku na rezonátor). Konečně nikoliv úplně poslední možností je elektromagnetická imise. Vhodným způsobem namodulovaný signál může ovlivnit chování cílového systému a tím buď vyřadit jej z činnosti nebo mu i podvrhnout data, které mohou vyústit v kompromitaci kryptosystému jako celku. Akustická kryptoanalýza. Akustická kryptoanalýza, jak vyplývá z názvu, sleduje zvukové projevy spojené s činností zařízení. Takové projevy jsou: zvuk stisku kláves, zvuky vydávající tiskárny a podobně. Jsou zaznamenány také úspěšné pokusy s dálnopisnými stroji, které se povedlo provést v minulosti. To, že tento útok není nesmysl, názorně ukazuje následující stránka:<< Jsou zde uvedeny názorné příklady odposlechů. Prostředky, které k získání informací byly použity, jsou neuvěřitelně jednoduché a snadno dostupné. Otázkou zůstává, jaké prostředky je možné získat z neveřejných zdrojů. Techniky založené na selhání jednotlivých součástí. Technika využití chyb je známa též pod názvem Differential fault analysis. Princip je úžasně jednoduchý. Nějakým způsobem donutíme zařízení udělat chybu, jedno jak. Jakmile se tak, stane můžeme získat různě významné informace o interním stavu kryptosystému, které pak můžeme využít k jeho prolomení. Je to praktická aplikace Tussmanova zákona: Nic není neodvratitelnější než chyba, když přijde její chvíle. Prostředky k dosažení cíle jsou různé. Může jít od ozařování chytrých karet rentgenovým zářením, modulace vstupního, nebo napájecího napětí. Jaká-koli změna provozních podmínek, to je provozování mimo rozsah povolených parametrů, nebo platných hodnot většinou vede k selhání a to je možné využít k kryptografickému útoku. Obranou proti takovýmto technikám je snaha o zvýšení odolnosti proti selhání (tamper-resist, tamper-proof). Jejich účinnost je různá jsou známy případy, kdy k dosažení nežádoucího chování stačilo zařízení podchladit nebo (i lokálně) zahřát a tím obejít prvky obrany. Jako základní informace může posloužit následující příspěvek uveřejněný v: << l>>. Pozoruhodné je to, že po sobě útočník nemusí zanechat sebemenší stopy. Dalšími

41 příklady mohou být tyto: << << nebo, Praktický příklad již uskutečněného útoku je možné nalézt zde: << Dobrým zdrojem o chytrých kartách může být stránka P. Guttmanna, která shrnuje vlastnosti chytrých karet a není to zrovna uklidňující čtení << Pokud by ani tyto slidy nestačily, doporučuji k nahlédnutí články Dr. Vlastimila Klímy ohledně chytrých karet. Karty jako MIFARE, nebo INDALA se poněkud vymykají tématu, nicméně je z popisu vidět, že komplexní zajištění bezpečnosti zde přece jenom chybí a navíc jsou zde praktické ukázky jak provádět útoky na chytré karty << << 2 Nejpoužívanější algoritmy a módy šifer, rozbor jejich slabin a implementačních omezení 2.1 RSA Ačkoliv je algoritmus RSA starší, ale stále patří mezi moderní a široce používané kryptografické schémata. Kvalita je dána především jeho spolehlivostí a tím, že doposud úspěšně odolává pokusům o jeho prolomení. Jeho vznik se datuje do roku 1978, kdy v článku jehož autoři byli Rivest, Shamir a Adelman, navrhli nové schéma pro kryptografii s veřejným klíčem. K jeho oblibě přispívá i skutečnost, že oproti tomuto schématu nebyl doposud proveden přesvědčivý a účinný krytologický útok, který by nebylo možné odvrátit, buď prodloužením modulu šifry, anebo změnou doplňovacího schématu. Kryptografické schéma lze použít také jako elekronický podpis. Podpisové schéma bude zmíněno dále. K oblíbenosti tohoto algoritmu přispívá i to, že vypršela jeho patentová ochrana a tudíž nemůže být zdrojem případných soudních sporů. Oblíbenost algoritmu dosáhla takového stupně, že dnes, pokud se mluví o asymetrickém šifrovacím algoritmu, tak se myslí nejčastěji právě schéma RSA. Je také důležité odlišit vlastní algoritmus a společnost RSA Inc., která je v současnosti divizí společnosti EMC Corporation.

42 2.2 Šifrovací schemata Schéma je založeno na předpokladu, že nalezení velmi velkého prvočísla je relativně snadné, zato však faktorizace (rozklad na prvočísla) velkého čísla je velmi obtížná a běžnými prostředky neuskutečnitelná. Metody rozkladu velkých čísel sice existují, ale není známa metoda, která by umožnila provádět faktorizaci v přijatelném časovém horizontu. Existují sice metody, jak faktorizaci výrazně urychlit, nicméně nedosahují požadované rychlosti, která by algoritmus RSA účinným a věrohodným způsobem napadla, pokud je správně implementován. Vlastní princip zde uvádím pouze pro vysvětlení: Větší pozornost bude kladena implementaci. Jako zdroj poslouží popis uvedený v < Šifrování Veřejný klíč RSA v je tvořen dvojicí celých čísel (n, e), kde n nazýváme modul a e veřejný exponent. n=pq, kde p a q jsou přibližně stejně velká prvočísla. Délka čísla n se v příípadě RSA nazývá a chápe jako délka klíče (2048, 4096 bit a pod.). Privátní klíč RSA je v základním případě definován jako p=(n, d), kde d je privátní exponent, pro který platí, že e d mod λ=1, kde λ=lcm (p 1, q 1) je nejmenší společný násobek čísel p 1 a q 1 (lcm - least common multiple, nejmenší společný násobek). Pokud jsou splněny předchozí kriteria, pak můžeme definovat šifrovací transformaci RSA jako: E V (x)=x e mod n, kde v=(n, e). Kde x je otevřený (plain) text Dešifrování Dešifrování se provádí následujícím způsobem: D P (y)=y d mod N, kde p=(n, d). Platí přitom, že D P (E V (x))= E V (D P (x))=x Elektronický podpis realizovaný pomocí algoritmu RSA Podpisování se provádí obráceným postupem. Při šifrování vlastník tajného klíče rozesílá veřejný klíč a předpokládá, že mu bude zaslána správa jeho veřejným klíčem (jinak by to nedávalo smysl). Podepisování je ve skutečnosti stvrzování faktu, že odesílatel je tvůrcem podepsané správy. Jediným způsobem jak může toto tvrzení doložit je zašifrováním hashe zprávy pomocí svého privátního klíče. Adresát pak ověří hash zprávy pomocí veřejného klíče. V praxi se používají schémata založená na RSASP a RSAVP. Pro snažší pochopení uvádím schéma převzaté

43 z prezentace Ing. Tomáše Rosy << asym2.ppt>> Provádění výpočtu podpisu zprávy: Vstupem je privátní klíč RSA (n, d), zpráva pro podpis M (jako binární řetězec) H = hash (M ) - Dvě zprávy jsou na úrovni hashového kódu nerozlišitelné. m = ENCODE(H ) - zašifrujeme hash získaný ze zprávy M s = RSASP((n, d ), m ); s je výsledek, který je předán současně se zprávou Provádění ověření podpisu zprávy: Vstupem je veřejný klíč RSA (n, e), zpráva pro ověření podpisu M (jako binární řetězec), ověřovaný podpis s m = RSAVP((n, e), s) H = hash(m) - vytvoříme stejným hashovacím algoritmem hash V = VERIFY(H, m), V {platí, neplatí} ověření zda podpis je skutečně odpovídající zprávě. Pokud tomu tak je, zpráva byla skutečně odeslána odesílatelem zprávy a ne někým kdo se za něj vydává. 2.3 Implementace a implementační omezení týkající se RSA Implementace algoritmu je kritickou z hlediska celkového řešení kryptosystému a proto je jí třeba věnovat maximální péči. Je zřejmé, že s ohledem na dopad se implementace sleduje stejně pečlivě jako návrh vlastního algoritmu. Nejvíce slabin se hledá a také nachází právě v rovině implementace. Zde se zabývám základními principy obsaženými v níže uvedených řešeních. Je nutné říci, že vlastní algoritmus je v praktickém životě obtížně použitelný. Toto omezení je nutné kompenzovat tzv. vyplňovacími schématy (padding schemes). Tím se snažíme předejít kryptografickým útokům na vlastní algoritmus. Než rozeberu některé možné útoky, je vhodné si uvědomit některé, na první pohled ne zcela zřejmé souvislosti<< Menezes, Oorschot, Vanstone, Scott: Handbook of Applied Cryptography (free PDF downloads), see Chapter 8 >>: Hodnoty m = 0 nebo m = 1 vždy produkují šifrovaný text rovný 0 nebo 1. Když je použito šifrování s malým exponentem (např. e = 3 - velmi častá volba) a malé hodnoty m, výsledek m e může být podstatně nižší než n. V tomto případě šifrované texty mohou být snadno dešifrovány použitím e - kořenu šifrovaného textu bez nutnosti

44 vyžadování znalosti modulu. Jelikož je RSA deterministický šifrovací algoritmus, nemá žádné proměnné komponenty. Útočník může snadno použít útok nešifrovaným textem za pomocí slovníku a porovnáváním jednotlivých částí šifrovaného textu s ním. Zpráva musí být menší než je délka n (ale ne zase příliš - problém související s prediktivními útoky). Součin prvočísel n = pq musí být dostupnými prostředky neschopný faktorizace Pro běžné potřeby stačí n o délce 512 bitů. Pro reálné nasazení v současnosti se doporučuje 768, nebo spíše 1024bitů s ohledem na algoritmy jako QS (Quadratic Sieve) a GNFS (General Number Field Sieve). O těchto algorimech se zmíníme jinde v této práci. Prvočísla p a q musí mít zhruba stejnou délku Požadavek na stejnou délku je dán tím, že je možné součin prvočísel n faktorizovat pomocí ECFA (elliptic curve factoring algorithm). Omezení velikosti rozdílu p q Jestliže je tento rozdíl malý pak platí, že: p ~ q. Z toho plyne vztah p ~ p= n Pro úspěšnou faktorizaci úspěšně postačí vyzkoušet všechna prvočísla blízká n. Malý exponent e V praxi se používají malé exponenty (3 anebo 2^16+1) zčistě výkonostních důvodů. To sebou přináší určité problémy. Jedním z důsledků CRT (Chinese Remainder Teorem malý čínský problém) je, že ani p - 1 a ani q -1 nesmí být dělitelné 3. Výhodou je nízká výpočetní náročnost (jedno násobení modulu a jedno umocnění). Výhodou většího exponentu je skutečnost, že lze jedním klíčem, aniž bychom umožnili potenciálnímu útočníkovi zjistit obsah zprávy, poslat 2^16 zpráv oproti 3 v případě exponentu e = 3. Abychom demonstrovali možné důsledky budeme uvažovat právě e = 3. Chyba nepřímo souvisí s formátovacími chybami, ale pro zjednodušení nebudeme uvažovat žádné formátování. Útok je převzat z článku << >>. To znamená, že zpráva m je jen převedena na celé číslo 0 m<n a rovnou zašifrována na zašifrovaný text c = m 3 modulo N. Dále předpokládejme, že text bude rozeslán třem adresátům N 1, N 2, N 3. Pokud útočník zachytí všechny tři zprávy, pak může pomocí CRT relativně snadno vypočítat C = m 3 modulo B, kde B=N 1 *N 2 *N 3. Protože platí, následující nerovnost 0 m 3 <B, na prostotu celých čísel, útočník snadno vypočítá zprávu odmocněním m 3. Tento útok lze zobecnit na jakoukoli mocninu e, ale jen pro e = 3 má praktický smysl.

45 Coppersmithův útok Obecně jde o útok na formátovací schémata. Útok je obecnější variantou předchozího útoku a dává celkově lepší a použitelnější výsledky pro exponenty e >3. Algoritmus dokáže najít všechny malé hodnoty p(x) modulo N. Předpokládejme, že útočníkovi se podaří zachytit c = m 3 mod N. Pokud hledaná zpráva splňuje m < N 1/3,může ji útočník uvedeným algoritmem snadno najít. Pro modul 1024 bitů to znamená, že lze úspěšně luštit každou neformátovanou zpravu kratší než 341 bitů, což je mnohem více než, přehledem pokrývá přenosy běžných klíčů symetrických šifer << Tento útok je také úspěšný při chybném nebo nesprávném formátování. Zajímavým důsledkem je možnost užití tohoto algoritmu při opakovaném přenosu zpráv. V situaci, kdy opakovaně posíláme nějakému adresátovi nějakou zprávu použitím stejného veřejného klíče a nezáleží na tom, že používáme pokaždé nový formátovací řetězec PS. PS je vlastní přenášená informace oproštěná od formátovacích řetězců. Pokud je uvedený řetězec slabý a platí, že: PS < (N 1/e ) 1/e ), pak je snadno zpráva rozluštitelná. Prakticky vzato, pro modul N délky 1024 bitů nesmí velikost doplňku klesnout pod 15 bajtů. Lepší je ovšem držet se zde alespoň na 25 bajtech. Obecně se pak doporučuje hranice > 10+L/9. Bohužel existují rozšíření knihovní implementace RSA, ktere takových doporučeni nedbají. Ostatně ani dřívější verze standardu PKCS #1 (v. 1.5) neni zcela v pořádku. L je zde délka formátované zprávy. Malý exponent d Malý exponent d je žádoucí ze stejného důvodu jako v případě exponentu e.pokud platí, že: gcd (p-1, q-1), což je tento případ a zároveň d je menší než zhruba jedna čtvrtina modulu n, pak je možné snadno dopočítat d z veřejné části klíče (n,e). Tím algoritmem je Pollardův ρ algoritmus, nebo jeho paralelizované varianty. V případě ρ algoritmu, pokud žádáme dostatečnou odolnost proti kryptografickým útokům, menší než 50%. Multiplikativnost Vlastnost multiplikativnosti je třeba vzít v potaz, pokud rozesíláme více zpráv se stejným veřejným exponentem. Umožňuje provádět útoky metodou adaptivních vybraných částí zprávy (Adaptive-chosen-plaintext attack). Provádění tohoto útoku spočívá v užití následujících vlastností: (m 1 m 2 ) e m e 1 m e 2 c 1 c 2 (mod n) - tato vlastnost je někdy nazývána homomorfností RSA. Předpokládejme snahu útočníka rozluštit zašifrovanou zprávu c = m e mod n určenou pro A. Může také předpokládat, že A bude dešifrovat jinou zprávu než c. Jak by takový útok mohl probíhat. Představme si zprávu (v souladu s předpoklady platnými pro správnou implementaci: m < p-1), jako zcela formální dopis začínající zdvořilostní frází: Vážený pane řediteli, dovolte mi..., pak tato fráze je m 1

46 a zbytek zprávy je m 2. Je zřejmé, že tím dáváme potencielnímu útočníkovi poměrně zásadní informaci, která může vést k rychlému rozšifrování zprávy. Stejná chyba z kategorie implementačních chyb je, když se nedoplní symetrický klíč přenášený pomocí RSA algorimu nějakou náhodnou solí, nebo vhodným doplňovacím schématem (padding scheme). Doplňovací schémata jsou probírána v implentační části. Prediktivní útok Prediktivní útok je typem útoku, který využívá chybu v implementaci. Předpokládá se, že prostor zprávy je buď, malý nebo předvídatelný. Útočník použije slovníkový útok, který může být veden nejen proti celé zprávě, ale i proti části zprávy. V tomto případě postačí vyzkoušet všechny možné zprávy, které připadají v úvahu a pak porovnat výsledek se zašifrovaným textem. Obranou proti tomuto typu útoku je salting. Existují další doporučení jako je používání silných prvočísel. Definice silných provočísel je možné najít například v << << Důvodem používání silných prvočísel je snaha předejít faktorizaci pomocí Pollardova p-1 faktorizačního algoritmu. Tímto opatřením lze předejít rovněž i cyklickým útokům (cycling attacks). Zprávy, které nelze zašifrovat Tato vlastnost je podobná slabým klíčům v DES. V algoritmu RSA existuje možnost, že za určitých podmínek nebude možné zprávu zašifrovat. Tato situace nastane tehdy, pokud m e m mod n. Dokonce platí, že existuje minimálně 9 zpráv které není možné zašifrovat << Menezes, Oorschot, Vanstone, Scott: Handbook of Applied Cryptography (free PDF downloads), see Chapter 8 >>:. V tomto případě je malý exponent výhodou (3, nebo 65537), protože počet zpráv bude relativně nízký a nepředstavuje větší problém při realizaci. Existují další doporučení jako je používání silných prvočísel. Definice silných provočísel je možné najít například v << << Důvodem používání silných prvočísel je snaha předejít faktorizaci pomocí Pollardova p-1 faktorizačního algoritmu. Tímto opatřením lze předejít rovněž i cyklickým útokům (cycling attacks). Adaptivní útok s volbou textu (Bleichenbacherův útok). Adaptivní útok na algoritmus je možné vzhledem tomu, že RSA algoritmus na rozdíl od EC křivek není sémanticky bezpečný. Útoku je na pochopení poněkud složitější. Předpokládejme, že útočník chce dešifrovat zašifrovaný text (c = m e mod n) určeného pro adresáta A. Záměrně pak podvrhne řetězec adresátovi A. Tento řetězec je celé číslo, pro které platí: x n. Útočník pak

47 vypočítá c = cx e mod n. A, pak nevědom si nebezpečí, spočítá m = (c) d. Protože platí následující: m (c) d c d (x e ) d m x mod n díky čemuž, může útočník spočítat mx -1 mod n lze obejít tento typ útoku tak, že vloží do textu určité omezení týkající se otevřeného textu. Pokud neobsahuje dešifrovaná zpráva strukturu odpovídající předem definovaným omezením, pak c musí být označeno za podloudné. Pokud je ovšem m zvoleno s ohledem na předchozí text, tento typ útoku není možné úspěšně provést (neplatí, že m n ). Taková situace může nastat, v podstatě kdykoli, pokud nepoužijeme, buď řešení uvedené výše, anebo nějaké doplňovací schéma (RSA-OAEP například). V praxi mohou nastat dva problémy, hlavně při posílání krátkých zpráv v ASCI notaci, kde m je řetězec jednoho nebo více ASCII znaků. Zpráva obsahující ASCII znak NUL (kterého numerická hodnota je 0) může být dekódována jako m = 0, což produkuje šifrovaný text jako nuly, bez ohledu na to, jaké e a N je použito. Rovněž ASCII znak SOH (numerická hodnota je 1) vždy vyprodukuje šifrovaný text jedniček. V systémech, které používají malé hodnoty e jako třeba 3, mohou být všechny ASCII znakové zprávy málo bezpečné, jelikož m může nabývat nejvýše hodnoty 255 a je méně než snesitelný modul. Takové texty mohou být obnoveny jednoduše použitím umocňování a odmocňování. Tím splníme jednu z klíčových podmínek, že se při operaci modulo nad vstupními daty m nedostaneme E V (x)=x e což je, zvláště v případě malých exponentů snadná úloha. K zabránění těchto problémů v sobě praktické implementace RSA obvykle skrývají některý typ náhodného vyplnění hodnoty m před jejím zašifrováním. Vyplnění způsobí, že m nemůže klesnout na nebezpečnou hodnotu a takto modifikovaná zpráva bude zašifrována do nějaké vysoké hodnoty šifrovaného textu. Navíc to pomůže snížit možnost útoku pomocí porovnávání se slovníkem. Standardy jako PKCS byly vytvořeny k bezpečnému vyplnění zpráv před jejich zašifrováním pomocí RSA. Tato schémata zaplní nešifrovaný text m určitým počtem dodatečných znaků, pak musí být velikost nevyplněné zprávy M o něco menší. RSA vyplňovací schémata musí být navržena tak, aby byla schopna zabránit i velmi sofistikovaným útokům usnadněným rovněž předvídatelnou strukturou zprávy. Moderní konstrukce používají bezpečnostní techniky (OAEP) k ochraně zpráv proti těmto typům útoků. PKCS standard rovněž začleňuje zpracovávací schémata k poskytnutí bezpečnosti pro RSA podpisy, např. jako RSA-PSS. Tyto techniky dostatečně podrobně popisují standardy (např. PKCS #1).

48 2.4 Prvočísla Prvočísla představují pro kryptosystémy s veřejným klíčem životně důležitou komponentu. Bez prvočísel by nebylo možné realizovat algoritmy RSA a DH. Také se ukazuje, že implementace není vždy bez chyby. Úspěšné útoky provedené vůči těmto kryptosystémům jsou nezřídka založeny právě na chybách v implementaci, nebo v nesprávném používání. V práci se soustředím na dva důležité okruhy. Tím prvním bude výběr prvočísla s následným ověřením, zda jde skutečně o prvočíslo. Tím druhým je dělení modulo n a rozklad velkého čísla na prvočísla. I když druhý okruh úplně nesouvisí s prvočísly, rychlost rozkladu (faktorizace) je kritickým faktorem pro bezpečnost kryptosystému, který využívá právě součiny velkých prvočísel. Lze konstatovat, že zejména faktorizace představuje úhelný kámen snažení kryptoanalitiků. Bez algoritmu, schopného provést rychle faktorizaci (rozklad velkého čísla na prvočísla), není možné úspěšně ohrozit algoritmus RSA. V této souvislosti je třeba říci, že není znám algoritmus, který by pro velká čísla (> 100 číslic) byl schopen provést úlohu faktorizace dostatečně rychle. Otázkou může být co představuje pod pojmem dostatečně rychle. V jiné části práce se tento problém vysvětluje. Zjednodušeně řečeno, rychle znamená tak rychle, aby útočník byl schopen ze získaných dat extrahovat použitelnou informaci. Obvykle se spíše nacházím v pozici obránce a tudíž mě bude zajímat, po jakou dobu, jsou moje data v bezpečí, respektive jak rychle mohou být dešifrována Prvočísla, jejich výběr a ověření jejich prvočíselnosti Prvočíslo je číslo, pro které platí, že je celočíselně dělitelné sebou samým a číslem 1. Zároveň musí být splněna podmínka, že číslo musí být > 1, ohledně toho, zda je číslo 1 prvočíslem se vedou spory. Z této definice ovšem nevyplývá jiná důležitá vlastnost a to, že jich je nekonečně mnoho. Tuto vlastnost prvočísel prokázal již před Euklides (300 před n. l.). V souvislosti s prvočísly je třeba se zmínit o dalších vlastnostech. Všechny prvočísla větší než 2 jsou lichá. Číslo 2 je jediným sudým prvočíslem. Silná Goldbachova domněnka Všechny celá nenulová lichá čísla > 2 jsou součinem dvou prvočísel (pokud samy nejsou prvočísly). Existují ještě další interpretace této domněnky, neméně zajímavé. Každé celé číslo > 5 je součinem dvou prvočísel (opět pokud nejsou prvočísla). A konečně, každé celé číslo větší než 2, je součtem dvou prvočísel. Druhá domněnka má menší význam pro kryptografii, než ta první. Nicméně, není jisté, zda tuto domněnku nebude jednou možné použít k faktorizaci.

49 Domněnka o dvojici prvočísel Existuje nekonečně mnoho prvočísel, jejíchž vzdálenost je rovna 2. Velice zajímavou a pro kryptologii významnou domněnkou je domněnka Legendrova. Existuje nekonečně mnoho prvočísel splňující následující nerovnost: n 2 p (n+1) 2, kde n je libovolné celé nenulové číslo. Tento vztah je možné použít jak pro nalezení vhodného prvočísla tak i pro odhad jak velké prvočíslo bylo použito. Použití této domněnky pro velké prvočísla je problematické, nicméně dává odhad, jak velké prvočíslo bylo použito. To platí především pro kryptologii. Nalezení prvočísla pro metodu RSA je mnohem snažší pomocí modulové algebry. Významnou pro faktorizaci čísel je Euklidova lemma. Jestliže p je prvočíslo a c je součin dvou celých čísel ab, pak p dělí buď a, nebo b. Tato lemma se požívá pro dokazování jedinečnosti výsledku faktorizace. Okruh Z/nZ je tělesem tehdy a jen tehdy, pokud platí, že n je prvočíslo. Fermatův malý teorém. Fermatův malý teorém říká, že pokud p je prvočíslo nesoudělné s a pak platí, že a p 1 1 (mod p). Důkaz je možné najít v: << Modulo 2 Samo o sobě modulo 2 zdánlivě nemá význam, nicméně je možné pomocí modulo 2 provádět operaci XOR. Další vlastnosti lze nalézt v <<[PC] str >> Velká prvočísla Algoritmy jako RSA a podobně používají velká prvočísla a proto některé vlastnosti v práci uvádím. Standardní datové typy implementované ve většině programovacích jazycích neimplementují velké celočíselné typy. Je tedy nutno sáhnout po specializovaných knihovnách. Jako příklad mohou posloužit knihovny MUNTL, anebo GSL <<MUNTL: ;GSL >>. Tyto knihovny jsou vytvořeny s ohledem na vícenásobnou přesnost a nejen to platí speciálně pro C, C++ a PERL. Výčet vlastností přesahuje významně rámec této práce 4. Pokud bych pracovali s velkými prvočísly, pak bych pravděpodobně sáhl po těchto knihovnách 5. Další možností je sáhnout po specializovaných knihovnách RSA BSAFE apod. Tyto knihovny ovšem nejsou volně dostupné a jsou licencovány. 4 Část knihovny je obsažena i v balíku openssl. Knihovna obsahuje funkce pro práci s velkými čísly, včetně jejich přetypování. Vyjma toho jsou schopny provádět mimo jiné i tzv. Pollardovu ρ-metodu. Popis knihovny je možné nalézt například na: 5 To pouze za předpokladu, že nebude vadit, že tyto knihovny nejsou navrženy s ohledem na odolnost vůči timming attacku.

50 Ověřování prvočíselnosti Ověřování prvočíselnosti je fundamentálním požadavkem pro správnou funkci kryptografických funkcí založených na prvočíslech. S úspěchem můžeme použít vlastností modulární aritmetiky, například proto, abychom vůbec byli schopni s velkými čísly pracovat. V reálném nasazení musíme počítat i s zaokrouhlovacími chybami. To platí především pro čísla v plovoucí desetinné čárce, což je další dobrý důvod, proč znovu použít modulární aritmetiku. Pro úplnost uvádí, test Rabin-Miller (dále jen R-M). Rabin Miller je rozšířením původního Rabinova algoritmu, který je založen na Fermatově větě. Popis je možné nalézt např. v: <<[Kod] str.181>>. Samozřejmě je možné uvést další např. Lucas-Lehmerův (dále jen L-L) test, anebo Prothův test (dále jen P-test). Tyto testy ovšem vyžadují faktorizaci na úrovni n + 1 a to je činí prakticky nepoužitelnými. Popis R M algoritmu je převzat z <<[PC] str.201>>. Algoritmus se snaží nalézt odpověď na otázku zda celé liché číslo je prvočíslo. Na rozdíl od testů L-L a P-testu, nedostáváme absolutně přesnou odpověď na otázku, zda námi zvolené číslo je prvočíslo. Pracujeme s vědomou chybou. To však neznamená, že by algoritmus byl chybný. V reálném nasazení totiž bezpečná chyba bude výrazně menší > 2 -n, což je zajištěno volbou počtu kroků výpočtu. Příklad výpočtu počítá s chybou 2-128, považovanou za bezpečnou úroveň. Algoritmus je převzat z <<[PC] str.201>>. funkce Rabin-Miller vstup n # liché číslo > 3 výstup b # boolean identifikace, zda číslo n je prvočíslem, či nikoli použij n 3 and n mod 2 1 # Nejdříve se spočítá (s,t) takové pro které platí, že: s je liché celé číslo a 2 t s = n 1 (s, t) (n-1, 0) while s mod 2 = 0 do (s, t) (s/2, t + 1) done # Dále se sleduje zda pravděpodobnost nesprávného výsledku je dostatečně malé na

51 # to, aby bylo možné s přijatelnou mírou přesnosti říci, že a je prvočíslo. k 128 while k < 128 do # zvolíme náhodné čísla tak, aby platilo: 2 a n 1 a zároveň 2 < a < n 1 # výpočetně náročná operace v a s mod n # pokud platí, že v = 1, pak n prošlo testem pro bázi a if v 1 then # sekvence čísel v, v2,...,v2t musí být rovna jedné a zároveň poslední hodnota nesmí # být rovna 1 (n-1) pokud n je prvočíslo. i 0 while v (n 1) do if i = t 1 then return false else (v, i) (v 2 mod n, i +1) fi done fi # v tomto bodě n prošlo testem prvočíselnosti na bázi a. Nyní lze snížit # pravděpodobnost chybného výsledku o faktor 2 2, tím že přidáme 2 ke k. k k + 2 done return true Algoritmus podává správné výsledky pro n 3. Daný test je pouze odpovědí zda zvolené číslo, je prvočíslem, či nikoliv. Rabin-Millerův test variací na malý Fermatův teorém. Pokud je test použit

52 pro náhodně vygenerované číslo, je jen malá pravděpodobnost, že zvolené číslo nebude prvočíslem. Jiná situace bude v okamžiku, kdy použijeme čísla získané z jiného zdroje. Takové číslo pak může být zvoleno s ohledem na R-M algoritmus tak, aby chyba u složeného čísla byla nižší, než mez, kterou považujeme za bezpečnou. Tím se vyřeší jen jedna část problému. Dále se budeme zbývat druhou částí problému, jak provádět vlastní výpočty. Důvod je dvojí, ten první je práce s velmi velkými čísly (2000 bitů a výše) a druhý je bezpečnostní. Je tu ještě jeden důvod. Rychlost provádění výpočtů. Pro zjednodušení, budeme uvažovat možnost, že útočník má příležitost provádět timming attack. O jeho účinnosti nejlépe vypovídá skutečnost, že se jím mnoho kryptologů zabývá a považují ho za hrozbu, jako celou skupinu útoků postranním kanálem. Problematikou timing attacku se zabývám jinde, nicméně jako dobrý příklad může posloužit tento příklad: << >>. Ačkoliv se vztahuje k AES ukazuje dvě silné stránky tohoto útoku. Tou je možnost vzdáleného provádění a jeho účinnost. Proto při používání se neměla tato možnost podceňovat a to proto, protože kryptografie založená na veřejných klíčích, je k tomuto útoku náchylnější. Uvedený příklad výpočtu je pouze ilustrativní a neznamená, že je to jediný způsob jak provádět výpočty. Při výpočtu je relevantní informace: a s mod n. Popis je převzat z <<[PC] str >>. Uplatňují se následující pravidla: Pokud je s > 0 a je sudé, nejdříve spočítáme: y = a s/2 mod n. Výsledek je pak dán vztahem: a s mod n = y 2 mod n. Pokud je s > 0 a je liché, y = a (s-1)/2 mod n pomocí stejných pravidel. Výsledek je pak dán následujícím vztahem: a s mod n = ay 2 mod n. Pokud s = 0, pak je výsledek roven 1 Algoritmus je principiálně rekurzivní. V souvislosti s timming attackem je důležité, kolik operací bude třeba pro výpočet a s mod n. Počet operací vychází zhruba na dvojnásobek délky klíče, tzn: při délce 1024 bitů musíme provést 2000 operací násobení. Tato úvaha dává poměrně přesvědčivý argument, proč jednoduché metody výpočtu, nejsou vhodné pro tyto účely. Metody obrany jsou zmíněny u jednotlivých algoritmů Praktické doporučení týkající se algorimu RSA Z dříve uvedených poznatků je zřejmé, že nestačí jen dodržet uvedené omezení, ale je třeba zohlednit i na praktickou část, jako je rychlost zpracování apod.

53 Velikost modulu (n). Dostatečně bezpečná velikost modulu n se odvíjí od síly dešifrovacích algoritmů. Proti požadavku na dlouhý klíč se staví efektivita a náklady spojené s používáním klíče. Nelze paušálně říci, že velmi dlouhý klíč řeší všechny problémy. Zhruba do poloviny 90 tých let platilo za bezpečnou velikost modulu 512 bitů. V současných podmínkách platí, s ohledem na algoritmy jako jsou GNFS a Pollardova ρ-metoda, že bezpečná délka je 2048 bitů. Otázkou zůstává jak dlouho. Dle doporučení NIST, který se ohledem na stav pokroku kryptologie snaží standardizovat úroveň bezpečnosti jednotlivých algoritmů a to včetně predikce do budoucna, platí že, výše uvedená hodnota 2048 bitů bude dostatečná nejméně do roku Tabulku shrnující doporučení je možné nalézt na: <<NIST Draft Special Publication , případně novější vydání. Dalšími zdroji mohou být: <<A Cost-Based Security Analysis of Symmetric and Asymmetric Key Lengths : >>; <<RFC 3766:Determining Strengths For Public Keys Used For Exchanging Symmetric Keys, April 2004, ftp://ftp.rfc-editor.org/in-notes/rfc3766.txt >> Odolnost proti kryptografickým útoků Samotný algoritmus RSA je bezpečný. To však neplatí pro všechny implementace. I zde platí pravidlo nejslabšího článku. Řešení je bezpečné tak, jako jeho nejslabší část. Proto je třeba ověřit zda zvolené řešení je opravdu bezpečné a na kolik je bezpečné z dlouhodobého hlediska. Stále je třeba mít na paměti, že nejvíce úspěšných kryptografických útoků je vedeno proti implementaci. Odolnost proti postranním kanálům Postranní kanály se v posledních několika letech těší velkému zájmu a je zřejmý vzrůstající zájem o tento typ útoků. Nezbytností se stává implementace opatření mající za úkol zabránit, anebo minimalizovat nebezpečí postranních kanálů. Postranní kanály nejsou jen vlastností algoritmu nebo implementace. Do této oblasti patří i prostředky mající za úkol zabránit tamperingu na úrovni nejen mechanické, elektronické, ale i časové, nebo optické. Cena řešení Cenou zde rozumíme celkové náklady a to nejen pořizovací a provozní. Patří sem rovněž náklady na řešení emergentních stavů, jako jsou: selhání modelu bezpečnosti, na základě kterého byl algoritmus zvolen, kompromitace klíčů (jejich krádež, nebo zneužití). Tyto zdroje patří do oblasti projektu bezpečnosti, nicméně jsou spjaty s konkrétním řešením. Další opatření souvisejí s naplňováním zákonných norem, ať už České republiky, nebo komunitního práva v rámci EU. Do hry vstupují i požadavky mimoúnijních norem jako jsou: Směrnice pro kryptografickou politiku z 27. března 1997 zemí OECD, "Implementation of the

54 Wassenaar Arrangement List of Dual-Use Items: Revisions to the Commerce Control List and Reporting Under the Wassenaar Arrangement; Rule." << Nařízením Rady EU č. 2252/2004 o normách pro bezpečnostní a biometrické prvky v cestovních dokladech vydávaných členskými státy. Zvážení vhodnosti celkového řešení i s ohledem na budoucí potřeby. Vhodnost celkového řešení se odvíjí od budoucích potřeb. Ne vždy, je však zvolené řešení odpovídající budoucím potřebám v horizontu 10 nebo 20 let. Tyto požadavky jsou výsledkem analytické části a jsou často deklarovány právními úpravami. Normy práva Normotvorný vliv na implementaci šifrovacích algoritmů je značný. Nejen, že je třeba splnit minimální úroveň bezpečnosti, ale nezřídka, je třeba zvolit certifikované řešení. Tím úloha přestává být obecně kryptografickou a stává se úlohou logistickou, integrační a podpůrnou. Vlastní návrh a řešení Vytvořit si vlastní kryptosystém byť i na již vytvořených řešeních, nemusí být vždy zárukou kvalitního a kryptograficky odolného řešení. Návrh a řešení vyžaduje značnou úroveň znalostí a nezbytnou dávku praxe. Proto zde platí, že je lepší vyzkoušené řešení, jenž ne zcela vyhovuje požadavkům zadavatele, než řešení, které požadavkům vyhovuje, ale je z hlediska kryptoanalýzy pochybné, nebo dokonce bezcenné (snadno prolomitelné) PKCS #1 PKCS #1 verze 2.1 je popsán v RFC Z tohoto zdroje jsem čerpal << >>. Verze 2.1 je poslední veřejnou verzí a je především opravou předchozích standardů 1.5 a 2.0. V průběhu platnosti standardu se podařilo nalézt slabiny v implementaci a proto bylo třeba tyto slabiny odstranit, aby byla zajištěna dostatečná úroveň bezpečnosti a zároveň dobrý výkon a nepříliš složitá implementace, která může být zdrojem dalších implementačních slabin. Připomeňme si základní fakta. RSA algoritmus je deterministický algoritmus využívající skutečnosti, že je relativně snadné najít velké prvočíslo, avšak faktorizace velkého čísla je obtížný problém, který není možné, pro zvláště velká čísla, najít v relativně krátkém časovém úseku pomocí faktorizace (rozklad na prvočísla). Algoritmus RSA není sémanticky bezpečný a tudíž se musí doplnit o doplňovací schéma (padding), aby se snížilo nebezpečí prolomení algoritmu pomocí útoků zaměřených na charakteristické, nebo opakující se části řetězce tajné zprávy m. Doplňovací schéma musí být rovněž dostatečnou zárukou, že nedojde k prolomení slabinou v doplňovacím schématu, což se také v minulosti stalo viz. Mangerův útok

55 << Popis jednotlivých primitiv lze používat, jen tehdy, pokud to ohrozí čitelnost textu. Vlastní standard pokrývá následující aspekty: Kryptografická primitiva (Cryptographic primitives) Rozsah primitiv je poměrně malý. Primitiva jsou dvě pro šifrování a dvě pro podpisování. RSAEP ((n, e), m) Vstup: (n, e) veřejný klíč RSA (modul a exponent) m - zpráva, nezašifrovaný text ve formě celého čísla mezi 0 a n 1 Výstupem je c zašifrovaný text, který je reprezentován celým číslem mezi 0 a n 1 nebo chybová hláška: message representative out of range Nutný předpoklad je, že RSA veřejný klíč (n, e) je platný. Za předpokladu, že výše uvedené podmínky jsou splněny, platí vztah: c = m e mod n. RSADP (K, c) Vstup: (K, c) tajný klíč RSA (modul a exponent) pětice (p, q, dp, dq, qinv) a trojice indexů (ri, di, ti), i = 3,, u, které mohou být rovny 0. m - zpráva, otevřený text ve formě celého čísla mezi 0 a n 1. Kde jednotlivé parametry jsou: p - první prvočíslo q - druhé prvočíslo dp - exponent p, kladné velké celé číslo pro, které platí: e dp 1 (mod (p 1)) dq - exponent q, kladné velké celé číslo pro, které platí: e dq 1 (mod (Q 1)) qinv - koeficient CRT, které je kladné celé číslo, menší než p a takové, že platí: q qinv 1 (mod p) Výsledkem je zpráva v otevřeném tvaru m Kryptografické schémata Doposud jsme uvažovali pouze primitiva. Schémata a primitiva spolu zajišťují, že bude dosaženo příslušné úrovně zabezpečení, reprodukovatelnosti a přenositelnosti. V současnosti je jediné doporučené schéma RSA-OAEP pro šifrování zpráv. Existují i jiné RSA-KEM apod. Ty však nejsou

56 doporučeny pro vyšší úroveň zabezpečení, protože zde byly nalezeny implementační chyby, nebo byly použity nezcela odolné, nebo nevhodné doplňovací schémata. Důvody proč jsou používána schémata, byly objasněny v části týkající se teoretické části týkající se algoritmu RSA (deterministický algoritmus). Standard PKCS #1 definuje schémata RSAES-OAEP a RSAES- PKCS1-1_5. Schémata jako je RSAES-PKCS1-1_5 v poslední verzi PKCS #1, jen z důvodu zpětné kompatibility a proto není doporučeno je užívat pro nové implementace. Rozsahem a architekturou je podobný například IEEE Std Je třeba poznamenat, že existují i další standardy, ale nelze jim dát prostor, protože to nedovoluje rozsah práce RSAES-OAEP RSAES-OAEP je reakcí na nedostatky nalezené v prvních implementacích schémat. Schéma je kombinací primitiv RSAEP a RSADP s EME-OAEP kódovací metodou EME-OAEP založené na návrhu doplňovacího schématu navrženém Bellarem a Rogawayem OAEP (Optimal Asymmetric Encryption Padding) <<Optimal Asymmetric Encryption -- How to encrypt with RSA. Extended abstract in Advances in Cryptology - Eurocrypt '94 Proceedings, Lecture Notes in Computer Science Vol. 950, A. De Santis ed. - Navržené schéma je kompatibilní s dalšími schématy například IEEE Std Pro lepší pochopení souvislostí použijeme obrázek převzatý z <<PKCS-1v2-1.doc>>, který popisuje EME-OAEP.

57 Ilustrace 5: Schéma doplňovacího schématu EME-OAEP Je třeba zdůraznit, že EME-OAEP není vlastní předpis, jak šifrovat data, nýbrž předpis, jak správně formátovat data pro šifrování pomocí algoritmu RSA. Zde popisuji jednotlivé parametry a jejich význam. Výše uvedený diagram použiji ještě jednou v práci a to při rozboru cílených útoků na doplňovací schémata (Mangerův útok) v mírně upravené verzi. Formátování představuje nejdůležitější prvek asymetrických schémat a zároveň i nejzranitelnější. Většina úspěšných útoků byla vedena právě vůči doplňovacím schématům. M otevřený text lhash - hash doplňkového parametru L. Pokud tento parametr je 0, doplňuje se předem vygenerovaným řetězcem. Řetězce je možné najít v RFC-3447, konkrétně v kapitole 7.1, týkající se EME-OAEP. L - doplňkový parametr L l - délka šifrované zprávy M. B - délka binárního zápisu N v bytech

58 PS - předsavuje náhodný řetězec délky B L -3. Tento řetězec je vygenerován zvláště pro každý výpočet. DB - představuje spojení řetězců phash, PS, 0x01, M MGF - Mask Generation Function. MGF je založena na hashovací funkci a je součástí kryptografických primitiv (MGF1). Ut éto funkce se zastavíme, protože je významná z hlediska ověřitelné bezpečnosti schémat RSAES-OAEP a RSASSA-PSS. Funkce MGF je hashovací funkcí jenž má za úkol zajistit dostatečnou náhodnost výstupního řetězce. Funkce MGF musí zajistit, že nebude možné dostupnými prostředky rekonstruovat z jedné části výstupu jinou část Šifrování a dešifrování Dosud jsem rozebíral jen součástí schématu a nyní se práce zabývá prováděním šifrování. Pro šifrování se používají primitiva RSAES-OAEP-ENCRYPT ((n, e), M, L) a RSAES-OAEP- DECRYPT (K, C, L). Význam jednotlivých parametrů je patrný z předchozího rozboru. Zmíníme se pouze o parametrech K a C. K Privátní klíč, který je (n,d) C Zašifrovaný text, určený k rozšifrování. 2.5 Diffie-Hellman výměna klíčů (Diffie-Hellman Key exchange algorythm) Diffie-Hellman algoritmus výměny klíčů (dále jen D-H) je vůbec prvním prakticky použitelným algoritmem pro šifrování s veřejným klíčem (pravděpodobně vůbec prvním byl algoritmus Merkelových skládaček - Merkel s puzzle). D-H algoritmus patří také do skupiny algoritmů pro distribuci klíčů. Lze ho snadno upravit do podoby, kdy může být nasazen pro více než dvě strany. Od svého vzniku v roce 1976 doznal mnoha změn a variací. Takovými variantami jsou např.: Station-to-station protokol, COMSET, EKE (Encrypted Key Exchange), Hughes, Ephemeral D-H. Ephemeral D-H je hlavní způsob použití tohoto protokolu. Tento protokol byl vytvořen tak, aby odstranil zásadní nedostatek, kterým je nutnost sdílet veřejné parametry (p,g). Další z nejvíce používaných a zároveň nejlepších variant je použitím eliptických křivek (ECC, ECDH). Oproti původnímu návrhu je tento algoritmus mnohem silnější a prakticky se blíží síle symetrických algoritmů. ECDH algoritmus je stejně silný zhruba jako poloviční až třetinové délka symetrického klíče. D-H algoritmus je velmi oblíben pro jeho poměrně dobré vlastnosti a je součástí mnoha

59 technických řešení, které pro své praktické fungování vyžadují výměnu klíčů mezi dvěma, nebo více subjekty. Princip toho algoritmu je založen na složitosti výpočtu diskrétního algoritmu. Vlastní algoritmus je poměrně jednoduchý: Strana A zvolí náhodné velké celé číslo x a provede následující výpočet: X = g x mod n Strana B zvolí náhodné velké celé číslo y a provede následující výpočet: Y = g y mod n Strany A a B si vymění výsledky X a Y. Hodnoty X a Y pak použije následujícím způsobem. Strana A: k = Y x mod n Strana B: k = X y mod n Pak platí následující, že k a k jsou rovny g xy mod n. Přitom platí, že n a g jsou velká prvočísla, kde g je generátor grupy Zp*, x a y jsou celá čísla z intervalu <1, p-2>. Sdílené tajemství je pak k. Z předchozího vztahu je zřejmé, že k a k jsou totožné a zároveň sdílené tajemství (klíč). Je třeba zdůraznit, že pro naprostou bezpečnost je třeba zajistit autenticitu klíčů (man in-the-middle). Zajímavým aspektem algoritmu je skutečnost, že vůbec nedojde k výměně klíče přes nezajištěný kanál. Obě strany tak nezávisle mohou spočítat tajný klíč. 3 Kryptograficky bezpečné generátory náhodných čísel a jejich vlastnosti 3.1 Generátory náhodných čísel a jejich vlastnosti Generátory náhodných čísel (kvalitní generátory) jsou jedním z klíčových komponent každého kvalitního kryptosystému. Bez těchto generátorů by nebylo možné vygenerovat soli, inicializační vektory apod., tak aby byly dostatečně náhodné. Podmínka náhodnosti je jedním z klíčových požadavků pro tyto vstupní parametry. Generátory náhodných čísel, jak z názvu vyplývá, slouží k vytváření náhodných čísel, nebo sekvencí. Dělí se na dvě hlavní skupiny, hardwarově a softwarově realizované. Softwarově realizované jsou založeny na deterministickém algoritmu, který poskytuje dostatečně náhodné výstupní hodnoty. To ovšem neznamená, že nemohou být

60 použity jako zdroj pro inicializační vektor použít SW řešení. Jinou definicí, vycházející ze statistických vlastností, může být tato: Generátor náhodných bitů je zařízení, nebo algoritmus, jehož výstupem je řada statisticky nezávislých a nevychýlených bitů Náhodná čísla a jejich vlastnosti V předchozích částech se spoléhalo na náhodná čísla, jako na zdroj solí inicializačních vektorů, nebo noncí. Jaké je měřítko náhodnosti? Měřítkem náhodnosti je entropie. Jednou z definic entropie je míra neurčitosti informace. Čím je tato míra vyšší, tím vyšší je i entropie. Matematický popis entropie může být dán následujícím vztahem <<[PC] str.156>>: H x = Σx P X=x log 2 X=x H x P X=x - entropie - pravděpodobnost, že X dosahuje hodnoty x V reálném světě není nic ideálního a ani náhodná čísla jimi nejsou. Proto se zdroje entropie stávají častým cílem útočníků a musí být dostatečně chráněny. Pro dobrého útočníka není velký problém cíleně změnit chování generátoru náhodných čísel například pomocí elektromagnetické imise. Dalším způsobem může být využití EPR paradoxu (Einstein Podolsky Rosen) pro účelovou indoktrinaci náhodného generátoru vlastními podvrženými daty Užívání náhodných dat Získávání náhodných dat (nevychýlených, nebo podvržených dat) je jen jedna z mnoha překážek jímž je nutné čelit při získávání náhodných dat. Dalšími problémy jsou dostupnost, spolehlivost a kvalita dat. Zvláště spolehlivost může být zásadní bezpečnostní problém. Jako příklad může posloužit nedávno zveřejněný útok na webové služby. Dostupnost dat je otázkou především vstupních dat za čas. Pokud potřebujeme dostatečné množství náhodných dat musíme počkat, nebo se poohlédnout po lepším zdroji. Většina zdrojů náhodných dat je velmi málo odolných. Spoléhání na takový zdroje dat, které jsou jediným zdrojem dat, se muže stát to, že se jednoduše rozbijí, nebo přestanou fungovat správně. Posledním a nejtěžším problémem, který je třeba vyřešit, je získávání nevychýlených dat ze zdroje.

61 3.1.3 Útoky proti PRNG Modely útoku útoku se zaměřují na různé části PRNG a to jak jednotlivých komponent, tak i celku. Prvním cíleným útokem je útok na inicializační vektor (seed), který musí být nejen dostatečně náhodný, ale musí být uchován v přísném utajení, protože jinak hrozí kompromitace celého systému. V ukázce praktického řešení použijeme jako příklad PRNG generátor YARROW, který byl speciálně navržen tak, aby byl odolný vůči všem útokům vedeným proti PRNG generátorům. Útok je možné provádět mimo jiné i proto, protože každý PRNG se musí nacházet v nějakém vnitřním stavu. Jakákoli změna (vytvoření pseudonáhodného výstupu) znamená, že nesmí dojít na výstupu můžeme k tomu, že obdržíme ta samá výstupní data, jako v předchozím kroku. To lze provést poměrně snadno, například zašifrováním předchozí hodnoty, nebo použitím hashe. Obtíže nastávají v okamžiku, kdy útočník již kompromitoval PRNG. Pro obnovení věrohodnosti nezbytně potřebujeme zdroj náhodných dat. I když máme zdroj náhodných dat, který není kompromitován, nutně to neznamená, že útočník nemůže pokračovat ve své činnosti. Plně postačí, když se bude snažit o získání co největšího objemu náhodných dat z výstupu generátoru. Pro zjištění interního stavu generátoru metodou hrubé síly, musí útočník vyzkoušet plný rozsah možných vstupních náhodných bitů. Statistické metody potřebné k získání vstupní náhodné veličiny je možné nalézt například v << ftp://ftp.inf.ethz.ch/doc/dissertations/th12187.ps.gz >>. Zabezpečení PRNG tentokráte z pohledu útočníka lze nalézt například v << >>. Útok na PRNG může být proveden těmito způsoby: Špatný odhad vstupní velikosti entropie, nebo snadno odhadnutelný počáteční stav. Špatný odhad je častou příčinou selhání reálně nasazených PRNG. Pokud je entropie relativně nízká, při stávajícím stavu technologie méně než cca 60 bitů, pak útočník může použít metodu hrubé síly a vyzkoušet všechny dostupné hodnoty entropie (seed). Získání kvalitního zdroje entropie a to nejen z hlediska úrovně entropie, ale i objemu dat je asi nejobtížnější problém při návrhu PRNG. Nesprávné zacházení s klíči, nebo soubory seed. Nesprávné zacházení patří spíše do oblasti implementačních chyb. Představuje široké spektrum chyb jako: chyby typu race condition, nesprávné nastavení práv k dočasným souborům a adresářům, nedostatečně vyřešení mazání souborů, ukládání souborů do veřejně přístupných složek, nedostateční zajištění paměťového prostorů (trasování RAM) apod. Implementační chyby. Implementační chyby nelze odhalit bez auditu a ani ten není zárukou spolehlivého řešení. V souvislostí s implementací je třeba uvažovat i testovací scénáře a

62 vektory pro nejen vývojovou fázi, ale i pro produkční fázi. V produkční fázi se již pracuje v reálném prostředí a není možné snadno změnit návrh PRNG, už proto protože není izolovaný, ale je součástí většího celku. Kryptoanalytický útok proti mechanismu generátoru. Změna seedu mezi dvěmi vnitřními stavy je fakticky proudová šifra. Tato skutečnost dává útočníkovi určitou informaci, kterou může využít k získání vnitřního stavu, nebo z výsledků muže přímo predikovat budoucí stav. Proto většina moderních a spolehlivých PRNG používá silný kryptografický algoritmus pro zajištění interní integrity PRNG. Omezit tuto slabinu je možné například tím, že se použije dostatečně silná bloková šifra. Kvalitních blokových šifer je poměrně hodně a to i těch, které nejsou zatíženy licenčními poplatky (AES, Blowfish, CAST apod.). Útok postranními kanály. Postranní kanály se stávají v poslední době široce diskutovaným tématem a to proto, protože se ukazuje, že je možné je nalézt i ve vysoce kvalitních šifrách. Stejné je tomu v případě PRNG. Postranní kanály umožňují získat informaci o vnitřním stavu generátoru. Jako příklad může posloužit knihovna RSAEF 2.0 << str. 4>>, která není odolná vůči timing attacku i když v tomto případě jde spíše o implementační chybu. Útok prostřednictvím voleného vstupu (fakticky chosen plaintext attack). Útočník může dostat příležitost generovat jím zvolený vstup. Pro úspěšné provedení tohoto typu útoku je třeba převzít, alespoň částečnou kontrolu nad PRNG. Úplné kompromitování PRNG. Některé generátory mají tu vlastnost, že pokud se útočníkovi podaří získat klíč, může odvodit všechny budoucí stavy generátoru, teoreticky do nekonečna. Iterativní útok. K provedení tohoto útoku je potřeba, aby útočník převzal kontrolu nad generátorem, nebo alespoň mohl zjišťovat vstupní a výstupní hodnoty. Princip útoku je založen na znalosti stávajícího výstupu a odhadování vstupní entropie z předchozího stavu. Je třeba si uvědomit, že vstupní entropie má většinou menší počet bitů než výstup. Proto má útočník mnohem snažší pozici, když se snaží dopátrat budoucího výstupního vektoru, ze znalosti současné entropie. V souladu s předchozím typem útoku, může úplně eliminovat PRNG jako překážku. Backtracking. Backtracking je založen na myšlence, že program, nebo obecně algoritmus, může být spuštěn nejen dopředu, ale i pozpátku. Tímto způsobem je možné získat klíče šifry, které slouží k přechodu mezi dvěmi vnitřními stavy PRNG. Z toho plyne, že každý

63 kvalitní generátor musí být navržen s ohledem na na tuto možnost. Nejlepším řešením, je použít jednocestnou funkci, která nemá klíč a z výstupu není možné zjistit vstupní data HW řešení PRNG HW PRNG využívají přírodních zdrojů náhodnosti pramenící z jejich fyzikální podstaty. Tyto zdroje nejsou statisticky nevychýlené, anebo vzájemně závislé a proto je třeba používat techniky, které mají tuto vychýlenost odstranit. Výstup není obvykle nezávislý ve statistickém slova smyslu. (pravděpodobnost, že zdroj 1 nemá pravděpodobnost 0.5, anebo přímo závisí na předchozím bitu). Způsobem jak provést narovnání je použití následující techniky* << [HaC] >>. Předpokladem je, že nedochází ke změně pravděpodobnosti výskytu p v čase (známo též jako Von Neumannova metoda). Rozdělme skupinu (např.: 10) generovaných bitů na dvojice a ty pak rozdělme dle následujícího klíče: 10 bude přidělena 1, 01 bude přidělena 0. Pak z této sekvence vyřadíme ty, které budou mít hodnotu 00 a 11. Tím je výsledná (opravená) sekvence statisticky nevychýlená a je možné jí použít jako zdroj náhodných bitů. Jednou z dalších možností je použít hashe SHA-1 apod. Tento postup je sice praktický, nicméně z matematického hlediska jeho výsledek je neověřitelný. Zdroje náhodnosti: čas mezi dvěma zachycenými částicemi při radioaktivním rozpadu tepelný šum produkovaný polovodičovými součástkami nestabilita volně vázaného oscilátoru turbulence uvnitř pevného disku šum získaný z mikrofonu Řešení na bázi fyzikálních zdrojů náhodnosti jsou spolehlivé a kvalitní, to však neznamená, že nemohou být cílem útočníka. Proto je nutné, aby byly podniknuty všechny kroky vedoucí k zabezpečení před nežádoucí manipulací. Ani HW zdroje entropie nejsou bez chyby. Pro to, aby mohly být použity v CPRNG, je třeba jejich výstup normalizovat. K tomu se používá právě tzv. Von Neumannova metoda*. 3.2 Řešení PRNG na bázi SW PRNG řešení je výrazně složitější než HW řešení. Jako zdroje náhodnosti mohou být použity následující vstupy: systémové hodiny

64 čas mezi stiskem kláves vstupně / výstupní buffery a jejich obsah uživatelský vstup (např.: nahodilé pohyby myší) hodnoty získané z OS, jako například: hodnoty zátěže systému, nebo aktivita síťových karet Použité zdroje, stejně jako v případě HW řešení, vyžadují kvalitní ochranu před nežádoucí manipulací. V případě SW řešení, je ještě složitější, jak tyto zdroje ochránit. Útočník má na své straně výhodu v tom, že může nejen sledovat zdroje, ale cíleně s nimi manipulovat. SW řešení nemá jen nevýhody, ale také některé výhody. Výhodou může být používání více zdrojů náhodnosti a tím předejít možnému selhání některého ze zdrojů. Získávání finální bitové posloupnosti se neobejde bez poměrně složitých technik, které se souhrnně nazývají míchací funkce (mixing function). Funkce různým způsobem míchá zdroje a ve finále na ně implementuje vhodnou hashovací funkci jako SHA-1 apod. Za účelem komprese výsledné sekvence (hashovací funkce randomizují vstup). Tím dostáváme unifikovanou dostatečně náhodnou sekvenci. 3.3 Generátory pseudonáhodných čísel (PRNG) Za definici PRNG (Pseudorandom Number Generator) lze zobecněnou definici PRBG (Pseudorandom Bit Generator). PRBG je deterministický algoritmus, jehož výstupem je náhodná sekvence bitů o délce k, pro kterou platí: l >> k. Zároveň lze konstatovat, že l je výstup, který je možné považovat za statisticky významný vůči k. Přitom je třeba zdůraznit, že výstup není náhodný. Obecně jsou generátory pseudonáhodných čísel efektivní deterministický program, který generuje posloupnost čísel, statistickými testy obtížně rozlišitelnou od náhodné veličiny. Oproti přirozeným generátorům mají tu nevýhodu, že nejsou skutečně náhodné a mají různě dlouhou periodu Požadavky na PRNG dané statistickými závislostmi Matematické požadavky vyplývají z asymptoticity požadavku na statistickou nevychýlenost a dalších požadavků vycházejících z počtu pravděpodobnosti. Snahou je vytvořit generátor, který je pokud možno neodlišitelný od přirozeně náhodné posloupnosti. Uvádím zde některé vlastnosti. PRNG je možné považovat za náhodný, pokud projde všemi statistickými testy v polynomiálním čase a žádný algoritmus nemůže spolehlivě odlišit výstupní sekvenci od skutečně náhodné (přirozeně náhodné) sekvence se statistickou pravděpodobností

65 výrazně větší než 0.5. PRNG je možné považovat za spolehlivý pokud projde next-bit testem. Next-bit test je test založený na algoritmu, kdy v polynomiálním čase není možné určit (l +1)-tý bit s pravděpodobností větší než 0.5. Zobecnění next-bit testu (Univerzalita next-bit testu). Pokud PRNG projde next-bit testem tehdy a jen tehdy, pokud projde statistickými testy v polynomiálním čase. Pokud zde mluvíme o polynomiálním čase, máme na mysli dostatečně velkou vstupní a výstupní sekvenci dat. 3.4 Ostatní požadavky na CSPRBG Zápisy dat na záznamové médium Z hlediska zátěže OS nepředstavuje zápis malého objemu dat do problém. V ideálním případě je to interval řádu minut. V zápisu do souboru jsou skryta jiné nebezpečí. Ty lze shrnout do několika následujících bodů: Update a atomicita provádění operací. Zápis dat na záznamové médium se provádí ve většině OS po nějaké periodě času, nebo pokud se napní nějaká vyrovnávací paměť. Dokonce není zajištěno, že pokud je vydán příkaz k zápisu na záznamové médium, je tento příkaz okamžitě splněn. Návrh řešení předpokládá, že k zápisu dojde a to okamžitě po reinicializaci. Dokonce může dojít k tomu, že by data na záznamovém médiu (magnetický disk) byla nekonzistentní. Pravda je ovšem taková, že se to v reálném nasazení nestává. Moderní souborové systémy jsou většinou transakčního typu. Pokud transakční systém negarantuje úplný přepis souboru (není zcela atomický), pak je lepší použít netransakční souborový systém. Důvod je prostý. Transakce mohou zanechat na disku informace (journal), které mohou vést k restauraci dat útočníkem. Pravdou je, že větší nebezpečí to ovšem znamená pro soli a tajné klíče, než pro soubory se seedem. Příkladem může být FS ext3, který je transakční a je možné z transakčního logu (journal) získat za určitých podmínek informace a to i po přepsání. Pro ukládání seedu, solí, nebo tajných klíčů se doporučuje netransakční FS např. Ext2. Důsledky takového chování jsou zmíněny v odstavci týkající se zálohování a obnovy. Podobný problém se vyskytuje, pokud není užito přímého zápisu do diskového prostoru. Používání vyrovnávacích pamětí nese riziko snoopingu. Riziko o to větší, že možnosti jak je možné snooping provést je celá řada. Uvažujme jen tyto: podvržený modul jádra, rootkit,

66 přímé čtení z média (pevného disku). LVM (Logical Volume Manager) a pokročilé FS (File System). LVM je dnes častým prostředkem pro zprávu diskových prostorů a prosazuje se ve téměř všech serverových implementacích. Důvod je jednoduchý. Snadná správa a údržba. To přináší riziko klonování na nejnižší úrovni, které účinně obchází atomicitu zápisu a čtení souborů (z aplikační vrstvy). Nejinak je tomu v případě pokročilých FS. Téměř všechny umožňují pro potřeby zálohování vytvořit konzistentní kopii datového prostoru v daném časovém okamžiku. Pokud útočník získá práva provádět takovéto operace je nemožné mu zabránit v utajeném provádění odposlechu. Rovněž není možné zjistit takovou činnost snadno zjistit. To platí především v případě, že PRNG neběží v privilegovaném režimu. Problém zálohování a obnovy dat V podstatě jde o stejný problém jak v předchozím případě. Jde o to jak zabránit, aby se soubor, nebo soubory se sedeem nedostaly do nepravých rukou. Problém se stává složitějším v okamžiku, kdy dojde k poruše, která znamená odstávku systému. Generátor sice obsahuje ochranu proti predikovatelnosti. PRNG se sám zotaví z kompromitovaného stavu, jenže skutečnost, že protivník získá seed mu dává poměrně rozsáhlé možnosti po obnově systému. Prakticky mu umožňujeme, aby se PRNG nacházel dvakrát ve stejném stavu. Útočník tak získá data někoho, kdo PRNG využívá. Účinná forma obrany proti tomuto typu útoku neexistuje a jedinou možností vytvoření úplně nového souboru se seedem. Samozřejmě je možné vyloučit soubory se seedem ze schématu zálohování. Dalším nutným opatřením je hashování čítače inicializace. Zabráníme tak možnému replay attacku oproti generátoru. Slabina tohoto řešení spočívá v tom, že hashování čítače inicializace je implementačně závislé, respektive platformě závislé. První inicializace První inicializace obecně není tak jednoduchá jak, by se na první pohled mohlo zdát. Běžnou praxí je naplnění seed souboru náhodnými daty během instalace. Řešením může být jiný počítač nebo obecně zdroj entropie, který je odpojen od PRNG po naplnění úložišť a souboru se seedem. Volba záleží na okolnostech daných okolním prostředím a podmínkami za, za kterých je generátor provozován. Úložiště ovšem vyžadují pro svoji správnou funkci a naplnění kvalitní entropií určitý čas odvislý od kvality a vydatnosti externího zdroje entropie. To představuje problém především pro uživatele entropie, protože generátor se používá mimojiné i pro generování klíčů pro různé kryptosystémy a ty jsou při první inicializaci generována také. Volba zdrojů entropie Výběr zdrojů entropie je jedním z nejtěžších vůbec. U zdroje,

67 který jsme vybraly počítáme s tím, že bude produkovat dokonale náhodná data. V důsledku toho také očekáváme, že každý prvek z výběru, bude mít stejnou pravděpodobnost výběru. Obrana proti snoopingu. Útočníkovi, kterému se podaří získat práva na úrovni superuživatele, plně postačí používat výše uvedené prostředky. Znamená to selhání bezpečnostního modelu jako celku. V případě, že nemůže získat dostatečně vysoká oprávnění, nebo má možnost číst z diskového prostoru, obecně úložného média, pak nám plně postačí na obranu dostatečně kvalitní nástroj pro šifrování diskových prostor. Šifrování diskových prostor řeší většinu výše zmíněných problémů se snoopingem. Znamená to jedno jediné, kvalitní provedení s ochranou klíče proti jeho odcizení Hrozby vyplývající z provozu v reálném výpočetním systému K tomu, aby útočník získal použitelnou informaci musí mít možnost přístupu do oblasti paměti, která je využívána PRNG pro řízení rozdělování entropie do jednotlivých akumulátorů. R. Schneier podotýká, že tím útočník dostává do ruky možnost ovlivňovat nejen obsah akumulátorů, ale úplně kompromitovat celý PRNG. To je pravda, nicméně dnešní překladače disponují možnostmi, jak tomuto zabránit a detekovat takovéto jednání a účinně se mu bránit (random canary apod.). Lepší řešení nabízejí moderní implementace prostředí jazyku JAVA. Některé implementace JAVA-enginu šifrují oblast paměti, kterou engine používá a zabraňují tak možnému ovlivňování chování generátoru. Příkladem by mohla být implementace JAVA od IBM. Tato implementace nabízí extenzivní ochranu a kontrolu paměťové haldy. Tím lze zabránit možnému útoku skrze manipulaci s pamětí. To platí jen potud, pokud je PRNG provozován jako uživatelský proces. Provozovat PRNG jako uživatelský program, nebo proces také není prozíravé z toho důvodu, protože je zde prostor na celou řadu útoků typu DoS (Denial of Service), ukončením procesu úplné využití dostupné paměti (memory exhaustion), odsunutí programu PRNG z paměti RAM do odkládacího prostoru apod. Jednoznačně lepší variantou je implementace přímo do jádra OS (Operating system operační systém). Zde je ochrana jednoznačně vyšší (jádro OS má vždy vyšší prioritu a nelze ho swapovat alespoň ne celek). Jádro OS (kernel) má přímý (výlučný) přístup k zařízením, které jsou zdrojem entropie a v neposlední řadě pracuje na nižší úrovni chráněného módu (protect mode mluvíme o víceuživatelském OS), než běžné uživatelské programy. To platí jen potud, pokud nedojde k možné kompromitaci systému, včetně jádra OS (např.: podvrženým ovladačem, nebo jaderným modulem). V tomto případě se jedná o selhání bezpečnostního řešení jako celku. S tím nemá PRNG nic společného. Zatím jsme se zabývali pouze útokem z vnějšku na bezchybný program realizující PRNG. Nyní je se třeba zaměřit na další aspekty. Nejdůležitějším aspektem je efektivní získávání entropie z různých driverů. S tím je spojeno několik omezení.

68 Především jsou to následující: Nedostatečná výkonost zdroje entropie. Způsob jak obejít nedostatečnou výkonost, je použít více zdrojů a vhodně je kombinovat. selhání zdroje entropie. To může být dáno špatně napsaným ovladačem fyzického zařízení. Může generátor pozastavit dotazování se na ovladač zařízení? Ano může, protože se nepoužívá jen jeden zdroj entropie. Opakovat dotaz na zařízení po uplynutí předem daného časového okamžiku je jediná cesta jak úspěšně získat entropii a zároveň nepřetížit zdroj entropie. Chyby v programu. Chyby v programu jsou nejčastěji způsobeny tím, že program nekontroluje chybové výstupy a neošetřuje všechny stavy jenž mohou nastat. Pak jsou tu ještě možné chyby v překladači, respektive v generovaném kódu v souvislosti s HW, na kterém je generátor provozován. Ne vždy je možné minimalizovat jejich dopad a nebo jejich vliv úplně vyloučit. Výše uvedené omezení, kterým musíme čelit nejsou jediná a jsou pojata obecně, nezávisle na implementaci. V případě, že dojde k realizaci jako součást kernelu OS přibývají další omezení. Takovými jsou například: volba programovacího jazyka a s tím související specifika Velikost vyprodukovaného kódu a jeho optimalizace. Velmi často se zapomíná, že systémová režie je rovněž kvalitativní parametr. zajištění integrity PRNG. Musíme si uvědomit, že musíme zajistit integritu všech modulů. Ovladač nebo jaderný modul nemusí být rovněž bez chyby. Jaderný modul realizující PRNG nesmí být nikdy odsunut z paměti do odkládacího prostoru. Tato podmínka mimochodem platí i pro PRNG realizovaný jako uživatelský program. PRNG realizovaný v kernelu nesmí za žádnou cenu způsobit pád systémů Jaderný modul, stejně jako uživatelský protějšek musí být testován na chyby v SW. Zvláště se nesmí zapomínat na chyby typu: přetečení zásobníku (stack overflow), chyby spojené s nesprávným zacházením s haldou (stack smashing, stack overflow, heap overflow) apod. Logování. Logování nejúčinější způsob jak zjistit fakt, že došlo ke kompromitaci. Když už nemůžeme kompromitování zabránit, měli bychom mít možnost jej detekovat.

69 3.4.3 Specifické požadavky pro uživatelsky realizovaný PRNG Kontrola na počet spuštěných instancí programu v paměti. Při větším počtu spuštěných instancí hrozí vyčerpání zdrojů entropie a také možný timming attack. Tento typ útoku je poměrně nebezpečný, protože dává možnost odhadovat vstupní entropii PRNG na základě měření času provádění jednotlivých operací. Ověřování integrity PRNG a zdrojů entropie. Ověřování integrity zdroje entropie je z hlediska programové realizace asi nejobtížnější. Zřejmě nejjednodušším je realizace v prostředí jazyků JAVA, protože se implementátor může spolehnout na to, že je prostředí správně implementováno. Používání staticky slinkovaných knihoven. Používání dynamických knihoven je v prostředí OS bezpečnostním rizikem (možnost podvržení knihovny) Logování Kryptograficky bezpečné pseudonáhodné generátory (CSPRBG) Kryptograficky bezpečné pseudonáhodné generátory (Cryptographicaly Secure Pseudorandom Bit Generato; CSPRGB, nebo Cryptographicaly Secure Pseudorandom Number Generator) jsou generátory, které úspěšně projdou testy jako je next-bit test. V této souvislosti je vhodné se pozastavit nad některými důsledky plynoucími z tohoto požadavku Lineární kongruentní generátory ineární kongruentní generátory jsou generátory založené na rekurentním vztahu nejčastěji ve formě: X n = (a X n-1 + b ) mod m. X n - je n-tý člen posloupnosti. a, b jsou proměnné parametry (záleží na nich perioda sekvence) m - konstanta, obvykle nesoudělné číslo s parametry a,b. Vlastnosti lineárních kongruentních generátorů celkově nejsou dobré. Jedním z charakteristických rysů je, že mají periodu, po které se opakuje pseudonáhodná sekvence. Takovým příkladem může být funkce rand() v ANSI C. Funkce rand() je založena na generátoru s maximálním rozsahem [0,RAND_MAX], kde RAND_MAX je definován ve stdlib.h a obvykle je nastavena na hodnotu 0x7fff v prostředí MS VISUAL STUDIO 6.0 a dalších << >>, nebo v linuxu (glibc) RANDOM_MAX na 0x7FFFFFFF <<

70 >>, pokud není předem nastavena jinak. Dalším problémem je, že se obvykle odvozuje náhodný inicializační vektor (seed) od aktuálního času. To je dáno potřebou portability i když to není nezbytně nutné. V důsledku toho je možné vygenerovat identické sekvence náhodných čísel. K tomu se užívá knihovní funkce srand(). ANSI C standard (specifikaci) lze získat v elektronické podobě na: << >>, kde je přímo možné získat elektronickou verzi ANSI C specifikaci. Existují samozřejmě i jiné než lineární generátory. Takovýto generátor není pro kryptografii dostatečně dobrý, protože jeho výsledek lze předvídat a to je nežádoucí. Nejinak jsou na tom kvadratický a kubický kongruentní generátor. Teoretické práce ukazují, že takovéto generátory jsou nedostatečně chráněny před kryptografickými útoky tak jak to třeba ukázala Joan Boyerová v roce 1977 v své práci (spolu s J. Reedsem) Cracking Random Number Generator. Pro úplnost zde uvádím vztahy pro kvadratický a kubický generátor: Kvadratický kongruentní generátor: Xn = (ax 2 n 1 + bx n-1 + c) mod m Kubický kongruentní generátor: Xn = (ax 3 n 1 + bx 2 n-1 + cx n-1 + d) mod m Funkce parametrů jsou stejné jako v případě lineárního kongruentního generátoru. Podobné vlastnosti mají kongruentní generátory, které používají vzájemné kombinace více generátorů. Pro kryptografické účely nejsou rovněž vhodné i když mají mnohem delší periodu. Jako příklad mohou být užit generátory v << [AC] str.370 tab 16.1 >>. Pro hodnoty a = 84589, b = a m = vychází perioda Kombinování lineárních kongruentních generátorů Snaha o odstranění nedostatečné kvality jednoduchých lineárních kongruentních generátorů vyústila ve snahu použít kombinace těchto generátorů. A ani ta nevedla k dostatečné úrovni kvality generátorů. Jedinou výhodou je delší perioda algoritmu a dávají lepší výsledky v statistických testech. Existují samozřejmě i další generátory založené na jiných principech, ale ty nejsou vhodné pro generování náhodných sekvencí Ostatní generátory Není správné tvrdit, že neexistují jiné generátory pro vytváření pseudonáhodných sekvencí dat. Tyto

71 generátory ne vždy, ale splňují požadavky na kryptograficky bezpečný generátor náhodných čísel. Proto je se třeba mít na pozoru při volbě toho či onoho generátoru pro daný účel. 3.5 Kryptograficky bezpečné generátory náhodných čísel Záměrně byly vybrány náhodné generátory, které jsou standardem a kryptograficky bezpečný generátor, který je navržen od základu jako bezpečný. Rozdíl je dosti značný. Zatímco FORTUNA (Yarrow) je použitelná i v relativně nezabezpečeném prostředí, generátory založené na X 9.x standardu takové rozhodně nejsou FORTUNA Fortuna je generátor navržený B. Schneirem a N. Fergusonem jako náhrada za již ne zcela vyhovující yolk << [PC] str. 162 >>. Při návrhu opustili stávající systém estimátorů entropie a ponechali jen jeden akumulátor entropie, který je navíc odolný oproti injection attacku. Rozšířením je pravidelná změna klíče interního algoritmu blokové šifry po 1MB výstupních dat. Z čistě technického hlediska je návrh poměrně volný a umožňuje použít libovolnou interní blokovou šifru. To dává možnost dále zlepšovat kvalitu generátoru tím, že prostě změníme interní blokovou šifru. Oproti yolk dovoluje nabízí další výhodu v tom, že dovoluje pracovat se soubor pro seed už při startu počítače (vysoce bezpečné systémy) Generátor Generátor je část PRNG, která předává stav na libovolně dlouhý výstup. Pro kryptograficky silný generátor nevystačíme s jednoduchým schématem (například lineární kongruentní generátor), ale musíme použít nějakou kvalitní symetrickou šifru. Symetrickou šifru proto, protože PRNG je fakticky bloková šifra v režimu CTR (counter mode, čítačový mód). Interní algoritmus je založen na modifikovaném algoritmu AES. Odolnost vůči útokům při vytváření výstupu se děle zásadně jen na požádání. To neznamená, že útočník nemůže využít okamžik, kdy dochází ke generování výstupu k útoku. Tomu návrh čelí tak, že při každém požadavku na výstup generuje dalších 256 bitů dedikovaných pro nový klíč blokové šifry. Po vygenerování blokové šifry jednoduše můžeme zničit starý klíč a předejít tím úniku informací (backtracking) Zajištění náhodnosti, které je statisticky ověřitelné Náhodnost se zajišťuje velmi problematicky. Na jedné straně je třeba zajistit dostatečnou rychlost a

72 na straně minimalizovat možnost vzniku kolizí na výstupu. Při objemu 2 64 bitů z jednoho klíče musíme počítat s jednou kolizí v bloku. Nejjednodušší cestou jak zabránit vzniku kolizí, je omezit délku výstupu na bloků což je 1 MB. V ideálním případě je pravděpodobnost kolize To vyžaduje okolo 2 97 požadavků. Pokud chce útočník dosáhnout kýženého výsledku, tj. dosáhnout kolizního stavu musí podniknout zhruba dotazů. Pokud by útočník vygeneroval řádově 1000 dotazů /s, stále by to znamenalo, že musí počkat 1, s (10 9 s je zhruba 32 let). Tím je zároveň prokázáno, že provedení úspěšného útoku hrubou silou je nemožné. Vytvoření nového klíče po každém bloku, zvyšuje celkovou bezpečnost řešení a to v souladu s tím, že neresetujeme čítač. Pokud bychom totiž skončili cyklus a zároveň vynulovali čítač, dojdeme ke zjištění, že bychom opět použili stejný klíč. Tím, že čítač má velikost 128 bitů, zajistíme že se hodnota v čítači nebude opakovat po velmi dlouhou dobu. Hodnota 0 v čítači znamená počáteční stav a generátor nebude generovat výstup, protože ještě nedošlo k šifrování Inicializace Nastavením čítače na výchozí stav (0) a vygenerováním klíče, indikujeme počáteční stav Vytvoření nového souboru se seed. Nový soubor seed je vlastně změna interního stavu. Použití hashe zajistíme, že dojde k dokonalému promíchání klíče a nového seedu Generování bloku Blok náhodných čísel je vytvářen interní funkcí, kterou může použít jen generátor. Tuto funkci není možné použít vně PRNG Generování náhodných dat Funkce generování náhodných dat je jako jediná přístupná uživateli. Dovoluje mu vytvořit najednou 1MB pseudonáhodných dat a zároveň zajistí, že generátor nebude moci využít předchozí data, která sám vygeneroval. Výstup je tvořen jako výsledek volání funkce GenerateBlock a jedinou další funkci kterou má je, že upraví výstup na správnou délku Akumulátor Význam akumulátoru je zřejmý. Akumulátor shromažďuje náhodná data z různých zdrojů a používá

73 je k naplnění generátoru náhodnými daty Zdroje Entropie Každé reálné prostředí obsahuje několik reálných zdrojů entropie. Při kvalitním návrhu bude zdroj entropie pravděpodobně prvním místem kde se útočník pokusí zaútočit. Jako obránce nemůžu předvídat, kde a jak se útočník pokusí zaútočit. Zdrojem může být cokoliv a nejčastěji se používá pohybů myši nebo stisků kláves (PGP a jeho varianty). Dalšími zdroji mohou být odezvy disků, tiskárny, přerušení OS a podobně. Nejlepším řešením je pak použít je všechny simultánně, protože to útočníkovi znemožňuje efektivně předvídat chování zdroje entropie. Navíc nám jako obráncům to dává určitou výhodu v tom, že můžeme zjistit některé činnosti aktivního útočníka. Zdroje jsou identifikovány číslem z rozsahu a mohou být přidělena staticky nebo dynamicky. Data z každého zdroje představují malý objem dat. Spojením výstupů z několika zdrojů vznikne jedinečná událost, kterou je možné dále zpracovat parsrováním. Při návrhu musíme počítat s tou nejhorší možnou variantou, kdy útočník má pod kontrolou zdroje entropie a zároveň může využívat PRNG jako každý jiný uživatel Úložiště Úložiště (pool Px) slouží k naplnění generátoru a k tomu potřebuje dostatečně velké úložiště, by útočník nemohl úspěšně odhadnou obsah úložiště. Zamysleme se nad obsahem sousloví dostatečně velké. Především úložiště musí být tak velké, aby útočník nebyl s to zjistit nic o interním stavu PRNG. Velikost a počet složiště není snadné určit, už s ohledem na prostředí ve kterém se PRNG nachází. FORTUNA má 32 úložišť, které slouží k uložení řetězců neomezené délky. Implementace nevyžaduje ukládání neomezeně dlouhých řetězců, ale vypočítává hash tak, jak jsou plynule spojovány v úložišti. Každý zdroj cyklicky ukládá do úložišť náhodnosti. Tím je zajištěno, že více či méně náhodně jsou distribuovány události do jednotlivých úložišť. Úložiště P0 je naplněno pokaždé pokud je obsah dostatečně dlouhý. Ostatní úložiště jsou znovu naplňován dle následujícího klíče: Úložiště Pi je vynulováno v okamžiku, kdy je čítač nulování r roven 2i. Kde i je číslo úložiště. V praxi to znamená, že P0 se nuluje vždy, P1 každý sudý cyklus, P2 každé 4 cykly. Výhodou řešení je to, že se automaticky přizpůsobuje dané situaci. Útočník nemůže toto schéma využít, protože je zde nejméně jedno úložiště, jehož výsledek nemůže předvídat. Pokud útočník úmyslně vygeneruje velký objem událostí, může predikovat obsah úložiště P0 a odvodit nový stav generátoru ze starého stavu a výstupu generátoru. Jenže pokud dojde k vynulování úložiště P1, nemůže odhadnout interní stav, protože je zde nejméně dvojnásobný

74 objem dat, než může odhadnout. Rychlost zotavení ze stavu, kdy byl kompromitován, závisí pouze na objemu entropie, jenž přichází do úložišť. Uvažujme, že do úložiště přichází konstantní četnost výskytu ρ. Každé úložiště je naplněno objemem ρt / 32 za periodu času. Útočník nemá reálnou možnost sledovat stav generátoru, pokud úložiště obsahuje více než 128 bitů entropie. V úvahu připadají dva scénáře. V prvním scénáři nedojde k vynulování úložiště P 0 ještě před tím, než dosáhne 128 bitů entropie. V tomto případě dojde k zotavení z kompromitovaného stavu okamžitě. Druhý scénář předpokládá, že dojde k vynulování úložiště P 0 velmi rychle, například v důsledku aktivity útočníka. Pak čas t, mezi dvěma vynulováními bude odvislý od toho, kdy dojde k vynulování jakéhokoli úložiště Pi, daného vztahem 2 i t s. Objem dat nastřádaných v úložišti P i bude roven 2 i ρt/32 mezi dvěma vynulováními. K prvnímu zotavení P i dojde mezi: i ρt/32 < 256. (aag) Z této nerovnice je možné určit objem dat, který bude nastřádán mezi dvěma body zotavení. Z předchozí rovnice je možné odvodit objem náhodných dat nutných k obnovení ze stavu, kdy byl generátor kompromitován. Zde je vhodné připomenou, že vlastnost sebezotavení se z kompromitovaného stavu, činí tento generátor velmi atraktivní pro nasazení v prostředí reálných aplikací a aplikačních serverů. Generátor používají implementace založené na BSD UNIXu. Nerovnice, ze které je možné odvodit objem dat nutných pro zotavení je na pravé straně vztahu (aag): 2 i ρt/32 < 256 (aah) po úpravě: 2 i t/32 < 8192/ρ (aai) Ze vztahu (aai) vyplývá, že ke zotavení z kompromitovaného stavu potřebujeme 2 13 bitů (pravá strana vztahu aai). V důsledku většího počtu akumulátorů (2 5 ) a toho že dojde k vynulování akumulátorů zhruba po 256 bitech lze říci, že celkově je výsledek více než dobrý. Při počtu 32 akumulátorů by musel útočník vložit tolik náhodných dat, aby vynutil 2 32 vynulování. Tolik nulování je třeba, aby získal 13 bitů entropie. Pokud bychom měli pocit, že počet nulování je příliš malý, a ani tento výsledek nestačil, lze zvětšit počet akumulátorů a tím ještě více zrychlit proces zotavení. Zvětšení počtu akumulátorů není ekonomické, protože při počtu 10 nulování za sekundu vychází zhruba 13 let než dojde k vynulování akumulátoru P 31. Třináct let je většinou nejen za technickou, ale především morální životností vybavení. Navíc jen velmi málo systémů se může pyšnit uptime větším než 5 let.

75 3.5.2 Implementace V implementaci se bude zabývat reálnými požadavky na takovýto generátor. Musíme se zabývat takovými otázkami jako jsou: mechanismus rozdělování náhodnosti přes jednotlivé akumulátory, minimalizace výpočetního výkonu potřebného na realizaci, inicializaci generátoru, získávání entropie, řízení událostí (vznik entropie a její zachycení), řízení seed souborů, atomicita prováděných operací, bootování, volba zdrojů entropie Mechanismus rozdělování entropie na akumulátory Nejjednodušším způsobem jak řešit rozdělování entropie je používání akumulátoru pro tento účel. Z hlediska bezpečnosti to ovšem není moudré a to proto, protože útočník může volat funkci realizující rozdělování entropie. Pokud by totiž útočník získal možnost přímo ovlivňovat obsah v akumulátoru P 0, tak by celý systém akumulátorů byl kompromitován. Schneier a spol. vyřešili tento problém tím, že každá událost (vznik entropie) je generátorem distribuována patřičnému akumulátoru Práce s událostmi Oprávněným požadavkem je minimalizace pracovní režie generátoru. Režie při získávání entropie je spojena s přidáváním událostí do jednotlivých akumulátorů. Řetězce jednotlivých akumulátorů mohou být teoreticky neomezené, ale jejich velikost je přímo závislá na vydatnosti zdrojů entropie. FORTUNA tento problém řeší tím, že každý akumulátor má vlastní vyrovnávací paměť. Dalším opatřením, jak omezit objem dat ve vyrovnávacích pamětech je, opakovaná hash, jakmile je příslušný akumulátor zaplněn. K zajištění plné funkcionality je třeba provést následující opatření: Minimalizace počtu inicializací generátoru (reseeding). Minimalizace počtu inicializací generátoru je zdánlivě na závadu, ale tak to není. Především je třeba si uvědomit, že operace inicializace trvá delší dobu, než je minimální perioda mezi dvě událostmi, které jsou zdrojem entropie. Minimalizace inicializace umožňuje přesunout těžiště výpočtů spojených s generováním výstupních dat na uživatele. Vedlejším efektem je, že dochází k menšímu ovlivňování zdrojů entropie a v neposlední míře i k tomu, že potenciální útočník bude mít menší prostor k provádění útoků. Enkapsulace generátoru. Enkapsulace generátoru je nutné bezpečnostní opatření. Zabraňuje přímému volání a zabraňuje tím obcházení procesu inicializace generátoru. Pro úplné pochopení, proč to tak je, je třeba zdůraznit, že úložiště nabízí funkci RandomData

76 se stejným rozhraním jakou má funkce PseudoRandomData. To dává úživatelům možnost přímo volat rozhraní RandomData a obcházet tím inicializační proces. Eliminace vlivu vyrovnávacích pamětí CPU. Na začátku bylo zdůrazněno, že pro generování pseudonáhodných dat se užívají generátory obecné hashovací funkce. Úvahy se pohybovala především v rovině teoretické. Hashovací funkce standardu SHA (a nejen ty) pracují s vstupními bloky stejné délky. Procesory a jejich paměťové subsystémy jsou navrhovány s ohledem na to, aby procesory podávali co největší výpočetní výkon (maximalizovat propustnost). To ovšem znamená, že kód, má-li být prováděn, efektivně musí uložen ve vyrovnávací paměti nejvyšší úrovně. Kritickým faktorem se proto stává délka kódu a hlavně minimalizace zátěže procesoru. Nepřímo z toho plyne nutnost maximalizovat velikost akumulátorů. Vhodná velikost akumulátorů versus délka programového kódu a četnost výpočtů za jednotku času, to jsou parametry, které jsou závislé na prostředí a není možné je generalizovat Proces inicializace Inicializace je jednoduchá operace. Nejlepším popisem je příklad prováděcího plánu. Příklad je doslovně převzat z << [PC] str.: 174>> a je napsán v pseudo kódu aplikace : funktion InicializePRNG # Vynulování jednotlivých úložišť e - nulový vektor for i = 0,..,31 do Pi e od # Vynulování čítače ressedu ReseedCnt 0 # Inicializace generátoru G InitializeGenerator() R (G,ReseedCnt,P0,...P31) return R

77 Získání náhodných dat Pro získání náhodných dat potřebujeme wrapper, který zabalí komponenty generátoru, proto abychom zamezili případné nežádoucí manipulaci, jak bylo naznačeno v podkapitole práce s událostmi. Vstupní parametry funkce RandomData: Vstup: R n Stav PRNG, který je měněn funkcí RandomData. množství dat v bytech, které je třeba vygenerovat Výstup: r pseudonáhodný řetězec if délka(p 0 ) > MinPoolSize AND (T - poslední reseed) > 100ms then # musíme provést inicializaci ReseedCnt ReseedCnt + 1 # operace hashování nad úložišti s e for i = 0,..,31 do if 2 i OR ReseedCnt then s s (SHA d -256()) P i e fi od # získali jsme data a nyní může provést inicializaci fi return PseudoRandomData(G,n) Funkce provádí klíčovou operaci a to generování výstupního řetězce náhodných čísel a inicializaci. Jednoduchý počáteční odhad velikosti úložiště pro 128 bitů entropie vede k hrubému odhadu 64 byte. Úvaha je následující. Předpokládejme, že každá událost obsahuje zhruba 8 bitů entropie

78 zabírá 4 byty v úložišti. Odtud hodnota MinPoolSize >64bytů. Maximální hodnota by zase neměla být příliš velká, neboť nutně vede k prodloužení času mezi jednotlivými inicializacemi a to i v případě, že zdroje entropie jsou schopny dodávat velký objem entropie. Uvedený příklad funkce je zde pouze za účelem demonstrace. Z popisu je vidět, že není optimalizován z hlediska výkonnosti. Podmínka: délka(p 0 ) > MinPoolSize AND (T - poslední reseed) > 100 ms je podmínkou dělení. Pokud je podmínka splněna, není třeba provádět následně smyčku, protože nemůže dojít inicializaci ostatních úložišť Přidání události do úložiště Přidání události do úložiště je inicializováno zdrojem. Algoritmus je závislý na konkrétním prostředí. Každý zdroj je jednoznačně identifikován svým číslem. Zjednodušený popis funkce AddRandomEvent dává představu, jak je realizováno přidávání jednotlivých událostí. funkce AddRandomEvent vstup: R s i stav generátoru náhodných čísel (PRNG) identifikátor zdroje. Zdroje jsou v rozsahu (viz předchozí popis) číslo úložiště v rozsahu Každý zdroj je distribuován do všech úložišť. Používá se k tomu metoda round-robin e data události. Data události jsou ve formě řetězce délky od 1 do 32 # kontrola parametrů a zároveň podmínka pro vložení dat události (1 délka(e) 32) AND (0 s 255) AND (0 i 32) # pokud je podmínka splněna provede se vložení dat do příslušného úložiště P i P i s délka(e) e Ze zápisu je patrné, že zdrojový identifikátor i a délka události e je kódována do jednoho bytu. Toto sloučení dvou řetězců je přidáno do úložiště a není prováděno hashování. Hashování se provádí jen tehdy, pokud je to nezbytné. Limitace vstupu na 32 bytů je praktickým omezením, neboť větší hodnoty obvykle nenesou dostatečné množství entropie. Způsob jak bránit zanesení balastní informace, je provedení hashování hned na vstupu. Toto je implementačně závislá volba. Dalším praktickým požadavkem je, aby funkce AddRandomEvent vracela data co možná nejrychleji. Přirozené zdroje entropie mají charakter real time služby a nemohou příliš dlouho čekat na provedení operace. V prostředí víceuživatelských a vícevláknových OS není možné jednoduše

79 realizovat atomicitu operace a je třeba použít složitější algoritmy (vlákna, mutexy apod.). Ještě složitější situace nastane v případě, že nejkratší nutný čas na provádění funkce AddRandomEvent je příliš dlouhý. Toto omezení lze poměrně snadno obejít vyrovnávací pamětí Řízení a správa souborů seed Seed soubory jsou nutnou součástí každého bezpečnostně orientovaného systému, protože mu umožňují provádět počáteční inicializaci, například po rebootu. Žádný náhodný generátor, ale ani jiné řešení, které potřebuje pro svou inicializaci náhodné číslo, neboť řetězec se bez něj neobejde. Seed zabraňuje, pokud je správně implementován, odhadnout počáteční stav a tím i vnitřní stavy včetně dalšího chování. Soubor seed je fakticky koncentrovaným zdrojem entropie. Aby řešení bylo spolehlivé, při každé inicializaci se přepisuje novými daty. Soubor s entropií je třeba důsledně chránit, protože obsahuje velmi důležitou informaci, která by útočníkovi usnadnila provedení útoku vůči systému, který jej využívá. Spolehlivá a bezpečná implementace vyžaduje, aby všechny operace byly atomické. Atomicita je nutným, nikoliv postačujícím požadavkem. Správá souboru s inicializačními daty (seed) se sestává ze dvou základních operací a to čtení a zápis. Operace zápisu je nejjednodušší operace zápisu do souboru. Zapisuje se 64 bytů. Funkce WriteSeedFile vypadá následovně: vstup: R f vnitřní stav PRNG, který tato funkce modifikuje soubor, do kterého se zapisuje seed write (f, RandomData(R,64)) Význam je zřejmý výstupem funkce write() je zápis do souboru. Pro zjednodušení zde nejsou uvedena oprávnění, umístění v hierarchii FS (File system, souborový systém), ošetření chybových stavů. Operace změny souboru seed. Změna souboru je přepsáním souboru, především při reinicializaci. Reinicializace, přepsání souboru je nutné, protože chceme mít dostupný náhodný inicializační vektor po startu. Je zde ještě jeden důvod a to bezpečnostní. Pokud by útočník získal data ještě před změnou souboru seed, pak by resetoval generátor. Když nedojde ke změně během běžného provozu, útočník by měl k dispozici data z doby před restartem a zároveň kompletní informaci, kterou potřebuje k odhadování budoucího stavu PRNG hned po startu. Navíc jiný uživatel by měl ty samá data jako útočník a tím by byla ohrožena základní premisa o bezpečnosti PRNG. Samozřejmostí je dodržení předpokladu o utajení souboru obsahující seed. Operace přepisu je v podstatě operace zápisu do souboru. Funkce je rozšířena o funkci

80 Reseed, která zapisuje se 64 bytů. Funkce UpdateSeedFile vypadá následovně: vstup: R f vnitřní stav PRNG, který tato funkce modifikuje soubor, do kterého se zapisuje seed s e asserce délka(s) = 64 Reseed(G,s) write (f, RandomData(R,64)) Kdy zapisovat a číst soubor se seed Čtení se provádí jednoznačně při bootu. V tomto okamžiku nemá PRNG k dispozici dostatečný objem entropie, nebo spíše žádnou. Update souboru se seed provádí v podstatě kdykoli, když máme dostatek entropie, nebo v periodických intervalech, pokud nelze jinak. Činí se, tak v podstatě z několika důvodů. První důvod je, že budeme chtít mít entropii i po restartu systému. Navíc k restartu systému může dojít v podstatě kdykoli. Druhým a neméně důležitým důvodem, že chceme, aby entropie nastřádaná během chodu systému ovlivňovala i obsah souboru se seed. Zabraňujeme tím nutnosti složitě a náročně ověřovat kvalitu entropie v seed souboru Volba náhodných zdrojů a výběr náhodných čísel Náhodný generátor produkuje sekvenci náhodných dat na výstupu. To je chování, které je od něho očekáváno a požadováno. V praktickém nasazení je to jen jeden způsob, jak generátor používán. Jsou ovšem situace, kdy je třeba vybrat jedno náhodné číslo z množiny náhodných čísel. Při výběru náhodného prvku z množiny, se musí postupovat obezřetně a provést výběr správně. Dále se předpokládá, že každý prvek množiny má stejnou pravděpodobnost, jako má prvek jiný. Správně provedený výběr není snadné realizovat. Následující úvaha je převzata z <<[PC] 183,184>>, protože je konzistentní a snadno pochopitelná. Předpokládejme, že máme n prvků množiny, nad kterou provádíme výběr. Množina prvků obsahuje 0, 1,..., n - 1. Množina obsahuje 0 prvků. Znamená to, že n = 0. Množina o 0 prvcích nemá smysl. Totéž platí, s mírnou obměnou, pro n = 1. Pro n = 1 nemáme totiž žádnou možnou volbu. Množina obsahuje 2 k prvků. Množina o 2 k prvků představuje ideální stav mnoha ohledech.

81 Předně umožňuje výběr se stejnou pravděpodobností. Množina neobsahuje 2 k prvků. Takovou množinu je možné převést na předchozí případ tím, že odebereme, zaokrouhlíme počet prvků na počet 2 k. Je to nejjednodušší cesta, i když ne zcela správná z hlediska statistiky. Uvažujme příklad programu, který provádí výběr celočíselného 32-bitového čísla a zároveň provádí operaci modulo m. Pokud bude číslo m různé od 0 a zároveň nebude dělitelné 2 (dostaneme výsledek roven 0), pak bude platit následující: Výsledek operace modulo n bude roven 0 s pravděpodobností (o + 1)/2 32. Zatímco výsledek operace modulo m <> 0 s pravděpodobností o /2 32, kde o je výsledek operace modulo. Standardní odchylka je sice malá, ale dostatečně velká na to, aby útočníkovi umožnila snadno detekovat odchylku v krocích. Správný postup je vybírat náhodné číslo z daného rozsahu metodou pokus omyl. Fakticky to znamená, že vygenerujeme číslo požadované délky a zahodíme všechny nepotřebné čísla. Na následujícím příkladu uvedeme postup. Chceme vygenerovat náhodné číslo z rozsahu 0,.., 4. Nejdříve je nutné vygenerovat číslo z rozsahu 0,.., 7, protože 8 je mocnina 2 (požaduje se celý rozsah a proto je třeba zvolit číslo o 1, vyšší a navíc zde projevuje vliv modulo). Pokud získáme číslo 5, nebo větší zahodíme ho a proces opakujeme až do té doby než dosáhneme požadovaný výsledek. Formalizovaný postup výběru náhodného čísla v rozsahu 0,, n 1 pro n 2: Zvolme k tak, aby platila následující nerovnice: 2 k n. Generátorem PRNG vygenerujme k-bitové náhodné číslo K. Číslo K bude z rozsahu 0,, 2k 1. Nejjednodušší cesta, jak vygenerovat číslo větší o byte a pak číslo K zaokrouhlit na patřičnou velikost. Pokud je K n, pak je třeba se vrátit ke kroku 2. číslo K je požadované číslo, pokud je splněna platnost všech předchozích kroků. Uvedený postup má k dokonalosti daleko, už proto, protože se velmi plýtvá zdroji náhodných čísel.

82 V nejhorším možné případě zahodíme polovinu zdrojových dat. Zlepšení nabízí, pro 2 32 bitové číslo použít číslo , které je dělitelné 5 (2 5 = 32). To umožňuje zvolit náhodné číslo z rozsahu: Použití výše uvedené metody přináší podstatně menší ztráty, než ve výše uvedeném příkladu. Obecná definice vhodného k je založena na následujících vztazích: Pro požadované k, pro které platí, že 2 k n definujme q = 2 k /n. Jako první volbu náhodného čísla r z rozsahu hodnot 0,, nq 1. Splněním těchto podmínek, získáme touto metodou potřebné náhodné číslo r. Výsledek bude číslo, které obdržíme výpočtem r mod n. Solidní PRNG je vždy a za všech okolností vydatným zdrojem náhodných dat. Proto si můžeme dovolit používat uvedený algoritmus. Z návrhu PRNG generátoru FORTUNA je zřejmé, že v důsledku aritmetické expanze, pomocí hashovací funkce, dostáváme zdroj dostatečně vydatný i pro velmi zatížené systémy, které vyžadují velký objem náhodných čísel (SSL akcelerátory apod.). 3.6 ANSI X.9 generátory Tyto generátory jsou standardizovány NIST a jsou standardizovány pro použití v komerční sféře. Přísně vzato tento generátor byl navržen pro maloobchod a to již v roce To znamená, že jejich kvalita není dostatečná pro použití ve vládních bezpečnostních systémech, a ani to nikdy nebylo cílem. Tyto generátory jsou popsány v publikaci NIST Special Publication SP z března 2007 (zdroj: Pro tyto generátory je charakteristické, že jsou to čisté PRNG, využívající algoritmus DES pro vytváření pseudonáhodného zdroje dat. Jako první ukážeme funkci generátoru X Schéma generátoru je převzato z:( ) Obrázek principiální schéma generátoru X9.17 (obrázek převzat z publikace ) 6 6 Zde uvedené schéma nemá nic co do činění s CAPSTONE / FORTEZZA CPRNG. Pro tento generátor nebyly nikdy publikovány detaily řešení.

83 Ilustrace 6: schéma generátoru X9.17 Z obrázku je patrné, jak generátor funguje. Vstupem je zdroj času (Time), který je v základním nastavení vynulován (čítač). Nicméně je možné ho přenastavit na jinou hodnou. Randomizační funkce využívají algoritmus DES (Enc1 až Enc3). To je další slabina vedle generátoru času. Insitricky se zde předpokládá, že jednotlivé klíče budou utajeny, anebo zničeny. Z hlediska kvality výstupní sekvence pseudonáhodných bitů mu lze vytknout pouze to, že užívá algoritmus DES a ne nějakou vhodnou jednocestnou funkci (např.: hash SHA). Z pouhého návrhu je zřejmé, že tento generátor nemá sebemenší šanci uspět proti kvalitnímu kryptoanalytickému útoku. Je zde ještě jiná slabina a to použití algoritmu DES. Při zvláště nevhodné volbě je možné dosáhnout toho, že výstup nebude randomizován. Konečně, před útočníkem nejsou nijak skryty vnitřní stavy generátoru. Důkaz, že tento generátor není kvalitní, potvrzuje skutečnost, že ani jeden dostupný běžně produkt, který je považován, za alespoň průměrně kvalitní, ho nepoužívá. V rámci projektu CAPSTONE byl tento generátor pozměněn a to tak, že do návrhu byly přidány další bezpečnostní prvky jako hashování pomocí SHA-1 na výstupu a dodatečné vícenásobné zdroje entropie X CPRNG

84 Ilustrace 7: Schéma modifikovaného generátoru X9.17 (CAPSTONE / FORTEZZA) Ze schématu je patrné 7, že návrh vzal v potaz některé z výtek, které se po uveřejnění objevily. Především zbytečná složitost, relativní pomalost (DES nepatří mezi nejrychlejší algoritmy), malá odolnost oproti tamperingu, a v neposlední míře, i malé náhodnost vstupu, která je na závadu. Tím, že používá více zdrojů entropie, se zlepšuje odolnost proti manipulaci zdrojů entropie útočníkem. Oproti tomu Schneierův návrh tuto slabinu velmi dobře vyvažuje pooly entropie proti tomuto návrhu. Nevýhodou řešení je, že pro dosažení vysoké kvality výstupních dat potřebuje poměrně vydatný zdroj vstupní entropie. Tento problém je odstraněn v čipu FORTEZZA, který přímo používá integrovaný HW zdroj entropie. Bohužel, se mi nepodařilo, získat nějaké technické parametry tohoto zdroje. Podle některých zdrojů, CAPSTONE / FORTEZZA PRNG nebyl nikdy zcela veřejně publikován (P. Guttman). Zajímavé jsou provozní parametry tohoto řešení. Generátor pracuje s pevným zdrojem o délce 64 bitů. Výstupem je pak vektor o délce 224 bitů. Délka je volena s ohledem na to, že tento generátor byl navržen pro použití s algoritmem SKIPJACK, použitém ve zmíněném čipu FORTEZZA (ten ovšem používá zřejmě jiný algoritmus než DES). Délka 224 bitů představuje 3,5 násobek délky klíče a zřejmě byla, takto zvolena, s ohledem na možnou kryptoanalýzu zašifrovaného textu. Pro znesnadnění zjištění interních stavů útočníkem, counter o délce 48 bitů přidává do vstupního vektoru. Vektor mění v čase, čímž se zabrání tomu, aby útočník mohl zjistit interní stav generátoru za situace, kdy na vstupu není dostatečný objem entropie a tomu, aby se zjistil interní stav generátoru před hashováním. Řešení samozřejmě není odolné proti kompromitování SHA-1 kroku. Výstupem je pak pseudonáhodný vektor o délce Publikované schéma modifikovaného generátoru X9.17 (CAPSTONE / FORTEZZA) byl převzat z: << Schneier papers>>

85 bitů (20 B) X 9.31 CPRNG Schéma generátoru X931 uvádím pouze pro úplnost, protože se od předchozího řešení liší jen minimálně. Obrázek je převzat z << Vlastnosti a význam jednotlivých parametrů Ilu V inicializační vektor o délce 64 bitů. Inicializační vektor musí být udržen v tajnosti. DT 64 bitů. časový vektor (zahrnuje jak aktuální datum tak aktuální čas). Délka je rovněž

86 K Tajný klíč DES-EDE. Maximální délka odpovídá délce šifry DES 56 bitů Z diagramu je patrno, že vektor DT se inicializuje pokaždé, když je požadován výstupní vektor. Vlastní algoritmus je z hlediska kvality difuze a expanze poměrně dobrý. Někteří experti schéma považují za nedostatečně (P. Guttman, viz: Největší slabina je jednoznačně v nedostatečném zdroji vstupní entropie, který vlastně neexistuje. Zdá se, že NIST si možné napadení uvědomil (zjištění vnitřních stavů CPRNG) a změnil mírně návrh oproti X Návrh také neumožňuje se zotavit z kompromitace na rozdíl od návrhu CPRNG FORTUNA. 3.7 HW generátory HW generátory uvádím spíše pro informaci a porovnání s jejich SW protějšky. Jejich jednoznačnou výhodou je kompaktnost a větší odolnost vůči tamperingu. Reálná možnost zjistit vnitřní stavy generátoru je rovněž výrazně nižší. Pokud bychom chtěli dosáhnout kompromitování HW generátoru, museli bychom buď rozpouzdřit obvod a přímo ovlivňovat chování integrovaného obvodu, anebo sledovat chování na základě postranních kanálů. Druhá varianta se jeví méně pravděpodobná už proto, že lze získat interní stavy šifrovacího stroje a z toho zpětně odvodit výstupní vektor generátoru. Jako první je popsán generátor užitý v procesoru Intel Pentium III. Obrázek a některé části textu jsou převzaty z (

87 Ilustrace 9: HW generátor procesoru Intel Pentium(tm) III Generátor pracuje tak, že jako zdroj entropie používá tepelný šum na odporech uvnitř procesoru. Principiálně se příliš neliší od generátoru X Nabízí však lepší a vydatnější zdroj entropie. Zásobník vstupní entropie je realizován pomocí posuvného registru. Ten je pak randomizován pomocí SHA-1 hashe. Bohužel tento generátor za určitých podmínek může odhalit vnitřní stav generátoru a tím případnému útočníkovi odhalit klíčové informace. Děje se to tím, že informace z výstupu (tedy výstupní vektor) jsou znovu použity na vstupu. Dva bloky výstupu v délce 32-bitů jsou přítomny v každém vstupním vektoru. 4 Autentizační mechanizmy a algoritmy 4.1 Vlastnosti MAC V úvodu kapitoly byly uvedeny důvody, proč se zavádí MAC8 (Message Authentication Code). Vlastnosti mající ze své definice, nebo výhody které přinášejí jsou tyto: 8 Obrázek na následující straně představuje funkční schéma sdílení a používání MAC. Obrázek je převzat z a překonvertován do formátu *.png.

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

Š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

Š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

Š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

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

Š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

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

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

212/2012 Sb. VYHLÁŠKA

212/2012 Sb. VYHLÁŠKA 212/2012 Sb. VYHLÁŠKA ze dne 13. června 2012 o struktuře údajů, na základě kterých je možné jednoznačně identifikovat podepisující osobu, a postupech pro ověřování platnosti zaručeného elektronického podpisu,

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

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

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

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

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

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

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

Bezpečnostní normy a standardy KS - 6

Bezpečnostní normy a standardy KS - 6 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Bezpečnostní normy a standardy KS - 6 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 Osnova historický

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

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

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

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

496/2004 Sb. VYHLÁŠKA Ministerstva informatiky ze dne 29. července 2004 o elektronických podatelnách

496/2004 Sb. VYHLÁŠKA Ministerstva informatiky ze dne 29. července 2004 o elektronických podatelnách 496/2004 Sb. VYHLÁŠKA Ministerstva informatiky ze dne 29. července 2004 o elektronických podatelnách Ministerstvo informatiky stanoví podle 20 odst. 4 zákona č. 227/2000 Sb., o elektronickém podpisu a

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

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

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

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

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

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

Diffieho-Hellmanův protokol ustanovení klíče Diffieho-Hellmanův protokol ustanovení klíče Andrew Kozlík KA MFF UK Diffieho-Hellmanův protokol ustanovení klíče (1976) Před zahájením protokolu se ustanoví veřejně známé parametry: Konečná grupa (G,

Více

MFF UK Praha, 22. duben 2008

MFF UK Praha, 22. duben 2008 MFF UK Praha, 22. duben 2008 Elektronický podpis / CA / PKI část 1. http://crypto-world.info/mff/mff_01.pdf P.Vondruška Slide2 Přednáška pro ty, kteří chtějí vědět PROČ kliknout ANO/NE a co zatím všechno

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

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

Kryptografie založená na problému diskrétního logaritmu Kryptografie založená na problému diskrétního logaritmu Andrew Kozlík KA MFF UK Diffieho-Hellmanův protokol ustanovení klíče (1976) Před zahájením protokolu se ustanoví veřejně známé parametry: Konečná

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

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

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

Č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

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

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

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

Návrh a implementace bezpečnosti v podnikových aplikacích. Pavel Horal

Návrh a implementace bezpečnosti v podnikových aplikacích. Pavel Horal Návrh a implementace bezpečnosti v podnikových aplikacích Pavel Horal Kryptologie nauka zkoumající metody dosažení cílů informační bezpečnosti důvěrnost, integrita, autenticita,

Více

Robert Hernady, Regional Solution Architect, Microsoft

Robert Hernady, Regional Solution Architect, Microsoft Robert Hernady, Regional Solution Architect, Microsoft Agenda prezentace Seznámení s problematikou Principy elektronického podpisu Certifikáty Co je třeba změnit pro využití algoritmů SHA-2 Shrnutí nutných

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

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

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

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

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

Architektura počítačů

Architektura počítačů Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem

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

Technická komise ISO/JTC1/SC 27 Technická normalizační komise ÚNMZ TNK 20

Technická komise ISO/JTC1/SC 27 Technická normalizační komise ÚNMZ TNK 20 ČSN ISO/IEC 7064 Information technology -- Security techniques -- Check character systems Zpracování dat. Systémy kontrolních znaků ČSN BS 7799-2 Information Security Management Systems -- Specification

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

Zabezpečení citlivých dat informačních systémů státní správy. Ing. Michal Vackář Mgr. Boleslav Bobčík

Zabezpečení citlivých dat informačních systémů státní správy. Ing. Michal Vackář Mgr. Boleslav Bobčík Zabezpečení citlivých dat informačních systémů státní správy Ing. Michal Vackář Mgr. Boleslav Bobčík Citlivá data? Co to je? Kde to je? Kdo to za to odpovídá? Jak je ochránit? Jak se z toho nezbláznit

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

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

MARIE PACS S PACSem hezky od podlahy když se data sypou!

MARIE PACS S PACSem hezky od podlahy když se data sypou! MARIE PACS S PACSem hezky od podlahy když se data sypou! Telemedicína, Brno, 3. března 2014 RNDr. Milan Pilný MARIE PACS Je to systém pro práci s obrazovými DICOM daty v medicíně. Je klasifikován jako

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

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

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

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

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

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

Jako příklady typicky ch hrozeb pro IT lze uvést: Útok

Jako příklady typicky ch hrozeb pro IT lze uvést: Útok Bezpečnost - úvod Zranitelné místo Slabinu IS využitelnou ke způsobení škod nebo ztrát útokem na IS nazýváme zranitelné místo. Existence zranitelných míst je důsledek chyb, selhání v analýze, v návrhu

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

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

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

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

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

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM č. 2. Název veřejné zakázky: Dodávka SAN switchů včetně příslušenství pro datová centra

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM č. 2. Název veřejné zakázky: Dodávka SAN switchů včetně příslušenství pro datová centra Zadavatel: Česká republika Ministerstvo zemědělství Název veřejné zakázky: Dodávka SAN switchů včetně příslušenství pro datová centra Sídlem: Těšnov 65/17, 110 00 Praha 1 Nové Město Evidenční číslo veřejné

Více

MFF UK Praha, 29. duben 2008

MFF UK Praha, 29. duben 2008 MFF UK Praha, 29. duben 2008 Standardy a normy (informace o předmětu) http://crypto-world.info/mff/mff_04.pdf P.Vondruška Slide2 Úvod 1. RFC (Request For Comment) 2. Standardy PKCS (Public-Key Cryptographic

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

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Důvod zavedení RAID: reakce na zvyšující se rychlost procesoru. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem.

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

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

BEZPEČNOST IS. Ukončení předmětu: Předmět je zakončen zkouškou sestávající z písemné a doplňkové ústní části.

BEZPEČNOST IS. Ukončení předmětu: Předmět je zakončen zkouškou sestávající z písemné a doplňkové ústní části. BEZPEČNOST IS Předmět Bezpečnost IS je zaměřen na bezpečnostní aspekty informačních systémů a na zkoumání základních prvků vytváření podnikového bezpečnostního programu. Má představit studentům hlavní

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

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

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

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Základní myšlenka: snaha o zpracování dat paralelně. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem. Řešení: data

Více

Hashovací funkce. Andrew Kozlík KA MFF UK

Hashovací funkce. Andrew Kozlík KA MFF UK Hashovací funkce Andrew Kozlík KA MFF UK Hashovací funkce Hashovací funkce je zobrazení h : {0, 1} {0, 1} n. Typicky n {128, 160, 192, 224, 256, 384, 512}. Obraz h(x) nazýváme otisk, hash nebo digest prvku

Více

Data Encryption Standard (DES)

Data Encryption Standard (DES) Data Encryption Standard (DES) Andrew Kozlík KA MFF UK Šifra DES DES je bloková šifra, P = C = {0, 1} 64 Klíče mají délku 64 bitů, ale jen 56 bitů je účinných: K = { b {0, 1} 64 8 i=1 b i+8n 1 (mod 2),

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

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

Kvantové algoritmy a bezpečnost. Václav Potoček

Kvantové algoritmy a bezpečnost. Václav Potoček Kvantové algoritmy a bezpečnost Václav Potoček Osnova Úvod: Kvantové zpracování informace Shorův algoritmus Kvantová distribuce klíče Post-kvantové zabezpečení Úvod Kvantové zpracování informace Kvantový

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

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

Cryptelo je systém kompletně navržený a vyvinutý přímo naší společností. Aplikace šifrování do běžné praxe. Cryptelo chrání přímo vaše data

Cryptelo je systém kompletně navržený a vyvinutý přímo naší společností. Aplikace šifrování do běžné praxe. Cryptelo chrání přímo vaše data Cryptelo Drive Cryptelo Drive je váš virtuální disk, kam můžete ukládat ta nejcitlivější data. Chraňte dokumenty, smlouvy, podnikové know-how, fotografie, zkrátka cokoliv, co má být v bezpečí. Data v Cryptelu

Více

HSM a problémy s bezpečností API Masarykova univerzita v Brně Fakulta informatiky

HSM a problémy s bezpečností API Masarykova univerzita v Brně Fakulta informatiky HSM a problémy s bezpečností API Masarykova univerzita v Brně Fakulta informatiky Jan Krhovják Daniel Cvrček Vašek Matyáš Shrnutí Úvod Motivace Základní terminologie Architektura Bezpečnostní požadavky

Více

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

Projekt 2 - Nejčastější chyby. Ing. Dominik Breitenbacher Projekt 2 - Nejčastější chyby Ing. Dominik Breitenbacher ibreiten@fit.vutbr.cz Projekt 2 - Nejčastější chyby Překlepy a interpunkce Estetika Kvalita obrázků Zdrojové kódy v textu Text nebyl rozdělen na

Více

Bezpečný JPEG2000. 1. Úvod 2. JPEG2000. 2.1. Vlastnosti JPEG2000 2006/47 21.11.2006

Bezpečný JPEG2000. 1. Úvod 2. JPEG2000. 2.1. Vlastnosti JPEG2000 2006/47 21.11.2006 Bezpečný JPEG2000 Ing. Kamil Bodeček, Ing. Petr Daněček, Prof. Ing. Kamil Vrba, CSc. Ústav telekomunikací, FEKT VUT Brno kamil.bodecek@phd.feec.vutbr.cz, danecek.petr@email.cz, vrbak@feec.vutbr.cz Rozšířením

Více

Osnova přednášky. Seznámení s asymetrickou kryptografií, díl 2. Podpisová schémata -elementární principy- (1)

Osnova přednášky. Seznámení s asymetrickou kryptografií, díl 2. Podpisová schémata -elementární principy- (1) Seznámení s asymetrickou kryptografií, díl 2. Ing. omáš Rosa ICZ a.s., Praha Katedra počítačů, FEL, ČVU v Praze tomas.rosa@i.cz Osnova přednášky elementární principy, schéma s dodatkem metody RSA, DSA,

Více

Není cloud jako cloud, rozhodujte se podle bezpečnosti

Není cloud jako cloud, rozhodujte se podle bezpečnosti Není cloud jako cloud, rozhodujte se podle bezpečnosti Marcel Jánský Manažer útvaru produktů a podpory prodeje 26. 2. 2013 České Radiokomunikace Vysílací služby Profesionální telekomunikační operátor Poskytovatel

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

POPIS STANDARDU. Norma název (cz):dopravní a cestovní informace (TTI) TTI zprávy pomocí celulárních sítí Část 6: Vnější služby (ISO/DTR :2000)

POPIS STANDARDU. Norma název (cz):dopravní a cestovní informace (TTI) TTI zprávy pomocí celulárních sítí Část 6: Vnější služby (ISO/DTR :2000) ENV 14821-6 - TTI TTI zprávy pomocí mobilních sítí Část 5: Vnitřní služby POPIS STANDARDU CEN TC278/WG4 Oblast: TTI Zkrácený název: Zprávy přes CN 6 Norma číslo: prenv ISO 14821-6 Norma název (en): Traffic

Více

Výsledky bezpečnostního auditu TrueCryptu. Ing. Josef Kokeš. CryptoFest 2015

Výsledky bezpečnostního auditu TrueCryptu. Ing. Josef Kokeš. CryptoFest 2015 Výsledky bezpečnostního auditu TrueCryptu Ing. Josef Kokeš CryptoFest 2015 Obsah TrueCrypt Bezpečnostní audity TrueCryptu Audit č. 1 Audit č. 2 Zhodnocení Diskuse TrueCrypt Populární nástroj pro šifrování

Více

Bezpečnost IS. Základní bezpečnostní cíle

Bezpečnost IS. Základní bezpečnostní cíle Bezpečnost IS Informační bezpečnost ochrana informace a uchování bezpečnostních atributů informace Důvěrnost, Integrita, Dostupnost, Autentičnost, Spolehlivost? Informace představují majetek s určitou

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním 35.240.60 materiálem o normě. Dopravní telematika Dopravní telematika Elektronický výběr poplatků Směrnice

Více

Více úrovňové informační systémy a jejich certifikace podle zákona č.412/2005 Sb.

Více úrovňové informační systémy a jejich certifikace podle zákona č.412/2005 Sb. Více úrovňové informační systémy a jejich certifikace podle zákona č.412/2005 Sb. Vyhláška č. 523/2005 Sb., o bezpečnosti informačních a komunikačních systémů a dalších elektronických zařízení a o certifikaci

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

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