sg sg-security-overview crypto_auth data_leakage
まず結論
- ハッシュ関数の衝突耐性とは、異なる2つのデータで同じハッシュ値(衝突)を見つけることが非常に困難な性質です。
- SG試験では「改ざん検知の信頼性が保たれる理由」を判断させるポイントとして問われます。
直感的な説明
ハッシュ関数は「データの指紋」を作るイメージです。
-
正常な状態
→ データA → ハッシュ値X -
攻撃者の狙い
→ データB(改ざん)でも同じハッシュ値Xにしたい
しかし、衝突耐性が強ければ
👉「別のデータなのに同じ指紋を作る」のがほぼ不可能
だから、
ハッシュ値が一致=改ざんされていないと判断できるわけです。
定義・仕組み
ハッシュ関数には主に3つの性質があります:
- 一方向性:ハッシュ値から元データを戻せない
- 弱衝突耐性:あるデータと同じハッシュ値の別データを見つけるのが困難
- 強衝突耐性:任意の2つの異なるデータで同じハッシュ値を見つけるのが困難
この中で衝突耐性は、特に次の意味を持ちます:
- 改ざん検知の信頼性を支える
- 電子署名の正当性を守る
SG試験では
👉「ハッシュ値が一致しているから安全」と言える根拠
として理解しておくことが重要です。
どんな場面で使う?
使う場面
- ファイルの改ざんチェック(ダウンロードファイルの検証)
- 電子署名(データの正当性確認)
- パスワード保存(ハッシュ化して保存)
誤解しやすい場面
- ハッシュ値が一致しても「絶対安全」と思い込む
→ 衝突が理論上は存在するため「極めて困難」が正しい理解
よくある誤解・混同
❌ よくある誤解
- 衝突耐性がある → 同じハッシュ値は絶対に発生しない
⭕ 正しい理解
- 衝突は起こり得るが、現実的に見つけるのが極めて困難
SG試験のひっかけ
SG試験では次のように混同させてきます:
-
「一方向性」と「衝突耐性」の混同
→ 一方向性は“戻せない”、衝突耐性は“同じ値を作れない” -
「弱衝突耐性」と「強衝突耐性」の混同
→ 強衝突耐性のほうが条件が厳しい
👉 選択肢では
「元データを復元できない」=一方向性
と書かれていたら、衝突耐性ではないので注意
まとめ(試験直前用)
- 衝突耐性=「異なるデータで同じハッシュ値を作るのが困難」
- 改ざん検知・電子署名の信頼性の根拠になる
- 「絶対に衝突しない」は誤り(あくまで困難)
- 一方向性(戻せない)との違いを必ず切り分ける
🔗 関連記事
- 攻撃者の種類とは?目的と特徴で整理する【情報セキュリティマネジメント】
- 認証・認可・アクセス制御の違いとは?役割の切り分けを整理【情報セキュリティマネジメント】
- 認証方式とは?3要素と多要素認証を整理【SG試験】
- ブロック暗号とストリーム暗号の違いとは?暗号方式を整理【SG試験】
- ボットネットとは?踏み台化とDDoSの関係を理解する【情報セキュリティマネジメント】