Teoretický základ a přehled kryptografických hashovacích funkcí

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

vá ro ko Sý ětuše Kv

Vybrané útoky proti hašovací funkci MD5

SHA-3. Úvod do kryptologie. 29. dubna 2013

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

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

Hashovací funkce. Andrew Kozlík KA MFF UK

PA159 - Bezpečnostní aspekty

Ochrana dat 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,

Karel Kohout 18. května 2010

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

5. Hašovací funkce, MD5, SHA-x, HMAC. doc. Ing. Róbert Lórencz, CSc.

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE. Martin Suchan. Porovnání současných a nových hašovacích funkcí


Jednocestné zabezpečení citlivých údajů v databázi

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

Hashovací funkce a SHA 3

Bezpečnostní normy a standardy KS - 6

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

Stavební bloky kryptografie. Kamil Malinka Fakulta informačních technologií

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

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

Certifikační prováděcí směrnice

PSK2-5. Kanálové kódování. Chyby

Bezpečnost vzdáleného přístupu. Jan Kubr

asymetrická kryptografie

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

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

Směry rozvoje v oblasti ochrany informací KS - 7

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

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

Směry rozvoje v oblasti ochrany informací PS 7

12. Bezpečnost počítačových sítí

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

ElGamal, Diffie-Hellman

Bezpečnost v sítích Cíl. Kryptografické funkce. Existují čtyři oblasti bezpečnosti v sítích. Každá úroveň se může podílet na bezpečnosti

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

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

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

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

M I N I S T E R S T V A V N I T R A

Informatika Ochrana dat

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

Kryptologie a kombinatorika na slovech. 6. března 2013

SSL Secure Sockets Layer

Inovace bakalářského studijního oboru Aplikovaná chemie

M I N I S T E R S T V A V N I T R A

pomocí asymetrické kryptografie 15. dubna 2013

PV157 Autentizace a řízení přístupu

Symetrické šifry, DES

Základy algoritmizace. Pattern matching

UKRY - Symetrické blokové šifry

Moderní komunikační technologie. Ing. Petr Machník, Ph.D.

Seminární práce do předmětu: Bezpečnost informačních systémů. téma: IPsec. Vypracoval: Libor Stránský

Historie Kryptografie

Správa webserveru. Blok 9 Bezpečnost HTTP. 9.1 Úvod do šifrování a bezpečné komunikace Základní pojmy

Kryptografie - Síla šifer

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

ČESKÁ TECHNICKÁ NORMA

212/2012 Sb. VYHLÁŠKA

3. přednáška Legislativa v telekomunikacích

Informatika / bezpečnost

Vzdálenost jednoznačnosti a absolutně

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

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

INFORMAČNÍ BEZPEČNOST

DEMONSTRAČNÍ APLIKACE HASHOVACÍCH ALGORITMŮ SHA-1 A SHA-2

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

Analýza síťového provozu. Ing. Dominik Breitenbacher Mgr. Radim Janča

Šifrování a bezpečnost. Bezpečnost. Definice. Úvod do počítačových sítí Lekce 12 Ing. Jiří ledvina, CSc.

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

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

Základy počítačových sítí Šifrování a bezpečnost

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

09:00 09:20 09:30 09:35 10:15 10:30 10:50 11:10 11:30 12:10 12:15

Hašovací funkce, principy, příklady a kolize

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

Bezpečnostní mechanismy

Moderní kryptografické metody

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

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

Bezpečnostní problémy VoIP a jejich řešení

MFF UK Praha, 29. duben 2008

VYHLÁŠKA ze dne 23. června 2009 o stanovení podrobností užívání a provozování informačního systému datových schránek

Be Safe! Radim Roška Installfest 2010 Silicon Hill

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

MFF UK Praha, 22. duben 2008

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY MODEL PRÁCE S DOKUMENTY V ELEKTRONICKÉM OBCHODOVÁNÍ MODEL EDI IN E-COMMERCE

Bezpečnost provozu VoIP

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

symetrická kryptografie

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

pomocí S/MIME ezprava.net s.r.o. 21. ledna 2015

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

