¿Qué es Diffie-Hellman?

¿Qué es Diffie-Hellman?

La comunicación es uno de los pilares fundamentales de la humanidad desde su inicio.

Terminología

  • K .- llave
  • E .- función de encriptación
  • D .- función de desencriptación
  • C .- texto cifrado
  • M .- mensaje en texto plano

Introducción

La comunicación es uno de los pilares fundamentales de la humanidad desde su inicio. Sin embargo, inherente a ella encontramos que también es un requerimiento fundamental la necesidad de proteger nuestros mensajes de terceras partes. Para esto históricamente hemos recurrido a varios métodos por ejemplo, los cifrados: Atbash, Escítala, César, ROT13.

Tabla 1. Comparativa algoritmos de cifrado

Estos métodos tienen una característica común: es necesario conocer de antemano la “llave” con la cual se podía obtener el texto original a partir del texto cifrado. Por ejemplo, el número de caracteres usado para el desplazamiento o la longitud y ancho de la vara para enrollar la cinta o el caracter correspondiente por el que debía reemplazar el texto original. Ésta era una premisa básica de estos protocolos.

En 1945, Claude E. Shannon (considerado por muchos como el padre de la criptografía matemática), escribe un artículo denominado “A mathematical theory of cryptography” que fue publicado por el Bell System Technical Journal in 1949. Es comúnmente aceptado que este paper fue el inicio de la criptografía moderna, Shanon identificó los dos objetivos principales de la criptografía: sigilo y autenticidad. El trabajo de Shannon influyó la investigación criptográfica de otros autores incluyendo Whitfield Diffie y Martin Hellman.

Posteriormente se implementaron otros tipos de protocolos. Su división principal es establecida como:

  • Algoritmos simétricos
  • Llave pública

Los algoritmos simétricos también llamados algoritmos convencionales son aquellos donde la llave de encriptación y desencriptación es la misma. Es importante notar que la seguridad de los algoritmos simétricos reside en la llave, ya que de ella depende el cifrado del texto. De esta forma, la llave deberá permanecer secreta para que la comunicación permanezca secreta. Así se cumple que:

“Encriptar Llave (Mensaje) = Texto Cifrado”

“Desencriptar Llave (Texto Cifrado) = Mensaje”

Por otro lado los algoritmos de llave pública (también conocidos como algoritmos asimétricos) son diseñados de tal manera que la llave de encriptación es diferente de la llave de desencriptación. Estos algoritmos son denominados de “llave-pública” porque la llave de encriptación es pública es decir, el propietario de la llave pública encripta el mensaje, y el receptor, con su llave privada lo desencripta. Suponga que Alicia quiere enviar un mensaje encriptado a Roberto, se cumple que:

“Encriptar Llave pública Roberto (Mensaje) = Texto Cifrado”

Tomando en cuenta que la llave de encriptación y desencriptación son diferentes, para desencriptar el mensaje Roberto usará su llave privada:

“Desencriptar Llave privada Roberto (Texto Cifrado) = Mensaje”

Los primeros investigadores en encontrar y publicar las ideas de criptografía de llave pública fueron Whitfield Diffie y Martin Hellman de la Universidad de Stanford, junto a Ralph Merkle de la Universidad de Berkeley. Ellos se encontraban trabajando de forma independiente en los mismos problemas hasta que se conocieron y empezaron a colaborar.

El primer trabajo publicado en Criptografía de Llave Pública fue en el paper denominado “New Directions in Cryptography” en Noviembre de 1976, versión del IEEE Transactions on Information Theory. Este paper representa las ideas principales de la Criptografía de Llave Pública, incluyendo la generación de firmas digitales y mostró algunos algoritmos para su ejecución, revolucionando el mundo de la investigación en criptografía, que hasta ese momento era controlado en los confines del gobierno. Diffie, Hellman y Merkle obtuvieron posteriormente la patente número 4,200,770 correspondiente a su método de seguridad.

Proceso

Diffie-Hellman es un algoritmo matemático que permite a dos partes producir un secreto compartido a pesar de que no se hayan nunca antes comunicado. Diffie-Hellman es ampliamente usado en varias aplicaciones para encriptar datos, por ejemplo: SSL(Secure Socket Layer), TLS(Transport Layer Security), SSH(Secure Shell) o VPN(Virtual Private Network).

Esto puede ser explicado de una forma bastante gráfica mediante colores:

Imagen 3. A. J. Han Vinck, Introducción a la criptografía pública

En esta imagen se puede apreciar lo siguiente:

  • Alicia y Roberto acuerdan un color común.
  • Alicia selecciona un color que mantiene en secreto.
  • Roberto, de la misma forma, selecciona un color que mantiene en secreto.
  • Cada parte (Alicia y Roberto) mezcla el color en común previamente acordado y genera un nuevo color para cada uno.
  • El nuevo color es enviado a la otra parte.
  • Alicia y Roberto mezcla su color “privado” con el que recibieron de la otra parte y genera un nuevo color que es el mismo para las dos partes. Esto constituye el “secreto común”.

P es un número primo y G es un número predefinido no aleatorio por ejemplo:

Las partes eligen las claves a y b considerando que nadie la divulge públicamente. Idealmente, se memorizan estos números y no son escritos ni almacenados en ningún lado, luego, las partes calculan las claves públicas A y B según sus claves personales.

Ejemplo:

Imagen 4. Ejemplo de implementación Diffie-Hellman

La llave secreta K es calculada individualmente por cada parte.

Hombre en el Medio

El algoritmo Diffie-Hellman en sus primeras etapas tuvo una notoria vulnerabilidad conocida como Man-In-The-Middle. En este ataque, un espía al cual llamaremos “Eva” interviene en una comunicación entre Alicia y Roberto de tal forma que recupera la llave pública de Alicia (A) y envía su propia clave pública (E) a Roberto (reemplazando la de Alicia). Realizando el mismo proceso, intercepta la llave pública de Roberto (B) y envía su propia clave pública (E) a Alicia (reemplazando la de Roberto). En este punto Alicia acuerda una llave secreta con Eva en lugar de Roberto y Roberto acuerda una llave secreta con Eva en lugar de Alicia de tal forma que Eva estará en la capacidad de desenctriptar mensajes de los dos pares reemplazando a cada uno.

La debilidad de este algoritmo radica en que el intercambio de llaves Diffie-Hellman no implementa la autenticación de los miembros. Las soluciones posibles son la inclusión de firmas digitales y otras variantes de protocolo orientadas hacia la autenticación de los pares. De esta forma Alicia estará segura de hablar con Roberto y Roberto con Alicia. Otra posible solución es descartar las llaves después de usarlas así no podrán causar problemas a futuro.

Imagen 5. Hombre en el medio

Conclusión

El algoritmo de encriptación Diffie-Hellman constituye la base de la criptografía moderna. Permite el desarrollo de varias herramientas y tecnologías. Adicionalmente, hace que la seguridad esté en el proceso de encriptación y no en la llave.

Referencias