0Pricing
Cryptology Academy · Lección

GCM y cifrado autenticado

Añada etiquetas de autenticación al cifrado para evitar manipulaciones.

GCM y cifrado autenticado es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Bienvenida

AES-GCM es el estándar de oro del cifrado autenticado. Proporciona confidencialidad E integridad en una sola operación, lo que evita la manipulación sin necesidad de un paso HMAC separado.

El problema de cifrar únicamente

El cifrado proporciona confidencialidad, pero NO integridad. Un atacante que intercepte un texto cifrado con AES-CBC puede invertir bits y modificar el texto plano descifrado sin conocer la clave.

AEAD: cifrado autenticado con datos asociados

Los esquemas AEAD producen: texto cifrado + etiqueta de autenticación. La etiqueta autentica tanto el texto cifrado COMO los datos asociados opcionales sin cifrar (AAD). Cualquier modificación invalida la etiqueta.

Arquitectura de GCM

AES-GCM utiliza: 1. AES-CTR para el cifrado 2. GHASH para la autenticación GHASH calcula un MAC polinómico sobre el texto cifrado + AAD mediante multiplicación en GF(2^128).

Descripción general de GHASH

GHASH(H, A, C) = hash de los datos asociados autenticados + el texto cifrado utilizando la subclave H = AES(K, 0^128). El polinomio se evalúa en H sobre GF(2^128). El resultado se combina mediante XOR con el contador cifrado para formar la etiqueta.

Entradas y salidas de AES-GCM

Entradas: clave de 128/192/256 bits, nonce de 96 bits, texto plano, AAD opcional Salidas: texto cifrado (misma longitud que el texto plano), etiqueta de autenticación de 128 bits La etiqueta suele tener 16 bytes. No se recomienda truncarla a menos de 12 bytes.

Requisitos del nonce en GCM

GCM requiere un nonce único para cada cifrado realizado con la misma clave. El nonce aleatorio de 96 bits es el estándar. Después de 2^32 mensajes, la probabilidad de colisión supera el 1 %. En ese momento, cambie la clave.

Catástrofe por reutilización del nonce en GCM

Reutilizar (clave, nonce) en GCM permite al atacante recuperar la subclave GHASH y falsificar cualquier texto cifrado con una etiqueta válida. Esto rompe por completo tanto la confidencialidad como la integridad.

Casos de uso de los datos asociados (AAD)

AAD son metadatos que desea autenticar, pero no cifrar: - Encabezado HTTP: se autentica para evitar ataques de enrutamiento de respuestas - ID del registro de la base de datos: garantiza que el texto cifrado se descifre en la fila correcta - Versión del protocolo: evita ataques de degradación

Ejemplo completo de AES-GCM en Python

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(256) nonce = os.urandom(12) aad = b'user_id=12345' aesgcm = AESGCM(key) ct = aesgcm.encrypt(nonce, b'secret', aad) pt = aesgcm.decrypt(nonce, ct, aad) # raises if tampered

Alternativas: ChaCha20-Poly1305

ChaCha20-Poly1305 es el otro esquema AEAD principal. Se utiliza en TLS 1.3 para dispositivos sin AES-NI (ARM/móviles). Proporciona una seguridad similar a AES-GCM, pero es más rápido en software sin aceleración de hardware.

Comprobación rápida

¿Contra qué protege la etiqueta de autenticación de AES-GCM?

Resumen

AES-GCM es la opción predeterminada adecuada para el cifrado autenticado. A continuación, estudiaremos los cifrados de flujo: desde el obsoleto RC4 hasta el moderno ChaCha20.

Preguntas frecuentes

¿La lección «GCM y cifrado autenticado» es gratis?

Sí — el texto completo de «GCM y cifrado autenticado» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «GCM y cifrado autenticado»?

Añada etiquetas de autenticación al cifrado para evitar manipulaciones. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «GCM y cifrado autenticado»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos de los cifradores de bloque y padding
  2. ECB frente a CBC: patrones y vectores de inicialización
  3. Modo CTR y comportamiento de los cifradores de flujo
  4. GCM y cifrado autenticado
← Volver a Cryptology Academy