Šifrování dat, kryptografie

Kryptoanalýza. Kamil Malinka Fakulta informačních technologií. Kryptografie a informační bezpečnost, Kamil Malinka 2008

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

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

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

(Ne)popiratelnost digitálních podpisů. Cíl přednášky. Jazyková vsuvka

Transkript:

Teoretický základ a přehled kryptografických hashovacích funkcí Radim Ošťádal Březen 2012 1 Úvod Kryptografické hashovací funkce jsou jedním ze základních primitiv současné kryptografie. V této práci se nejprve věnuji definici základních vlastností, které musí kryptografická hashovací funkce mít. V druhé části práce potom podávám seznam jednotlivých funkcí. Zaměřuji se především na to, jak fungují, dále potom kladu důraz na jejich použitelnost z bezpečnostního hlediska. 2 Vlastnosti hashovacích funkcí Hashovací funkce je matematická funkce, která slouží pro převod vstupních dat na výstup fixní délky. Tento výstup můžeme označovat následujícím způsobem: výtah, otisk, hash, haš, fingerprint. Hashovací funkce mají využití například pro rychlejší prohledávání tabulky, při porovnávání dat nebo odstraňování duplicitních záznamů v databázi. V tomto případě se většinou nejedná o kryptografickou hashovací funkci, o které budeme mluvit později. Přesnou definici udává Definice 1. Definice 1: Hashovací funkce převádí libovolně dlouhou zprávu na kratší, která má fixní délku. Takto vytvořenou zprávu nazýváme hash nebo otisk původní zprávy. h: {0, 1}* --> {0, 1} m h: {0, 1} n --> {0, 1} m, n >> m Abychom mohli mluvit o kryptograficky dobré hashovací funkci, musí tato funkce splňovat několik dalších vlastností. Kryptografická hashovací funkce se využívá především pro autentizaci dat, integritu nebo při použítí digitálních podpisů. Abychom si ukázali potřebné vlastnosti, nejprve si naznačíme některé možné útoky na hashovací funkci, například při použití dohromady s digitálním podpisem. Nechť (w, s) je platný podpis, kde s = sigk(h(w)) a my jsme schopni najít takové w, že h(w) = h(w ). Potom bychom byli shopni vytvořit platný podpis (w, s) pro podvrhnutou zprávu w. První požadovanou vlastnost nám tedy udává Definice 2. Definice 2: Slabá bezkoliznost nechť w je zpráva. Hashovací funkce h má vlastnost slabé bezkoliznosti, pokud je výpočetně nemožné najít w takové, že h(w) = h(w ). 1

Pokud je útočník schopný najít w a w takové, že h(w) = h(w ), může požádat oběť aby podepsala h(w), získat tímto způsobem podpis s a následně vytvořit podvrhnutou zprávu s platným podpisem (w, s). Další požadovanou vlastnost nám udává Definice 3. Definice 3: Silná bezkoliznost hashovací funkce h je silně bezkolizní, pokud je výpočetně nemožné najít dvě zprávy w w takové, že h(w) = h(w ). Poslední útok, který momentálně připadá v úvahu, je tento: nechť z je náhodný hash ke kterému je útočník schopný získat platný podpis s. Pokud umí následně najít zprávu w takovou, že z = h(w), je schopen vytvořit podvrhnutou zprávu s platným podpisem (w, s). Poslední vlastností je tedy jednosměrnost, kterou můžete najít v Definici 4. Definice 4: Jednosměrná funkce hashovací funkce h je jednosměrná, pokud je výpočetně nemožné najít zprávu w, známe-li z takové, že platí h(w) = z. Hashovací funkci, která je jednosměrná a splňuje vlastnosti předepsané slabou a silnou bezkolizností, nazveme kryptograficky dobrou hashovací funkcí. Mezi další vlastnosti potom patří lavinový efekt, který je definován následovně: Pokud změníme 1 bit originální zprávy, potom se změní i každý bit výsledného hashe s pravděpodobností jedna polovina. Tato vlastnost nám zajistí, že i velice podobné zprávy produkují naprosto rozdílné hashe. 2.1 Narozeninový paradox Narozeninový paradox nám říká, že pokud máme v místnosti 23 lidí, existuje přibližně padesátiprocentní šance, že se dva z nich narodili ve stejný den. Toto je velice důležitý fakt, který nám dává dolní ohraničení pro délku hashe produkovaného dobrou kryptografickou hashovací funkcí. Zde je přesná definice: Definice 5: Pokud máme n objektů a r lidí, ze kterých si každý vybírá jeden objekt (tak, že si několik lidí může vybrat stejný objekt), a pokud platí, že r 1,177*odmocnina(n), potom pravděpodobnost, že si dva lidé vyberou stejný objekt, je 50 procent. Pokud budeme mít například 40-bitovou zprávu, abychom našli kolizi s pravděpodobností 0,5, potřebujeme pouze 2^20 náhodných hashů. Minimální akceptovaná délka hashe je v dnešní době přibližně 160 bitů, doporučovaná však 256 bitů. 3 Přehled jednotlivých hashovacích funkcí: V této kapitole popisuji jednotlivé hashovací funkce. Nejprve se zabývám těmi, které se dnes již nepoužívají a pro které jsou již známé zranitelnosti. Dále se věnuji funkcím z rodiny SHA a nakonec se zabývám soutěží, ze které by měl vzejít nástupce dnes používaných hashovacích funkcí. 2

