Cipher Block Chaining Encryption
In Cipher Block Chaining (CBC) encryption,
each output (ciphertext c1, c2, ...) is computed from
the current input (plaintext p1, p2, ...) and previous ciphertext.
For the first output, there is no previous ciphertext,
so a value of 0 is used.
In this example, the output is
computed using addition with a random value (r1, r2, ...):