Criptografía de clave pública
Lectura de aproximadamente 5 minutos
Última actualización: 2026-02-05
Qué es la criptografía de clave pública
La criptografía de clave pública (Public Key Cryptography) es un método criptográfico que utiliza dos claves diferentes (clave pública y clave privada) para el cifrado y descifrado. El concepto fue publicado por Diffie y Hellman en 1976 y se implementó prácticamente como el algoritmo RSA en 1977.
La clave pública se puede compartir con cualquiera, y la clave privada solo la posee el propietario. Los datos cifrados con la clave pública solo pueden descifrarse con la clave privada correspondiente, y los datos firmados con la clave privada pueden verificarse con la clave pública correspondiente. Esta asimetría es la base para comunicarse de forma segura en internet.
TLS/SSL, cifrado de extremo a extremo, certificados digitales, SSH, criptomonedas y muchas otras tecnologías de seguridad modernas dependen de la criptografía de clave pública.
Dos usos de la criptografía de clave pública
La criptografía de clave pública tiene dos usos principales.
1. Cifrado (garantía de confidencialidad)
El remitente cifra los datos con la clave pública del destinatario, y el destinatario los descifra con su clave privada. Como la clave pública está disponible para cualquiera, no es necesario compartir una clave secreta de antemano.
Ejemplo práctico: En el correo cifrado (PGP/GPG), el correo se cifra con la clave pública del destinatario, y solo el destinatario puede descifrarlo con su clave privada.
2. Firma digital (garantía de autenticidad)
El remitente firma los datos con su clave privada, y el destinatario verifica la firma con la clave pública del remitente. Si la firma es correcta, se demuestra que los datos no han sido manipulados y que fueron creados por ese remitente.
Ejemplo práctico: El distribuidor de software firma el binario, y el usuario verifica la firma después de la descarga para confirmar que no ha sido manipulado.
Principales algoritmos
- RSA: El algoritmo más ampliamente utilizado. Su seguridad se basa en la dificultad de factorizar el producto de números primos grandes. Se recomienda una longitud de clave de 2048 bits o más. Tiene una larga historia y trayectoria, pero es desventajoso en velocidad de procesamiento debido a las claves grandes.
- Criptografía de curva elíptica (ECC): Su seguridad se basa en el problema del logaritmo discreto sobre curvas elípticas. Puede lograr la misma seguridad que RSA con longitudes de clave mucho más cortas (alrededor de 256 bits). En TLS 1.3, el intercambio de claves basado en ECC es estándar. Especialmente ventajoso en entornos con recursos de cálculo limitados como dispositivos móviles e IoT.
- EdDSA (Ed25519): Un tipo de criptografía de curva elíptica con generación y verificación de firmas rápidas. Ampliamente adoptado como clave SSH. La implementación es relativamente simple y tiene alta resistencia a ataques de canal lateral.
Cuando los ordenadores cuánticos se hagan prácticos, RSA y ECC podrían ser descifrados. La estandarización de la criptografía post-cuántica (Post-Quantum Cryptography) avanza en el NIST, y los primeros estándares se publicaron en 2024.
Uso de la criptografía de clave pública en TLS
Cada vez que accede a un sitio HTTPS con un navegador web, se utiliza la criptografía de clave pública. Sin embargo, no todos los datos se cifran con criptografía de clave pública.
- Intercambio de claves: En el handshake TLS, se utiliza la criptografía de clave pública (ECDHE, etc.) para intercambiar de forma segura una clave común.
- Autenticación del servidor: El servidor presenta un certificado digital y realiza una firma con la clave privada para demostrar que es un servidor legítimo.
- Cifrado de datos: Para la comunicación real de datos, se utiliza cifrado de clave simétrica (AES, etc.) con la clave común intercambiada.
La criptografía de clave pública es cientos de veces más lenta que la criptografía de clave simétrica, por lo que no es adecuada para cifrar grandes cantidades de datos. TLS adopta un método híbrido donde "se intercambia de forma segura la clave común con criptografía de clave pública, y los datos reales se cifran con criptografía de clave simétrica de alta velocidad".
Consideraciones prácticas y gestión de claves
Para operar la criptografía de clave pública de forma segura, no solo la selección del algoritmo, sino también la configuración de la longitud de clave y la gestión del ciclo de vida de las claves son extremadamente importantes.
Longitudes de clave recomendadas: RSA requiere un mínimo de 2048 bits, y para uso a largo plazo más allá de 2030, se recomiendan 3072 bits o más. ECDSA con P-256 (secp256r1) es la opción estándar, logrando la misma seguridad que RSA 3072 bits con una longitud de clave mucho más corta. Ed25519 es el más eficiente para firmas y se adopta ampliamente como clave SSH. Las claves RSA de 1024 bits o menos ya no se consideran seguras y necesitan actualización inmediata.
Rotación de claves: Las claves privadas deben actualizarse (rotarse) periódicamente. El período de validez de los certificados digitales está limitado a un máximo de 398 días (aproximadamente 13 meses), y es deseable regenerar los pares de claves junto con la renovación del certificado. Utilice herramientas de automatización (certbot de Let's Encrypt, AWS Certificate Manager, etc.) para prevenir omisiones en la actualización manual.
Riesgo del pinning de certificados: El pinning de certificados, que codifica un certificado o clave pública específica en la aplicación, es efectivo contra ataques de intermediario, pero si la actualización de la aplicación no se completa a tiempo durante la rotación de claves, puede causar una interrupción del servicio. Google Chrome eliminó el soporte para HPKP (HTTP Public Key Pinning) en 2018, y actualmente se recomienda la monitorización mediante registros de Certificate Transparency.
Criptografía post-cuántica (Post-Quantum Cryptography): Cuando los ordenadores cuánticos se hagan prácticos, RSA y ECC podrán descifrarse en tiempo polinomial mediante el algoritmo de Shor. El NIST publicó en 2024 los primeros estándares de criptografía post-cuántica: ML-KEM (antes CRYSTALS-Kyber), ML-DSA (antes CRYSTALS-Dilithium) y SLH-DSA (antes SPHINCS+). Aunque la amenaza de los ordenadores cuánticos no se ha materializado actualmente, para prepararse contra los ataques Harvest Now, Decrypt Later ("recopilar ahora, descifrar después"), se debería comenzar a considerar la introducción del intercambio de claves híbrido en TLS (combinación de ECDHE convencional + ML-KEM) para datos confidenciales que requieren almacenamiento a largo plazo.
Conceptos erróneos comunes
- Publicar la clave pública es peligroso
- La clave pública es literalmente una clave para publicar. Es computacionalmente imposible (con la tecnología actual) calcular la clave privada a partir de la clave pública, por lo que distribuir ampliamente la clave pública no compromete la seguridad. Solo la gestión de la clave privada es importante.
- Cuanto más larga sea la clave, siempre es mejor
- Aumentar la longitud de la clave mejora la seguridad, pero reduce la velocidad de procesamiento. RSA 2048 bits y ECC 256 bits tienen la misma seguridad, pero ECC es mucho más rápido. El equilibrio entre la selección del algoritmo y la longitud de la clave es importante.
Comparación entre criptografía de clave pública y criptografía de clave simétrica
Criptografía de clave pública (clave asimétrica)
Utiliza claves diferentes para cifrar y descifrar. No requiere compartir claves de antemano. La velocidad de procesamiento es lenta. Se utiliza para intercambio de claves y firmas digitales. Ejemplos: RSA, ECC.
Criptografía de clave simétrica
Utiliza la misma clave para cifrar y descifrar. Requiere compartir la clave de forma segura de antemano. La velocidad de procesamiento es rápida. Se utiliza para cifrar grandes cantidades de datos. Ejemplo: AES.