HITCON CTF 2019 Quals | not so hard RSA

#RSA #LLL

from Crypto.Util.number import *
from secrets import d, flag
from os import urandom

T = 10
def encrypt(data):
    num = bytes_to_long(data)
    p = getPrime(512)
    q = getPrime(512)
    n = p*q
    assert num < n
    phi = (p-1)*(q-1)
    e = inverse(d,phi)
    a = pow(num,e,n)
    enc = hex(a)
    return (n,e,enc)

print(d.bit_length())
for _ in range(T):
    data = flag + urandom(40)
    print(encrypt(data))