Merkle–Damgård-konstruktionen
Receptet för att bygga en hashfunktion av en komprimeringsfunktion, block för block, med paddning och längdfält.
Ralph Merkle beskrev principen i sin avhandling 1979, och Ivan Damgård formaliserade den 1989. Meddelandet delas i block, paddas, och varje block matas tillsammans med föregående mellanresultat genom en komprimeringsfunktion. MD5, SHA-1 och SHA-256 är alla uppbyggda så.
Konstruktionen har en känd svaghet: längdförlängningsattacken. Den som känner hashen av ett meddelande och dess längd kan räkna ut hashen för meddelandet med ett tillägg, utan att känna till originalinnehållet. Därför omsluts hashen i HMAC i stället för att nyckel och meddelande hashas direkt, och SHA-3, som bygger på en annan konstruktion, valdes som separat standard.