AES-CTR
¿Qué es AES-CTR?
AES-CTRModo de cifrado en flujo que convierte AES en un generador de keystream cifrando un contador incremental y aplicando XOR con el texto claro.
AES-CTR (modo contador) es un modo solo de confidencialidad estandarizado en NIST SP 800-38A. El cifrador encripta bloques de contador sucesivos (normalmente un nonce de 96 bits concatenado con un contador de bloque de 32 bits) y aplica XOR del keystream resultante con el texto claro. Como cada bloque depende solo del contador, y no del bloque anterior, CTR permite cifrado y descifrado totalmente paralelos y acceso aleatorio al texto cifrado, propiedades que lo convierten en el caballo de batalla del cifrado de disco, IPsec ESP (RFC 3686) y la protección de registros TLS cuando se envuelve en un modo autenticado.
La debilidad que define a CTR es que no aporta integridad y es maleable: un atacante que invierte un bit del texto cifrado invierte exactamente el mismo bit del texto claro, sin que se detecte. Siempre debe combinarse con un MAC o emplearse como motor dentro de un AEAD como GCM, EAX o CCM. La segunda trampa, más peligrosa, es la reutilización de nonce/contador: cifrar dos mensajes con la misma clave y el mismo contador inicial produce keystreams superpuestos, de modo que al aplicar XOR entre los dos textos cifrados se cancela el keystream y se obtiene el XOR de los textos claros, un clásico "pad de dos tiempos" que ha roto sistemas reales. El keystream es idéntico sin importar los datos, así que un contador repetido es catastrófico incluso entre archivos distintos.
En la práctica, nunca despliegues AES-CTR puro para datos almacenados o transmitidos: elige AES-GCM o ChaCha20-Poly1305, que construyen la autenticación sobre el mismo núcleo de modo contador, dejando como único requisito operativo garantizar nonces únicos.
flowchart LR
subgraph Generación de keystream
N[Nonce + Contador 0] --> E0[Cifrado AES] --> KS0[Bloque de keystream 0]
N1[Nonce + Contador 1] --> E1[Cifrado AES] --> KS1[Bloque de keystream 1]
N2[Nonce + Contador 2] --> E2[Cifrado AES] --> KS2[Bloque de keystream 2]
end
P0[Texto claro 0] --> X0((XOR))
KS0 --> X0 --> C0[Texto cifrado 0]
P1[Texto claro 1] --> X1((XOR))
KS1 --> X1 --> C1[Texto cifrado 1]
P2[Texto claro 2] --> X2((XOR))
KS2 --> X2 --> C2[Texto cifrado 2]
C0 --> MAC[Añadir MAC / usar GCM<br/>para integridad]● Ejemplos
- 01
AES-CTR es la capa de cifrado dentro de AES-GCM y AES-CCM.
- 02
Linux dm-crypt usa variantes de AES-CTR para cifrado de disco.
● Preguntas frecuentes
¿Qué es AES-CTR?
Modo de cifrado en flujo que convierte AES en un generador de keystream cifrando un contador incremental y aplicando XOR con el texto claro. Pertenece a la categoría de Criptografía en ciberseguridad.
¿Qué significa AES-CTR?
Modo de cifrado en flujo que convierte AES en un generador de keystream cifrando un contador incremental y aplicando XOR con el texto claro.
¿Cómo defenderse de AES-CTR?
Las defensas contra AES-CTR combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para AES-CTR?
Nombres alternativos comunes: Modo contador, AES-128-CTR, AES-256-CTR.