5Hašovacia funkcia

Termín hašovacia funkcia pochádza z počítačovej oblasti, kde označuje funkciu zmenšenia reťazca akéhokoľvek vstupu do reťazca pevnej dĺžky. Akákoľvek zmena vstupných dát spôsobí (s veľkou pravdepodobnosťou) zmenu hodnoty hašovacej funkcie (hašovacieho kódu). Hašovacie funkcie práve s touto vlastnosťou majú vo všeobecnosti rôzne použitie. Ak ich využijeme v kryptografii, tak sa tieto hašovacie funkcie volia tiež v závislosti od niektorých ďalších parametrov. Kryptografické hašovacie funkcie sa používajú na ochranu integrity správ (aby sa ochránil pôvod informácie), ale taktiež aj ako ochrana pred hrozbou odmietnutia (threat of repudiation) a na zabezpečenie hesiel. Na rozdiel od symetrického a asymetrického šifrovania, hašovacia funkcia nepoužíva žiadny kľúč.

Základné požiadavky na hašovaciu funkciu v kryptografii sú:

- vstup s ľubovoľnou dĺžkou,
- výstup s pevnou dĺžkou,
- jednoduchosť výpočtu hašovacieho kódu pre akúkoľvek správu,
- hašovacia funkcia je jednosmerná a z daného hašovaciaho kódu je výpočtovo nemožné dopracovať sa k pôvodnej správe,
- nie je možné akokoľvek zmeniť správu bez zmeny hašovacieho kódu,
- odolnosť voči kolíziám v sieti znamená, že nie je možné nájsť dve rôzne správy ktoré majú rovnaký hašovací kód.

Hašovací kód určuje stručnejšie vyjadrenie pôvodnej dlhšej správy alebo dokumentu. Môže sa zdať, že takéto zhrnutie správy je podobné „digitálnemu odtlačku prsta“ rozsiahlejšieho dokumentu.

Hlavná úloha hašovacej funkcie v kryptografii je v oblasti poskytovania digitálnych podpisov. Navyše hašovací kód môže byť odhalený bez toho, aby sa odhalil dokument z ktorého je odvodený.

Obr. 5.1 Hašovacia funkcia