情報処理安全確保支援士試験 2021年 春期 午前203


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

解説

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

要点まとめ

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

正解の理由

選択肢エは「衝突発見困難性」を正しく説明しています。衝突発見困難性とは、異なる2つのメッセージが同じハッシュ値になる(衝突する)ペアを見つけることが困難である性質です。SHA-256の場合、ハッシュ値は256ビットであり、衝突を見つけるための計算量は理論的に約21282^{128}回の試行が必要とされます。これは非常に大きな計算量であり、実用的には衝突を見つけることが難しいことを示しています。

よくある誤解

衝突発見困難性は「元のメッセージを見つける困難性」と混同されやすいですが、これは「原像困難性」と呼ばれる別の性質です。
また、計算量の表記を誤り「256の2乗」などとするのも誤解の原因です。

解法ステップ

  1. 問題文の「衝突発見困難性」の定義を正確に理解する。
  2. 衝突発見困難性は「同じハッシュ値を持つ異なるメッセージの発見困難性」であることを確認。
  3. SHA-256のハッシュ長256ビットから計算量の目安を考える(衝突発見は約21282^{128}回)。
  4. 選択肢の説明と計算量の表記を比較し、正しいものを選ぶ。
  5. 原像困難性(元のメッセージ発見困難性)と混同している選択肢を除外する。

選択肢別の誤答解説

  • ア:計算量を「256の2乗」と表現しており誤り。正しくは21282^{128}程度。
  • イ:元のメッセージ発見困難性(原像困難性)を説明しているが、問題は衝突発見困難性について。
  • ウ:衝突発見困難性を「元のメッセージの発見困難性」と誤って説明している。
  • :衝突発見困難性の正しい説明であり、正解。

補足コラム

ハッシュ関数の安全性は主に3つの性質で評価されます。
  1. 原像困難性:ハッシュ値から元のメッセージを見つけるのが困難。
  2. 第二原像困難性:あるメッセージに対して同じハッシュ値を持つ別のメッセージを見つけるのが困難。
  3. 衝突発見困難性:異なる2つのメッセージが同じハッシュ値になるペアを見つけるのが困難。
    SHA-256はこれらの性質を高いレベルで満たしており、広く利用されています。

FAQ

Q: 衝突発見困難性と原像困難性はどう違いますか?
A: 衝突発見困難性は「同じハッシュ値を持つ異なるメッセージの発見困難性」、原像困難性は「ハッシュ値から元のメッセージを見つける困難性」です。
Q: SHA-256の衝突発見に必要な計算量はどのくらいですか?
A: 理論的には約21282^{128}回の試行が必要で、非常に大きな計算量です。

関連キーワード: ハッシュ関数, 衝突発見困難性, SHA-256, 原像困難性, 情報セキュリティ
← 前の問題へ次の問題へ →

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