暗号に関連するデータで、出力可能なもの|情報処理安全確保支援士 平成28年 春期午前Ⅱ試験 問9
出典:平成28年春期 午前Ⅱ 問9
分野:セキュリティ / 情報セキュリティ
暗号に関連するデータのうち,次に示す処理で出力可能なものはどれか。
〔処理〕
(1)カウンターを初期化する。
(2)その時点に得た時刻データを共通鍵で暗号化する。
(3)カウンターの値と(2)の結果の XOR をとり,さらに共通鍵で暗号化する。
(4)(3)の結果を出力する。
(5)(3)の結果と(2)の結果の XOR をとり,さらに共通鍵で暗号化する。
(6)(5)の結果をカウンターの新しい値とする。
(7)(4)の出力について,必要とする分の数を得るまで(2)~(6)を繰り返す。
〔処理〕
(1)カウンターを初期化する。
(2)その時点に得た時刻データを共通鍵で暗号化する。
(3)カウンターの値と(2)の結果の XOR をとり,さらに共通鍵で暗号化する。
(4)(3)の結果を出力する。
(5)(3)の結果と(2)の結果の XOR をとり,さらに共通鍵で暗号化する。
(6)(5)の結果をカウンターの新しい値とする。
(7)(4)の出力について,必要とする分の数を得るまで(2)~(6)を繰り返す。
- ア:擬似乱数
- イ:ディジタル証明書
- ウ:ハッシュ値
- エ:メッセージ認証コード
TSUNAGARU-ADVICE
まず押さえたいこと
この処理は、時刻データ・カウンター・共通鍵暗号を組み合わせながら、前回までの結果を次の処理へ反映して値を生成しています。目的は、単純な規則性から予測されにくい擬似乱数列を生成することです。
迷ったときの判断軸
ディジタル証明書は公開鍵と所有者情報などを認証局が署名したもの、ハッシュ値はハッシュ関数から得られる固定長の値、メッセージ認証コードはメッセージと共通鍵から完全性確認用の値を生成するものです。この処理では、時刻・カウンター・暗号化結果を繰り返し更新しているため、予測困難な値を連続生成する仕組みかどうかに注目しましょう。
科目Bにつなげるために
科目Bでは、乱数生成・鍵生成・初期化ベクトル・ノンス・セッション鍵などと組み合わせて問われることがあります。乱数を扱う問題では、単に「値が毎回変わる」だけでなく、予測困難性・再利用防止・十分なエントロピーが確保されているかという観点で考えることが重要です。
この処理は、時刻データ・カウンター・共通鍵暗号を組み合わせて、予測しにくい値を繰り返し生成する仕組みです。生成された値を次回の内部状態にも反映することで、同じ処理を繰り返しても単純な規則性が現れにくくなります。
特に、時刻データを暗号化した値とカウンターをXORし、その結果をさらに暗号化して出力しています。このように、初期値や内部状態を基に暗号処理を繰り返して生成される値は、擬似乱数として利用できます。
したがって、アが適切です。
❌他選択肢が誤りの理由イ:ディジタル証明書
⇒ディジタル証明書は、公開鍵とその所有者の情報を結び付け、認証局がディジタル署名を付与したものです。時刻データやカウンターを暗号化して繰り返し値を生成する処理ではありません。
ウ:ハッシュ値
⇒ハッシュ値は、ハッシュ関数にデータを入力して得られる固定長の値です。この処理では共通鍵暗号と内部状態を用いて値を繰り返し生成しており、ハッシュ関数による処理ではありません。
エ:メッセージ認証コード
⇒メッセージ認証コードは、共通鍵とメッセージから認証用の値を生成し、改ざん検知や送信者確認に利用するものです。この処理は特定のメッセージを認証するのではなく、連続した予測困難な値を生成することを目的としています。