A random block of data that is used to begin the encryption of multiple blocks of plaintext, when a block-chaining encryption technique is used. The IV serves to foil known-plaintext attacks.

In cryptography, an Initial Value or Initialization Vector.

Some ciphers in feedback mode (particularly block ciphers in CBC mode) use previous encryption results (or something else) as basis of next encryption. Thus, to make output look more random, IV is added to the scheme - a number from the hat (or somewhere else - some people use constant IVs, some not) with which the first encryption is XORed with.

This is just an obfuscation scheme, of course - the contents of IV must be sent with ciphertext.

In cryptography, an "initialization vector" (which can, in specific contexts, also be called "salt", "nonce", "spice" or "tweak") occurs not only in the context of block ciphers (as already pointed out), but also in the context of hash functions and stream ciphers.

The purpose of an "initialization vector" is usually to provide some randomness or uniqueness to some cryptographic transformation. Specifically, it is used in stream ciphers to guarantee uniqueness of the generated keystream and also in randomized hashes (to prevent pre-computation attacks).

It's important to note that, depending on the context, an initialization vector might have particular requirements: some uses require it to be random/unpredictable (or at least "randomish", like the output of a LFSR), while other uses just require uniqueness (in which case, it's better to use a counter to generate them). Regardless of that, the initialization vector is never expected to be secret.

Log in or register to write something here or to contact authors.