최근 수정 시각 : 2024-11-26 22:41:11

암호

암호화에서 넘어옴


파일:나무위키+유도.png  
암호화은(는) 여기로 연결됩니다.
블록체인 기술을 이용한 가상 화폐에 대한 내용은 암호화폐 문서
번 문단을
부분을
, 다른 뜻에 대한 내용은 암호(동음이의어) 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
이산수학
Discrete Mathematics
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px; word-break: keep-all"
이론
<colbgcolor=#3CC> 기본 대상 수학기초론( 수리논리학 · 집합론) · 수열 · 조합 · 알고리즘 · 확률
다루는 대상과 주요 토픽
수열 등차수열( 뛰어 세기) · 등비수열 · 계차수열 · 조화수열 · 귀납적 정의( 점화식) · 급수 · 규칙과 대응 · 규칙 찾기 · 피보나치 수열 · 읽고 말하기 수열 · 생성함수
조합 경우의 수( /공식) · 순열( 완전 순열 · 염주 순열) · 치환 · 분할( 분할수) · 최단거리 · 제1종 스털링 수 · 제2종 스털링 수 · 카탈랑 수 · 벨 수 · 라흐 수 · 포함·배제의 원리 · 더블 카운팅 · 조합론
그래프 수형도(트리) · 인접행렬 · 마방진 · 마법진 · 한붓그리기( 해밀턴 회로) · 쾨니히스베르크 다리 건너기 문제
기타 P-NP 문제미해결 · 4색정리 · 이항정리( 파스칼의 삼각형) · 이산 푸리에 변환 · 비둘기 집의 원리 · 상트페테르부르크의 역설 · 투표의 역설 · 에르고딕 가설미해결 · 콜라츠 추측미해결 · 시행착오 ( 예상과 확인) · 불 논리 · 브라에스 역설
관련 문서 논리학 관련 정보 · 수학 관련 정보 · 컴퓨터 관련 정보 · 틀:수학기초론 · 틀:통계학 · 틀:이론 컴퓨터 과학 }}}}}}}}}


''' 이론 컴퓨터 과학
{{{#!wiki style="display: inline-block; font-family:Times New Roman, serif;font-style:italic"'''
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#a36> 이론
기본 대상 수학기초론{ 수리논리학( 논리 연산) · 계산 가능성 이론 · 범주론 · 집합론} · 이산수학( 그래프 이론) · 수치해석학 · 확률론 통계학 · 선형대수학
다루는 대상과 주요 토픽
계산 가능성 이론 재귀함수 · 튜링 머신 · 람다대수 · 처치-튜링 명제 · 바쁜 비버
오토마타 이론 FSM · 푸시다운 · 튜링 머신( 폰노이만 구조) · 정규 표현식 · 콘웨이의 생명 게임 · 형식언어
계산 복잡도 이론 점근 표기법 · 튜링 기계^ 고전, 양자, 비결정론적, 병렬 임의접근 기계^ · 알고리즘 · 자료구조 · 알고리즘 패러다임( 그리디 알고리즘, 동적 계획법)
정보이론 데이터 압축( 무손실 압축 포맷 · 손실 압축 포맷) · 채널 코딩(채널 용량) · 알고리즘 정보 이론(AIT) · 양자정보과학
프로그래밍 언어이론 프로그래밍 언어( 함수형 언어 · 객체 지향 프로그래밍 · 증명보조기) · 메타 프로그래밍 · 유형 이론 · 프로그래밍 언어 의미론 · 파싱 · 컴파일러 이론
주요 알고리즘 및 자료구조
기초 정렬 알고리즘 · 순서도 · 탐색 알고리즘
추상적 자료형 및 구현 배열^ 벡터^ · 리스트^ 연결 리스트^ · 셋(set)^ 레드-블랙 트리, B-트리^ · 우선순위 큐^, 피보나치 힙^
수학적 최적화 조합 최적화 외판원 순회 문제 · 담금질 기법 · 유전 알고리즘 · 기계학습
볼록 최적화 내부점 방법 · 경사하강법
선형계획법 심플렉스법
계산 수론 및 암호학 밀러-라빈 소수판별법 · Pollard-rho 알고리즘 · 쇼어 알고리즘 · LLL 알고리즘 · 해시( MD5 · 암호화폐 · 사전 공격( 레인보우 테이블) · SHA) · 양자 암호
대칭키 암호화 방식 블록 암호 알고리즘( AES · ARIA · LEA · Camellia) · 스트림 암호 알고리즘(RC4)
공개키 암호화 방식 공개키 암호 알고리즘( 타원 곡선 암호 · RSA) · 신원 기반 암호 알고리즘(SM9)
계산기하학 볼록 껍질 · 들로네 삼각분할 및 보로노이 도형^Fortune의 line-sweeping 알고리즘^ · 범위 탐색^vp-tree, R-tree^ · k-NN
그래프 이론 탐색^ BFS, DFS, 다익스트라 알고리즘, A* 알고리즘^ · 에드몬드-카프 · 크루스칼 알고리즘 · 위상 정렬 · 네트워크 이론
정리
정지 문제 대각선 논법 · 암달의 법칙 · P-NP 문제미해결 · 콜라츠 추측미해결
틀:이산수학 · 틀:수학기초론 · 틀:컴퓨터공학 }}}}}}}}}


1. 개요2. 암호의 역사
2.1. 고대의 암호
2.1.1. 스퀴탈레 암호2.1.2. 카이사르 암호
2.2. 중세와 근대의 암호
2.2.1. 돼지우리 사이퍼(Pigpen Cipher)2.2.2. 바늘구멍 사이퍼(Pinhole Cipher)
2.3. 제1차 세계 대전 때의 암호2.4. 제2차 세계 대전 때의 암호
2.4.1. 일본군2.4.2. 독일군2.4.3. 영국군2.4.4. 미군2.4.5. 소련2.4.6. 스웨덴
2.5. 전후
3. 암호 용어 설명4. 게임에서의 암호(패스워드)5. 기타6. 암호의 종류7. 미해독 암호8. 관련 문서

1. 개요

Password, Cipher · [1]

Password(패스워드)와 Cipher(사이퍼)는 전혀 다른 의미이지만, 한국에서 계정과 연관된 부분은 '비밀번호'를 적용해 사용하고, 암호가 필요한 부분 및 암호화 방식을 적용해야 하는 부분(crypto, encrypto)과 구분해 사용하는 것이 바람직하다.

Password는 특정한 자원에 대해 접근 권한이 있는지를 검사하기 위한 것이며[2], Cipher는 해당 정보를 변형하여 비밀을 알고 있지 않은 사람은 이용할 수 없게 만든다는 것이다. 암구호는 Password의 일종이다. 일상 생활에서 암호라는 말은 대부분 Password를 의미하지만 학문적, 상업적인 분야에서 암호는 대부분 Cipher를 의미하며, 이 경우 Password에 해당되는 것은 '키(key)'라는 이름으로 부르는 경우가 많다. Cipher는 암호문이라고 부르기도 한다.

제일 좋은 암호는 '적은 암호로 인해서 힘들어하지만, 사용하는 사람은 쉬운' 암호라고 볼수 있다. 근데 두 가지 모두를 동시에 구현하는 것에는 한계가 있으므로 실질적으로는 적도 사용하는 사람도 힘들어진다. 쉬운 예시로 홍채인식기를 생각해보자. 인증받은 사용자 자신은 특수한 상황이 아니면 분실 및 손상의 우려가 없는 눈동자만 가져다대면 되니까 사용이 쉽지만, 인증받지 않은 사용자는 그 시스템을 뚫기 힘들어 할 것이다. 반면에 사용자와 적 모두가 힘들어한다면 사용자는 귀차니즘에 빠질 공산이 크므로(예를 들면 비밀번호를 안 바꾼다거나, 집 열쇠를 현관 앞 화분 밑에 숨겨놓는다거나) 결과적으로는 적에게 이로운 일이라고 할 수 있겠다. 사실 제일 보안성이 강력한 암호는 사용자, 적 누구도 뚫을 수 없는 암호다. 단적인 예로 밖에서는 절대로 문이 열리지 않는 자동차를 생각해보자. 누군가 훔쳐갈 염려도 적지만 운전할 수도 없을 것이다.

현재 세계 각국은 적국, 동맹국, 그리고 자기 자신이 사용하는 암호 체계를 뚫으려고 하고 있으며, 암호학(Cryptology) 자체도 현대에 매우 활발히 연구되고 있는 학문이다. 각국 정보기관에서는 반드시 암호해독에 관한 부서를 갖추고 있다. 간첩 공작원 역시 암호로 의사소통을 한다.

암호 역사를 제대로 파고 싶다면 The Codebreakers(NSA/CIA가 이 책을 인정했다), 비밀의 언어(사이먼 싱) 란 책을 추천한다.

2. 암호의 역사

2.1. 고대의 암호

2.1.1. 스퀴탈레 암호

스파르타에서 쓰였다고 알려지는 최초의 군사 암호. 스퀴탈레(σκυτάλη)는 그리스어로 '막대'라는 뜻이다. 영어로는 scytale로 쓰는데 이를 직독하여 '스키테일'이라고 쓰기도 한다.

