暗号技術の基礎と応用

AESをCBCモードで使うときの、初期化ベクトル(IV)の扱いとして適切なものはどれか。

  1. AIVは鍵と同じく秘密にし、すべてのメッセージで同じ値を使い続ける
  2. BIVは秘密にしなくてよいが、メッセージごとに、攻撃者が予測できないランダムな値を新しく選ぶ
  3. CIVは秘密にしなくてよく、相手と決めておいた同じ値(例えばすべて0)に毎回固定して使ってよい
答えと解説を見る

正解:B. IVは秘密にしなくてよいが、メッセージごとに、攻撃者が予測できないランダムな値を新しく選ぶ

CBCモードでは、各平文ブロックを直前の暗号文ブロックとXORしてから暗号化し、最初のブロックはIVとXORします。IVはふつう暗号文の先頭に付けて送るので、秘密にする必要はありません。しかし、毎回同じIVを使うと、先頭が同じメッセージは暗号文の先頭も同じになり、内容の一部が同じであることが漏れます。さらに、次に使われるIVを攻撃者が予測できると、選んだ平文を暗号化させて内容を推測する攻撃が成り立つことが知られています(TLS 1.0に対するBEAST攻撃など)。

  • A. IVは暗号文と一緒に送るのがふつうで、秘密にする必要はありません。同じ値を使い続けると、先頭が同じメッセージを見分けられてしまいます。
  • B. 正しい。CBCモードのIVは、メッセージごとに予測できない値にします。
  • C. 固定のIVでは、同じ平文から常に同じ暗号文ができるので、ECBモードに近い弱点が生じます。
この分野を解く 分野ページへ

暗号技術の基礎と応用の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

暗号技術の基礎と応用のほかの問題

  1. AES(ブロック長16バイト)をCBCモードで使い、パディングにはPKCS#7方式を使う。PKCS#7方式では、足りないバイト数をnとして値がnのバイトをn個足し、平文の長さがちょうど16の倍数のときも、値が16のバイトを16個足す。96バイトの平文を暗号化したときの暗号文の長さ(IVは含めない)はどれか。
  2. CBCモードで暗号化したデータを受け取るサーバが、復号した後のパディングが正しくないときと、パディングは正しいが中身の検査に失敗したときとで、異なるエラーを返していた。この状況についての説明として、正しいものはどれか。
  3. ブロック暗号のCTRモード(カウンタモード)の特徴として、正しいものはどれか。
  4. CTRモードで、誤って同じ鍵と同じナンスを使い、2つのメッセージを暗号化した。ある位置のバイトについて、1つ目の平文 P₁ は 01001000(ASCIIの「H」)、その暗号文 C₁ は 01110100、2つ目の暗号文 C₂ は 01010101 である。攻撃者が P₁ を知っているとき、同じ位置の2つ目の平文 P₂ はどれか。
  5. AES-GCMのような認証付き暗号(AEAD)が、1つの処理で提供するものとして正しいものはどれか。

この分野の比較