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


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

解説

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

要点まとめ

  • 結論:衝突発見困難性とは、異なるメッセージが同じハッシュ値になる組み合わせを見つけるのが困難な性質です。
  • 根拠:SHA-256のような安全なハッシュ関数は、衝突を見つけるために膨大な計算量が必要であり、これがセキュリティの基盤となっています。
  • 差がつくポイント:衝突発見困難性は「同じハッシュ値を持つ異なるメッセージの発見」であり、「元のメッセージの発見」とは異なる概念である点を正確に理解することが重要です。

正解の理由

選択肢エは「衝突発見困難性とは、ハッシュ値が一致する二つのメッセージの発見に要する計算量が大きいことによる発見の困難性」と正しく説明しています。
ハッシュ関数の衝突とは、異なる入力が同じハッシュ値を生成する現象であり、これを見つけることが難しい性質を指します。
SHA-256の場合、理論的には約21282^{128}回の計算が必要とされ、これが衝突発見困難性の根拠です。

よくある誤解

衝突発見困難性は「元のメッセージを見つける困難性」ではなく、「同じハッシュ値を持つ別のメッセージを見つける困難性」です。
また、計算量の単位や指数の扱いを誤解しやすいので注意が必要です。

解法ステップ

  1. 衝突発見困難性の定義を確認する(異なるメッセージが同じハッシュ値になること)。
  2. SHA-256のハッシュ長(256ビット)から計算量の目安を理解する。
  3. 衝突発見困難性は「同じハッシュ値を持つ異なるメッセージの発見」であることを認識する。
  4. 選択肢の説明が定義と合致しているかを比較する。
  5. 正しい説明をしている選択肢を選ぶ。

選択肢別の誤答解説

  • ア:計算量を「256の2乗」としているが、正しくは21282^{128}程度であり、表現が誤っている。
  • イ:元のメッセージの発見に要する計算量と述べているが、これは「原像困難性」の説明であり、衝突発見困難性とは異なる。
  • ウ:衝突発見困難性を「元のメッセージの発見」と誤って説明している。
  • :衝突発見困難性の正しい定義を述べているため正解。

補足コラム

ハッシュ関数の安全性は主に「原像困難性」「第二原像困難性」「衝突発見困難性」の3つの性質で評価されます。
  • 原像困難性:ハッシュ値から元のメッセージを見つける困難性。
  • 第二原像困難性:特定のメッセージに対して異なるメッセージを見つける困難性。
  • 衝突発見困難性:異なるメッセージ同士で同じハッシュ値を見つける困難性。
    SHA-256はこれらを高いレベルで満たすため、広く使われています。

FAQ

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

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

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