Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- rom random import randint
- def tprimo(n):
- for i in range (2, n):
- if n%i == 0:
- return False
- return True
- def genera_primo():
- while True:
- n = randint(50,100)
- if tprimo(n):
- break
- return n
- def crea_e(phi):
- e = genera_primo()
- if (mcd(phi,e) == 1):
- return e
- else:
- crea_e(phi)
- def mcd(phi,e):
- if phi%e == 0:
- return e
- else:
- return mcd(e, phi%e)
- def mcde(e,phi):
- a, a1 = 0, 1
- b, b1 = 1, 0
- while phi:
- C = e // phi
- e, phi = phi, e%phi
- a, a1 = a1 - C*a, a
- b, b1 = b1 - C*b, b
- return (a1, b1, e)
- def inverso(e, phi):
- a, q, gcd = mcde(e, phi)
- if gcd == 1:
- return (a + phi) % phi
- else:
- return 0
- def llaves(usuario,d,e,n):
- a =str(usuario)+" "+str(d)+" " +str(e)+ "\n"
- b = str(usuario)+" "+str(d)+" "+str(n)
- arch = open("llaves.txt","a")
- arch.write(a)
- arch.close
- usuario = str(usuario)+".txt"
- arch2 = open(usuario,"a")
- arch2.write(b)
- arch2.close
- def main():
- usuario = raw_input('usuario: ')
- p = genera_primo()
- q = genera_primo()
- n = p * q
- phi = (p-1)*(q-1)
- e = crea_e(phi)
- d = inverso(e,phi)
- llave = llaves(usuario,d,e,n)
- usuario = raw_input('usuario: ')
- p = genera_primo()
- q = genera_primo()
- n = p * q
- phi = (p-1)*(q-1)
- e = crea_e(phi)
- d = inverso(e,phi)
- llave = llaves(usuario,d,e,n)
- print p
- print q
- print n
- print e
- print phi
- print d
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement