5Hash funkce

Termín hash funkce pochází z počítačové oblasti, kde označuje funkci zmenšení řetězce jakéhokoli vstupu do řetězce pevné délky. Jakákoli změna vstupních dat způsobí (s velkou pravděpodobností) změnu hodnoty hash funkce (hash kódu). Hash funkce právě s touto vlastností mají ve všeobecnosti různé použití. V kryptografii se používají hash funkce kvůli některým dalším parametrům. Kryptografické hash funkce se používají na ochranu integrity zpráv (aby se ochránil původ informace), ale taktéž jako ochrana před hrozbou odmítnutí (threat of repudiation) a zabezpečení hesel. Na rozdíl od symetrického a asymetrického šifrování, nepoužívá hash funkce žádný klíč.

Základní požadavky na hash funkci v kryptografii jsou:

- vstup s libovolnou délkou,
- výstup s pevnou délkou,
- jednoduchost výpočtu hash kódu pro jakoukoli zprávu,
- hash funkce je jednosměrná. To znamená, že z daného hash kódu je výpočetně nemožné dopracovat se k původní zprávě,
- není možné jakkoli změnit zprávu beze změny hash kódu,
- Odolnost vůči kolizím v síti. To znamená, že není možné nalézt dvě různé zprávy, které mají stejný hash kód.

Hash kód určuje stručnější vyjádření původní delší zprávy nebo dokumentu. Může se zdát, že takovéto shrnutí zprávy je podobné „digitálnímu otisku prstu“ rozsáhlejšího dokumentu.

Hlavní úloha hash funkce v kryptografii je v oblasti poskytování digitálních podpisů. Navíc může být hash kód odhalen bez toho, aby se odhalil dokument, ze kterého je odvozen.

Obr. 5.1 Hash funkce