Beispiel #1
0
 def __init__(self):
     """
     Constructor de RSA, aquí se deben de generar los primos p y q
     para que puedan ser vistos por toda la clase, así como la llave
     pública y privada.
     """
     #Aquí también deben de generar su priv_key y pub_key
     self.p = generate_prime(100)
     self.q = generate_prime(100)
     #p = 37
     #q = 61
     self.n = self.p * self.q
     phiN = self.__phi__()
     e = randint(1, phiN)
     d = mcd_and_quoef(phiN, e)
     while not prime_relative(e, phiN) or d < 0:
         e = randint(1, phiN)
         d = mcd_and_quoef(phiN, e)
     self.pub_key = e
     self.priv_key = d
     pub_keyFile = open("pub_key.pem", 'w')
     priv_keyFile = open("priv_key.pem", 'w')
     pub_keyFile.write(str(self.n) + "\n")
     pub_keyFile.write(str(self.pub_key))
     pub_keyFile.close()
     priv_keyFile.write(str(self.n) + "\n")
     priv_keyFile.write(str(self.priv_key))
     priv_keyFile.close()
     self.b = 9
     self.padding_scheme = True
Beispiel #2
0
 def __init__(self):
     """
     Constructor de RSA, aqui se deben de generar los primos p y q
     para que puedan ser vistos por toda la clase, asi como la llave
     publica y privada.
     """
     #Aqui tambien deben de generar su priv_key y pub_key
     self.p = generate_prime()
     self.q = generate_prime()
     self.n = (self.p) * (self.q)
     self.pub_key = self.calculaE()
     self.priv_key = self.modinv(self.pub_key, self.__phi__())
     self.escribePub()
     self.escribePriv()
Beispiel #3
0
 def __init__(self):
     """
     Constructor de RSA, aquí se deben de generar los primos p y q
     para que puedan ser vistos por toda la clase, así como la llave
     pública y privada.
     """
     #Aquí también deben de generar su priv_key y pub_key
     self.p = generate_prime(100)
     self.q = generate_prime(100)
     self.n = self.p * self.q
     aux = self.__phi__()
     while True:
         aux_e = randint(1, aux)
         if (mcd(aux, aux_e) is 1):
             self.pub_key = aux_e
             break
     file = open("pub_key", "w+")
     file.write("(" + str(self.n) + "," + str(self.pub_key) + ")")
     self.priv_key = modInverse(self.pub_key, self.n)
 def __init__(self):
     """
     Constructor de RSA, aquí se deben de generar los primos p y q
     para que puedan ser vistos por toda la clase, así como la llave
     pública y privada.
     """
     self.p = generate_prime(randint(100,256))
     self.q = generate_prime(randint(100,256))
     self.n = self.p * self.q
     self.pub_key = elige_e(self.__phi__())
     self.priv_key = mod_inverse(self.pub_key,self.__phi__())
     self.padding_scheme = False
     
     pub = open('pub_key.pem','w')
     pub.write(str(self.n) + '/n')
     pub.write(str(self.pub_key) + '/n')
     pub.close()
     
     priv = open('priv_key.pem','w')
     priv.write(str(self.n) + '\n')
     priv.write(str(self.priv_key) + '\n')
     priv.close()
Beispiel #5
0
    def __init__(self):
        """
        Constructor de RSA, aquí se deben de generar los primos p y q
        para que puedan ser vistos por toda la clase, así como la llave
        pública y privada.
        """
        #Aquí también deben de generar su priv_key y pub_key

        # Generamos los números primos p y q
        self.p = generate_prime(100)
        self.q = generate_prime(100)
        self.n = self.p * self.q
        self.phi = self.__phi__()
        # Calculamos el número e para la llave pública
        e = self.get_prime_relative()
        # Asignamos la llave pública y privada
        self.pub_key = e
        self.priv_key = mod_inverse(e, self.phi)
        # Creamo los archivos .pem
        pub = self.write_file(self.pub_key, 'pub_key.pem')
        priv = self.write_file(self.priv_key, 'priv_key.pem')
        self.padding_scheme = False
Beispiel #6
0
    def __init__(self):
        """
        Constructor de RSA, aquí se deben de generar los primos p y q
        para que puedan ser vistos por toda la clase, así como la llave
        pública y privada.
        """
        #Aquí también deben de generar su priv_key y pub_key

        self.p = generate_prime()
        self.q = generate_prime()
        self.n = self.p * self.q
        self.phi_n = self.__phi__()
        self.e = self.generaE()
        self.d = self.generaD()
        self.pub_key = self.e % self.n
        self.priv_key = self.d
        """
        e es un numero primo relativo con phi(n)
        d es el inverso de d mod phi(n)
       	genera archivos de las llaves publica y privada. e d congr 1 mod n
        """
        #SE CREA EL ARCHIVO DE PUBLIC KEY
        n0 = str(self.n)
        e0 = str(self.e)
        llave_publica = n0 + "\n" + e0
        #Hay que guardar (n,e)
        out_file1 = open("pub_key", "w")
        out_file1.write(llave_publica)
        out_file1.close()

        #SE CREA EL ARCHIVO DE PRIVATE KEY
        d0 = str(self.d)
        llave_privada = n0 + "\n" + d0
        #Hay que guardar (n,d)
        out_file2 = open("priv_key", "w")
        out_file2.write(llave_privada)
        out_file2.close()
Beispiel #7
0
    def __init__(self):
        """
        Constructor de RSA, aquí se deben de generar los primos p y q
        para que puedan ser vistos por toda la clase, así como la llave
        pública y privada.
        """
        # Aquí también deben de generar su priv_key y pub_key
        self.p = generate_prime()
        self.q = generate_prime()
        self.n = self.p*self.q
        self.pub_key = choose_e(self.__phi__())
        self.priv_key = mod_inverse(self.pub_key, self.__phi__())
        self.padding_scheme = False

        # Se esciben pub_key y priv_key
        f_public = open('pub_key.pem', 'w')
        f_public.write(str(self.n) + '\n')
        f_public.write(str(self.pub_key) + '\n')
        f_public.close()

        f_private = open('priv_key.pem', 'w')
        f_private.write(str(self.n) + '\n')
        f_private.write(str(self.priv_key) + '\n')
        f_private.close()