Challenges2010/05/25 15:04
Proneer | Security is a people problem...



DEFCON 18 CTF - Crypto 100 Writeup



# Q :
Decrypt please
Ocmln. up.'g.bjf abanfoco odrgne er yd. ypcjt d.p. /,.nnw urp yd. mroy lapy=v
Ydco y.qy ,ao ,pcyy.b gocbi a ol.jcan t.fxrapew br bry .pirbrmcjw frg aoodayv
WdcbyV Yd. t.f frg ap. nrrtcbi urp co yd. bam.oat. ru ydco t.fxrapev WzdcbyV


Crypto 100번 문제는 주어진 문자열을 디코딩하는 문제입니다.
문자열과 관련한 어떤 대치암호로 생각해 볼 수 있습니다. 널리 알려진 대치암호 방식으로 ROT를 들 수 있는데 ROT 1~26 까지(http://www.halfhill.com/rotator.html) 모두 확인해본 결과 단순한 대치 암호는 아니더군요.

따라서, 알파벳 순서와 관련없는 1:1 대응이 되는 대치암호로 생각해 볼 수 있는데 '.', ',', '/', ''' 와 같이 기호가 포함된 것이 조금 걸리더군요. 흔히 대치 암호를 해독하기 위해서는 알파벳 빈도수를 사용할 수 있습니다. 일반적인 알파벳 빈도수는 다음과 같습니다.
E : 12.31%
T : 9.59%
A : 8.05%
O : 7.94%
N : 7.19%
...

하지만 기호가 있기 때문에 이를 적용하기 어려웠습니다. 그래서 다음으로 자주 쓰이는 단어를 이용할 수 있는데 위의 문자열에서 보면 "yd."이 빈번하게 나오는 것을 확인할 수 있습니다. 이것을 "the"라고 유추할 수 있습니다. 그렇다면 "ydco"는 this, then, that 정도로 변환할 수 있을 텐데 then보다는 this, that 이 가능성이 높겠군요. 이렇게 관련된 문자열을 변환하다 보면 궁극적으로 최종적으로 변환된 문자열을 얻을 수 있을 것입니다.

실제로 이렇게 문자열을 변환해 보았는데 어느 정도 확신을 가질 수 있었습니다. 변환된 문자열에서 다시 유추해서 또 변환하고 하다 보니 어느 정도 변환된 내용을 얻어갈 수 있었습니다. 기쁨에 차서 속도를 높이던 중 누군가 DVORAK 키보드를 사용해 타이핑 한거라고 하더군요. OTL

100번 문제이기 때문에 위의 노가다 대치 변환이 아닐것 같다고 생각했지만, 역시나 센스가 필요한 문제였습니다. 위의 문자열을 QWETY 방식으로 변환(http://wbic16.xedoloh.com/dvorak.html) 하게 되면 다음의 문자열을 얻을 수 있습니다.

Simple frequency analysis should do the trick here [well, for the most part].
This text was written using a special keyboard, no not ergonomic, you asshat.
<hint> The key you are looking for is the namesake of this keyboard. </hint>

결과적으로, 키보드 이름을 대라는 군요. 따라서 키는 dvorak 이었습니다.

c100 Flag : dvorak


저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License
Posted by Proneer

TRACKBACK http://forensic-proof.com/trackback/85 관련글 쓰기

댓글을 달아 주세요