El modo Galois/Counter (GCM) es un modo de cifrado autenticado que combina un cifrado por bloques —casi siempre AES— con un hash de campo de Galois para generar texto cifrado y una etiqueta de integridad en una sola pasada. Sustituye al antiguo método, que consistía en cifrar los datos y aplicarles un hash por separado, y actualmente es el modo predeterminado para IPsec, TLS y DTLS.
Puntos clave
- GCM cifra y autentica los datos en una sola pasada criptográfica.
- Combina un cifrado por bloques, normalmente AES, con la autenticación GHASH.
- GCM necesita un nonce único por operación; reutilizar uno compromete la seguridad.
- El GCM acelerado por hardware supera al CBC combinado con un hash independiente.
- VersaLas transformaciones IPsec, TLS y DTLS de […] ofrecen todas cifrados AES-GCM.
En esta página: Por qué es importanteCómo funcionaComponentes del GCMGCM y VersaPreguntas frecuentes
¿Por qué es importante el GCM?
Todo túnel cifrado necesita dos garantías: que un intruso no pueda leer los datos y que un atacante no pueda modificarlos de forma encubierta durante la transmisión. Los diseños más antiguos cumplían ambos objetivos mediante dos pasos separados —cifrar y, a continuación, calcular un hash sobre el resultado—, lo que duplica el trabajo criptográfico y ofrece a los desarrolladores más posibilidades de cometer errores al combinarlos. GCM fusiona ambos pasos en un único algoritmo, de modo que la confidencialidad y la integridad se obtienen a partir de una única operación bien especificada, en lugar de una combinación montada a mano.
Esa eficiencia es lo más importante a gran escala. Las CPU modernas cuentan con instrucciones específicas tanto para AES como para la multiplicación sin acarreo de la que depende el paso de autenticación de GCM, por lo que AES-GCM se ejecuta más rápido que AES-CBC con hash en casi todo el hardware actual. Esa combinación de mayores garantías y menor coste es la razón por la que las especificaciones de la IETF para IPsec, TLS 1.2/1.3 y DTLS señalan a AES-GCM como cifrado recomendado o predeterminado, y por la que ha sustituido a las transformaciones basadas en CBC en las nuevas implementaciones de todo el sector, incluidas las de Versa.
¿Qué es el GCM?
GCM se basa en el modo contador (CTR): un cifrado por bloques cifra una secuencia de valores de contador para generar un flujo de claves, que se combina mediante la operación XOR con el texto en claro para producir el texto cifrado; se trata de la misma estructura que convierte a AES en un cifrado de flujo rápido. GCM añade una capa de autenticación adicional, denominada GHASH, que procesa el texto cifrado (y cualquier dato de cabecera adicional no cifrado) mediante multiplicación en un campo de Galois para generar una etiqueta de autenticación de tamaño fijo, normalmente de 128 bits.
Dado que ambas operaciones se ejecutan en bloques independientes y paralelizables, el GCM procesa los datos mucho más rápido que los modos que deben completar el cifrado antes de que pueda iniciarse la autenticación. La contrapartida son unos requisitos de entrada estrictos: cada operación de cifrado necesita un nonce (vector de inicialización) único bajo una clave determinada. Reutilizar un nonce con GCM no solo debilita la seguridad de forma gradual, sino que puede exponer la clave de autenticación y permitir que un atacante falsifique texto cifrado válido; por eso, los protocolos que utilizan GCM exigen una construcción cuidadosa del nonce, a menudo combinando un identificador fijo del remitente con un contador que aumenta de forma estricta.
Componentes del GCM
GCM es una familia de configuraciones relacionadas entre sí, más que un único algoritmo fijo. La longitud de la etiqueta es la variable principal: 128 bits es la opción estándar y más segura, y la especificación subyacente también define etiquetas más cortas y truncadas para enlaces con limitaciones de ancho de banda, a costa de una garantía de autenticidad más débil. GMAC es la variante de GCM dedicada exclusivamente a la autenticación: ejecuta el mismo paso GHASH sin cifrar nada, lo que resulta útil para proteger datos que deben permanecer en texto claro pero que aún así requieren una comprobación de integridad, como las cabeceras de los paquetes.
Cifrado subyacente La otra variable es la siguiente: GCM es un modo genérico que puede envolver cualquier cifrado por bloques de 128 bits, pero en la práctica se utiliza casi exclusivamente con AES, ya que la aceleración por hardware de AES-NI es lo que hace que la ventaja de rendimiento de GCM sea real. Esta combinación se denomina AES-GCM y se especifica además mediante el tamaño de la clave —AES-128-GCM o AES-256-GCM— y, en los nombres de los conjuntos de cifrado, mediante el hash utilizado para la derivación de la clave del propio protocolo de establecimiento de conexión, como en AES-256-GCM-SHA384.
GCM y Versa
GCM aparece siempre que el Servicio de Acceso Seguro de Versaconfigura la criptografía del túnel. En la configuración de IKE/IPsec para un servidor de acceso seguro o un perfil de cliente de SASE , la lista de transformaciones IPsec (ESP) ofrece ESP con cifrado AES de 128 bits y hash GCM, y ESP con cifrado AES de 256 bits y hash GCM como transformaciones con nombre único; a diferencia de las opciones CBC, que combinan por separado un algoritmo de cifrado y un algoritmo de hash, la entrada de GCM ya incluye ambos.
GCM también se incluye en las listas de conjuntos de cifrado TLS y DTLS que se ofrecen para los portales de acceso seguro y las sesiones de cliente de SASE , tales como TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 y TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256. Estas opciones son las mismas tanto en las implementaciones de « Secure SD-WAN », como en las de acceso seguro general y en las que cuentan con un NGFW como puerta de enlace. Cuando un nodo lo admite, AES-GCM es la transformación preferida para IPsec, TLS y DTLS frente a la combinación de AES-CBC más hash, ya que elimina el paso independiente del hash y ofrece un mejor rendimiento en el hardware moderno.
Preguntas frecuentes
¿Cuál es la diferencia entre el GCM y el CBC?
El CBC cifra los datos, pero necesita un hash independiente, como el SHA, para comprobar su integridad, lo que supone dos pasadas por los datos. El GCM realiza el cifrado y la verificación de la integridad a la vez, en una sola pasada, lo que resulta más rápido en el hardware moderno y es ahora el modo preferido para las nuevas implementaciones de IPsec, TLS y DTLS.
¿Por qué GCM requiere un nonce único para cada operación?
La prueba de seguridad de GCM parte de la base de que la secuencia de contador que genera nunca se reutiliza con la misma clave. La reutilización de un nonce permite a un atacante recuperar la clave de autenticación y falsificar texto cifrado válido, por lo que las implementaciones deben construir los nonces con cuidado, normalmente a partir de un valor fijo más un contador que se incrementa de forma estricta.
¿Qué es el GMAC?
GMAC es la variante de GCM dedicada exclusivamente a la autenticación. Ejecuta el mismo paso GHASH que genera la etiqueta de integridad de GCM, pero sin el cifrado asociado, por lo que permite autenticar datos que deben permanecer legibles, como las cabeceras de paquetes sin cifrar junto con una carga útil cifrada.
¿Es GCM más rápido que CBC con un hash independiente?
En general, sí. Tanto el cifrado en modo contador de GCM como la autenticación GHASH procesan bloques independientes en paralelo, y las CPU modernas aceleran ambas operaciones a nivel de hardware. El método CBC con hash requiere dos pasadas secuenciales sobre los datos, por lo que GCM suele alcanzar un mayor rendimiento con el mismo hardware.
¿Qué significa «AES-256-GCM»?
Especifica una transformación concreta: AES como cifrado por bloques, una clave de 256 bits y GCM como modo de funcionamiento, que garantiza tanto el cifrado como la integridad. Es una de las opciones más seguras y ampliamente utilizadas para IPsec, TLS y DTLS, y aparece directamente en las listas de ESP y de conjuntos de cifrado de Versa.
Más información sobre GCM
Si quieres saber más, estas son algunas fuentes en las que confiamos.
| RFC 4106: El uso de GCM en IPsec ESP | RFC 5288: Conjuntos de cifrado AES-GCM para TLS |
|---|---|
| La especificación de la IETF que define AES-GCM como una transformación de cifrado autenticado para IPsec ESP, incluida la construcción del nonce. | La especificación de la IETF que define los conjuntos de cifrado AES-GCM para TLS, combinando GCM con SHA-256 o SHA-384 para el protocolo de establecimiento de conexión. |
Términos relacionados
Si estás leyendo sobre GCM, te recomiendo que eches un vistazo a lo siguiente.
| Estándar de cifrado avanzado | Algoritmo de hash seguro | Seguridad de la capa de transporte de datagramas |
|---|---|---|
| El cifrado por bloques GCM casi siempre realiza un «wrap», y se combina con GHASH para formar la transformación AES-GCM. | La familia de funciones hash en modo CBC realiza transformaciones por pares de forma independiente para garantizar la integridad, mientras que el paso GCM se integra en una sola pasada. | Un protocolo de túnel basado en UDP cuyas suites de cifrado, al igual que las de TLS, suelen negociar un cifrado AES-GCM. |