190 likes | 512 Views
Hašovacie Funkcie. Autor: Tomáš Komačka Štud. Skupina: 34E30 Akad. Rok: 2013/2014. V kryptografii rozoznávame tri základné služby dôvernosť ( confidentality ) dostupnosť ( availability )
E N D
Hašovacie Funkcie Autor: Tomáš Komačka Štud. Skupina: 34E30 Akad. Rok: 2013/2014
V kryptografii rozoznávame tri základné služby • dôvernosť (confidentality) • dostupnosť (availability) • integrita a autentizácia (integrity and authentification) • Hašovacie funkcie v kryptografii zabezpečujú predovšetkým integritu správ. To znamená, že zabezpečujú, aby správa nemohla byť pozmenená treťou osobou. Preto sú tieto hašovacie funkcie často označované ako MDC (z angl. Modification Detection Code). 2/17
Definícia Hašovacej funkcie • je funkcia, ktorá transformuje správu s ľubovoľnou dĺžkou na výstupnú hodnotu vyjadrenú fixným počtom bitov bez použitia kľúča. Výstupná hodnota označovaná ako hašovací kód slúži ako identifikátor. • Formálne môžeme hašovaciu funkciu vyjadriť ako zobrazenie H, ktoré teoreticky ľubovoľne dlhej správe M priradzuje odtlačok h dĺžky n: • M- správa, H- Hašovacia funkcia , h- haš, hašovací kód M H h= H(M) 3/17
Kolízia hašovacej funkcie • Kolíziou hašovacej funkcie nazývame stav, kedy existujú dve rôzne správy M1 a M2, ktoré majú pre danú hašovaciu funkciu H rovnaké odtlačky: • $M1¹ M2: H ( M1 ) = H( M2) M1 H h1 = h2 M2 H /17 4
Základné vlastnosti Hašovacích funkcií • Lavínový prenos chyby (Avalanche effect)- iteračný algoritmus, kedy nasledujúci výstup závisí od predchádzajúceho. • Jednocestnosť (One-Way function) Musí byť jednoduché vypočítať zo znalosti správy M odtlačok h, ale naopak to nie je možné, teda nevieme nájsť také M (a ani jeho fragment), pre ktoré platí h = H(M) jednoduché M h=H(M) Prakticky nemožné 5/17
Slabá odolnosť voči kolíziám (2nd Preimage Resistance) • poznáme jednu správu M1 a jej odtlačok h = H(M1) • hľadáme inú správu M2 pre ktorú by platilo: H ( M1 ) = H( M2) Pr.: Predstavme si útočníka, ktorý chce zmeniť údaj o sume na elektronickom šeku tak, že k uvedenej čiastke pridá dve nuly. Týmto však zmení odtlačok správy. Aby odtlačok zodpovedal, musel by nájsť inú správu, ktorá by mala rovnaký odtlačok. Koľko správ musí vygenerovať, aby sa mu to podarilo s pravdepodobnosťou P = 50%? Odtlačok je tvorený SHA-1 (veľkosť n = 160 bitov) 6 /17
Na to, aby útočník s pravdepodobnosťou P našiel vhodnú správu by musel vygenerovať k správ: kde N je počet správ s rôznymi odtlačkami N = 2n • Po dosadení dostávame k ≈ 0,7.2160 správ, teda útočník nemá šancu 7/17
Silná odolnosť voči kolíziám (Collision Resistance) • hľadáme ľubovoľnú dvojicu správ M1 a M2 , pre ktorú by platilo: H ( M1 ) = H( M2) • fakt, že ide o iný prípad ako to bolo u slabej odolnosti nazývame narodeninový paradox Pr.: Predstavme si útočníka, ktorý chce nájsť dvojicu M1 aM2Koľko správ musí vygenerovať, aby sa mu to podarilo s pravdepodobnosťou P = 50%? Odtlačok je opäť tvorený algoritmom SHA-1 (veľkosť n = 160 bitov) 8 /17
Na to, aby útočník s pravdepodobnosťou P našiel vhodnú správu by musel vygenerovať k* správ: kde N je počet správ s rôznymi odtlačkami N = 2n • Po dosadení dostávame k* ≈ 0,83.280 správ. To je omnoho menej (asi 280krát menej). • Na základe tohto jednoduchého výpočtu vznikol tzv. narodeninový útok (birthday attack). Namiesto hľadania druhej správy do dvojice je omnoho jednoduchšie vygenerovať k* správ a skúšať, či niektoré dve nemajú rovnaký odtlačok. 9 /17
Všeobecný algoritmus Hašovacích funkcií • rozdelenie vstupu na bloky konštantnej dĺžky m, teda M = x1 x2 .... xk-1 • doplnenie posledného bloku (v angl. Padding) • doplnenie ďalšieho bloku dĺžky m s informáciou o dĺžke správy (pôvodná resp. výsledná dĺžka) • iterácie kompresnej funkcie f pričom platí: • voliteľná (nepovinná) výstupná transformácia g xk x2 x1 f f f g h IV hk-1 h1 10/17
Použitie hašovacích funkcií • Postup je založený na použitie symetrického šifrovania tajným kľúčom k, ktoré sa aplikujú na správu M a pripojený hašovací kód. Autentizácia správy je založená na tom, že iba A a B vlastnia tajný kľúč, teda správa pochádza od A a nebola modifikovaná , ak test zhodnosti hašovacieho kódu na prijímacej strane je pozitívny. Pretože šifrovanie sa aplikuje na celú správu a hašovací kód je zaručená aj dôvernosť správy. 12/17
Bezpečnosť hašovacích funkcií • Za výpočtovo bezpečné hašovacie funkcie sú pokladané jednocestné a bezkolízne funkcie. Na bezpečnosť hašovacích funkcií vplýva: • dĺžka hašovacieho kódu h • návrh kompresnej funkcie f • návrh hašovacej funkcie H 13/17
Kryptografické prelomenia hašovacích funkcií možno rozdeliť nasledovne: • Teoretické prelomenie K teoretickému prelomeniu dôjde, pokiaľ bol nájdený spôsob hľadania kolízii s nižšou zložitosťou než je odolnosť hašovacej funkcie. Kryptografická odolnosť je teda rovná 2dĺžka hašu. Pri krátkom haši je odolnosť exponenciálne nižšia. • Praktické prelomenie Praktické prelomenie predstavuje nájdenie už konkrétnych kolízii. Zložitosť ich hľadania súvisí s narodeninovým paradoxom, ktorý znižuje rád zložitosti na polovicu. Teda odolnosť je v praxi rovná 2dĺžka hašu/2. Pri krátkom haši je možné hľadanie kolízii previesť útokom hrubou silou – skúšanie všetkých možných kombinácii. 14/17
Záver • Hašovacie funkcie slúžia ako podporné články v kryptografii. Ich hlavnou úlohou je zabezpečenie kontroly integrity prijatej správy, pričom fungujú ako jednocestné kontrolné sumy. • Kryptoanalýza spočíva v hľadaní kolízií, teda stavov, keď dvom rôznym správam zodpovedá rovnaký odtlačok. • Ak je dĺžka odtlačku n = 160 bitov (napr. u SHA-1 algoritmu), existuje 2160 správ, ktoré majú rôzne odtlačky. Dobrá hašovacia funkcia by sa mala kolíziám vyhýbať, čo vedie k zväčšovaniu dĺžky odtlačku. V dnešnej dobe sa táto veľkosť posúva až k n = 512 bitov 15/17
Použitá literatúra: • Michal Mikuš – Kryptograficky silné hašovacie funkcie, Bratislava 2007 • Miloš Drutarovský – Hašovacie (jednocestné) funkcie • A. Menezes, P. van Oorschot, S. Vanstone - Handbook of Applied Cryptography, CRC Press 1996 • http://www.root.cz/clanky/vlastimil-klima-zcela-novy-koncept-hasovacich-funkci http://www.unixwiz.net/techtips/iguide-crypto-hashes.html • http://cryptography.hyperlink.cz/2006/tunely.pdf 16/17