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

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

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

Hashovací funkce. Andrew Kozlík KA MFF UK

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

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,

Vlastimil Klíma. Seminár Bezpecnost Informacních Systému v praxi, MFF UK Praha,

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

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

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

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

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

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

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

Pokročilá kryptologie

Karel Kohout 18. května 2010

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

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

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

Datové struktury 2: Rozptylovací tabulky

Aplikovaná numerická matematika - ANM

Andrew Kozlík KA MFF UK

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

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

Aplikovaná numerická matematika

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

4. Teorie informace, teorie složitosti algoritmů. doc. Ing. Róbert Lórencz, CSc.

Pokročilá kryptologie

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í

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

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

Konstrukce šifer. Andrew Kozlík KA MFF UK

Crypto-World. Informační sešit GCUCMP. 11/ speciál

Vybrané útoky proti hašovací funkci MD5

Pokročilá kryptologie

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

asymetrická kryptografie

vá ro ko Sý ětuše Kv

Lineární algebra : Násobení matic a inverzní matice

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

Nedůvěřujte kryptologům

Dynamické programování

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

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

Báze a dimenze vektorových prostorů

Data Encryption Standard (DES)

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

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

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

Informatika / bezpečnost


PA159 - Bezpečnostní aspekty

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

Komerční výrobky pro kvantovou kryptografii

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

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

Správa přístupu PS3-2

Kryptografie - Síla šifer

Základy algoritmizace. Hašování

9. DSA, PKI a infrastruktura. doc. Ing. Róbert Lórencz, CSc.

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

PV157 Autentizace a řízení přístupu

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

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

Matematika B101MA1, B101MA2

ČESKÁ TECHNICKÁ NORMA

UKRY - Symetrické blokové šifry

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vzdálenost jednoznačnosti a absolutně

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Struktura a architektura počítačů (BI-SAP) 5

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

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

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

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Symetrické šifry, DES

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

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

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

Lineární algebra : Lineární (ne)závislost

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

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

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

Crypto-World Informační sešit GCUCMP ISSN

MODERNÍ METODY OVĚŘENÍ IDENTITY UŽIVATELŮ

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

Hashovací funkce a SHA 3

Informatika Ochrana dat

Směry rozvoje v oblasti ochrany informací PS 7

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

DIPLOMOVÁ PRÁCE. Matematické základy Stevensova algoritmu

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

Základy matematické analýzy

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.

Řešení rekurentních rovnic 2. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 11

Informace, kódování a redundance

Fakt. Každou soustavu n lineárních ODR řádů n i lze eliminací převést ekvivalentně na jednu lineární ODR

Transkript:

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ů Informatika pro novou fakultu ČVUT je spolufinancována Evropským sociálním fondem a rozpočtem Hlavního města Prahy v rámci Operačního programu Praha adaptabilita (OPPA) projektem CZ.2.17/3.1.00/31952 Příprava a zavedení nových studijních programů Informatika na ČVUT v Praze. Praha & EU: Investujeme do vaší budoucnosti R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 1 / 28

Obsah přednášky Hašovací funkce MD5 SHA-x HMAC R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 2 / 28

Hašovací funkce (4) Vstup a výstup hašovací funkce Hašovací funkce h zpracovává prakticky neomezeně dlouhá vstupní data M na krátký výstupní hašový kód h(m) pevné a předem stanovené délky n bitů. Například u hašovacích funkcí MD5/SHA-1/SHA-256/SHA-512 je to 128/160/256/512 bitů. Hašovací funkce jako náhodné orákulum Z hlediska bezpečnosti požadujeme, aby se hašovací funkce chovala jako náhodné orákulum. Odtud se odvozují bezpečnostní vlastnosti. Orákulum nazýváme libovolný stroj ("podivuhodných vlastností"), který na základě vstupu odpovídá nějakým výstupem. Má pouze vlastnost, že na tentýž vstup odpovídá stejným výstupem. Náhodné orákulum je orákulum, které na nový vstup odpovídá náhodným výběrem výstupu z množiny výstupů. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 3 / 28

