share:truealiases:- Konstrukce hash funkcí
- Damgard-Merklova konstrukce
- Merkleova-Damgardova konstrukce
- Damgard-Merkle
- Davies-Meyerova konstrukce
- Davies-Meyer
Konstrukce hash funkcí
Zpracování po částech (bloky stejné délky)
Nutnost zarovnání vstupu na celistvý počet bloků (padding)
Doplnění / zarovnání
Zarovnání musí být bezkolizní, musí umožňovat jednoznačné odejmutí
Doplnění bitem 1 a poté potřebným počtem bitů 0
Demgard-Merklovo zesílení - na konci obsahuje ještě 64 bitů s informací o délce původní zprávy
Příklad špatného zarovnání zprávy
Mějme zprávu
Byla původní zpráva nebo nebo nebo nebo ?
Všechny by vedly ke kolizi a měly stejný hash.
Damgard-Merklova konstrukce
Damgard-Merklovo zesílení
Doplnění hashe
Zpráva je doplněna bitem a poté bity tak, aby do celistvého násobku 512 bitů zbývalo ještě 64 bitů
Posledních 64b je vyplněno hodnotou počtu bitů původní zprávy
Funkce zpracovává aktuální blok zprávy a výsledkem je tzv. kontext
Ten poté tvoří vstup v dalším kroku
Iterativní konstrukce
Zahashováním posledního boku dostáváme , z něhož bereme buď část nebo celou délku jako výslednou hash
Davies-Meyerova konstrukce
Zesiluje vlastnost jednosměrnosti ještě XORem vzoru před výstupem