Está en la página 1de 5

Universidad Don Bosco

Escuela de Postgrados
Criptografía Aplicada

Tarea Individual

Investigación: Diffie-Hellman

Catedrático

Ing. Willis Ezequiel Polanco Caraballo

Alumno
Jonathan Orlando Sura Cárcamo SC100156

Martes 10 de mayo 2022


Protocolo Criptográfico Diffie-Hellman

El intercambio de claves de Diffie-Hellman, también denominado intercambio de claves exponencial, es un


método de cifrado digital que utiliza números elevados a potencias específicas para producir claves de
descifrado sobre la base de componentes que nunca se transmiten directamente, lo que hace que la tarea
de un posible rompe códigos sea matemáticamente abrumadora. Para implementar Diffie-Hellman, los dos
usuarios finales A y B, mientras se comunican a través de un canal que saben que es privado, acuerdan
mutuamente los números enteros positivos p y q, de modo que p es un número primo y q es un generador
de p. El generador q es un número que, cuando se eleva a potencias positivas de números enteros menores
que p, nunca produce el mismo resultado para dos de estos números enteros. El valor de p puede ser
grande pero el valor de q suele ser pequeño.

Una vez que A y B han acordado p y q en privado, eligen las claves personales positivas de números
enteros a y b, ambos menos que el módulo de números primos p. Ninguno de los usuarios divulga su clave
personal a nadie; idealmente, memorizan estos números y no los escriben ni los almacenan en ningún lado.
Luego, A y B calculan las claves públicas a* y b* según sus claves personales de acuerdo con las fórmulas:

𝐴∗ = 𝑞𝐴 𝑚𝑜𝑑 𝑝 y 𝐵 ∗ = 𝑞𝐵 𝑚𝑜𝑑 𝑝

Los dos usuarios pueden compartir sus claves públicas a* y b* a través de un medio de comunicación que
se considera inseguro, como internet o una red corporativa de área amplia (WAN). A partir de estas claves
públicas, cualquier usuario puede generar un número x sobre la base de sus propias claves personales. A
calcula x usando la fórmula:

𝑥 = ((𝐵∗ )𝑎 ∗ 𝑚𝑜𝑑 𝑝) donde B calcula x usando la fórmula: 𝑥 = ((𝐴∗ )𝑏 𝑚𝑜𝑑 𝑝)

El valor de x resulta ser el mismo según cualquiera de las dos fórmulas anteriores. Sin embargo, las claves
personales a y b, que son críticas en el cálculo de x, no se han transmitido a través de un medio público.
Debido a que es un número grande y aparentemente aleatorio, un hacker potencial casi no tiene
posibilidades de adivinar correctamente x, incluso con la ayuda de una computadora poderosa para realizar
millones de pruebas. Por lo tanto, los dos usuarios pueden, en teoría, comunicarse de forma privada a
través de un medio público con un método de cifrado de su elección utilizando la clave de descifrado x.

La limitación más seria de Diffie-Hellman en su forma básica es la falta de autenticación. Las


comunicaciones que usan Diffie-Hellman por sí solas son vulnerables a ataques de hombre en el medio.
Idealmente, Diffie-Hellman debería usarse junto con un método de autenticación reconocido, como las
firmas digitales, para verificar las identidades de los usuarios a través del medio de comunicación público.
Diffie-Hellman es muy adecuado para su uso en la comunicación de datos, pero se usa con menos
frecuencia para datos almacenados o archivados durante largos períodos de tiempo.
Funcionamiento

El funcionamiento de este algoritmo es más sencillo de lo que parece y se usa frecuentemente en protocolos
y aplicaciones de encriptado de datos, como SSL (Secure Sockets Layer), SSH (Secure Shell) o VPN
(Virtual Private Network). Pero veamos con un sencillo ejemplo cómo funciona el algoritmo Diffie Hellman
paso a paso.

Imaginemos que María y Pedro quieren establecer un color secreto entre ambos y que nadie más lo
conozca:
Entonces, María y Pedro deciden un color común. A continuación, tanto María como Pedro eligen otro color,
el cual mantienen en secreto, Ahora, María y Pedro mezclan su color común, y obtienen un nuevo color,
que se envían mutuamente, por último, mezclan el color que han recibido de la otra parte con el que han
mantenido en secreto. Esto genera un nuevo color que será el mismo para ambos. Esto daría lugar a su
secreto, es decir, a la clave Diffie Hellman; Este color resultante será un secreto que solo ellos conocerán,
y otras personas no lo podrán saber, aunque hayan tenido conocimiento de los colores que María y Pedro
se enviaron mutuamente.

Ejemplo
María y Pedro quieren establecer una comunicación segura a través de una red pública. Esta red está
compuesta por tres ordenadores, el de María, el de Pedro y el de Isabel. Sin embargo, María y Pedro no
quieren que Isabel sepa de qué están hablando, entonces, María y Pedro deciden usar un cifrado asimétrico
para establecer un canal de comunicación seguro y privado entre ambos en esa red insegura. Con este
objetivo, usarán el algoritmo Diffie Hellman.