특정한 길이와 두께의 원통형 막대에 종이띠를 나선형으로 감고 암호문을 작성한 뒤, 종이띠를 풀어 무의미한 글자나 적에게 혼선을 줄만한 내용을 적어 넣었다. 두께가 미묘하게 다른 막대를 두세개 준비해서 서로 상반되는 내용을 적어넣는 등의 응용법이 있을 가능성도 있지만, 실제로 그렇게 사용하지는 않았다. 애초에 암호를 보낼 때 이를 해독할 수 있는 막대기까지 함께 전령을 통해 보냈는데, 적군에게 그 막대가 암호 해독의 열쇠라는 사실을 실토하지 않는 한 몰랐을 듯. 난이도를 높이기 위해 원래 문장 사이에 무의미한 글자를 넣거나, 글자를 거꾸로 썼다고 한다.

이 암호의 문제점은 암호를 풀기 위해 미리 정해진 크기와 모양의 원통형 막대가 필요하다는 것이다. 게다가 만약 적에게 막대가 탈취당하기라도 하면 암호가 적에게 해독되기 십상이다. 그리고 막대에 감아서 썼다는 말은 문장이 일정 간격으로 띄어져 있음을 의미하므로, 이론상으로는 문장의 시작점과 간격을 알면 시간이 걸리더라도 알아낼 수 있다. "벌이쏜침꽤아프대담벼락밑자갈밭에들숨날숨을겨우겨우살려놨다고했음"이라는 종이띠가 있다고 하자. 막대가 없다고 해도, 4글자 간격으로 읽어보면 암호문을 찾아낼 수 있다.[3]

드라마 육룡이 나르샤 에서 '난자각(亂字角)'이라는 명칭으로 이 스퀴탈레 암호를 사용하는 장면이 나온다.[4]

2.1.2. 카이사르 암호

율리우스 카이사르의 이름을 딴 암호, 수에토니우스가 언급했다. 영미권에서는 '시저 암호'라고도 한다. 다만 카이사르가 써서 유명해진 것이지, 그보다 앞서서 사용한 사람들이 있다고 한다.

라틴어 알파벳의 A…Z를 1~26에 대응한 후 무작위의 숫자를 키로 정하면, 암호문의 각 글자는 평문의 A+key(mod 26[5])이 된다. 쉽게 말해 키가 2라면 두 자씩 밀어서 읽어야 하니 A→C, B→D...Y→A, Z→B가 되는 식이다. 꼭 뒤로 밀 필요는 없고, 앞으로 밀어서 A→Y, B→Z…로도 가능하다. 카이사르가 실제로 사용했을 때에는 키가 3이었다고 한다. 글자 하나 당 다른 문자 하나를 치환하므로 암호학적으로는 단일치환 암호의 일종이다.
I Love You = K Nqxg Aqw
-카이사르 암호
다만 카이사르 시절에 이 암호가 유용했던 이유는 적들이 글을 몰라서이다. 로마인들과 싸우는 ' 야만인'들 입장에서는 애초에 알파벳이 뭔지도 모르니, 암호를 쓰건 안 쓰건 읽지도 못한다. 즉 사실상 로마 내부의 정적들에 대비한 거나 마찬가지. 하지만 알파벳을 알고 있다면 풀기는 엄청 쉬워진다. 시간과 예산을 들여 1~26의 가능성을 모두 때려맞춰보면 되니까. 카이사르 암호가 아니더라도 단일치환 암호는 일반적으로 빈도 분석을 통해[6] 해독하는 것이 가능하다.

그리고 이때 암호가 신비주의의 한 형태라는 오명을 갖게 된다. 처음 생긴 그때부터 암호는 예언 등과 같은 마법사에게 부여되는 초자연적 힘과 같은 정신적 영역과 관련된 기록에서 핵심적인 역할을 수행했기 때문이다.[7]

2.2. 중세와 근대의 암호

아주 당연하게도 암호는 정치쪽과 많이 연관되어 있었다. 예를 들어 스페인 무적함대가 영국을 침략하려는 것도 암호 해독을 통해서 영국이 낌새를 눈치챘으며, 스코틀랜드의 메리 1세의 '반역' 모의를 밝혀낸 것도 암호 해독의 공이 크다.

프랑스는 필리베르 바부 또는 프랑수아 비에트 같은 우수한 암호해독가들이 태어났는데, 비에트의 경우는 스페인 암호를 깨는 것을 거의 취미삼았고, 이를 알게 된 스페인의 펠리페 2세는 비에트를 '악마와 버금가는 마귀'라고까지 칭하며 종교재판에 세워야 한다고 교황청에 주장했으나, 문제는 교황청 역시 자체 암호해독가들을 통해 스페인의 암호문을 읽어 오고 있었던 것. 당연히 펠리페 2세의 주장은 거부당했고, 한동안 스페인의 암호기술자들은 웃음거리가 되었다고 한다.

유럽권이 암흑시대로 고생하는 동안 아랍권에서는 현대적인 의미의 암호학이 발달하기 시작했다. 단일 치환 암호를 깨는 빈도분석법이 알킨디( Al-Kindi)에 의해 개발된 사실을 특히 주목할 만한데, 빈도분석법의 바탕이 되는 통계학과 언어학적인 지식이 그만큼 발달했다는 뜻이다.

자기 자신이 키가 되는 암호가 르네상스 시기에 개발되었으며, 교황청이 엄청나게 강했던 시기엔 교황청의 암호국(局)도 엄청난 권세를 누렸다. 물론 잘나가던 국가들은 암호국이 엄청나게 강했다. 이 당시 자기 암호의 키를 가지는 비제네르 암호 방식이 도입된다. 이 방식은 카이사르 방식과 거의 흡사한데, 암호표를 가지고 암호를 만드는 방식이다. 한 글자가 내려가면 다른 배열의 알파벳 표가 나오며, 또 내려가면 다른 배열의 알파벳 표가 나오는 형식이다. 또한 이런 암호국은 강대국이라면 다 갖고 있었으며, 오스트리아-헝가리 제국도 비밀회의실이란 이름의 거대 암호실을 갖고 있었다고 한다. 오헝 제국에선 암호해독사들이 암호를 못 풀었을 때 받는 금액도 있었다고...

비제네르 방식과 유사한 방식으론 토머스 제퍼슨이 만든 제퍼슨 디스크라는 물건이 있다. 이 제퍼슨 디스크의 암호는 무척 어려워서(디스크 개수와 배열을 모른다면 풀기 까다롭다) 제2차 세계 대전 당시에도 이것의 개량형인 M-138-A를 써먹었다고 한다. 특히 이 기계는 미 정부의 최고 보안을 담당했고 듣보잡 독일, 일본은 전쟁이 끝날 때까지 이놈을 못 풀었다. 이걸 개량한 M-209는 한국전쟁에서까지 써먹었다. 비제네르 암호나 나중에 개발된 플레이페어 암호 방식을 가리켜 다중치환 암호라고 부른다. 또한 이때 체커박스 암호의 강화판이 등장하지만, 묻혀버렸다. 체커박스 암호는 아래 나오는 ADFGX암호 판인데, 이 개량판은 그것보다 더 복잡한 판이었다.

2.2.1. 돼지우리 사이퍼(Pigpen Cipher)

돼지우리 사이퍼는 잘 알려져 있는 단일 알파벳 대체 사이퍼로서, 1700년대 프리메이슨이 자신들의 기록을 비밀로 보존하기 위해 쓰였다. 단일 알파벳 대체 사이퍼라고 하지만, 엄밀히 따지자면 한 글자를 다른 글자로 대체하는 기존의 단일 알파벳 대체 사이퍼와 달리 돼지우리 사이퍼는 그림에 따라서 글자를 기호로 대체하는 것이다.

사용법은 아주 간단하다. 특정 글자를 암호화 하고 싶은 경우, 네개의 도형 중에서 그 글자를 찾아 그 글자가 들어가 있는 칸의 모양을 그리면 된다.

2.2.2. 바늘구멍 사이퍼(Pinhole Cipher)

바늘구멍 사이퍼는 일종의 꼼수로부터 탄생한 사이퍼이다.[8] 바늘구멍 사이퍼는 1800년대 영국으로부터 시작했는데, 그 당시 영국의 우편 제도가 영 좋지 못했기 때문에, 100마일(160km)마다 1실링이 들었다. 그런데 그 때 당시 돈으로 1실링은 꽤나 큰 돈이었다.

이 때문에 영국인들은 꼼수를 부리게 된다. 편지를 부치는 대신 신문의 첫 페이지에 바늘구멍 사이퍼를 이용한 다음, 발송, 메시지를 보내게 된것이다.[9]

바늘구멍 사이퍼의 사용 방법은 위의 돼지우리 사이퍼보다도 쉽다. 바늘로 메시지에 필요한 문자 아래에 구멍을 뚫으면 끝인 것이다. 그러면 수신인은 뚫린 구멍의 철자를 모아서 읽기만 하면 된다. 참 쉽죠?

이것을 조금 더 발전시킨 것이 신문 대신 특정한 책의 페이지를 보게끔 한 암호. 김래성의 모험소설 황금박쥐에 등장한다.

2.3. 제1차 세계 대전 때의 암호

그 뒤로 암호학은 발전을 거듭했다. 대표적인 사례는 오스트리아-헝가리 제국군 총참모부 정보국(K.u.k Evidenzbureau)의 최후 국장인 막시밀리안 롱게(Maximilian Ronge) 대령과[10] 대러시아 부처의 헤르만 포코르니(Hermann Pokorny) 소령이다.[11] 이들은 1차 세계대전 초기에 러시아 제국군의 암호체계를 순식간에 뚫어버렸고, 동맹군은 오스트리아 암호국이 해독한 정보를 바탕으로 러시아군을 격파했다.

NSA의 연구에 따르면, 당시 오스트리아 암호국은 동맹국의 정보조직 중 가장 앞서 있던 혁신적인 조직이었다. 그들은 러시아 제국군 이탈리아 왕국군, 그리고 세르비아군의 움직임을 마치 손바닥 들여다보듯 했다. 그러나 전력상의 열세로 전략적 주도권을 쥐지 못했던 오헝 제국군은 정보자산의 우위를 완전히 누리지는 못했다. NSA는 오헝 제국 암호국의 노력을 희망 없는 발버둥(A HOPELESS STRUGGLE)이라 부른다. #

그 외 1차 대전때 제일 유명한 암호로는 치머만 전보가 있었다. 제1차 세계 대전이 일어나자, 영국에선 독일에 대한 최초의 적대적 행위로 텔코니아호가 독일에서 미국쪽으로 가는 케이블을 끊어버리는데, 이것이 전쟁의 승패를 좌우한 사건으로 드러난다.

세계 역사를 바꿀 암호 문서인 치머만 문서는 독일에서 만들어졌다. 독일은 연합국을 지원하는 미국을 불편하게 여겼다. 그래서 멕시코 주재 독일 대사관으로 반미 동맹을 요청하는 암호문건을 보낸다. 동맹에 응해 전쟁에 이긴다면 미국이 멕시코에게 빼앗아간 영토를 돌려주겠다는 것이었는데, 이는 미국 본토의 1/3에 해당되는 엄청난 크기였다. 이 전문을 당시 독일 외무장관 아르투어 치머만의 이름을 따 '치머만 전문'이라고 부른다. 초암호화라고 해서 암호를 두 번 세 번 더해서 알아보기 어렵게 만드는 과정을 거친 뒤였다. 그러나, 암호를 보내기 위해서는 스웨덴 라인이라고 하는 방식을 선택해야 하는데, 이 방식은 스웨덴 대사관에서 독일의 전문을 받아 자국의 라인에 실어 부에노스아이레스로 보내고, 그걸 다시 멕시코의 독일 대사관이 받는 형식이라 번거롭고 시간과 노력이 소요되는 방식이었다. 그러나 정작 스웨덴 라인은 영국 암호해독실인 40호실이 다 보고 있었다.

40호실은 이를 해독하여 미국에 넘겼다. 이 때 영국은 독일의 암호를 속속들이 보고있음을 들키지 않기 위해 연극을 했다. 이미 다 풀어놓은 코드와 전문을 미국 대사관으로 가져와서 푸는 척을 한 것이다. 이 연극을 통해 미국 영토 내( 대사관이니까)에서 해석했다고 밝혀 40호실의 협조를 숨길 수 있었다. 그리고 독일의 뒷공작을 알게된 미국은 이후 독일에게 선전포고를 하게 된다. 미국 대사관의 발표에 낚인 영국 신문은 '미국에선 이런 정보도 잘 찾아내는데, 왜 대영제국 정보부는 이런 정보를 못 찾냐'는 기사를 올리기도 했다.

이런 종류의 국제공작은 전모가 만천하에 드러났더라도 극구 부정하는 것이 일반적인 경우이다. 그러나 치머만은 기자회견에서 치머만 전문에 대해 '부정할 수 없다. 사실이다'라고 시원하게 인정했다. 독일 측은 영국이나 멕시코의 중상모략이라고 우길 수 있었으나 외무장관이 인정한 이상 의혹이 아니게 된 것이다.

이 코드를 해독하는데 있어 독일 순양함 마그데부르크의 코드북을 러시아 측이 입수해서 영국에 넘겨준 것도 큰 영향을 끼쳤다. 이와 더불어 여러 순양함에서 코드북을 입수할 수 있었다. 치머만 전보도 이 코드북들을 이용해서 번역한 것이다.

독일군에서는 다음과 같은 ADFGVX[12]라는 암호를 군사령부간 통신에 이용하였는데, 빠르기도 빠르면서 쉽고 익히기도 편했다. 의외로 보안상으로 강력하기도 했는데, 적어도 이론상으로 ADFGVX는 36! = 3.7199333e+41이라는 어마어마한 가짓수의 암호 조합을 구성할 수 있기 때문이었다.

파일:external/www.hummingheads.co.jp/series01_encryption_history_04_02.gif

파일:external/media.web.britannica.com/7852-004-0650E682.gif
위 그림은 이의 초기버전인 ADFGX 버전과 그 사용례. 이 암호가 안 뚫렸다면 독일군은 파리를 정복할 수도 있었지만, 프랑스의 암호해독가인 조르주 팽뱅(Georges Painvin)이 극적으로 뚫어버려서 독일군은 파리를 점령하지 못했다. 그야말로 암호 해독이 세계 역사를 바꾼 예.[13] 그는 필산 노가다를 통해서 텍스트 조합을 통계적으로 빈도 분석한 끝에 간신히 암호를 뚫었다고 하는데, 사실 이 무렵 독일군의 코드북이 러시아군에 의해 탈취당한 적도 있으니만큼 이 방법만 쓴 것은 아닐 수도 있다. 치머만 전보 역시 ADFGVX 체계로 암호화되었다.

또한 1917년 길버트 버넘이 개발한 1회용 패드 암호가 있는데, 이게 변형된게 현재의 OTP이다.

2.4. 제2차 세계 대전 때의 암호

2.4.1. 일본군

일본군은 전쟁 전 일본 측에선 독일의 에니그마의 영향을 받은 97식 구문인자기[14]란 걸 대사관의 최고위 암호에 사용했다. 일본 측의 다른 암호는 어느 정도 뚫을 수 있었지만, 이 암호기계를 뚫는 데는 시간이 엄청 걸렸다. 97식 구문인자기는 에니그마에 있는 반사판 장치가 없어서 에니그마보다 구조적으로는 진보한 장치였고 독일에서도 못 깼다.

그러나 조지 페이비언(George Fabyan) 밑에서 유전학자 일을 하던 프레더릭 프리드먼이라는 천재와 그가 일한 SIG 측에서 97식을 뚫는 데 성공하고, 여기에 매직(Magic)이라는 코드명을 붙인다. 사실 일본 측에서도 이게 뚫린 것 같다고 어느 정도는 눈치채고 있었지만 미국놈들이 전보를 해독했다는 의심이 드니 긴장을 늦추지 말라는 전문과, 암호기계의 숫자판에다가 국가기밀이란 큼지막한 에나멜 딱지를 붙이는 것 말고는 아무런 조치를 하지 않았다. 앞서 말했듯이 독일조차 뚫지 못하는 어려운 암호라고 안심한 것이다. 게다가 일본어가 유럽어 사용자에겐 생소하고 어려운 언어이기에 서양인들이 애를 먹을 것이라고 생각하고 안심[15]한 면도 있었다. 그러나 그 당시 미국에는 일본어 통역장교만 수십명이 넘었다. 또한 대전 전부터 수많은 일본계 미국인들이 미군에 입대해 있었다.

퍼플이 안전한 줄 알았던 베를린 주재 일본 대사관 군관은 퍼플로 추축국의 형편에 대해 보고했으며, 이는 연합군 손에 들어가게 된다. 그리고 이 정보를 바탕으로 연합군이 전쟁을 유리하게 이끌게 된다. 따라서 전후 의회에서 벌인 조사에서 암호해독은 전쟁을 5년 앞서 끝낸 주역으로 부상해 NSA가 만들어지는 계기가 되기도 한다.

또 일본군은 야전암호 배달도 허술해서, 암호책 상자가 없어져도 그냥 없어졌겠거니 하고 말았다. 1943년 1월 29일, 수레바퀴 작전(Operation cartwheel)을 앞두고 초계임무를 맡던 뉴질랜드군 버드급 소해함 키위(Kiwi)가 보급품을 하역하던 일본군 순잠 1급 잠수함 I-1호를 발견하고 오클랜드에서 외박이나 따자는 생각으로 공격,[16] 폭뢰 공격을 버티다 못해 올라온 I-1호에 3번이나 충각을 가해 함수가 휘어지고, 주포가 과열될 정도로 쏴 댄 끝에[17] 해안에 좌초시켰다. 그런데 잠수함 안에는 암호책 5권과 코드북이 들어있었다. 보통 이런 군사기밀 서적은 유사시 긴급폐기하기 위해 겉표지에 납이 있어서 바다에 던지면 돌덩이처럼 가라앉는다든지, 물을 뿌리면 잉크가 확 번져서 알아보기 어렵다든지, 기름먹인 종이로 만들어서 불 붙이면 잘 타버린다든지 하는 조치가 취해지지만, 해당 잠수함의 승무원들이 미처 이런 조치도 취하지 않아서 멀쩡한 암호책이 연합군에게 넘어갈 수 있었다. 연합군은 그야말로 신나게 암호책을 다 쓸어갔다. 일본군에서도 뒤늦게 이 사실을 알고 폭격했지만, 이미 암호책은 연합군 수중에 들어간 지 오래였다. 겨우 하루짜리 외박 바라고 격침한 순찰선은 전원 해군십자장을 수여받았다.

일본군의 허례허식도 암호 해독에 한몫했다. 본국에서 해외 대사관으로 외교전문을 전송하면서 내부적으로 돌려보는 데는 하등의 필요도 없는 외교적 언사('본 대사는 XX국에 XX의 체결을 통보하는 영광을 누립니다.' 등등)까지 꼬박꼬박 첨부했고, 이는 일본의 암호를 해독하는 데 등불이나 다름없었다.[18] 또 암호내용을 평문으로 재전송하지 않나, 높은 암호라고 준 걸 낮거나 시간이 지난 암호로 전송하지 않나... 이런 행위들을 보면 일본군의 암호는 보안이 이미 크게 뚫렸다고 봐도 무관하다.

그러다가 일본측도 나름대로 노력했는지 특수 코드북을 만들었다! 힘겹게 만든 특수 코드북을 A-GO 작전에 써먹으려고 들고 왔지만, 하필이면 기함에 직격타를 맞아 코드북은 허무하게 증발하고, 이 코드북으로 보낸 모든 암호전신은 다 무용지물이 되어버렸다.

야전만이 아니라 본국의 암호 해독실도 상태가 매우매우 안 좋았다. 미국측에선 일본군 고급암호 전문도 훔쳐보는 판국에, 본국에선 중상정도의 메시지조차 해독하지 못했다. 암호분석의 세계로 접어들던 때 수학자가 아닌 외국어 능통자만 40여명 뽑고, 빈도예측을 위해 IBM 플로터 하나 갖다둔게 다였다. 그리고 아주 기초적인 비제네르 방식만 가르쳐준 것. 제일 공들이던 물건은 미 해군에서 제일 낮은 수준의 체계로 간주하던 스트림 암호였던 CSP 642였다. 동맹이던 독일이 연합군 상선 코드였던 BMAS 코드북을 받아서 코드를 해독하는데 성공하게 된다. 일본군은 결국 CSP 642를 포기하고 통신 분석에 힘을 쏟기 시작했다. 물론 일본군도 미군 암호장비(대표적으로 M-94)를 입수했지만 입수하기만 하고 별다른 공을 세우지는 못했다.

2.4.2. 독일군

독일군의 암호부대는 아프베어(Abwehr: 정보국)[19]라고 불렸으며 연합군 상선코드를 알아내어 U 보트의 공격실적을 향상시켰을 뿐 아니라, 43년즈음엔 영국의 U 보트 상황보고를 읽을 수 있을 정도로 영국 암호체계를 철저히 파악했다. 대서양 전투에서 독일이 기선을 제압할 수 있었던 건 U 보트의 역할도 컸지만, 암호 해독의 공도 컸다는 것을 알 수 있다. 아프리카 전선에선 알프레트 제벰 대위를 위시한 암호해독팀에 의해 미국의 암호체계가 다 뚫려서 에르빈 롬멜이 사막의 여우가 된 주요 원인 중 하나가 되었다. 영국도 아닌 미국 암호체계가 뚫렸는데 왜 영국군이 털렸는가라는 의문이 있을 수 있는데, 고문관으로 파견된 미군 펠레스 대령이 꼬박꼬박 본국에 영국 전술정보를 보낸 탓에 영국군이 털린 것. 당시 독일 암호해독팀은 1개 사단에 맞먹는다는 평가를 받았다고 한다. 그러나 정찰 도중 전투가 일어나 제벰 대위를 비롯한 암호해독팀 대부분이 사살당하고 생존자도 포로가 되면서 암호해독팀의 전설은 끝난다. 덤으로 독일에게 훈장을 받을 만한 공로가 있던 펠레스 대령은 송환당한다. 또한 독일은 당시 대스파이 작전 임무를 맡은 독일방위대 III F과의 네덜란드 지부장 기스케스에 지휘하에 네덜란드 레지스탕스 무선국을 습격해서 노획한 장비와 자료를 이용한 모선모략작전인 풍크슈빌 노르트포트[20]을 입안하여 가짜 레지스탕스인 풍크슈빌을 만들어서 1942년 3월 27일부터 1944년 2월에 이르기까지, 무려 20개월동안 47명의 정보원등 레지스탕스도 잡고 연합군에게 군수물자도 뜯어낸 일거양득을 취하기도 했다.[21][22]

사막의 여우는 역시 덜미가 잡혀서 당시 강력한 암호체계중 하나인 제퍼슨 디스크의 개량 버전인 M-138-A로 바꾸고[23] 더불어 새로운 무관으로 교체하면서 롬멜의 Black Sheep Wall이 깨지게 되었다. 덜미가 잡힌 원인 중 하나는 독일의 에니그마 암호를 해독하면서 나온 정보 중에 영국이나 미국이 암호로 송신한 내용이 포함되었기 때문이었다. 물론 기존 암호조치가 탄탄하다고 자랑하던 암호개발부서는 개박살났다. 덕분에 나중에 가면 연합군은 (당연한 일이지만) 암호를 매우 중요하게 생각하여 안전에 만전을 기하게 된다. 가령 유럽에서의 전쟁이 끝나는 마지막 날 미군은 프랑스 콜마르에서 에니그마급인 SIGABA를 잃어버린 적이 있다. 이 소식을 듣고 몸이 달아오른 아이젠하워는 휘하의 6 야전군 사령관을 갈궜다. 사령관은 바로 내리갈굼을 실시하여 SIGABA를 찾기 위해서 혈안이 되었다. 미군이 그걸 찾았다면 바로 귀향조치란 포상을 받았다. 6주일 동안 찾던 SIGABA는 결국 인근 강바닥에서 찾아냈다.

독일군에서 제일 유명한 것으론 에니그마가 있다. 에니그마는 원래 상업용으로 쓰이던 기계식 암호 타자기의 이름인데 독일군이 회전자라는 새로운 메커니즘을 도입하여 군용으로 개량한 것이다. 이 암호는 2차대전 발발 전에도 해독이 불가능한 것으로 악명이 높았는데, 폴란드 정보국에서 독일군의 일일 암호책 일부와 에니그마 매뉴얼을 훔치는 데 성공하여 연합군은 에니그마 암호의 일부를 해독할 수 있게 되었다.

이 암호책은 독일군이 에니그마를 새 버전으로 개량하면서 금방 무용지물이 되었지만, 그것을 바탕으로 폴란드 암호국의 천재 수학자 마리안 레예프스키가 일일 비밀키의 경우의 수를 좁히는 통계적인 기법을 개발하게 된다.

한편 2차대전이 발발하고 폴란드가 개전 1달만에 독일에게 발리면서 폴란드 암호국의 암호해독가들은 영국으로 피난가게 되는데, 이때 영국 암호국[24]에서 일하고 있던 앨런 튜링과 협력하여 지금까지 손으로 계산하던 통계 계산을 전자적으로 해주는 계산기인 "봄베"를 개발하면서 연합군의 암호해독은 훨씬 빨라지게 된다.

앨런 튜링은 타인이 생각하지 못한 혁신적인 방법을 이용해, 에니그마 해독 난이도를 자그마치 10조분의 1로 낮춘다. 이렇게 낮춰진 난이도는 인간듀얼코어 두뇌의 처리 능력 안이었고, 단지 해독 시간의 문제일 뿐이었다. 블레츨리 암호해독팀을 격려하기 위해 방문한 처칠 총리는 박물관 큐레이터, 트럼프 게임 전문가 등이 포함된 해독팀을 보고 전국을 뒤지라는 말을 하기는 했지만 이렇게 내 말을 이렇게도 글자 그대로 받아들일 줄은 몰랐다고 한탄했다고 한다. 하지만 이 괴짜 집단의 중요성을 처칠은 이해하고 있었다. 튜링은 암호 해독 능력을 극대화하기 위해 인력과 자금이 더 필요함을 역설했으나, 책임자가 들어주지 않자 동료들과 함께 처칠에게 '그동안 도와주셔서 감사합니다. 그런데 우리는 더 잘하고 싶어요, 그러려면 자금과 인력이 더 필요하거든요?' 라는 요지의 편지를 쓴다. 그리고 총리님께서 그 편지를 받은 즉시 비서실에 내려 보낸 명령은 '오늘 당장 실행할 것. 블레츨리 파크에 필요한 모든 것을 조달하게 하고 임무를 완수하면 즉시 나에게 보고할 것'. 그런 대인배적 결단을 통해 풍부한 지원을 받게 된 블레츨리 파크는 대전이 끝날 쯤엔 넖은 정원이 가건물로 가득 차고 직원은 7000명이 넘는 거대조직으로 발전하게 된다. 암호해독가를 선발하기 위해 황당한 방법도 고안했는데, 신문에 어려운 십자말풀이 문제를 내고, 밑도끝도 없이 제한 시간 내에 문제를 모두 풀면 정해진 시간에 특정 장소로 나와줄 것을 요구하고 나온 사람 12명 중 다른 십자말풀이를 제한 시간 내에 푼 5명과 한 줄만 채우지 못한 사람 1명은 다음 주부터 블레츨리 파크에서 근무하게 되었다.

