La criptografía de clave pública, o criptografía asimétrica, usa un par de claves vinculadas matemáticamente: una clave pública que puede compartirse con cualquiera y una privada que su dueño mantiene en secreto.
Cómo funciona la criptografía de clave pública
Los datos cifrados con la clave pública solo pueden descifrarse con la clave privada correspondiente, y lo firmado con la clave privada puede verificarlo cualquiera que tenga la pública. Obtener la clave privada a partir de la pública es computacionalmente inviable, porque se basa en problemas matemáticos difíciles:
- Factorización de enteros: la base de RSA, publicado en 1977.
- Logaritmos discretos: usados por el intercambio de claves Diffie-Hellman (1976) y DSA.
- Curvas elípticas: ECDSA, Ed25519 y X25519 ofrecen la misma seguridad con claves mucho más cortas.
Whitfield Diffie y Martin Hellman publicaron el concepto en 1976; investigadores del GCHQ británico habían llegado antes a ideas similares, pero su trabajo fue secreto hasta 1997.
Cómo se usa la criptografía de clave pública
Los algoritmos asimétricos son lentos, por lo que se usan sobre todo para acordar o proteger claves de sesión simétricas y para crear firmas digitales. Sostienen TLS y HTTPS, los inicios de sesión SSH, la firma de código, el correo PGP y S/MIME, los monederos de criptomonedas y las passkeys. Para demostrar que una clave pública pertenece realmente a un sitio web o una empresa, las autoridades de certificación emiten certificados digitales y forman una infraestructura de clave pública (PKI).
Riesgos de seguridad
Las matemáticas rara vez fallan; falla la gestión de claves. Con claves privadas robadas se puede firmar malware: Stuxnet (2010) llevaba controladores firmados con certificados robados a Realtek y JMicron. Una generación aleatoria deficiente, como el fallo de OpenSSL en Debian de 2008, produjo claves predecibles. A largo plazo, el algoritmo de Shor en un ordenador cuántico grande rompería RSA y las curvas elípticas, por eso se despliegan algoritmos poscuánticos.
- Proteger las claves privadas en HSM, TPM o tarjetas inteligentes.
- Usar RSA de al menos 2048 bits o curvas elípticas modernas.
- Rotar y revocar las claves en cuanto se sospeche un compromiso.