algorytm skrótu MD5 jest jednokierunkową funkcją kryptograficzną, która przyjmuje wiadomość o dowolnej długości jako wejście i zwraca jako wyjście stałą wartość skrótu, która ma być użyta do uwierzytelnienia oryginalnej wiadomości.
funkcja skrótu MD5 została pierwotnie zaprojektowana do użycia jako bezpieczny kryptograficzny algorytm skrótu do uwierzytelniania podpisów cyfrowych. MD5 został wycofany do zastosowań innych niż nie kryptograficzna suma kontrolna w celu weryfikacji integralności danych i wykrycia niezamierzonego uszkodzenia danych.
chociaż pierwotnie zaprojektowany jako algorytm uwierzytelniania wiadomości kryptograficznych do użytku w Internecie, mieszanie MD5 nie jest już uważane za niezawodne do wykorzystania jako kryptograficzna suma kontrolna, ponieważ naukowcy zademonstrowali techniki zdolne do łatwego generowania kolizji MD5 na komercyjnych komputerach off-the-shelf.
Ronald Rivest, założyciel RSA Data Security i profesor Instytutu na MIT, zaprojektował MD5 jako ulepszenie wcześniejszego algorytmu trawienia wiadomości, MD4. Opisując go w Internet Engineering Task Force RFC 1321, „algorytm MD5 Message-Digest”, napisał:
algorytm przyjmuje jako wejście wiadomość o dowolnej długości i wytwarza jako wyjście 128-bitowy „odcisk palca” lub „skrót wiadomości” wejścia. Przypuszcza się, że obliczeniowo niemożliwe jest wytworzenie dwóch wiadomości o tym samym przebiegu wiadomości lub wytworzenie dowolnej wiadomości o określonym wcześniej celu. Algorytm MD5 jest przeznaczony do zastosowań związanych z podpisem cyfrowym, w których duży plik musi być „skompresowany” w bezpieczny sposób, zanim zostanie zaszyfrowany prywatnym (tajnym) kluczem w ramach kryptosystemu klucza publicznego, takiego jak RSA.
IETF sugeruje, że skróty MD5 mogą być nadal używane do ochrony integralności, zaznaczając „tam, gdzie suma kontrolna MD5 jest używana w połączeniu z protokołem wyłącznie w celu ochrony przed błędami, suma kontrolna MD5 jest nadal dozwolonym użyciem.”Jednak dodał, że” każda aplikacja i protokół, który wykorzystuje MD5 do dowolnego celu, musi jasno określić oczekiwane usługi bezpieczeństwa z ich korzystania z MD5.”
charakterystyka algorytmu skrótu wiadomości
funkcje skrótu wiadomości, znane również jako funkcje skrótu, są funkcjami jednokierunkowymi; akceptują wiadomość o dowolnej wielkości jako wejście i jako wyjście wytworzyć skrót wiadomości o stałej długości.
MD5 jest trzecim algorytmem digestu wiadomości stworzonym przez Rivest. Wszystkie trzy (pozostałe to MD2 i MD4) mają podobne struktury, ale MD2 został zoptymalizowany dla maszyn 8-bitowych, w porównaniu z dwoma późniejszymi formułami, które są zoptymalizowane dla maszyn 32-bitowych. Algorytm MD5 jest rozszerzeniem MD4, który krytyczny przegląd uznał za szybki, ale prawdopodobnie nie do końca bezpieczny. Dla porównania, MD5 nie jest tak szybki jak algorytm MD4, ale oferował znacznie większą pewność bezpieczeństwa danych.
Jak działa MD5
algorytm skrótu wiadomości MD5 przetwarza dane w 512-bitowych blokach, podzielonych na 16 słów składających się z 32 bitów każdy. Wyjście z MD5 jest 128-bitową wartością skrótu wiadomości.
obliczanie wartości skrótu MD5 jest wykonywane w oddzielnych etapach, które przetwarzają każdy 512-bitowy blok danych wraz z wartością obliczoną w poprzednim etapie. Pierwszy etap rozpoczyna się od wartości skrótu wiadomości zainicjowanych za pomocą kolejnych szesnastkowych wartości liczbowych. Każdy etap zawiera cztery przepustki skrótu wiadomości, które manipulują wartościami w bieżącym bloku danych i wartościami przetwarzanymi z poprzedniego bloku. Końcowa wartość obliczona z ostatniego bloku staje się skrótem MD5 dla tego bloku.
bezpieczeństwo MD5
celem każdej funkcji trawienia wiadomości jest wygenerowanie trawienia, które wydaje się być losowe. Aby funkcja skrótu mogła być uznana za bezpieczną pod względem kryptograficznym, powinna spełniać dwa wymagania: Po pierwsze, aby osoba atakująca nie mogła wygenerować wiadomości pasującej do określonej wartości skrótu; i po drugie, aby osoba atakująca nie mogła utworzyć dwóch wiadomości, które wytwarzają tę samą wartość skrótu.
skróty MD5 nie są już uważane za bezpieczne kryptograficznie i nie powinny być używane do uwierzytelniania kryptograficznego.
w 2011 roku IETF opublikował RFC 6151, „Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms”, w którym wymieniono kilka ostatnich ataków na skróty MD5, zwłaszcza jeden, który generował kolizje skrótów w minutę lub mniej na standardowym notebooku i inny, który mógł wygenerować kolizję w zaledwie 10 sekund na systemie Pentium 4 2,66 GHz. W rezultacie IETF zasugerował, że nowe projekty protokołów nie powinny w ogóle używać MD5, a niedawne ataki badawcze na algorytm „dostarczyły wystarczających powodów, aby wyeliminować użycie MD5 w aplikacjach, w których wymagana jest odporność na kolizje, takich jak podpisy cyfrowe.”