독일군에는 또다른 암호 기계인 로렌츠 암호기(Lorenz Chipher)도 있었는데, 이 로렌츠 암호장치는 베를린의 독일군 최고사령부인 OKW와 다른 지역에 떨어져 있는 독일군 사령부와 연락을 취할 수 있는 최고 암호장비였다. 미국인 버넘의 1회용 패드암호 방식으로, 12개의 암호 바퀴가 생성한 난수를 바탕으로 암호화를 수행하는 기계였다. 1회용 암호는 현재도 잘 쓰이는 암호인데, 난수 생성 메커니즘을 모르면 이론상 해독이 불가능하지만, 메커니즘이 뚫리면 별거 아니게 된다. 현재도 인터넷 뱅킹 등에 쓰이는 OTP가 바로 이 놈. 또한 1회용 암호의 특성상 한번 사용했던 비밀키를 재활용하면 취약점이 드러나게 되는데, 어느날 한 암호병이 귀찮음을 이유로 HQIBPEXEZMUG라는 비밀키를 두번 사용해서 비슷한 메시지를 보낸 것을 영국이 놓치지 않고 잡아냈다. 블레츨리 파크는 이를 바탕으로 4000글자 정도의 원본 난수를 얻을 수 있었는데, 튜링의 천재적인 통찰로 난수 생성 메커니즘을 역설계해 바퀴와 캠의 동작을 통계적으로 찾아내는 방법이 발견되었다. 그리고 투니(Tunny) 에뮬레이터란 레플리카를 만들어 이놈에서 얻어낸 핀 세팅으로 암호를 읽을 수 있는 기계도 만들었다. 놀라운 것은 각각 톱니바퀴 개수가 다른 12개의 암호 바퀴가 있고, 바퀴마다 캠 설정이 다른 복잡한 기계를 암호문만 가지고 역설계하는 동안 블레츨리 파크는 한번도 로렌츠 기계의 설계도나 실물을 본 적이 없었다. 로렌츠 기계의 실물은 종전 직전인 1945년이 다 돼서 노획됐는데, 이 때 블레츨리 파크는 이미 모든 로렌츠 암호를 실시간 해독하고 있었다.

그리고 이 로렌츠 암호전신기를 엄청나게 빨리 깨기 위해 세계 최초의 프로그래밍 가능 디지털 컴퓨터 콜로서스를 개발한다.[25] 콜로서스가 기밀 해제되기 이전에 세계 최초로 알려진 ENIAC보다 3년 빨랐다. 이후 콜로서스는 증거를 감추기 위해 설계도를 태우고 해체한다. 콜로서스는 로렌츠 기계의 통계분석을 엄청나게 빨리 끝내버렸다. 즉 기계의 역설계에는 성공했지만 여전히 비밀키를 찾아내려면 몇주일 동안 손으로 통계분석을 하고 있어야 했는데, 콜로서스를 이용하면 수십분만에 로렌츠 기계의 비밀키를 찾아낼 수 있었다.

어쨌든 에니그마의 바퀴 배열, 플러그보드 배열을 알기 위해 이언 플레밍[26]이 제안한 영국군의 낚시,[27] 독일군 장교들이 귀찮아서(…) 그날의 암호를 AAAAAA아아아아아?로 정해버린다[28]든지, 오타의 위험성을 줄이기 위해 사용되지 않는 철자 + 양 옆의 철자를 배제하는 등의 실수가 더해져, 노르망디 상륙 작전 직전에 이르면 독일 공군의 일일 암호를 별다른 일 없으면 그날 아침식사 시간에 영국 암호국에서 풀어버리는 사태가 벌어지게 된다. (해군과 육군 암호는 이보다는 좀더 어려웠다고 한다.)

한편 에니그마를 굉장히 신뢰하고 있었던 독일군에서는 연합군이 아군 무선통신을 대부분 도청하여 해독하고 있다는 것을 전혀 몰랐다고 한다. 심지어 독일 해군 참모부는 에니그마 암호가 해독되는 것을 "모든 정보유출 가능성 중에 가장 가능성 낮음"으로 분류하고 있었다. 물론 에니그마를 해독하는 게 이론적으로 가능하다는 것을 독일군도 알고 있었지만, 기계의 도움으로 몇 시간 만에 풀어버릴 것이라고는 예측하지 못한 것이다.

또한 독일측에서는 감청도 많이 하여, 아무리 연합국측에서 도청방지기를 만들어도 정상급 전화통화도 다 뚫어버렸다. 이는 나중에 미국이 PCM이란 신기술을 도입하면서 끝이 났지만... PCM이 도입되기 전까지 인간의 귀는 도청 방지기를 뚫어버리는 데 최상의 조건을 가진 물건이었다. 또한 스테가노그래피를 잡아내기 위해서 모든 종류의 비밀잉크를 가려낼 수 있는 장치를 전 우체국에 설치하기도 했다. 또한 마이크로도트라는 새로운 방법을 개발하기도 했는데, 이 방법은 문서를 마이크로필름에 인화한 후 마이크로필름 크기를 엄청나게 줄이고 편지에 몰래 붙여 보내는 방식이다. 이 방식은 마이크로필름이 있는지 없는지 파악하기가 힘든 단점이 있어서 대체로 특정한 점에 붙이는 경향이 있는데, 이게 적에게 들키면 한순간에 정보가 유출되므로 조심해야 했고, 정기적으로나 비정기적으로 마이크로필름이 놓이는 위치를 변경해야 했다.

암호 쪽에서의 병크로는 유보트의 무선이 있는데, 연합군은 유보트를 잡기 위해 혈안이 되어 있었다. 그런데 되니츠 제독이 유보트 승조원들에게 시시한 거라도 열심히 무전을 날리라고 해서 아주 사소한 동료의 치통이라든가 지상근무 요원의 생일 축하 메시지 같은 사소한 내용들까지 다 날려버렸다. 물론 이 자체가 나쁜 건 아니다. 이렇게 의미없는 무선이 많아지면, 작전 중에 무선이 폭증하는 상황을 감출 수 있다는 이점도 있긴 하다. 다만 에니그마의 특징상 당일의 암호키로 날아가는 무선이 많아지면 그만큼 많은 표본을 블레츨리에 제공하게 되어, 봄베의 힘으로 그 날의 암호 세팅을 알아내는 데 기여해버린다는 게 문제일 뿐. 덕택에 많은 암호문 샘플로 인해서 해독도 쉬워지고, U 보트가 보내는 전파를 탐지하여 유보트도 떼거리로 쓸려나간 적이 있다. 1944년 5월 31일, HF/DF라고 불린 U 보트를 탐지하는 전파탐지 네트워크에 U-505가 포착되었다. 연합군은 U-505를 때렸으며, U-505 승무원들은 GG쳤다. 승조원들이 다 나간 후, 연합군은 에니그마 등의 암호 기자재들을 다 훔치고 U 보트를 응급수리한 후 미국으로 끌고 갔다. 그래서 이 배는 1812년 전쟁이래 미 해군 승선팀이 탈취한 첫번째 적군 군함이 되었다. 아 물론, 나포해서 끌고가는 동안 엔진이 작동해서 부상했단 건 함정... 그리고 이를 잡아 올린 사람들은 훈장을 받았는데, 전쟁이 끝날때까지 훈장을 어찌 받았는지 말도 못했다고... 여튼 현재 U-505는 시카고 과학기술박물관에 위치해 있다. 물론 저 U-505의 함장은 자기 배가 폭삭 가라앉았다고 생각했고 말이다.

어찌 됐건, 영국 정보부는 독일의 암호통신을 끊임없이 훔쳐보게 되었다. 한 지휘관은 유사 이래 전쟁에서 이렇게 한 편이 다른 편의 정보를 속속들이 얻게 된 일은 없었다고 환희했고, 전후 연구에서 암호 해독이 없었다면 제2차 세계 대전은 48년에나 종전되었을 것이라는 결과도 있다. 영국 정보부는 암호해독 사실이 독일에 들어가지 않도록 신중에 신중을 가했는데, 예를 들어 독일 구축함 9척의 항로 정보를 얻고서도 7척만 침몰시키기로 결정했고 7척의 구축함은 아무 문제 없이 격침되었다. 그러나 영국 해군이 살려주기로 한 2척을 우연히 만나 침몰시켜버렸다. 그래서 독일군은 암호해독을 의심했으나, 이는 우연이거나 영국군 스파이가 원인이라는 결론을 얻고 만다. 에니그마를 깬다는 것은 불가능하다고 여긴 것이다.

2.4.3. 영국군

1차 대전 전후 여러 곳에 흩어진 암호 해독 조직을 모아 GC&CS(Government Code and Cipher School)을 창설한다. 그리고 제 2차 세계대전때 일은 더 이상 자세한 설명은 생략한다. 전후 GC&CS는 GCHQ로 개칭한다.

파일:Typex-Mk-III.jpg
1937년 영국군은 상업용 에니그마 기계를 보고 타이펙스(Typex)를 보급한다. 첫번째와 두번째 바퀴는 고정되어 있었고 5개까지 로터를 추가할 수 있었으며, 당연히 플러그보드도 있다. 타이펙스 기종 중에는 그림처럼 한 손으로 돌려가면서 암호를 치는 기종도 있었다. 타이펙스는 커먼웰스에서 1950년대까지 쓰이게 되었는데, 연합군임에도 미군이 SIGABA를 가르쳐 주지 않자 이와 호환되는 장치를 만들어 장치하게 된다.

타이펙스는 됭케르크 철수작전 중 독일군에게 넘어갔으나, 로터를 보고 포기하면 편하다는 걸 알게 된다. 비슷한 사례로 일본군이 있는데, 필리핀을 점령하면서 M-94를 손에 넣는다. 그런데, 풀질 못했다.

영국 본토 항공전때는 한동안 전파침묵[29]을 하더니 모든 암호를 바꿔버려 독일 공군을 당황시킨 적도 있다.

2.4.4. 미군

검열국에서 취한 예방적 검열과 더불어, 맨해튼 계획에 사용된 복선을 담아서 말하기, 체커보드를 사용하는 방법 등이 있었다. 복선을 말하는 방법으로는 이런 것이 있다. "박사가 막 흥분과 확신을 갖고 돌아왔습니다. 꼬마는 그의 큰형만큼이나 튼튼합니다. 그의 눈에서 나오는 빛은 이곳에서도 식별할 수 있으며, 그의 외치는 소리는 제 농장에서도 들릴 정도였습니다."[30] 또한 핵 투하할 때도 특별 코드가 있었다. 일본 특수부에 속한 분석가들은 통신 분석을 통해 티니언을 출발한 B-29가 있었다는 건 알고 있었는데, 이 전에 이뤄진 특수한 신호를 기록해두었다. 그리고 또 이 신호가 3일 후에 다시 기록되었다. B-29를 막을 공군력도 없었으며, 분석가들은 지금 핵폭격기가 다시 이륙했다고 말해주는 것 외에는 아무것도 할 수 없었다.[31] 히로시마 때 쓴 신호가 3일 뒤 또 쓰인 걸 보고 이 신호가 무슨 뜻인지 알고 있었고, 기록에 의하면 일본 암호 해독부가 이 신호를 전송할 때 눈물을 삼키면서 전송했다고 한다. 그런데 이 정보는 일본군 수뇌부에 보고되지도 못했는데, 왜냐면 이때 수뇌부가 소련 참전에 따른 긴급회의 중이라서 보고를 나가사키에서 핵이 터진 뒤에야 받았다...

또한 도청에 대한 수단으로 나바호족 원주민들을 통신병으로 배치시켰다. 처음에 30명 정도로 시작한 나바호족 통신원들은 나중엔 420명으로 늘어났다. 나바호어의 언어 구조가 일본인들에게 생소했고 참전한 나바호족 통신병들의 입이 무거워 일본군이 어떻게 할 수 없었다고 한다. 사실 나바호어는 나바호족이 아니면 익히는 것 자체가 불가능에 가까울 정도로 매우 어렵다. 미국인들한테도 나바호어는 생소했기 때문에 암호용으로 쓸 수 있겠다는 발상을 하게 된 것이다. 처음에는 40여개의 용어를 표현하는데 그쳤으나, 종전 직전에는 약 450단어로 암호화된 용어의 숫자가 늘어나서 일반적인 전술 상황을 보고할 수 있게 되었다.

일본군은 나바호어 암호의 존재를 파악한 후 필리핀 점령 당시 포로로 잡은 나바호족 출신 병사 Joe Kieyoomia에게 암호를 해석해보라고 시켰지만, 해당 병사는 필리핀 점령 이후에 만들어진 나바호어 암호를 당연히 몰랐고[32], 직역을 한 결과물도 문장이 아닌 동물 이름과 자연 명사를 줄지어 늘어놓은 또 하나의 암호문일 뿐이어서 아무런 정보를 알아낼 수 없었다. 나바호어에는 미군의 군사 용어가 없었기에 군사 용어를 나바호 문자와 일반명사의 조합으로 치환해서 보내는 추가적인 암호화를 거친 것이었다.

그 외에 평상시에도 의미 없는 데이터로 통신을 계속할 필요성 등도 인지하게 되었다. 이는 일본이 미드웨이 해전을 준비하던 상황에 대한 교훈에서 비롯되었다. 이때 일본 해군의 통신이 수십 배로 폭증했기 때문에 암호를 해독하지 않고서도 뭔가 대규모의 작전을 준비하고 있음을 알 수 있었기 때문이다. 당시 미국에서는 이미 일본군의 암호를 해독할 수 있었기 때문에 큰 상관은 없었지만, 이는 충분히 교훈으로 삼을 만한 사례였다.

2차 대전 종전 후 의회에서 전쟁 평가를 하면서 암호가 전쟁 종결에 큰 공헌을 한 것으로 인정되어,[33] NSA가 설립되는 계기가 되었다.

2.4.5. 소련

제1차 세계 대전 때 독일군에게 암호가 뚫려서 호되게 당한 전적이 있어 코드쪽으로 신경을 썼다. 나치가 기습공격으로 침공을 시작한 뒤에 독일군은 소련군의 다음과 같은 통신을 감청했다고 한다. 공격받은 부대에서 무전으로 "우리는 공격받고 있다!"라고 급히 보고하면 이런 대답이 돌아왔다. "너희들 미친 것이냐. 왜 암호로 보고하지 않는 것이냐?" 물론 이는 보안이 철저했음을 보여주기보다는 소련군의 경직성을 보여주는 사례라고 할 수 있다. 예 죄송합니다 하고 저런 당연한 문구를 다시 암호로 보고해버리면 암호 해독하는 데 시간을 잡아먹는 것도 문제지만 적에게 암호 해독에 쓸 자원을 충원시켜주는 것밖에 안 된다.

2.4.6. 스웨덴

독일 국방군은 노르웨이로 가는 스웨덴 케이블을 공식적으로 요구했고, 이 케이블을 이용해서 약 26만 7천건 정도를 빼돌렸다. 케이블을 통한것도 있지만, 그 중엔 노르웨이로 가는 발틱 위안부에 대한 암호도 있었다. 도착하거나 나갈때 다들 흥분했었다나...

그러나 스웨덴이 일방적으로 당한 것은 아니었다. 웁살라 대학의 수학교수였던 아르네 베울링(Arne Beurling)[34]이 독일군이 사용하던 게하임슈라이버(Geheimschreiber) 암호를 해독하는데 성공했다. 이 해독으로 인해 노르웨이 방면의 독일군 침공 몇번을 유리한 위치에서 격파할수 있었고, 대독외교에서도 우위를 점할 수 있었다.

전쟁전 부터 스칸디나비아 국가들이 암호를 주면 스웨덴이 대신 해독해 주었고, 이와 관련하여 핀란드와 비밀작전을 하기도 했다. 계속전쟁이 끝나갈 무렵, 핀란드는 소련을 견제하기 위해 SIGINT 자료를 넘겨 주는 비밀작전인 스텔라 폴라리스 작전을 하기도 했다.[35] 소련에게 점령 당하는 것은 피했지만, 여기에 가담한 사람들은 이후 공산당이 장악한 발포(Valpo)[36]에 잡혀서 콩밥을 먹었다.

2.5. 전후

제2차 세계 대전이 끝난후, 연합국은 식민지에서 해방된 신흥국들에게 독일제 에니그마를 나눠 주었고 이들은 유용하게 사용했다. 최소한 그 국가들은 옆 국가가 자신들의 암호를 풀지 못하는 것에 만족했다. 그 후, 그 기계들이 다 고장날 무렵인 1960년도부터 영국과 미국에서 에니그마 관련 자료를 풀기 시작했다.

전후 컴퓨터의 급속한 발전으로 암호 해석이 전보다 수월하게 된다. 또한 미국 의회 조사청문회에서 나온 말과 같이 암호 해독은 적의 실패에 지대한 공헌을 하였으며, 또한 전쟁을 단축시키는데 힘을 실었으며 덩달아 수천명의 인원을 구한 공로를 인정받아 NSA를 발족시켰다.

냉전이 가속화하는 등 여러가지 이유로 1977년 IBM에서 만든 루시퍼란 블록 암호를 1979년 DES란 이름으로 표준화했다. 그런데 이 때 IBM은 NSA와의 내용이 공개되지 않은 모종의 협의 후 키의 크기를 56비트(64비트에서 8개의 비트는 오류를 검출하기 위한 패리티 비트로 사용)로 줄였다. 이 때문에 NSA 측에서 DES를 우회할 백도어를 만들어 달라고 IBM에게 요청해서 IBM이 그 백도어를 만들기 위해 변형을 했다는 음모론이 지금까지도 존재한다. 그러나 현재까지 그 백도어를 발견한 사람은 없다. 이런 음모론이 나오게 된 것은 DES에서 사용하는 테이블이 어떤 원리에 의해서 만들어진 것인지 IBM에서 명확하게 밝힌 적이 없다는 점에도 기인한다. 비록 IBM에서 어떤 문제를 '피하려고' 했는지에 대해서 어느 정도 밝히기는 했지만 그것만으로는 충분하지 않았다.

