triptico.com

Un naufragio personal

El algoritmo Diffie-Hellman

El algoritmo Diffie-Hellman permite que dos partes, comunicándose mediante un canal no cifrado, se pongan de acuerdo en un valor numérico sin que un tercero, que tiene acceso completo a la conversación, pueda conocerlo o calcularlo, al menos en un tiempo práctico.

A los interlocutores de esta supuesta conversación los llamaremos Alice y Bob, siguiendo una convención usada en criptografía. Por la misma razón, al tercer elemento que observa la conversación en la sombra e intenta conocer el secreto le llamaremos Eve.

Alice selecciona dos números, que llamaremos q y xa. Bob selecciona otros dos, que llamaremos n y xb. Mediante su canal de comunicaciones no cifrado (que puede ser correo electrónico, postales navideñas o voceando por el pasillo), ambos hacen saber q y n a las partes respectivas.

Alice entonces calcula el nuevo número ya, mediante la fórmula:

 ya = (n ^ xa) % q

Siendo el símbolo del acento circunflejo una potencia (es decir, n elevado a xa) y el símbolo de porcentaje el módulo (es decir, el resto de la división).

De igual forma, Bob calcula su nuevo número yb:

 yb = (n ^ xb) % q

Y de nuevo a voz en grito, Alice y Bob hacen públicos ya e yb.

Ahora Alice calcula un último valor, ka, mediante

 ka = (yb ^ xa) % q

y Bob su correspondiente kb con

 kb = (ya ^ xb) % q

Los números ka y kb son el mismo; los interlocutores tienen ya un secreto compartido, que Eve no sabe, pese a haber tenido acceso a todo el intercambio de información. Alice y Bob pueden ahora usar sus claves para cifrar un mensaje.

Para dificultar que Eve pueda conseguir algo por el método de la fuerza bruta, los números elegidos tienen que ser primos y grandes.

Más información (en inglés)


Ángel Ortega <angel@triptico.com>

Visitor comments

oscar
2011-06-04
esta bueno pero, no le entiendo,se puede explicar con manzanas?