본문 바로가기

writeup/Wargame

Dreamhack / Reverse Engineering / rev-basic-9 (Hint)

힌트 or 재미있었던 점

 

입력값을 암호화할 때 어떤 Table을 사용하여 치환하는 연산을 하는데

여기에서 사용된 테이블은 아래 위키디피아 문서의 Foward S-box 문단에서 표로 올라와 있는 AES S-box이다.

결정적인 힌트인 것은 아니지만 그래도 구글링하면서 많은 재미있는 지식을 공부할 수 있었다.

 

  • S-box가 뭐지?
  • S-box를 왜 사용하는 거지?
  • S-box를 다른 연산과 연계해서 사용했을 때 어떤 효과를 만들어낼 수 있을까?

 

en.wikipedia.org/wiki/Rijndael_S-box

 

Rijndael S-box - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search The Rijndael S-box is a substitution box (lookup table) used in the Rijndael cipher, which the Advanced Encryption Standard (AES) cryptographic algorithm is based on.[1] Forward S-box[

en.wikipedia.org

 

해당 문제에서 사용하는 알고리즘으로 문자열을 암호화하여 나온 암호문을 정말 평문으로 되돌릴 수 있을까?

결론만 말하면 평문으로 되돌릴 수 있다. 실제로 플래그를 구하고 사이트에서 인증했다.

 

 

문제를 어떻게 풀 수 있을까?

암호화하는 과정을 잘 살펴보고 역산하는 방법에 대해서 곰곰히 생각해보세요...라고 말하고 끝내기는 조금 그렇고..

문제를 풀 때 아래와 같은 목표를 정하고 문제를 풀었으니 참고했으면 좋겠다.

 

  1. 암호화 적용 중인 문자열의 두 문자(하나는 암호화되고 하나는 암호화되지 않았다.)를 대상으로 평문 조각 구하기
  2. 1번 암호화된 문자열을 대상으로 평문 구하기(단 첫 번째 문자가 평문일 때 값을 알고 있다고 가정한다.)
  3. 1번 암호화된 문자열을 대상으로 평문 구하기
  4. 16번 암호화된 문자열을 대상으로 평문 구하기