通常のRSAは2つの素数を使いますが、今回は一つだけのようです
from Crypto.Util.number import *
import os
flag = os.getenv("FLAG", "flag{example}").encode()
m = bytes_to_long(flag)
p = getPrime(512)
e = 65537
ct = pow(m, e, p)
print(f"{p = }")
print(f"{e = }")
print(f"{ct = }")
$c \equiv m^e \pmod p$
であるから、
$d \equiv e^{-1} \pmod {p-1}$
$m \equiv ct^d \pmod p$
from Crypto.Util.number import inverse, long_to_bytes
p = 7053006329937394640578809003529950424006540078407576710977610896377332570587931209266308841802166045389105874282224525157800335000482365019181031916131567
e = 65537
ct = 1207620648204721029719345249590236571809041832424398358565952316975026187064905972160827378199683620133257513725775137874934857698854513919128707181952938
d = inverse(e, p-1)
m = pow(ct, d, p)
print(long_to_bytes(m))