Filtros
Nivel
Artículos (116)
Wiki/Fundamentos/Criptografía Simétrica
Básico16 min lectura

Criptografía Simétrica: AES y Modos de Cifrado

AES-128/256, DES, 3DES y los modos CBC, GCM, CTR para cifrar datos de forma segura

¿Qué es la Criptografía Simétrica?

En la criptografía simétrica, la misma clave se usa para cifrar y descifrar. Es extremadamente rápida y eficiente, por lo que se usa para cifrar grandes volúmenes de datos. El principal reto es el problema de distribución de clave: ¿cómo compartir la clave de forma segura?

// Esquema básico

Emisor: Plaintext + Clave → [Algoritmo] → Ciphertext

Receptor: Ciphertext + Clave → [Algoritmo] → Plaintext

⚠️ Clave compartida = mismo secreto en ambos extremos

Algoritmos Principales

AES — Advanced Encryption Standard

✅ Estándar actual

Adoptado por NIST en 2001 como sustituto de DES. Cifrado por bloques de 128 bits con claves de 128, 192 o 256 bits. Basado en la red de sustitución-permutación (SPN) de Rijndael.

AES-128

10 rondas

General / TLS

AES-192

12 rondas

Clasificado SECRET

AES-256

14 rondas

TOP SECRET / HSM

DES y 3DES

❌ Obsoleto

DES (1977) usa clave de solo 56 bits — rompible por fuerza bruta en horas. 3DES aplica DES tres veces (EDE: Encrypt-Decrypt-Encrypt) con claves de 112 o 168 bits efectivos. NIST desaconsejó 3DES en 2017; retirado en 2023.

No usar DES ni 3DES en sistemas nuevos. Migra a AES-256-GCM.

ChaCha20-Poly1305

Alternativa moderna a AES para entornos sin aceleración hardware (móviles, IoT). Diseñado por Daniel Bernstein. Usado en TLS 1.3 y WireGuard. Proporciona cifrado + autenticación en un solo paso.

Modos de Operación

AES por sí solo cifra bloques de exactamente 128 bits. Los modos de operación definen cómo encadenar esos bloques para cifrar mensajes de longitud arbitraria.

ECB — Electronic Codebook

❌ Nunca usar

Cada bloque se cifra independientemente. Bloques iguales producen ciphertext idéntico. El famoso "ECB Penguin" demuestra que revela patrones del plaintext.

Uso: Solo para cifrar una sola clave/dato sin estructura

CBC — Cipher Block Chaining

⚠️ Con precaución

Cada bloque se XOR con el ciphertext anterior antes de cifrar. Requiere IV aleatorio. Vulnerable a ataques de padding oracle (POODLE, BEAST) si se usa con TLS < 1.2.

Uso: Cifrado de archivos en reposo (con IV único)

CTR — Counter Mode

✅ Recomendado

Convierte AES en cifrado de flujo. Cifra un contador incrementado para generar keystream. Paralelizable. No requiere padding. No proporciona autenticación por sí solo.

Uso: Streaming, disco (combinado con HMAC)

GCM — Galois/Counter Mode

✅ Estándar recomendado

CTR + autenticación GHASH. Proporciona cifrado autenticado (AEAD): confidencialidad + integridad en una sola operación. Usado en TLS 1.3, SSH, IPsec.

Uso: TLS 1.3, APIs, bases de datos, casi todo

Conceptos Clave

IV / Nonce

Initialization Vector: valor aleatorio que garantiza que el mismo plaintext produce diferente ciphertext. NUNCA reutilizar con la misma clave.

Padding (PKCS#7)

Rellena el último bloque hasta 128 bits. GCM y CTR no necesitan padding al ser de flujo.

Salt

Valor aleatorio añadido al input antes de cifrar/hashear. Previene ataques de diccionario y rainbow tables.

Key Derivation (KDF)

PBKDF2, scrypt, Argon2: funciones para derivar claves seguras a partir de contraseñas. Añaden cost factor para ralentizar brute-force.

AEAD

Authenticated Encryption with Associated Data: cifra y autentica en un solo paso. AES-GCM y ChaCha20-Poly1305 son AEAD.

KMS

Key Management System: servicio centralizado para generar, almacenar, rotar y auditar claves. AWS KMS, Azure Key Vault, GCP Cloud KMS.

Buenas Prácticas

Usar AES-256-GCM como modo por defecto — confidencialidad + integridad.

Generar IVs/nonces criptográficamente aleatorios; nunca reutilizar con la misma clave.

Rotar claves periódicamente (ej. anualmente o tras un incidente).

Almacenar claves en un KMS o HSM, no como variables de entorno en texto plano.

Para cifrado de contraseñas, usar KDF (Argon2id) en lugar de AES directamente.

Auditar el uso de claves: registrar quién accede a qué y cuándo.

Siguiente Paso

Descubre cómo funciona la criptografía asimétrica con RSA y curvas elípticas

Criptografía Asimétrica: RSA y ECC →