최근 수정 시각 : 2024-02-29 00:28:47

코드북 암호

1. 개요2. 별도의 코드북이 있는 경우의 예시3. 코드북이 평범한 책인 경우4. 매뉴얼 프로텍트
4.1. 사용된 사례들
5. 같이 보기

1. 개요

Codebook Encryption

암호의 한 가지 방법. 미리 숫자와 단어의 쌍으로 이루어진 코드북(난수표)을 만들어서 암호문을 교환하는 것으로 해독이 어렵고 안전성이 높기 때문에 군용으로 널리 쓰였다.

코드북을 1회용으로 하면 원타임 패드 암호(ONE-TIME PAD ENCRYPTION)가 되며 수학적으로 원타임 패드를 깨는 것은 불가능하다.[1] 하지만 현실적으로 매번 코드북을 갈아치우는 것은 어려우므로 코드북이 두꺼운 책이어서 매번 다른 페이지를 사용하는 식이 아니라면 자연히 같은 페이지를 여러번 재사용하기 마련인데 재사용 횟수가 많아지거나 하면 코드북 없이도 결국 빈도분석 등으로 내용을 부분적으로 해독할 수 있게 된다. 그래서 가능하다면 정기적으로 코드북을 교체해서 안정성을 유지하려 애쓴다.

2. 별도의 코드북이 있는 경우의 예시

예를 들어, 다음과 같은 코드북을 만들어서 암호를 보내는 쪽과 암호를 받는 쪽에서 공유를 한다.
코드 단어
00123 서울역
11210 만나자
이렇게 해두면 "00123 11210"만 전송하면 "서울역에서 만나자"는 메시지를 전달할 수 있으나, 해독할 수 있는 코드북이 없으면 전혀 알 수 없으므로 중간에 도청이 되어도 도청자가 메시지를 해독할 수 없게 된다.

물론 코드가 꼭 저런 식으로 숫자로만 되어 있으라는 법은 없다. 다음과 같은 식으로 일반 문장으로 위장하기 위한 코드북을 만들 수도 있다.
코드 단어
안성탕면 서울역
맛있다 만나자
이렇게 해 두면 "안성탕면은 맛있다"라고 전송하면 "서울역에서 만나자"라는 메시지가 전달되는 것이다. 물론 해독할 수 있는 코드북이 없으면 중간에 도청하더라도 도청자는 그냥 안성탕면이 맛있다는 뜻으로 이해할 수밖에 없다.

다만 코드북이 털리면 끝장난다는 치명적인 문제가 있다. 또 코드북은 복잡할수록 풀기가 힘든 만큼 암기도 힘들어지기에 해독표를 가지고 다녀야 한다. 하지만 잠입이나 전쟁이 길어질수록 소지자가 쫓기거나, 죽거나, 잊어먹거나 해서 노획당할 확률이 높아진다. 그래서 코드북을 만든 쪽도 물에 젖으면 종이와 잉크가 풀어해쳐지거나 코드북 가방을 무겁게 해서 물에 쉽게 가라앉도록 했지만 어디까지나 노획 가능성을 낮출 뿐이다.

제1차 세계 대전, 제2차 세계 대전에서 코드북을 빼앗긴 쪽은 심각한 피해를 입었으며, 특히 독일 국방군일본군에니그마PURPLE이 털려서 치명타를 받고 말았다.

코드북이 털리지 않아도 이 방식을 운용하는 적국이 아국의 전문을 도청한다고 가정하고 역으로 함정을 놓아서 알아내는 방법도 있다. 단 이 방식은 알아낼 수 있는 평문의 정보가 극히 제한적이라는 단점이 존재하지만, 미군은 태평양 전쟁에서 이 방식으로 일본이 다음 공격 목표로 삼은 어느 섬을 지칭하는 암호를 해석해서 역전의 발판을 만들어낸 전력이 있다. 자세한 건 미드웨이 해전 참조.

실제 과거 남파간첩이 난수방송을 해독하던 구식 난수표도 이런 코드북의 일종으로 기름종이에 숫자와 단어의 표가 사전식으로 나열되어 있으며 접어서 지갑에 감출 수 있을 정도다. 송신용으로도 쓸 수 있다. 예를 들어, 1968년 통일혁명당 사건 조사 발표 때, 통일혁명당 조직원이 사용하던 난수표를 당시 중앙정보부가 공개했다. 김일성이 통혁당에 보낸 난수표는 작다못해 현재로 치면 신용카드 1장 크기였다. 앞뒷면을 썼는데 난수방송을 통해 여러가지 정보전달에 사용됐다. 이런 난수표는 짧아서 아무래도 자주 재사용되므로 해독당하기 쉽고 성공한 예도 있다. 통혁당 사건 때 중정이 알아낸 방법은 해독은 아니고 다른 사건으로 조사하다가 통혁당 조직원을 잡았는데 거기서 난수표 소지가 발각되어서 사건이 커진 것이지만. 이후 김일성은 통혁당 사건에 대한 문제를 깨닫고, 김영환한테 매우 큰 난수표를 주면서 난수표에 해당하는 책은 남한에서 알아서 사라고 했다.(...)[2] 여담으로 김영환은 전향하면서 김일성이 준 난수표를 공개하였다.

3. 코드북이 평범한 책인 경우

1990년대 중반까지 북한에서 사용한 방식은 평범한 책을 코드북으로 이용하는 것이다. 예를 들어 장훈 감독의 영화 의형제에서는 북한 간첩 강동원이 한국의 웹메일을 통해 메세지를 수신하고는 그걸 코드북 암호로 풀이하여 지령을 해독한다. 여기서 등장하는 코드북 암호는 성경. 메일은 평범한 비지니스 거래에 대한 내용이지만 그걸 코드북 암호에 대입하여 해독하면 'XXX를 암살하라'는 식의 지령이 도출된다.

셜록 홈즈 장편 공포의 계곡 도입부에서는 권위있는 연감[3]을 이용한 코드북 암호가 등장한다. 이 경우 대응되는 코드북에 없는 인명과 지명은 그대로 영어로 적어두었다.

실제 사례의 경우로는 1994년 '구국전위' 간첩단 사건이 있다, 당시 안기부는 압수한 플로피디스켓에서 암호를 얻어냈는데 암호 내용에는 '21106 / 22211 / 161102 / 143431'이 반복되고 있었다. 이후 안기부는 이것이 한림출판사 일한사전에 대응되며 그 뜻은 '구국전위'임을 알아냈다.
숫자 글자
21106 211쪽 6번째
22211 222쪽 11번째
161102 1611쪽 2번째
143431 1434쪽 31번째

2010년대 중반부터 북한은 대남 난수 방송을 다시 개시했는데 대체적으로 이런 식의 멘트를 사용한다.
지금부터 탐사 XX조에게 OO학과 관련된 복습 과제를 알려 드리겠습니다. 문제를 알려 드리겠습니다. XXX 페이지 OO번, XXX 페이지 OO번, ...(중략)... 이상입니다.

4. 매뉴얼 프로텍트

PC 게임에는 DOS 시절 정품 패키지에 첨부된 암호표를 이용하여 암호를 입력하는 정품 인증 방식이 있었다. 정식 명칭은 매뉴얼 프로텍트(Manual Protect). 매체가 플로피 디스크였던 시절에 디스크 프로텍트(Disk Protect)[4]와 함께 많이 쓰였던 방식이다. 정품이 아니라면 코드북에 해당되는 암호표가 없기 때문이다.

그러나 당연하게도 암호표를 베껴서 쓰면 정품 사용자로 속일 수 있다는 문제가 존재하고, 반대로 정품 사용자인데 암호표를 잃어버리면 말짱 도루묵이다. 그래서 더 발전된 인증 수단이 나온 오늘날에 와선 당연히 사장된 방식이다. 물론 당시에도 이런 방법을 알고 있었기 때문에 암호표를 소설책 분량으로 만들어 놓거나[5], 암호표 위에 다른 색깔의 글자를 덧씌우고 해당 색깔의 셀로판지를 통해서 보면 나오는 방법[6]으로 대처를 했다. 아예 암호표가 두꺼운 매뉴얼 그 자체였던 경우도 있었다.

이런 방식은 1990년대 중반 매체가 CD-ROM으로 옮겨가면서 사라졌다. CD-RW가 나올때까지 몇 년의 시간차가 있었기에 초창기에는 CD-ROM의 복제가 어려웠기 때문이다. 인터넷이 발달한 지금에 와선 온라인 인증이 가능해졌기에 더 이상 사용되지 않는다.

쿼런틴 시리즈가 이 방식을 사용했으며(다만 어밴던웨어로 돌아다니는 것은 암호 인증 알고리즘이 작동하지 못하도록 해킹이 된 버전이다. 암호 입력 화면에서 그냥 엔터만 치면 'Welcome to Quarantine'이라는 메시지와 함께 게임이 정상적으로 기동된다.), 손노리의 게임에 등장하는 패스맨이라는 캐릭터가 이 인증을 담당하는 캐릭터였다.

정품 패키지에 첨부된 암호표를 이용한다는 점에 착안해 상당히 특이한 매뉴얼 프로텍트도 많았다. 대만산 MS-DOS게임도 많이 채용했다.

4.1. 사용된 사례들

