책 - 네트워크 속의 유령
예전에 아래와 같은 책을 읽은 적이 있었는데요.
이제 시작이야! 해킹과 침투 테스트: THE BASICS
; http://www.yes24.com/24/goods/6310315
해킹의 가장 중요한 첫 단계로 "탐색"을 말하고 있었지만, 사실 저는 크게 와닿지는 않았었습니다. 뭐랄까, "탐색으로 좋은 정보를 얻어내는 것"은 마치 사막에서 바늘 찾기 식의 행운을 바라는 것이라고 보였기 때문인데요.
최근에 ^^
지인의 추천으로 읽은 책에서 그 생각이 싹 바뀌었습니다.
네트워크 속의 유령
; http://www.yes24.com/24/goods/6751127
위의 책은 소설이 아니고, 실제로 한때 미국 사회를 떠들썩하게 했던 "Kevin Mitnick"의 자전적인 내용을 담고 있는 실화입니다. 이 책을 읽다보면, '해커'란 골방에 틀어박혀서 컴퓨터만 만지는 사람이란 인식이 확 달라집니다. ^^
어쩌면, 이 책은 해킹에 관심있는 사람들을 위한 책이라기보다는, "보안"에 관심있는 "회사 임원"들이 읽어야 하지 않을까 싶은 정도입니다. (아울러, 공무원들의 필독서로 지정해야 한다고 봅니다. ^^)
그나저나... 내용 외에 또 다른 재미가 있는데요. 바로 각 장마다 암호화된 텍스트를 풀어내는 것입니다. 저도 ^^ 잠깐 한번 도전해 보았는데요. 일단, 처음 얼마간의 '홀수 장'의 암호는 쉽게 풀 수 있었습니다.
예를 들어 "01 험난한 출발"에 제공된 암호문은 "Yjcv ku vjg pcog qh vjg uauvgo wugf da jco qrgtcvqtu vq ocmg htgg rjqpg ecnnu?"인데요.
암호화 관련 책들을 좀 읽다 보면, 위의 암호문을 처음 보았을 때 대강의 특징들을 잡아낼 수 있습니다. 1) 띄어 쓰기 등으로 볼 때 평문과 1:1 매핑이 되어 있고, 2) 단순 치환의 가능성이 있다는 정도일 텐데요.
게다가, 영어적인 특징을 함께 섞어보면 생각보다 빨리 풀 수 있습니다. 예를 들어... 위에서 2자로 떨어지는 단어들이 있는데 - ku, qh, da, vq - 이들 중의 하나는 "of"를 나타낼 수 있는 확률이 높습니다.
각각 대입해 보았을 때, qh가 of에 매칭되는 것임을 알 수 있습니다. q를 알파벳 순서에 2번 앞으로 당기면 o가 되고, h 역시 2번 앞으로 당기면 f가 된다는 사실입니다.
이 후의 작업에서 결국 평문을 발견할 수 있습니다.
What is the name of the system used by ham operators to make free phone calls?
위의 답은 "01. 험난한 출발"을 읽으면 알 수 있는데요. 바로 "auto patch"입니다.
그런데, 짝수 장은 위의 방법으로 풀리지 않습니다. 예를 들어, 6장의 경우에 문제는 다음과 같고,
Kyoo olxi rzr Niyovo Cohjpcx ojy dn T apopsy?
본문의 내용에서 대문자+5글자, 대문자+6글자로 표현되는 "N..... C......" 패턴의 텍스트는 "Sandra Lambert"라는 것을 알 수 있습니다. 음... 각각의 텍스트에 대한 차이값에서 어떤 패턴을 찾아낼 수 있을까 싶어 구해보았는데요.
S(83) : N(78) = -5
a(65) : i(73) = +8
n(78) : y(89) = +11
d(68) : o(79) = +11
r(82) : v(86) = +4
a(65) : o(79) = +14
L(76) : c(67) = -9
a(65) : o(79) = +14
m(77) : h(72) = -5
b(66) : j(74) = +8
e(69) : p(80) = +11
r(82) : c(67) = -15
t(84) : x(87) = +4
어떠세요? 뭔가 규칙이 보이시나요? 저는... 규칙을 찾지 못했습니다. 일단, 홀수번 암호화가 단순 치환인 것으로 봐서 '고전 암호학'에서 그다지 어렵지 않은 것이 사용되었을 거라고 짐작해 봤지만... 저 단서를 가지고는 해독할 패턴을 찾지 못했습니다.
어쩔 수 없이 검색해 보았는데, 풀이가 나오더군요. ^^
Solving Ghost in The Wires codes
; http://fabiensanglard.net/Ghost_in_the_Wires/index.php
위의 해답을 보기 전에... 혹시 계속 풀어보고 싶은 분에게 힌트를 드린다면, "Vigenere 암호화"를 사용되었다는 것으로 시작하시면 될 것 같습니다. "Vigenere 암호화" 방식이라면 분명 위의 "Sandra Lambert"에서 반복적인 패턴이 나왔어야 하는데... 라고 생각이 된다면... 다시 한번 저 숫자들의 패턴을 뚫어지게 쳐다 보시면 Vigenere 영어의 Ascii 코드 표랑 잘 엮으시면 답이 나올 수 있습니다.
저는 포기했지만, 여러분들은 ^^ 성공하시길 바랍니다.