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 actualAdoptado 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
❌ ObsoletoDES (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.
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 usarCada 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ónCada 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
✅ RecomendadoConvierte 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 recomendadoCTR + 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 →