﻿ ﻿ ﻿
﻿

What is CBC (Cipher Block Chaining) Operation Mode?

This section describes what is CBC (Cipher Block Chaining) Operation Mode - each plaintext block is XORed with the ciphertext of the previous block before encryption.

﻿

CBC (Cipher Block Chaining) operation mode can be described with notations defined earlier as the following formula and diagram:

```C[i] = Ek(P[i] XOR C[i-1])
C[1] = Ek(P[1] XOR IV)

IV
|       ------|       ------|
|     /       |     /       |
P[1]--XOR   / P[2]--XOR   / P[3]--XOR
|   /         |   /         |
Ek() /        Ek() /        Ek()
| /           | /           |
C[1]          C[2]          C[3]
```

As you can see from the formula and the diagram, in CBC mode, each block of plaintext is XORed with the previous ciphertext block before being encrypted to generate the current ciphertext block. In this way, each ciphertext block is depending on all plaintext blocks up to that point. Note that for the first block, the Initial Vector (IV) is used as the previous ciphertext block.

﻿

﻿ ﻿