PC게임
  • 란마 1/2 칠소권 - 대만 소프트스타에서 란마를 무단으로 게임화한 작품. 매뉴얼은 좌표와 색깔 형식으로 되어있는데 좌표에 맞는 색깔을 입력해야되는 방식으로 보인다. 색깔은 적, 황, 청, 백 4종류가 있으며, 백색으로 처리된부분은 개발사 이름(大宇[7] SOFT STAR)을 나타내는 글자다.
  • 망국전기 - 첫 보스 고천마를 꺾은 후, 패스워드를 맞춰야 한다.
  • 무도관(게임) - 각 유파의 문장과 글씨를 맞춰야한다.
  • 배틀 체스 2
  • 손노리 초창기 MS-DOS용 게임들 - 패스맨 참조.
  • 샤키 더 울프
  • 스카이 & 리카 - 소프트맥스의 초기작. 암호입력화면에서 특정한 스프라이트와 색상표가 뜨는데, 매뉴얼 뒷부분의 암호표는 각종 스프라이트와 해당 스프라이트에 대응되는 색조합으로 이루어져있어서 화면에 나타난 스프라이트와 일치하는 색상조합을 찾아서 입력해야한다.
  • 스피드볼 2
  • 원숭이 섬의 비밀 - 돌림판 방식이다.
  • 유니버스 히어로 - 한국에서는 '파이널카운터'라는 제목으로 정식 한글화되어 발매된 대만 Accend사의 대전액션게임. 암호표를 펼치고 셀로판지로 투과해야만 진짜 해당열에 해당하는 숫자가 나온다.
  • 중화프로야구 - 대만 프로야구 리그의 게임화. 이것도 유니버스 히어로랑 비슷하게 셀로판지로 투과한 숫자를 입력하는 방식이라는듯하다.
  • 폭소피구
  • 페르시아의 왕자 1 - IBM-PC판 기준으로 매뉴얼을 찾은다음 특정한 페이지 특정한 문단 특정한 문장에 있는 특정한 단어의 첫글자에 해당하는 물약을 먹어야 지나갈수있는 정품인증스테이지가 있다. 틀린 물약을 먹으면 체력이 닳다가 죽는다.
  • 폴리스 퀘스트 2 - 범인들의 머그샷을 맞춰야한다.
  • 프로토코스 - 실물 코드북을 보고, 패스워드를 맞춰야 한다. 색깔 조합마다 번호가 부여되는데, 실행 화면에서 그 숫자를 입력한다.
  • 천사의 제국 - 대만산 PC RPG게임으로, 스테인드 글라스처럼 특정한 색깔로 부분이 칠해진 그림을 제시하고 특정 그림 파츠와 일치하는 숫자를 맞춰야한다.
  • 하드볼 시리즈 - 하드볼 2,3은 돌림판 형식의 암호를 사용했다.

일반 소프트웨어
  • 길벗 워드프로세서 실기 채점프로그램

5. 같이 보기


[1] 같은 1회용 비밀번호를 사용하는 원타임 패스워드와의 차이점은 원타임 패스워드는 비밀번호만 1회용이고, 알고리즘 및 시드값은 계속 사용하기 때문에 알고리즘과 시드값이 노출되면 얼마든지 복제될 수 있는 하나의 비밀번호를 생성해 내는 기술이고, 원타임 패드는 암호화할 문장과 동일한 길이의 무작위로 만들어낸 암호키와 평문을 XOR연산하여 사용하는 암호체계이다. 따라서 알고리즘이랄 게 존재하지 않아서 수학적인 해독 방법이 전혀 없다. 즉 원타임패드로 A4용지 한 장을 암호화하기 위해서는 A4용지 한 장 길이의 비밀번호가 필요하다. 암호키를 안전하게 전달하는데 필요한 노력이 평문을 안전하게 전달하는 노력과 동일하다는 뜻이다. 따라서 암호키를 안전하게 전달할 수 있으면 평문도 안전하게 전달할 수 있다. 그렇다면 굳이 번거롭게 암복호화 과정을 거칠 필요가 없고, 의미도 없기 때문에 거의 사용되지 않는다.[2] 남한에서 금지되지 않은 책(가령 표준국어대사전)을 사다 코드북으로 쓰고 몇 페이지 몇 개 단어를 전달하는 방식을 난수표로 지급하면 이중 암호화라 해독하는 입장에서도 알아내기 힘들어진다.(1차로 해독해도 "그 책 몇 페이지의 몇 번째 단어") 일일이 마련하느니 현지에서 구하기 쉬운 책을 쓰려 한 듯.[3] 이 에피소드에서는 '휘태커 연감(Whitaker's Almanack)'을 사용하는데, 실존하는 연감이며 1868년부터 현재까지 1년에 한 번씩 발행되고 있다. 매년 새로 발행된다는 사실 때문에, 작중 홈즈는 이전 연감을 사용해야 하는데 당해 연감을 사용해 암호를 해독하려 하다가 낭패를 보았다. 암호를 푸는 시점이 막 새해가 된 1월 4일이라 헷갈린 만 했다.[4] 플로피 디스크를 특정한 기술로 복사 불가능하게 만들거나 복사를 해도 실행이 안 되도록 하는 방법이었다.[5] 필기로 베끼자니 토씨 하나 안 틀리고 베껴야 하는데 그 분량의 압박이 대단하고, 그렇다고 복사기로 베끼자니 복사료의 압박이 만만치 않다.[6] 이러면 복사기로 복사가 안 된다. 셀로판지 대고 일일이 베끼는 방법밖에 없다.[7] 대우그룹과는 무관하다.