¿Sabes qué es el algoritmo Diffie-Hellman, cómo funciona y por qué es importante para la criptografía? Imagina que dos usuarios de internet necesitan intercambiar una clave secreta por medio de un canal inseguro como la red. ¿Qué mecangismo se puede utilizar para que el mensaje confidencial llegue a salvo a su destino? En este post, hablaremos sobre un algoritmo matemático que fue diseñado especialmente para este fin. A continuación, te explicaremos qué es el algoritmo Diffie-Hellman, cómo se utiliza en criptografía y cuál es su principal vulnerabilidad.
¿Qué es el algoritmo Diffie-Hellman?
Para entender qué es el algoritmo Diffie-Hellman (diffie hellman group), es útil comenzar con un ejemplo con botes de pintura para ilustrar cómo funciona. Después pasaremos a explicarlo en su lenguaje matemático. No obstante, primero debemos reiterar cuál es su objetivo.
El objetivo del algoritmo de cifrado diffie-helman es lograr el intercambio de una clave secreta por medio de un canal inseguro como es internet. Para que este algoritmo funcione, los datos informáticos deben traducirse a números, lo cual es posible por medio de sistemas como el código ASCII, combinado con otros.
El ejemplo de los botes de pintura
Supón que Alice y Bob quieren compartir un color secreto de pintura y, para ello, siguen el siguiente algoritmo:
- Alice y Bob comienzan con un bote de pintura de un mismo color, que puede ser de conocimiento público para Eve.
- Luego, cada uno añade un color secreto que solo ella o él conocen.
- Después, intercambian estas mezclas por medio de un canal que Eve puede ver.
- Finalmente, cada uno le añade su color secreto a la mezcla que recibió y, así, los dos acaban teniendo un mismo color de pintura.
¿Cómo funciona el algoritmo Diffie-Hellman?
Si has entendido el ejemplo anterior, entonces ya sabes qué es el algoritmo Diffie-Hellman (diffie-hellman group). Ahora, explicaremos cómo funciona para un sistema de intercambio de claves en criptografía.
La seguridad del algoritmo creado por Whitfield Diffie y Martin Hellman se basa en la dificultad de solucionar el problema del logaritmo discreto, que forma parte de la lista de los problemas matemáticos del milenio sin resolver. El algoritmo se basa en las propiedades de la exponenciación modular, las cuales son:
Propiedades de la exponenciación modular
- A^B modC = (AmodC)^B modC
- (A^B)^C = (A^C)^B
- Dado A = a^b modC, con a y C conocidos, encontrar b a partir de A, cuando b y C son números muy grandes, es prácticamente imposible (problema del logaritmo discreto). En cambio, calcular A es relativamente fácil con un algoritmo de exponenciación modular.
Algoritmo Diffie-Hellman
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaEn el algoritmo diffi helman (group diffie hellman), Alice y Bob intercambian las claves públicas A y B:
A = g^a mod p
B = g^b mod p
Donde:
- a = número aleatorio secreto entre 0 y p.
- b = número aleatorio secreto entre 0 y p.
- p = número grande predeterminado por los creadores del algoritmo.
- g = número primo pequeño predeterminado.
a y b son las claves privadas de Alice y Bob, respectivamente. Por lo tanto, con los valores de A y B, los dos pueden hallar el secreto compartido s. Dado que:
s = B^a mod p
s = A^b mod p
Vulnerabilidad del algoritmo Diffie-Hellman
El algoritmo diffie–hellman, por sí solo, es susceptible a un ataque de man in the middle, ya que Eve podría crear su propia clave privada y suplantar a Alice y a Bob en el intercambio. No obstante, evitar esto es el rol de los certificados de internet, que permiten autenticar la fuente de los mensajes enviados para, así, protegerse de los ataques de intermediario.
¿Cómo aprender más?
Si quieres aprender más sobre qué es el algoritmo Diffie-Hellman y otros conceptos avanzados de criptografía, en KeepCoding tenemos la mejor opción para ti. Entra en nuestro Ciberseguridad Full Stack Bootcamp y conviértete en un especialista en menos de 7 meses. ¿A qué estás esperando? ¡Apúntate ya!