Intercambio De Claves De Diffie-Hellman: Protocolo criptográfico

El protocolo criptográfico Diffie-Hellman, debido a Whitfield Diffie y Martin Hellman (autores también del problema de Diffie-Hellman o DHP), es un protocolo de establecimiento de claves entre partes que no han tenido contacto previo, utilizando un canal inseguro y de manera anónima (no autenticada).

Se emplea generalmente como medio para acordar claves simétricas que serán empleadas para el cifrado de una sesión (establecer clave de sesión). Siendo no autenticado, sin embargo, provee las bases para varios protocolos autenticados.​ Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmos discretos en un cuerpo finito.​

El método fue lleva el nombre de los criptógrafos Whitfield Diffie y Martin Hellman, quienes lo desarrollaron y publicaron en 1976​ y recibieron el prestigioso premio A.M. Turing de 2015 por este trabajo "que revolucionó la seguridad informática".​

Versión básica

El sistema se basa en la idea de que dos interlocutores pueden generar conjuntamente una clave compartida sin que un intruso, que esté escuchando las comunicaciones, pueda llegar a obtenerla.

Para ello se eligen dos números públicos y, cada interlocutor, un número secreto. Usando una fórmula matemática, que incluye la exponenciación, cada interlocutor hace una serie de operaciones con los dos números públicos y su número secreto. A continuación los interlocutores se intercambian los resultados de forma pública. En teoría, revertir esta función es tan difícil como calcular un logaritmo discreto (un sextillón de veces más costosa que la exponenciación usada para transformar los números). Por tanto, se dice que este número es el resultado de aplicar una función unidireccional al número secreto.

A continuación, ambos interlocutores utilizan por separado una fórmula matemática que combina los dos números transformados con su número secreto y al final los dos llegan al mismo número resultado, que será la clave compartida.

Descripción detallada

Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 
Diffie-Hellman.

Para dos partes Alice y Bob, que intentan establecer una clave secreta, y un adversario Mallory, la versión básica es como sigue:

  • Se establecen un primo Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y un generador Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  (​). Estos son públicos, conocidos no solo por las partes. Alice y Bob sino también por el adversario Mallory.
  • Alice escoge Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  al azar, calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , y envía Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  a Bob.
  • Bob escoge Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  al azar, calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , y envía Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  a Alice.

Nótese que tanto Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  como Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  pueden calcular el valor Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo . En efecto, lo podemos demostrar usando las propiedades del grupo Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo :

    Para Alice: Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 
    Para Bob: Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 

Como ambas partes pueden calcular Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , entonces la podemos usar como clave compartida.

Ataques

Ataques pasivos

Un adversario Mallory, que poseyera Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , podría calcular el secreto compartido si tuviera también uno de los valores privados (Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  o Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo ). Obtener Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  o Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  a partir de Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  o Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  invirtiendo la función ( Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo ) es el problema del logaritmo discreto en Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , un problema que se cree intratable computacionalmente siempre que Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  sea un número primo grande de 200 o más dígitos y que no cumplan ciertas características debilitantes.​

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 "hombre en el medio" 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. Basarse en la ocultación de algoritmo simétrico de cifrado no cumple con los principios de Kerckhoffs (la efectividad del sistema no debe depender de que su diseño permanezca en secreto).

Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 
Ataque man-in-the-middle en Diffie-Hellman.

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.

Ejemplo

Alice
Sec Calc
p, g
a
ga mod p
(gb mod p)a mod p
Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 
Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 
=
Bob
Calc Sec
p, g
b
gb mod p
(ga mod p)b mod p
  1. Alice y Bob acuerdan usar el número primo p=23 y la base g=5.
  2. Alice elige un número secreto a=6, luego envía a Bob (ga mod p)
    • 56 mod 23 = 8.
  3. Bob elige un número secreto b=15, luego envía a Alice (gb mod p)
    • 515 mod 23 = 19.
  4. Alice calcula (gb mod p)a mod p
    • 196 mod 23 = 2.
  5. Bob calcula (ga mod p)b mod p
    • 815 mod 23 = 2.

Ejemplo con implementación de cifrado

La necesidad para este ejemplo es: Bob necesita enviarle un texto cifrado a Alice pero sin compartir la clave de cifrado. ¿Cómo lo hace?

  1. Alice elige un número secreto a=6, el número primo p=23 y la base g=5. Luego envía a Bob la llave pública de Alice (ga mod p), p y g:
    • 56 mod 23 = 8.
    • 23
    • 5
  2. Bob elige un número secreto b=15, luego Bob calcula la llave de cifrado común (ga mod p)b mod p
    • 815 mod 23 = 2.
  3. Bob cifra, con un cifrador simétrico como AES, el texto claro usando la llave de cifrado generada.
  4. TextoCifrado = CifradorSimetrico ( TextoClaro, 2 )
  5. Bob envía a Alice el texto cifrado y la llave pública de Bob (gb mod p)
    • 515 mod 23 = 19.
    • TextoCifrado
  6. Alice calcula (gb mod p)a mod p
    • 196 mod 23 = 2.
  7. Alice usa esa clave de cifrado generada para descifrar los datos enviados por Bob
  8. TextoClaro = DescifradorSimetrico ( TextoCifrado, 2 )

