暗号技術の基礎と応用

AES(ブロック長16バイト)をCBCモードで使い、パディングにはPKCS#7方式を使う。PKCS#7方式では、足りないバイト数をnとして値がnのバイトをn個足し、平文の長さがちょうど16の倍数のときも、値が16のバイトを16個足す。96バイトの平文を暗号化したときの暗号文の長さ(IVは含めない)はどれか。

  1. A96バイト
  2. B112バイト
  3. C128バイト
答えと解説を見る

正解:B. 112バイト

96バイトは16バイトのちょうど6ブロックですが、PKCS#7方式では、割り切れるときも値16のバイトを16個並べた1ブロックを足します。そのため、平文は 96 + 16 = 112 バイト(7ブロック)になり、暗号文も112バイトです。割り切れるときにも足すのは、復号した側が最後のバイトの値を見て、いつでもパディングを取り除けるようにするためです。CTRモードやGCMのように鍵ストリームとXORするモードでは、パディングが要らず、暗号文は平文と同じ長さになります。

  • A. パディングを足さないときの値です。PKCS#7方式では、ちょうど割り切れるときも1ブロック分のパディングを足します。
  • B. 正しい。96 + 16 = 112 バイトです。
  • C. 112バイトに、IVの16バイトも足した値です。
この分野を解く 分野ページへ

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

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

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

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

この分野の比較