Tema 11

11. Diffie-Hellman y establecimiento seguro de claves en canales inseguros

Diffie-Hellman resolvió uno de los problemas más elegantes y fundamentales de la criptografía moderna: permitir que dos partes establezcan un secreto compartido sin tener que transmitir ese secreto directamente, incluso si el canal de comunicación puede ser observado por un atacante.

Objetivo Entender cómo dos partes acuerdan una clave sin enviarla
Enfoque Matemático, conceptual y orientado a protocolos reales
Resultado Comprender el intercambio de claves y sus riesgos

11.1 Introducción

La criptografía simétrica es muy eficiente, pero su talón de Aquiles es el intercambio inicial de la clave secreta. Si dos partes quieren comunicarse de forma segura y aún no comparten un secreto, necesitan algún mecanismo para generarlo o acordarlo sin revelarlo durante el proceso.

Diffie-Hellman, presentado por Whitfield Diffie y Martin Hellman en 1976, introdujo justamente esa solución. Fue un punto de inflexión porque mostró que era posible construir un secreto compartido sobre un canal inseguro sin transmitir jamás ese secreto en forma directa.

11.2 Qué problema resuelve Diffie-Hellman

Diffie-Hellman no fue diseñado originalmente para cifrar mensajes ni para firmar documentos. Su propósito principal es otro: permitir que dos partes acuerden una clave compartida que luego podrá usarse en criptografía simétrica.

Eso significa que su rol habitual es servir de etapa previa dentro de un protocolo más grande. Una vez obtenido el secreto compartido, se puede derivar de él material de clave para cifrado, autenticación u otros fines.

11.3 La intuición del esquema

La intuición de Diffie-Hellman es sorprendente: dos partes realizan operaciones públicas visibles para todos, pero gracias a ciertas propiedades matemáticas cada una puede llegar al mismo resultado secreto sin que un observador externo pueda reconstruirlo con facilidad.

Lo importante no es que los datos intercambiados sean secretos, sino que conocerlos no alcance para calcular el valor compartido final dentro de recursos realistas.

11.4 Base matemática general

El esquema clásico de Diffie-Hellman trabaja con aritmética modular. Se elige un número primo grande p y un generador o base g. Estos valores suelen ser públicos.

Cada participante elige luego un secreto privado y calcula una potencia modular pública derivada de ese secreto. Lo notable es que, al combinar la propia información privada con la información pública del otro, ambos llegan al mismo resultado.

11.5 Proceso paso a paso

El intercambio clásico puede resumirse así:

  1. Se acuerdan públicamente un primo grande p y una base g.
  2. Alice elige un secreto privado a y calcula A = ga mod p.
  3. Bob elige un secreto privado b y calcula B = gb mod p.
  4. Alice envía A y Bob envía B.
  5. Alice calcula S = Ba mod p.
  6. Bob calcula S = Ab mod p.

Ambos obtienen el mismo secreto compartido S, aunque nunca lo transmitieron por la red.

11.6 Por qué ambos llegan al mismo resultado

La razón matemática es que:

Ba mod p = (gb)a mod p = gab mod p

Y de forma análoga:

Ab mod p = (ga)b mod p = gab mod p

Ambos caminos conducen al mismo resultado final, aunque cada parte usó su propio secreto privado y la información pública de la otra.

11.7 Qué ve un atacante

Un observador puede conocer perfectamente p, g, A y B. El desafío es que, aun con toda esa información, deducir el secreto compartido no debería ser práctico.

La seguridad se asocia con la dificultad de resolver el problema del logaritmo discreto o problemas relacionados dentro del grupo elegido. Es decir, dado g, p y ga mod p, recuperar a debe ser computacionalmente difícil.

11.8 El problema del logaritmo discreto

Así como RSA se apoya en la dificultad de factorizar, Diffie-Hellman se vincula con la dificultad del logaritmo discreto. Calcular una exponenciación modular es fácil con las herramientas adecuadas. Invertirla para recuperar el exponente privado es, en cambio, mucho más difícil.

Esta asimetría es la base del esquema. Si el logaritmo discreto se volviera fácil en el grupo utilizado, la seguridad del intercambio se derrumbaría.

11.9 Diffie-Hellman no autentica por sí solo

Aquí aparece una lección crítica: Diffie-Hellman puede establecer un secreto compartido, pero no garantiza por sí solo con quién se está compartiendo ese secreto. Es decir, resuelve confidencialidad futura, pero no identidad.

Si no se combina con mecanismos de autenticación, puede ser vulnerable a ataques de intermediario.

11.10 El ataque Man in the Middle

En un ataque de intermediario, un atacante se coloca entre Alice y Bob y realiza dos intercambios Diffie-Hellman separados: uno con Alice y otro con Bob. Cada extremo cree estar negociando con el otro, pero en realidad negocia con el atacante.

Como Diffie-Hellman clásico no incluye autenticación intrínseca, el atacante puede establecer dos secretos distintos y reenviar mensajes entre ambos lados, leyéndolos o modificándolos si el protocolo no incorpora verificaciones adicionales.

Diffie-Hellman resuelve el intercambio de claves, no la identidad del interlocutor. Esa diferencia es crucial.

11.11 Cómo se autentica un intercambio Diffie-Hellman