Valores mucho más grandes de a,b y p se necesitarían para hacer este ejemplo seguro. Dado que es muy sencillo probar todos los valores posibles de gab mod 23 (habrá, como máximo, 22 valores, inclusive si a y b son números grandes).

Obviamente la necesidad de Alice de enviarle a Bob la información cifrada también la cubre la implementación.

Generalizaciones

Aumentando el número de partes

La idea del algoritmo podemos generalizarla a la negociación de claves entre más de dos entidades. Veamos un ejemplo para tres entidades y a partir de ahí podemos aumentar el número de partes de forma fácil:

  1. Las partes (Alice, Bob y Carol) se ponen de acuerdo en los parámetros del algoritmo Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo .
  2. Las partes generan sus propias claves privadas llamadas Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , y Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  respectivamente.
  3. Alice calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y lo envía a Bob.
  4. Bob calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y lo envía a Carol.
  5. Carol calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y la usa como su clave secreta.
  6. Bob calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y lo envía a Carol.
  7. Carol calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y lo envía a Alice.
  8. Alice calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y lo usa como su clave secreta.
  9. Carol calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y lo envía a Alice.
  10. Alice calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y lo envía a Bob.
  11. Bob calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y lo usa como su clave secreta.

Cambiando de grupo

Podemos generalizar el protocolo y sus derivados si en lugar de basarnos en el grupo Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  nos basamos en otros grupos que cumplan las condiciones necesarias para poder aplicar el algoritmo (GDHP<-Generalized Diffie-Hellman Problem)

Formalización

  1. Los usuarios A y B seleccionan públicamente un grupo multiplicativo finito G de orden n y generador Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  cuya operación multiplicación es una operación de una vía (no tiene inversa o difícilmente invertible)
  2. El usuario A genera un número aleatorio a,Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y transmite este elemento a B, manteniendo secreto a
  3. El usuario B genera un número aleatorio b,Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y transmite este elemento a A, manteniendo secreto b
  4. El usuario A recibe Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 
  5. El usuario B recibe Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo  y calcula Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 
  6. A y B poseen un elemento común secreto del grupo Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo 

Ejemplos

Ejemplos de grupos que podríamos usar: El grupo multiplicativo análogo de los campos de Galois Intercambio De Claves De Diffie-Hellman: Versión básica, Generalizaciones, Usos prácticos del protocolo , el grupo de puntos definidos por una curva elíptica sobre un cuerpo finito.

Usos prácticos del protocolo

  • La red para anonimato Tor usa el protocolo Diffie Hellman, sobre una conexión TLS de una capa inferior previamente establecida, para procurarse claves de sesión entre el cliente y los nodos de enrutamiento de la red. Esas claves son usadas para cifrar las capas de cebolla de los paquetes que transitan por la red.
  • El protocolo Off-the-Record Messaging (OTR) para comunicación de mensajería instantánea se apoya​ en el protocolo Diffie-Hellman para ir cambiando de clave de cifrado según se van intercambiando los mensajes.

Referencias

Bibliografía adicional

  • Menezes, A.J., P.C. van Oorschot y S.A. Vanstone. Handbook of Applied Cryptography. Boca Raton, Fl.: CRC Press, 1997.
  • Diffie-Hellman Key Agreement Method, doi:10.17487/RFC2631, RFC 2631 .

Tags:

Intercambio De Claves De Diffie-Hellman Versión básicaIntercambio De Claves De Diffie-Hellman GeneralizacionesIntercambio De Claves De Diffie-Hellman Usos prácticos del protocoloIntercambio De Claves De Diffie-Hellman ReferenciasIntercambio De Claves De Diffie-Hellman Bibliografía adicionalIntercambio De Claves De Diffie-HellmanMartin HellmanProtocolo criptográficoProtocolos de establecimiento de clavesWhitfield Diffie

🔥 Trending searches on Wiki Español:

Road House (película de 1989)Hazbin HotelConcepción CascajosaSemana Santa en SevillaMano de hierro (serie de televisión)PeléAristótelesAlicia BorracheroGerard PiquéTorrijaCaso Asunta BasterraRMS TitanicLewis HamiltonFederico García LorcaThe WireDía del MarEstoicismoManuel Ruiz de LoperaAccidente de ChernóbilX-Men (serie de televisión)NazismoSuizaOne Life (película)Copa Mundial de Fútbol de 2026Yul BrynnerBreaking BadCharles DarwinHardwareJosé Rivera MartínezXXXTentacionGodzillaElecciones federales de México de 2024XUnión SoviéticaFilosofíaLiga de Campeones de la UEFARobot DreamsKung Fu Panda 4DuneMarlon WayansCráneoÁngel Di MaríaMario Vargas LlosaDescubrimiento de AméricaManuel RosalesZendayaJorge V del Reino UnidoSingapurDwayne JohnsonJujutsu KaisenGuerra de las MalvinasFranco CarboniIsabel II del Reino UnidoFascismoGriselda BlancoSaúl ÁlvarezTurquíaSpy × FamilyBen-Hur (película de 1959)Deutsche WelleEzequiel CarboniSelenaPatrick SwayzeOrganización Mundial de la SaludAnne HathawayShogun (miniserie)ChilePedro SánchezCatalina de GalesEnrique de SussexBaltimoreAmado CarrilloZeusDua LipaFernando AlonsoCris MiróEurocopa 2020🡆 More