En criptografía, el Estándar de Cifrado Avanzado (AES), es un algoritmo de cifrado por bloques de clave simétrica que fue seleccionado por el Instituto Nacional de Estándares y Tecnología (NIST) en 2001. Fue seleccionado para encriptar datos y desde entonces se ha convertido en el algoritmo de referencia para protección de la confidencialidad de la información. Se utiliza habitualmente en todo el mundo y el Advanced Encryption Standard ha sustituido al Data Encryption Standard (DES).

Desde 2008, AES es uno de los algoritmos más populares utilizados en la criptografía de clave simétrica. Está disponible para los programadores y el público en general con varios paquetes de software. Además de implementaciones en software, muchas CPUs modernas incluyen instrucciones de aceleración (por ejemplo, AES-NI en procesadores x86) que permiten cifrar y descifrar datos de forma muy rápida y segura cuando se implementan correctamente.

Características técnicas principales

  • Tamaño de bloque: 128 bits (constante).
  • Tamaños de clave: 128, 192 y 256 bits.
  • Número de rondas: 10 rondas para claves de 128 bits, 12 para 192 bits y 14 para 256 bits.
  • Estructura: diseño tipo sustitución‑permuta (substitution–permutation network) que combina operaciones de sustitución no lineal (S-box), permutaciones (ShiftRows), mezclas lineales (MixColumns) y adición de la subclave en cada ronda (AddRoundKey).
  • Estándar: especificado por NIST en el documento FIPS 197 (2001).

Cómo funciona (explicación accesible)

AES toma bloques de 128 bits y aplica una serie de transformaciones repetidas (las rondas). Cada ronda mezcla los bits del bloque con partes de la clave expandida para producir un bloque cifrado que, después de la última ronda, resulta indistinguible del texto original sin la clave. El uso de varias rondas y una S‑box bien diseñada proporciona difusión y confusión, dos propiedades fundamentales para la seguridad criptográfica.

Modos de operación y usos prácticos

AES por sí solo cifra bloques de 128 bits; para cifrar flujos de datos de longitud arbitraria se usa junto con un modo de operación. Los modos más comunes incluyen:

  • ECB: no recomendado (revela patrones).
  • CBC: ampliamente usado, pero requiere IV impredecible y autenticación adicional.
  • CFB / OFB / CTR: convierten AES en cifradores de flujo; CTR es especialmente eficiente y paralelizable.
  • GCM / CCM: modos autenticados que proporcionan confidencialidad y autenticidad (recomendados para la mayoría de aplicaciones modernas).

Aplicaciones típicas: TLS/HTTPS (p. ej. AES‑GCM), IPsec, VPN, cifrado de disco (BitLocker, LUKS), cifrado de archivos y correos electrónicos, WPA2/WPA3 para Wi‑Fi (AES‑CCMP en WPA2), y muchos protocolos y aplicaciones donde se requiere cifrado simétrico.

Seguridad y vulnerabilidades

  • AES no tiene ataques prácticos que reduzcan significativamente la seguridad cuando se usa correctamente con claves completas (128/192/256 bits). Los ataques conocidos son teóricos o requieren condiciones no realistas (p. ej. ataques de clave relacionada en contextos restringidos).
  • La resistencia al ataque por fuerza bruta sigue siendo alta: 2^128 operaciones para AES‑128, lo que hoy es inviable. Algoritmos cuánticos como Grover podrían reducir el coste efectivo por una raíz cuadrada, pero incluso así AES‑128 seguiría siendo costoso (equivalente aproximado a 2^64 operaciones cuánticas), por lo que muchos sistemas prefieren AES‑256 para protección a muy largo plazo.
  • Las amenazas prácticas más relevantes no son ataques directos al algoritmo, sino implementaciones inseguras: reutilización de IVs/nonce (especialmente crítico en AES‑GCM/CTR), fuga de información por canales laterales (timing, caché, consumo de energía) y generación de claves/noise no segura.
  • Por ello es indispensable usar implementaciones resistentes a canales laterales (por ejemplo, implementaciones en tiempo constante o aprovechar aceleración hardware segura) y seguir buenas prácticas de gestión de claves y noces.

Buenas prácticas

  • Usar modos autenticados como AES‑GCM o AES‑CCM para evitar problemas de integridad y malleabilidad.
  • No usar ECB para datos estructurados o repetitivos.
  • Generar claves y nonces/IVs con generadores de números aleatorios criptográficamente seguros y garantizar nonces únicos cuando el modo lo exige (p. ej. GCM, CTR).
  • Rotar claves periódicamente y aplicar políticas de gestión de claves (almacenamiento seguro, acceso restringido, uso de módulos HSM o proveedores de claves certificados cuando sea necesario).
  • Preferir implementaciones validadas (FIPS, certificaciones) y aprovechar aceleración hardware (AES‑NI, extensiones ARM) para mejorar rendimiento y reducir la superficie de errores en software.
  • Evitar implementaciones que dependen de tablas susceptibles a ataques por caché; preferir implementaciones en tiempo constante o basadas en instrucciones específicas de cifrado.

Resumen

AES es el estándar moderno y ampliamente adoptado para cifrado simétrico, equilibrando seguridad y rendimiento. Cuando se implementa correctamente, con modos de operación autenticados y una gestión de claves y nonces adecuada, proporciona una protección sólida para una gran variedad de aplicaciones. Las principales precauciones están relacionadas con la implementación y el uso (no con fallos intrínsecos del algoritmo en condiciones normales).