3.1 Message-Diggest Algorithm 4 (MD4) MD4 je hashovací algoritmus, který byl vyvinut roku 1990 a jeho autor je Ronald Rivest. Tento algoritmus je zdokumentován v RFC 1320 - The MD4 Message-Digest Algorithm [101]. Výsledný hash má délku 128b. V roce 1995 byl publikován způsob, jak efektivně najít kolize [102] a tento algoritmus od té doby není považován za bezpečný. Celý algoritmus je rozdělen do následujících pěti kroků [101]: 1. Dopňění zprávy na jednotnou délku: nechť M je zpráva, která má být hashována; nechť b je délka zprávy v bitech; doplň zprávu tak, aby její délka byla 448 (mod 512) jedna jednička následována nulami. 2. Doplnění délky zprávy: přidej 64-bitovou reprezentaci b; délka zprávy je nyní zarovnaná na celých 512 bitů, tzn. máme bloky po šestnácti 32-bitových slov. Nechť zpráva M = (Y0, Y1,...,), kde Yi je 32-bitové slovo. 3. Inicializace bufferů: po celý výpočet pracujeme s buffery A, B, C, D každý 32b a jsou použity pro výpočet výsledného hashe; iniciální hodnoty jsou následující: o A: 01 23 45 67 o B: 89 ab cd ef o C: fe dc ba 98 o D: 7654 32 10 4. Zpracování zprávy po blocích (jeden blok je 16 32-bitových slov): nejprve definujeme 3 funkce, které použijeme v následujícím algoritmu: o F(X,Y,Z) = (X AND Y) OR (NOT(X) AND Z) o G(X,Y,Z) = (X AND Y) OR (X AND Z) OR (Y AND Z) o H(X,Y,Z) = X XOR Y XOR Z zkopíruj blok i do X; For j = 0 to 15 do Set X[j] to M[i*16+j]. end zkopíruj A do AA, B do BB, C do CC, D do DD; AA = A BB = B CC = C DD = D první kolo nechť [abcd k s] znamená a = (a + F(b,c,d) + X[k]) <<< s, kde X <<< s znamená 32-bitovou hodnotu cyklicky posunutou doleva o s bitů; [ABCD 0 3] [DABC 1 7] [CDAB 2 11] [BCDA 3 19] [ABCD 4 3] [DABC 5 7] [CDAB 6 11] [BCDA 7 19] [ABCD 8 3] [DABC 9 7] [CDAB 10 11] [BCDA 11 19] [ABCD 12 3] [DABC 13 7] [CDAB 14 11] [BCDA 15 19] druhé kolo nechť [abcd k s] znamená a = (a + G(b,c,d) + X[k] + 5A827999) <<< s; [ABCD 0 3] [DABC 4 5] [CDAB 8 9] [BCDA 12 13] [ABCD 1 3] [DABC 5 5] [CDAB 9 9] [BCDA 13 13] [ABCD 2 3] [DABC 6 5] [CDAB 10 9] [BCDA 14 13] 3

