document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import socket
  2. import random
  3. import math
  4.  
  5. def euclides(a,b):    
  6.     x = a
  7.     y = b
  8.  
  9.     if (x<y):
  10.         z=x
  11.         x=y
  12.         y=z
  13.  
  14.     gx=x
  15.     gy=y
  16.     u1=1
  17.     u2=0
  18.     v1=0
  19.     v2=1
  20.     u=0
  21.     v=1
  22.  
  23.     while (y != 0):
  24.         q = (x/y)
  25.         r = x % y
  26.         x = y
  27.         y = r
  28.  
  29.         if (r!=0):
  30.             u=u1-q*u2
  31.             v=v1-q*v2
  32.             u1=u2
  33.             v1=v2
  34.             u2=u
  35.             v2=v
  36.     mcd=x
  37.     sv=v
  38.  
  39.     if (u<0):
  40.         u=u
  41.  
  42.     if (v<0):
  43.         v=v
  44.    
  45.     if (sv<0):
  46.         sv=gx+sv
  47.     if (mcd==1):
  48.         return sv
  49.     else:
  50.         pass
  51.  
  52.  
  53. def alice_DesencriptaMensaje(cifrado,d,n):
  54.     print "Alicia ahora puede obtener el mensaje original a partir del texto cifrado"
  55.     return (cifrado**d)%n
  56.  
  57.  
  58. def main():
  59.     p=61
  60.     q=53
  61.     n=p*q
  62.     n_p=(p-1)*(q-1)
  63.     e=17
  64.     d=euclides(e,n_p)    
  65.  
  66.     print "##Cliente##\\n"
  67.     print "p: ",p
  68.     print "q: ",q
  69.     print "e: ",e
  70.     host = "localhost"
  71.     puerto= 9999
  72.     socket1=socket.socket()
  73.     socket1.connect((host,puerto))
  74.  
  75.     print "Alicia manda su clave publica a Bob"
  76.     socket1.send(str(n))
  77.     socket1.send(str(e))
  78.     cifrado=socket1.recv(1024)
  79.     print "\\nAlicia recibe el texto cifrado"
  80.     socket1.close()
  81.     mensaje=alice_DesencriptaMensaje(int(cifrado),d,n)
  82.     print "\\nEl mensaje original es:",mensaje
  83.    
  84.  
  85. main()
');