SHA je akronim za Secure Hash Algoritam, standard za šifriranje koji je izumila Nacionalna sigurnosna agencija, a objavili Nacionalni instituti za standarde i tehnologiju. Utvrđeno je da izvorni SHA algoritam ima slabosti u metodama šifriranja, te je zamijenjen s SHA-1 radi veće sigurnosti.
Algoritam sigurnog hashiranja
SHA je kriptografska hash funkcija. Hash funkcija uzima početni nešifrirani tekst, nazvan otvoreni tekst, i proizvodi teoretski jedinstveni broj koji čini šifriranu poruku. SHA stvara 160-bitni broj, koji je broj između 0 i 1,46 x 10^48. Nije moguće da ovaj broj bude zajamčeno jedinstven za sve moguće poruke otvorenog teksta, jer je broj takvih poruka teoretski beskonačan, ali izgledi su otprilike 2^80, ili 1,21 x 10^24, protiv dvije poruke koje proizvode iste šifrirane proizlaziti. Ako se to dogodi, to se zove sudar. Kolizija pruža matematički napad na algoritam šifriranja, što kriptografu omogućuje dešifriranje otvorenog teksta.
Video dana
SHA-0 i SHA-1
Nakon njegove objave otkriveni su nedostaci u izvornom SHA algoritmu koji su omogućili kriptografski napad da proizvede hash kolizije, ozbiljno oslabivši njegovu učinkovitost. Razvijena je revidirana SHA verzija, SHA-1, koja je stvorila iste 160-bitne rezultate bez izvornih nedostataka u algoritmu. Izvorni SHA retroaktivno je preimenovan u SHA-0 kako bi se napravila razlika između njegove upotrebe i upotrebe SHA-1.
Promjene u SHA-1
Izvorni nedostaci u SHA-0 nikada nisu objavljeni, jer ti nedostaci pružaju alat za svakog napadača koji pokušava dešifrirati poruku koristeći SHA-0 enkripciju. Jedina javna informacija o slabostima u izvornom algoritmu ukazuje na vjerojatnije hash kolizije nego iz slučajne slučajnosti pri korištenju SHA-0, te da su kolizije korištenjem neobjavljene metode eliminirane kada se koristi SHA-1. Kako SHA-1 i SHA-0 daju matematičke rezultate iste duljine, SHA-1 se može koristiti kao zamjenska zamjena u računalni softver za izvorni algoritam SHA-0 bez potrebe za većim prepisivanjem ostatka softver.
SHA-2 i SHA-3
Utvrđeno je da je SHA-1 robusniji od SHA-0, ali ostavlja prostora za poboljšanje. Matematička analiza rezultata SHA-1 pokazala je metodu kojom se SHA-1 enkripcija može pokvariti 2000 puta brže nego što bi bilo teoretski moguće provjerom svih 10^48 mogućih kombinacija njegovih izlaz. Budući da idealan kriptografski algoritam sprječava takva poboljšanja brzine dešifriranja, SHA-2 algoritam izbjegava ovaj napad i povećava moguću veličinu hasha na 512-bit, ili 1,34 x 10^154. SHA-3, još moćniji algoritam za šifriranje, trenutno je u razvoju.