Skip to the content.

まず結論

  • ハッシュ関数の衝突耐性とは、異なる2つのデータで同じハッシュ値(衝突)を見つけることが非常に困難な性質です。
  • SG試験では「改ざん検知の信頼性が保たれる理由」を判断させるポイントとして問われます。

直感的な説明

ハッシュ関数は「データの指紋」を作るイメージです。

  • 正常な状態
    → データA → ハッシュ値X

  • 攻撃者の狙い
    → データB(改ざん)でも同じハッシュ値Xにしたい

しかし、衝突耐性が強ければ
👉「別のデータなのに同じ指紋を作る」のがほぼ不可能

だから、
ハッシュ値が一致=改ざんされていないと判断できるわけです。


定義・仕組み

ハッシュ関数には主に3つの性質があります:

  • 一方向性:ハッシュ値から元データを戻せない
  • 弱衝突耐性:あるデータと同じハッシュ値の別データを見つけるのが困難
  • 強衝突耐性:任意の2つの異なるデータで同じハッシュ値を見つけるのが困難

この中で衝突耐性は、特に次の意味を持ちます:

  • 改ざん検知の信頼性を支える
  • 電子署名の正当性を守る

SG試験では
👉「ハッシュ値が一致しているから安全」と言える根拠
として理解しておくことが重要です。


どんな場面で使う?

使う場面

  • ファイルの改ざんチェック(ダウンロードファイルの検証)
  • 電子署名(データの正当性確認)
  • パスワード保存(ハッシュ化して保存)

誤解しやすい場面

  • ハッシュ値が一致しても「絶対安全」と思い込む
    → 衝突が理論上は存在するため「極めて困難」が正しい理解

よくある誤解・混同

❌ よくある誤解

  • 衝突耐性がある → 同じハッシュ値は絶対に発生しない

⭕ 正しい理解

  • 衝突は起こり得るが、現実的に見つけるのが極めて困難

SG試験のひっかけ

SG試験では次のように混同させてきます:

  • 「一方向性」と「衝突耐性」の混同
    → 一方向性は“戻せない”、衝突耐性は“同じ値を作れない”

  • 「弱衝突耐性」と「強衝突耐性」の混同
    → 強衝突耐性のほうが条件が厳しい

👉 選択肢では
「元データを復元できない」=一方向性
と書かれていたら、衝突耐性ではないので注意


まとめ(試験直前用)

  • 衝突耐性=「異なるデータで同じハッシュ値を作るのが困難」
  • 改ざん検知・電子署名の信頼性の根拠になる
  • 「絶対に衝突しない」は誤り(あくまで困難)
  • 一方向性(戻せない)との違いを必ず切り分ける

🔗 関連記事


🏠 情報セキュリティマネジメントトップに戻る