Algoritmo RSA, comunicación de Bob y Alice:
Generar n = p × q, que ambos p y q sean primos.
se usa como el módulo para ambas claves, pública y privada
Bob realiza el cifrado(e, n): e es la clave publica (public key from Alice); c = m^e mod n.
e (entero positivo menor que n) debe de ser relativamente primo (coprimo) con ɸ(n) y menor que esta.
Alice decifra(d, n): es la clave privada(private key from Alice only she knows); m = c^d mod n.
es dividido exactamente por ɸ (n)
Requisito: e × d ≡ 1 mod ɸ (n);
ɸ(n) = (p - 1) × (q - 1)
m^e × d ≡ m mod n debido al teorema de Euler.
Alice envía a Bob una caja con una cerradura abierta, de la que solo Alice tiene la llave. Bob recibe la caja, escribe el mensaje, lo pone en la caja y la cierra con su cerradura (ahora Bob no puede leer el mensaje). Bob envía la caja a Alice y ella la abre con su llave. En este ejemplo, la caja con la cerradura es la «clave pública» de Alice, y la llave de la cerradura es su «clave privada».
Descripcion:
Programa en Python que realiza el protocolo de la comunicación entre Alice y Bob utilizando el algoritmo RSA para cumplir con la autenticacion:
para este caso (cifrado)
F(x) = m^e mod n ,(decifrado) F(x)
m = c^d mod n
, (la funcion que ambas partes de la comunicación tendran sera la del ejemplo anterior ).
El host envía a Alice una entrada al azar.
m
Alice realiza algo basado en esta entrada, y
encripta el resultado con su clave privada.
m^d mod n
El servidor descifra con la clave pública de Alice,
calcula, y se compara.
m = c^e mod n.
Si coincide, Alice es de confianza para entrar en el host.
Alice también puede desafiar al anfitrión de manera similar para poder
confiar en él.
CÓDIGO
PANTALLAS
Mejoras Futuras
Terminar el programa para cumplir con la siguiente tarea.
Terminar el programa para cumplir con la siguiente tarea.
Referencias
Falta el código por completo... 2 pts por avance parcial.
ResponderBorrar