Secure Hash Algorithm
Secure Hash Alogithm (SHA) je skupina kryptografických hašovacích funkcií. Funkcie vyvinula americká Národná bezpečnostná agentúra (NSA) ako nástupcu funkcie MD5, ktorá už nie je považovaná za bezpečnú (existencia metódy hľadania slabých kolízií v rádoch minút).
SHA-1
Ako štandard bola publikovaná v roku 1993 americkým NIST pod označením FIPS 180-1. Nahradzuje predošlú SHA-0, ktorá bola prelomená.
Funkcia rozsekáva vstupný tok dát na bloky o veľkosti 512 bitov. Posledný blok doplňuje a zarovnáva (angl. padding) na požadovanú veľkosť vstupného bloku. Tieto bloky sú postupne logicky sčítané. Na začiatku s náhodným inicializačným vektorom a každý nasledujúci blok vstupu vždy s predošlým výsledkom. Do požadovaného zarovnania sa pridáva údaj o veľkosti vstupu, na ktorý je vyhradených 64 bitov. Z toho plynie horná ohraničenosť maximálnej veľkosti vstupu na 264-1 bitov, čo je cca 2,3 miliónu TiB.
Výstupom SHA-1 je 160bitový reťazec, haš.
Použitím informácie o veľkosti vstupu v procese výpočtu funkcie sa zvyšuje odolnosť funkcie voči slabým kolíziám. Za ďalšie zabezpečenie funkcie sa považuje vlastnosť lavínovitosť tvorby hašu – používaním predošlého výsledku, a teda šírenie zmeny v jednom bloku vstupu až do výstupu. Toto kritérium spôsobí veľkú zmenu výsledného hašu už pri zmene jediného znaku vstupného toku.
Príklad textového reťazca a jeho hašu:
Prehlasujem, že ti dlžím 100 : 68741d0244e8ce0989af154977ce037c7c75a32e Prehlasujem, že ti dlžím 500 : 2eb70991cded1bd3b3f234675f8ad8b927cc3272
Použitie
Ako každá hašovacia funkcia aj SHA-1 zabezpečuje hlavne kontrolu integrity dát, teda či nedošlo k ich pozmeneniu. Z toho plynie použitie napr. v digitálnych certifikátoch a následne aj elektronickom podpise, či v systéme PGP. Ide o funkciu, ktorá je presadzovaná v novo vznikajúcich amerických štandardoch v kryptografii a elektronickom podpisovaní.