基本情報技術者 2013年 秋期 午前(科目A) 問38
問題文
ディジタル署名などに用いるハッシュ関数の特徴はどれか。
選択肢
ア:同じメッセージダイジェストを出力する二つの異なるメッセージは容易に求められる。
イ:メッセージが異なっていても、メッセージダイジェストは全て同じである。
ウ:メッセージダイジェストからメッセージを復元することは困難である。(正解)
エ:メッセージダイジェストの長さはメッセージの長さによって異なる。
ディジタル署名などに用いるハッシュ関数の特徴はどれか。【午前2 解説】
要点まとめ
- 結論:ハッシュ関数はメッセージダイジェストから原文を復元することが困難(不可逆)でありこれが署名の安全性を支えます。
- 根拠:プリイメージ耐性と衝突耐性を持ち、任意長入力を固定長出力に変換して一方向性を実現する仕様だからです。
- 差がつくポイント:プリイメージ耐性(復元困難)と衝突耐性(異なる入力で同一出力を避ける)の区別を正確に理解してください。
正解の理由
正解は ウ です。ディジタル署名で用いるハッシュ関数に求められる主要な性質は「一方向性(プリイメージ耐性)」で、与えられたダイジェストからその元のメッセージを現実的な時間で復元することが困難である点が安全性の根幹です。ハッシュは任意長のメッセージを計算容易な方法で固定長のダイジェストに圧縮するため、ダイジェストのみから元メッセージを逆算することは困難と設計されています。
よくある誤解
- 「ハッシュは暗号化と同じで復号できる」は誤り。ハッシュは不可逆の一方向関数であり復元を前提としません。
- 「ダイジェストは必ず唯一である」は誤解。出力ビット数が有限なため理論上は衝突が存在し得るが、現実的時間で衝突を見つけられないことが求められます。
- 「出力長は入力長と同じで変わる」は誤り。ほとんどの暗号学的ハッシュは固定長出力を生成します(例:SHA-256は常に256ビット)。
解法ステップ
- 問題文で「ディジタル署名などに用いる」とある点からハッシュ関数のセキュリティ特性を想起する。
- ハッシュ関数の代表的性質を挙げる:一方向性(プリイメージ耐性)、第二プリイメージ耐性、衝突耐性、固定長出力、計算効率。
- 選択肢と上記性質を照合し、プリイメージ耐性に該当する選択肢を選ぶ。
- 他の選択肢が何を誤っているかを確認して誤答を排除する。
選択肢別の誤答解説
- ア: 「同じメッセージダイジェストを出力する二つの異なるメッセージは容易に求められる。」
→ 誤り。衝突(同じダイジェストを作る異なる入力)が存在する理論的余地はあるが、暗号学的ハッシュでは衝突を「容易に」見つけられないことが要求されます。 - イ: 「メッセージが異なっていても、メッセージダイジェストは全て同じである。」
→ 明らかに誤り。もし全て同じなら情報を全く保持せず利用価値がないため実用的ハッシュの定義に反します。 - ウ: 「メッセージダイジェストからメッセージを復元することは困難である。」
→ 正解。これがプリイメージ耐性であり、ディジタル署名でハッシュを使う大きな理由です。 - エ: 「メッセージダイジェストの長さはメッセージの長さによって異なる。」
→ 誤り。暗号学的に使われるハッシュ関数は通常出力は固定長であり、入力の長さに依存しません(内部処理は別)。
補足コラム
- 代表的アルゴリズム:SHA-256、SHA-3、MD5(古く安全でない)など。実務ではMD5やSHA-1は衝突が実証されているため非推奨です。
- 用途の違い:ハッシュは署名の前段でメッセージを短くして速度と可搬性を高め、署名自体は公開鍵暗号で行うのが一般的です。
- セキュリティ評価:プリイメージ耐性(one-way)、第二プリイメージ耐性、衝突耐性の3種類を区別して学ぶことが重要です。
FAQ
Q1: ハッシュが不可逆ならどうやって署名の検証をするのですか?
A1: 送信側はメッセージのダイジェストを生成して秘密鍵で署名し、受信側は同じハッシュ関数でダイジェストを作り公開鍵で署名を検証します。ダイジェストそのものを復元する必要はありません。
A1: 送信側はメッセージのダイジェストを生成して秘密鍵で署名し、受信側は同じハッシュ関数でダイジェストを作り公開鍵で署名を検証します。ダイジェストそのものを復元する必要はありません。
Q2: 衝突が見つかったらどうなるのですか?
A2: 衝突が実際に容易に生成できると判明したハッシュは安全でないため、仕様や実装を廃止して安全なハッシュに移行する必要があります(例:SHA-1の退役)。
A2: 衝突が実際に容易に生成できると判明したハッシュは安全でないため、仕様や実装を廃止して安全なハッシュに移行する必要があります(例:SHA-1の退役)。
Q3: 「固定長出力」はなぜ必要ですか?
A3: 固定長にすることで署名や認証プロトコルの設計を簡潔にし、計算量や通信量の予測を容易にします。
A3: 固定長にすることで署名や認証プロトコルの設計を簡潔にし、計算量や通信量の予測を容易にします。
関連キーワード: ハッシュ関数、ダイジェスト、プリイメージ耐性、衝突耐性、固定長出力、SHA-256、ディジタル署名、暗号学的ハッシュ、第二プリイメージ耐性

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