Hašovací funkce (5) Odolnost proti kolizi 1. a 2. řádu, bezkoliznost 1. a 2. řádu Definice Bezkoliznost 1. řádu Je odolnost proti kolizi a požaduje, aby bylo výpočetně nezvládnutelné nalezení libovolných dvou různých (byt nesmyslných) zpráv M a M tak, že h(m) = h(m ). Pokud se toto stane, říkáme, že jsme nalezli kolizi. Bezkoliznost se zásadně využívá k digitálním podpisům. Nepodepisuje se přímo zpráva (často dlouhá), ale pouze její haš. Bezkoliznost zaručuje, že není možné nalézt dva dokumenty se stejnou haší. Proto můžeme podepisovat haš. Definice Bezkoliznost 2. řádu Hašovací funkce h je odolná proti nalezení 2. vzoru, jestliže pro daný náhodný vzor x je výpočetně nezvládnutelné nalézt 2. vzor y x tak, že h(x) = h(y). R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 4 / 28

Hašovací funkce (6) Odolnost proti nalezení kolize 1. řádu Pokud se hašovací funkce f : {0, 1} d {0, 1} n bude chovat jako náhodné orákulum složitost nalezení kolize s 50% pravděpodobností je 2 n 2, namísto očekávaných 2 n 1 Tato složitost nalezení kolize 2 n 2 vyplývá z tzv. narozeninového paradoxu (viz dále). Například pro 160 bitový hašový kód bychom očekávali 2 160 zpráv, paradoxně je to pouhých 2 80 zpráv. U náhodného orákula neznáme rychlejší cestu nalézání kolizí. Odolnost proti nalezení kolize 2. řádu Pokud se hašovací funkce f : {0, 1} d {0, 1} n bude chovat jako náhodné orákulum složitost nalezení 2. vzoru je 2 n. Když víme, jak vzory nalézat jednodušeji, a to bud v případě kolizí 1. nebo 2. řádu hovoříme o prolomení hašovací funkce. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 5 / 28

Hašovací funkce (7) Pojem bezkoliznosti Pokud máme hašovací funkci MD5 možných zpráv je mnoho (1 + 2 1 + + 2 d ), kde d = 2 64 1 a hašovacích kódů pouze 2 128 existuje ohromné množství zpráv vedoucích na tentýž hašový kód, v průměru je to řádově 2 d 127. M M d+1 d D 64 h(m)=h(m ) Kolizí existuje velké množství, ale nalezení jen jedné kolize je nad naše výpočetní možnosti, i když zohledníme narozeninový paradox. Z principu definice hašovací funkce plyne: jak existence obrovského množství kolizí, ale stejně tak skutečnost, že nalezení těchto kolizí je pro nás příliš těžká a výpočetně neproveditelná úloha. 128 128 R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 6 / 28

Hašovací funkce (8) Narozeninový paradox Otázka: Jak velká musí být množina náhodných zpráv, aby v ní s nezanedbatelnou pravděpodobností existovaly dvě různé zprávy se stejnou haší? Narozeninový paradox říká, že pro n-bitovou hašovací funkci nastává kolize s cca 50% pravděpodobností v množině 2 n 2 zpráv, namísto očekávaných 2 n 1. Tvrzení Mějme množinu M n různých koulí a proved me výběr k koulí po jedné s vracením do množiny M. Potom pravděpodobnost, že vybereme některou kouli dvakrát nebo vícekrát je P(n, k) = 1 Pro k = O(n 1 2 ) a n velké je P(n, k) 1 exp( k 2 2n ). n(n 1) (n k + 1) n k. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 7 / 28

Hašovací funkce (9) Důsledek Pro m velké se ve výběru k = (2n ln 2) 1 2 n 1 2 prvků z M s cca 50% pravděpodobností naleznou dva prvky shodné. Obecně pro hašovací funkce s n bitovým hašovacím kódem postačí zhašovat 2 n 2 zpráv, abychom přibližně s 50% pravděpodobností našli kolizi. Platí: P(365, 23) = 0.507. 23 náhodně vybraných lidí postačí k tomu, aby se mezi nimi s cca 50% pravděpodobností našla dvojice, slavící narozeniny tentýž den. U skupiny 30 lidí je P(365, 30) = 0.706. Paradox, protože obvykle to vnímáme ve smyslu "kolik lidí je potřeba, aby se k danému člověku našel jiný, slavící narozeniny ve stejný den". V této podbízející se interpretaci hledáme jedny konkrétní narozeniny, nikoli "jakékoliv shodné"narozeniny. Oba přístupy odráží rozdíl mezi kolizí 1.řádu (libovolní 2 lidé) a 2. řádu (nalezení 2. člověka k danému). R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 8 / 28

