AES-GCM es un algoritmo de cifrado autenticado con datos asociados (Authenticated Encryption with Associated Data - AEAD) que combina el algoritmo de cifrado de bloques AES con el modo de operación Galois/Counter Mode (GCM). AES se encarga de la confidencialidad de los datos, cifrando el "plaintext" en "ciphertext". GCM, por su parte, opera en modo contador para el cifrado y utiliza un multiplicador de campo de Galois para generar una etiqueta de autenticación (MAC - Message Authentication Code). Esta etiqueta garantiza la integridad y autenticidad del "ciphertext" y de cualquier "associated data" (datos no cifrados pero autenticados, como "headers"), protegiendo contra manipulaciones y ataques de "replay". Su diseño permite el procesamiento paralelo, lo que lo hace eficiente para altas tasas de transferencia de datos.
AES-GCM es ampliamente adoptado en sistemas y protocolos críticos para la seguridad. Es el cifrado preferido en TLS 1.2 y TLS 1.3 para asegurar el tráfico web (HTTPS), y es fundamental en SSH para conexiones seguras. También se utiliza en IPsec para proteger el tráfico de red a nivel de capa 3, en WireGuard para VPNs modernas, y en la mayoría de las implementaciones de "disk encryption" como LUKS en Linux o BitLocker en Windows. Plataformas de nube como AWS KMS y Google Cloud KMS lo emplean para el cifrado de datos en reposo y en tránsito. Además, es común en la protección de datos en bases de datos y en sistemas de mensajería segura.
Para un Arquitecto de Sistemas, AES-GCM es una elección estratégica por su combinación de seguridad robusta y rendimiento. Ofrece AEAD, eliminando la necesidad de combinar primitivas de cifrado y autenticación por separado, lo que reduce la complejidad y el riesgo de errores de implementación. Su capacidad de procesamiento paralelo lo hace ideal para sistemas de alto rendimiento y baja latencia, como "load balancers", "proxies" y "gateways" que manejan grandes volúmenes de tráfico cifrado. Sin embargo, es crucial gestionar correctamente el "nonce" (número usado una sola vez) para cada operación de cifrado; la reutilización de un "nonce" con la misma clave compromete gravemente la seguridad, permitiendo ataques de recuperación de clave y "plaintext". La elección de AES-GCM simplifica el cumplimiento de normativas de seguridad y privacidad, pero requiere una implementación cuidadosa de la gestión de claves y "nonces" para explotar sus beneficios sin introducir vulnerabilidades.