SHA, skrót od Secure Hash Al Algorytm, to rodzina algorytmu kryptograficznego haszującego opublikowanego przez National Institute of Standards and Technology (NIST) w celu zapewnienia bezpieczeństwa danych. W 1995 r. NIST zatwierdziła Bezpieczny standard skrótu, FIPS PUB 180-1, który zawierał jeden algorytm bezpiecznego skrótu, SHA-1. W 2003 r. Zatwierdzono nowy Secure Signature Hash Signature Standard (SHS), FIPS PUB 180-2, dodając trzy algorytmy mieszające zdolne do generowania większych skrótów wiadomości, przewyższające FIPS 180-1. FIPS PUB 180-2 określa cztery bezpieczne algorytmy mieszające, SHA-1, SHA-256, SHA-384 i SHA-512 - z których wszystkie są iteracyjne, tj. Jednokierunkowe funkcje skrótu, które mogą przetwarzać komunikat w skondensowanym reprezentacja zwana skrótem wiadomości. Głównie ze względu na swoją efektywność, kryptograficzne funkcje skrótu mają kluczowe znaczenie dla algorytmów i protokołów kryptograficznych.
W tym artykule skupimy się głównie na dwóch popularnych kryptograficznych funkcjach skrótu, które są obecnie używane - SHA-1 i SHA-256. SHA-1, będący częścią standardu Secure Hash Standard (SHS), był jednym z pierwszych algorytmów mieszania często używanych przez organy certyfikacji SSL do podpisywania certyfikatów. Został opublikowany w 1993 roku jako SHA, ale z powodu błędu bezpieczeństwa został później zastąpiony przez bezpieczniejszy SHA-1. Jest to zdecydowanie jedna z najczęściej używanych i wdrażanych funkcji skrótu kryptograficznego. SHA-256 ma tę samą strukturę podstawową i wykorzystuje ten sam typ modułowych operacji arytmetycznych i logicznych binarnych jak SHA-1. SHA-256 należy do rodziny SHA-2 o podobnych funkcjach mieszających o różnych rozmiarach bloków, a drugą jest SHA-512. Jest to funkcja skrótu powszechnie używana w Blockchain.
SHA-1 jest jedną z najczęściej używanych i wdrażanych funkcji skrótu kryptograficznego często używanych przez urzędy certyfikacji SSL do podpisywania certyfikatów. Był to jeden z najstarszych algorytmów mieszania określonych przez rząd federalny USA. Został opracowany przez NIST i NSA. SHA-1 został opublikowany jako standard rządu federalnego w 1995 roku jako aktualizacja SHA, która została opublikowana w 1993 roku. Pobiera dane wejściowe i generuje 160-bitową (20-bajtową) wartość skrótu znaną jako skrót wiadomości, zwykle reprezentowany 40-cyfrowym łańcuchem szesnastkowym. SHA-1 jest tak zaprojektowany, że obliczeniowo niemożliwe jest znalezienie komunikatu odpowiadającego danemu skrótowi wiadomości lub znalezienie dwóch różnych komunikatów, które generują ten sam skrót wiadomości.
SHA-256 to nowsza, bezpieczniejsza funkcja skrótu kryptograficznego, która została zaproponowana w 2000 r. Jako nowa generacja funkcji SHA i została przyjęta jako standard FIPS w 2002 r. Algorytm SHA-256 generuje 256-bitową wartość skrótu z wypełnionej 512-bitowej blokuje wiadomości, a oryginalny rozmiar wiadomości to maksymalnie 264-1 bit. SHA-256 zawsze oblicza wewnętrznie 256-bitowy skrót dla bezpieczeństwa, ale to może zostać obcięte do drukowania i przechowywania 196 lub 128 bitów. W ten sposób obcięty SHA-256 zapewnia istotną korzyść dla ludzkiej użyteczności w drukowanych cytowaniach i znacznie poprawia bezpieczeństwo, kosztem niewielkiego zmniejszenia wydajności związanego z MD5. W przeciwieństwie do algorytmu MD5, skrócony SHA-256 nie podlega żadnym znanym atakom.
- SHA-1 jest jedną z najczęściej używanych i wdrażanych funkcji skrótu kryptograficznego często używanych przez urzędy certyfikacji SSL do podpisywania certyfikatów. Był to jeden z najstarszych algorytmów mieszania określonych przez rząd federalny USA. SHA-256 to nowsza, bardziej bezpieczna funkcja skrótu kryptograficznego, która została zaproponowana w 2000 roku jako nowa generacja funkcji SHA i została przyjęta jako standard FIPS w 2002 roku. SHA-256 należy do rodziny algorytmów szyfrujących SHA-2 z podobnym hashem funkcje, ale inny rozmiar bloku, inne to SHA-384 i SHA-512.
- SHA-1 to 160-bitowy skrót, który pobiera dane wejściowe i generuje 160-bitową (20-bajtową) wartość skrótu znaną jako skrót wiadomości, zwykle reprezentowany przez 40-cyfrowy ciąg szesnastkowy. SHA-1 jest tak zaprojektowany, że obliczeniowo niemożliwe jest znalezienie komunikatu odpowiadającego danemu skrótowi wiadomości lub znalezienie dwóch różnych komunikatów, które wytwarzają ten sam skrót wiadomości. Algorytm SHA-256 generuje 256-bitową wartość skrótu z wypełnionych 512-bitowych bloków wiadomości, a oryginalny rozmiar wiadomości wynosi do 264-1 bit.
- Wraz ze wzrostem mocy obliczeniowej wzrosła również możliwość złamania SHA-1. Był to jeden z najstarszych algorytmów skrótu określonych do użytku przez rząd federalny USA, a ze względu na mniejszy rozmiar bitów jest bardziej podatny na ataki. Chociaż SHA-256 ma tę samą podstawową strukturę i wykorzystuje te same typy modułowych operacji arytmetycznych i logicznych binarnych jak SHA-1, stał się integralną częścią wielu aplikacji. SHA-256 zawsze oblicza wewnętrznie 256-bitowy skrót dla bezpieczeństwa, co znacznie poprawia bezpieczeństwo, kosztem niewielkiego zmniejszenia wydajności związanego z MD5.
Krótko mówiąc, SHA-256 jest bardziej niezawodny i bezpieczny niż SHA-1. SHA-256 należy do rodziny kryptograficznych funkcji skrótu SHA-2 zaprojektowanych przez NSA i jest powszechnie stosowany w Blockchain. SHA-1 była jedną z najwcześniejszych kryptograficznych funkcji skrótu często używanych przez urzędy certyfikacji SSL do podpisywania certyfikatów. Jednak ze względu na mniejszy rozmiar bitów i luki w zabezpieczeniach z czasem stał się bardziej podatny na ataki, które ostatecznie doprowadziły do utraty wartości przez wystawców certyfikatów SSL.