-
NCSC CTF 2019 [Crypto]Hmm.. write upCTF write_up/NCSC CTF 2019. 2. 8. 23:05
서버를 실행해 보면 다음과 같은 문구가 출력됩니다.
Key값을 찾기 위해서는 a와 b의 값을 알아야 합니다.
a와 b의 값을 찾는 Python코드를 작성해 보았습니다.
1
2
3
4
5
g = 15
p = 9605179
for i in range(0,100):
print(str(i)+" "+str((g**i)%p))
↑ a값구하기.py
1
2
3
4
5
g = 15
p = 9605179
for i in range(0,100):
print(str(i)+" "+str((g**i)%p))
↑ b값구하기.py
디피헬만 알고리즘에 의해서
KeyA = (gb % p)a % p
KeyB = (ga % p)b % p
입니다.
값을 계산해 보면
둘다 값이 7901925가 나옵니다. 해당 키를 가지고 복호화를 해야하는데
문제에서 줬던 python코드가 있습니다.
해당 코드를 보면 AES복호화를 하는거로 보입니다.
AES복호화를 python으로 코드를 작성해 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
from Crypto.Cipher import AES
cipher = 'f9a385a21faa40ae6313d225987b87c554ca0a2e32a42a28a71c1c155ec787d76a4ea9aeb71339335747b91bd50faa99'.decode("hex")
k = 7901925
k = str(k)
while len(k) < 32:
k = '0'+k
c = AES.new(k, AES.MODE_ECB)
result = c.decrypt(cipher)
print result
↑ AES복호화.py
Flag : securinets{Diff13H_4nD_435_EncRypT10N_4R3_FunnY}
'CTF write_up > NCSC CTF' 카테고리의 다른 글
NCSC CTF 2019 [Reversing]Warmup write up (0) 2019.02.08 NCSC CTF 2019 [Crypto]crypto1 write up (0) 2019.02.08 NCSC CTF 2019 [Misc]Baby Hacker write up (0) 2019.02.08 NCSC CTF 2019 [Misc]LOST FLAG write up (0) 2019.02.08 NCSC CTF 2019 [Stegano]BSL write up (0) 2019.02.08