题目:
from Crypto.Util.number import *
p = getPrime(512)
q = getPrime(512)
flag = b'NSSCTF{******}'
n = p*q
m = bytes_to_long(flag)
e = 65537
c = pow(m, e, n)
print(f'n = {n}')
print(f'p = {p>>100}')
print(f'c = {c}')
'''
n = 64335017257291288694879798080666629573501118113377179370850991421806469826103134483305987256497147128148330360834028920504233940886960965527818740354522230977284177508093687651712761343376265176857120577153061490788347779327206437787594150381508592990273475278503352979893670354730287704989079247190299342871
p = 7550547038897825994210519739007596111285476244196123253081036462313916767780871742001683690783926938603422562506786339392389
c = 63156227746402147833665215816432368072100003179308515827461336094419526246728847463629131014545663919689064970828884371592840335299717484415279040662500514230579275586231051576688620810169339105201465431624989678170362157914366609856305650090630980489686792938272599406165204410721499875713189193728688835223
'''
解题思路:
解答:
n = 64335017257291288694879798080666629573501118113377179370850991421806469826103134483305987256497147128148330360834028920504233940886960965527818740354522230977284177508093687651712761343376265176857120577153061490788347779327206437787594150381508592990273475278503352979893670354730287704989079247190299342871
p = 7550547038897825994210519739007596111285476244196123253081036462313916767780871742001683690783926938603422562506786339392389
c = 63156227746402147833665215816432368072100003179308515827461336094419526246728847463629131014545663919689064970828884371592840335299717484415279040662500514230579275586231051576688620810169339105201465431624989678170362157914366609856305650090630980489686792938272599406165204410721499875713189193728688835223
p = p<<100
PR.<x> = PolynomialRing(Zmod(n))
f = p+x
res = f.small_roots(X=2^100, beta=0.4)
p = int(res[0]) + p
q = n // p
print(q)
#6721550066444528756360879691786852326594768150136608705178509535510621131604573156628481384415496807903345481584053754911989074929680660717971111800882653
d = inverse_mod(65537, (p-1)*(q-1))
m = power_mod(c, d, n)
print(hex(m))
#0x4e53534354467b33366135616534382d663238312d343537362d386431662d6163616230363636626666327d
#NSSCTF{36a5ae48-f281-4576-8d1f-acab0666bff2}