[ABCD 3 3] [DABC 7 5] [CDAB 11 9] [BCDA 15 13] třetí kolo nechť [abcd k s] znamená a = (a + H(b,c,d) + X[k] + 6ED9EBA1) <<< s; [ABCD 0 3] [DABC 8 9] [CDAB 4 11] [BCDA 12 15] [ABCD 2 3] [DABC 10 9] [CDAB 6 11] [BCDA 14 15] [ABCD 1 3] [DABC 9 9] [CDAB 5 11] [BCDA 13 15] [ABCD 3 3] [DABC 11 9] [CDAB 7 11] [BCDA 15 15] updatování bufferů. A = A + AA B = B + BB C = C + CC D = D + DD 5. Výstupem algoritmu je zřetězení bufferů A, B, C a D. 3.2 Message-Diggest Algorithm 5 (MD5) Algoritmus MD5 navazuje přímo na svého předchůdce MD4 a byl publikován roku 1991. Jeho autorem je opět Ron Rivest a přesná specifikace algoritmu je v RFC 1321 - The MD5 Message-Digest Algorithm [103]. Tento algoritmus se stále využívá, přestože již není považován za bezpečný. Významnější problémy byly nalezeny a publikovány v roce 2004 [104] popis, jak vytvořit dva soubory, které sdílí MD5 hash. Algoritmus je velmi podobný svému předchůdci a mezi hlavní rozlíly patří [103]: bylo přídáno 4. kolo; v každém kroku přidáváme unikátní konstantu; funkce G v druhém kole byla změněna; rychlejší lavinový efekt. 3.3 Secure Hash Algorithm 1 (SHA-1) Hashovací funkce SHA-1 byla vydána v roce 1993 ve spolupráci National Institute of Standards and Technology (NIST) a National Security Agency (NSA). Nejnovější verze je standardizována jako FIPS 180-1 1995 [105] a RFC3174 US Secure Hash Algorithm 1 (SHA1) [106]. Tato funkce opět staví na základech vytvořených hashovacími funkcemi MD4 a MD5, ale je komplikovanější než tyto dvě funkce. SHA-1 produkuje 160-bitový hash a od roku 2010 je doporučeno nepoužívat tuto funkci pro aplikace, ve kterých se vyžaduje vyšší bezpečnost. Mezi hlavní použití potom patří protokoly Transport Layer Security (TLS), Secure Sockets Layer (SSL), Pretty Good Privacy (PGP), Secure Shell (SSH), Secure/Multipurpose Internet Mail Extensions (S/MIME) a IP Security (IPSec). Schématický zápis algoritmu potom vypadá následně [106]: 1. Doplnění zprávy na jednotnou délku stejné jako u MD4 a MD5. 2. Doplnění délky zprávy stejné jako u MD4 a MD5. 3. Inicializace bufferů tentokrát používáme 5 bufferů místo 4. 4. Samotný algoritmus tentokrát mnohem složitější, zprávu dělíme po 512-bitech. Ty uložíme jako 16 slov a dalších 64 vygenerujeme. Provedeme 4 kola stejně jako u MD5, přičemž v každém kole využíváme jinou funkci a jiné konstanty. Každé kolo obsahuje 20 iterací. Nakonec se updatují buffery. 5. Výsledkem jsou zřetězené buffery. 4

