1、题目
from Crypto.Util.number import getPrime, long_to_bytes, bytes_to_long, isPrime, getRandomNBitInteger
from libnum import invmod
def destory(x, num):
while True:
dt = getRandomNBitInteger(num)
r = x ^ dt
if isPrime(r):
return r
flag = "xxxxxxx"
flag = bytes_to_long(flag)
p = getPrime(2048)
q = getPrime(2048)
n = p*q
e = 0x10001
phi_n = (p-1)*(q-1)
d = invmod(e, phi_n)
print "n: ", hex(n)
print "e: ", hex(e)
print "d: ", hex(d)
print "Destory q, p"
new_p = destory(p, 900)
new_q = destory(q, 900)
new_n = new_p * new_q
print "new n: ", hex(new_n)
c = pow(flag, e, new_n)
print "enc_flag: ", hex(c)
'''
n: 0x73cec712124b33c0294e01eb52e8c3cd2fe9ddbcbf457b3b950360063dfae42cbbe9855bd986bcfea0948fadfb252f5e2ff3c982ff47afb6596a496636f1fc5ecfe9f5db7620b23fe9e30d230aa9299ab9a7