HACKCTF - RSA
2020. 8. 4. 13:40ㆍCTF's Write-up
RSA문제입니다.
예전에 풀이했던 기억이 있어서 예전에 사용했던 코드를 활용해서 풀어보았습니다.
p,q,e,c를 주면 나머지 키들은 쉽게 구할 수 있어서 나름 쉬운 문제였습니다.
hint페이지를 들어가면 위키백과 : https://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8
링크를 주는데, 이곳에 있는걸 식으로 찾고 그 함수만 잘 찾으면 되는 문제였습니다.
코드는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
from Crypto.Util.number import *
p = 165500656692790480820099871308511495889550056248884963056391533737398719640777027536552348753003910353538512236389328276408434154714592616388810121411482595574799223632695324557638432891315001647024573557093357114908462069403023829967780936191142143068307535312844772151507357729244716123687935330409738850181
q = 122141438575770439104084639124669389798489623069980415671656975299923395151301777382093192959734330849008684250930530493655750402979451442939127736597078242925067195617957339753271262399847630938612930834827285581446954616798548644945058711157525778059878711651283927027641401287892466364366504983328484106481
e = 65537
c = 0x4730dcb8284416e44265091248de1ba51ce685ae5ff1276e263f72a1c90e34bcddc0ad1aa7757f1130c2f497b0629fb620e63b0b613ebe82c8b0a8d6f91a6652947f25c026307446cb7552e075e4754f1d60685a2b45e6238d3aca9934e47c0447e06d6162c91f912d14fb262ffce00e59fc8d04cbeb86cc5f087fbfe620b10e4d6a2c7ca9cb2ed315c31ee07b994b38c2827308c82de3b9ca7352505fe9b10a0ab4c81acc8334587f1277647509dca65001ad418f71e537d32bd71c10c89966b91a9426b440f3db5c52d4faf7440fbdae309bdd70769198e64995a6b3fdae748cc5db22dff8aa4fb235af657c96390d923a2b216dc34c07e28c588d8ef7c882
n = p * q
tmp = (p - 1) * (q - 1)
d = inverse(e, tmp)
flag = long_to_bytes(pow(c, d, n))
print flag
|
cs |
실행시키면
flag를 획득할 수 있습니다.
'CTF's Write-up' 카테고리의 다른 글
DreamHack - hook (0) | 2020.08.04 |
---|---|
HACKCTF - UAF (0) | 2020.08.04 |
HACKCTF - AVR Programming (2) (0) | 2020.08.04 |
HACKCTF - Classic Cipher -3 (0) | 2020.08.03 |
DreamHack - out_of_bound (0) | 2020.08.03 |