情報処理安全確保支援士試験 2017年 秋期 午前204


ハッシュ関数の性質の一つである衝突発見困難性に関する記述のうち,適切なものはどれか。
SHA-256 の衝突発見困難性を示す, ハッシュ値が一致する二つのメッセージの探索に要する最大の計算量は, 256の2乗である。
SHA-256 の衝突発見困難性を示す, ハッシュ値の元のメッセージの探索に要する最大の計算量は、2の256乗である。
衝突発見困難性とは, ハッシュ値が与えられたときに,元のメッセージの探索に要する計算量が大きいことによる, 探索の困難性のことである。
衝突発見困難性とは, ハッシュ値が一致する二つのメッセージの探索に要する計算量が大きいことによる, 探索の困難性のことである。(正解)

解説

ハッシュ関数の衝突発見困難性に関する問題【午前2 解説】

要点まとめ

  • 結論:衝突発見困難性とは、同じハッシュ値を持つ異なるメッセージを見つけることが非常に難しい性質です。
  • 根拠:SHA-256のような安全なハッシュ関数では、衝突を見つける計算量は理論上非常に大きく、実用的には不可能とされています。
  • 差がつくポイント:衝突発見困難性と元のメッセージ探索(逆算困難性)を混同しないことが重要です。

正解の理由

選択肢エは「衝突発見困難性」を正しく説明しています。衝突発見困難性とは、異なる2つのメッセージが同じハッシュ値になる「衝突」を見つけることが難しい性質です。SHA-256の場合、衝突を見つける計算量は約21282^{128}(ハッシュ長の半分の指数)であり、非常に大きいため安全性が保たれています。
一方、元のメッセージを特定する難しさは「逆算困難性」と呼ばれ、こちらは22562^{256}の計算量が必要とされます。選択肢エは衝突発見困難性の定義を正確に述べているため正解です。

よくある誤解

衝突発見困難性と逆算困難性を混同し、元のメッセージ探索の難しさを衝突発見困難性と誤認することが多いです。
また、計算量の単位や指数の意味を誤解しやすい点にも注意が必要です。

解法ステップ

  1. 問題文の「衝突発見困難性」の定義を正確に理解する。
  2. 衝突発見困難性は「同じハッシュ値を持つ異なるメッセージを見つける難しさ」であることを確認。
  3. SHA-256のハッシュ長256ビットに対し、衝突発見には約21282^{128}の計算量が必要なことを知る。
  4. 選択肢の説明が衝突発見困難性の定義に合致しているかを判断。
  5. 元のメッセージ探索(逆算困難性)と混同している選択肢を除外。
  6. 正しく衝突発見困難性を説明している選択肢エを選ぶ。

選択肢別の誤答解説

  • ア:計算量を「256の2乗」と表現しており、正しくは21282^{128}程度であるため誤り。
  • イ:元のメッセージ探索の計算量22562^{256}は逆算困難性の話であり、衝突発見困難性の説明としては不適切。
  • ウ:衝突発見困難性を「元のメッセージの探索」と誤って説明しているため誤り。
  • :衝突発見困難性の定義を正しく述べているため正解。

補足コラム

ハッシュ関数の安全性は主に「逆算困難性」「衝突発見困難性」「第二原像困難性」の3つの性質で評価されます。
  • 逆算困難性:ハッシュ値から元のメッセージを特定するのが困難。
  • 衝突発見困難性:異なるメッセージで同じハッシュ値を見つけるのが困難。
  • 第二原像困難性:特定のメッセージに対して同じハッシュ値を持つ別のメッセージを見つけるのが困難。
    これらの性質が強いほど、ハッシュ関数は安全とされます。

FAQ

Q: 衝突発見困難性と逆算困難性はどう違いますか?
A: 衝突発見困難性は「異なるメッセージで同じハッシュ値を見つける難しさ」、逆算困難性は「ハッシュ値から元のメッセージを特定する難しさ」です。
Q: SHA-256の衝突発見に必要な計算量はどのくらいですか?
A: 約21282^{128}回の計算が必要とされ、現実的には非常に困難です。
Q: 衝突が見つかると何が問題ですか?
A: データの改ざん検知や認証に使われるハッシュ関数の信頼性が損なわれ、セキュリティリスクが高まります。

関連キーワード: ハッシュ関数, 衝突発見困難性, 逆算困難性, SHA-256, セキュリティ, 暗号学
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