Modo SIV: AEAD resistente al uso indebido de nonces
Explore el modo Synthetic IV (SIV) y cómo protege frente a la reutilización catastrófica de nonces.
Modo SIV: AEAD resistente al uso indebido de nonces es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.
reutilización de nonce: un fallo catastrófico
Los cifradores AEAD basados en el modo CTR, como AES-GCM, requieren un nonce único para cada cifrado. Si se reutiliza el mismo nonce con la misma clave, un atacante que observe dos textos cifrados puede aplicarles XOR para recuperar el XOR de los dos textos planos, rompiendo de inmediato la confidencialidad.
La reutilización del nonce en GCM filtra la clave de autenticación
La reutilización del nonce en AES-GCM es aún más catastrófica que en el modo CTR simple. Cuando dos mensajes se cifran con el mismo nonce y la misma clave, un atacante puede recuperar por completo la clave de autenticación H de GHASH. Una vez que conoce H, el atacante puede falsificar mensajes autenticados arbitrarios.
Introducción del modo Synthetic IV
El modo Synthetic IV (SIV), definido en RFC 5297, se diseñó para eliminar las vulnerabilidades de la reutilización de nonces. En lugar de requerir un nonce aleatorio o basado en un contador, SIV deriva sintéticamente el IV a partir del propio texto plano mediante una función pseudoaleatoria, lo que lo hace determinista y resistente al uso incorrecto de nonces.
Mecanismo de derivación del nonce en SIV
En SIV, el nonce (denominado IV sintético) se calcula como SIV = PRF(key, plaintext, associated_data). Este IV se utiliza después como contador para el cifrado en modo CTR. Como el IV se deriva del texto plano, cifrar el mismo texto plano siempre produce el mismo texto cifrado.
Consecuencia de reutilizar el nonce en SIV
Si se reutiliza un nonce en SIV porque se cifra dos veces el mismo texto plano, un observador solo descubre que se enviaron dos mensajes idénticos. El contenido del texto plano permanece oculto. Esto supone una mejora drástica frente a AEAD basados en CTR, donde la reutilización del nonce revela el XOR de los textos planos.
Construcción de AES-SIV
AES-SIV (RFC 5297) utiliza la función S2V (una PRF encadenada basada en AES-CMAC) para generar el IV sintético, seguida del cifrado AES-CTR con una segunda subclave. Requiere dos claves AES, lo que hace que la gestión de claves sea ligeramente más compleja que en los modos AEAD de una sola clave.
AES-GCM-SIV: alternativa moderna
AES-GCM-SIV (RFC 8452) es un AEAD resistente al uso incorrecto de nonces y más eficiente, diseñado para combinar el rendimiento de GCM con una seguridad similar a la de SIV. Deriva subclaves por mensaje a partir del nonce y utiliza un autenticador Polyval, con lo que ofrece un mejor rendimiento que AES-SIV y mantiene la resistencia al uso incorrecto de nonces.
Coste de rendimiento de dos pasadas
SIV requiere dos pasadas sobre los datos: una para calcular el IV sintético y otra para cifrar. Esto prácticamente duplica el coste computacional frente a modos AEAD de una sola pasada, como AES-GCM. En aplicaciones sensibles a la latencia o de alto rendimiento, debe tenerse en cuenta este coste adicional.
Cuándo preferir SIV frente a GCM
Se prefiere SIV cuando la generación de nonces no es fiable, cuando la aplicación no tiene estado y no puede mantener un contador de nonces, o cuando se requiere cifrado determinista. Algunos ejemplos son el cifrado de campos de bases de datos en los que el mismo valor debe producir siempre el mismo texto cifrado para permitir su indexación.
Servicios sin estado y cifrado determinista
Los microservicios sin estado que no pueden coordinar el estado de los nonces entre réplicas son candidatos ideales para el modo SIV. En lugar de arriesgarse a reutilizar accidentalmente un nonce mediante un contador global, SIV proporciona seguridad de forma automática. La envoltura de claves (RFC 3394) también utiliza principios de SIV para el cifrado determinista de claves.
SIV en la práctica
AES-SIV está disponible en importantes bibliotecas criptográficas, como libsodium (en versiones recientes, como crypto_aead_aes256gcm_siv) y Google Tink. AES-GCM-SIV es compatible con BoringSSL y la biblioteca estándar de Go. Cuando la gestión de nonces resulta difícil, estas opciones son valores predeterminados más seguros que AES-GCM estándar.
Comprobación del uso incorrecto de nonces en SIV
¿Qué ocurre cuando se utiliza la misma clave para cifrar dos veces el mismo texto plano con AES-SIV?
Resumen de la lección: SIV para la seguridad de los nonces
El modo SIV elimina las consecuencias catastróficas de reutilizar nonces al derivar el IV del propio texto plano. La reutilización de un nonce solo revela que se enviaron mensajes idénticos, no su contenido. AES-GCM-SIV (RFC 8452) proporciona una resistencia eficiente al uso incorrecto de nonces para aplicaciones modernas que necesitan cifrado sin estado o determinista.
Preguntas frecuentes
¿La lección «Modo SIV: AEAD resistente al uso indebido de nonces» es gratis?
Sí — el texto completo de «Modo SIV: AEAD resistente al uso indebido de nonces» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Modo SIV: AEAD resistente al uso indebido de nonces»?
Explore el modo Synthetic IV (SIV) y cómo protege frente a la reutilización catastrófica de nonces. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cryptology Academy?
No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Modo SIV: AEAD resistente al uso indebido de nonces»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?
Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Por qué Encrypt-Then-MAC supera a MAC-Then-Encrypt
- Modo SIV: AEAD resistente al uso indebido de nonces
- AEGIS: cifrado autenticado de alta velocidad
- Selección de AEAD para sistemas en producción