Para ello siguen los siguientes pasos:

Paso 1:

María elige un número primero “P”, por ejemplo, el 31:


A continuación, elige un número “K” que debe ser menor que “P”, por ejemplo, el 10. Este número “K” se lo
envía a Pedro, sin importar que Isabel lo vea, ahora, María elige un número “X” menor que “P” y lo mantiene
en secreto. Ahora calculará el número “A” en base a la siguiente fórmula: A = k^x (mod p). Imaginemos que
el resultado de esa fórmula es “3” (*nota, las cifras usadas no son reales, solo es un ejemplo del
funcionamiento del algoritmo). María envía a Pedro este número “A”, es decir, el 3.

Paso 2:

Ahora es el turno de Pedro de elegir un número “Y” menor que “P” y mantenerlo en secreto.
A continuación, realiza la misma operación que hizo María, para calcular su número “B”. La fórmula sería:
B = k^y (mod p); Imaginemos que le da de resultado 15. Entonces Pedro le envía “B” ´(15) a María.
Paso 3:

Una vez que ambos tienen sus números “A” y “B” llega el momento en que ambos deben calcular la clave
que usarán en común.

María: B^x (mod 31)


Pedro: A^y (mod 31)

Imaginemos que el resultado es 9. Pues esa será la clave que ambos usarán para la comunicación
Evidentemente, estamos utilizando números muy pequeños, con los que a Isabel no le resultaría difícil
descifrar “X o “Y” para así poder calcular “A” y “B”. Sin embargo, hay que tener en cuenta que el algoritmo
Diffie Hellman en la realidad usa números de alrededor de 300 dígitos, por lo que descifrar la fórmula es
casi imposible.

Ataques pasivos y activos


Utilizaremos como las partes que se comunican entre si como Alice y Bob mientras que el atacante es
Mallory, en este caso ejemplificamos un ataque “Man in the middle” el cual es la máxima debilidad del
algoritmo Diffie-Hellman.

• En ataques pasivos:

Un adversario Mallory, que poseyera p, g, A y B, podría calcular el secreto compartido si tuviera también
uno de los valores privados (a o b). Obtener a o b a partir de A o B invirtiendo la función 𝑎 = 𝐿𝑜𝑔 𝑑𝑖𝑠𝑐𝑝 (𝐴)
y 𝑏 = 𝐿𝑜𝑔 𝑑𝑖𝑠𝑐𝑝 (𝐵) es el problema del logaritmo discreto en 𝑍𝑃∗ , un problema que se cree intratable
computacionalmente siempre que p sea un número primo grande de 200 o más dígitos y que no cumplan
ciertas características debilitantes.
• En ataques activos:

El protocolo es sensible a ataques activos del tipo Man-in-the-middle. Si la comunicación es interceptada


por un tercero, éste se puede hacer pasar por el emisor cara al destinatario y viceversa, ya que no se
dispone de ningún mecanismo para validar la identidad de los participantes en la comunicación. Así, el el
atacante en este caso Mallory podría acordar una clave con cada participante y retransmitir los datos entre
ellos, escuchando la conversación en ambos sentidos. Una vez establecida la comunicación simétrica, el
atacante tiene que seguir en medio interceptando y modificando el tráfico para que no se den cuenta.
Observar que para que el ataque sea operativo, el atacante tiene que conocer el método de cifrado simétrico
que será utilizado.

Para evitar este tipo de ataque, se suele usar una o más de las siguientes técnicas:

• Control de tiempos.
• Autenticación previa de las partes. Por ejemplo, usar en protocolo de capa subyacente
autenticación. Podríamos primero establecer una conexión TLS y sobre esa capa aplicar el
algoritmo de Diffie-Hellman.
• Autenticación del contenido. Por ejemplo, podríamos usar MAC sobre el contenido de los
mensajes.
• Cifrando las claves públicas con un algoritmo de clave pública (asimétrico), evitando el
problema de Man-in-the-middle, y a su vez comprobando que la clave pública sea distinta de
0 y 1.
• Usar un tercero (Carol) con el que o bien Alice o bien Bob mantienen un canal seguro. Este
tercero puede detectar el man-in-the-middle
Si Alice o Bob están siendo escuchados/modificados, simplemente desafiando a ambos a una prueba
implicando en dicha prueba la clave pública del otro. Si Mallory tergiversa la comunicación Alice-Bob, y
también la Alice-Carol, no puede tergiversar el canal seguro Bob-Carol y será detectado. Y si tergiversa la
Alice-Bob y la Bob-Carol, no puede tergiversar la Alice-Carol (por definición debe haber algún canal seguro
entre dos de los tres, aunque los otros dos canales sean tergiversados por Mallory). Esto significa que el
método Diffie-Hellman puede crear redes de múltiples nodos 100% seguras, a partir de tan solo dos nodos
previamente seguros. Este método también sirve para testear canales que se sospecha que puedan ser
inseguros.

También podría gustarte