Hašovací funkce (10) Konstrukce moderních hašovacích funkcí U moderních hašovacích funkcí může být zpráva velmi dlouhá, například d = 2 64 1 bitů zpracovávání po částech, ne najednou. Také v komunikacích zprávu dostáváme po částech a nemůžeme ji z pamět ových důvodů ukládat celou pro jednorázové zhašování nutnost hašování zprávy po blocích a sekvenční způsob nutnost zarovnání vstupní zprávy na celistvý počet bloků před hašováním. Zarovnání musí být bezkolizní a také proto musí umožňovat jednoznačné odejmutí. Dále budeme předpokládat, že máme hašovací funkci o n-bitovém hašovacím kódu a zprávu M zarovnanou na m-bitové bloky M 1,, M N. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 9 / 28

Hašovací funkce (11) Zarovnání Zarovnání musí být takové, aby umožňovalo jednoznačné odejmutí, jinak by vznikaly jednoduché kolize. Například při doplnění zprávy nulovými bity by nešlo rozeznat, kolik jich bylo doplněno, a zda některé z nich nejsou platnými bity zprávy, pokud by zpráva nulovými bity končila. Příklad: Doplněná zpráva 10111100110101000000000000000000000000000 by byla doplněním zpráv 10111100110101 101111001101010 1011110011010100 10111100110101000... 10111100110101000000000000000000000000000 Všechny zprávy by vedly ke kolizi, měly by stejný hašový kód, nastala by dokonce vícenásobná kolize. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 10 / 28

Hašovací funkce (12) Zarovnání u nových hašovacích funkcí se definuje jako doplnění bitem 1 a poté potřebným počtem bitů 0 jednoznačné odejmutí doplňku. Damgard-Merklovo zesílení doplnění o délku původní zprávy Doplnění ilustruje obrázek (viz dále) pro blok délky n = 512, který je použit u MD4, MD5, SHA-0, SHA-1, SHA-256. Zpráva M je nejprve doplněna bitem 1 bity 0 (může jich být 1 512) tak, aby do celistvého násobku 512 bitů zbývalo ještě 64 bitů. 64 bitů je vyplněno 64 bitovou hodnotou # bitů původní zprávy M. Délka zprávy je součástí hašovacího procesu. 64 bitů na délku zprávy umožňuje hašovat zprávy až do délky d = 2 64 1 bitů. Začleněním informace o délce původní zprávy eliminujeme případné útoky. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 11 / 28

Hašovací funkce (13) Současné prakticky používané hašovací funkce používají Damgard-Merklův (DM) princip iterativní hašovací funkce s využitím kompresní funkce f. f zpracovává aktuální blok zprávy M i a výsledek je určitá hodnota, tzv. kontext a označuje H i. Hodnota H i nutně tvoří vstup do f M i v dalším kroku. f má tedy dva vstupy: H i 1 a aktuální M i. Výstupem je nové H i. Damgard-Merklova konstrukce Tato iterativní konstrukce je popsána vzorcem H i = f (H i 1, M i ), H i-1 f H i H 0 = IV, kompresní funkce f která se nazývá Damgard-Merklova metoda. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 12 / 28

Hašovací funkce (14) Hašování probíhá postupně po jednotlivých blocích M i v cyklu podle i od 1 do N. f v i-tém kroku (i = 1,..., N) zpracuje vždy dané H i 1 a blok M i na nové H i. Šíře H i je většinou stejná jako šíře výstupního kódu. Počáteční hodnota kontextu H 0 se nazývá inicializační hodnota IV. Je dodefinována jako konstanta daná v popisu každé iterativní hašovací funkce. f zpracovává širší vstup (H i 1, M i ) na mnohem kratší H i f je skutečně kompresní. Blok M i se promítne do H i, ale současně dochází ke ztrátě informace (šířka kontextu H 0, H 1,..., H i,... zůstává stále stejná). Kontextem bývá obvykle několik 16b nebo 32b slov. Po zhašování posledního bloku M N dostáváme H N, z něhož bereme bud celou délku, nebo část jako výslednou haš. (MD5 má šířku kontextu 128 bitů a výslednou haš tvoří všech 128 bitů H N ). R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 13 / 28

