FAKULTA INFORMAČNÍCH TECHNOLOGIÍ
|
|
- Karolína Pešková
- před 7 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS GPU AKCELEROVANÉ PROLAMOVÁNÍ ŠIFER DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR Bc. JAN SCHMIED BRNO 2014
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS GPU AKCELEROVANÉ PROLAMOVÁNÍ ŠIFER GPU ACCELERATED CRACKING OF CIPHERS DIPLOMOVÁ PRÁCE MASTER S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. JAN SCHMIED Ing. VLADIMÍR VESELÝ BRNO 2014
3 Abstrakt Tato práce se zabývá popisem jednosměrných hešovacích funkcí a kryptografických algoritmů. Také zkoumá jejich implementaci pro využití k zašifrování obsahu souborů formátů DOC, PDF a ZIP pomocí uživatelského hesla. Následně jsou tyto implementace podrobeny analýze a jsou navrženy postupy jak pomocí brute-force útoku tato zabezpečení prolomit s využitím GPU Abstract This work describes one-way hash functions and cryptographic algorithms. It also describes their implementation regarding DOC, PDF and ZIP files contents encryption. Subsequently, the implementation analyzis is provided. Following next, the brute-force attack procedure levereging GPU is proposed and evaluated Klíčová slova hešovací funkce, kryptografie, generování klíčů, útoky, OpenCL, GPU, PDF, ZIP, DOC Keywords hash functions, cryptography, key derivation functions, attacks, OpenCL, GPU, PDF, ZIP, DOC Citace Jan Schmied: GPU akcelerované prolamování šifer, diplomová práce, Brno, FIT VUT v Brně, 2014
4 GPU akcelerované prolamování šifer Prohlášení Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně pod vedením pana Ing. Vladimíra Veselého Jan Schmied 22. května 2014 Poděkování Tímto receptem bych rád poděkoval svému vedoucímu Ing. Vladimíru Veselému za odborné vedení a pomoc při psaní této práce a také za poskytnutí potřebného vybavení. Lasagne s kuřecím masem a špenátem Krabice lasagní (asi 20 ks, tj. 5 vrstev po 4 ks), 4 kuřecí prsní řízky (nebo 5 menších), cca 300g čerstvého špenátu, 1 menší cibule, česnek (alespoň 5 velkých stroužků), olej, cca 250g sýru niva, sůl, pepř, koření na maso (dle chuti), 1l mléka, 70g másla, 70g hladké mouky. Z mouky, másla a mléka uvaříme bešamel. Maso nakrájíme na velmi malé kousky. Na oleji zpěníme drobně nakrájenou cibuli, přidáme maso, opražíme, osolíme, opepříme, přidáme koření, podlijeme trochou vody a dusíme pod pokličkou asi 20 minut. Špenát opereme, zbavíme stonků a připravíme si hrnec s vodou na spaření špenátu. Pekáč vymažeme máslem a postupně vrstvíme: Bešamel, horkou vodou protažené lasagne, masovou směs, krátce spařené listy špenátu (spařujeme vždy jen množství na 1 vrstvu, jinak zhadrovatí ), ty posypeme strouhanou nivou a nasekaným česnekem. Pak dáváme další vrstvy lasagní, masa, špenátu,.... Na poslední vrstvu lasagní dáme vrstvu bešamelu a strouhané nivy. Pečeme asi hodinu na 180 C. c Jan Schmied, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.
5 Obsah 1 Úvod 3 2 Hešovací funkce MD SHA SHA SHA SHA Klíčované hešovací funkce Časová a prostorová složitost Rychlost výpočtu a možnost paralelizace Kryptografické algoritmy RC DES a 3DES AES Režimy blokových šifer ECB CBC CTR Generování klíčů PBKDF PBKDF bcrypt scrypt Aplikace kryptografických prostředků IPSec ZIP PKZIP Stream Cipher Strong encryption PDF MS Word OpenCL Model platformy Exekuční model
6 6.3 Paměťový model Programovací model Využití pro brute-force úlohy Návrh frameworku Generátory hesel Brute-force generátor Slovníkový generátor Crackery CPU GPU Modularita Formáty PDF ZIP DOC Implementace Jádro Generátory Načítání formátů Crackování na CPU Crackování na GPU Spouštění a monitoring Moduly PDF ZIP DOC Aplikace Překlad Výkonnost Testovací sestava Výsledky PDF DOC ZIP Závěr Rozšíření A Obsah CD 55 2
7 Kapitola 1 Úvod Informace jsou důležitou součástí lidské činnosti. Informace mají hodnotu a dokáží přinést zisk i změnit běh dějin. Proto je nutné citlivé informace chránit proti prozrazení případnému nepříteli a také zabránit podvržení falešné informace nepřítelem. Vědní obor, který se tímto zabývá, se nazývá kryptografie. Kryptografie je stará několik tisíc let. Nejznámější šifra je Caesarova šifra, která používá posunutí znaků ve zprávě o 3 znaky v abecedě (z A udělá D). Tento princip nebyl příliš bezpečný, protože postrádal klíč, a tak prozrazení principu vedlo k prozrazení všech zpráv zašifrovaných touto metodou. V 19. století dánský kryptograf Kerckhoffs definoval princip, podle kterého musí být šifrování závislé pouze na utajení klíče, a ne na utajení algoritmu. Podle tohoto principu se navrhují moderní kryptografické algoritmy. Ty navíc musejí splňovat i to, aby dešifrování zprávy bez znalosti klíče nebylo rychlejší než vyzkoušení všech možných klíčů. Nesmí tedy obsahovat chyby, které by umožňovaly analytické útoky. Jak se zvyšuje výkon počítačů, a podle Mooreova zákona se každých 18 měsíců zdvojnásobí výpočetní výkon, je stále nutné udržovat prostor pro klíče k šifrám mimo mez, kdy je čas, potřebný k projití celého prostoru, přijatelný. Mooreův zákon také znamená, že každých 18 měsíců jsme schopni za stejný čas prolomit klíče o 1 bit delší. Klíče pro šifry je vždy možné prodloužit, nebo použít algoritmus s delším klíčem. Problém nastává v situaci, kdy je klíč generován z hesla, které zadává uživatel. Tyto hesla nelze prodlužovat (schopnost pamatovat si delší hesla u uživatelů neroste). Tato vlastnost proto láká útočníky k brute-force útokům a zároveň motivuje návrháře, aby útočníky od těchto útoků odradili. Všechny tyto problémy popisuje tato práce a také jejich možná řešení tak, jak byla navržena bezpečnostními a standardizačními úřady. Zaměřuje se také na efektivnost implementace těchto řešení v prostředí OpenCL, které umožňuje běh programu na GPU. V druhé kapitole se zaměříme na popis hešovacích funkcí a ve třetí na kryptografické algoritmy. Čtvrtá kapitola se zabývá generováním klíčů z hesel. V páté kapitole se podíváme na některé aplikace používající šifrování. V šesté pak na framework pro akceleraci na GPU - OpenCL. Sedmá kapitola popisuje návrh systému na prolamování zabezpečených formátů a osmá se zabývá jeho implementací. V deváté kapitole jsou uvedeny rychlosti crackování a doba nutná k prolomení různých hesel. 3
8 Kapitola 2 Hešovací funkce Hešovací funkce je matematická funkce, která vypočte kryptograficky bezpečný kontrolní součet. Ten se používá převážně k autentizaci. Klasický kontrolní součet jako například CRC není kryptograficky bezpečný, protože nesplňuje všechny následující požadavky na hešovací funkci f(x). 1. Pro f(x) platí, že je aplikovatelná pro x libovolné velikosti. 2. Výstup f(x) má konstantní délku pro všechny vstupy (128bitů, 160bitů,... ). 3. f(x) lze rychle vypočítat. 4. Pro dané y je výpočetně nezvládnutelné nalézt takové x pro které platí f(x) = y. (first preimage resistance) 5. Pro dané x je výpočetně nezvládnutelné nalézt takové x, x <> x, aby platilo f(x ) = f(x). (second preimage resistance) 6. Je výpočetně nezvládnutelné nalézt takové x, x,x <> x, aby platilo f(x ) = f(x). (collision resistance) Body 5. a 6. vypadají velmi podobně, ale jejich rozdíl je v tom, že pro collision resistance, si mohu oba vstupy zvolit, kdežto pro second preimage resistnace mám jeden vstup pevně definován. Klasický kontrolní součet tedy splňuje pouze první tři požadavky. Pro zbylé tři požadavky jsme v případě CRC schopni nalézt neshodu ihned v bodě 4, kdy jsme schopni si podle CRC vygenerovat vstupní data (nebudou to ta data jako na vstupu, ale se shodnou CRC), a tím také porušit i další požadavky. Základní problém je v tom, že CRC bylo navrženo pro odhalování neúmyslných chyb při přenosu dat. Neumožňuje tedy zabránit úmyslné modifikaci dat, která budou i po modifikaci mít shodné CRC. Proto musely vzniknout kryptograficky bezpečné hešovací funkce, které všechny tyto vlastnosti splňují, alespoň po určitou dobu, než je objevena jejich zranitelnost (převážně v bodě 6). Ta je způsobena obrovským množstvím kolizí, které tyto funkce generují, ale jejich nalezení nesmí být rychlejší než projití všech možných kombinací vstupu. Pro funkci, která má výstup o velikosti 160 bitů má stavový prostor výstupu velikost 2 160, a proto nalezení kolize nesmí být rychlejší než pokusů. Ve skutečnosti stačí pouze 2 80 pokusů, díky narozeninovému paradoxu[20]. 4
9 Takováto funkce vygeneruje obrovské množství kolizí už pro malé vstupy. Uvažme všechny možné vstupy o délce 1000bitů (tedy 125 znaků) což nám dává stavový prostor o velikosti Pokud všechny tyto vstupy zahešujeme funkcí s výstupem o délce 160bitů dostaneme kolizí, což není málo. Těmito funkcemi se hešují i několik GB velké soubory, kde kolizí je exponenciálně více, a přesto nesmíme být schopni v rozumném čase nalézt ani jedinou. V následujícím textu se zaměříme na hrubý popis algoritmů MD5, SHA-1 a SHA-2. Tyto algoritmy jsou postaveny na Merkle Damgârd konstrukci hešovacích funkcí. Nový (zatím nestandardizovaný) algoritmus SHA-3/Keccak ovšem není založen na této konstrukci, ale na novém principu zvaném Sponge Construction, který je odolný proti některým analytickým útokům. 2.1 MD5 Funkce MD5(Message Digest) vychází ze starší funkce MD4. S touto funkcí je principiálně shodná a liší se pouze použitými logickými funkcemi, rotacemi a inicializačními vektory (IV). MD5 nikdy nebylo schváleno NIST 1, a proto neexistuje FIPS 2 publikace, která by ho standardizoval, vychází tedy čistě z návrhu jeho autorů. MD5 nejprve za zprávu doplní jeden bit 1 a poté doplňuje 0 dokud není délka zprávy modulo 512 rovna 448. Přidání bitu 1 odliší zprávy 1 a 10. Poté doplní 8 bajtů s délkou textu před zarovnáním jedničkou a nulami. Může se zdát, že jsme porušili podmínku, že f(x) musí být aplikovatelná na x libovolné délky, ale tato hodnota je délka vstupu modulo Délka je tedy neomezená. Takto zarovnanou zprávu rozdělíme do 512bitových bloků, kde každý zpracováváme samostatně, ale výsledek zpracování předchozího bloku potřebujeme znát pro zpracování následujícího. Blok následně rozdělíme do 16 32bitových bloků. Inicializujeme vnitřní stav A-D pomocí definovaných inicializačních vektorů. Následně aplikujeme kompresní funkci v 64 kolech. Výsledek přičteme k vnitřnímu stavu, a poté pokračujeme dalším 512bitovým blokem. Na obrázku 2.1 je znázorněno jedno kolo funkce MD5. A, B, C, D obsahuje vnitřní stav. M i je jedna 32bitová část hešovaného vstupu. K i je definovaná konstanta. F je kompresní funkce (celkem čtyři různé funkce pro různá kola). <<< S je rotace vlevo o S bitů, kde S je v každém kole definováno. 2.2 SHA-1 SHA-1 (Secure Hash Algorithm) vychází z funkce MD5 a proto zde popíšeme jen rozdíly mezi těmito funkcemi. SHA-1 je schválen NIST v publikaci FIPS-180-4[18]. Začátek algoritmu je téměř shodný, obsahuje také zarovnání, ovšem doplněná délka již není modulo 2 64 ale maximálně Tímto krokem jsme tedy opravdu porušili požadavek, že hešovací funkce musí být aplikovatelná na vstup libovolné délky. Avšak tato hodnota je tak vysoká (2EiB ), že je prakticky aplikovatelná na libovolnou délku. Následuje rozdělení na 512bitové bloky, a ty jsou dále rozděleny na 16 32bitových bloků jako v případě MD5. Kompresní funkce, inicializační vektory, konstanty, počet kol a jedno kolo se ovšem liší. SHA-1 obsahuje 80 kol. Vnitřní stav je 160 bitů, místo National Institute of Standards and Technology - americký úřad pro standardy 2 Federal Information Processing Standards - standardy pro zpracování dat v počítačovém systému 5
10 A B C D F Mi Ki <<< s A B C D Obrázek 2.1: Jedno kolo algoritmu MD5 u MD5. Jeden vstupní blok bajtů je rozšířen pomocí XOR a rotací na blok 80 x 32 bajtů. Prvních 16 bloků obsahuje vstup, zbytek je vygenerován z těchto prvních 16bloků. A B C D E F <<< 5 <<< 30 W t K t A B C D E Obrázek 2.2: Jedno kolo algoritmu SHA-1 Na obrázku 2.2 je znázorněno jedno kolo funkce SHA-1. A, B, C, D, E obsahuje vnitřní stav. F je kompresní funkce (čtyři různé funkce pro kola 1-20, 21-40, 41-60, 61-80). <<< x je rotace vlevo o x bitů. W t je jeden 32bitový blok z pole, generovaného ze vstupních bloků. K t je konstanta pro každé kolo (čtyři různé konstanty pro kola 1-20, 21-40, 41-60, 61-80). 6
11 2.3 SHA-2 SHA-2 není pouze jeden algoritmus jako MD5 nebo SHA-1, ale celá skupina algoritmů s různou délkou výstupu. Stejně jako SHA-1 je schválen NIST v publikaci FIPS-180-4[18]. SHA délka výstupu 256 bitů, 63 kol, blok 512 bitů SHA délka výstupu 224 bitů, 63 kol, blok 512 bitů (shodný s SHA-256, rozdíl v inicializačních vektorech a výstup je zkrácen na 224bitů) SHA délka výstupu 512 bitů, 80 kol, blok 1024 bitů, 64bitové operace SHA délka výstupu 384 bitů, 80 kol, blok 1024 bitů, 64bitové operace (shodný s SHA-512, rozdíl v IV a výstup je zkrácen na 384bitů) SHA-512/256 - délka výstupu 256 bitů, 80 kol, blok 1024 bitů, 64bitové operace (shodný s SHA-512, rozdíl v IV a výstup je zkrácen na 256bitů) SHA-512/224 - délka výstupu 224 bitů, 80 kol, blok 1024 bitů, 64bitové operace (shodný s SHA-512, rozdíl v IV a výstup je zkrácen na 224bitů) SHA-512/t - délka výstupu t-bitů, 80 kol, blok 1024 bitů, 64bitové operace (shodný s SHA-512, rozdíl v IV a výstup je zkrácen na t-bitů) A B C D E F G H W t Ch K t Σ1 Ma Σ0 A B C D E F G H Obrázek 2.3: Jedno kolo algoritmu SHA-2 Na obrázku 2.3 je znázorněno jedno kolo funkce SHA-2. A, B, C, D, E, F, G, H je vnitřní stav. Ch a Ma jsou kompresní funkce. 0 a 1 jsou funkce, které provádí rotace a XOR vstupu. W t je hodnota z pole generovaného pro každé kolo ze vstupního bloku. K i je konstanta (63/80 konstant pro každé kolo jiná). 7
12 2.3.1 SHA-256 Algoritmus obsahuje 63 kol a velikost bloku je 512 bitů. Zarovnání se tedy provádí stejně jako v případě SHA-1/MD5 na 448 bitů modulo 512, zbytek se opět doplní délkou v bitech. A vstup se opět rozdělí na 16 32bitové bloky. Pokud je využita varianta s výstupem o délce 224bitů, jsou použity jiné inicializační vektory pro vnitřní stav A-H. Jinak by se jednalo pouze o zkrácenou verzi SHA-256 (jako bychom zkrátili SHA-1 na 128bitů). IV pro SHA-256 jsou vygenerovány z prvních 32bitů desetinné části odmocniny z prvních 8 prvočísel [18]. Tvorba IV pro SHA-224 není popsána a tyto IV jsou uvedeny ve standardu SHA-512 Algoritmus obsahuje 80 kol a velikost bloku je 1024 bitů. Zarovnání se provádí stejným principem, ale zarovnává se na délku 896 bitů modulo Zbytek se doplní délkou vstupu před zarovnáním, a délka je tedy 128bitová (délka vstupu může být tedy = pro takovou velikost neexistuje předpona v soustavě SI). Blok je rozdělen na 16 64bitových bloků. Je tedy nutné použít 64bitovou aritmetiku a také všechny konstanty a IV jsou 64bitové. Algoritmus je tedy vhodné provádět na 64bitovém procesoru. Inicializační vektory (8 vektorů) jsou vygenerovány, jako prvních 64 bitů desetinné části odmocniny z prvních 8 prvočísel [18]. Varianta SHA-512/t používá jiné inicializační vektory, které se generuje funkcí pro generování inicializačních vektorů, která přijímá t jako parametr. Funkce modifikuje IV dané pro SHA-512 pomocí SHA-512 [18]. Z původních vektorů se vytvoří upravené jako XOR všech původních 64bitových částí IV s hodnotou 0xa5a5a5a5a5a5a5a5. Upravené vektory se použijí jako IV pro zahešování textu SHA-512/t (za t se dosadí varianta) funkcí SHA-512. Výsledek jsou inicializační vektory pro funkci SHA-512/t. Po výpočtu funkce SHA-512/t je výstup zkrácen na t bitů. Za t lze dosadit libovolnou hodnotu menší než 512 a hodnota 384 je zakázána. Ve standardu jsou explicitně uvedeny IV pro SHA-512/256 a SHA-512/224, ale tyto vektory lze spočítat i pomocí výše zmíněné funkce. Pro SHA-384 jsou definovány IV jako prvních 64 bitů desetinné části odmocniny z 9. až 16. prvočísla [18]. 2.4 Klíčované hešovací funkce MAC (Message Authentication Code) se používá v symetrické kryptografii pro podpis dat tajným klíčem. Jedná se tedy o funkci f(msg, key). Výsledek této funkce tedy není závislý pouze na vstupní zprávě, ale i na použitém klíči. Tyto funkce je možné vytvořit z blokových šifer v režimu CBC (CBC-MAC), kdy se celá zpráva zašifruje klíčem key a jako MAC se použije (zkrácený) výsledek posledního bloku. Tato varianta má některé bezpečnostní nedostatky (blokové šifry byly navrženy pro jiné účely), a proto existují vylepšené varianty jako OMAC nebo CMAC. MAC funkce je také možné vytvořit z hešovacích funkcí, tento princip se nazývá HMAC (Keyed-hash Message Authentication Code). Standard definuje použití algoritmů MD5, SHA-1 a RIPEMD. Algoritmus SHA-2 není ve standardu uveden, protože v době standardizace neexistoval, ale nic nebrání jeho použití, protože standard HMAC je velmi obecný a bude použitelný i pro SHA-3 nebo libovolnou kryptografickou hešovací funkcí. Varianta algoritmu se označuje jako HMAC-h-t, kde h označuje použitý hešovací algoritmus a t délku výstupu, pokud není uvedena, je délka výstupu shodná s výstupem hešovací funkce. Příklad 8
13 takového zápisu je HMAC-MD5 nebo HMAC-SHA1-80 pro zkrácení výstupu na 80 bitů[13]. Funkce HMAC je definována ve vzorci 2.1 ( HMAC H (msg, key) = H (key opad) H ( (key ipad) msg )) (2.1) H je hešovací funkce key je autentizační klíč, pokud délka key > delka bloku H pak key = H(key) msg je zpráva k podepsání je operace XOR je konkatenace opad je vnější zarovnání (outer padding), které má hodnotu 0x5c5c5c... 5c o délce bloku funkce H ipad je vnitřní zarovnání (inner padding), které má hodnotu 0x o délce bloku funkce H Z popisu je jasné, že vstup hešovací funkce H bude mít vždy velikost minimálně 2 bloky kvůli zarovnání o délce jednoho bloku a konkatenací se zprávou. Pokud chceme výstup zkrátit, použijeme pouze prvních t bitů výstupu. Toto zkrácení nemá jednoznačnou bezpečnostní výhodu nebo nevýhodu. Výhodou je menší počet bitů, ze kterých může útočník získat méně informací a nevýhodou menší počet bitů, které musí útočník předvídat. Zároveň je doporučeno nezkracovat výstup na méně než polovinu délky výstupu funkce H[13]. 2.5 Časová a prostorová složitost Nyní se zaměříme na časovou a prostorovou složitost uvedených hešovacích funkcí, na jejich zjednodušení pro určité typy a časy potřebné k projití celého stavového prostoru těchto funkcí. Nebudeme uvažovat žádné analytické útoky na tyto heše, ale zaměříme se na bruteforce útok. Pokud útočíme na hešovaná hesla, lze využít pouze chybu v algoritmu v požadavku 4 (first preimage resistance). Takovouto chybu ovšem žádný algoritmus neobsahuje. Pro bod 5 bychom toto heslo museli znát a není tedy důvod útočit silou, když toto heslo známe. Bod 6 nám umožňuje si oba vstupy zvolit a nalézt kolizi, ale my známe pouze výstup. Všechny předchozí heše využívají Merkle Damgârd konstrukci, která se vždy skladá z preprocesingu, rozdělení na bloky a zpracování každého bloku. V preprocessingu se vstup zarovná a doplní se délka. A každý blok se zpracovává konstantní počtem kol. Můžeme tedy odvodit časovou složitost takového algoritmu. Algoritmus Merkle Damgârd je uveden v algoritmu 1. Preprocessing(1) má konstantní časovou složitost (závisí na principu měření délky vstupu - max O(n)). Bloky buď můžeme rozdělit před započetím cyklů(2) (O(n)), nebo si v cyklu pro zpracování blok zkopírujeme do bufferu (O(1)). Inicializujeme heš inicializačními vektory(3) (O(n)). Následně musíme zpracovat všechny bloky(4) (O(n)) konstantním počtem kol pro daný algoritmus(7) (O(1)). Výsledná časová složitost je tedy pro všechny algoritmy O(n), vzhledem k délce vstupu. Což odpovídá požadavku, že f(x) musí byt rychle vypočitatelná. 9
14 Algoritmus 1: Merkle Damgârd Hash Input: msg Output: hash 1: preprocessing 2: rozděl msg na b bloků o délce n 3: hash = IV 4: for b i = 1 to b do 5: stav = hash 6: for k i = 1 to k do 7: jedno kolo algoritmu 8: end for 9: hash = hash + stav 10: end for 11: return hash Pokud se ovšem zaměříme na brute-force útok například na hešovaná hesla, můžeme omezit délku vstupu na maximálně jeden blok (pokud je heš proveden pomocí HMAC tak 2 bloky). Hesla, která se vměstnají do jednoho bloku, mají délku 440(888 v případě SHA-512) bitů tedy 55(111) znaků, což jsou velmi dlouhá hesla a v praxi se používají mnohem kratší. Délka bloku je o 8 bitů kratší kvůli zarovnání hodnotou 0x80. Takto upravený (omezený) algoritmus má tedy časovou složitost O(1), protože vždy zpracujeme jeden (nebo dva) blok(y). Nyní se zaměříme na prostorovou složitost. Pro uložení vstupu je zapotřebí O(n). Poté už algoritmy pracují s konstantní prostorovou složitostí. Vnitřní stav má konstantní velikost, definovanou pro každý algoritmus. Celková prostorová složitost je tedy O(n) vzhledem k délce vstupu. Pokud opět upravíme algoritmus, aby zpracovával pouze jeden (nebo dva) blok(y), tak získáme prostorovou složitost O(1), protože vždy bude pro vstup zapotřebí právě jeden blok o konstantní velikosti Rychlost výpočtu a možnost paralelizace Rychlost jednotlivých algoritmů je brána z výsledků benchmarku knihovny Crypto++[2]. x86 x86-64 Algo. MiB/s bloků/s projití 2 n MiB/s bloků/s projití 2 n MD , roků , roků SHA , roků , roků SHA , roků , roků SHA , roků , roků Tabulka 2.1: Rychlosti hešovacích funkci Tyto výsledky vypadají beznadějně a tragicky. Je jasné, že projití prostoru 2 n není v silách dnešních počítačů a nikdy bychom se nedočkali výsledku (stáří vesmíru je cca 13, roků). Pokud bychom zvolili masivní paralelizaci s 10 6 procesorů, pro nejrychlejší heš MD5 na x86-64 bychom dostali čas 1, roků. 10
15 Proto se musíme zaměřit právě na vstupy výrazně kratší, než 2 n. Zaměřujeme se na prolamování hesel a doporučená délka hesla je kolem 12 znaků[7]. Můžeme tedy zvažovat projití prostoru Tento prostor obsahuje i symboly, které není možné pro heslo použít především ze začátku ASCII tabulky. Pokud uživateli dovolíme zadat heslo pouze ze spodní poloviny ASCII tabulky ( netisknutelných znaků) prostor se zmenší na což je stále hodně a pro MD5 se dostáváme k času 2, roků. S masivní paralelizaci 10 6 procesorů se tedy dostáváme k hodnotě 2740 let. Běžný uživatel ovšem nezadává takto dlouhá hesla a často nepoužívá ani speciální znaky, kombinaci velkých a malých písmen a číslice. Omezíme tedy prostor ještě více pouze na malé znaky a číslice o délce maximálně devět znaků[7]. Velikost tohoto prostoru je Pro MD5 se dostáváme k hodnotě 214 dní. S masivní paralelizaci 10 6 až na hodnotu 18,5 sekundy, která je více než přijatelná. Pokud požijeme algoritmus HMAC v libovolné kombinaci s hešovací funkcí, získáme velmi podobné rychlosti, neboť HMAC vždy zpracuje stejný počet bloků jako jeho hešovací funkce a navíc pouze tři bloky. Dva bloky se zarovnaným klíčem (ipad a opad) a blok výstupu vnitřního heše. Rychlost v MiB/s tedy zůstane vice méně stejná, ale pro jedno blokové vstupy se počet bloků zvětší 4 a výpočet se tedy zhruba 4 zpomalí. Výsledek je tedy ekvivalentní ke zvětšení stavového prostoru o dva bity, což není mnoho. Autoři systémů jsou si toho ovšem vědomi, a proto různě kombinují funkce. Například vícenásobně hešují ( SHA1(SHA1(x)) ), nebo do vstupu přidají salt 3 a tím útočníkovi zabrání vytvoření rainbow table 4. Případně používají různé pokročilejší iterativní funkce pro derivaci klíčů, které si popíšeme v kapitole 4. Několikrát zde byla zmíněna paralelizace těchto algoritmů, ale je potřeba si uvědomit, jak lze tyto algoritmy paralelizovat. Výpočet jednoho bloku v n kolech není možné nijak paralelizovat. V jednom kole se mění pouze omezená část dat (jeden word v případě MD5/SHA-1, dva wordy v SHA-2) a zbytek vnitřního stavu se pouze přeskládá. Vstup následujícího kola je závislý na výstupu předchozího, zde tedy není možnost paralelizace. Více bloků také nelze současně zpracovávat, neboť vstup každého bloku je opět závislý na výstupu zpracování předcházejícího bloku. Jediná možnost, jak tento útok paralelizovat, je počítat současně více hešů, každý na jiném procesoru. Škálovatelnost takovéhoto přístupu je neomezena. Všechny tyto heše se dají bez problému implementovat na GPU a díky velké paralelizaci se výrazně zrychlí počet hešů za sekundu. 3 Salt - náhodná hodnota spojená se vstupem hešovací funkce např. konkatenací 4 Rainbow table - databáze před-vypočítaných hešu 11
16 Kapitola 3 Kryptografické algoritmy Doposud jsme se zabývali hešovacími algoritmy. Nyní se zaměříme na kryptografické algoritmy, které se využívají pro dosažení několika cílů. Důvěrnost - data jsou chráněna před prozrazením. Autentizace - příjemce ví, kdo data zašifroval. Integrita - příjemce ví, že zpráva nebyla během přenosu pozměněna. Nepopiratelnost - autor zašifrovaných dat nemůže popřít své autorství. Pro dosažení těchto cílů, je nutné použít kombinací s hešovacími funkcemi, někdy i použití více typů šifer. Kryptografické algoritmy se dělí na dvě skupiny. První jsou symetrické algoritmy, pro které se pro zašifrování i dešifrování používá stejný klíč a ten tedy musí obě komunikující strany sdílet. Druhá skupina jsou asymetrické algoritmy, kdy se používají dva klíče, jeden pro šifrování a druhý pro dešifrování. Klíče se nazývají privátní a veřejný, kdy privátní zná pouze jeho majitel a veřejný může znát kdokoliv. Pokud šifrujeme privátním klíčem, dešifrujeme veřejným a obráceně. Operace s privátním klíčem je podpis/dešifrování a s veřejným ověření podpisu/šifrování. Tyto tři typy šifrování (sdílený klíč, privátní a veřejný) splňují vždy pouze některé cíle kryptografie. Sdílený Privátní Veřejný Důvěrnost Autentizace Integrita Nepopiratelnost Tabulka 3.1: Vlastnosti klíčů Z tabulky 3.1 vyplývá, že při šifrování sdíleným klíčem nejsme schopni dosáhnout nepopiratelnost, neboť nemůžeme přesvědčit třetí nezávislou stranu o tom, kdo z majitelů sdílených klíčů zprávu vytvořil. Při šifrování privátním klíčem není zajištěna důvěrnost, protože veřejný klíč pro dešifrování může mít kdokoli a zprávu tedy může také dešifrovat. Pokud zprávu zašifrujeme veřejným klíčem, pak je možné ji dešifrovat pouze privátním 12
17 klíčem, a ten má pouze jeho majitel, ovšem takovou zprávu může vytvořit kdokoli, kdo má veřejný klíč toho, komu zprávu posílá. Další dělení algoritmů je na proudové a blokové šifry. Asymetrická kryptografie používá pouze blokové šifry. Blokové šifry vždy zašifrují celý blok dat (64 bajtů, 128 bajtů,... ). Proudové šifry šifrují data bajt po bajtu XORováním dat s generovaným keystreamem 1. Proudové šifry jsou náchylnější na implementační chyby, kde se některých chyb autoři dopouští i dnes. První možnou chybou je znovu použití keystreamu pro dvě zprávy. Keystream se XO- Ruje s daty, a pokud odchytíme dvě různé zprávy (A, B) zašifrované stejným keystreamem (K), můžeme obě zašifrované zprávy zxorovat. (A K) (B K) = A B (3.1) Keystream (K) se eliminuje (K K = 0 a A 0 = A) a dostaneme XOR plaintextu zpráv. Pokud známe obsah jedné zprávy, získání obsahu druhé je triviální. Tato chyba je například v zabezpečení WiFi WEP, kdy autoři sice přidali před klíč pro keystream inicializační vektor, ale pouze 24bitový a je tedy velká pravděpodobnost, že se stejný IV použije vícekrát (s narozeninovým útokem po 2 12 zprávách), a tím i stejný keystream. Chyba je navíc znásobena i chybou v generátoru pseudonáhodných čísel, který generuje IV, kdy čísla je možné predikovat. Druhá chyba je možnost otočení bitu. Pokud známe formát zprávy, i bez znalosti obsahu jsme schopni otočit bity v plaintextu. Opět je to způsobeno XORováním dat s keystreamem. A K 1 K = A (3.2) Tomuto útoku se dá zabránit přidáním heše nebo HMACu do zprávy. Obecně se útoky na šifry dělí do čtyř kategorií. Útočník se vždy snaží získat klíč pro dešifrování zprávy. Cipher-text only attack(coa) - útočník zná pouze zašifrovaný text. Known-plaintext attack(kpa) - útočník zná zašifrovaný i otevřený text (nebo alespoň jeho část). Chosen-plaintext attack(cpa) - útočník si může zvolit otevřený text, který bude zašifrován neznámým klíčem. Chosen-ciphertext attack(cca) - podobné jako CPA, ale útočník si volí zašifrovaný text. Pokud je algoritmus navržen tak, aby odolal pouze COA, je velmi slabý (např. Caesarova šifra). Proto moderní kryptografie uvažuje minimálně útok KPA, aby byl algoritmus dostatečně silný. Útoky CPA a CCA vypadají podobně, ale některé algoritmy jsou odolné proti CPA, proti CCA však ne. Symetrické šifry dnes běžně používají délky klíčů od 112 do 256 bitů. Asymetrické používají řádově tisíce bitů. To je způsobeno tím, že asymetrická kryptografie je postavena na matematických operacích, které jsou velmi rychle vypočitatelné pro délky klíčů symetrických algoritmů (200 bitový RSA klíč je prolomen za cca 2s). Proto musí být tato čísla větší, aby se prodloužila doba výpočtu, ale to má také negativní dopad na dobu šifrování, kdy asymetrické algoritmy jsou až 1000x pomalejší než symetrické. 1 Keystream - kryptograficky bezpečná pseudonáhodná posloupnost bitů vytvořená z klíče 13
18 U symetrických algoritmů se brute-force útočník snaží projít celý klíčový prostor 2 n jako v případě hešů. Na rozdíl od hešů zde ale nelze hledat zkratky jako při hešování hesel. U asymetrických algoritmů jsou tyto klíče prodlouženy, aby snaha o jejich prolomení odpovídala také 2 n pokusů, kde n má velikost jako u symetrických algoritmů. Není tedy pro klíč o délce 1024 nutné procházet prostor , ale zhruba jen Pro algoritmus RSA se jedná o faktorizaci na prvočísla a pro DSA a DH o problém diskrétního logaritmu. 3.1 RC4 RC4 je proudová šifra vytvořená Ronaldem Rivestem (autor MD5, RSA). Ve starších aplikacích je velmi populární (Office Word , PDF, WiFi WEP,... ). Algoritmus není patentován, ale název RC4 byl chráněn ochranou známkou, a tak se open-source implementace nazývají také někdy ARC4 (anglická výslovnost je stejná jako RC4). Délka klíče je 40 až 2048 bitů, ale maximální efektivní délka je pouze 1684 bitů. Zajímavostí je, že Google používá šifru RC4 při komunikaci přes TLS1.0, kdy při této implementaci existuje na blokové šifry v režimu CBC BEAST 2 útok. Šifra se skládá ze dvou bloků - KeySchedule (algoritmus 2 a KeystreamGenerator (algoritmus 3). KeySchedule vytvoří permutaci pole ze vstupního klíče, které se použije pro generování keystreamu. KeystreamGenerator poté pole přeskládává, na základě jeho hodnot a ze stavu pole se následně generuje výstup do keystreamu. Šifrování i dešifrování je stejné díky operaci XOR, která je inverzní sama k sobě. Algoritmus 2: RC4 KeySchedule Input: key, keylen Output: S 1: for i = 0 to 255 do 2: S[i] = i 3: end for 4: j = 0 5: for i = 0 to 255 do 6: j = (j + S[i] + key[i mod keylen]) mod 256 7: swap(s[i],s[j]) 8: end for 9: return S KeySchedule se provádí pouze při inicializaci algoritmu a obsahuje dva cykly přes velikost permutačního pole s 256hodnotami. Časová i prostorová složitost je tedy O(1). KeystreamGenerator pouze v poli vyhledá dvě položky a ty prohodí a z jejich hodnot vytvoří výstup do keystreamu. Opět časová i prostorová složitost O(1). Následně je ovšem nutné keystream aplikovat na data o délce n a celková časová i prostorová složitost je tedy O(n). Můžeme ovšem uvažovat systém, který příjme jeden bajt a na ten aplikuje jeden bajt keystreamu a takto zašifrovaný bajt odešle. Dostaneme O(1) a záleží tedy na konkrétní implementaci a pohledu na věc. Protože algoritmus má konstantní paměťovou složitost a šifrovanou zprávu lze většinou omezit délkou. Implementace v GPU není příliš efektivní, protože je nutné paměť neustále měnit a tyto operace jsou na GPU pomalé. 2 BEAST - Browser Exploit Against SSL/TLS 14
19 Algoritmus 3: RC4 KeystreamGenerator Input: S Output: K 1: i, j jsou perzistentní mezi voláním funkce 2: if f irstcall then 3: i = 0 4: j = 0 5: end if 6: i = (i + 1) mod 256 7: j = (j + S[i]) mod 256 8: swap(s[i],s[j]) 9: K = S[(S[i] + S[j]) mod 256] 10: return K 3.2 DES a 3DES Nyní se dostáváme k algoritmům, které byly schváleny NSA pro používání vládou USA. Algoritmus DES(Data Encryption Standard) vyvinulo v 70. letech IBM na zakázku NIST. Oproti návrhu IBM NIST (po konzultaci s NSA) algoritmus pozměnila. Spekuluje se, že tato změna umožňovala NSA dešifrovat data. Tato domněnka byla vyvrácena po odtajnění dokumentů o změnách. Základem algoritmu je šifra Lucifer, která je postavena na Feistlově principu. Délka klíče je 56 bitů, exportní verze DES má klíč zkrácen na 40 bitů, kvůli legislativě USA. Šifrování je shodné s dešifrováním, stačí tedy jedna implementace pro obě činnosti (pouze obracené pořadí subklíčů). Algoritmus je blokový s délkou bloku 64 bitů a data šifruje v 16 kolech podobně jako hešovací funkce. Klíčový prostor 2 56 je na dnešní dobu velmi malý a proto se šifra v této základní formě již nepoužívá. Místo ní se používá vylepšená varianta 3DES oficiálně označována jako TDEA (Tripple Data Encription Algorithm). Tato verze má délku klíče 56, 112 nebo 168 bitů, kde poslední dvě délky jsou pro dnešní použití přijatelné. Klíče se skládají z jednoho až tří 56bitových klíčů. Provádí se tři šifrování po sobe (ve skutečnosti šifrování-dešifrováníšifrování) a to s kombinacemi klíčů pro délku 56(kompatibilní s DES), pro délku 112 a pro délku 168. Šifrovat 3 je nutné, protože pokud bychom šifrovali pouze 2 útočník může využít meet-in-the-middle útok, kdy stačí projít pouze 2 56 pro první i druhou šifru. Efektivní délka klíče je tedy = 2 57 a klíč jsme prodloužili pouze o jeden bit a ne 2 (pouze jsme 2 zvětšili klíčový prostor)[16]. 15
20 Jak již bylo řečeno, algoritmus je postaven na Feistlově principu (3.3) L i+1 = R i R i+1 = L i F (R i, K i ) (3.3) Kde L a R je levá resp. pravá polovina vstupního bloku, K i je subklíč kola i a F je šifrovací funkce. Funkce F pro DES obsahuje tyto bloky. E - permutace a expanze 32 bitového vstupu na 48 bitů. SBox - nelineární krok, který provádí substituci z 48 bitů na 32 bitů. P - permutace. ( F (L, K) = P SBox ( E(L) K )) (3.4) Subklíče pro každé kolo se generují pomocí rotací. Ze vstupního 56 bitového klíče se vyrobí dva 28 bitové klíče, které se zarotují a pomocí permutace a komprese se z nich vyrobí 48 bitový subklíč pro každé kolo. Funkce navíc před začátkem 16kol doplňuje počáteční permutaci a po 16kolech koncovou permutaci. Tyto dodatečné permutace se vzájemně vyruší a nemají tedy žádný vliv na zvýšení bezpečnosti. Jelikož algoritmus obsahuje 16 kol a každé kolo má časovou i prostorovou složitost O(1), má i celé zpracování bloku obě složitosti O(1). Algoritmus není v GPU příliš efektivní, protože obsahuje bitové operace a permutace. 3.3 AES Bezpečnost algoritmu DES není dostačující. Proto NIST vypsal soutěž o algoritmus AES (Advanced Encryption Standard). Vítězem se stal algoritmus Rijndael. Jedná se o blokovou šifru o velikosti bloku v násobcích 32 bajtů (matice o čtyřech řádcích) s maximální délkou bloku 256 bitů. Délka klíče je neomezena. Tyto vlastnosti platí pouze pro Rijndael a AES má tyto hodnoty přesně definovány standardem. Délka bloku je pouze 128 bitů (matice 4 4) a délka klíče je 128, 192 a 256 bitů. Počet kol roste s délkou klíče 10 kol pro klíč 128, 12 pro 192 a 14 pro 256 bitů. Klíč je rozgenerován pomocí násobení matic na subklíče pro každé kolo jeden subklíč jako matice 4 4[17]. AES obsahuje tyto bloky AddRoundKey - vstupní blok 4 4 bajtů se XORuje se subklíčem 4 4. SBox - substituce jako v případě DES. ShiftRows - každý řádek je rotován doleva, i-tý řádek rotuje o i 1 bajtů vlevo. MixColumn - každý sloupec je vynásoben maticí M v GF (2 8 ) 3. Tvorba hodnot SBoxu je narozdíl od DESu známa. Hodnoty jsou tvořeny rotací a XORy konstanty v GF (2 8 ), lze tedy vytvořit tabulku. Pro operaci MixColumn je také možno vytvořit několik tabulek pro výpočty. Matice M obsahuje pouze hodnoty 1, 2 a 3 pro šifrování a hodnoty 9, 11, 13 a 14 pro dešifrování. Lze tedy pro každou hodnotu vytvořit tabulku (celkem sedm tabulek o 256-ti prvcích). 3 GF - Galoisovo pole 16
21 Algoritmus 4: AES Input: PlainText, Key Output: CipherText 1: subkeys = ScheduleKeys(Key) 2: rounddata = P laint ext 3: for i = 1 to k 1 do 4: keyeddata = rounddata subkeys[i] 5: subsdata = SBox(keyedData) 6: shdata = ShiftRows(subsData) 7: rounddata = MixColumn(shData) 8: end for 9: keyeddata = rounddata subkeys[k] 10: subsdata = SBox(keyedData) 11: CipherT ext = ShiftRows(subsData) 12: return CipherText V algoritmu 4 je vidět, že se v posledním kole neprovádí MixColumn. Dešifrování je opačný proces, při kterém se pouze změní pořadí aplikování funkcí a obsahy tabulek. Algoritmus obsahuje opět pouze bloky, které pracují s konstantní časovou i prostorovou složitostí. Obsahuje konstantní počet kol, a proto je časová i prostorová složitost opět O(1). Algoritmus je dnes již implementován v instrukční sadě procesorů jako instrukční sada AES-NI (AES New Instructions). Jedná se o částečnou HW akceleraci šifrování a dešifrování. Částečnou proto, že není v HW implementován celý algoritmus ale pouze jeho klíčové kroky. Jedná se o jedno normální a poslední kolo šifrování/dešifrování, generování subklíčů, a násobení v GF (2 8 ). Celý algoritmus se musí tedy z těchto instrukcí poskládat. Zrychlení oproti běžné SW implementaci je zhruba 8. Ani tento algoritmus není v GPU příliš efektivní z důvodu příliš velkého množství přístupu do paměti a tak je zrychlení na GPU oproti CPU pouze zhruba 14 [12]. 3.4 Režimy blokových šifer Protože blokové šifry umožňují zašifrovat blok dat a většinou potřebujeme zašifrovat více než jeden blok dat, musíme blokovou šifru použít k vícekrát. Data pro zašifrování musí být rozdělena na bloky a zarovnána na velikost bloku. Jak blokovou šifru použijeme pro šifrování a dešifrování definuje právě režim. Režimy šifer jsou univerzální a mohou pracovat s libovolnou blokovou šifrou. Nejběžnější režimy jsou ECB, CBC a CTR. Relativně nový režim GCM(Galois/Counter Mode), který velice rychlý a bezpečný, je poměrně složitý a v této práci ho vynecháme. Další režimy OFB(Output Feedback) a CFB(Cipher Feedback) vytváří z blokových šifer něco jako proudové šifry. V případě režimu OFB je to skutečně proudová šifra a tento režim je tedy náchylný na implementační chyby ECB Základní režim ECB (Electronic Code Book) je bezpečný, pouze pokud se jedním klíčem zašifruje pouze jeden blok. 17
22 Šifrování Dešifrování C i = E(P i, key) (3.5) P i = D(C i, key) (3.6) Pokud bychom tímto režimem šifrovali více bloků, které budou obsahovat stejná data, budou i výsledná zašifrovaná data stejná. Tento režim lze lehce detekovat pomocí kompresních algoritmů. Protože taková data obsahují opakující se bloky a kompresní algoritmus je najde a zkomprimuje. Tento režim lze paralelizovat jak pro šifrování tak při dešifrování CBC CBC (Cipher Block Chaining) je asi nejpoužívanější režim, protože se považuje za nejbezpečnější. I když v implementaci TLS1.0 na něj existuje BEAST útok. Pro šifrování i dešifrování je nutné vytvořit kryptograficky bezpečná IV, který není třeba uchovávat v tajnosti, ale je třeba chránit jeho integritu. Šifrování C 0 = IV C i = E(P i C i 1, key) (3.7) Dešifrování C 0 = IV P i = D(C i, key) C i 1 (3.8) Šifrování není možné paralelizovat, neboť neznáme všechny C i a musíme je získat šifrováním, a tak se musí provádět sekvenčně. Naopak dešifrování paralelizovat lze. Všechna C i známe a můžeme tedy dešifrovat více bloků současně CTR Další velmi používaný režim je CTR(Counter), především z důvodu možnosti paralelizovat šifrování bloků. Někteří kryptologové tvrdí, že režim je méně bezpečný, jiní zase že je bezpečný stejně jako režim CBC. Je ovšem velmi podobný proudové šifře a lze tedy opakovat implementační chyby v proudových šifrách. Šifrování C i = E(IV CT R, key) P i (3.9) Dešifrování P i = E(IV CT R, key) C i (3.10) Pro šifrování i dešifrování se vždy zašifruje vstup vytvořený inicializačním vektorem spojený s počítadlem, které je inicializováno na 0. Operace, která spojuje počítadlo s IV může být, libovolná funkce, která bude mít výstup o délce bloku šifry např. XOR, OR, konkatenace apod. Paralelizovat lze jak šifrování tak dešifrování. 18
23 Kapitola 4 Generování klíčů Šifrovací algoritmus potřebuje ke své činnosti klíč, který je jediný parametr, který může ovlivnit šifrování a dešifrování dat. Klíče mají délku 56 až 256 bitů. Problém nastává v situaci, kdy potřebujeme vytvořit šifrovací klíč z hesla, které zadává uživatel. Taková hesla jsou výrazně kratší, například 8 znakové heslo obsahuje pouze 64 bitů (pro DES zase až příliš). Proto je nutné tato hesla prodlužovat na délku klíče dané šifry. Existuje mnoho způsobů jak to udělat dobře, ale ještě více jak to udělat špatně. Nyní se tedy zaměříme na ty dobré metody, které navíc, aby zabránili vytvoření slovníku, vyžadují salt. Některé také vyžadují další parametry, které ztěžují brute-force útoky. 4.1 PBKDF1 Nejjednodušší metoda jak vytvořit klíč z hesla je PBKDF1(Password Based Key Derivation Function 1 ). Heslo se konkatenuje se saltem a výsledek se zahešuje. Výstupem je blok o délce n bitů, která odpovídá délce výstupu hešovací funkce. Pokud chceme vytvořit další blok, opět tuto hodnotu zahešujeme a dostaneme dalších n bitů. Pokud tedy chceme vytvořit klíč o délce m s pomocí hešovací funkce, která má na výstupu n bitů, musíme takových bloků vytvořit m n a výsledek oříznout na m bitů. Tato metoda je velmi rychlá, a proto nijak neztěžuje útok silou[10]. P S H H... H T1 T2 Tn Obrázek 4.1: Schéma funkce PBKDF1 19
24 4.2 PBKDF2 Jak již z názvu vyplývá jedná se o pokročilejší verzi funkce pro derivaci klíče. Funkce nevyužívá heše ale funkce pseudonáhodného generatoru (PRF). Funkce má dva parametry a můžeme ji definovat jako P RF (P assword, Salt). Tato funkce až nápadně připomíná funkci HMAC (obecně MAC) a ta se také používá. Navíc se tato funkce zopakuje c-krát. PBKDF2 tedy potřebuje heslo, salt, funkci HMAC, počet iterací a délku výstupu. Jednotlivé bloky jsou na sobě nezávislé, a je tedy možné je generovat paralelně. V první iteraci se konkatenuje salt s číslem bloku od 1 v little-endian a tato hodnota se použije jako zpráva pro HMAC a heslo jako klíč. Výsledek se XORuje s výstupním blokem, který je inicializován na 0. Další iterace použije výstup funkce HMAC jako zprávu pro další zpracování HMAC s klíčem je opět heslo. Výsledek se XORuje s výstupním blokem. Pro vytvoření klíče o délce m je opět nutné vytvořit m n bloků a výsledek oříznout na m bitů. S int(n) P PRF Tn Obrázek 4.2: Schéma funkce PBKDF2 pro jeden blok Použití funkce je definováno ve standardu PKSC #5 [10]. Je tedy velmi často používaná, ale někdy chybně. Minimální doporučený počet iterací je 1000, aby byl případný útok silou co nejpomalejší. Pro jeden blok se tedy musí HMAC provést 1000 a jelikož HMAC potřebuje zpracovat čtyři bloky hešovací funkce, je útok 4000 pomalejší než při použití PBKDF1. Ale protože musíme pro 256 bitový klíč při použití funkce SHA-1(160bitů) vytvořit dva bloky, je výsledný útok až 8000 pomalejší. Funkce se také používá pro hešování hesel, kdy je výsledek se saltem uložen do databáze a poskytuje větší rezistanci proti útoku silou[10]. Funkci používá ve svých produktech řada společností, ale některé používají příliš malý počet iterací. Například BlackBerry pro zálohování dat telefonu používalo pouze jednu iteraci. Podobný problém je v Cisco IOS a IOS XE ve verzi 15. Autoři chtěli použít HMAC- SHA256, 80 bitů pro salt a 1000 iterací pro uložení hešovaného hesla. Při implementaci ale došlo k chybě a místo PBKDF2 použili pouze SHA-256 bez saltu. Tento typ uložení hesla je v IOS označován jako type 4 password. Cisco proto označuje type 4 za deprecated a doporučuje použít type 5, který obsahuje 1000 iterací osolené MD5[6]. Na druhou stranu existuje i software, který naopak používá velký počet iterací a činí tak heslo prakticky neprolomitelné (WinRAR 4000 iterací, záloha ios , django framework 10000). 20
25 4.3 bcrypt Předchozí metody vyžadují malé množství paměti, a proto je možné je efektivně implementovat v GPU. Proto vznikly další metody, které vyžadují naopak velké množství paměti a implementace v GPU je tak neefektivní, kvůli paměťovému modelu, jaký využívá. Algoritmus bcrypt, využívá upravenou blokovou šifru blowfish, která je známá svým paměťově náročným procesem vytvářením subklíčů. Blowfish potřebuje 4KiB paměti pro uložení SBoxů. Blowfish nemá tyto SBoxy konstantní, ale generují se z klíče a algoritmus obsahuje čtyři SBoxy s bitovými čísly. Po vygenerování SBoxů se 64 krát zašifruje text OrpheanBeholderScryDoubt a ten slouží jako klíč. Metoda není v HW implementaci efektivní kvůli tomu, že test každého hesla vyžaduje 4KiB rychlé paměti. Implementovat efektivně v HW je tedy možné jen s nejmodernějšími FPGA čípy, které mají dostatek rychlé paměti. Jinak je potřeba tato data ukládat do hlavní paměti, která je pomalá a neumožňuje přístup více procesorům současně. 4.4 scrypt Pokud bcrypt byl navržen pro znesnadnění paralelizace a HW implementace, tak algoritmus scrypt dovedl tuto myšlenku k dokonalosti. Umožňuje paralelizaci za použití malého množství paměti, ale data je nutné vytvářet neustále znovu a tím se proces zpomalí. Nebo je možné data uložit do paměti, ale je tedy nutná opět rychlá paměť. Algoritmus využívá proudovou šifru Salsa20/8 (zkrácená varianta používá pouze 8 kol místo 20) a algoritmus PBKDF2. Nejprve se vygeneruje dlouhý náhodný vektor r 1024 bitových čísel o délce n pomocí PBKDF2 (s pouze jednou iterací). Počet bitů je tedy r n 1024 bitů. Prvek vektoru je následně procházen po 32 bitových slovech a je na náhodných pozicích šifrován, aby bylo zajištěno, že bude využito mnoho přístupů do paměti. Jakmile jsou zpracovány všechny prvky vektoru, je celý vektor použit jako salt pro PBKDF2, která vygeneruje klíč[19]. Algoritmus je tak efektivní ve zneefektivňování akcelerace pomocí GPU, že GPU implementace je maximálně 10 rychlejší, což je na GPU málo. V porovnání se zrychlením MD5 kdy CPU zvládne 5,5Mh/s a GPU 8,5Gh/s, kdy je zrychlení téměř 1500 krát. V souboji mezi výrobci GPU zde jasně vyhrává ATI a naopak GPU od NVIDIE dosahuje velmi podobných výsledků jako CPU a vetšinou jsou i pomalejší. Například Intel Core i kh/s, NVIDIA GTX kh/s, ATI Radeon kh/s. Na zrychlení je vidět, že přestože není algoritmus efektivní, může být rychlý [14]. 21
26 Kapitola 5 Aplikace kryptografických prostředků 5.1 IPSec IPSec je protokol pro zabezpečený přenos dat v počítačové síti. Zajišťuje jak autentizaci, tak důvěrnost. Protokol pracuje tak, že do sebe zapouzdřuje data na síťové vrstvě (L3) ISO/OSI modelu. Toto zapouzdření tak vytvoří logický kanál mezi stanicemi v síti. Umožňuje zapouzdření dat dvěma způsoby. V transportním režimu je IP hlavička zapouzdřených dat zkopírována před IPSec paket, který může být zašifrován (hlavička ESP) nebo autentizován (hlavička AH). V tunelovém režimu jsou data zapouzdřena a odeslána na druhý konec tunelu, kde jsou data odpouzdřena a jsou dále odeslány na stanici s IP, která je uvedena v zapouzdřené IP hlavičce[11]. Transportní režim je tak vhodný pro komunikaci mezi dvěma koncovými stanicemi, zatímco tunelový je vhodný například pro spojování LAN sítí přes Internet. Při spojení se vytvoří logický kanál (Security Association), který je jednosměrný a definuje určité zabezpečení. Pro duplexní komunikaci je tedy zapotřebí dvou kanálů[11]. Na začátku spojení se klienti musí domluvit na šifrování a autentizaci. Pro šifrování se využívá algoritmy AES nebo 3DES v režimu CBC a HMAC-SHA1 pro autentizaci. Pro výměnu klíčů a autentizaci se používá protokol IKEv2 (Internet Key Exchange), který využívá asymetrický kryptografický algoritmus Diffie-Hellman. Pro autentizaci se při navazování spojení užívá princip challenge-response, kdy je připojující se stanice ověřena pomocí heše několika hodnot a PSK (před-sdílený-klíč)[8]. Pokud tedy odchytíme pakety z ustavení spojení, je možné provést brute-force útok na heš a získat tak PSK. Existuje také bezpečnější varianta používající certifikáty (X.509) pro ověření klienta. 5.2 ZIP ZIP je formát komprimovaného souboru. Tento formát vyvinula společnost PKWARE a původní aplikace pro kompresi a dekompresi se jmenuje PKZIP (PK jsou iniciály zakladatele společnosti Phila Katze). Komprese se provádí pomocí algoritmu DEFLATE a Huffmanova kódování. Šifrování obsahu je dostupné od verze 2.0, kdy byla vytvořena jednoduchá proudová šifra PKZIP Stream Cipher. Šifrování bezpečným algoritmem AES je dostupné až od verze 5.1. Existuje také varianta zvaná SecureZIP, která je proprietární; obsahuje téměř všechny dostupné bezpečnostní algoritmy, ale není příliš rozšířená. 22
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
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
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í
Š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
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á
Š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
Š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;
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í
Š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;
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?
Andrew Kozlík KA MFF UK
Autentizační kód zprávy Andrew Kozlík KA MFF UK Autentizační kód zprávy Anglicky: message authentication code (MAC). MAC algoritmus je v podstatě hashovací funkce s klíčem: MAC : {0, 1} k {0, 1} {0, 1}
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
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í
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í
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
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ší
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í
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
Seminární práce do předmětu: Bezpečnost informačních systémů. téma: IPsec. Vypracoval: Libor Stránský
Seminární práce do předmětu: Bezpečnost informačních systémů téma: IPsec Vypracoval: Libor Stránský Co je to IPsec? Jedná se o skupinu protokolů zabezpečujících komunikaci na úrovni protokolu IP (jak už
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í
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),
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ů
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
5. Hašovací funkce, MD5, SHA-x, HMAC. doc. Ing. Róbert Lórencz, CSc.
Bezpečnost 5. Hašovací funkce, MD5, SHA-x, HMAC 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ů
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ů
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
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,
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ů...
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
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í
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
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.
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.
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
Ochrana dat 2.12.2014. Obsah. Výměna tajných klíčů ve veřejném kanálu. Radim Farana Podklady pro výuku. Kryptografické systémy s tajným klíčem,
Ochrana dat Radim Farana Podklady pro výuku Obsah Kryptografické systémy s tajným klíčem, výměna tajných klíčů veřejným kanálem, systémy s tajným klíčem. Elektronický podpis. Certifikační autorita. Metody
Y36PSI Bezpečnost v počítačových sítích. Jan Kubr - 10_11_bezpecnost Jan Kubr 1/41
Y36PSI Bezpečnost v počítačových sítích Jan Kubr - 10_11_bezpecnost Jan Kubr 1/41 Osnova základní pojmy typy šifer autentizace integrita distribuce klíčů firewally typy útoků zabezpečení aplikací Jan Kubr
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
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
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:
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
Š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í
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,
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
Š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
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
SHA-3. Úvod do kryptologie. 29. dubna 2013
SHA-3 L ubomíra Balková Úvod do kryptologie 29. dubna 2013 Prolomení hašovacích funkcí masová kryptografie na nedokázaných principech prolomení je přirozená věc 2004 - prolomena MD5 2010 - konec platnosti
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,
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
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á
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á
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í
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
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é
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
symetrická kryptografie
symetrická kryptografie princip šifrování Feistelovy sítě DES IDEA GOST AES další symetrické blokové algoritmy Blowfish, Twofish, CAST, FEAL, Skipjack a Kea, MARS, RC6, a další symetrická jeden tajný klíč
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
Kryptoanalýza. Kamil Malinka Fakulta informačních technologií. Kryptografie a informační bezpečnost, Kamil Malinka 2008
Kryptoanalýza Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií 1 Microsoft PPTPv1 zájem o rozšiřování možností op. systémů přináší implementaci konkrétního protokolu pro VPN Co řeší
vá ro ko Sý ětuše Kv
Květuše Sýkorová elektronický podpis hash funkce bezpečná komunikace princip nejznámější hash funkce MD x RIPEMD x SHA Květuše Sýkorová definice: Elektronický podpis je nejobecnější pojem pro údaje v elektronické
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
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 -
Andrew Kozlík KA MFF UK
Operační režimy (módy) bloových šifer Andrew Kozlí KA MFF UK Operační režimy (módy) bloových šifer Říáme, že šifra (P, C, K,, D) je bloová, jestliže P = C = {0, 1} b pro nějaé b. Napřílad DS (b = 64 bitů)
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í
7. Proudové šifry, blokové šifry, DES, 3DES, AES, operační módy. doc. Ing. Róbert Lórencz, CSc.
Bezpečnost 7. Proudové šifry, blokové šifry, DES, 3DES, AES, operační módy doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů
Digitální podepisování pomocí asymetrické kryptografie
Digitální podepisování pomocí asymetrické kryptografie Jan Máca, FJFI ČVUT v Praze 26. března 2012 Jan Máca () Digitální podepisování 26. března 2012 1 / 22 Obsah 1 Digitální podpis 2 Metoda RSA 3 Metoda
12. Bezpečnost počítačových sítí
12. Bezpečnost počítačových sítí Typy útoků: - odposlech při přenosu - falšování identity (Man in the Middle, namapování MAC, ) - automatizované programové útoky (viry, trojské koně, ) - buffer overflow,
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ě
Základy kryptologie. Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií
Základy kryptologie Kamil Malinka malinka@fit.vutbr.cz Fakulta informačních technologií 1 Detaily zkoušky Během semestru je možno získat maximální počet 100 bodů projekty - 20b. vnitrosemestrální písemka
Bezpečnost vzdáleného přístupu. Jan Kubr
Bezpečnost vzdáleného přístupu Jan Kubr Vzdálené připojení - protokoly IPsec PPTP, P2TP SSL, TSL IPsec I RFC 4301-4309 IPv6, IPv4 autentizace Authentication Header (AH) šifrování Encapsulating Security
OPS Paralelní systémy, seznam pojmů, klasifikace
Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus
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
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
Pokročilá kryptologie
Pokročilá kryptologie RSA 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ů Informatika pro
Vybrané útoky proti hašovací funkci MD5
Vybrané útoky proti hašovací funkci MD5 1 Úvod, vymezení V práci popisuji vybrané útoky proti bezpečnosti hašovací funkce MD5. Nejdříve uvádím zjednodušený algoritmus MD5 a následně rozebírám dva praktické
Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA
Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA Jan Pospíšil, pospij17@fit.cvut.cz, Martin Novotný, novotnym@fit.cvut.cz Katedra číslicového návrhu Fakulta informačních technologíı
Moderní komunikační technologie. Ing. Petr Machník, Ph.D.
Moderní komunikační technologie Ing. Petr Machník, Ph.D. Virtuální privátní sítě Základní vlastnosti VPN sítí Virtuální privátní síť (VPN) umožňuje bezpečně přenášet data přes nezabezpečenou síť. Zabezpečení
III. Mody činnosti blokových šifer a hašovací funkce
III. Mody činnosti blokových šifer a hašovací funkce verze: 2.1, 11.4.2007 Vlastimil Klíma Obsah 11. Operační mody blokových šifer... 2 11.1. Elektronická kódová kniha (ECB)... 2 11.1.1. Informace, vyzařující
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
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é
Středoškolská technika 2015. Encryption Protection System
Středoškolská technika 2015 Setkání a prezentace prací středoškolských studentů na ČVUT Encryption Protection System Jaroslav Vondrák Vyšší odborná a Střední škola Varnsdorf Mariánská 1100, Varnsdorf 1
Pokročilá kryptologie
Pokročilá kryptologie DES a AES 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ů Informatika
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
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á
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
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é
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í
Datové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
Informatika Ochrana dat
Informatika Ochrana dat Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Obsah Kryptografické systémy s veřejným klíčem, výměna tajných klíčů veřejným kanálem, systémy s veřejným
klasická kryptologie základní pojmy požadavky na kryptosystém typologie šifer transpoziční šifry substituční šifry
klasická kryptologie transpoziční šifry substituční šifry základní pojmy požadavky na kryptosystém pravidla bezpečnosti silný kryptosystém typologie šifer bloková x proudová s tajným klíčem x s veřejným
Správa webserveru. Blok 9 Bezpečnost HTTP. 9.1 Úvod do šifrování a bezpečné komunikace. 9.1.1 Základní pojmy
Blok 9 Bezpečnost HTTP Studijní cíl Devátý blok kurzu je věnován Identifikaci, autentizaci a bezpečnosti Hypertext Transfer Protokolu. Po absolvování bloku bude student ovládat partie týkající se zabezpečení
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
Čínská věta o zbytcích RSA
Čínská věta o zbytcích RSA Matematické algoritmy (11MAG) Jan Přikryl Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní 5. přednáška 11MAG pondělí 10. listopadu 2014 verze: 2014-11-10 11:20 Obsah
Kryptografie a počítačová
Kryptografie a počítačová Úvod KPB 2018/19, 1. přednáška 1 Informace k předmětu Kontakt Kancelář EA439 eliska.ochodkova@vsb.cz Všechny důležité informace na www.cs.vsb.cz/ochodkova Organizace výuky sledujte
RSA. Matematické algoritmy (11MAG) Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :01
Čínská věta o zbytcích Mocnění Eulerova funkce Šifrování Závěr Čínská věta o zbytcích RSA Matematické algoritmy (11MAG) Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní 4. přednáška 11MAG ponděĺı
Složitost a moderní kryptografie
Složitost a moderní kryptografie Radek Pelánek Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/02.0024 Složitost a moderní kryptografie
OpenSSL a certifikáty
OpenSSL a certifikáty Petr Krčmář 1. června 2013 Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Petr Krčmář (Root.cz) OpenSSL a certifikáty 1. června 2013 1 / 20 OpenSSL: o čem
Vzdálenost jednoznačnosti a absolutně
Vzdálenost jednoznačnosti a absolutně bezpečné šifry Andrew Kozlík KA MFF UK Značení Pracujeme s šifrou (P, C, K, E, D), kde P je množina otevřených textů, C je množina šifrových textů, K je množina klíčů,
Jednocestné zabezpečení citlivých údajů v databázi
Jednocestné zabezpečení citlivých údajů v databázi Ing. Jan Malý, Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, Purkyňova 118, 612 00 Brno, Česká
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
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