Skip to content

Latest commit

 

History

History

simple_rsa

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

simple_rsa:crypto(暗号):100pts

難易度:★★★
pycryptodomeを使いましょう

output.txt

Solution

問題名から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が得られた。

KogCTF2023{1_Lik3_RSA!!}