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