El intercambio de claves Diffie-Hellman (DH) permite que dos partes que nunca compartieron un secreto generen una clave secreta común a través de un canal inseguro, sin transmitir nunca esa clave. Resuelve el problema central del cifrado simétrico: cómo acordar la clave de forma segura.
No cifra mensajes; su única función es establecer una clave compartida que luego se usa con un cifrado simétrico (como AES).
Analogía de los colores:
- Ambos parten de un color público (visible para todos).
- Cada uno añade un color secreto propio (nunca lo revela) y comparte la mezcla.
- Cada uno combina la mezcla recibida con su secreto.
- Ambos obtienen el mismo color final = la clave compartida.
Un espía ve los colores públicos y las mezclas intercambiadas, pero no puede reconstruir el color final sin los secretos.
Por qué es seguro: se apoya en operaciones matemáticas de un solo sentido (fáciles de calcular, inviables de revertir), como el problema del logaritmo discreto. El atacante ve los valores públicos pero no puede deducir los privados en un tiempo razonable.
Variantes y conceptos relacionados:
| Concepto | Detalle |
|---|---|
| ECDH | Diffie-Hellman sobre curvas elípticas (más eficiente) |
| Ephemeral (DHE/ECDHE) | Usa claves temporales por sesión |
| Forward Secrecy | Si se roba una clave, las sesiones pasadas siguen seguras |
Dónde se usa: es parte del handshake de TLS/HTTPS, de las VPN y de protocolos de mensajería segura. Permite iniciar una comunicación cifrada desde cero, sin secreto previo.
Diffie-Hellman complementa el cifrado asimétrico y es una pieza esencial del handshake TLS/SSL, que se ve más adelante en este pilar.