Nonce
Un nonce (number used once) es un valor empleado una sola vez en el cifrado; similar a un IV, pero enfatiza la unicidad sobre la aleatoriedad, común en cifrados de flujo y AEAD.
Propósito
Garantizar que cada cifrado con la misma clave produzca un flujo de claves distinto, evitando ataques de two-time pad.
Mecanismo
Un nonce debe ser único (nunca repetido) durante la vida de la clave. Puede ser un contador (determinista) o un valor aleatorio. CTR/GCM/ChaCha20 usan nonces para generar flujos de claves; el nonce de 96 bits es el más común en GCM. Reutilizar un nonce provoca un fallo de seguridad catastrófico.
Casos de uso
- Cifrado de mensajes con AES-GCM
- Cifrado con ChaCha20-Poly1305
- Números de secuencia de registros TLS
- Contadores de nonce de WireGuard
Ejemplos
- entrada
nonce=0,1,2... (counter)Outputa unique nonce per messageDeterministic and unique
Errores comunes
- Nonce reuse replays the keystream and breaks authentication
- Use a monotonic counter or a long enough random nonce
Términos relacionados
IV (Initialization Vector)
Un vector de inicialización (IV) es una entrada que inyecta aleatoriedad en los modos de cifrado por bloques, de modo que el mismo texto plano produce distintos cifrados en cada cifrado. GLOSARIO
GCM (Galois/Counter Mode)
GCM es un modo AEAD que combina el cifrado CTR con la autenticación GHASH, proporcionando confidencialidad e integridad a la vez, y es el modo preferido de TLS 1.2/1.3. GLOSARIO
CTR (Counter Mode)
El modo CTR convierte un cifrador de bloques en un cifrador de flujo: cifra un contador incremental para generar un flujo de claves que se XOR con el texto plano, soportando paralelismo y acceso aleatorio, pero sin integridad. GLOSARIO
ChaCha20
ChaCha20 es un cifrador de flujo diseñado por Daniel Bernstein, construido sobre operaciones ARX (suma-rotación-XOR), que suele emparejarse con Poly1305 como AEAD — una alternativa de alto rendimiento a AES-GCM. GLOSARIO