Para que el esquema sea útil en protocolos reales, suele combinarse con autenticación mediante certificados, firmas digitales o claves previamente conocidas. Así, las partes no solo generan un secreto, sino que también verifican que el intercambio proviene del actor esperado.

En HTTPS, por ejemplo, el servidor no se limita a ejecutar Diffie-Hellman. También presenta credenciales y demuestra identidad mediante mecanismos criptográficos adicionales.

11.12 Parámetros públicos y su importancia

En Diffie-Hellman clásico, los parámetros públicos como p y g deben elegirse cuidadosamente. No cualquier grupo modular ofrece el mismo nivel de seguridad. Un grupo mal elegido o demasiado pequeño puede facilitar ataques especializados.

Por eso en práctica se usan grupos estandarizados o parámetros generados bajo criterios rigurosos.

11.13 Tamaño de grupo y seguridad

Como en otros algoritmos, el tamaño importa. Un grupo demasiado pequeño reduce el costo de ataques y puede dejar el intercambio expuesto. A medida que mejora la capacidad de cómputo, es necesario revisar el tamaño mínimo recomendable para mantener seguridad suficiente.

Elegir tamaños inseguros convierte a Diffie-Hellman en una defensa aparente pero no real.

11.14 Diffie-Hellman efímero

En muchos protocolos modernos se prefiere usar variantes efímeras de Diffie-Hellman, donde los secretos privados se generan de nuevo para cada sesión. Esto mejora la seguridad porque evita reutilizar el mismo material criptográfico en muchas conexiones.

Además, esta estrategia habilita una propiedad muy valiosa: el secreto perfecto hacia adelante.

11.15 Forward Secrecy o secreto hacia adelante

Forward secrecy significa que, aunque en el futuro se comprometa una clave privada de autenticación de largo plazo, las sesiones pasadas no puedan reconstruirse fácilmente porque usaron secretos efímeros distintos.

Esto es extremadamente valioso en protocolos modernos. Sin forward secrecy, la captura masiva de tráfico cifrado podría volverse legible más adelante si una clave principal se filtra.

11.16 Diferencia entre establecer una clave y transmitir una clave

Un punto sutil pero importante es que Diffie-Hellman no transmite una clave secreta existente. Lo que hace es permitir que ambas partes lleguen independientemente al mismo resultado secreto sin enviarlo nunca.

Esto lo distingue de otros mecanismos donde una clave sí es transportada cifrada desde un extremo hacia otro.

11.17 Uso en protocolos reales

Diffie-Hellman y sus variantes aparecen en múltiples protocolos reales:

  • TLS y HTTPS para establecimiento de claves de sesión.
  • VPN y túneles seguros.
  • SSH.
  • Protocolos de mensajería segura.
  • Intercambios autenticados en sistemas distribuidos.

Su función suele ser la misma: construir material de clave compartido que luego alimentará cifrado simétrico y autenticación.

11.18 Ventajas de Diffie-Hellman

  • Permite acordar un secreto sin transmitirlo directamente.
  • Resuelve el problema de intercambio inicial de claves en muchos contextos.
  • Se combina muy bien con cifrado simétrico moderno.
  • Las variantes efímeras permiten forward secrecy.
  • Es una pieza central de numerosos protocolos de internet.

11.19 Limitaciones y riesgos

  • No autentica por sí solo.
  • Puede ser vulnerable a Man in the Middle si no se protege adecuadamente.
  • Depende de grupos y parámetros bien elegidos.
  • Un mal manejo de secretos efímeros o reutilización indebida puede debilitar el sistema.

11.20 Relación con curvas elípticas

La idea de Diffie-Hellman no está atada exclusivamente al mundo modular clásico. Existe también una versión sobre curvas elípticas, conocida como ECDH, que ofrece seguridad comparable con claves más pequeñas y gran eficiencia práctica.

Esa variante será especialmente importante cuando entremos en criptografía de curva elíptica.

11.21 Errores conceptuales frecuentes

  • Creer que Diffie-Hellman cifra mensajes por sí solo.
  • Pensar que establece identidad y autenticidad automáticamente.
  • Confundir intercambio de claves con transporte directo de una clave.
  • Ignorar la relevancia del tamaño del grupo y de la autenticación del protocolo.
  • Asumir que observar los valores públicos implica que el esquema está roto.

11.22 Qué debes recordar de este tema

  • Diffie-Hellman sirve para establecer un secreto compartido sobre un canal inseguro.
  • No transmite la clave final, sino que permite derivarla independientemente en ambos extremos.
  • Su seguridad se vincula con la dificultad del logaritmo discreto.
  • No autentica por sí solo y puede sufrir ataques de intermediario.
  • Las variantes efímeras mejoran la seguridad y aportan forward secrecy.
  • Es una pieza central en TLS, VPN, SSH y muchos protocolos modernos.

11.23 Conclusión

Diffie-Hellman fue una innovación decisiva porque mostró que dos partes podían acordar un secreto sin haber compartido antes una clave y sin enviarla nunca en forma explícita. Esa idea se volvió una de las bases operativas de la seguridad en internet.

En el próximo tema estudiaremos la criptografía de curva elíptica, que retoma varias ideas de clave pública e intercambio de secretos, pero con una estructura matemática distinta y muy eficiente.