戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報セキュリティマネジメント 2017年 春期 午前(科目A)20


問題文

ディジタル署名などに用いるハッシュ関数の特徴はどれか。

選択肢

同じメッセージダイジェストを出力する二つの異なるメッセージは容易に求められる。
メッセージが異なっていても、メッセージダイジェストは全て同じである。
メッセージダイジェストからメッセージを復元することは困難である。(正解)
メッセージダイジェストの長さはメッセージの長さによって異なる。

🔒 解説は解答すると表示されます

ハッシュ関数の不可逆性【情報セキュリティマネジメント解説】

正解の理由

ディジタル署名で用いるハッシュ関数は、元のメッセージから短い固定長の要約(メッセージダイジェスト、message digest)を作ります。重要な性質の一つは「一方向性(ワンウェイ性)」で、ダイジェストから元のメッセージを復元することが極めて困難である点です。設問の選択肢ではこの性質を表すものが です。
ポイントを平易に言うと、署名は大きな文書そのものに署名するのではなく、その文書の“指紋”(ハッシュ値)に署名します。指紋から元の文書がわからない(復元できない)ため、署名の処理は効率的かつ安全に行えます。これがデジタル署名におけるハッシュ利用の根拠です。
(補足用語)ハッシュ関数(hash function:任意長の入力を固定長の値に変換する関数)、SHA(Secure Hash Algorithm:代表的なハッシュ関数群。例:SHA-256)

解法ステップ

  1. 「ディジタル署名で使う」という条件から、何のためにハッシュを使うかを考える。目的は「効率化」と「改ざん検知(整合性)」。
  2. 署名対象がダイジェストであることから、ダイジェストは短く固定長である必要がある。さらに、ダイジェストで元の文書がわかってしまっては困る(署名プロセスや安全性に問題が生じる)。
  3. 各選択肢を性質と照らし合わせる。元の文書を復元できない性質(一方向性)を表す選択肢が適合する。
  4. その選択肢が であると判断する。

選択肢別の誤答解説

  • ア: 「同じメッセージダイジェストを出力する二つの異なるメッセージは容易に求められる。」
    • 誤り。異なるメッセージ同士で同じダイジェストを作る事例を「衝突(コリジョン)」といい、良いハッシュ関数は衝突を容易に見つけられない(衝突耐性が高い)よう設計されています。容易に求められたら安全性が失われます。
  • イ: 「メッセージが異なっていても、メッセージダイジェストは全て同じである。」
    • 誤り。もし常に同じダイジェストになるなら、ダイジェストは情報を全く表現しないことになり、整合性検査に使えません。ハッシュは異なる入力で通常異なる出力を生成します。
  • ウ: 「メッセージダイジェストからメッセージを復元することは困難である。」
    • 正しい。これがハッシュの一方向性(preimage resistance)です。デジタル署名ではこの性質が必要で、署名の際にダイジェストを用いても元の文書の漏えいや改竄の危険を低くできます。ここで言う「困難」は計算上ほぼ不可能という意味です。
  • エ: 「メッセージダイジェストの長さはメッセージの長さによって異なる。」
    • 誤り。一般的な暗号学的ハッシュ関数は任意長の入力を受け取り、固定長の出力(例:SHA-256は256ビット)を返します。出力長が入力長に依存するのはハッシュの性質ではありません。

よくある誤解

  • ハッシュは暗号化(Encryption)と同じ、と思う誤解
    • 暗号化は復号(復元)可能で「機密性」を与えるのが目的です。ハッシュは一方向で復元できず「整合性確認」が主目的です。
  • 衝突と復元可能性を混同する誤解
    • 「衝突(collision)」は異なる2つの入力が同じ出力になること。これが見つかると問題ですが、衝突が容易に見つかることと「ダイジェストから元を復元できる」ことは別の性質です(どちらも避けるべきですが、問題で問われているのは復元困難性)。
  • 出力長が入力長と同じ/異なるという混乱
    • 暗号学的ハッシュは固定長出力が普通です(可変長メッセージ → 固定長ダイジェスト)。

補足コラム

  • ハッシュ関数の主な安全性の分類
    • Preimage resistance(一次元不可能性):ダイジェストから元メッセージを見つけるのが難しい。
    • Second-preimage resistance(二次攻撃耐性):あるメッセージに対して同じダイジェストを持つ別のメッセージを見つけるのが難しい。
    • Collision resistance(衝突耐性):任意の2つの異なるメッセージで同じダイジェストを見つけるのが難しい。
  • 実務での使い方(イメージ)
    • 電子契約書を署名するとき、端末やサーバで文書のハッシュを作り、署名者の秘密鍵でそのハッシュに署名します。受け取り側は公開鍵で署名を検証し、さらに受け取った文書のハッシュが一致するかを確かめます。これで改ざんの検出と署名の正当性を同時に検証できます。
  • よく使われるハッシュ関数の例
    • SHA-256(Secure Hash Algorithm 256ビット)は現在よく使われます。古いもの(MD5やSHA-1)は衝突が実際に見つかっており、重要な用途では推奨されません。

FAQ

Q. ハッシュ値が同じなら必ず文書は同じですか?
A. 理論的には異なる文書でも同じハッシュ(衝突)になり得ますが、強いハッシュ関数ではそのような衝突を見つけることは現実的に不可能で、実務上は「同じならほぼ同じ」と扱えます。
Q. ハッシュは機密情報を守れますか?
A. いいえ。ハッシュは一方向で復元が難しいため、パスワード保管などで使われますが、元データを隠すための暗号化とは目的が異なります。機密性が必要なら暗号化が必要です。
Q. 署名にハッシュを使う理由は?
A. 大きなファイルを直接署名すると計算量が大きくなるため、固定長で扱えるハッシュに署名することで効率化しつつ、整合性を保てるからです。

関連キーワード: ハッシュ関数、ワンウェイ性、衝突耐性、メッセージダイジェスト、SHA-256、デジタル署名、整合性検査
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

情報セキュリティマネジメント
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について