Key Recovering from CBC with \(IV = K\)
January 23, 2023
CBC requires an initialization vector (IV) that needs to be agreed by both encryption and decryption peers.
IV needs to be random so you may be get tempted and use the secret key as IV.
No, please don’t.
The IV is not required to be secret and there is a good reason for that: it can be recovered with a single chosen ciphertext attack.
Using \(IV = K\) means that the adversary can recover the secret key with a single message.
In this post I describe the attack in 3 simple diagrams.
Setup
Chosen ciphertext
Key recovering
Related tags: cryptography, matasano, cryptonita, CBC