Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import gmpy2
- from Crypto.Util.number import *
- def find_n(seed):
- p = gmpy2.next_prime(seed)
- p1 = gmpy2.next_prime(100*p)
- p2 = gmpy2.next_prime(100*p1)
- p3 = gmpy2.next_prime(100*p2)
- return p*p1*p2*p3
- N = 661432982326720220312000264055749897099634058126069682916663983164095399891922239185277584515989571021804685855667350963576552884237075033389449261228025690631313796676189863627781905258968287175185368245091537181600636083142076805504788733126704459028930388517968658736636444935785049391422022025814770038260219959
- c = 65730544585056113196855222491649915283458030302678764492256366948316495562844164405260875181381605385931592293174537287502809335112362051614031281550069787125630668940406746065617547709904187617743835592204030473969255847562554773875593313128402311178757607880009338508747805647372484237195480768305231875020498766
- r = 0
- for i in range(280, 0, -1):
- if find_n(r + 2**i) <= N:
- r += 2**i
- p = gmpy2.next_prime(r)
- p1 = gmpy2.next_prime(100*p)
- p2 = gmpy2.next_prime(100*p1)
- p3 = gmpy2.next_prime(100*p2)
- phi = (p-1)*(p1-1)*(p2-1)*(p3-1)
- d = gmpy2.invert(2**16+1, phi)
- decrypted = int(pow(c, d, N))
- print(long_to_bytes(decrypted))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement