Exemple #1
0
 def pq(self):
     p, q = gen_pq(self.bits)
     n = str(p * q)
     g_phi = (p - 1) * (q - 1)
     p, q = map(str, (p, q))
     self.plainTextEdit.setPlainText(p)
     self.plainTextEdit_2.setPlainText(q)
Exemple #2
0
 def initializePage(self):
     print g_bits
     print g_text
     p, q = gen_pq(int(g_bits))
     global g_p
     global g_q
     global g_phi
     g_p, g_q = p, q
     n = str(p * q)
     g_phi = (p - 1) * (q - 1)
     p, q = map(str, (p, q))
     self.plainTextEdit.setPlainText("%s\n(%s cijfers)" % (p, len(p)))
     self.plainTextEdit_2.setPlainText("%s\n(%s cijfers)" % (q, len(q)))
     self.plainTextEdit_3.setPlainText("%s\n(%s cijfers)" % (n, len(n)))
Exemple #3
0
def make_keys(bits=1024):
    p, q = gen_pq(bits)
    n = p * q
    phi = (p - 1) * (q - 1)
    print phi
    for e in [3, 5, 17, 257, 65537]:
        if GGD(phi, e) == 1:
            break
    print e
    x = inverse(e, phi)
    d = x % phi
    print 'd =', d

    return (n, e), (n, d)
Exemple #4
0
from priem import gen_pq
from time import time
from factorize import *

adv = False

for w in range(20,91):
    begin = time()
    p, q = gen_pq(w)
    gen_time = round(time() - begin,2)
    n = p*q

    if adv == True:   
        print 'Generated %s bits keys in %s.' % (w, gen_time)
        print 'Primes %s and %s, product %s)' % (p, q, n)

        if w <= 60:
            begin = time()
            s, t = factorize_odd(n)
            tra_time = time() - begin
            print 'Factorized %s into %s and %s by trail in %s' % (n, s, t, tra_time)

        if w > 60:
            tra_time = ''

        begin = time()
        s, t = factorize_pollard(n)
        pol_time = time() - begin
        print 'Factorized %s into %s and %s by trail in %s' % (n, s, t, pol_time)

    else:
Exemple #5
0
        s += 2

def factorize_pollard(n):
    i1,j1 = 1,1
    while True:
        i2 = i1**2+1
        j2 = (j1**2+1)**2+1
        i1,j1 = i2%n,j2%n
        s = GGD((i1-j1),n)
        if s <> 0 and s <> 1 and s <> n:
            return s,n/s

if __name__ == '__main__':
    p = 6021174947
    q = 8655372797

    p, q = gen_pq(100)
    n = p*q

    #listoffactors = factorize_trial_adv(n,1)
    #for item in listoffactors:
    #    print item

    #s,t = factorize_trial(n)
    #print 'De factoren van %s zijn %s en %s.' % (n,s,t)

    begin = time()
    s,t = factorize_pollard(n)
    print 'De factoren van %s zijn %s en %s.' % (n,s,t)
    print time() - begin