Description
Category: Crypto
Source: TAMUctf 2019
Points: 478
Author: Jisoon Park(js00n.park)
Description:
Hey, you're a hacker, right? I think I am too, look at what I made!
-------------------------------> (2531257, 43)
My super secret message: 906851 991083 1780304 2380434 438490 356019 921472 822283 817856 556932 2102538 2501908 2211404 991083 1562919 38268
-------------------------------> Problem is, I don't remember how to decrypt it... could you help me out?
Difficulty: easy
Write-up
RSA 관련 문제이다. 가장 먼저 주어진 것은 public key pair인 것 같다.
modulus가 그리 크지 않으니 bruteforce로 해도 금방 인수분해를 할 수 있을 것 같고, 실제로도 그렇다. 2531257 = 509 * 4973임을 금세 얻을 수 있다.
modulus를 인수분해 한 다음, phi(n)을 구하고 private exponent를 계산하자. 그런 다음 문제에서 주어진 값들을 복호화 해보면 아래와 같은 값들을 얻을 수 있다.
[103, 105103, 101109, 12383, 97118, 97103, 10195, 83105, 12095, 70108, 121105, 110103, 9584, 105103, 101114, 115125]
거의 다 풀은 걸로 생각했다가 여기서 풀이가 막혔는데, 첫번째 값은 ASCII로 해석이 되지만, 두번째 값 부터는 어떻게 flag로 변환시켜야 할지 감이 오지 않았다. 그래서 일단 여기서 접어두고 다른 문제를 풀었는데, 다른 문제의 flag 형식이 gigem{}으로 시작해서 이 문제도 같은 형식이지 않을까 싶어서 gigem을 ascii decimal로 바꿔 봤더니 [103, 105, 103, 101, 109] 였다.
이로 미루어 이 문제에서 주어진 값들은 flag를 두 글자씩 묶어서 ascii decimal을 연접(concatenation) 한 것임을 유추할 수 있었다.
문제에서 주어진 값들을 모두 연접한 후 printable ascii code들이 나올때마다 chr로 변환하여 출력하는 코드를 작성하여 실행하였더니 flag를 얻을 수 있었다.
Flag : gigem{Savage_Six_Flying_Tigers}
'writeups > Crypto' 카테고리의 다른 글
Revolutional Secure Angou (0) | 2019.11.25 |
---|---|
drinks (0) | 2019.11.25 |
Very Smooth (0) | 2019.11.23 |
Simon and Speck Block Ciphers (0) | 2019.11.23 |
Ps and Qs (0) | 2019.11.23 |