IBM과 NSA의 협의 내용에 대해서는 90년대에 해명이 나왔다. 90년대에 블록 암호에 대한 새로운 공격방식인 차분 공격(differential attack)이 개발되어 그 전에 나온 여러 블록 암호들이 깨지는 사태가 벌어졌는데, 뜻밖에도 오래된 암호인 DES는 이러한 공격이 큰 효과가 없었다. 따라서 연구자들은 DES를 설계한 IBM의 연구자들이 차분 공격을 그 당시에 이미 알고 있었으며 이에 대비했음이 분명하다는 결론을 내렸다. 그러자 IBM에서도 이를 인정하는 발표를 했는데, NSA와의 협의에서 NSA가 요청한 것은 DES를 변형시키라는 것이 아니고 바로 차분 공격에 대해서는 공개하지 말라는 것이었다고 한다. 공개하지 말라는 요청에는 '다른 암호가 깨져서 혼란이 생기는 것을 방지하기 위해서'라는 설명이 붙었지만, 이는 NSA가 다른 암호를 깰 수 있는 공격법 하나를 비밀스럽게 가지고 있게 되는 결과가 된다. (IBM과 함께...) 물론 이것은 적당히 그럴듯한 스토리일 뿐이라며 DES에 백도어가 있을 것이라고 생각하는 사람도 여전히 많다.

현대에는 DES를 깰 수 있다. 이는 특별한 약점이 발견되었기 때문이 아니라 56비트는 너무 짧기 때문에 현대의 컴퓨터로 모든 가능한 키를 전부 검사해 보는 것이 가능해졌기 때문이다. 이 문제는 Triple DES[37]나 DES-X 등의 변형판을 이용하면 대처할 수 있으나, 문제를 근본적으로 해결하고 블록 암호를 개선하기 위해서 미국은 블록암호 방식인 Rijndael을 도입하여 새로운 표준인 AES를 정의한다. AES에서는 128비트, 192비트, 256비트인 경우를 표준으로 하지만 Rijndael은 키의 크기가 32비트의 배수인 모든 경우에 대해서 정의되어 있으므로 필요한 경우 쉽게 확장할 수 있다. 또한 AES를 어떤 원리로 설계했는가가 전부 공개되어 있다. 그리고 소프트웨어로 구현하는 경우 AES가 DES보다 빠른데, 그 이유는 DES는 회로를 이용해서 직접 구현하는 것만을 가정한 디자인이지만 AES는 소프트웨어로 구현하는 것 역시 고려했기 때문이다.

AES와 유사한 방식으론 한국을 만악의 근원 ActiveX 천국으로 만든 SEED가 있다.

블록 암호는 특정 크기의 메시지 블록을 같은 길이의 다른 블록으로 변환하는 암호계이다. 메시지 블록이 어떤 블록으로 변환될 것인지는 키에 달려있으며, 동일한 키로 변환된 블록을 역변환하여 원래의 메시지 블록을 얻어낼 수 있다. 블록 암호는 그 자체로 안전한 암호계는 아니며, 어디까지나 안전한 암호계를 만들기 위한 구성 요소로 사용된다. 블록 암호로 안전한 암호계를 만들기 위한 방법들은 영어 위키백과 Block cipher mode of operation 참조.

1976년에는 RSA 암호방식과 함께 공개키 암호계가 나타났다. 공개키 암호계는 암호를 만들기 위한 키와 해석하기 위한 키가 서로 다른 것으로, 암호를 만들기 위한 키는 공개키로서 공개하여 모든 사람이 암호를 만들 수 있지만 그 암호를 해독하는 것은 비밀키가 있어야 가능하도록 만드는 것이다. 공개키 암호계 중에서 최초로 개발된 RSA 방식은 소인수분해를 이용한 방식이며, 대부분의 상용 시스템은 RSA 방식에 기반을 두고 있기 때문에 만약 큰 수의 소인수분해가 빨라지게 되면(대표적으로 양자컴퓨터의 실용화) 대부분의 시스템을 뜯어고쳐야 하는 불상사가 발생한다.

그리고 암호학에서 제일 큰 영향을 미친 PGP가 등장하게 된다. Pretty Good Privacy란 이름의 프로그램인데, 이 프로그램은 국가기간에만 치중되어 있던 암호기술을 개인까지 내리는 역할을 하였다. 그래서 NSA에선 테러리스트들이 이걸 쓰면 어쩌냐고 하지만, 아직까지 잘 쓰이고 있다. 이 프로그램의 제작사는 현재 시만텍이지만, GNUPG(GNU Prvacy Guard)라든가 OpenPGP등의 오픈소스로도 나오고 있다.

3. 암호 용어 설명

  • 평문(Plaintext) : 암호화될 메시지.
  • 스테가노그래피(Steganography) : 메시지 존재 자체를 숨겨버림. 예론 투명잉크, 마이크로도트등이 있음. 컴퓨터 프로그램으로는 openstego가 있다. 이미지파일에 파일을 첨부숨길 수 있다. 파일은 못 올리고 그림만 올릴 수 있는데 올리면 되겠다.
  • 동음이자(Homophone) : 치환을 하는데 한 문자가 여러가지 치환 대상이 있는 경우. 예를 들어 e를 암호화할 땐 16뿐만 아니라, 74, 42, 96 중에서 치환이 가능한 걸 가리킴.
  • 단일문자 체계(Monalphabetic) : 하나의 암호에 하나의 문자만 대응.
  • 다중문자 체계(Polyalphabetic) : 두개 이상의 암호에 미리 정해진 어떤 유형에 따라 대응되는 경우.
  • 코드(Code) : 평문의 구성요소를 치환하는 수천개의 단어로 구성됨. 이들을 가리켜 코드그룹이라고 함. 은어도 일종의 코드라고 볼수 있음.
  • 명칭일람(Nomenclator) : 반은 코드고 반은 암호. 코드와 비슷한 이름, 단어, 음절 목록과 동음이자를 가진 분리된 암호 알파벳으로 구성.
  • 상업용 코드(Commercial Code) : 현재도 텔렉스 같은데서 사용됨. 통신비용을 줄이기 위한 코드.
  • 키 : 암호 알파벳을 배열, 변환할때 뒤섞는 방법, 암호기계의 설정등을 지정. 대부분 체계 안에 있으며, 체계의 다양한 요소들을 조정한다.
  • 코드를 풀때, 재암호화 단계를 초암호화(Superencipherment)단계라고 하며 초암호화를 거치면 아직 해독하지 않는 플라코드(Placode)가 나오며, 이걸 풀면 엔시코드(Encicode)가 된다.
  • 암호화(Encryption) 랜섬웨어에 걸린 적이 있는 사람에겐 가장 무서운 단어이다
  • 해독(Decipher, Decode, Decryption. 암호학에서는 대부분 Decryption이라는 말을 쓴다.) : 변형과정을 되돌려 원본 메시지를 드러냄. 열쇠나 암호체계를 소유하지 않는 제 3자가 푸는 건 암호분석이라고 한다.
  • 암호학
    • Cryptography(암호작성술) : 암호체계(Cryptosystem)를 디자인하는 일.
    • Cryptanalysis(암호해독) : 암호를 해독하고 해당 암호체계의 보안을 분석하는 일.
    • Cryptology(암호학) : 암호 연구. 위의 두 Cryptography와 Cryptanalysis를 어우르는 학문.
  • Alice, Bob, Eve, Mallet: 암호학 논문에서 송수신자 1, 송수신자 2, 도청 공격자(Eavesdropper), 중간자 공격자(Man-in-the-Middle)를 가리키는 전통적인 이름이다. 이브가 도청하는 이유는 사실 밥이 이브 몰래 앨리스와 바람을 피워서 그렇다 카더라
  • salt : 암호화 시 덧붙이는 문자열.
  • 눈사태 효과(Avalanche Effect) : 원문의 미묘한 차이로도 암호문의 차이점을 크게 만드는 암호 알고리즘 설계 기조.

4. 게임에서의 암호(패스워드)

아직 정식으로 세이브가 불가능하던 시절 개발된 게임은 현재의 상황을 암호화하여 영어, 숫자, 일본어 등으로 변환해 플레이어에게 제공했다. 다음에 이어서 하게 될 경우 마지막 플레이에서 본 패스워드를 입력해서 게임을 속행하면 된다. 플레이 타임이 매우 길었던 RPG 어드벤처 게임에서 많이 시도되었다.

문제는 저장해야 할 정보의 양이 많아서 패스워드 역시 무척이나 길어지게 되었고, 당시 게임들의 해상도가 매우 낮다 보니 일본어로 된 패스워드는 알아보기 힘들어 일본어를 모르는 다른 나라 사람에게는 글자들이 너무 비슷하게 보여서 헷갈리는 경우가 많았다. 게다가 일본 국내에서도 이런 문제가 빈발하여서 여태까지 한 노력이 수포로 돌아간 사례가 수도 없이 많다. 때문에 록맨 시리즈처럼 패스워드 입력을 쉽게 만들어주는 UI를 도입한 게임도 있었다.

