woonadz :)

[H4CKING GAME] ROX_문제 풀이_crypto_nabi 본문

IT/H4CKING GAME

[H4CKING GAME] ROX_문제 풀이_crypto_nabi

C_scorch 2023. 5. 7. 18:29
반응형

문제가 없다

 

Message = b"\x2d\x5a\x29\x28\x34\x1e\x16\x05\x1d\x26\x17\x01\x12\x30\x01\x0a\x1c\x35\x1d\x16\x1d\x13"

known_plaintext = "?????"
print('-----*-----*-----*-----*-----')
Mlen = len(Message)
Klen = len(known_plaintext)
result = ""

for i in range(Mlen):
    result += chr(Message[i] ^ ord(known_plaintext[i%Klen]))
print(result)

문제 코드는 위와 같다.

 

변수명을 통해 알려진 평문은 이용하여 공격해보는 문제라는 것을 알 수 있다.

 

이 문제의 힌트는 다음과 같다.

1. XOR은 A ^ B = C, C ^ B = A 라는 특성이 있다.

2. known_plaintext = "?????" 를 통해 알려진 평문의 글자 수는 5개라는 것을 알 수 있다.

3. H4CKING GAME 에서 알려진 평문을 생각해본다.

 

평문의 글자 수가 5개라는 것이 알려져 bruteforce 공격으로도 적은 시간내에 풀 수 있다.

하지만 가장 쉽게 푸는 법은 3번을 이용하여 알려진 평문을 생각해보는 것이 아닐까 싶다.

 

flag와 flag로 이어지는 평문은 공개하지 않겠다.

위 3가지를 이용하면 너무도 쉽게 풀린다!

 

반응형