SC Workbook
科目 A-2 · セキュリティ

GCM の IV 重複

センサ機器は,AES-GCM でデータを暗号化してサーバに送信しており,付加データ(AAD)にはメッセージごとに異なる送信時刻を入れている。鍵は機器ごとに固定で,IV は機器内のカウンタから生成しているが,再起動のたびにカウンタが 0 に戻る不具合があり,同じ鍵と同じ IV で異なるデータが暗号化されていた。攻撃者は通信路上で IV と暗号文を収集しており,同じ IV で暗号化された二つのメッセージのうち,一方の平文を知っている。攻撃者が行えることとして,適切なものはどれか。

  1. ア二つの暗号文と IV から AES の鍵そのものを求め,この機器が別の IV で暗号化したデータも含めて復号する。
  2. イ先頭から同じ内容のブロックが続くかどうかは分かるが,既知の平文を使っても,他方のメッセージの平文の内容は求められない。
  3. ウ二つの暗号文の XOR が二つの平文の XOR に等しくなるので,これに既知の平文を XOR して,他方のメッセージの平文を求める。
  4. エAAD に入れた送信時刻がメッセージごとに異なるので,鍵ストリームもメッセージごとに異なり,IV が重複していても平文は求められない。
正解と解説を見る

正解 ウ

この問題の基礎知識

  • GCM は,CTR モードによる暗号化と GHASH による認証タグの計算を組み合わせた認証付き暗号であり,AAD(付加データ)は暗号化されず,認証タグの計算にだけ使われる。
  • CTR モードは,IV から作ったカウンタブロックを鍵を使ってブロック暗号で暗号化して鍵ストリームを作り,それを平文と XOR して暗号文を得る方式である。
  • XOR は,同じ値を 2 回 XOR すると打ち消し合う(A⊕B⊕B=A)性質をもつ。そのため,鍵ストリームを XOR する方式では,同じ鍵ストリームを異なる平文の暗号化に再び使ってはならない。
  • GCM では,同じ鍵の下で IV を重複させないことが安全性の前提であり,カウンタで生成する場合は再起動などでカウンタが戻らないようにする必要がある。
ア二つの暗号文と IV から AES の鍵そのものを求め,この機器が別の IV で暗号化したデータも含めて復号する。

IV の重複で再利用されるのは,その鍵と IV から生成された鍵ストリームであり,AES の鍵そのものは求められない。別の IV で暗号化されたデータには別の鍵ストリームが使われるので,この方法では復号できない。

イ先頭から同じ内容のブロックが続くかどうかは分かるが,既知の平文を使っても,他方のメッセージの平文の内容は求められない。

同じ鍵と IV で異なる平文を暗号化すると,攻撃者は二つの平文の XOR を復元できる。GCM の暗号化は CTR モードの変形で暗号文の XOR が平文の XOR になるので,既知の平文と XOR すれば他方の平文が求まる。

ウ二つの暗号文の XOR が二つの平文の XOR に等しくなるので,これに既知の平文を XOR して,他方のメッセージの平文を求める。正解

GCM の暗号化は CTR モードで,同じ鍵と IV からは同じ鍵ストリーム K が生成される。C1=P1⊕K,C2=P2⊕K なので C1⊕C2=P1⊕P2 となり,既知の P1 の長さの範囲で P2 が求まる。IV の重複は改ざん検知の安全性も損なう。

エAAD に入れた送信時刻がメッセージごとに異なるので,鍵ストリームもメッセージごとに異なり,IV が重複していても平文は求められない。

GCM の鍵ストリームは,鍵と,IV から作るカウンタブロックだけで決まる。AAD は認証タグの計算(GHASH)にだけ使われるので,AAD が異なっても IV が同じなら同じ鍵ストリームが使われる。

検証用の出典出典照合済み
RFC 5116 An Interface and Algorithms for Authenticated Encryption / NIST SP 800-38D Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC
照合の根拠(5 件)
  • ウ(正解): 同じ鍵と nonce で暗号化された二つの暗号文から平文の XOR が復元できる。イ(誤り): 既知の平文と組み合わせれば他方の平文が求まる
    First, a loss of confidentiality ensues because he will be able to reconstruct the bitwise exclusive-or of the two plaintext values.
    RFC 5116 · Section 5.1.1(新しいタブで開きます)
  • ウ(正解)の解説: IV の重複は改ざん検知の安全性も損なう
    Second, a loss of integrity ensues because the attacker will be able to recover the internal hash key used to provide data integrity.
    RFC 5116 · Section 5.1.1(新しいタブで開きます)
  • エ(誤り): 暗号文は鍵 K と IV から作る J0 と平文 P だけで決まり,AAD は使われない(AAD は Step 5 の GHASH にだけ入る)
    3. Let C=GCTRK(inc32(J0), P).
    NIST SP 800-38D · Section 7.1, Algorithm 4(新しいタブで開きます)
  • ウ(正解)・イ(誤り): GCTR はカウンタブロックの暗号化結果を平文と XOR するので,同じ鍵ストリームなら C1⊕C2=P1⊕P2 になる
    In Steps 5 and 6, the block cipher is applied to the counter blocks and the results are XORed with the corresponding blocks (or partial block) of the partition of the input string.
    NIST SP 800-38D · Section 6.5(新しいタブで開きます)
  • ア(誤り): 影響は重複したカウンタブロックに対応するデータに限られ,別の IV で暗号化されたデータは影響を受けない(鍵そのものは求まらない)
    If this requirement is breached, then the Counter mode encryption function may fail to provide the expected confidentiality for the data blocks that correspond to the repeating counter blocks, although the other data blocks are not affected.
    NIST SP 800-38D · Appendix A(新しいタブで開きます)

申し送りのイの解説「CBC で IV が重複すると先頭から同じブロックが続くかだけが分かる」は RFC 5116・SP 800-38D・SP 800-38A(CBC の IV は予測不能であることを求めるのみ)に記述がなく,正誤判断にも不要なので解説から外し,RFC 5116 5.1.1 で言える範囲に書き換えた。

問題 ID A2-SEC-0612 · AI 作成のオリジナル問題 · 正解と各選択肢の根拠を出典の原文で確認しています。 照合日 2026-11-08

非公式の学習用アプリです(IPA とは関係ありません)。問題はすべて AI が作成したオリジナルで、誤りを含む場合があります。