Path: blob/master/RSA-encryption/Factorisation-Fermat/Challenges/Crafted-RSA/encrypt.py
1403 views
from Crypto.Util.number import *1from Crypto.PublicKey import RSA2import gmpy23import random4from secret import num_size56seed = 078def genPrime(sz):9global seed10while True:11if seed == 0:12pr = getPrime(sz)13while size(pr) < 1024:14pr *= getRandomNBitInteger(16)15i = 216while i<1000 and size(pr)==1024:17if isPrime(pr+i) and size(pr+i) == 1024:18seed = pr+i19return pr+i20i += 121else:22pr = seed + random.randint(2**100,2**300)23if isPrime(pr) and size(pr) == 1024:24seed = pr25return pr2627p = genPrime(num_size)28q = genPrime(num_size)29e = 2**16 + 130phin = (p-1)*(q-1)31n = p*q3233print "n: ", n34print "p: ", p35print "q: ", q3637flag = open("flag.txt", 'r').read()38flag = int(flag.encode("hex"),16)3940ciphertext = hex(pow(flag, e, n))[2:].replace("L","")41print ciphertext42obj1 = open("ciphertext.txt", 'w').write(ciphertext)434445