難易度:★★★
pycryptodomeを使いましょう
問題名からRSAのようだ。
txtが配布されるので中身を見ると以下のようであった。
c = 6328185724267023228897501876166372432480948996823133953645063703051322000785385821170894778675800521310158348957794013693677172428416727437960491200628041407226477657344101
n = 78474264983395201118682044782288403427720984408381576225930477618272077008998244717401526561786138198834116963365724810200796907368130615094645462367912422534934587241512542556556315940057284356185990765508994161868907317660579193826331603444285152989010702189898503063125902792882631839155208262310001160877
e = 3
c
は素因数分解できないが、e
が小さいことに気付く。
おそらくLow Public Exponent Attackである。
以下のsolver.pyで復号する。
import gmpy2
from Crypto.Util.number import long_to_bytes
c = 6328185724267023228897501876166372432480948996823133953645063703051322000785385821170894778675800521310158348957794013693677172428416727437960491200628041407226477657344101
n = 78474264983395201118682044782288403427720984408381576225930477618272077008998244717401526561786138198834116963365724810200796907368130615094645462367912422534934587241512542556556315940057284356185990765508994161868907317660579193826331603444285152989010702189898503063125902792882631839155208262310001160877
e = 3
m, result = gmpy2.iroot(c, e)
print(long_to_bytes(m))
実行する。
$ python solver.py
b'KogCTF2023{1_Lik3_RSA!!}'
flagが得られた。