メルクル・ダムゴード構成
圧縮関数から、パディングと長さフィールドを使ってブロックごとにハッシュ関数を組み立てる方式。
原理は1979年にRalph Merkleが学位論文で示し、1989年にIvan Damgårdが形式化した。メッセージをブロックに分けてパディングし、各ブロックを直前の結果とともに圧縮関数へ通していく。MD5、SHA-1、SHA-256はいずれもこの構成である。
この構成には既知の弱点、長さ拡張攻撃がある。メッセージのハッシュ値と長さを知っていれば、元の内容を知らなくても、末尾に何かを足したメッセージのハッシュ値を計算できてしまう。HMACが鍵とメッセージを直接ハッシュせず二重に包む理由であり、設計の異なるSHA-3が別系統の標準として選ばれた理由でもある。