CBC(Cipher-block Chaining)

In CBC mode, each plaintext block is XORed with the previous ciphertext block before being encrypted.

As a result, each ciphertext block depends on all the plaintext blocks processed up to that point.

If the previous block is not encrypted, the next block cannot be encrypted, so encryption must be performed sequentially, making parallel processing impossible. Similarly, decryption cannot be performed in parallel.

By setting the IV (Initialization Vector) randomly, even if the same plaintext or key is used, different ciphertexts can be generated.


CBC mode Encrytion


CBC mode Decrytion


Definitions

  • : Plaintext block
  • : Ciphertext block
  • : Encryption function with key
  • : Decryption function with key
  • : Initialization Vector