miércoles, 3 de julio de 2013

Implementación del RSA en Python,mediante sistema cliente-servidor con sockets

Tarea Realizada para la Materia de Seguridad de la información y criptografía Implementar RSA para validar la autenticacion en Python  mediante cliente-servidor con sockets,[Programa 2 [P2]]



Algoritmo RSA, comunicación de Bob y Alice:

Generar n = p × q, que ambos p y q sean primos.
             n\  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 ndebe 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.
          de-1\  es dividido exactamente por ɸ (n)

Requisito: e × d  1 mod ɸ (n);
         ɸ(n) = (p - 1) × (q - 1)
m^e × d  m mod 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.


Referencias

1 comentario: