Пример #1
0
 def __init__(self, pBit, qBit, e):
     self.e = e
     while True:
         self.p = self.genP_Q(pBit)
         self.q = self.genP_Q(qBit)
         self.phi = (self.p - 1) * (self.q - 1)
         self.d = RSA.inverse(e, self.phi)
         if (self.d != 1):
             break
     self.n = self.p * self.q
Пример #2
0
    possible_ps = []
    for p in possible_ps_new:
        ok = False
        for q in possible_qs_new:
            if not pq_cant_fit(p, q, fixed_len):
                ok = True
                break
        if ok:
            possible_ps.append(p)
    possible_qs = []
    for q in possible_qs_new:
        ok = False
        for p in possible_ps:
            if not pq_cant_fit(p, q, fixed_len):
                ok = True
                break
        if ok:
            possible_qs.append(q)
 
print("Finished!")
print("p = %X" % p)
print("p_mask = %X" % p_mask)
print("q = %X" % q)
print("q_mask = %X" % q_mask)
print("n = %X" % (p*q))
 
d = RSA.inverse(e, (p-1)*(q-1))
rsa_priv = RSA.construct((p*q, e, d, p, q))
a = rsa_priv.exportKey().decode()
open("recovered.key", 'wt').write(a)