Hašovací funkce (15) Doplňování, kompresní funkce a iterativní hašovací funkce n e c 1 423 64 01100001 01100010 01100011 1 0...0 0...011000 Damgard-Merklův......hašovacích... M... text... ko nec doplněk M1 M 2 M 3... M i... M N IV f f H i-1 f H i f H N kompresní funkce f iterativní hašovací funkce R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 14 / 28

Hašovací funkce (16) Kolize kompresní funkce Kolize kompresní funkce f spočívá v nalezení inicializační hodnoty H a dvou různých bloků B 1 a B 2 tak, že f (H, B 1 ) = f (H, B 2 ). Bezpečnost Damgard-Merklovy konstrukce Pokud je hašovací funkce bezkolizní, vyplývá odtud i bezkoliznost kompresní funkce. Důkaz je triviální pro zprávu tvořící jeden blok, ale je-li kompresní funkce bezkolizní, obecně odtud nevyplývá, že je bezkolizní i hašovací funkce. U DM konstrukce to bylo dokázáno, že pokud je kompresní funkce bezkolizní bezkolizní také iterovaná hašovací funkce, konstruovaná z ní výše uvedeným postupem. Tato vlastnost DM konstrukce je bezpečnostním základem všech moderních hašovacích funkcí je možné se soustředit na nalezení kvalitní kompresní funkce. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 15 / 28

Hašovací funkce (17) Konstrukce kompresní funkce Kompresní funkce musí být velmi robustní, aby zajistila dokonalé promíchání bitů zprávy a jednocestnost. Konstruovat kompresní funkce na bázi blokových šifer splňuje požadavek na jednocestnost a požadavek na jejich chování jako náhodné orákulum. Kvalitní bloková šifra E k (x) je jednosměrná vzhledem k pevnému klíči k při znalosti jakékoliv množiny vstupů-výstupů, tj. OT-ŠT (x, y), nemůžeme odtud určit (díky složitosti) klíč k. Přesněji, pro každé x je funkce k E k (x) jednocestná. Odtud vyplývá možnost konstrukce kompresní funkce: H i = f (H i 1, M i, ) = E Mi (H i 1 ). Vezměme hašování krátké zprávy, která i se zarovnáním tvoří 1 blok. Máme H 1 = E M1 (IV) z hodnoty hašového kódu H 1 nejsme schopni určit M 1, čili máme zaručenu vlastnost jednocestnosti. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 16 / 28

Hašovací funkce (18) Davies-Meyerova konstrukce kompresní funkce Davies-Meyerova konstrukce kompresní funkce pak zesiluje vlastnost jednocestnosti ještě přičtením (XOR) vzoru před výstupem: H i = f (H i 1, M i ) = E Mi (H i 1 ) H i 1. Výstup je zde tedy navíc maskován vstupem, což ještě více ztěžuje případný zpětný chod. Blok zprávy M i je obvykle větší než klíče blokových šifer se aplikuje bloková šifra několikrát za sebou v rundách. Rundovní klíč je postupně čerpán z bloku M i. Na schématu MD5 vidíme způsob, jakým je blok zprávy M i v blokové šifře v 16 rundách po částech používán jako rundovní klíč. Navíc se tento stavební blok ještě 4 opakuje každá část bloku M i se projeví na místě klíče dokonce 4 (paradoxně se této fázi někdy říká příprava klíče). R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 17 / 28

Hašovací funkce (19) Kompresní a hašovací funkce MD5 Kontext H i (128 b) tvoří 4 32b slova A, B, C a D ( obrázek ). M i je 512b blok zprávy a je rozdělen na 16 32b slov m 0, m 1,..., m 15. Ze schématu MD5 vidíme, že v kompresní funkci se kontext "zašifruje"vždy jedním 32b slovem m i. Na místě dílčí funkce F v obrázku se po 16 rundách střídají 4 různé (nelineární i lineární) funkce (F, G, H, I) a v každé rundě se využívá jiná konstanta K i. Tato posloupnost je opakována 4x za sebou v různých permutacích m i z M i. Po 64 rundách je přičten původní kontext H i 1 k výsledku podle Davies-Meyerovy konstrukce (XOR je nahrazen arit. součtem modulo 2 32 ). Tak vznikne nový kontext H i. Pokud by zpráva M měla jen 1 blok, byl by kontext (A, B, C, D) celkovým výsledkem, jinak se pokračuje stejným způsobem v hašování 2. bloku zprávy M 2 jakoby se vstupní hodnotou H 1. Po zpracování bloku M N máme v registrech výsledný 128b haš H N. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 18 / 28

Hašovací funkce (20) Permutace m i v bloku M i pro rundy 16 až 63 p(i) = 1 + 5i 16 p(i) = 5 + 3i 16 p(i) = 7i 16 Pro hodnoty i = 0, 1, 2,..., 15 m i m p(i). Logické funkce F, G, H, I F(b, c, d) (b c) (b d) G(b, c, d) (b d) (c d) H(b, c, d) b c d I(b, c, d) c (b d) Hodnota s, která udává počet rotací doleva je číslo rundy. Všechny modulární operace součtu jsou vykonáváné modulo 2 32. Pro každou rundu je dána konstanta K i, pro i = 1, 2,..., 64. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 19 / 28

Hašovací funkce (21) Algoritmus SHA-1 Algoritmus SHA (Secure Hash Algorithm) byl zavedený NIST a publikovaný v normě FIPS 180 (1993). Revidovaná verze SHA 1 v normě FIPS 180 1 (1995). SHA 1 umožňuje zpracovat zprávu M s maximální délkou 2 64 1 bitů a představuje výstupní hašoví kód s délkou 160b. Vstupní zpráva M je zpracována po blocích z velkosí 512b. Z obrázku můžeme vidět, že způsob předzpracování zprávy je téměř shodný se způsobem zpracování zprávy u MD5. Jediný rozdíl je v šířce kontextu, tj. ve velikosti hašového kódu, který je u SHA-1 160b. Na rozdíl od MD5 má SHA-1 o jeden vstupně/výstupní 32b registr E kompresní funkce f navíc. Na schématu SHA-1 vidíme zapojení kompresní funkce SHA-1, která zpracovává jeden 512b blok M i zprávy M. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 20 / 28

Hašovací funkce (22) Blok zprávy M i je zpracováván v 4 20 rundách. 160 bitový kontext (opět začínáme s inicializačním vektorem IV ) je postupně "zašifrováván"32b slovem m i pro rundy 0, 1,..., 15 a pro rundy 16, 18,..., 79 32b slovem w i, pro které platí: w i =<<< 1 (w i 16 w i 14 w i 8 w i 3 ), kde i = 16, 17,..., 79. Znovu na místě funkce F v obrázku se po 20 rundách střídají 4 různé funkce (F, G, H, I) a v každé rundě se využívá jiná konstanta K i. Pro výpočet hodnot funkcí F, G, H, I platí: Logické funkce F, G, H, I F(b, c, d) (b c) (b d) G(b, c, d) b c d H(b, c, d) (b c) (b d) (c d) I(b, c, d) b c d R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 21 / 28

Hašovací funkce (23) Po 80 rundách je i u této kompresní funkce přičten modulo 2 32 původní kontext H i 1 k výsledku podle Davies-Meyerovy konstrukce. Přičitání je prováděno po 32b slovech. Po zpracování bloku M N máme v registrech A, B, C, D, E, F výslednou 160b haš H N. Pro konstantu K i platí: Runda Hexadecimální K i Celočíselná část 0 i 19 K i =5A927999 (2 30 2) 20 i 39 K i =6ED9EBA1 (2 30 3) 40 i 59 K i =8F1BBCDC (2 30 5) 60 i 79 K i =CA62C1D6 (2 30 10) Inicializační vektor IV má hodnoty (hexadecimálně): A= 67452301, B = EFCDAB89, C= 98BADCFE D= 10325476, E= C3D2E1F0 R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 22 / 28

Hašovací funkce (24) Inovace standardu FIPS 180-1 na FIPS 180-2 byly zavedeny 3 nové hašovací algoritmy: SHA-256, SHA-384 a SHA-512. Základní vlastnosti hašovacích funkcí SHA-x SHA-1 SHA-256 SHA-384 SHA-512 Délka haš. kódu 160 256 384 512 Délka zprávy < 2 64 < 2 64 < 2 128 < 2 128 Velikost bloku 512 512 1024 1024 Velikost slova 32 32 64 84 # rund f 80 80 80 80 Bezpečnost v bitech 80 128 192 256 Nejvýznamnější rozdíly jsou v délce hašového kódu, který určuje odolnost hašového kódu vůči nalezení kolizí 1. a 2. řádů. Na druhé straně struktura hašovacích funkcí (kompresních funkcí) je téměř stejná. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 23 / 28

