Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. import gmpy2
  2. from Crypto.Util.number import *
  3.  
  4. def find_n(seed):
  5. p = gmpy2.next_prime(seed)
  6. p1 = gmpy2.next_prime(100*p)
  7. p2 = gmpy2.next_prime(100*p1)
  8. p3 = gmpy2.next_prime(100*p2)
  9. return p*p1*p2*p3
  10.  
  11. N = 661432982326720220312000264055749897099634058126069682916663983164095399891922239185277584515989571021804685855667350963576552884237075033389449261228025690631313796676189863627781905258968287175185368245091537181600636083142076805504788733126704459028930388517968658736636444935785049391422022025814770038260219959
  12. c = 65730544585056113196855222491649915283458030302678764492256366948316495562844164405260875181381605385931592293174537287502809335112362051614031281550069787125630668940406746065617547709904187617743835592204030473969255847562554773875593313128402311178757607880009338508747805647372484237195480768305231875020498766
  13.  
  14. r = 0
  15.  
  16. for i in range(280, 0, -1):
  17. if find_n(r + 2**i) <= N:
  18. r += 2**i
  19.  
  20. p = gmpy2.next_prime(r)
  21. p1 = gmpy2.next_prime(100*p)
  22. p2 = gmpy2.next_prime(100*p1)
  23. p3 = gmpy2.next_prime(100*p2)
  24.  
  25. phi = (p-1)*(p1-1)*(p2-1)*(p3-1)
  26.  
  27. d = gmpy2.invert(2**16+1, phi)
  28.  
  29. decrypted = int(pow(c, d, N))
  30.  
  31. print(long_to_bytes(decrypted))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement