コンテンツへスキップ
uencoder

Collision Resistance

衝突耐性とは、同じハッシュ出力を生む 2 つの異なる入力を見つけることが実行不可能であるというハッシュ関数の性質である。必要な出力長は誕生日攻撃が決める。

目的

ハッシュ値が入力を一意に特定することを保証し、デジタル署名と完全性検証の安全性基盤となる。

メカニズム

n ビットのハッシュでは、誕生日攻撃は約 2^(n/2) 回の計算で衝突を見つけられる。したがって 128 ビットハッシュはわずか 2^64 回で衝突し(安全でない)、256 ビットなら 2^128 回が必要である(安全)。MD5 と SHA-1 は衝突攻撃のため非推奨となった。

ユースケース

  • デジタル署名のセキュリティ基盤
  • コンテンツアドレスストレージ(Git、IPFS)
  • 証明書フィンガープリントの一意性
  • ブロックチェーンのプルーフオブワーク

例

  • 入力
    SHA-256 (256-bit)
    Output
    2^128 trials needed to find a collision

    Secure

よくあるエラー

Using a 128-bit hash (collision needs only 2^64)
Use at least 256-bit output

関連用語

関連ツール

References