Hašovací funkce (25) Kryptografické využití hašovacích funkcí Kontrola integrity (kontrola shodnosti velkých souborů dat). Automatické dešifrování (souboru, disku apod.). Ukládání a kontrola přihlašovacích hesel. Pro vyloučení slovníkových útoků se používá ještě metoda solení. S otiskem hesla se vygeneruje náhodný řetězec "sůl", který je dohromady hašován s heslem. Databáze obsahuje dvojici: (sůl, haš(heslo, sůl)). Prokazování autorství. Jednoznačná identifikace dat (jednoznačná reprezentace vzoru, digitální otisk dat, jednoznačný identifikátor dat, to vše zejména pro digitální podpisy). Prokazování znalosti. Autentizace původu dat. Nepadělatelná kontrola integrity. Pseudonáhodné generátory, derivace klíčů. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 24 / 28

Hašovací funkce (26) Algoritmus HMAC Klíčované hašové autentizační kódy zpráv HMAC zpracovávají hašováním nejen zprávu M, ale spolu s ní i nějaký tajný klíč K. Jsou proto podobné autentizačnímu kódu zprávy MAC, ale místo blokové šifry využívají hašovací funkci. Používají se jak k nepadělatelnému zabezpečení zpráv, tak k autentizaci (prokazováním znalosti tajného klíče K). HMAC je obecná konstrukce, která využívá obecnou hašovací funkci. Podle toho, jakou hašovací funkci používá konkrétně, se označuje výsledek, například HMAC-SHA-1(M, K) používá SHA-1, M je zpráva a K je tajný klíč. HMAC je definován ve standardu FIPS-PUB-198. Definice závisí na tom, kolik bajtů má blok kompresní funkce. Například u SHA-1 je 64B (512b), u SHA- 384 a SHA-512 to je 128B (1024b). R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 25 / 28

Hašovací funkce (27) Algoritmus HMAC Definujeme konstantní řetězce ipad jako řetězec b/8 bajtů s hodnotou 0x36 (0011 0110) a opad jako řetězec b/8 bajtů s hodnotou 0x5C (0101 1100). Klíč K (log 2 K n, kde n je délka hašového kódu) doplníme bity 0 vlevo od MSB bitu klíče do délky b-bitů a označíme ho K +. Definujeme hodnotu HMAC K (M) jako ( HMAC K (M) = H (K + opad) H ( (K + ipad) M ) ), kde označuje zřetězení. Operace "doplnění na b bitů"(viz. obrázek) je prováděna stejným způsobem, jako doplnění zprávy u hašovací funkce do celého bloku. Doplnění bude vždy jenom do 1 bloku, protože při použití MD5 nebo SHA-x platí: délka hašového kódu < velikost bloku 64 [b]. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 26 / 28

Hašovací funkce (28) Struktura algoritmu HMAC K + ipad XOR b bitů b bitů b bitů S i M 0 M 1 M N-1 K + opad XOR b IV n Hašovací funkce h n H(S i M) n doplnění na b bitů S o IV n Hašovací funkce h n HMAC K(M) R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 27 / 28

Hašovací funkce (29) Nepadělatelný integritní kód, autentizace původu dat Zabezpečovací kód HMAC K (M) pokud je připojen za zprávu M, detekuje neúmyslnou chybu při jejím přenosu. Zabraňuje útočníkovi změnit zprávu a současně změnit HMAC, protože bez znalosti klíče K nelze nový HMAC vypočítat HMAC nepadělatelný integritní kód (neposkytuje samotná haš). Pro komunikujícího partnera je správný HMAC autentizací původu dat, protože odesílatel musel znát hodnotu tajného klíče K. Průkaz znalosti při autentizaci entit HMAC může být použit jako průkaz znalosti tajného sdíleného tajemství klíč K při autentizaci entit. Dotazovatel odešle náhodnou výzvu (řetězec) challenge a od prokazovatele obdrží odpověd response = HMAC K (challenge) prokazovatel zná tajný klíč K. Útočník na komunikačním kanálu z hodnoty response klíč K nemůže odvodit. R. Lórencz (ČVUT FIT) Hašovací funkce, MD5, SHA-x, HMAC BI-BEZ, 2011, Předn. 5. 28 / 28