Definition
Cipher Block Chaining Mode
Cipher Block Chaining (CBC) is a mode of operation for a block cipher in which each plaintext block is XORed with the encryption of the previous block before being encrypted. The first block is XORed with a randomly generated initialisation vector (IV).
Encryption
For plaintext blocks and a randomly chosen IV:
Encryption is non-deterministic: the same pair (plaintext, key) might produce different ciphertexts due to the random IV.

Decryption

Properties
Parallelisation
Parallelisation of decryption and random read access are possible. Encryption cannot be parallelised due to the dependency on the previous ciphertext block.
Error Propagation
A bit flip in a ciphertext block produces random errors in the corresponding plaintext block and a bit flip at the same position in the next plaintext block. A bit flip in the IV causes a flip of the corresponding bit in the first plaintext block.