#!/usr/bin/python
import math
import random
def esPrimo(num):
for x in range(2, int(math.sqrt(num))+1):
if num%x == 0:
return False
return True
def gcd(x, y):
while y:
x, y = y, x%y
return x
def gcde(a, b):
if b == 0:
return [1, 0, a]
else:
x, y, d = gcde(b, a%b)
return [y, x - (a//b)*y, d]
def generaPrimo():
while True:
num = int(random.uniform(10,99))
if esPrimo(num) == True:
break
return num
def generaE(phi_n):
e = generaPrimo()
if(gcd(phi_n, e) == 1):
return e
else:
generaE(phi_n)
def main():
usuario = raw_input("Escribe un usuario: ")
p = generaPrimo()
q = generaPrimo()
n = p*q
phi_n = (p-1)*(q-1)
e = generaE(phi_n)
lista = gcde(phi_n, e)
d = lista[1]
if d < 0:
d = d + phi_n
print "n = " + str(n) + " d = "+ str(d) + " e = " + str(e)
escribe_cliente = str(usuario) + " " + str(e) + " " + str(n) + "\\n"
f1 = open("Claves-Server.txt", "a")
f1.write(escribe_cliente)
f1.close()
archivo = str(usuario) + ".dat"
escribe_usuario = str(usuario) + " " + str(d) + " " + str(n) + "\\n"
f2 = open(archivo, "a")
f2.write(escribe_usuario)
f2.close()
print "usuario creado en " + str(archivo)
main()