¿Qué es el cifrado AES?
En criptografía, AES se refiere a Advanced Encryption Standard, un algoritmo de cifrado rápido, eficiente y seguro certificado por el Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST). Es un cifrado de clave simétrica que usa la misma clave tanto para cifrar como para descifrar datos. Esto es relativamente rápido, lo que lo hace ideal para cifrar grandes cantidades de datos en reposo.
Debido a su solidez y fiabilidad, AES es uno de los tipos de cifrado más populares y comunes utilizados en la seguridad de redes inalámbricas, el cifrado de datos y de discos, los sistemas de pago online, el almacenamiento en la nube, la gestión de contraseñas e incluso aplicaciones gubernamentales y militares. El gobierno de EE. UU. usa el cifrado AES para proteger su información clasificada, lo que ha contribuido a su popularidad.

¿Es seguro el algoritmo AES?
Sí. En 2000, tras un proceso de selección muy exhaustivo(ventana nueva) y abierto, el NIST anunció que AES (conocido hasta entonces como el algoritmo Rijndael, creado por Vincent Rijmen y Joan Daemen) sustituiría a DES como su algoritmo de cifrado(ventana nueva) «no clasificado, divulgado públicamente y capaz de proteger información gubernamental sensible hasta bien entrado el próximo siglo».
Según NIST, todas las longitudes de clave del algoritmo AES se consideran "suficientes" para proteger la información clasificada hasta el nivel "Secreto". Para la información de «Alto secreto», se requiere AES-192 o AES-256.

Ataques de fuerza bruta
La forma más básica de ataque posible contra cualquier cifrado es un ataque de fuerza bruta, que consiste en probar todas las combinaciones de claves posibles hasta encontrar la correcta.
Frontier(ventana nueva) es el superordenador de conocimiento público más potente del mundo. Si dedicara toda su capacidad a forzar AES-128 por fuerza bruta, aun así necesitaría del orden de 10–12 billones de años para agotar todas las combinaciones posibles de AES-128. Eso es muchísimo más que la edad del universo. Así que, incluso en sus tamaños de bits más bajos, AES es muy resistente a los ataques de fuerza bruta de ordenadores convencionales.
AES-256 es 340 mil millones de mil millones de mil millones de mil millones (2¹²⁸) de veces más difícil de forzar por fuerza bruta que AES-128.
Aunque el algoritmo de Grover(ventana nueva) reduce teóricamente a la mitad la seguridad de las claves simétricas frente a las amenazas cuánticas(ventana nueva), estas siguen siendo relativamente resistentes a la computación cuántica, especialmente cuando se utiliza una clave de 256 bits.
Ataques a claves
A lo largo de los años, los criptógrafos han publicado varios ataques teóricos contra las claves AES, pero todos ellos son impracticables en la práctica o solo son eficaces en implementaciones de AES que usan un número reducido de rondas (véase más abajo).
El intento más exitoso fue el teórico ataque de biclique(ventana nueva) publicado en 2011, que puede reducir en un factor de cuatro el tiempo necesario para forzar AES por fuerza bruta. Sin embargo, aun así requeriría miles de millones de años para forzar AES por fuerza bruta en cualquier hardware de ordenador actual o previsible.
Ningún ataque a claves conocido es práctico contra AES-128 o superior cuando está correctamente implementado.
Ataques de canal lateral
Un ataque de canal lateral intenta reducir el número de combinaciones necesarias para realizar con éxito un ataque de fuerza bruta buscando indicios en el ordenador que realiza los cálculos de cifrado. Los indicios pueden obtenerse examinando:
- Temporización: cuánto tarda un ordenador en realizar una operación
- Filtraciones electromagnéticas
- Señales de audio
- Señales visuales (captadas con una cámara de alta resolución).
Los ataques de temporización de caché, en particular, han demostrado ser bastante eficaces para romper AES con éxito. En el ejemplo más destacado, en 2016 los investigadores lograron recuperar(ventana nueva) una clave AES-128 usando «solo entre 6 y 7 bloques de texto plano o texto cifrado (teóricamente incluso un solo bloque sería suficiente)».
Sin embargo, pueden hacerse varias cosas para mitigar la amenaza de los ataques de canal lateral:
- AES correctamente implementado puede evitar formas en las que los datos pueden filtrarse.
- El hardware que integra el conjunto de instrucciones AES reduce aún más la superficie de ataque de canal lateral de AES.
- Las técnicas de aleatorización pueden usarse para romper la relación entre los datos protegidos por AES y cualquier dato filtrado que pudiera recopilarse mediante un ataque de canal lateral.
En muchos casos, los ataques de canal lateral requieren que el atacante tenga proximidad física o acceso físico al dispositivo mientras descifra datos, aunque los ataques remotos son posibles si se instala software malicioso en un dispositivo, especialmente en el caso de los ataques de temporización.
Cómo funciona AES
AES es un cifrado por bloques que cifra y descifra datos en bloques de 128 bits usando claves de 128, 192 o 256 bits. Como se indicó antes, se usa la misma clave para cifrar y descifrar datos. AES con una clave de 128 bits suele denominarse AES-128, y lo mismo ocurre con AES-192 y AES-256.

