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


暗号に関連するデータのうち,次に示す処理で出力可能なものはどれか。   〔処理〕  (1) カウンタを初期化する。  (2) その時点に得た時刻データを共通鍵で暗号化する。  (3) カウンタの値と(2)の結果のXORをとり,さらに共通鍵で暗号化する。  (4) (3)の結果を出力する。  (5) (3)の結果と(2)の結果のXORをとり,さらに共通鍵で暗号化する。  (6) (5)の結果をカウンタの新しい値とする。  (7) (4)の出力について,必要とする分の数を得るまで(2)~(6)を繰り返す。
擬似乱数(正解)
ディジタル証明書
ハッシュ値
メッセージ認証コード

解説

暗号に関連するデータのうち,次に示す処理で出力可能なものはどれか。【午前2 解説】

要点まとめ

  • 結論:この処理は擬似乱数を生成するアルゴリズムであり、正解はアの「擬似乱数」です。
  • 根拠:カウンタと時刻データを共通鍵で暗号化し、XOR演算と再暗号化を繰り返すことで、予測困難な乱数列を生成しています。
  • 差がつくポイント:擬似乱数生成の仕組みと、ディジタル証明書やハッシュ値、メッセージ認証コードとの違いを理解することが重要です。

正解の理由

この処理は、初期値(カウンタ)と時刻データを共通鍵で暗号化し、XOR演算と再暗号化を繰り返すことで、外部から予測できない乱数列を生成しています。これは擬似乱数生成器(PRNG)の典型的な構造であり、暗号処理で安全な乱数を作るための方法です。
一方、ディジタル証明書は公開鍵基盤の証明書、ハッシュ値は固定長のデータ要約、メッセージ認証コードはデータの改ざん検知に使われるため、この処理の目的とは異なります。

よくある誤解

  • 「暗号化を使っているからメッセージ認証コードやハッシュ値の生成処理だ」と誤解しやすいです。
  • 時刻データを使うため、証明書の生成処理と混同することがあります。

解法ステップ

  1. 処理の流れを読み、何を繰り返しているかを把握する。
  2. カウンタと時刻データを使い、XORと暗号化を繰り返している点に注目。
  3. これが乱数列を生成する典型的な方法であることを理解。
  4. 選択肢の意味を整理し、擬似乱数生成に該当するものを選ぶ。
  5. 他の選択肢の特徴と処理内容を比較し、誤りを排除する。

選択肢別の誤答解説

  • ア: 擬似乱数
    正解。カウンタと時刻データを用い、暗号化とXORを繰り返すことで乱数列を生成する典型的な方法です。
  • イ: ディジタル証明書
    公開鍵と所有者情報を証明するデータであり、今回の処理とは無関係です。
  • ウ: ハッシュ値
    入力データの固定長要約であり、XORやカウンタの繰り返し処理は含みません。
  • エ: メッセージ認証コード
    データの改ざん検知用で、通常はハッシュ関数と秘密鍵を組み合わせて生成しますが、今回の処理とは異なります。

補足コラム

擬似乱数生成は暗号技術の基盤であり、暗号鍵の生成や初期化ベクトルの作成に不可欠です。安全な擬似乱数生成器は、外部からの予測を防ぐために時刻やカウンタ、秘密鍵を組み合わせて複雑な処理を行います。今回のようなXORと暗号化の組み合わせは、暗号論的擬似乱数生成器(CSPRNG)の一例です。

FAQ

Q: なぜ時刻データを使うのですか?
A: 時刻データは毎回変化するため、乱数の初期値として予測困難性を高める役割を果たします。
Q: メッセージ認証コードと擬似乱数の違いは何ですか?
A: メッセージ認証コードはデータの改ざん検知用で、擬似乱数は予測困難な数列生成用です。目的と生成方法が異なります。

関連キーワード: 擬似乱数生成, 暗号化, XOR演算, カウンタ, CSPRNG, メッセージ認証コード, ハッシュ値, ディジタル証明書
← 前の問題へ次の問題へ →

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