2. Un poco de la historia
Whitfield Diffie: nació en Nueva York, EUA, en 1944. Desde niño tenía fascinación
por la matemática y fue esto que acabó estudiando en el MIT - Massachusetts
Institute of Technology, formándose en 1965. Después de esto trabajó en seguridad
de ordenadores, se transformó en un de los pocos especialistas en seguridad
realmente independiente, en 1969, creó el sistema de comunicación en red llamado
de ARPANet.
Martin Hellman: Profesor de la Universidad de Stanford, California.
Merkle: era un refugiado intelectual de un otro grupo de investigación cuyo profesor
no simpatizaba ni un poquito con las ideas ingeniosas de distribución de llaves de
Merkle.
3. El problema de la distribución de llaves
Si dos personas que quieran intercambiar mensajes secretos, ellas necesitan cifrar los
mensajes. Para cifrarlas y descifrarlas, necesitan una llave secreta. Como esta llave
también necesita ser transmitida, tendría que ser cifrada con otra llave, y así
indefinidamente.
Una forma bastante simple de resolver el problema de las llaves sería usar candados.
Digamos que Antonio quiera enviar un mensaje a Belén . El coloca el mensaje en
una caja de metal, cierra la caja con un candado (sólo el tiene la llave de este
candado) y envía a Belén . Belén también coloca un candado en la caja (sólo ella
tiene la llave de este segundo candado) y devuelve la caja para Antonio. Al recibir la
caja, Antonio abre y retira su candado y, nuevamente, envía la caja para Belén .
Ahora, Belén puede quitar su candado, abrir la caja y leer el mensaje.
4. Funciones matemáticas
Si las funciones matemáticas necesarias para cifrar un mensaje tuvieran
un comportamiento igual a lo de los candados, la solución encontrada por
Belén y Antonio sería perfecta. Desgraciadamente, este no es el caso.
Las funciones matemáticas necesitan ser "retiradas" en la orden inversa
en que fueron "colocadas", lo que no es necesario cuando se trata de
candados. A pesar de esto, este fue el punto de partida usado por Diffie y
Hellman
5. El algoritmo Diffie-Hellman
En el inicio de 1976, Hellman estaba analizando un axioma que ya existe hace
algunos centenares de años. La idea era usar la función en la forma de g
x (mod n)
Para que la mágica funcionara, había algunas restricciones:
n>g y g>1
Donde g es la base(debe ser una raíz primitiva en el módulo n)
n es el modulo(debe ser grande, que haya como mínimo 512 bits, debe ser un número
primo y, más importante que esto, (n-1)/2 también debe ser un número primo. Usar 1028
bits sería más seguro)
6. Para obtener las llaves, Belén y Antonio pueden intercambiar informaciones
abiertamente, sin la mínima preocupación con alguien que esté presente o que
eventualmente esté interceptando estas informaciones. En sólo 4 etapas, los dos
tendrán una llave secreta.
7. 1. La elección de la base y del módulo
Inicialmente Belén y Antonio escogen dos números grandes, uno para la
base g y uno para el módulo n, obedeciendo las restricciones citadas
arriba. Esta elección no necesariamente envuelve sólo los dos, más
personas pueden participar del grupo de usuarios. Para facilitar, será
usado un ejemplo con números pequeños y sólo con Belén y Antonio.
Digamos que ellos, durante el intervalo de las clases, hayan concordado
con:
g = 7
n= 11
8. 2. La elección de los exponentes
Después, en la privacidad de su casa, Belén escoge una exponente x bien grande.
Este número Belén mantiene cuidadosamente en secreto. Antonio hace la misma
cosa y también mantiene su elección en secreto. De posesión de sus exponentes, los
dos calculan el resultado de la función:
Antonio Belén
-------------------------- --------------------------
x = 6 y = 3
M = 76 (mod 11) J = 73 (mod 11)
M = 117649 (mod 11) J = 343 (mod 11)
M = 4 J = 2
9. 3. El cambio de resultados
El día siguiente, los dos se encuentran nuevamente en el intervalo de las
clases. Antonio entrega el resultado obtenido (M=4) para Belén y este
entrega el resultado que obtuvo (J=2) para Antonio. Más una vez,
ninguno de los dos está preocupado que alguien tome conocimiento de
estos números.
10. 4. El cálculo de la llave secreta
Con el resultado obtenido por el otro, Belén y Antonio vuelven a hacer cálculos en
particular. Usan la misma función sólo que, esta vez, la base usada por Antonio es el
resultado obtenido por Belén y la base usada por Belén es el resultado obtenido por
Antonio. Los exponentes continúan siendo los previamente escogidos:
Antonio Belén
-------------------------- --------------------------
x = 6 y = 3
J' = 26 (mod 11) M' = 43 (mod 11)
J' = 64 (mod 11) M' = 64 (mod 11)
J' = 9 M' = 9.
11. Como en un pase de mágica, ambos llegaron al mismo resultado y ahora poseen una
llave secreta en común
La llave secreta no es más que gxy (mod n). Para confirmar, basta hacer los cálculos:
gxy (mod n) = 76 x 3 (mod 11)
= 718 (mod 11)
= 1.628.413.597.910.449 (mod 11)
= 9.
Aunque se conozca los valores de g , n, M y J no es posible calcular el valor de la llave
secreta. Si usáramos el método de las tentativas (o sea, la fuerza bruta) podremos
encontrar incontables valores que cierran las primeras ecuaciones.
13. Raíz Primitiva
Un número g es la raíz primitiva de un módulo n cuando este número
elevado a las potencias de 1 hasta n-1 (mod n) suministrar todos los
residuos posibles de este módulo. Por ejemplo, 3 es una raíz primitiva de
lo (mod 5) porque:
31 (mod 5) = 3 (mod 5) = 3
32 (mod 5) = 9 (mod 5) = 4
33 (mod 5) = 27 (mod 5) = 2
34 (mod 5) = 81 (mod 5) = 1.
14. Diffie-Hellman extendido
V. S. Miller y Kevin McCurley extendieron este algoritmo para curvas
elípticas y Taher ElGamal usó la idea básica para desarrollar un
algoritmo de encriptación y de firma digital. Además de eso, el protocolo
de cambio de llaves puede ser fácilmente extendido para atender tres o
más personas.
La llave secreta k es igual a gxyz (mod n) y este protocolo puede ser
fácilmente extendido para cuatro o más personas.