암호의 세계
루돌프 키펜한 지음 | 이지북
제1차 세계대전에서 패배한 독일인들은 무엇보다도 국가를 새로이 건설해야 할 과제를 짊어지고 있었다. 1919년 2월 6일, 바이마르 시에서는 바이마르 공화국을 설립하기 위한 국민의회가 열렸다. 국가 건립을 위한 일련의 과정에는 외교에 관련된 업무도 포함되어 있었고, 본국 정부와 해외 주재공관 사이에 비밀 메시지를 교환하기 위해서는 암호체계를 개발해야 했다. 새로운 국가는 도대체 어떤 방식으로 암호를 다루어야 했을까?
그 당시 공무에 주로 쓰이던 암호방식은 평문을 숫자의 행렬로 바꾸고 열쇠도 수로 전환하여 그 두 항목을 10을 넘기지 않고 더해 암호문을 얻어 내는 식이었다. 새로운 암호체계 개발에 착수한 학자들은 기존 암호방식이 얼마나 안전한 지를 확인하는 작업을 먼저 수행했다. 그 결과 40자리, 50자리를 넘는 수식열쇠를 사용한다 해도 제3자에 의한 해독을 완벽하게 막을 수는 없었다. 다만 절대로 반복되지 않는 임의의 숫자를 적용해야만 완벽한 암호문을 보장할 수 있었다. 따라서 외교 업무에는 늘 50쪽짜리 노트가 여러 권 사용되었는데, 각 쪽마다 순전히 우연으로 조합되었을 뿐인 5조에 이르는 숫자가 85개씩 기록되어 있었다. 단 한 쪽도 똑같은 내용이 없으며 한 쪽을 두 번 이상 사용하는 것도 금지되어 있었다. 암호문 한 건이 작성되면 사용된 페이지는 폐기해야만 했다.
시간이 흐르자 이 암호법은 다른 나라에도 도입되었다. 영어권 국가에서는 절대적인 일회성을 빗대어 '원 타임 패드(one time pad)'라고 일컬었다. 정해진 규칙 몇 가지를 엄수한다면 이보다 안전한 암호법은 없을 터였다. 암호문을 아무리 분석해도 열쇠를 추론해 낼 만한 단서가 잡히지 않기 때문이다. 다만 열쇠 텍스트가 너무 방대하다는 것이 단점이었다.
언뜻 보기에는 숫자 여러 개를 특정한 규칙 없이 쭉 나열하는 일이 무척 간단하게 생각될 것이다. '08997321870134'라고 쓰면 그야말로 무작위로 나열한 듯 싶지만 실제로는 무의식적으로 특정 숫자를 '골라서' 쓰게 된다. 사람의 뇌는 숫자를 고를 때 저절로 순서상 바로 앞이나 뒤에 오는 숫자를 선택하게 되며 '일부러' 반복을 피하려고 노력한다. 그에 비해 진짜 우연의 법칙은 앞에 무엇이 선택되었는지 신경 쓰지 않는다. 그렇게 우연이 반복이 되고, 나란히 이어지는 순서가 될 수도 있다. 진정 안전한 열쇠 텍스트를 얻고자 한다면 '인간의 입장에서 본' 우연을 신뢰해서는 안 된다. 인간은 감정의 동물인 탓에 우연의 수를 결코 생산해 낼 수 없다. 진정한 우연의 결과를 얻으려면 모자에 접은 쪽지나 제비를 넣고 뽑든가 주관이 배제된 산술과정에서 나온 해답을 활용하는 수밖에 없지 않을까.
도박이 가진 특성도 상당 부분 이 우연의 기억력을 미신처럼 믿고 있는 도박꾼들의 심리와 관련이 깊다. 룰렛에서 구슬이 무려 100번 가운데 단 한 번도 자신이 건 숫자에 떨어지지 않았다고 "이제는 그럴 때가 되었다."고 생각하는 건 큰 착각이다. 구슬이 지금까지의 불규칙한 방랑생활을 마감하기 위해 노력이라도 한단 말인가? 희망사항대로 공평하게 한 칸씩 다 거쳐가는 것이 가장 기특한 룰렛 판이라고 믿는 사람보다 더 어리석은 인간은 없을 것이다.1609년에서 이듬해로 넘어가는 겨울, 이탈리아의 천문학자 갈릴레오 갈릴레이는 망원경으로 하늘을 관측하다가 은하수의 희뿌연 띠 모양이 사실은 약한 빛을 내는 수많은 별들로 이루어져 있다는 사실을 발견했다. 그는 목성이 위성 네 개에 둘러싸여 있다는 사실을 알아냈을 뿐만 아니라 지구의 달에 솟은 산과 그 아래 드리워진 그늘, 태양 표면의 검은 얼룩도 관측했다. 토성은 마치 세 개의 별로 이루어진 듯이 보였다. 이것은 하나같이 획기적인 발견이었다. 현대의 과학자들과 마찬가지로 갈릴레오는 자신이 이룩한 신지식에 최우선권을 부여받기 위해 특별한 조치를 취해야 했다.
당시의 학자들은 새로운 발견을 이루면 그것을 공표하지 않고도, '최초'라는 명예를 놓치지 않기 위해 일종의 속임수를 만들어 냈다. 자신이 이룩한 업적을 함축적으로 표현할 수 있는 문장을 만든 후, 철자 순서를 뒤바꿨던 것이다. 대부분 라틴어로 된 문장에서 철자를 알파벳 순서대로 나열하는 경우가 가장 많았다. 예를 들어 "Sirius has an inhabited planet(시리우스에는 생물체가 살고 있는 행성이 있다 - 역주)."이 평문이라면 이것을 알파벳 순서대로 재구성한 암호문은 'AAAABDEEHHIIIILNNNPRSSSTTU'이다. 이로부터 다시금 평문을 재구성하기란 불가능하다. 그러므로 만약 다른 누군가가 여러분이 발견한 행성을 재발견했다 해도 철자가 불규칙적으로 나열되었을 뿐인 암호문을 다시 조합해 우선권을 쟁취할 수 있을 것이다.
이런 종류의 암호법을 '애너그램(anagram)'이라고 한다. 이때 반드시 알파벳순으로 글자를 나열할 필요는 없으며 평문과 다른 모습으로 엇갈려 놓기만 하면 된다. 갈릴레오 역시 토성을 처음 발견하고 나서 그 사실을 라틴어 문장으로 정립해 놓았다.7. 자리를 바꾸는 암호
글자 퍼즐, 애너그램6. 끝이 없는 열쇠말
우연은 기억할 수 없는 무엇아서 코넌 도일의 소설 『춤추는 난쟁이』에 나오는 에이브 슬레이니 - 시카고의 악랄한 갱스터 - 는 어릴 적 사랑했지만 부유한 농장주와 결혼하여 영국에 사는 엘지에게 두 사람이 예전에 곧잘 써먹었던 암호문과 같은 형식으로 위협적인 메시지를 보낸다. 그는 농장 근처에 방까지 구해 놓고, 창턱 여기저기와 농장의 헛간 문 따위에 춤추는 사람 모양을 백묵으로 자그맣게 그려 놓는다. 엘지는 되도록 남편이 자신의 과거를 알지 못하도록 안간힘을 쓰지만 농장주는 신경이 곤두선 아내와 자꾸만 나타나는 이상한 그림 때문에 늘 불안을 느낀다. 결국 그는 농장에서 발견된 그림을 본떠서 그려두었다가 셜록 홈스에게 해독을 의뢰한다.
노련한 사람이라면 첫눈에 한 가지 특이한 점을 발견하리라. 춤추는 사람 가운데 몇이 깃발을 들고있지 않은가. 당연히 셜록 홈스도 이를 놓치지 않았고, 이것이 단어마다 끝 철자를 나타내고 있음을간파했다. 그리고 그림에서 가장 자주 나오는 모양은 다리를 넓게 벌리고 두 팔을 위로 뻗은 형태였다. 이 모양이 바로 알파벳 'e'라고 추론한 홈스는 큰 어려움 없이 모든 그림에 딱 들어맞는 알파벳철자를 찾아낸다. 마침내 그는 암호체계를 가지고 새로운 메시지를 만들어 냈다. 슬레이니가 살고 있는 장소를 알아낸 홈스는 다음과 같은 내용의 메시지를 전한다. "come here at once(당장 이리로 와줘)." 슬레이니는자신의 옛 연인이 보낸 것으로 착각하고 냉큼 달려왔다가 함정에 걸려든다.독일어처럼 영어에서도 각 철자가 쓰이는 빈도가 서로 다르다. 웬만한 길이의 글이면 신기할 정도로 이 원칙이 예외 없이 적용된다. 칸트의 『순수이성비판』이나 어떤 연애소설을 놓고 조사해 봐도 마찬가지이다. 이 비율은 통계적인 규칙성을 나타낸 것이므로 분량이 많으면 많을수록 규칙의 정확성은 높아진다. 영어와 독일어에서 공통적으로 철자 e를 가장 많이 쓴다고는 하지만 역시 통계상 그럴 뿐이고 자료량이 많아야 한다.
암호문에서 e를 대신할 기호가 무엇인지 안다면 해독작업은 한층 수월해질 것이다. 영어에서 가장 빈번하게 짝지어지는 철자는 th이며, he, an, in, er 등이 그 뒤를 잇는다. 그리고 e 다음으로 빈도수가 높은 철자를 순서대로 나열해 보면 r, s, n 그리고 d이다. 또한 가장 출현빈도가 높은 짧은 단어들은 the, of, and, to, a, in, that, is 순이다. 이러한 통계 특성은 암호를 해독할 때 단어 사이의 구별을 도와 준다.전기작가 수에토니우스는 카이사르가 키케로에게 보낸 은밀한 편지가 암호문으로 작성되었다고 기록하고 있다. 그의 설명에 따르면 이 편지는 D 대신에 a를 대입하고, E를 b로 바꿔야만 뜻이 통한다. 'never trust Brutus.' 예를 들어 카이사르는 이 문자를 친구에게 보내 경고하고자 한다면 다음과 같이 썼을 것이다. 'QHYHUWUXVWEUXWXV' 카이사르의 암호는 단순히 왼쪽으로 세 자리 이동한 암호 알파벳을 이용하여 작성한 것이다. 물론 사용자의 임의대로 철자를 세 자리 이동할 수도 있고, 다섯 자리 혹은 스무 자리만큼 이동할 수도 있다. 단, 스물다섯 자리까지만 바꿀 수 있고, 스물여섯 자리로 넘어가면 원래의 평문(전달하고자 하는 본래의 문장) 알파벳과 겹치게 된다. 또, 부루투스가 편지를 가로채어 암호화한 과정을 가늠한다 해도 최대 스물다섯 가지 알파벳을 대입해 보아야 해독을 할 수 있다는 결론이 나온다.
철자 순서를 그대로 둔 채 전체를 몇 자리 이동한다는 이 개념을 더욱 구체적으로 이해하기 위해서는 직선 도표가 아니라 동심원 두 개로 이루어진 원판을 떠올리는 것이 더 빠를 것이다. 바깥 원판은 평문철자, 안쪽은 암호철자로 정한다. 우선 두 원판이 같은 철자끼리 맞물린 상태를 기준으로 삼는다. 그런 다음 안쪽의 암호문 원판을 돌려서 두 가지 상이한 알파벳이 대조를 이루게끔 만든다. 이제 평문철자 하나마다 암호철자가 하나씩 붙어 있다. 이러한 원판 모형은 단지 카이사르 체계에서만 유효한 것이 아니라 더욱 복잡한 체계의 암호작성법에서도 기준이 된다. 따라서 암호를 관리하는 미국정부기관인 국가안보군(NSA)에서도 고유 인장으로 이 원판을 디자인해서 쓰고 있다.
오늘날 암호 해독가에게 카이사르 체계에 대해 말하라고 한다면 열이면 열 코웃음을 칠 게 뻔하다. 그렇지만 최신식 암호기법에도 분명 카이사르의 흔적은 남아 있다. 카이사르 체계에는 중요한 암호요소가 두 가지나 내포되어 있기 때문이다. 첫 번째는 '규칙'이다. 즉, "알파벳의 몇 번째 자리에 있는 철자 대신 그보다 순서상 몇 자리 뒤에 오는 철자로 대체할 것." 이제 '규칙'이란 말보다는 좀더 학문적인 용어인 '알고리즘(algorithm)'이란 단어를 쓰기로 하자. 그렇다면 몇 자리나 이동되었는가 하는 값을 주목해 보자. 역사 속의 카이사르에게는 숫자 3이 열쇠였다. 단순한 암호법인 '카이사르'에는 숫자 한 개가 열쇠로 작용하고 있다. 앞으로 살펴볼 방식 중에는 단어 하나, 혹은 단어 하나와 숫자 하나를 열쇠로 적용해야 하는 것이 있는가 하면 책 한 권이 몽땅 열쇠인 경우도 있다. 규칙과 열쇠는 암호를 만들 때도, 다시 평문으로 풀 때도 두 가지 모두 반드시 있어야 하는 요소이다.1931년 초, 독일제국 국방부의 젊은 관리 한스 틸로 슈미트는 프랑스 군대와의 접촉을 통해 상당한 대가를 받고 독일의 암호체계에 대한 정보 - 무엇보다도 에니그마에 관한 - 를 넘겨 주었다. 그의 코드명은 'HE'라는 두 개의 알파벳 철자였다. 이 말은 프랑스어로 발음하면 독일어의 'Asche(재)'처럼 들린다. 유럽 각국을 돌아다니며 아셰 요원이 넘겨준 정보 중에는 독일군이 에니그마 사용에 대해 기록해 놓은 업무규정 사본도 들어 있었다. 1932년 9월에서 10월 사이에 쓰일 일일 규정 열쇠, 즉 매일 바뀌는 회전체의 위치와 링 포지션, 플로그 보드 접속법까지도 그가 넘겨준 기록으로 간파해 냈다.
당시 프랑스의 암호 전담국장이자 중대장이었던 귀스타브 베르트랑은 1932년 12월에 바르샤바로 정보를 보냈다. 그것은 최근 몇 달 간 사용된 수많은 암호문이었고, 단순히 평문을 복호화하는 것뿐 아니라, 암호문과 평문을 대조해서 에니그마 회전원통 내부의 회로구조를 파악할 수 있었던 것이다. 1934년 폴란드는 에니그마 암호체계를 완전히 꿰뚫었고, 독일 정규군과 첩보부 사이에 교신하는 내용은 죄다 해독이 가능해졌다.
1934년 6월 30일 입수된 무선 암호문을 해독하자 다음과 같은 평문이 나타났다. "룀을 즉각 체포할 것. 생사 여부 무관." 바로 '장검의 밤(the Night of the long Knives : 프랑스의 샤를 9세가 신교도 위그노를 학살한 사건으로 히틀러의 학살에 빗댄 말 - 역주)'을 위한 명령이었다. 이 날 히틀러와 그의 충복 괴벨스 장군은 뮌헨을 기점으로 하여 자신들의 옛 동료인 나치 돌격대(SA) 대원들을 숙청해 버렸다. 표적의 중심이 됐던 희생자는 총사령관 룀이었다. 그는 히틀러가 정권을 잡기 위해 노력하던 시절부터 곁에 붙어 다니던 절친한 동반자였다. 하지만 히틀러는 룀과 그 부하들뿐만 아니라 그 동안 눈엣가시 같던 인물들을 이 기회에 모조리 처단해 버린 것이다.고객은 돈을 은행에 입금하지만 사실 그 순간부터 그 돈이 은행에 그대로 남아 있다고 보기는 어렵다. 또 현대인은 워낙 현금 이외의 수단으로 지불하는 행위가 몸에 배어 있다. 지폐와 동전을 늘 주머니에 싸들고 다니는 것은 아니니까. 게다가 불법으로 돈을 유출하는 게 아니라면 일일이 가방에 넣어서 국경을 넘을 필요도 없다. 세계 구석구석 어디든지 은행이 알아서 이체를 해 주기 때문이다.
하지만 현금 지불이 아예 없는 것은 아니다. 영화표를 사거나 버스 요금 따위를 지불할 때 현금을 내미는 사람들이 적지 않으니까 말이다. 아직까지 현금은 일상생활에서 중요한 위치를 차지하고 있다. 게다가 현금 거래는 실명 없이 이루어진다. 지폐를 아무리 뚫어져라 본다고 해서 그걸 내민 사람이 누구인지 알아낼 수는 없는 노릇이다. 현금의 익명성은 사생활 보장이라는 면에서 충분히 가치가 있다.
암호학 덕분에 1만 달러나 되는 전자화폐를 간편하게 휴대할 수 있게 되었다. 은행 계좌 상태가 그대로 칩 카드에 기록되어 아주 간단하게 전자화폐로 거래할 수 있다. 고객은 원하는 만큼 충전된 현금카드를 은행으로부터 발급 받는데 이 카드에는 일정금액이 채워져 있어서 마치 액면가 얼마의 전화카드나 버스카드를 사는 것과 같다. 카드 사용자는 상점에 가서 물건을 고르고 값을 치르기 위해 카드를 판독기에 입력한다. 해당 상품의 가격은 자동으로 카드에 저장된 금액에서 차감된다. 반대로 상점 계좌로는 같은 금액이 예입되도록 은행과 가맹을 맺어 놓았다. 카드에 충전된 금액을 다 소비하고 나면 사용자는 다시 은행에서 금액을 채워야 한다. 물론 돈은 사용자의 계좌에서 빠져나가는 것이다.
오늘날 지갑의 의미를 가진 전자화폐(이 형태의 카드를 스마트 카드라고 부르는데, 기억장치, 마이크로프로세서, 주변회로 등의 IC칩을 내장한 고기능의 카드이다. 한국에서 개발한 카드에는 의료보험증을 비롯하여 각종 신분조회가 가능하도록 설계되어 있다 - 역주)가 널리 쓰이고 있다.
그렇다면 수표보증카드나 신용카드처럼 이 전자화폐 카드도 안전한 금융수단일까? 실상 언론에서 종종 접하는 소식 때문에 우리 재산이 위험에 처해 있다는 불안을 떨치지 못하고 있지 않은가. 고객 여러분의 전자화폐는 철저한 보안 아래 있으니 염려 붙들어 놓으라는 은행의 호언장담과는 전혀 다른 상황이 벌어지니까 말이다. 이런 불안감은 전혀 근거가 없는 것이 아니다. 전자화폐를 취급하는 일이 또 다른 문제에 직면했기 때문이다. 열쇠숫자를 연산하는 절차는 컴퓨터만 수행할 수 있는 대규모 작업이다. 세계 대형 카드회사들에 가입된 사용자만 해도 8억이 넘는다. 컴퓨터 한 대가 카드 한 개를 완성하는 데 걸리는 시간은 0.5초, 만약 전 세계에 발급된 카드를 2년마다 갱신한다면 컴퓨터 20대가 잠시도 쉬지 않고 돌아가며 열쇠숫자와 카드를 쉴새없이 찍어 내야 한다. 그래서 지구촌 전체에 흩어져 있는 사용자 모두에게 똑같은 열쇠숫자를 적용하는 것은 아닌가 하는 의심도 사고 있다. 위험천만한 발상이긴 하지만. 현재 전자화폐는 비약적으로 확산되고 있다. 하지만 고객이 플라스틱 전자화폐를 생활 영역에 적극적으로 도입할 것인지 하는 문제는 여전히 미지수로 남아 있다.5. 단일환자방식 암호는 어떻게 풀 수 있을까
셜록 홈스와 춤추는 난쟁이e는 흔하고, q는 드물다과거 유럽의 모든 나라에는 암호반이 반드시 설치되어 있었는데, '검은 방(Black Chambers)'이라 불