Bezpieczny algorytm mieszający, często nazywany po prostu „SHA”, to algorytm mieszający, który jest uważany za bezpieczny kryptograficznie. Ogólnie rzecz biorąc, funkcje mieszające służą do sortowania i organizowania danych cyfrowych w mniejsze, bardziej skategoryzowane pakiety. Algorytmy to programy sterujące funkcjami, a bezpieczeństwo tych algorytmów ma znaczenie, ponieważ kontroluje, jak łatwo można odblokować i zmienić kolejność danych. To, jak bezpieczne muszą być rzeczy, zwykle zależy od okoliczności. Wielu programistów i programistów potrzebuje nieprzeniknionych algorytmów, ponieważ ich metody sortowania tematów i rysowania połączeń są zastrzeżone i używają ich do zarabiania pieniędzy. W innych przypadkach same dane są bardzo wrażliwe, jak to często ma miejsce w przypadku dokumentacji medycznej lub niektórych dokumentów rządowych. Rzeczywista mechanika SHA wydaje się być bardzo skomplikowana i zwykle wymagany jest przynajmniej pewien stopień wiedzy technicznej, aby w pełni zrozumieć, jak działają i jak są rozwijane. Jak większość rzeczy technologicznych, również nastąpił postęp w rozwoju; wcześniejsze modele zostały w dużej mierze zastąpione, a nowsze, bezpieczniejsze konstrukcje są niemal stale wprowadzane.
Ogólne zrozumienie algorytmów haszujących
Współczesny krajobraz cyfrowy zawiera setki milionów punktów danych, z których wszystkie zajmują sieć wzajemnych powiązań i punktów wspólnych, zarówno w witrynach internetowych, jak i w sferze społecznościowej, jeśli chodzi o wiadomości i wpisy generowane przez użytkowników. Haszowanie jest jednym ze sposobów łączenia danych, które są podobne lub powiązane w taki sposób, że tworzą coś w rodzaju kompendium lub mniejszej, bardziej wzajemnie powiązanej „sieci w sieci”. Bezpieczne algorytmy haszujące starają się zorganizować to w wydajny i bezpieczny sposób.
Oryginalne dane, raz zahaszowane przez SHA, zazwyczaj nie mogą być zrekonstruowane bez ogromnej mocy obliczeniowej. Bezpieczne algorytmy są często używane w połączeniu z innymi algorytmami do uwierzytelniania wiadomości, w tym podpisów cyfrowych.
Jak są wdrażane
Niektóre routery sieciowe i zapory sieciowe implementują algorytmy SHA bezpośrednio w swoim sprzęcie. Pozwala to na uwierzytelnianie pakietów danych z ograniczonym wpływem na przepustowość. Inną opcją jest specjalnie zaprojektowane oprogramowanie, w tym wiele implementacji open source. Na przykład Narodowy Instytut Standardów i Technologii Stanów Zjednoczonych (NIST) oraz Canadian Communications Security Establishment (CSE) wspólnie prowadzą program weryfikacji modułów kryptograficznych (CMVP). Ten oficjalny program poświadcza poprawność działania implementacji bezpiecznych algorytmów dla wrażliwych aplikacji.
Normalizacja
Rząd USA ustandaryzował co najmniej sześć bezpiecznych algorytmów haszujących. SHA-0 i SHA-1 były najwcześniejszymi modelami opracowanymi w latach 1990. XX wieku. Seria SHA-2 opracowana w 2000 roku obejmowała SHA-224, -256, -384 i -512. Są one zaprojektowane w taki sposób, że dwa dokumenty o różnej zawartości zazwyczaj tworzą dwa unikalne zestawy wartości skrótów, co jest naprawdę pomocne w unikaniu kolizji skrótów.
Najwcześniejsze iteracje
Algorytm SHA-0, opublikowany po raz pierwszy w 1993 roku przez NIST, został szybko wycofany po znalezieniu znaczącej słabości. Został zastąpiony przez SHA-1 w 1995 roku, który zawiera dodatkowy krok obliczeniowy, który rozwiązuje nieujawnione problemy SHA-0. Oba algorytmy mieszają wiadomość o długości do 264-1 bitów w 160-bitowym „podsumowaniu”. Obydwa wykorzystują w swoich działaniach rozmiar bloku 512 bitów i rozmiar słowa 32 bity.
SHA-1 jest używany w niektórych popularnych protokołach internetowych i narzędziach bezpieczeństwa. Należą do nich IPsec, PGP, SSL, S/MIME, SSH i TLS. SHA-1 jest również zwykle używany jako część systemu ochrony niesklasyfikowanych dokumentów rządowych. Niektóre części sektora prywatnego wykorzystują ten algorytm również do niektórych poufnych informacji. Został jednak formalnie wycofany z użytku sektora instytucji rządowych i samorządowych w 2010 roku.
Ewolucja i ciągły rozwój
SHA-224, -256, -384 i -512 zostały opublikowane przez NIST w latach 2001-2004. Te cztery algorytmy, znane również jako rodzina SHA-2, są ogólnie bardziej niezawodne niż SHA-1. SHA-224 i SHA-256 wykorzystują te same bloki, słowa i maksymalne rozmiary komunikatów wejściowych, co SHA-1. W przeciwieństwie do tego, SHA-224 tworzy skrót 224-bitowy, a SHA-256 tworzy skrót 256-bitowy. SHA-384 i SHA-512 zwiększają rozmiar bloku do 1024 bitów, rozmiar słowa do 64 bitów, a maksymalną długość komunikatu wejściowego do 2128-1 bitów. Skrót tworzony przez SHA-384 ma długość 384 bitów, podczas gdy skrót SHA-512 zawiera 512 bitów.
Podobnie jak SHA-0 i SHA-1, rodzina SHA-2 została zaprojektowana przez amerykańską Agencję Bezpieczeństwa Narodowego (NSA). Chociaż poważne wady nie zostały publicznie ujawnione w SHA-2, NIST otworzył konkurs na opracowanie kolejnego bezpiecznego algorytmu mieszającego. Ten nowy algorytm, nazwany SHA-3, prawdopodobnie zostanie wybrany ze zbioru wpisów publicznych. Oczekuje się, że będzie to nowy projekt, nie oparty na istniejących algorytmach.