Konstrukcja Merkle’a–Damgårda
Przepis na budowę funkcji skrótu z funkcji kompresji, blok po bloku, z dopełnieniem i polem długości.
Zasadę opisał Ralph Merkle w pracy doktorskiej z 1979 roku, a sformalizował ją Ivan Damgård w 1989. Wiadomość dzieli się na bloki i dopełnia, a każdy blok trafia do funkcji kompresji razem z wynikiem poprzedniego kroku. W ten sposób zbudowane są MD5, SHA-1 i SHA-256.
Konstrukcja ma znaną słabość: atak przez wydłużenie wiadomości (length extension). Kto zna skrót wiadomości i jej długość, może obliczyć skrót wiadomości z doklejonym sufiksem, nie znając oryginalnej treści. Dlatego HMAC opakowuje funkcję skrótu zamiast haszować klucz i wiadomość wprost, i dlatego SHA-3, oparte na innym projekcie, wybrano jako osobny standard.