Integralność z funkcjami mieszania
Kody mieszania autoryzacji komunikatu - HMAC „podpisują” pakiety, aby zapewnić, że informacja odebrana jest dokładnie taka sama jak informacja nadana – zapewnienie integralności. Jest to bardzo istotne w sytuacji, gdzie dane są przesyłane przez niezabezpieczone media.
Kody HMAC zapewniają integralność za pomocą algorytmu mieszania, w połączeniu z udostępnianym, tajnym kluczem. Funkcje mieszania są czasem nazywane „transformacjami w jedną stronę”. Nazwa ta wynika z dwóch powodów: po pierwsze każda ze stron musi wykonać obliczenia na odpowiadającym jej końcu; po drugie łatwe jest przejście z komunikatu do skrótu ale niemożliwe jest przejście powrotne. Funkcje dwustronne mogą natomiast być modyfikowane w obie strony. Przykładem funkcji dwustronnych są schematy szyfrowania.
Podpis mieszania jest kryptograficzną sumą kontrolną lub Message Integrity Code (MIC), którą każda strona musi obliczyć w celu weryfikacji komunikatu. Przykładowo komputer wysyłający korzysta z algorytmu HMAC i klucza udostępnianego, w celu wyznaczenia sumy kontrolnej komunikatu, która jest dołączana do pakietu. Komputer odbiorcy musi wykonać obliczenia HMAC na otrzymanym komunikacie i wynik porównać z oryginałem zawartym w pakiecie. Jeśli komunikat został zmodyfikowany w trakcie transmisji, to wartości mieszane są inne i pakiet jest odrzucany.
Podczas wyboru zasady można wybrać jedną z dwóch funkcji mieszania:
• HMAC-MD5
Kod Message Digest 5 (MD5) oparty jest na RFC 1321. Powstał w odpowiedzi na znalezienie „słabego ogniwa” w MD4, poprzednim wcieleniu oryginalnego MD. MD5 jest nieznacznie wolniejszy, ale bezpieczniejszy.
MD5 wykonuje już cztery przejścia przez bloki danych (podczas gdy MD4 wykonywał trzy), używając innej liczby stałej dla każdego słowa przy każdym przejściu. Daje to sześćdziesiąt cztery, 32-bitowe stałe użyte podczas obliczeń MD5.
Ostatecznie, powstaje 128-bitowy klucz, używany do sprawdzania integralności.
• HMAC-SHA
Kod Secure Hash Algorithm (SHA) został opracowany w Stanach Zjednoczonych przez National Institute of Standards and Technology, jak to zostało opisane w FIPS PUB 180-1. Procedura SHA jest podobna do MD5.
SHA podczas obliczeń używa siedemdziesięciu dziewięciu, 32 -bitowych stałych, co daje 160-bitowy klucz używany do sprawdzania integralności. Dłuższe klucze zapewniają większe bezpieczeństwo, dlatego SHA uznawany jest za mocniejszy od MD5.
W pozostałej części tego rozdziału, podczas omawiania integralności udostępnianej przez funkcje mieszania, używane będą nazwy „podpis” lub „znak”, w celu zwiększenia przejrzystości i zwięzłości tekstu.