Overview#Initialization Vector (IV) is a fixed-size input to a Cryptographic Primitive primitive that is typically required to be random or pseudorandom.
Initialization Vector Randomization is crucial for Encryption Schemes to achieve semantic security, a property whereby repeated usage of the scheme under the same key does not allow an attacker to infer relationships between segments of the encrypted message.
For Block Ciphers, the use of an Initialization Vector is described by the Block Cipher Mode of operation. Randomization is also required for other Cryptographic Primitives, such as universal Hash Functions and Message Authentication Codes based thereon.
Initialization Vector for some Cryptographic Primitives MUST only to be non-repeating, and the required randomness is derived internally. Under these conditions, the Initialization Vector is commonly called a nonce (number used once), and the Cryptographic Primitives are described as stateful as opposed to random because the Initialization Vector need not be explicitly forwarded to a recipient but may be derived from a common state updated at both sender and receiver side. In practice, the nonce is still transmitted along with the message to detect message loss.
More Information#There might be more information for this subject on one of the following:
- Block Cipher Mode
- Cipher Block Chaining
- Cryptographic Primitive
- Ephemeral Key
- Galois-Counter Mode
- Keying material
- Master Secret
- Message Number
- Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)
- Shared Secret