Funkcje te to: W krokach 1 do 16 (cykl 1) funkcja F(x,y,z) = (x and y) or (neg x and z)
(jeśli to w przeciwnym wypadku ) W krokach 17 do 32 (cykl 2) funkcja G(x,y,z) = (x and z) or (y and neg z)
(jeśli to w przeciwnym wypadku ) W krokach 33 do 48 (cykl 3) funkcja H(x,y,z) = (x xor y xor z)
(suma argumentów modulo 2, lub innymi słowy: czy występuje nieparzysta liczba jedynek w argumentach) W krokach 49 do 64 (cykl 4) funkcja I(x,y,z) = (y xor (x or neg z))
(jeżeli ( i ) wtedy , w przeciwnym wypadku nie )
Aby otrzymać wartość stałej w -tym kroku, należy wziąć 32 najstarsze bity z części ułamkowej wyrażenia
Podobną budowę mają funkcje skrótu MD4, SHA0 i SHA-1 – różnią się one jedynie postacią funkcji zmieniającej stan, oraz rozmiarem stanu (160 bitów, czyli 5 32-bitowych rejestrów w SHA i SHA1, wobec 128 w MD4 i MD5).
Skróty 128-bitowe są zbyt krótkie, żeby zabezpieczyć przed generowaniem kolizji w oparciu o atak urodzinowy. Z tego powodu do większości zastosowań lepiej jest używać skrótów co najmniej 160-bitowych.
Zobacz też md5sum SHA-1 tęczowe tablice
Przypisy
Linki zewnętrzne
Hasher MD5 Narzędzie do łamania MD5 MD5checker - Narzędzie do sprawdzania integralności pliku na podstawie sumy kontrolnej MD5 w systemie Linux Debian
Kategoria:Funkcje skrótu