jueves, 6 de septiembre de 2012

[CRIPTOGRAFÍA] Diffie–Hellman key exchange

En grupos de 3 personas, nos dimos a la tarea de realizar un ejercicio en el que utilizaríamos el protocolo Diffie–Hellman, así los roles de mi compañeros René y Emmanuel fueron de Alice y Bob, y el mio de Eve, ellos compartieron datos públicamente:

Como Eve, traté de obtener la llave "K" mediante fuerza bruta, osea, checar todas las combinaciones posibles.

Para esto utilicé las formulas siguientes:

X = g^x % p

Y = g^y % p

K = X^y % p = Y^x % p

Así tendría que sustituir "x" y "y" en la fórmula por cualquier número hasta obtener "X" y "Y".

Realicé a mano los problemas ya que era parte de la tarea hacerlos a mano, cosas como elevar un número grande a una potencia grande lo realicé con calculadora.


Obtuve x = 4 y y = 7, cabe mencionar que la "x" de René era x = 13, pero no afecta ya que 4 o 13 ambos resultan en la misma "K", de hecho esto es repetitivo, cada cierto numero de veces encontraremos una "x" o una "y" que resultan en la misma "K", esto se debe a que el generador "g" no es muy eficiente, al menos si cada 9 números hay una "x" o una "y" como en mi caso.


Al final obtuve una K = 5 y lo comprobé:

1 comentario:

  1. No hace falta elevar números grandes a potencias grandes nunca; simplemente vuelvas a multiplicar por g y tomas módulo p. Así el número a multiplicar siempre será < p. Bien; 7.

    ResponderEliminar