52 - Hašovací funkce, klíčovaný haš a MAC a jejich použití a vlastnosti.
pondělí 29. května 2017
15:55
Hašovací funkce
Charakteristika zprávy, jednocestná funkce, message digest, one way function
Je to funkce F taková, že
Je aplikovatelná na argument libovolné velikosti
Její výstupní hodnota má konstatní délku (zpravidla 128, 160, 256 bitů)
Lze rychle spočíst F(x)
First preimage resistance
Pro dané y je výpočetně nezvládnutelné nalézt takové x, aby platilo F(x) = y
Jinak: K danému hashi y nenaleznu soubor, který by se na y hasoval
Second preimage resistance
Pro dané x je výpočetně nezvládnutelné nalézt takové x'<>x aby platilo F(x')=F(x)
Jinak: Mám soubor x. Neumím vytvořit soubor x' (jiný než x), který má stejný hash jako x
Collision resistance
Je výpočetně nezvládnutelné nalézt takové x' a x, x'<>x, aby platilo F(x')=F(x)
Jinak: Neumím vytvořit 2 soubory x a x', které se hashují na stejný hash
Pokud je funkce collision resistant tak je i 2nd preimage resistant
Aby byla zpráva collision resistant, tak potřebuje dvojnásobek bitů oproti first or second preimage (kvůli birthday paradoxu)
Máme 2 typy hash funkcí:
Klíčované: má 2 vstupy, zprávu a klíč. 
neklíčované
Příklady hash funkcí
MD2, MD4, MD5
SHS, SHA
Někdy je zprávu potřeba zarovnat na určitou velikost, aby mohla být zahashována:
Nejednoznačné zarovnání (Ambiguous Padding): připoj ke zprávě tolik nulových bitů, aby zpráva byla násobkem délky bloku
Jednoznačné zarovnání (Unambiguous Padding): připoj ke zprávě bit 1 a potom tolik nulových bitů, aby zpráva byla násobkem délky bloku
Obecný model iterované hashovací funkce
MD2
Zpráva se rozdělí do bloků
Vezme se prvníblok a XORne se s klíčem, provede se substituce a získáme první blok hashe
Druhý blok je potom XORován s prvním blokem hashe
Klíčovaný haš a MAC a jejich použití
MAC (Message Authentication Code)
Je rodina funkcí hk (parametrizovaných tajným klíčem k)
Snadný výpočet (pokud je k známe)
Komplere, x má libovolnou délku, hk(x) má pevnou délku
Výpočetní bezpečnost, při znalosti páru (xi,hk(xi)) je výpočetně nemožné spočíst novou dvojici (x, hk(x)) pro nové x != xi
HMAC
Způsob, jakým způsobem udělat z neklíčovaných hashovacích funkcí MAC.
Použití
Ipsec
Transport Layer Security (TLS)
Klíč se XORne s ipad (inner pad - předem daný) a výsledek se připojí ke zprávě a celé se to zahashuje neklíčovanou hash funkcí. Získám zprávu M'
Vezmu znovu původní klíč a XORnu ho s opad (outerpad) a výsledek se připojí ke zprávě M' a celé se to zahashuje neklíčovanou hash funkcí a mám výsledný hash H.
Notes
Hašovací funkce, klíčovaný haš, MAC.
Kdo me primarne zkousel: doc. Hanáček
Co jsem k tomu rekl(a)/na co se ptali/co mne vytkli: 
Začal jsem tím, co je to hašovací funkce, jaké jsou na ní kladené podmínky (preimage resistance, ...). Tam mě Hanáček přerušil a začal se ptát, kolik pokusů musí útočník vyzkoušet při útoku hrubou silou, aby pokořil každou z těch podmínek. Úplně jsem se do toho zamotal, rozklepal jsem se a nebyl schopen kloudného slova. Hanáčkův poker face v tom taky nijak nepomáhal, ale asi se snažil nějak pomoct ("To n značí prostor vstupních dat? Jak chcete, jen se ptám."), a ačkoli jsem to věděl, nebyl jsem v tu chvíli schopen formulovat odpověď. Nechal mě v tom ještě hodnou chvíli koupat a pak to ukončil.
From <[link]> 
KRY - Hašovací funkce, klíčovaný haš a MAC a jejich použití a vlastnosti
Kdo me primarne zkousel: Hanáček (jen on)
Co jsem k tomu rekl(a)/na co se ptali/co mne vytkli: Ptal se na MAC, říkal jsem že slouží pro podpis a začal jmenovat ty 3 potřebné podmínky pro hash.funkce. Tím sem si sám naběhl, protože jsem zapomněl 2nd preimage. Na to, co jsem místo toho "vyvařil", řekl, že to je ale 1st preimage, a chtěl to vědět správně, nakonec to musel říct za mě. Dál se ptal na sílu hashe, takové to, co bylo i letos na zkoušce, že pro útok vůči collision resistance je složitost 2^80 i když hash má délku 2^160. Patlal jsem se v tom, tak nakonec chtěl přesně vědět jak se na každou věc útočí a jakou složitost to bude mít.
From <[link]> 
Has, klíčovaný has, HMAC (KRY)
Hanacek
Co jsem k tomu rekl(a)/na co se ptali/co mne vytkli: Zacal jsem definici hasovaci funkce, ten slajd, pak padla otázka klíčovaný has, tak zas definice co to je a tak. Potom chtěl vědět útoky a složitost útoku a jeho pravděpodobnost. K tomu jsme se s jeho značnou pomocí úspěšně dobrali. Dost pomáhal. 
From <[link]> 