Byte-at-a-time ECB decryption
各ブロックに入る内容を操作することで、ECBで暗号化するサービスから隠された文字列を1バイトずつ取り出す攻撃。
入力に秘密の文字列を連結し、AESのECBモードで暗号化して返すサービスを考える。攻撃者は短い入力を送って秘密をずらし、未知のバイトがちょうどブロックの末尾に来るようにする。そのブロックの暗号文を、その位置に入りうる256通りの値すべての暗号文と比較すれば、バイトが特定できる。これを繰り返して秘密全体を読み出す。
このトリックはECBが決定的であること、つまり同じ平文ブロックが必ず同じ暗号文ブロックになることに依存する。Cryptopalsの課題の定番になり、「ECBはなぜダメか」を示す以外にECBを使うべきでない最良の論拠であり続けている。AES-GCMのような認証付きモードでは、ナンスごとに暗号文が変わるため、照合できる材料が攻撃者に何も残らない。