여러 게임들이 세이브 기능을 지원하기 시작한 이후에도, 세이브 기능을 구축하기 어려웠던 오락실 게임에는 꽤 최근까지 쓰였다. 인터넷 랭킹도 이 기술을 이용해서 경쟁하는 시스템으로, 개인 데이터를 카드가 아닌 서버에 저장하기 시작한 이후 사라졌다.

워크래프트 3 유즈맵 중에 대다수의 RPG 맵들이 이와같은 방법으로 save를 치면 암호화된 키가 화면에 나오고 그걸 메모했다 나중에 -load xxxxxxx식으로 불러오기를 한다.

파칭코 기기의 경우도 당첨 포인트를 모아 게임 내 숨겨진 BGM 등을 해금하는 시스템이 있는 경우가 있는데, 확률 조작의 우려로 데이터 영속화 및 네트워크 기능이 불가능하기 때문에 이런식으로 데이터를 세이브/로드한다.

데이터 저장 시스템을 만들지 못한 EZ2AC 시리즈 EZ2DJ 7th TRAX CLASS R ~CODENAME:VIOLET~에서 패스워드 암호화를 통한 데이터 저장 방식을 간접적으로 구현했다. 이미 공식이 다 뚫린 지 오래된 기술인지라 대놓고 암호 생성기가 돌아다닐 정도로 허술했고 이 생성된 암호가 시스템을 다운시키는 경우도 생기는 등 문제가 많아지면서 결국 패치를 통해 이 시스템을 없앴다.

5. 기타

명탐정 코난: 100만 달러의 펜타그램에서 주요 인물들이 찾으려는 보물이자 무기는 2차 세계대전에서 쓰던 암호 해독기로 드러나, 이를 찾기 위해 하코다테 산의 동굴에 들어온 누군가가 암호 해독기 앞에서 오열한다.

6. 암호의 종류

7. 미해독 암호

8. 관련 문서


[1] 정작 현대 표준 중국어로는 密碼라고 훨씬 자주 지칭한다. 碼는 원래 마작 도박에 쓰는 패를 뜻하다가, 청나라 때부터 뜻이 확장되어 '숫자'나 '코드'의 뜻을 지니게 되었다. [2] password가 pass+word 임을 상기해보자. [3] 4번째 글자만 읽어보면 "벌이쏜꽤아프담벼락자갈밭들숨날을겨우우살려다고했", 즉 "침대 밑에 숨겨놨음"이 된다. [4] 단, 해당 이름으로 스퀴탈레 암호화 방법이 조선에서 사용되었다는 역사적 근거는 없다. 중화권에서는 밀마봉(密碼棒)이라는 한역된 이름으로 스퀴탈레 암호를 지칭하지만 근현대 이후의 번역어로 보인다. 암호를 뜻하는 密碼라는 말부터가 청나라 시대에나 쓰이기 시작한 단어다. [5] 여기서는 26으로 나눈 나머지에 위치하는 글자를 찾으라는 뜻이다. 자세한 내용은 합동식 문서 참고. [6] 평문에서 특정 글자가 나타나는 빈도 수를 토대로 통계학적으로 유추해내는 것. 당연히 동일한 키를 사용한 암호문 샘플이 많으면 많을수록 좋다. 예를들어 영어에서는 모음 a, e등이 가장 빈도가 높은데, 단일치환 암호에서는 다른 두 알파벳으로 바뀌므로 테스트해 볼 조합 수를 크게 줄여준다. [7] 악마의 숫자로 알려진 666도 원래는 게마트리아라는 수비학적 암호 체계로 누군가의 이름( 네로 황제일 가능성이 가장 높다)을 표현한 것이었다. [8] 사이퍼라기보다는 꼼수에 가깝다. [9] 당시 신문은 무료로 배송되었다. [10] 2차 대전 종전 때까지 생존했고, 현대 오스트리아 연방군 군사정보국(Heeres-Nachrichtenamt) 설립에도 참여했으나 창설을 보지는 못하고 노환으로 사망했다. [11] 참고로 이 사람의 사촌인 프란치셰크 포코르니도 역사에 족적을 남긴 암호해독가다. 헝가리인이었던 사촌 헤르만과 달리 폴란드인이었던 그는 1차 대전 이후 폴란드 암호국에서 일하며 나치 독일 에니그마 해독에 기여했다. [12] 초기 버전은 ADFGX였다가, 나중에 보안 강화를 위해 V가 추가되었다. 해당 알파벳들을 사용한 이유는 모스 부호로 변환 시 청각적으로 서로 뚜렷하게 구분이 되는 글자들이었기 때문이다. [13] 팽뱅은 이 암호를 해독하느라 너무 고생해서 앓아 누울 지경까지 갔다고 한다. 당시 기준으로는 ADFGVX 암호체계가 상당히 혁신적이고 어려웠던 탓이다. [14] 九七式欧文印字機 : 유럽 알파벳을 쓰는 97형식의 타자기. 일명 퍼플. [15] 사실 미국 암호해독반에게 가장 골치를 썩였던 암호는 가고시마 사투리였다고 한다. 그러나 가고시마 출신의 일본계 미국인 병사가 해석해버리는 바람에 이마저도 뚫리고 말았다. [16] I-1호는 키위보다 배수량만 3배가 넘었던 데다 무장도 5인치 덱건 1문+7.7mm 기관총 2정 vs 4인치 주포 1문+20mm 기관포 1문+7.7mm 기관총 2정으로 더 강한 화력을 가지고 있었다. 수상 속도도 I-1호는 18노트에 키위는 13노트로 더 빨랐다. [17] 키위 승무원들이 갑판에 몰려와 소총과 권총으로 I-1 승무원들을 쏴댈 정도로 혼전이었다고 한다. [18] 암호 해독에서 가장 중요한 것이 평문과 암호문의 쌍을 가능한 많이 수집하는 것이다. 일정한 위치에 일정한 양식의 내용이 반복되는 외교적 언사등은 암호생성 규칙을 유추하는 데 있어서 가장 중요한 자료다. [19] 반나치 인사인 빌헬름 카나리스 제독이 이끌었다. 그가 잡힌 후 슈츠슈타펠 보안대(SD)에 흡수통합되었다. [20] 북극모선모략작전. 여기서 풍크슈빌, Funkspiel은 '무선의'라는 뜻의 Funk와 '유희' 또는 '경기'라는 뜻의 Spiel이 합친 것이다. [21] 당시 체포되어 협조한 레지스탕스 정보원이 몰래 전보에 문제가 있음을 알렸으나, 영국은 근무태만으로 간과했고 이를 알아차린 것도 포로가 되었다가 영국으로 탈출한 정보원이 제보한 덕분이다... [22] 박영수의 암호 이야기(역사 속에 숨겨진 코드) 참조. [23] 그리고 독일과 일본은 이 체계를 종전까지 해독을 못했다. [24] 블레칠리 별장에 위치해 있었다. 그래서 블레칠리 파크라고 종종 불려진다. 이 기관이 발전한게 현재의 GCHQ. 전쟁당시엔 GCCS(Government Code and Cypher School)이란 이름이었다. [25] 이러한 앨런 튜링과 블레츨리 파크의 활약상이 영화 이미테이션 게임으로 만들어졌다. [26] 이 때는 영국 보안조정국 국장 보좌로 근무하고 있었다. [27] 통신을 주고 받으면서 특정 단어를 말할 수밖에 없도록 유도했다. 어디를 날려버린다거나, 밥통을 턴다거나, 혹은 독일군으로 위장한 연합군이 홀로 있는 기상관측선의 에니그마를 턴다던가... [28] 에니그마의 시스템이 같은 철자를 피하도록 되어 있기 때문에, 그날의 에니그마 배열이 들통난다. [29] 말 그대로 아무 전파도 내지 않는 상태. [30] 트리니티 실험에 대한 내용. 꼬마는 플루토늄 폭탄, 박사는 레슬리 그로브스 장군. [31] 나가사키를 향한다고 구체적으로 알아낸 건 아니었다. 애초에 처음에는 고쿠라를 목표로 날아갔는데 폭탄을 투하하기에는 시야가 영 안 좋아서 폭격기 자체 판단으로 예비 표적이었던 나가사키에 투하한 것이었으니 암호 해독으로는 폭격기가 고쿠라로 가는지 나가사키로 가는지는 알아낼 방법이 없었다. [32] 나바호어를 암호로 쓰면 어떻겠느냐는 제안이 올라가던 시기에 바탄 죽음의 행진이 벌어지고 있었다. 조 역시 죽음의 행진에서 간신히 살아남았다. [33] 약 5년 정도 전쟁을 빨리 종결한 걸로 결론 났다. [34] 전후에 프린스턴 대학교 교수로 간다. [35] 이러한 비밀을 소련에게 줄 수 없었고, 그리고 소련에게 점령당할 때를 대비한 게릴라 전의 사전 준비이기도 했다. [36] Valtiollinen poliisi, 영어로는 State Police. 2차 세계대전 당시 핀란드의 방첩기관. 현재는 Suojelupoliisi, Supo [37] DES를 3번돌리는 방식.