Understanding IV et Nonce
Apprendre le difference entre IVs et nonces, leurs uniqueness requirements, et le consequences de reuse.
问题
You sont unsure quand en utiliser un IV versus un nonce et quoi happens si le même valeur est reused across encryptions.
Prérequis
- Understanding of symmetric encryption modes
- Knowledge of CBC and CTR modes
Étapes
-
1. Distinguish IV from nonce
An IV (Initialization Vector) is used in CBC mode and must be unpredictable (random). A nonce (number used once) is used in CTR and GCM modes and must be unique but not necessarily random. Both are public and stored with the ciphertext.
entréeCBC: random IV | CTR/GCM: unique nonce输出both public, never reused -
2. Understand the consequences of reuse
Reusing an IV in CBC leaks whether two plaintexts share a prefix. Reusing a nonce in CTR or GCM is catastrophic: it reveals the XOR of two plaintexts and, in GCM, allows forgery of authenticated messages. Never reuse a nonce with the same key.
entréenonce reuse in CTR输出XOR of plaintexts exposed -
3. Generate correctly per mode
For CBC, generate a fresh random 16-byte IV each time. For GCM, use a counter-based nonce or generate randomly, but track used nonces to prevent reuse. A 96-bit nonce is standard for GCM and allows hardware acceleration.
entréeGCM nonce: 12 bytes输出unique per key
Résultat attendu
Correctly généré IVs/nonces ce sont jamais reused avec le même clé, preventing catastrophic information leakage.
Erreurs courantes
- Hardcoding the IV/nonce to a fixed value
- Generate a fresh random or counter-based value for every encryption. A fixed IV/nonce defeats the purpose entirely.
- Using a random nonce in GCM without tracking uniqueness
- With a 96-bit random nonce, the probability of collision is negligible until ~2^32 encryptions. For higher volumes, use a deterministic counter.
Dépannage指引
- If two ciphertexts share a prefix and the same IV was used, the IV was reused. Regenerate keys and IVs.
- In GCM, if a nonce is reused even once, the key is compromised. Rotate the key immediately.
Limites de sécurité
- IV/nonce reuse is one of the most common and devastating cryptographic failures. Always generate fresh values.
- This tool generates IVs locally using a cryptographically secure RNG.