基本情報 平成25年度 春期 問38:テクノロジ系に関する問題
ディジタル署名などに用いるハッシュ関数の特徴はどれか。
- a同じメッセージダイジェストを出力する二つの異なるメッセージは容易に求めら れる。
- bメッセージが異なっていても, メッセージダイジェストは全て同じである。
- cメッセージダイジェストからメッセージを復元することは困難である。正答
- dメッセージダイジェストの長さはメッセージの長さによって異なる。
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c です。
ハッシュ関数は「メッセージを短い指紋(要約)に変換する関数」。重要な特徴は2つ:
- 同じメッセージからは必ず同じ指紋ができる
- 指紋からは元のメッセージに戻せない(一方通行)
たとえば書類をシュレッダーにかけたら元に戻せませんよね。それと同じです。
👉 覚え方:「ハッシュ=指紋(要約)。元には戻せない一方通行」。
ほかの選択肢:a 同じ指紋になる別文書を作るのは困難(衝突困難性)/b 異なるメッセージが必ず同じ指紋とは限らない/d 指紋の長さは入力に関わらず一定。
なぜこれが正解か
正解は c。ハッシュ関数は (1)一方向性(メッセージダイジェストからメッセージへの復元が計算困難)、(2)衝突困難性(同じダイジェストを出す異なる入力を見つけるのが困難)、(3)固定長出力を持つ。c は一方向性の説明として正しい。
各選択肢の解説
- a 同じダイジェストを出す異なる二つのメッセージは容易に求められる → 衝突困難性に反するので誤り。
- b メッセージが異なってもダイジェストが全て同じ → 識別性ゼロで意味なし、誤り。
- d ダイジェスト長がメッセージ長で変わる → 固定長出力の特性に反するため誤り。
覚え方・ひっかけ注意
ハッシュ関数の3大特性「一方向性(preimage resistance)、第二原像困難性(2nd preimage)、衝突困難性(collision resistance)」を3点セットで覚える。代表的ハッシュ関数:SHA-256(256bit出力、現代標準)、SHA-3、MD5(衝突発見済み・非推奨)。ハッシュ関数 ≠ 暗号化(復号できない)の点を取り違えない。
理論的背景
暗号学的ハッシュ関数(Cryptographic Hash Function)の必須3特性:
1. 原像計算困難性(preimage resistance):与えられたハッシュ値 h に対し、h(x)=h となる x を見つけることが困難(一方向性)
2. 第二原像計算困難性(2nd preimage resistance):与えられた x に対し、h(x)=h(y) となる y≠x を見つけることが困難
3. 衝突困難性(collision resistance):h(x)=h(y) となる x≠y のペアを見つけることが困難
誕生日攻撃(birthday attack)により、nビットのハッシュ関数では衝突が約 2^(n/2) 回試行で発見されるため、衝突困難性のセキュリティ強度は出力長の半分。SHA-256は128bit強度、SHA-512は256bit強度。
実務での使われ方
用途は多岐にわたる:
- ディジタル署名:メッセージのハッシュに署名(高速化)
- 整合性検証:ファイル改ざん検知(SHA-256ハッシュ公開)
- パスワード保存:bcrypt/scrypt/Argon2(遅いハッシュで総当たり耐性)
- ブロックチェーン:Bitcoin/EthereumでSHA-256/Keccak-256
- メッセージ認証:HMAC(ハッシュベースMAC)
- データ重複排除:クラウドストレージでの冗長削除
古いMD5(1991)は2004年にWangらにより衝突発見、SHA-1(1995)も2017年Googleが衝突実例(SHAttered攻撃)公開、ともに非推奨。現在はSHA-2族(SHA-256/SHA-512)、SHA-3族(Keccakベース)が標準。
試験での位置づけ
FE・APセキュリティ分野で頻出。共通鍵暗号・公開鍵暗号・ハッシュ・電子署名・PKIの体系で出題。情報処理安全確保支援士では、HMAC構造、Merkle-Damgard構造、スポンジ構造(SHA-3)、量子耐性ハッシュまで踏み込む。
関連事項・発展補足
ハッシュ関数の用途別最適化:パスワードハッシュには鍵導出関数(KDF)として PBKDF2 / bcrypt / scrypt / Argon2 を使用(意図的に遅く設計し総当たり耐性確保)。HMACは「H(K xor opad || H(K xor ipad || M))」構造でメッセージ認証コードを生成し、TLS・IPsec・JWTなどで広く利用。ブロックチェーンではマークル木(Merkle Tree)でトランザクション群を集約しブロックヘッダのハッシュとする構造で、改ざん検知と効率的検証を実現。量子コンピュータ脅威に対しては、Grover アルゴリズムでハッシュ強度が半分になるため、SHA-256→SHA-512、SHA-3-256→SHA-3-512への移行が長期的視点で議論されている。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 春期 問38/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。