Guía Avanzada de Encriptación: AES, RSA, ECC y Criptografía Post-Cuántica

Esta guía completa explora conceptos avanzados de cifrado, algoritmos y protocolos utilizados en los sistemas modernos de comunicación segura. Ideal para desarrolladores y profesionales de la seguridad.

Nota: Esta guía asume familiaridad con conceptos básicos de cifrado. Para principiantes, comienza con nuestros Consejos de Seguridad para Principiantes.

Algoritmos de Cifrado Simétrico

AES (Advanced Encryption Standard)

El estándar de oro para cifrado simétrico, adoptado por el gobierno de EE.UU. en 2001.

Características Clave

  • Tamaños de clave: 128, 192 o 256 bits
  • Tamaño de bloque: 128 bits
  • Rondas: 10, 12 o 14 dependiendo del tamaño de clave
  • Rendimiento: Altamente optimizado, aceleración por hardware disponible

Modos Comunes

  • GCM (Galois/Counter Mode): Cifrado autenticado, recomendado para la mayoría de casos de uso
  • CBC (Cipher Block Chaining): Modo tradicional, requiere MAC separado
  • CTR (Counter): Paralelizable, usado en algunos protocolos

ChaCha20

Cifrador de flujo moderno diseñado por Daniel J. Bernstein, cada vez más popular como alternativa a AES.

Ventajas

  • Más rápido que AES en dispositivos sin aceleración por hardware
  • Implementación de tiempo constante (resistente a ataques de temporización)
  • Diseño simple, más fácil de implementar de forma segura
  • Usado con Poly1305 para cifrado autenticado

Cifrado Asimétrico

RSA (Rivest-Shamir-Adleman)

Ampliamente utilizado para intercambio de claves y firmas digitales.

Consideraciones Clave

  • Tamaño mínimo de clave: 2048 bits (4096 bits recomendado para seguridad a largo plazo)
  • Rendimiento: Computacionalmente costoso comparado con el cifrado simétrico
  • Esquemas de relleno: Usa OAEP para cifrado, PSS para firmas
  • Amenaza cuántica: Vulnerable a computadoras cuánticas (algoritmo de Shor)

Criptografía de Curva Elíptica (ECC)

Alternativa más eficiente a RSA con seguridad equivalente en tamaños de clave más pequeños.

Curvas Populares

  • Curve25519: Diseñada para intercambio de claves ECDH, ampliamente adoptada
  • Ed25519: Para firmas digitales, usada en SSH, GPG
  • P-256 (secp256r1): Estándar NIST, ampliamente soportada
  • P-384, P-521: Niveles de seguridad más altos

Ventajas Sobre RSA

  • ECC de 256 bits ≈ seguridad RSA de 3072 bits
  • Computación más rápida
  • Claves y firmas más pequeñas
  • Menores requisitos de ancho de banda y almacenamiento

Protocolos de Intercambio de Claves

Diffie-Hellman (DH)

Permite a dos partes establecer un secreto compartido sobre un canal inseguro.

Variantes

  • DH clásico: Implementación original
  • ECDH: Versión de Curva Elíptica (más eficiente)
  • X25519: ECDH moderno usando Curve25519

Perfect Forward Secrecy (PFS)

Asegura que las comunicaciones pasadas permanezcan seguras incluso si las claves a largo plazo se ven comprometidas.

Implementación

  • Genera pares de claves efímeras para cada sesión
  • Destruye las claves de sesión después de usarlas
  • Usado en TLS 1.3, Signal Protocol, etc.

Funciones Hash

Familia SHA-2

  • SHA-256: Salida de 256 bits, ampliamente usado
  • SHA-384, SHA-512: Niveles de seguridad más altos
  • Aplicaciones: Firmas digitales, validación de certificados, hash de contraseñas (con técnicas apropiadas)

SHA-3 (Keccak)

  • Construcción diferente a SHA-2 (función esponja)
  • Resistente a ataques de extensión de longitud
  • Adecuado para aplicaciones que requieren altos márgenes de seguridad

BLAKE2/BLAKE3

  • Más rápido que SHA-2 y SHA-3
  • Criptográficamente seguro
  • BLAKE3: Altamente paralelizable, excelente para grandes volúmenes de datos

Funciones de Derivación de Claves (KDFs)

PBKDF2 (Password-Based Key Derivation Function 2)

  • Propósito: Derivar claves criptográficas a partir de contraseñas
  • Iteraciones: Mínimo 100.000 (recomendación OWASP)
  • Caso de uso: Almacenamiento de contraseñas, derivación de claves

Argon2

Ganador del Password Hashing Competition (2015), recomendado para aplicaciones nuevas.

Variantes

  • Argon2id: Híbrido (recomendado para la mayoría de casos de uso)
  • Argon2i: Optimizado contra ataques de canal lateral
  • Argon2d: Máxima resistencia a ataques GPU

scrypt

  • Función de memoria intensiva (resistente a ataques de hardware)
  • Usado por Litecoin, Tarsnap
  • Buen equilibrio entre seguridad y compatibilidad

Códigos de Autenticación de Mensajes (MACs)

HMAC (Hash-based MAC)

  • Combina función hash con clave secreta
  • Proporciona autenticación e integridad
  • Común: HMAC-SHA256, HMAC-SHA512

Poly1305

  • Autenticador de un solo uso
  • Usado con ChaCha20 para cifrado autenticado
  • Rápido y de tiempo constante

Cifrado Autenticado

Por Qué Es Importante

El cifrado solo no garantiza la integridad. Un atacante podría modificar el texto cifrado sin ser detectado. El cifrado autenticado resuelve esto.

AEAD (Authenticated Encryption with Associated Data)

  • AES-GCM: Más ampliamente soportado
  • ChaCha20-Poly1305: Mejor en dispositivos móviles
  • AES-CCM: Usado en algunos protocolos inalámbricos

Firmas Digitales

Firmas RSA

  • Relleno: Usa PSS (Probabilistic Signature Scheme)
  • Función hash: SHA-256 o superior
  • Tamaño de clave: 2048 bits mínimo

ECDSA (Elliptic Curve Digital Signature Algorithm)

  • Firmas más pequeñas que RSA
  • Requiere generación cuidadosa de nonce (RNG débil = clave comprometida)
  • Variante determinística (RFC 6979) recomendada

Ed25519

  • Determinístico (no requiere RNG)
  • Generación y verificación de firmas rápida
  • Firmas pequeñas (64 bytes)
  • Resistente a ataques de canal lateral

Protocolos Modernos

Signal Protocol

Protocolo de cifrado de extremo a extremo de última generación usado por Signal, WhatsApp, Facebook Messenger.

Características Clave

  • Double Ratchet: Actualiza continuamente las claves
  • Perfect Forward Secrecy: Los mensajes pasados permanecen seguros
  • Post-Compromise Security: Se recupera del compromiso de claves
  • Asíncrono: Funciona incluso cuando el destinatario está desconectado

TLS 1.3

Última versión del protocolo Transport Layer Security.

Mejoras

  • Eliminó algoritmos débiles y suites de cifrado
  • Siempre proporciona forward secrecy
  • Handshake más rápido (1-RTT, opción 0-RTT)
  • Server Hello cifrado

Noise Protocol Framework

Framework de protocolo criptográfico moderno para construir sistemas de comunicación seguros.

Aplicaciones

  • WireGuard VPN
  • Lightning Network
  • Mensajería I2P

Criptografía Post-Cuántica

La Amenaza

Las computadoras cuánticas pueden romper RSA y ECC usando el algoritmo de Shor. Los algoritmos simétricos se ven menos afectados pero requieren claves más grandes.

Candidatos Post-Cuánticos de NIST

  • Kyber: Encapsulación de claves basada en retículas
  • Dilithium: Firmas digitales basadas en retículas
  • SPHINCS+: Firmas basadas en hash

Estrategia de Transición

  • Enfoque híbrido: Combinar algoritmos clásicos y post-cuánticos
  • Aumentar tamaños de clave simétrica a 256 bits
  • Monitorear el proceso de estandarización de NIST
  • Planificar para agilidad de algoritmos

Mejores Prácticas de Implementación

No Inventes Tu Propia Criptografía

Usa bibliotecas establecidas y revisadas por pares:

  • libsodium: Alto nivel, fácil de usar
  • OpenSSL: Completa, ampliamente soportada
  • BoringSSL: Fork de OpenSSL de Google
  • Ring: Biblioteca de criptografía Rust

Gestión de Claves

  • Usa módulos de seguridad de hardware (HSMs) para claves críticas
  • Implementa políticas de rotación de claves
  • Nunca codifiques claves directamente en el código fuente
  • Usa derivación de claves para múltiples propósitos
  • Elimina de forma segura las claves de la memoria después de usarlas

Generación Segura de Números Aleatorios

  • Usa RNG criptográficamente seguro (CSPRNG)
  • Nunca uses funciones rand() estándar
  • RNGs del sistema operativo: /dev/urandom (Linux), CryptGenRandom (Windows)
  • Específicos del lenguaje: crypto.randomBytes (Node.js), módulo secrets (Python)

Prevención de Ataques de Temporización

  • Usa comparación de tiempo constante para secretos
  • Evita ramificaciones basadas en datos secretos
  • Ten en cuenta los ataques de temporización de caché
  • Usa bibliotecas diseñadas con resistencia a ataques de temporización

Pruebas y Validación

Auditorías de Seguridad

  • Pruebas de penetración regulares
  • Revisiones de código por expertos en seguridad
  • Auditorías de seguridad de terceros
  • Programas de recompensas por errores

Cumplimiento

  • FIPS 140-2/3: Estándar del gobierno de EE.UU.
  • Common Criteria: Certificación de seguridad internacional
  • PCI DSS: Requisitos de la industria de tarjetas de pago

Recursos para Seguir Aprendiendo

Libros

  • "Cryptography Engineering" de Ferguson, Schneier y Kohno
  • "Serious Cryptography" de Jean-Philippe Aumasson
  • "Applied Cryptography" de Bruce Schneier

Recursos en Línea

  • Cryptopals Crypto Challenges
  • Cursos de Criptografía de Stanford (Coursera)
  • IACR ePrint Archive
  • Crypto Stack Exchange
Ve el cifrado en acción: SecretNote usa cifrado AES-256-GCM con derivación de claves segura para proteger tus mensajes. ¡Pruébalo ahora!