Secure Hash Algorithm
SHA (Secure Hash Alogithm) je rodina 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ízii v rádoch minút).
SHA-1
Ako štandard bola publikovaná v roku 1993 americkým Národným inštitútom pre štandardy a technológie (NIST). Nahradzuje predošlú, prelomenú SHA-0.
Funkcia rozsekáva vstupný tok dát na bloky o veľkosti 512 bitov. Posledný blok použitím tzv. paddingu doplňuje a zarovnáva na požadovanú veľkosť bloku. Tieto bloky sú postupne logicky sčítané. Na začiatku s náhodným inicializačným vektorom a každý následujú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, nazývaný tiež odtlačok alebo hash.
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 tzv. lavínovitosť tvorby hašu - používanie 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, pozri príklad (textový reťazec : jeho haš).
Prehlasujem, že ti dlžím 100 : 68:74:1d:02:44:e8:ce:09:89:af:15:49:77:ce:03:7c:7c:75:a3:2e Prehlasujem, že ti dlžím 500 : 2e:b7:09:91:cd:ed:1b:d3:b3:f2:34:67:5f:8a:d8:b9:27:cc:32:72
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. Ide o funkciu, ktorá je presadzovaná v novo vznikajúcich amerických štandardoch v kryptografii a elektronickom podpisovaní.