コンテンツへスキップ
uencoder

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 + IV
    Output
    ciphertext + 16-byte authentication tag

    AEAD 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で広く使われる。
用語集

関連ツール

References