Mode of Operation
運用モード(mode of operation)は、ブロック暗号を任意長のデータに適用するための方式で、暗号化時に複数の平文ブロックをどう連結するかを定義する。代表的なものにECB、CBC、CTR、GCMがある。
目的
固定ブロック長のブロック暗号で可変長データを安全に処理し、機密性・完全性・認証を提供できるようにする。
メカニズム
ECBは各ブロックを独立に暗号化する(安全でない)。CBCは直前の暗号文ブロックを次の平文ブロックにXORする。CTRはカウンターを暗号化してキーストリームを生成する。GCMはCTRの上にGF(2^128)多項式MACを追加する。AEADモード(GCM、CCM)は機密性と完全性を同時に提供する。
ユースケース
- TLSでのAES-GCM
- ファイル暗号化でのAES-CBC
- ストリーム暗号化でのAES-CTR
- WPA2無線でのAES-CCM
例
- 入力
AES + GCM + IVOutputciphertext + 16-byte authentication tagAEAD mode
よくあるエラー
- Using ECB mode on structured data (the penguin image)
- Use GCM, or CBC with HMAC
関連用語
ECB (Electronic Codebook)
ECB モード(Electronic Codebook)は各ブロックを独立に暗号化するため、同一の平文ブロックは同一の暗号文ブロックになる。安全でなく、単一ブロックやランダムデータにのみ適する。 用語集
CBC (Cipher Block Chaining)
CBC モードは、暗号化前に直前の暗号文ブロックと現在の平文ブロックを XOR するため、同一の平文ブロックも異なる暗号文になる。ランダムな IV が必要である一方、完全性の認証は提供しない。 用語集
CTR (Counter Mode)
CTR モードはブロック暗号をストリーム暗号に変える: 増分カウンタを暗号化してキーストリームを生成し、平文と XOR する。並列処理とランダムアクセスを支えるが、完全性は提供しない。 用語集
GCM (Galois/Counter Mode)
GCM(Galois/Counter Mode)は CTR 暗号と GHASH 認証を組み合わせた AEAD モードであり、機密性と完全性を同時に提供し、TLS 1.2/1.3 の推奨モードである。 用語集
IV (Initialization Vector)
初期化ベクトル(IV、Initialization Vector)は、ブロック暗号モードにランダム性を注入する入力である。同じ平文でも暗号化ごとに異なる暗号文が生成される。 用語集
Nonce
ノンス(nonce、number used once)は暗号化で一度だけ使われる値である。IVと似るが、ランダム性よりも一意性を重視し、ストリーム暗号やAEADで広く使われる。 用語集