3.4 Secure Hash Algorithm 2 (SHA-2) Hashovací funkce SHA-2 je následníkem hashovací funkce SHA-1. Byla vydána opět ve spolupráci NIST a NSA v roce 2002. Nové verze jsou následující SHA-256, SHA-384, SHA-512. Čísla ve jménech funkce odpovídají délce výsledného hashe. Aktuálním standardem pro SHA-2 je FIPS 180-2 2002 [107]. Další verze byla poté přidána v roce 2007 a délka výsledného hashe je v tomto případě 224 bitů. Standardem pro tuto funkci je FIPS 180-3 2007 [108]. Zatím nebyly nalezeny žádné bezpečnostní problémy spojené s touto hashovací funkcí. Strukta je velice podobná funkci SHA-1, nicméně úroveň bezpečnosti je vyšší. 3.5 WHIRLPOOL Jedná se o méně známou hashovací funkci, která byla vytvořena Vincenterm Rijmenem (který spolupracoval na vytvoření AES algoritmu) a Paulem Barretem. První verze Whirlpool-0 byla publikována v roce 2000. Druhá verze Whirlpool-T byla vybrána pro New European Schemes for Signatures, Integrity and Encryption (NESSIE) projekt. Třetí a poslední verze byla vydaná a přijata jako International Organization for Standardization (ISO) standard ISO/IEC ISO-10118-3:2004. Whirlpool používá upravený AES algoritmus jako svůj základ a produkuje hash délky 512 bitů. Jedná se o relativně nový návrh, takže stále není dostatek zkušeností s touto funkcí. Výkon je o něco lepší než v případě SHA funkcí, ovšem i za vyšších požadavků na hardware. 3.6 Secure Hash Algorithm 3 (SHA-3) Přestože se zatím neobjevily žádné zranitelnosti v hashovacích funkcích z rodiny SHA-2, z historických zkušeností se dá předpokládat, že se tak nakonec stane. Z tohoto důvodu byla již v roce 2008 vyhlášena otevřená soutěž, která má za úkol najít nástupce SHA-2, zatím označovaného jako SHA-3. Soutěž stále probíhá a vítěz se očekává během tohoto roku (2012). Do sotěže se příhlásilo 64 účastníků, z nichž byl povolen vstup do prvního kola pouze 51. Do druhého kola potom postoupilo 14 kandidátů. Nedávno byli vyhlášeni finalisté soutěže a těmi se stali BLAKE, Grøstl, JH, Keccak a Skein. Veškeré informace, které se vzathují k jednotlivým funkcím a také k celé soutěži, je možné najít na internetových stránkách organizace [109]. 4 Seznam použité literatury [1] RIVEST, R. RFC 1320 The MD4 Message-Digest Algorithm [online]. 1992. [cit. 20. března 2012]. Dostupné na: <http://www.faqs.org/rfcs/rfc1320.html>. [2] DOBBERTIN, H. Cryptanalysis of MD4 [online]. 1995. [cit. 20. března 2012]. Dostupné na: <http://www.springerlink.com/content/pkunhyvv7e5d9tbd>. [3] RIVEST, R. The MD5 Message-Digest Algorithm [online]. 1992. [cit. 20. března 2012]. Dostupné na: <http://www.ietf.org/rfc/rfc1321.txt>. [4] BLACK, J., COCHRAN, M., HIGHLAND, T. A Study of the MD5 Attacks: Insights and Improvements [online]. 2006. [cit. 25. března 2012]. Dostupné na: <http://www.cs.colorado.edu/~jrblack/papers/md5e-full.pdf>. 5

[5] FIPS PUB 180-1 Secure Hash Standard [online]. 1995. [cit. 25. března 2012]. Dostupné na: <http://www.itl.nist.gov/fipspubs/fip180-1.htm>. [6] EASTLAKE, D., JONES, P. RFC 3174 US Secure Hash Algorithm 1 (SHA1) [online]. [cit. 25. března 2012]. Dostupné na: <http://www.faqs.org/rfcs/ rfc3174.html#b>. [7] FIPS PUB 180-2 Secure Hash Standard [online]. 2002. [cit. 25. března 2012]. Dostupné na: <http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf>. [8] FIPS PUB 180-3 Secure Hash Standard [online]. 2008. [cit. 26. března 2012]. Dostupné na: <http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf>. [9] NIST Computer Security Division [online]. [cit. 26. března 2012]. Dostupné na: <http://csrc.nist.gov/groups/st/hash/sha-3/index.html>. 6