Length extension attack とは

暗号化とコンピュータセキュリティでは、長さ拡張攻撃は、攻撃者が制御するメッセージのハッシュ(メッセージ1とメッセージ2)を計算するためにハッシュ(メッセージ1)とメッセージ1の長さを使用できる攻撃の一種です。この文脈では、メッセージに署名することは、秘密をハッシュ値に付加することによって行われ、秘密を共有するすべての受信者によって確認することができる。長さ拡張攻撃は、Merkle-Damgårdベースのハッシュがメッセージ認証コードとして誤用されたときにメッセージに署名するために使用され、現在のメッセージの最後に余分な情報を含めることを可能にする。
この攻撃は、メッセージと秘密の長さがわかっているときに、構造H(秘密のメッセージ)を持つハッシュで行うことができます。 Merkle-Damgård構造に基づいたMD5、SHA-1、SHA-2などのアルゴリズムは、この種の攻撃の影響を受けます。 HMACは構造H(キー‖メッセージ)を使用しないため、HMACハッシュは長さ拡張攻撃を受けにくいことに注意してください。 SHA-3アルゴリズムはこの攻撃の影響を受けません。