RSA small e: cube root attack
Usually, e = 3 in these types of challenges
e = 3
n = 14032038436881280336898829185704565109515011526734201300674681711408886253590042379825198551033387062217858722420996606456354276971314884311744594705176307798545136676457590238339898994629756864717376748239051509573140000465770040426099662302895049690085249796916346155676190791854255022261354271747117915010219715728010888165819116671703149513728470802703663129349250746649738371767772498916032961807811156207636138548518048350808619102036291622510669362992221435287691121524515512732670878399291499568518918543422007722818092935930254368485992136526812629189135531041103292356895711705662754550018622567168384833873
c = 11247756625220942058201479974844561601321862410926257415535381677668483051381144467553m ** e is too small compared to n, and will not “wrap around” as it doesn’t exceed the value of n.
# pip install libnum
from libnum import nroot
# pip install pycryptodome
from Crypto.Util.number import long_to_bytes
e = 3
c = 11247756625220942058201479974844561601321862410926257415535381677668483051381144467553
# Get the nth root of the ciphertext
m = nroot(c, e)
pt = long_to_bytes(m).decode()
print(pt)
# "Hello world!"