Block Cipher Modes of Operation
| ECB | CBC | CTR | |
|---|---|---|---|
| Encryption | \(c[i] = E(k, m[i])\) | \(c[i] = E(k, m[i] \oplus c[i{-}1])\) | \(c[i] = m[i] \oplus E(k, (n, \langle i \rangle_b))\) |
| Decryption | \(m[i] = D(k, c[i])\) | \(m[i] = D(k, c[i]) \oplus c[i{-}1]\) | \(m[i] = c[i] \oplus E(k, (n, \langle i \rangle_b))\) |
| \(\texttt{Enc}\) parallelisable | Yes | No | Yes |
| \(\texttt{Dec}\) parallelisable | Yes | Yes | Yes |
| Random read | Yes | Decryption only | Yes |
| Partial last block | Padding required | Padding required | Yes |
| IV / Nonce | None | Unpredictable IV | Unique nonce |
| Semantically secure | No | Yes | Yes |
| Notes | Leaks block equality | IV sent unencrypted | \(\texttt{Enc}\) = \(\texttt{Dec}\) (stream cipher) |