Los datos se cifran usando múltiples rondas, cada una de las cuales consta de una serie de operaciones matemáticas.
El proceso comienza usando el algoritmo de programación de claves de Rijndael para derivar una serie de nuevas claves de ronda a partir de la clave secreta original. Esto se conoce como expansión de clave.
Cada ronda consta entonces de una o más de las siguientes operaciones (o de una combinación de ellas):
1. Add RoundKey: Se realiza una operación XOR(ventana nueva) para combinar los datos que se van a cifrar (el texto cifrado) con cada clave de ronda.

2. Sub Bytes: Se usa una tabla de sustitución para mezclar aún más los datos. Piensa, en principio, en los sencillos cifrados por sustitución que usabas de niño, en los que sustituías cada letra de un mensaje por otra situada un número fijo de posiciones más adelante en el alfabeto.

3. Shift Rows: Cada bloque de datos de 128 bits consta de un bloque 4x4 de 16 bits. Esta operación desplaza cada byte de una fila del bloque un cierto desplazamiento hacia la izquierda.

4. MixColumns: Se realiza una transformación lineal invertible adicional en cada columna del bloque.

Esta serie de transformaciones constituye una ronda, que luego se repite en los datos durante un número específico de rondas, según el tamaño de la clave:
- AES-128 — 10 rondas
- AES-192 — 12 rondas
- AES 256 — 14 rondas
Para descifrar datos, todos los pasos usados para cifrarlos simplemente se realizan en orden inverso. Esto requiere la clave secreta original para invertir el proceso usando cada clave de ronda inversa.
¿Por qué se prefiere AES-256 a AES-192 o AES-128?
Forzar AES-128 por fuerza bruta llevaría más tiempo que la edad del universo con la tecnología actual y previsible. El legendario criptógrafo Bruce Schneier incluso ha argumentado(ventana nueva) que AES-128 podría ser más fuerte que AES-256 gracias a que tiene una programación de claves más robusta: el algoritmo que calcula todas las claves de ronda a partir de la clave secreta original.
Sin embargo, AES-256 se ha convertido en el estándar de facto de referencia para el cifrado de clave simétrica. A menudo se considera (aunque con cierta controversia) la opción más sólida porque su mayor tamaño de clave ofrece un margen adicional de seguridad para que los datos cifrados sigan estando seguros incluso si se descubre alguna forma de debilitar drásticamente el algoritmo. Este argumento se ha reforzado a medida que la necesidad de resistencia poscuántica se vuelve más apremiante.
AES-CBC frente a AES-GCM
Hasta hace relativamente poco, AES solía utilizarse en modo cipher block chaining (CBC), en el que cada bloque de texto plano se combina mediante XOR con el bloque anterior de texto cifrado antes de ser cifrado. Cuando se usa en modo CBC, se requiere un algoritmo hash HMAC(ventana nueva) como HMAC-SHA256 para verificar los datos.
Sin embargo, cada vez es más común que AES se use en modo Galois/counter (GCM), que utiliza el modo contador(ventana nueva) de cifrado. La principal ventaja es que utiliza el campo de Galois(ventana nueva) para verificar los datos sin necesidad de un algoritmo externo. Por lo tanto, es más eficiente que usar un algoritmo de autenticación independiente que puede tener una alta sobrecarga computacional.
Aunque AES-CBC con autenticación HMAC suele considerarse seguro, CBC es potencialmente vulnerable a ataques de padding(ventana nueva), como POODLE(ventana nueva). GCM no lo es.
AES acelerado por hardware
La mayoría de las CPU modernas incluyen Advanced Encryption Standard New Instructions (AES-NI(ventana nueva)), un conjunto de instrucciones de hardware que realiza operaciones AES directamente en el procesador. Esto hace que AES sea mucho más rápido y también ayuda a prevenir ataques de canal lateral basados en temporización, porque las operaciones ocurren dentro de las unidades de ejecución seguras del procesador, por lo que hay menos variaciones de tiempo observables que un atacante pueda aprovechar.
Proton y AES
Hacemos un amplio uso de AES para proteger los productos de Proton:
Los eventos y contactos se protegen usando AES-256 combinado con ECC para el intercambio de claves, con el fin de garantizar tu privacidad mediante cifrado de extremo a extremo.
Proton VPN se centra principalmente en el rápido y eficiente protocolo VPN WireGuard® (que usa ChaCha20), pero las conexiones de OpenVPN usan AES-256.
Proton Pass almacena contraseñas, notas, identidades y otros elementos dentro de tu caja fuerte segura usando AES-256.
Proton Drive cifra todos los archivos cargados de extremo a extremo con AES-256 usando ECC para el intercambio de claves. Proton Docs y Proton Sheets también usan AES-256 con intercambio de claves basado en ECC, aunque su implementación de cifrado difiere del esquema general de cifrado de archivos de Proton Drive.
Proton Mail almacena correos electrónicos y archivos adjuntos usando AES-256 a través del estándar OpenPGP. Incluso tu clave privada, que desbloquea tus correos electrónicos, está cifrada con AES-256 antes de almacenarse en el servidor.
Proton Meet usa Messaging Layer Security (MLS) para cifrar audio, vídeo y mensajes de chat, lo que garantiza la secrecía directa (PFS) y la seguridad posterior al compromiso (PCS) para todas las comunicaciones. Todos los datos de las reuniones están cifrados de extremo a extremo usando AES-256-GCM.
Mitigar los ataques al cifrado AES
La seguridad es tan fuerte como su eslabón más débil, que normalmente es tu contraseña. Esto significa que los esquemas de ingeniería social, los ataques de suplantación y los keyloggers(ventana nueva) también son una amenaza para los datos cifrados con AES. Así que, incluso cuando se usa AES, debes tomar las siguientes precauciones:
- Usa un gestor de contraseñas cifrado
- Usa claves de seguridad de hardware (como YubiKey) para una capa adicional de protección
- Si formas parte de una organización, realiza formación periódica en seguridad para el personal para prevenir ataques de suplantación
Toma el control de tus datos
Proton se creó para proteger tus datos desde el principio. Con el cifrado de extremo a extremo, las aplicaciones de código abierto y las auditorías independientes, tu información sigue siendo tuya.
Preguntas frecuentes sobre el cifrado AES
- ¿Cuál es mejor: AES o DES?
- ¿Cuál es mejor: AES o RSA?
- ¿Qué tan sólida es la seguridad de AES?


