MD5 wydaje się mieć dobrze udokumentowane luki a jednak pozostaje rozpowszechniony w jego użyciu. Czy ktoś ma jakiekolwiek powody, aby pozostać realną opcją, gdy inne alternatywy (np. SHA-2) wydają się być bardziej solidne?
MD5 wydaje się mieć dobrze udokumentowane luki a jednak pozostaje rozpowszechniony w jego użyciu. Czy ktoś ma jakiekolwiek powody, aby pozostać realną opcją, gdy inne alternatywy (np. SHA-2) wydają się być bardziej solidne?
Odpowiedzi:
Szybko się generuje, a często fakt, że kolizje są teoretycznie możliwe, nie jest wielkim problemem. tj. sprawdzanie, czy plik z pamięci podręcznej zmienił się, aby uniknąć pobierania nowej kopii.
ZA szybki benchmark wykonany w 1996 roku pokazuje:
Digest Performance in MegaBytes per Second
Pentium P5 Power Mac SPARC 4 DEC Alpha
90 MHz 80 MHz 110 MHz 200 MHz
MD5 13.1 3.1 5.1 8.5
SHA1 2.5 1.2 2.0 3.3
Dla nowoczesnego zastosowania - na wbudowanych układach scalonych MD5 może być 2-3 razy szybszy w produkcji niż SHA1 dla tych samych informacji.
Wartość skrótu MD5 jest „wystarczająco dobra” dla większości trudnych zadań. Przypomnij sobie, że wciąż jest niezwykle trudno wyprodukować sensowne kolizje w tej samej liczbie bajtów.
Na przykład, powiedzmy, że pobierzesz nowy Ubuntu 9.10 w przyszłym tygodniu z zaufanego lustra. Chcesz sprawdzić, czy plik został pobrany poprawnie i całkowicie. Po prostu uruchom MD5 i zmień ISO. Porównaj hash z opublikowanym hashem. Jeśli skróty są zgodne, możesz być pewien, że ISO zostało skopiowane poprawnie i całkowicie.
a bezpieczeństwo można poprawić dzięki soleniu.
MD5 jest powszechnie stosowany jako funkcja skrótu sum kontrolnych, ponieważ jest szybki i charakteryzuje się wyjątkowo niskim współczynnikiem kolizji. Suma kontrolna MD5 składa się z 32 cyfr szesnastkowych, które razem dają prawdopodobieństwo kolizji 1 na ~ 3,42e34. Można teoretycznie mieszać wszystkie pliki na wszystkich komputerach w kraju wielkości USA i nie powodować kolizji (*).
W kryptografii MD5 jest ważną alternatywą, jeśli bezpieczeństwo jest tylko umiarkowanym problemem. Jest to bardzo realna opcja do mieszania haseł baz danych lub innych pól wymagających wewnętrznego bezpieczeństwa głównie ze względu na szybkość, ale także dlatego, że MD5 oferuje rozsądny poziom bezpieczeństwa, gdzie silne szyfrowanie nie stanowi problemu.
(*) dla większości celów sumy kontrolnej kolizja ma znaczenie tylko wtedy, gdy ma miejsce między dwoma obiektami o podobnym pochodzeniu io tym samym rozmiarze. Pomimo wysokiego prawdopodobieństwa unikalności MD5, kolizje mogą ostatecznie wystąpić między dwoma bardzo różnymi plikami. Powiedz, plik bazy danych 1,5 MB i plik gif 35 kB. Dla większości celów jest to bezsensowna kolizja. Tym bardziej, że MD5 to tylko jeden element indeksowania plików. Kolejny ważny jest rozmiar pliku.
MD5 jest szeroko stosowany, ponieważ był powszechnie stosowany, a przerwy nie są jeszcze wystarczająco znaczące, aby stanowić oczywisty problem w istniejących systemach.
sha256sum filename.iso
zamiastmd5sum filename.iso
?