暗号利用モード
CBCモード (Cipher Block Chaining Mode) は、1976年にIBMによって開発された。CBCモードでは、平文の各ブロックは前の暗号文とのXORを取ってから暗号化される。すなわち、各々の暗号文ブロックはそれ以前のすべての平文ブロックに依存することとなる。メッセージごとのユニーク性を確保するため、最初のブロックの暗号化には初期化ベクトルが用いられる。
P i = D K ( C i ) ⊕ C i − 1 , C 0 = I V {\displaystyle P_{i}=D_{K}(C_{i})\oplus C_{i-1},C_{0}=IV}


CBCモードは、最も広く用いられている暗号利用モードであり、ECBモードの欠点を補うものである。このモードの主な欠点は、各ブロックの暗号化にその前のブロックの暗号化の結果を使用することから暗号化処理を並列化することができないことと、暗号文ブロックのサイズの整数倍となるようメッセージをパディングする必要があることである。後者の例の一つが、Ciphertext stealing(英語版)と呼ばれるものである。CBCモードの暗号化においては、平文あるいは初期化ベクトルが1ビットでも変化すると、それ以降の暗号文すべてが変化することとなる。
不正な初期化ベクトルを用いて復号した場合、復号後の平文の最初のブロックは正しい結果とはならないが、それ以降のブロックは正しく復号される。これは、隣接する2つの暗号文ブロックから平文を回復することが可能なためである。これにより、CBCモードの復号処理は並列化が可能となる。CBCモードの復号においては、暗号文が1ビット変化した場合、その位置に対応するブロック全体および次のブロックにおける対応するビットの復号結果に影響を及ぼすが、それ以外のブロックには影響を及ぼさない。