Kod uwierzytelniania wiadomości - Message authentication code
W kryptografii , A kodu uwierzytelniania wiadomości ( MAC ), znany też jako znacznik , to fragment informacji wykorzystywanych do uwierzytelnienia wiadomości. Innymi słowy, aby potwierdzić, że wiadomość pochodzi od podanego nadawcy (jej autentyczność) i nie została zmieniona. Wartość MAC chroni integralność danych wiadomości , a także jej autentyczność , umożliwiając weryfikatorom (posiadającym również tajny klucz) wykrycie wszelkich zmian w treści wiadomości.
Terminologia
Termin kod integralności wiadomości (MIC) jest często zastępowany terminem MAC , zwłaszcza w komunikacji, aby odróżnić go od użycia tego ostatniego jako adresu kontroli dostępu do nośnika ( adres MAC ). Jednak niektórzy autorzy używają MIC w odniesieniu do skrótu wiadomości , którego celem jest wyłącznie jednoznaczna, ale nieprzejrzysta identyfikacja pojedynczej wiadomości. RFC 4949 zaleca unikanie terminu kod integralności wiadomości (MIC), a zamiast tego używanie sumy kontrolnej , kodu wykrywania błędów , skrótu , skrótu z kluczem , kodu uwierzytelniania wiadomości lub chronionej sumy kontrolnej .
Definicje
Nieformalnie system kodów uwierzytelniania wiadomości składa się z trzech algorytmów:
- Algorytm generowania klucza jednolicie losowo wybiera klucz z przestrzeni kluczy.
- Algorytm podpisywania skutecznie zwraca tag podany w kluczu i wiadomości.
- Algorytm weryfikujący skutecznie weryfikuje autentyczność wiadomości na podstawie klucza i tagu. Oznacza to, że zwrot jest akceptowany, gdy wiadomość i tag nie są modyfikowane ani sfałszowane, a w przeciwnym razie zwrot jest odrzucany .
Bezpieczny kod uwierzytelniania wiadomości musi opierać się próbom fałszowania tagów przez przeciwnika dla dowolnych, wybranych lub wszystkich wiadomości , w tym w warunkach znanej lub wybranej-wiadomości . Obliczenie poprawnego tagu danej wiadomości bez znajomości klucza powinno być niewykonalne obliczeniowo, nawet jeśli w najgorszym przypadku założymy, że przeciwnik zna tag dowolnej wiadomości poza tą, o której mowa.
Formalnie system kodów uwierzytelniania wiadomości ( MAC ) to trójka wydajnych algorytmów ( G , S , V ) spełniających:
- G (generator kluczy) podaje klucz k na wejściu 1 n , gdzie n jest parametrem bezpieczeństwa.
- S (podpisywanie) wyprowadza znacznik t na kluczu k i łańcuch wejściowy x .
- V (weryfikujące) wyjścia akceptowane lub odrzucane na wejściach: klucz k , ciąg znaków x i tag t .
S i V muszą spełniać następujące warunki:
- Pr [ k ← G (1 n ), V ( k , x , S ( k , x ) ) = akceptowane ] = 1.
MAC jest nie do podrobienia, jeśli dla każdego skutecznego przeciwnika A
- Pr [ k ← G (1 n ), ( x , t ) ← A S ( k , · ) (1 n ), x ∉ Zapytanie( A S ( k , · ) , 1 n ), V ( k , x , t ) = akceptowane ] < negl( n ),
gdzie A S ( k , · ) oznacza, że A ma dostęp do wyroczni S ( k , · ), a Query( A S ( k , · ) , 1 n ) oznacza zbiór zapytań o S wykonanych przez A , które wie n . Oczywiście wymagamy, aby żaden przeciwnik nie mógł bezpośrednio zapytać o ciąg x on S , ponieważ w przeciwnym razie przeciwnik może łatwo uzyskać prawidłowy tag.
Bezpieczeństwo
Chociaż funkcje MAC są podobne do funkcji skrótu kryptograficznego , mają inne wymagania bezpieczeństwa. Aby można było uznać ją za bezpieczną, funkcja MAC musi opierać się fałszerstwu egzystencjalnemu podczas ataków z wybranymi wiadomościami . Oznacza to, że nawet jeśli atakujący ma dostęp do wyroczni, która posiada tajny klucz i generuje MAC dla wiadomości wybranych przez atakującego, atakujący nie może odgadnąć MAC dla innych wiadomości (które nie zostały użyte do zapytania wyroczni) bez wykonania niemożliwych do zrealizowania ilości obliczeń.
MAC różnią się od podpisów cyfrowych, ponieważ wartości MAC są generowane i weryfikowane przy użyciu tego samego tajnego klucza. Oznacza to, że nadawca i odbiorca wiadomości muszą uzgodnić ten sam klucz przed rozpoczęciem komunikacji, tak jak ma to miejsce w przypadku szyfrowania symetrycznego . Z tego samego powodu adresy MAC nie zapewniają właściwości niezaprzeczalności oferowanej przez podpisy, szczególnie w przypadku tajnego klucza współdzielonego w całej sieci : każdy użytkownik, który może zweryfikować adres MAC, może również generować adresy MAC dla innych wiadomości. Natomiast podpis cyfrowy jest generowany przy użyciu klucza prywatnego pary kluczy, który jest kryptografią klucza publicznego. Ponieważ ten klucz prywatny jest dostępny tylko dla jego posiadacza, podpis cyfrowy dowodzi, że dokument został podpisany przez nikogo innego niż tego posiadacza. W związku z tym podpisy cyfrowe oferują niezaprzeczalność. Jednak niezaprzeczalność mogą zapewnić systemy, które bezpiecznie wiążą informacje o użyciu klucza z kluczem MAC; ten sam klucz jest w posiadaniu dwóch osób, ale jedna ma kopię klucza, której można użyć do generowania adresu MAC, podczas gdy druga ma kopię klucza w sprzętowym module zabezpieczającym, który umożliwia jedynie weryfikację adresu MAC. Jest to powszechnie stosowane w branży finansowej.
Realizacja
Algorytmy MAC mogą być konstruowane z innych prymitywów kryptograficznych, takich jak kryptograficzne funkcje skrótu (jak w przypadku HMAC ) lub z algorytmów szyfrowania blokowego ( OMAC , CCM , GCM i PMAC ). Jednak wiele z najszybszych algorytmów MAC, takich jak UMAC - VMAC i Poly1305-AES, zbudowanych jest w oparciu o uniwersalne mieszanie .
Wewnętrznie kluczowane algorytmy haszujące, takie jak SipHash, są również z definicji MAC; mogą być nawet szybsze niż MAC oparte na uniwersalnym mieszaniu.
Ponadto algorytm MAC może celowo łączyć dwa lub więcej prymitywów kryptograficznych, aby zachować ochronę, nawet jeśli później okaże się, że jeden z nich jest podatny na ataki. Na przykład w Transport Layer Security (TLS) dane wejściowe są dzielone na połówki, z których każda jest przetwarzana przy użyciu innego prymitywu mieszającego ( SHA-1 i SHA-2 ), a następnie XOR-owane razem w celu wyprowadzenia MAC.
Jednorazowy MAC
Uniwersalne mieszanie, a w szczególności niezależne od par funkcje skrótu, zapewniają bezpieczny kod uwierzytelniania wiadomości, o ile klucz jest używany co najwyżej jeden raz. Można to postrzegać jako jednorazową podkładkę do uwierzytelniania.
Najprostsza taka niezależna parami funkcja skrótu jest zdefiniowana przez losowy klucz, key = ( a , b ) , a znacznik MAC komunikatu m jest obliczany jako tag = ( am + b ) mod p , gdzie p jest liczbą pierwszą.
Bardziej ogólnie, k- niezależne funkcje mieszające zapewniają bezpieczny kod uwierzytelniania wiadomości, o ile klucz jest używany mniej niż k razy dla niezależnych funkcji mieszających k- sposobów.
Kody uwierzytelniania wiadomości i uwierzytelnianie pochodzenia danych zostały również omówione w ramach kryptografii kwantowej. W przeciwieństwie do innych zadań kryptograficznych, takich jak dystrybucja kluczy, dla dość szerokiej klasy kwantowych MAC wykazano, że zasoby kwantowe nie oferują żadnej przewagi nad bezwarunkowo bezpiecznymi jednorazowymi klasycznymi MAC.
Normy
Istnieją różne standardy definiujące algorytmy MAC. Obejmują one:
- FIPS PUB 113 Uwierzytelnianie danych komputerowych , wycofane w 2002 roku, definiuje algorytm oparty na DES .
- FIPS PUB 198-1 Kod uwierzytelniania wiadomości z kluczem skrótu (HMAC)
- ISO/IEC 9797-1 Mechanizmy wykorzystujące szyfr blokowy
- ISO /IEC 9797-2 Mechanizmy wykorzystujące dedykowaną funkcję skrótu
- ISO /IEC 9797-3 Mechanizmy wykorzystujące uniwersalną funkcję skrótu
- ISO /IEC 29192-6 Lekka kryptografia - Kody uwierzytelniania wiadomości
ISO/IEC 9797-1 i -2 definiują ogólne modele i algorytmy, które mogą być używane z dowolnym szyfrem blokowym lub funkcją skrótu oraz wieloma różnymi parametrami. Te modele i parametry pozwalają na definiowanie bardziej szczegółowych algorytmów przez nominowanie parametrów. Na przykład algorytm FIPS PUB 113 jest funkcjonalnie równoważny algorytmowi ISO/IEC 9797-1 MAC 1 z metodą dopełniania 1 i algorytmem szyfru blokowego DES.
Przykład użycia MAC
W tym przykładzie nadawca komunikatu przepuszcza go przez algorytm MAC w celu utworzenia znacznika danych MAC. Wiadomość i znacznik MAC są następnie wysyłane do odbiorcy. Odbiornik z kolei uruchamia część wiadomości transmisji za pomocą tego samego algorytmu MAC przy użyciu tego samego klucza, tworząc drugi znacznik danych MAC. Odbiornik porównuje następnie pierwszy znacznik MAC odebrany w transmisji z drugim wygenerowanym znacznikiem MAC. Jeśli są identyczne, odbiorca może bezpiecznie założyć, że wiadomość nie została zmieniona lub naruszona podczas transmisji ( integralność danych ).
Jednak, aby umożliwić odbiorcy wykrywanie ataków powtórkowych , sama wiadomość musi zawierać dane, które zapewniają, że ta sama wiadomość może być wysłana tylko raz (np. znacznik czasu, numer sekwencyjny lub użycie jednorazowego adresu MAC). W przeciwnym razie atakujący mógłby – nawet nie rozumiejąc jej treści – nagrać tę wiadomość i odtworzyć ją w późniejszym czasie, uzyskując ten sam wynik, co pierwotny nadawca.
Zobacz też
- Suma kontrolna
- CMAC
- HMAC (kod uwierzytelniania wiadomości oparty na hashu)
- MAA
- MMH-Borsuk MAC
- Poli1305
- Uwierzytelnione szyfrowanie
- UMAC
- VMAC
- SipHash
Uwagi
Bibliografia
- Goldreich, Oded (2001), Podstawy kryptografii I: Narzędzia podstawowe , Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1
- Goldreich, Oded (2004), Foundations of cryptography II: Basic Applications (1. publ. ed.), Cambridge [ua]: Cambridge Univ. Prasa, ISBN 978-0-521-83084-3
- Pass, Rafael, A Course in Cryptography (PDF) , pobrano 31 grudnia 2015
Zewnętrzne linki
- ^ 11-12-20C8