Saltar al contenido
uencoder

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)
    Output
    a unique nonce per message

    Deterministic 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

Herramientas relacionadas

References