한글 2.X의 암호 크랙 사건한글 2.X의 암호 크랙 사건

Posted at 2007. 1. 9. 18:38 | Posted in 한글 소식_정보_관련 글

아래 3년간의 암호 풀이(http://hangul.tistory.com/115) 글을 올리고나니 옛날 암호 관련된 내용이 생각나 자료를 찾아 보있습니다.

 아마 기억하시는 분들도 있겠지만 많은 분들은 이런 일이 있었는지 기억하지 못하실 겁니다. 한글 관련 블로그를 개설하여 한글 관련 글을 쓰다보니 옛날 암호 관련된 내용이 생각나 자료를 찾아 보있습니다.

지금은 어느 회사에서도 보안이 아주 중요시 되지만 한글 2.1이나 2.5 시절엔 보안에 크게 신경을 쓰지 않았습니다. 암호라는 기능이 들어간 프로그램도 몇되지 않았지요.  한글에서 암호를 지원하였고 강력하다고 소문이 났기 때문에 문서 보안 목적으로도 한글을 많이 사용했습니다. 이때 한글의 암호 문제가 붉어집니다.   한글로 문서를 작성한 곳이 많은데 암호가 크랙되었다니 문서 보안을 위해 한글의 암호를 사용한 곳에서는 문제를 심각해진 것이지요. (크랙에 관한 자세한 내용은 아래 내용이 있으니 아래 내용을 참고합니다.)

이 문제가 전화위복이 되었을까요?  이런 문제가 있다는 걸 모르고 그냥 넘어갔으면 더 많은 문서들이 만들어지고,  그렇다면 더 문제가 심각해졌을 것인데 이 문제로 인하여 보안 구멍을 알게되고 수정을 하게됩니다.

한글 3.0에서 문서의 암호 체계를 늘리고,  중간에 건너 띄는 문서를 읽어 버리는 방법을 쓰지 못하게 수정합니다.  아래 내용에 있듯이 문서 암호가 문서의 헤더 부분에만 있기 때문에 문서 헤더만 건너 띄면 되었는데 암호를 문서 헤더뿐만 아니라 문서 전체에 골고루 퍼지게 만들어 버립니다.  이로인하여 보안문제로부터 안심하고 문서를 작성할 수 있게 됩니다.  믿거나 말거나 통신으로 2.x 대 암호가 발생하여 보안을 중시하는 곳에서는 한글을 3.0으로 업그레이드해 오히려 물건이 더 많이 팔렸다는 말도 있습니다. 진짜로 믿거나 말거나죠.


이번에 한글 2007이 나왔는데 이번에는 조금 더 강력한 암호 기법이 들어가 있군요.  문제가 발생해서가 아니라 더 높은 보안을 요구하는 곳도 있나 보네요.  요새 인터넷 암호를 보면 128비트를 넘어 256비트 암호화까지 하는 걸보면 한글과 같은 응용 프로그램에 이러한 요구를 하는 것도 당연하다고 생각되어집니다. 새로운 암호는 몇 비트 체계인지 모르겠군요. 한단계 더 올라간 128비트일까요? 

그러나 새로운 암호 수준으로 만든 문서는 이전판에서는 읽지 못한다는거...


사용자 삽입 이미지

아래 내용은 "파워해킹테크닉" 이란 책의 417~418페이지 중간 ,422~423페이 까지 내용입니다.

한글 2.x의 암호 크랙 사건 개요

한글의 암호체계의 대해서 한글과 컴퓨터사는 다음과 같이 말한 적이 있다. " 문서잠금 안호기능이 42억 9천 4백 96만 7천 2백 95개의 숫자를 조합해 만든 것이깅 어떤 전문가도 감히 풀수 없다. 이를 푸어 내려면 슈퍼컴퓨터로도 130 년이 걸린다."

이러한 말 때문에 암호 해독의 주인공인 이승욱씨는 언론의 초점이 되고 세인의 관심이 집중했다. 이승욱씨는 전통적인 암호 해독법, 즉 컴퓨터를 이용한 코드 자동입력 소프트웨어를 쓴다는 것은 불가능하다는 것을 잘 알고 있었다. 이 방법은 42억9천4백96만7천2백95개의 숫자를 조합해 만든 한글의 암호체계에는 그다지 큰 의미가 없었기 때문이다.

그래서 이승욱씨는 다른 방법을 생각한 결고, 한글 문서파일의 'hwp2.1..xxxxxx.로 시작되는 머리 부분(헤더)에 암호가 들어 가며 이어 <ENTER>키 코드가 들어가고 본문 내용은 그 뒤에 따라온다는 사실을 알았다. 그는 문서 파일의 이 같은 규칙성에 주목했다. '만일 프로그램이 문서 파일에 처음 나오는 <ENTER> 키 코드 값(16진법으로 0D)을 찾아내 이것 이전 부분에 있는 숫자나 문자(즉 암호)는 무시하고 그 뒷부분만 읽어들이면 원래의 암호는 해독할 필요조차 없어질 것이다'라고 생각했던 것이다.

즉 암호 자체를 해독하는 것이 아니라 암호를 체크하지 못하도록 하는 것이다. 이러한 것은 진정한 의미에서의 암호 해독이라고는 할 수 없지만 대부분의 암호화 방법이 역으로 추적하는 수법들이 통하지 않도록 만들어져 있기 때무에 사용할 수 있는 마지막 무기 라고 할수 있다.


한글 2.5의 암호체게
실제는 이미 오래전에 크랙되었다고 알려졌다. 단지 이승욱씨에 대한 관심은 언론의 스타 만들기였다라는 생각이 짙다.

한글 암호체계의 구멍
한글과 컴퓨터사에서는 한글 2.1의 암호체계는 32BIT 암호체계이며, 그에 따라 키를 무작위로 만들어 풀어 보는 방식으로는 2^32인 약 4억 2천 번의 계산 을 거쳐야 한다고 주장했다. 그러나 비교 코드 16BIT에 해독 코드 16BIT가 있다고 암호가 32BIT 라는 계산한 것은 잘못이다. 실제로 암호를 푸는 데 있어서는 해독 코드만 필요한 것이다.
그러면 무작위로 대조해서 푸는 최악의 방법으로푼다 하더라도 2^16인 약 6만 5천 번의 계산이면 되는 것이다. 6만 5천 번이면 엄청나게 많은 횟수라 생각될 수 있으나 그렇지 않다. 컴퓨터란 말 그대로 계산기이며 엄청나게 빠른 계산을 할 수 있다. 그리고 위에서 알아보았듯이 한글의 암호를 해독하는 데 사용되는 연산은 비트회전 이나 AND 등 덧셈 계산보다 기계가 빨리 할 수 있는 연산에 +.*,/가 약간 섞인 정도 이다. 게다가 계산되는 수 역시 2바이트 정수형 이어서 하드웨어적으로 16BIT XT 이상이면 몽땅 연산이 가능한 수이다. 이렇게 되었을 때 어셈블리어로 일일이 대입해 보는 프로그램을 짠다고 하면 짧게는 몇십 초 길어도 몇 분이면 암호가 풀리게 될 것이다.

어떻게 한글 암호를 풀 수 있는가?
위에서 말했던 결점을 이용하면 암호체계를 풀릴 수 있을 것이다. 그러나 또 하나의 관문이 있다. 한글에서는 해독
코드를 입력 받아서 암호를 푸는 것이 아니다. 암호 문자열을 받아 연산을 거쳐 비교 코드를 만든 후에 비교 코드와 비교하고 그 후에 해독 코드로 문서를 풀게 되어 있어서 해독 코드만 알게 되면 비교 코드를 모르게 되어 암호가 틀렸다는 메시지를 받을 것이고 비교 코드만 알게 된다면 해독 코드로 풀 때 문서가 잘못 풀어져 '문서가 손상 되었습니다.'라는 에러가 나오게 될 것이다. 또한 두 코드를 한번에 모두 구한다고 했을 땐느 4억 2천 번을  모두 돌겨 봐야 구할 수가 있는 것이다. 그러나 이 문제 역시 생각을 어느 정도 해보면 해결이 가능하다.  우선 해독코드를 구하게 되었을때 문자열을 어떻게든 간에 무작위로 만들어서 그 문자열로 해독 코드를 구했을때 맞아 떨어지는 문자열을 기억한 후, 그 문자열을 이용해 비교 코드를 계산으로 구하여 한글 파일의 헤더 부분의 비교 코드가 있는 곳에 써 넣으면 되는 것이다. 그런 후에 한글에서 문서를 읽을 때 앞서 구한 문자열을 입력하면 암호는 풀리게 되는 것이다.
또는 문서 부분을 아예 프로그램상에서 풀어 암호없이 저장하는 방법도 있을 수 있다.

그런데 해독 코드를 구하는 것 역시 문제가 있을 수 있다. 해독 코드를 일일이 만들어 문서 데이터를 풀어나갈 때 풀린 문서의 데이터가 맞는 것인지를 알아낼 방법이 없는 것이다. 이것 또한 생각을 해보면 알 수 있다. 한글의 정상적인 코드는 한글일때 조합형 코드를 뒤바꾼 코드라는 것을 앞에서 언급했다. 문서 파일의 대부분의 첫 부분에는 한글이 있을 것이고 코드를 풀었을 때 조합형 한글 코드가 되는 코드가 몇 퍼센트가 있는지 세어서 어느 기준 이상이면 맞다고 치고 대부분의 문서가 풀리게 된다. 조합형 한글 코드가 되는지 알아보는 방법은 조합형 한글의 원리만 알면 쉽게 알 수 있다. 그러나 문서 중에는 앞부분에 표 또는 그림 외국어 등이 많이 있는 경우가 있다. 이 경우 는 전자의 방법으로 풀 수는 없다. 이경우 한글 문서 파일의 문서 데이터 영역의 구조를 알야 한다. 해독 코드가 틀렸을 경우 전체적으로 틀리게 번역되므로 그 구조 또한 오류가 발생하게 된다. 이것을 알아보는 것이 가장 확실하나 한글 파일의 구조는 공개되어 있지 않으므로 구조를 알아내는 작업을 해야 할 것이다.


 

//

3년간의 암호 풀이3년간의 암호 풀이

Posted at 2007. 1. 8. 19:41 | Posted in 한글 잡답
예전에 PC 통신 하던 시절에 본 글입니다.  그때 하이텔, 나우누리를 사용하였었는데(하이텔은  이전에 KETEL이었다가 KORTEL로 변하고 HiTEL로 변한 다음 지금의 파란에서 인수했죠.) 그때(PC 통신하던 시절) 본 소설입니다. 언제 봤는지 그 시기가 명확하지 않습니다.  그 시절 올라오길 기다리며 본 소설이 퇴마록이었습니다.  이우혁씨가 쓰신 글인데 나중에 영화로 나왔는데 글로는 재밌게 봤는데 영화는 그다지 재미있지 않더군요.  또 하이텔에서 pctools라는 아이디를 쓰는 김현국님 글도 자주 읽었는데 그 분 글에 자주 등장했던 분이 오재철이었는데 지금 DCINSIDE 사장님이시죠.  pctools는 도스 시절에 노턴과 함께 컴퓨터를 관리하는 아주 유명한 유틸리티였습니다.

이 글은 1996년 12월 마이컴이라는 컴퓨터 잡지에 실리기도 했고, 글 쓰신 분은 "사과 전쟁"의 "김은영"님이십니다.

내용이 조금 긴데 한번 읽어보세요. 요새 이것과 비슷한 다른 글도 본 것 같은데 다른 글도 보면 올리도록 하겠습니다.


3년간의 암호풀이



이별

그녀를 마지막으로 본 것은 제대를 불과 몇 달 앞두었을 때였다.
어느 날 면회를 온 그녀는 한참 동안 망설이더니 갑자기 해외로 떠난다고 했다. 그것도 일주일 후에, 나는 도무지 믿을 수가 없었다.

"무슨 얘기야. 대체?"
"가족이 모두 이민 가. 나도 따라갈 거야."
"가지 마. 나를 두고 어떻게..."
"가야 해."
"안돼! 부탁이야!"
"여기 있으면 뭐할 건데. 전부 이민 가는데 나 혼자 남을 순 없잖아."
"......"

그 때 나는 아무 말도 하지 못했다.
나랑 결혼해. 나랑 같이 살아.
하지만 나는 차마 그 말을 꺼내지 못했다. 아직 제대가 몇 달이나 남아 있었고, 대학을 2년 반을 더 다녀야 했다. 그 후 취직이 된다는 보장도 없었다. 전산과이기는 해도 기업체에 별로 인기가 없는 지방캠퍼스인데다가 1학년 때 성적은 바닥권이었다. 영어 실력도 빵점이었다. 그 것을 보충할 다른 뾰족한 실력이 있는 것도 아니었다.
그녀도 말이 없었다. 이렇게 이별하는 건가? 안되는데. 안되는데...

나는 한참 머뭇거리다가 말했다.
"연락처라도 남겨 줘. 제대하면 날마다 전화할께."
"...... 아냐. 안해도 돼."
"왜? 왜 안된다는 거야? 그럼 편지는? 주소라도 가르쳐 줘."
"편지도 하지 마."
"헤어지자는 거구나. 내가 싫어졌니? 다른 남자 생긴 거야?"
"그건 아냐."
그녀는 말을 딱 잘랐다. 슬픈 표정으로 입술을 깨물고 있는 그녀의 얼굴에는 유난히 핏기가 없었다. 고민을 많이 했는지 몸도 무척 야위어 있었다. 약간의 정적이 흘렀고 그녀는 입을 열었다.
"다른 남자 생긴 거. 절대 아냐. 내가 사랑하는 사람은 종화. 너밖에 없어. 하지만 자세한 것은 묻지 말아줘. 부탁이야."
"그런데, 왜 전화조차 안된다는 거야?"
나의 목소리는 다시 높아졌다. 그녀는 힘없이 시선을 아래로 향했다. 순간 그녀의 머리칼에 꽂힌 자그마한 꽃머리핀이 눈에 들어왔다. 내가 첫 휴가를 나갔을 때 같이 거리를 거닐다가 샀던 거였다. 그녀가 입고 온 옷도 그날 내가 선물했던 거였다.

"가지 마. 제발 가지 마. 가더라도 조금 있다가 돌아와 줘."
"날 정말 사랑한다면 내가 돌아올 때까지 기다려 줄 수 있어?"
그녀의 눈에는 어느새 눈물이 가득 맺혀 있었다. 나도 눈물이 치솟으려고 했다.
"그래. 언제까지라도. 네가 돌아만 와 준다면."
나는 굳게 말했다.
"그렇다면 좋아."
그녀는 뜻밖에도 품에서 빨간색 3.5인치 디스켓을 한 장 꺼냈다. 그리고 내 손에 꼬옥 쥐어 주었다.
"여기 우리가 다시 만날 시간과 장소가 적혀 있어. 나는 3년 뒤에 잠깐 귀국할 거야. 그때 이곳으로 찾아와 줘. 그러면 너랑 결혼하겠어."
"정말이야?"
나는 너무 기뻐 환성을 지를 뻔 했다. 결혼이라고? 하느님 감사합니다. 하지만 그녀는 마치 찬물을 끼얹듯이 말했다.
"단, 조건이 하나 있어."
"뭔데?"
나는 약간의 두려움을 가지고 물었다.
"거기 내가 부탁한 것이 몇 가지 적혀 있어. 꼭 그대로 해줘야 해. 알았지?"
"그래 알았어."
"그럼, 잘 있어. 나 지금 가봐야 할 것 같아."
"주현아, 꼭 돌아와 줘. 그때 만나! 널 사랑해!"
"......"


아래아한글 3.0의 암호

그녀는 대답하지 않았다. 그리고 그녀는 울 듯한 표정을 지으면서 내 앞에서 사라져 갔다.

그녀가 종이가 아니라 디스켓에 만남의 장소를 남겨 둔 것이 이상했지만 나는 묻지 않았다. 그보다 나는 오직 그곳이 어디냐는 것에만 관심이 있었다. 우리가 처음 만난 곳일까? 아니면 첫키스를 나누었던 곳일까?
그것을 생각하면서 나는 몇 달 남은 군대 생활을 무사히 마쳤다. 컴퓨터라고는 286도 볼 수 없었던 말단 소총 부대에 있었던 나는 제대할 때까지 디스켓을 열어보지 못했다. 오직 관물대 속에 소중히 넣어 두고 행여나 깨질세라 조심스럽게 간직했다. 그리고 제대하기가 무섭게 나는 제일 먼저 집으로 뛰어 들어와 군복도 벗지 않고 컴퓨터부터 켰다. 설레는 마음을 가라앉히고 그녀가 준 빨간 디스켓을 드라이브에 집어넣었다.

뜻밖에 파일은 두 개가 들어 있었다. 일단 둘 다 하드에 카피했고 곧장 아래아 한글 2.0으로 들어갔다. 그녀가 내게 준 파일 명은 FIRST.HWP와 SJHR.HWP 였다. 나는 FIRST.HWP를 먼저 불러들였다.
아뿔싸! 파일은 3.0으로 저장되어 있었다. 나는 시대가 바뀌었음을 실감하면서 부리나케 친구들에게 전화를 걸었다. 축하주 사준다는 놈들을 마다하고 3.0 버전을 갖고 있는 녀석을 수소문해서 부리나케 그의 집으로 달려갔다. 그와 인사를 대강 나눈 후 곧장 컴퓨터에 디스켓부터 집어넣고 읽기 시작했다. 다행이 도스용 3.0에서 파일이 떴다.
순간 나는 깜짝 놀랐다. 그 내용은 너무 뜻밖이었다.


사랑하는 종화에게.

미안해. 나를 만날 장소는 다음 파일에 적혀 있어. 거기엔 암호가 결려 있는데 넌 그것을 풀어야만 나를 만날 수가 있어. 암호는 영어 소문자로 입력되어 있어. 앞의 세글자는 내 이름의 약자 pjh이고 그 다음에 영어 단어 하나가 있어. 아마 지금 이 글을 보는 너는 무척 실망하고 있겠지. 하지만 분명히 말해 두지만 이건 반드시 너 스스로 풀어야만 해. 나는 네가 풀 수 있다고 믿어. 나를 사랑한다면 직접 풀어 줘. 하지만 만약 3년 안으로 풀지 못하면 포기하도록 해. 그 땐 나를 잊는 것이 좋을 거야.
그리고 토익을 800점을 맞는다면 이것을 푸는데 도움이 될 꺼야.

너의 천사 주현이가.

일순간 나는 멍하게 있었다. 이게 무슨 날벼락이냐!
잠시 후에 나는 무작적 SJHR.HWP을 읽어 들였다. 혹시나 했지만 과연 "암호를 넣으세요"하는 말이 떴다.
나는 무턱대고 pjhangel을 쳤다. 하지만 아니었다. 이어 pjhlove를 쳤지만 역시 아니었다. 나는 당황했다. 정신없이 pretty, honey, marry를 잇따라 넣어 보았지만 모조리 아니었다.

"야, 큰일났다. 이걸 어떻게 하면 좋냐?"
나는 친구에게 자초지종을 설명하고 자문을 청했다. 하지만 그 친구 또한 별로 뾰족한 수가 없었다.
"아래아한글 3.0의 암호를 푸는 방법은 아직 없어. 앞으로 언제 깨어진다는 보장도 없고. 무작정 찍으면 아마 슈퍼컴퓨터로 해도 수백년이 걸릴 거야. 죽을 때까지 해도 가능성이 전혀 없을 걸."
"그럼 그녀가 불가능한 것을 제시해 놓고 나를 버리려 했단 말이니? 아냐. 그럴 리가 없어. 주현이는 절대 그럴 여자가 아니야."
나는 한동안 멍하게 있었다. 한참 후 친구 녀석이 말했다.
"맞아. 너를 속이려고 했던 것 같지는 않아. 만약 너를 속이려고 했다면 텅 빈 디스켓을 주던지, 앞의 세자도 가르쳐 주지 않았던지 했을 거야. '사랑하는 종화'나, '너의 천사 주현' 같은 말도 쓰지 않았을 거고, 원수지고 헤어진 것도 아닌데 일부러 골탕먹이려고 거짓말할리도 없고.
종화야, 그것보다 글이나 차분히 다시 읽어 봐. 거기 무슨 힌트가 있을지도 몰라."
"그래. 맞아, 뭔가 힌트가 있을거야."
나는 차분히 글을 읽어보았다. 몇 번 읽다 보니 이상한 것이 두 가지 눈에 띄기는 했다.
왜 다른 사람의 도움 없이 반드시 내가 풀어야 하는 것일까? 그리고 토익 점수가 무슨 상관이 있을까? 하지만 당장 뾰족한 해답은 떠오르지 않았다.
SJHR.HWP란 파일의 뜻에 무슨 힌트가 있지 않을까 했지만 그 뜻은 도무지 알 수가 없었다.

해킹의 고수

나는 그 다음날부터 당장 암호 풀이에 들어갔다. 우선 제대 기념으로 부모님을 졸라 펜티엄 컴퓨터를 장만했고 도스용 아래아 한글 3.0을 깔았다.
그리고 글자를 입력시키는 수고를 덜기 위해 머리를 썼다. 어차피 앞의 세글자 pjh는 밝혀져 있다. 그것만이라도 자동으로 입력시키면 부담이 적다. 나는 한글의 매크로 기능을 이용해 <alt-1>을 누르면 바로 불러오기부터 pjh까지는 입력될 수 있도록 했다. 그리고나서 나는 다시 찍는 작업에 들어갔다.

beautiful, rose, fine, white, happy, smile....
그중 어느 것도 아니었다. 나도 beautiful과 같은 간단한 단어는 기대하지 않았다. 아마 그녀는 좀처럼 생각하기 힘든, 그러면서도 우리 둘만이 알 수 있는 것을 선택했을 것이다. 하지만 노래, 영화, 책, 요리 할 것 없이 그녀가 좋아하는 모든 것을 동원했지만 허사였다. SJHR 또한 무슨 뜻인지 전혀 알 수가 없었다.

그 때 낙담한 나에게 친구가 어깨를 치면서 말했다.
"너무 서두르지 마. 아직 2년 반이란 기간이 있잖아. 그래도 명색이 전산과인데, 한 번 해킹 프로그램을 만들어 봐. 어쩌면 그녀가 네 컴퓨터 실력을 테스트 해보는 것인지도 모르잖아."
그 녀석의 말을 듣자 퍼뜩 떠오르는 생각이 있었다.
"맞아. 그녀는 전부터 내가 별로 공부를 열심히 하지 않는 것을 안타까워 했어. 아마 내가 직접 풀라거나, 토플을 잘하면 도움이 된다는 것은 그만큼 열심히 해보라는 말 같아. 그래. 한 번 직접 풀어 볼 거야. 반드시 풀어내고야 말거야."
내 결심에 친구는 박수를 보냈다.
"잘 생각했다. 그런데 종화야. 어쩌면 SJHR은 슈퍼 종화 홈런 아닐까?"
"뭐야? 하긴 그럴수도 있겠지. 아무튼 열심히 해봐야겠다."

그 때부터 나는 완전히 다른 사람이 되었다. 나는 일단 서점에서 해킹에 관련된 책들을 모조리 구입했다. 그리고 학교에서 제일 컴퓨터 실력이 뛰어나다는 선배를 며칠간 따라다닌 끝에 2.0을 깨는 프로그램과 난수 발생 프로그램을 얻는데 성공했다.
그 동안 혹시 하는 마음에 그녀의 집에 전화를 걸어 보았지만 이미 이사를 간 후 였다. 방법은 오직 암호를 푸는 수 밖에 없었다. 나는 밤새 책을 보면서 연구했고 낮에는 선배를 쫓아다니면서 노하우를 듣기에 바빴다.
좋아하던 술과 당구, 볼링을 모두 끊었고 TV도 영화도 보지 않았다. 먹고 자는 시간을 빼면 오직 컴퓨터와만 씨름했다.

어느덧 나는 컴퓨터 실력이 부쩍 늘어가기 시작했다. 1년 반이 지났을 때 나는 이미 나를 가르친 선배를 추월했다. 소설 잘 쓰는 친구가 국문과 학점을 잘 받는 것이 아니듯이 학점은 보통이었지만 해킹 실력만큼은 학교에서 첫째가는 고수였다.  나는 수많은 해킹 프로그램의 소스를 분석했고 연습삼아 몇몇 게임의 락을 깨 보기도 했다. 해킹 프로그램을 찾느라고 부지런히 돌아다닌 결과 인터넷 또한 나보다 잘하는 사람이 별로 없었다.
그 뿐 아니었다. 일단 한 분야에 관심을 기울이니까 자연스럽게 컴퓨터에 정이 붙었다. 나는 그래픽을 비롯한 컴퓨터의 다른 기능 또한 잠깐 사이에 제법 상당한 경지에 올랐다. 한편 나는 토익 또한 열심히 들여다 보았는데 암호가 혹시 거기에 나온 단어 중의 하나가 아닐까 하는 생각에서 였다. 하지만 암호는 좀처럼 풀리지 않았다.

어느덧 4학년 2학기가 되었고 나는 순전히 컴퓨터 실력만으로 교수의 추천을 받아 제법 그럴싸한 기업에 미리 취직을 했다. 부모님께서는 흡족해 하셨고 취업난에 시달리는 친구들은 모두 나를 부러워했다.
하지만 막상 나는 조금씩 초조해지는 것을 느끼고 있었다. 이제 4개월 밖에 남지 않았는데, 어떻게 하나?
어느새 시간은 3개월, 2개월, 1개월로 줄어 들어갔다.


undelete

나는 도저히 암호를 풀 방법이 없었다. 통신을 통해서 만났던 S,K,P대의 해커 몇 명도 내 사정을 듣고 같이 나섰지만 소용 없었다. 아래아한글 3.0은 그야말로 난공불락의 금성탕지였다.
떠나간 그녀는 여전히 아무런 소식이 없었다. 절망적이었다. 보름도 채 남지 않았던 어느 날, 나는 술을 취하도록 마셨다. 제대한 후 처음이었다. 그 때 친구 하나가 나에게 뜻밖의 얘기를 해주었다.
"야. 종화야. 며칠 전에 생각난 건데 그 SJHR이란 파일 말이야. 혹시 신조협려 아닐까?"
"신조협려?"
"그래, 거 있잖아. 영웅문 2부. 무척 감동적이니까 안 읽었으면 한 번 읽어 봐. 비디오로도 있는데."
"......"

SJHR. 신조협려. 말은 되는 것 같았다. 그럼 그 소설이 어떤 힌트일까?
나는 친구들과 헤어진 후에 비틀거리면서 집에 들어왔다. 서점에 들러 책을 사려다가 여섯권짜리라길래 주머니 사정상 다음에 사기로 했다. 집에 들어온 나는 습관적으로 컴퓨터 앞에 앉았다.

'주현아. 보고 싶다. 어디에 있니? 난 정말이지 최선을 다했어. 그런데...'
나는 그녀에게 편지를 쓰다가 지워버렸다. 부치지 못할 편지를 왜 쓴단 말인가? 그러나 지운 순간 갑자기 후회스런 마음이 밀려왔다. 지우는 게 아닌데, 그래도 남겨 둘 텐데, 그녀와 관련된 것이라면 뭐든지 나에겐 추억일텐데.
나는 백업 화일을 찾아 편지를 복구했다. 그 때 내 머리 속을 번개처럼 스쳐가는 것이 있었다.

혹시?
그래, 어쩌면 그럴 수도 있어!

술이 확 깨었다. 나는 떨리는 손으로 책상 서랍에서 그녀가 준 빨간 3.5인치 디스켓을 꺼냈다. 2년 동안 어떤 문서도 저장하지 않고 그녀가 준 그대로 소중히 간직한 디스켓이었다. 나는 디스켓을 드라이브에 밀어 넣고 프롬프트를 a로 옮긴 후에 undelete를 쳤다. 잠시 후 영문으로 된 설명과 함께 파일 ?INJOHR.HWP를 복구시킬 것인지를 묻는 메시지가 떴다.
나는 두근거리는 가슴을 가라 앉히면서 y(Yes)를 눌렀다.

가끔 파일 이름을 정해 놓았는데 나중에 바꾸고 싶을 때가 있다. 그런 경우 rename을 하는 경우도 있지만 '새 이름으로 저장'하고 옛날 것을 지우는 경우도 많다. 그럴 때 옛날 것은 undelete하면 살아나게 마련이다. 내가 기대한 것은 그렇게 해서 살아나게 될 파일 중에 어쩌면 중요한 힌트가 될 만한 것이 있을지도 모른다는 거였다.
어쩌면 같은 디스켓에 있는 파일이니까 SJHR.HWP의 백업본이 있을 수도 있고, 그것은 암호가 안되어 있을 수도 있었다. 내용부터 쓰고, 고쳐 쓰면서 옛날 것을 지우고, 그 다음에 암호를 지정하고... 이런 절차로 했다면 충분히 가능성이 있는 얘기였다.

내 예상은 정확히 들어맞았다. ?INJOHR.HWP란 파일이 있었던 것이다. ?INJOHR.HWP는 아마 SJHR.HWP의 처음 이름이었을 것이다. 나중에 바꾸었겠지. 그렇다면 암호가 정해져 있지 않을 가능성은 더욱 높다. 나는 애써 침착해지려고 하면서 복구한 파일을 불러들였다.

순간 나는 깜짝 놀랐다.
차마 믿을 수 없는 말들이 떠올랐다.


나의 사랑 종화

뭐라고 해야 할지 모르겠어. 너를 속인 거...... 용서해 줘. 하지만 그럴 수 밖에 없었어.

너를 마지막으로 찾아갔을 때 난 시한부 삶을 살고 있었어. 만약 그 사실을 말하면 네가 군대 생활 제대로 하지 못할까 봐서... 탈영할까 봐서... 어쩔 수 없이 거짓말을 했던 거야.

그리고 내가 너를 위해 할 수 있는 것이 무엇인지 생각해 보았어. 내가 죽을 목숨이란 것을 알면 넌 분명히 매일 술에 쩔어 살 것 같았어. 그래서 일부러 암호를 장치하고, 그것을 풀게 노력하도록 유도한 거야. 그러면 아마 넌 그것을 풀기위해 컴퓨터 공부를 열심히 할 테니까. 토익 얘기도 그래서 썼던 거였어.

네가 이 것을 읽고 있을 때 나는 이미 죽고 없을거야. 내가 일부러 거짓말로 처음 세글자를 틀리게 가르쳐 줬으니까. 아마 넌 한동안 헛수고를 했겠지. 하지만 연금술사가 금을 제조하는데 실패했어도 화학의 발전을 가져왔듯이, 너의 컴퓨터 실력은 무척 많이 발전했을 거야. 아마 이건 멋 훗일 누군가에 의해 한글 3.0이 깨어질 때 풀리겠지. 어쩌면 그 누군가가 너일 수도 있을 거고. 그랬음 좋겠다.

며칠 전에 신조협려란 책을 보았어. 한 여자가 자신이 죽으면 남자가 따라 죽을까봐 일부러 16년 후에 만나자고 거짓말을 남기고 벼랑에서 뛰어내리는 장면이 너무 가슴이 아팠어.

그럼 열심히 잘 살고 하늘나라에서 만나. 아니면 다음 생에서...
우리 그땐 절대로 이렇게 빨리 헤어지지는 말자. 자꾸 눈물이 나오려고 해.


너만을 사랑했던 주현이가.


//