Introducción al algoritmo de intercambio de claves Diffie Hellman

El algoritmo de intercambio de claves Diffie Hellman es una de las primeras implementaciones prácticas del intercambio de claves públicas en el campo de la criptografía. El algoritmo de intercambio de claves Diffie Hellman es una de las formas en que puede generar una clave compartida y compartir el secreto entre dos partes de manera que podamos estar seguros de que nadie podrá espiar la comunicación. Hay un hecho importante a tener en cuenta sobre el Algoritmo es que no estamos compartiendo la información en el intercambio, en cambio, estamos creando una clave que luego puede usarse para intercambiar información. Como esta técnica nos permite crear una clave de cifrado con la otra parte, podemos comenzar a cifrar los mensajes en curso y recibirlos. Una establecida, incluso si alguien registra los datos de transmisión, no hay forma de que los datos puedan ser descifrados.

Algoritmo de intercambio de claves Diffie Hellman para la generación de claves

El algoritmo se basa en la criptografía de curva elíptica, que es un método para hacer criptografía de clave pública basada en la estructura algebraica de curvas elípticas sobre campos finitos. El DH también utiliza la función trapdoor al igual que muchas otras formas de hacer criptografía de clave pública. La idea simple de entender el algoritmo DH es la siguiente

1. La primera parte elige dos números primos g y p y se los dice a la segunda parte.

2. La segunda parte luego elige un número secreto (llamémoslo a) y luego calcula g un mod p y envía el resultado a la primera parte, llamemos al resultado A. Tenga en cuenta que el número secreto no se envía para cualquiera, solo el resultado es.

3. Luego, la primera parte hace lo mismo, selecciona un número secreto b y calcula el resultado B similar al

4. paso 2. Luego, este resultado se envía a la segunda parte.

5. La segunda persona toma el número B recibido y calcula B a mod p

6. La primera persona toma el número A recibido y calcula A b mod p

Aquí es donde se pone interesante, la respuesta en el paso 5 es la misma que la respuesta en el paso 4. Esto significa que ambas partes obtendrán la misma respuesta sin importar el orden de exponenciación.

(g a mod p) b mod p = g ab mod p
(g b mod p) a mod p = g ba mod p

El número que ingresamos en los pasos 4 y 5 se tomará como clave secreta compartida. Ahora esta clave se puede utilizar para cifrar los datos que se transmitirán, como blowfish, AES, etc.

Algoritmo Diffie Hellman

1. clave = (Y A ) XB mod q -> esto es lo mismo calculado por B

2. Elementos públicos globales

  • q: q es un número primo
  • a: a <q y α es la raíz primitiva de q

3. Generación de claves para el usuario A

  • Seleccione una clave privada X A aquí, X A

Ahora, Cálculo de clave pública Y A Y A = a XA mod q

4. Generación de claves para el usuario B

  • Seleccione una clave privada X B Aquí, X B
  • Ahora, Cálculo de clave pública Y B Y B = a Xb mod q

5. Cálculo de clave secreta por A

  • clave = (Y B ) XA mod q

6. Cálculo de clave secreta por B

  • clave = (Y A ) XB mod q

Ejemplo

1. Alice y Bob usan números públicos P = 23, G = 5

2. Alice seleccionó la clave privada a = 4 y Bob seleccionó b = 3 como la clave privada

3. Tanto Alice como Bob ahora calculan el valor de xey de la siguiente manera:

  • Alicia: x = (5 4 mod 23) = 4
  • Bob: y = (5 3 mod 23) = 10

4. Ahora, tanto Alice como Bob intercambian números públicos entre ellos.

5. Alice y Bob ahora calculan las claves simétricas

  • Alice: k a = y a mod p = 10 4 mod 23 = 18
  • Bob: k b = x b mod p = 4 3 mod 23 = 18

6. 18 es la clave secreta compartida.

Usos del algoritmo Diffie Hellman

Además de usar el algoritmo para generar claves públicas, hay algunos otros lugares donde se puede usar el algoritmo DH:

  • Cifrado: el algoritmo de intercambio de claves Diffie Hellman se puede utilizar para cifrar, uno de los primeros esquemas para hacerlo fue el cifrado ElGamal. Un ejemplo moderno de esto se llama Esquema de cifrado integrado que proporciona seguridad contra el texto plano elegido y los ataques de portapapeles elegidos.
  • Acuerdo de contraseña autenticada: cuando dos partes comparten una contraseña, se puede usar un acuerdo de clave autenticado con contraseña para evitar que el Hombre en el medio ataque. Este Acuerdo clave puede ser en forma de Diffie-Hellman. Secure Remote Password Protocol es un buen ejemplo que se basa en esta técnica.
  • Secreto directo: los protocolos basados ​​en secreto directo pueden generar nuevos pares de claves para cada nueva sesión, y pueden descartarlos automáticamente al final cuando la sesión también finaliza. En estos protocolos de confidencialidad directa, la mayoría de las veces se usa el intercambio de claves Diffie Hellman.

Ventajas del algoritmo Diffie Hellman

  • El remitente y el receptor no necesitan ningún conocimiento previo el uno del otro.
  • Una vez que se intercambian las claves, la comunicación de datos se puede hacer a través de un canal inseguro.
  • Compartir la clave secreta es seguro.

Desventajas del algoritmo Diffie Hellman

  • El algoritmo no puede ser demandado por ningún intercambio de claves asimétricas.
  • Del mismo modo, no se puede utilizar para firmar firmas digitales.
  • Dado que no autentica a ninguna de las partes en la transmisión, el intercambio de claves Diffie Hellman es susceptible a un ataque de hombre en el medio.

Conclusión

Debido a sus ventajas, el intercambio de claves Diffie Hellman ha demostrado ser un sistema útil de intercambio de claves. Si bien es realmente difícil para alguien espiar la red descifrar los datos y obtener las claves, aún es posible si los números generados no son completamente aleatorios. Además, el sistema de intercambio de claves permite hacer un ataque de hombre en el medio, para evitarlo, ambas partes deben tener mucho cuidado al comienzo del intercambio.

Artículo recomendado

Esta ha sido una guía para el algoritmo de intercambio de claves Diffie Hellman. Aquí discutimos los usos, diferentes algoritmos, ventajas y desventajas. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Algoritmos de aprendizaje automático
  2. Algoritmo de cifrado
  3. Algoritmos de clasificación
  4. Tipos de algoritmos