Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:06:53) [MSC v.1600 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> ================================ RESTART ================================ >>> >>> 2**99/10**9 6.338253001141147e+20 >>> 2**99/10**9/60/60/24/365 20098468420665.74 >>> prob_prime(2, 100) 1.0 >>> prob_prime(2, 1000) 1.0 >>> prob_prime(3, 1000) 0.505 >>> prob_prime(3, 100) 0.55 >>> prob_prime(3, 100) 0.38 >>> prob_prime(3, 10000) 0.497 >>> prob_prime(100, 100) 0.03 >>> prob_prime(100, 1000) 0.009 >>> prob_prime(100, 1000) 0.021 >>> prob_prime(100, 10000) 0.0155 >>> prob_prime(200, 10000) 0.0078 >>> prob_prime(400, 10000) 0.0033 >>> ================================ RESTART ================================ >>> >>> find_prime(10) 641 >>> len(bin(641)[2:]) 10 >>> p = find_prime(10) >>> p 751 >>> g, a, b, x, y, key = DH_exchange(p) >>> p 751 >>> g 454 >>> a 515 >>> b 533 >>> x==pow(g,a,p) True >>> x 455 >>> y==pow(g,b,p) True >>> pow(y,a,p) 621 >>> key 621 >>> pow(x,a,p) 78 >>> pow(x,b,p) 621 >>> crack_DH(p,g,x) 515 >>> a 515 >>> p 751 >>> p = find_prime(100) >>> p 1213893880592127421138472665751 >>> g, a, b, x, y, key = DH_exchange(p) >>> g 192264884627919335477352597078 >>> a 1059043820954841801905553783930 >>> b 236157608196923533389949733664 >>> key 145775806300957267954409405387 >>> crack_DH(p,g,x) 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1100000 1200000 1300000 1400000 1500000 1600000 1700000 1800000 1900000 2000000 2100000 2200000 2300000 2400000 Traceback (most recent call last): File "", line 1, in crack_DH(p,g,x) File "F:\t6\primes.py", line 53, in crack_DH if a%100000==0: KeyboardInterrupt >>> a/100000 1.0590438209548419e+25 >>> a/100000/60/60/24/365 3.358205926416926e+17 >>>