Is it necessary to use a unique Initialization Vector (IV) with various cipher modes of operation (e.g. CBC) even though I use a unique key to encrypt plain text every time?

It is said that an IV needs to be unique but not secret, every time a new piece of information is encrypted.

Can't we just make IV as unique and secret? Will it mean that the IV can now be treated as a secret Key?

1 Answer 1


Can't we just make IV as unique and secret? Will it mean that the IV can now be treated as a secret Key?

Key distribution is hard, and there's no reason to make the IV a secret.

If Alice wants to send a message to Bob using symmetric encryption both must somehow already know the encryption key and the IV. To share the encryption key Alice and Bob could meet up in person once, then use the shared key to send many messages without having to physically meet again.

Now if the IV is a secret, and the IV must also change every message then Alice and Bob now have to meet to share the secret IV for every message. If they have to meet every time, then why not just share the message when they meet?

Seeing as the encryption is not weakened by an attacker knowing the IV, they might as well save themselves the hassle of meeting in person by just sending the IV with the encrypted message, rather than trying to securely exchange it. It saves them both a lot of hassle, and they're no less secure.

  • As suggested by you that IV needs to be sent with each message for communication between Alice and Bob, can't this be achieved by using public key cryptography?
    – A. Sinha
    Commented Apr 11, 2016 at 5:31
  • 1
    Sure, replace meeting physically with public key cryptography, the point is that it takes a lot of effort. Public key cryptography is computationally expensive, so public key cryptography is only used to initially share the symmetric keys in encryption systems such as TLS, after that symmetric encryption is used. Plus, a public key system takes a lot of effort to setup because you need a way of verifying the authenticity of the public keys.
    – thexacre
    Commented Apr 11, 2016 at 5:41
  • @thexacre (nitpicking mode on) Actually, TLS usually uses a variant of DH to generate the encryption key. The asymmetrical keys are just used for authentication.(nitpicking mode off)
    – Stephane
    Commented Apr 11, 2016 at 6:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .