SHA to skrót od Secure Hash Algorithm, standardu szyfrowania wymyślonego przez Narodową Agencję Bezpieczeństwa i opublikowanego przez Narodowe Instytuty Standardów i Technologii. Stwierdzono, że oryginalny algorytm SHA ma słabe punkty w swoich metodach szyfrowania i został zastąpiony SHA-1 dla większego bezpieczeństwa.
Bezpieczny algorytm skrótu
SHA to kryptograficzna funkcja skrótu. Funkcja skrótu pobiera początkowy niezaszyfrowany tekst, zwany tekstem jawnym, i tworzy teoretycznie unikalną liczbę, która stanowi zaszyfrowaną wiadomość. SHA tworzy liczbę 160-bitową, która jest liczbą z przedziału od 0 do 1,46 x 10^48. Nie jest możliwe, aby ta liczba była gwarantowana jako niepowtarzalna dla wszystkich możliwych wiadomości tekstowych, ponieważ liczba takich wiadomości wynosi teoretycznie nieskończone, ale szanse wynoszą około 2 ^ 80 lub 1,21 x 10 ^ 24 w przypadku dwóch wiadomości generujących ten sam szyfr wynik. Jeśli tak się stanie, nazywa się to kolizją. Kolizja zapewnia matematyczny atak na algorytm szyfrowania, umożliwiając kryptografowi odszyfrowanie tekstu jawnego.
Wideo dnia
SHA-0 i SHA-1
Po jego opublikowaniu odkryto wady oryginalnego algorytmu SHA, które umożliwiły atakowi kryptograficznemu generowanie kolizji skrótów, poważnie osłabiając jego skuteczność. Opracowano poprawioną wersję SHA, SHA-1, która dała te same 160-bitowe wyniki bez oryginalnych wad algorytmu. Pierwotny SHA został wstecznie przemianowany na SHA-0, aby odróżnić jego użycie od użycia SHA-1.
Zmiany w SHA-1
Pierwotne wady w SHA-0 nigdy nie zostały opublikowane, ponieważ stanowią zestaw narzędzi dla każdego atakującego próbującego odszyfrować wiadomość przy użyciu szyfrowania SHA-0. Jedyne publiczne informacje o słabościach oryginalnego algorytmu wskazują, że kolizje skrótów są bardziej prawdopodobne niż z losowego przypadku przy użyciu SHA-0, a kolizje przy użyciu niepublikowanej metody są eliminowane przy użyciu SHA-1. Ponieważ SHA-1 i SHA-0 dają wyniki matematyczne o tej samej długości, SHA-1 może być używany jako zamiennik typu drop-in w oprogramowaniu komputerowym dla oryginalnego algorytmu SHA-0 bez konieczności większych przeróbek w pozostałej części oprogramowanie.
SHA-2 i SHA-3
Stwierdzono, że SHA-1 jest bardziej wytrzymały niż SHA-0, ale pozostawia pole do poprawy. Analiza matematyczna wyników SHA-1 wykazała metodę, dzięki której szyfrowanie SHA-1 może zostać złamane 2000 razy szybciej niż byłoby to teoretycznie możliwe po sprawdzeniu wszystkich 10^48 możliwych kombinacji tego wyjście. Ponieważ idealny algorytm kryptograficzny zapobiega tego rodzaju poprawie szybkości deszyfrowania, algorytm SHA-2 zarówno unika tego ataku, jak i zwiększa możliwy rozmiar skrótu do 512-bitów, czyli 1,34 x 10^154. SHA-3, jeszcze bardziej wydajny algorytm szyfrowania, jest obecnie w fazie rozwoju.