에니그마의 해독

에니그마 암호 기계의 해독()은 제2차 세계 대전(world war 2)에서 연합군의 승리에 크게 기여했다. 연합군은 에니그마를 비롯한 독일군의 다른 암호 기계를 해독하는 작업을 작전명 울트라라는 이름으로 불렀다. 연합군 총사령관 D. 아이젠하워 장군은 울트라 작전이 연합군의 결정적 승리에 기여했다고 평했다.
에니그마는 회전판을 기반으로 만들어진 휴대용 전기기계식 암호 장비였다. 현대 학자들은 독일군이 에니그마를 완벽하게 운영했다면 해독이 불가능했을 것으로 평가한다. 그러나 당시의 독일군과 정보기관의 운용 방법은 에니그마의 취약점을 드러냈고, 그 덕분에 연합군이 암호를 해독할 수 있었다.
나치 독일은 플러그보드가 설치된 에니그마를 가장 높은 수준의 암호 체계로 사용했다. 1932년 12월 폴란드 암호국은 프랑스 정보기관이 붙잡은 독일군 스파이로부터 단서를 얻어 이 암호 체계를 처음으로 해독하는데 성공했다. 2차 세계대전 발발 직전, 폴란드 암호국은 이때 알아낸 정보를 동맹국인 프랑스 및 영국과 공유했다. 블레츨리 파크에 소재한 영국 정부의 통신 본부 산하 암호 학교에서는 이 정보를 바탕으로 대규모 암호 해독 시설을 설치했다. 영국은 전쟁 초기 독일 공군과 육군의 일부 메시지만을 해독할 수 있었으나, 앨런 튜링의 연구를 통해 보다 진보된 해군 메시지까지 해독할 수 있게 되었다. 독일 해군은 이후 4번째 회전판이 추가된 더 복잡한 에니그마를 사용했으나, 유보트에서 알아낸 비밀 키와, 더 고속화된 미국 해군의 해독 장비의 도움으로 다시 암호를 해독할 수 있었다.
암호 해독의 원리.
에니그마는 다중치환암호 방식을 사용했다. 제1차 세계 대전 기간 동안 암호학자들은 무작위의 긴 비밀 키를 반복 없이 사용하면 이론적으로 다중치환암호를 해독할 수 없음을 밝혀냈다. 이 발견을 바탕으로 각 글자를 다른 글자로 치환하는 회전판 암호 기계가 만들어졌다. 기본적인 치환 암호는 각 알파벳을 그에 대응되는 다른 알파벳으로 바꾸는 방식을 사용하는데, 기계식 암호 기계는 각 알파벳에 대응되는 암호 알파벳을 전기 회로로 연결해서 사용했다. 회전판 암호 기계는 여기서 한발 더 나가 암호의 배열이 한 글자를 칠때마다 매번 바뀌도록 설계되어 있었다.
당시의 암호 해독은 보통 3 단계로 이루어졌다.
현대의 암호학자들은 1단계와 2단계는 이미 알려져 있다고 가정하고, 비밀 키를 모르면 1단계와 2단계를 알아도 해독이 불가능한 암호 체계를 설계한다. 그러나 에니그마의 경우에는 1단계와 2단계를 알아내는 데도 많은 노력이 필요했다. 특히 에니그마의 경우 내부 배선의 방법에 따라 전혀 다른 암호문이 만들어졌기 때문에, 2단계인 내부 배선을 알아내는 것이 중요했다.
에니그마.
에니그마는 이론적으로 보안 수준이 대단히 높았다. 에니그마가 사용하는 다중치환암호의 보안성은 치환 패턴의 반복 주기에 달려 있는데, 에니그마의 치환 패턴은 수만 글자를 암호화하기 전에는 반복 패턴이 나타나지 않았다. 대부분의 메시지는 이보다 짧았으므로 사실상 반복 패턴을 이용해 에니그마를 깨는 것은 불가능했다.
그러나 에니그마에는 치명적인 약점이 하나 있었는데, 평문과 암호문이 서로 같은 알파벳이 될 수 없다는 점이었다. 이 점을 이용하면 정답 후보 가운데 상당수를 빠르게 제거할 수 있었다. 예를 들어 평문 "Keine besonderen Ereignisse" (보고할 사항 없음)을 다음과 같이 암호화한 결과와 비교하면, 일부 가능성을 쉽게 제거할 수 있었다.
구조.
에니그마 기계의 오른편에는 평문을 입력하는 입력 키보드와 전지가 달려 있었다. 독일군이 사용하는 더 복잡한 버전에는 키보드 배열을 한번 더 뒤섞어 주는 플러그보드가 달려 있었다. 내부의 회전판은 키보드의 전기 입력을 반대편으로 전달하는 역할을 했으며, 키보드에서 한 글자를 입력할 때마다 회전판이 회전하여 배열이 바뀌는 구조를 갖고 있었다. 기계의 왼편에는 회전판으로부터 전달된 전기신호를 다시 회전판으로 되돌려주는 반사판이 달려 있었는데, 반사판은 13쌍의 알파벳이 서로 쌍으로 연결되어 있어 한 글자를 다시 다른 글자로 대응시켜 주었다. 회전판을 통해 돌아온 전기 신호는 최종적으로 암호화된 암호문에 해당하는 전등을 켜게 되어 있었다.
에니그마는 3개의 회전판을 갖고 있었고, 각각의 회전판은 키보드를 칠때마다 한 눈금씩 움직이는 "빠른" 회전판과 빠른 회전판이 한바퀴 돌때마다 한 눈금씩 움직이는 "중간" 회전판, 그리고 그보다 더 느린 "느린" 회전판으로 이루어져 있었다. 회전판 내부의 배열은 비밀이었기 때문에, 이를 알아내려면 엄청난 수의 조합을 시험해 보아야 했다. 또한 3개의 회전판을 서로 다른 순서로 끼워넣을 수 있어, 경우의 수는 다시 6배로 늘어나게 되었다. 연합군 암호해독가들은 이것을 "바퀴 순서"(Wheel Order)라고 불렀다.
또한 각 회전판의 가장자리에는 26개의 알파벳이 적혀 있었는데, 회전판을 알파벳 중에 하나로 미리 설정해놓고 암호화를 시작하면, 각 초기값에 따라 전혀 다른 암호가 만들어졌다. 현대 암호학자들은 이와 같은 암호 시스템의 초기값을 초기화 벡터라고 부른다. 독일군은 암호문마다 서로 다른 초기값을 사용했으며, 이를 "메시지 키"라고 불렀다. 회전판의 주변에 적힌 알파벳은 초기 모델에는 고정되어 있었지만, 후기 모델은 회전판의 가장자리 링 또한 회전시킬 수 있었다.
전쟁 후반에 독일군은 이 회전판을 3개가 아니라 5개 중 하나로부터 임의로 고르는 방식으로 바꾸었고, 독일 해군의 경우 8개나 되는 회전판을 도입했다. 또한 독일군은 상업용 에니그마를 개량해 "플러그보드"()를 도입했는데, 이 장치는 키보드의 배열과 입력 회로를 서로 반대로 바꾸는 효과가 있었다. 예를 들어 A 키와 G 키를 플러그보드에서 서로 연결하면 A 키를 누르면 G가 입력되고 G 키를 누르면 A가 입력되었다.
이런 복잡한 구조로 인해 연합군 암호해독가들은 다음과 같은 정보를 알아야 했다.
암호 기계의 논리적 구조 (불변)
내부 설정 (외부 설정에 비해 자주 바뀌지 않음)
외부 설정 (자주 바뀜)
보안 요소.
에니그마의 안전성은 각 에니그마 기계의 설정에 따라 생겨나는 너무나 많은 경우의 수에 달려 있었다.
그러나, 독일군은 회전판의 시작 위치를 제외한 에니그마의 설정을 하루에 한번만 바꿨기 때문에, 하나의 암호문만 해독하면 그날의 나머지 암호문은 순식간에 해독할 수 있었다.
에니그마는 다음과 같은 약점을 갖고 있었다.
키 배열.
에니그마는 운용을 편리하게 하기 위해 대칭성을 갖고 있었다. 암호화된 암호문을 똑같은 설정의 에니그마로 다시 입력하면 원래의 평문이 복원되었는 성질이었다.
독일군은 보내는 쪽과 받는 쪽이 동일한 키 배열로 메시지를 주고받을 수 있도록, 키 배열을 정하는 절차를 갖고 있었다. 이 절차는 배열표와 암호책으로 구성되어 있었는데, 해가 바뀌면서 자주 변경되었고, 암호망에 따라서도 서로 달랐다. 각 암호망은 배열표와 암호책을 서로 공유하면서 주기적으로 변경했다. 각 메시지의 비밀 키는 각 메시지의 첫 부분에 함께 전송되었는데, 이 비밀 키는 24시간마다 교체되었고, 전쟁 후반에는 더 자주 교체되었다. 배열표에는 매일 사용해야 할 기계 설정이 적혀 있었고, 그날 사용된 배열표는 다음날 파괴하도록 되어 있었다.
1938년 9월 15일까지, 보내는 측 암호병은 메시지 시작 부분에 회전판의 초기 설정(초기화 벡터)을 알려주는 3글자의 메시지 키를 그날의 링 설정에 맞춰 암호화하여 보냈다. 메시지 키는 각 메시지마다 다른 값이 사용되었다. 예를 들어 그날의 링 설정이 "RAO"이고 해당 메시지의 키가 "IHL"이면, 암호병은 링 설정을 "RAO"로 설정한 후 메시지 키 "IHL"을 암호화한다. 독일군은 이때 메시지 키를 잘못 보내는 경우를 미리 감지하기 위해 메시지 키를 두번 입력한 후 이를 암호화하는 방식을 사용했다. 예를 들어 "IHLIHL"이라고 입력하면 암호화된 결과인 "OTUNSD"가 전송되는 식이었다. 받는 측의 암호병은 첫번째 3글자를 해독한 후, 두번째 3글자를 해독하여 첫번째 받은 3글자와 맞는지 비교해본다. 이 결과가 맞다면 받는 측에서는 메시지 키를 잘 전달받았음을 알 수 있고, 메시지를 정확하게 해독할 수 있게 된다.
이 운용 방식에는 두 가지 치명적인 약점이 있었는데, 하나는 똑같은 링 설정이 24시간동안 계속 사용된다는 점이고, 두번째는 첫 6글자로부터 메시지 키에 관한 많은 정보를 알아낼 수 있다는 점이었다. 1, 2, 3번째 글자와 4, 5, 6번째 글자가 각각 같은 글자를 암호화한 결과라는 것을 알고 있다면, 메시지 키와 내부 배열에 대해 많은 정보를 얻어낼 수 있게 된다. 폴란드 암호국은 이 약점을 이용해 1932년 상용 에니그마를 해독할 수 있었다. 그러나 1940년 5월 1일, 독일군은 이 절차를 변경해 메시지 키를 한번만 암호화해서 전송하도록 변경했다.
전쟁 발발 전.
1927년, 영국 정부는 상용 에니그마를 구입해 분석했다. 제1차 세계 대전 때 활약했던 영국 암호해독가 딜리 녹스는 이를 이용해 에니그마의 원리를 연구했다. 독일은 스페인 내전 당시 국민군 진영과 이탈리아 해군에게 개량판 에니그마를 제공했는데, 딜리 녹스는 1937년 4월 이 메시지들을 해독할 수 있었다. 그러나 영국은 독일군이 개량한 플러그보드가 달린 에니그마에 대해서는 알지 못했다.
폴란드 암호국.
1920년대 독일은 회전판이 3개 달린 에니그마를 사용했으며, 1930년대에는 플러그보드를 달아 보안성을 높였다. 상용 에니그마는 비교적 쉽게 해독이 가능했지만, 플러그보드가 달린 에니그마는 플러그보드의 설정에 따라 경우의 수를 수만 배로 늘릴 수 있어 해독을 어렵게 만들었다.
독일군의 위협이 증가하면서, 폴란드 암호국은 플러그보드가 달린 에니그마를 해독하기 위해 노력했다. 1932년 9월 1일, 27세의 폴란드 수학자 마리안 레예프스키가 동료 수학자들과 함께 폴란드 암호국에 합류했다. 레예프스키의 첫번째 임무는 독일 군용 에니그마의 논리적 구조를 분석하는 것이었다.
1932년 12월 프랑스군 정보당국은 독일에 침투한 스파이로부터 획득한 에니그마의 일일 배열표 일부를 폴란드 암호국에 넘겨주었다. 이 정보를 치환군 이론으로 분석한 레예프스키는, 이후 암호학 사상 가장 중요한 발견 가운데 하나로 꼽히는 발견을 하게 된다.
레예프스키의 암호 특성 분석.
레예프스키는 독일군이 에니그마의 설정을 하루에 한번만 바꾼다는 약점을 간파했다. 또한 각 메시지의 처음에 보내는 6자리 메시지 키가 해독에 중요한 단서가 되었다. 이 단서를 바탕으로 레예프스키는 그동안 비밀이었던 회전판의 내부 배선 설정을 알아냈다. 위 키 배열 항목에서 설명한 것처럼, "OTUNSD"라는 메시지 키에서 "O"와 "N", "T"와 "S", "U"와 "D"가 서로 대응되는 글자라는 것을 알 수 있다. 레예프스키는 이 사실을 이용해 동일한 에니그마 설정을 기준으로 어떤 글자가 다른 글자에 대응하는지를 분석했다. 예를 들어 어떤 날의 메시지 첫번째 글자와 네번째 글자가 다음과 같이 대응된다는 사실을 알아냈다고 하자.
윗줄의 "A"를 아랫줄 "X"에 대응시키고, 다시 윗줄의 "X"를 찾아가 아랫줄 "Y"를 대응시키고, 이를 반복하여 다시 원래의 "A"가 나올 때까지 추적하면, 알파벳으로 이루어진 순환 그래프가 만들어진다. 위 표를 예로 들면, 4개의 순환 그래프를 만들 수 있다.
레예프스키는 플러그보드의 설정에 따라 글자가 바뀔 수는 있지만, 위 순환군의 구조(이 경우 12, 2, 10, 2의 4개 순환군)는 플러그보드가 아무리 바뀌어도 바뀌지 않는다는 것을 발견했다. 즉, 플러그보드가 전혀 달라도 순환군의 구조가 같으면 같은 회전판 설정으로 생성된 암호라는 것을 알 수 있다. 플러그보드가 없다면, 찾아야 할 내부 설정의 개수는 1경가지에서 10만가지 정도로 극적으로 줄일 수 있었다. 폴란드 암호국은 이 발견을 바탕으로 모든 순환군의 구조를 목록으로 작성했다.
1934년 또는 1935년경, 레예프스키는 이 순환군 목록 작성을 도와주는 치클로메트르라는 기계를 만들었다. 이 기계는 두개의 회전판을 배선으로 연결하여, 어떤 회전판이 어떤 순환군 구조를 갖는지 바로 보여줄 수 있는 기계였다. 이 기계를 이용해서도 회전판의 구조를 알아내는 것은 1년 가까이 걸렸다. 그러나 이 작업이 완료된 뒤에는 15분 정도만에 그날의 메시지 키를 바로 알아낼 수 있었다.
그러나 1937년 독일군이 에니그마의 운용 방식을 변경함에 따라 레예프스키의 특성 분석 방법은 사용할 수 없게 되었다. 독일 육군과 공군은 메시지 키를 매 메시지마다 바꾸도록 변경했고, 해군은 메시지 키를 특수한 암호책으로부터 얻는 것으로 변경했기 때문이다.
지갈스키 표.
레예프스키의 특성 분석이 더 이상 통하지 않게 되었지만, 또다른 수학자 헨리크 지갈스키는 메시지 키를 두번 반복하는 운용 방식으로부터 또다른 약점을 발견했다. 종종 메시지의 1/4번째, 2/5번째, 3/6번째 짝이
같은 글자로 이루어질 때가 있었는데, 암호해독가들은 이런 짝을 사미치키(암놈, )이라고 불렀다. 이 용어는 후에 블레츨리 파크에서도 그대로 번역되어 () 사용되었다.
사미치키가 나타날 수 있는 회전판 설정은 제한되어 있었다. 예를 들어 SZVSIK"처럼 1-4번째가 같은 것은 1-4 사미치키, "WHOEHS"이면 2-5 사미치키, "ASWCRW이면 3-6 사미치키라고 불렀는데, 지갈스키는 사미치키가 나타날 수 있는 위치에 미리 구멍을 뚫어놓은 표를 사용해 이를 빠르게 알아내는 방법을 개발했다. 블레츨리 파크 또한 똑같은 방법을 사용했지만, 보안을 이유로 지갈스키 표 대신 구멍뚫린 표라는 표현을 사용했다.
폴란드 암호국은 6가지 가능한 회전판 순서에 26개 알파벳을 곱해 156장의 표를 구성했다. 각각의 표는 가장 느린 회전판에 해당했고, 각 표의 51 × 51 칸은 중간 및 빠른 회전판의 676가지 가능한 설정을 표시했다. 표의 각 칸에는 해당 설정에서 나타날 수 있는 사미치키의 위치에 구멍이 뚫려 있었다. 폴란드 암호국은 이 표를 그날 나타난 사미치키의 위치에 겹쳐, 맞지 않는 표를 하나씩 빼면서 그날의 회전판 설정을 맞추는 방법을 사용했다. 하루에 10개 정도의 사미치키가 나타나면 그날의 회전판 설정을 알아낼 수 있었다.
그러나 이 표를 만드는데는 많은 수고가 들었고, 레예프스키는 이를 자동화하는 방법을 구상했다.
폴란드 봄바.
레예프스키는 자신의 특성 분석 방법을 사용할 수 없게 됨에 따라 지갈스키의 사미치키를 더 빨리 찾아낼 수 있는 기계를 구상했다. 봄바 역시 마찬가지로 사미치키를 기준으로 회전판 설정을 찾아내는 기계였으나, 10개가 아닌 3개 정도만 있으면 그날의 회전판 설정을 알아낼 수 있었다. 봄바는 수동으로 동작하는 6개의 에니그마 기계를 연결한 것과 유사한 구조로, 해당하는 사미치키와 맞는 설정이 나오면 6개 가운데 하나의 기계가 소리를 내게 되어 있었다. 훗날 레예프스키의 말에 따르면, 이 기계 한대는 약 100여명의 해독가가 수동으로 하던 작업을 대신해 주었다고 한다.
독일군의 보안 강화.
폴란드 침공 9개월 전인 1938년 12월 15일, 독일군은 에니그마에 4번째 및 5번째 회전판을 추가해 이 가운데 3개를 고르는 방식으로 운용 방법을 변경했다. 이로 인해 회전판 순서의 가지수는 6가지에서 60가지로 10배로 증가했다. 이 조치 이후 폴란드는 극히 일부의 에니그마 메시지만 해독할 수 있게 되었다. 폴란드 암호국은 54개의 또다른 봄바를 제작하거나 58개의 지갈스키 표를 추가 제작할 여유가 없었다. 다행히 나치당과 친위대는 회전판을 추가한 뒤에도 여전히 예전과 같이 동일한 메시지 키를 하루동안 사용하는 방식을 썼다. 레예프스키는 이를 이용해 4번째 및 5번째 회전판의 배선 또한 알아낼 수 있었다. 그러나 회전판의 배선을 알아낸 후에도, 늘어난 경우의 수로 인해 여전히 해독은 쉽지 않았다.
제2차 세계 대전.
폴란드의 정보 공유.
1939년 전쟁의 가능성이 점점 명백해짐에 따라 폴란드의 동맹 영국과 프랑스가 만약의 경우 폴란드를 돕겠다는 의사를 분명히 했다. 폴란드 참모부는 이때까지 알아낸 에니그마에 관한 정보를 서방 동맹국과 공유하기로 결정했다. 후에 레예프스키는, 동맹국과 정보를 공유하기로 한 것은 암호 해독이 어려워졌기 때문이 아니라 국제정세가 폴란드에게 점점 불리해졌기 때문이라고 언급했다.
1939년 7월 폴란드는 프랑스와 영국에 자신들이 에니그마를 해독했음을 알리고, 폴란드에서 역설계한 에니그마 기계를 포함, 지갈스키 표와 폴란드 봄바 등의 해독 방법을 모두 전달할 것을 약속했다. 영국은 이에 대한 보답으로 2개의 추가 회전판 해독에 필요한 58개의 지갈스키 표를 추가로 제작해 줄 것을 약속했다. 폴란드에서 제작한 에니그마 사본은 8월에 프랑스와 영국으로 전달되었다.
후에 블레츨리 파크 3번 방의 책임자가 된 피터 칼리오코레시에 따르면, 영국은 폴란드의 해독법을 그대로 사용하지는 않았으나, 폴란드의 방법으로부터 많은 것을 배워, 에니그마의 해독을 1년 정도 앞당길 수 있었다고 한다. 이때까지 폴란드는 메시지 키를 반복 전송하는 약점에 전적으로 의존하고 있었으나, 영국 암호해독가들은 독일군이 운용 방식을 바꾸기만 하면 이 방식을 더 이상 사용할 수 없다는 점을 지적했다.
PC 브루노.
1939년 9월 17일, 소련군이 폴란드 동부를 침공함에 따라 폴란드 암호국은 남동부 국경을 넘어 루마니아로 탈출했다. 10월 20일에 파리 교외 PC 브루노에 도착한 암호국 직원들은 독일군의 암호 해독을 계속했다.
PC 브루노와 블레츨리 파크는 폴란드가 제작한 에니그마 사본을 이용해 전신으로 통신하며 긴밀하게 협력했다. 1940년 앨런 튜링은 영국에서 제작한 58개의 추가 지갈스키 표를 PC 브루노에 전달했고, 이곳에서 폴란드 해독가들과 의견을 교환했다. PC 브루노의 암호해독가들은 1940년 1월 17일, 최초로 전시 에니그마 암호를 해독했다. 1940년 6월 프랑스가 항복할 때까지 PC 브루노에서는 전체 메시지의 약 17퍼센트를 해독할 수 있었다.
1940년 5월 10일, 연합국 암호해독가들이 우려하던 대로 독일군의 에니그마 운용 방식이 변경되었다. 독일군은 더이상 메시지 키를 두번 반복해서 보내지 않았고, 이에 따라 기존에 사용하던 지갈스키 표와 폴란드 봄바 방법이 둘 다 무용지물이 되었다.
프랑스 항복 후 레예프스키와 지갈스키는 몇 차례의 위험한 탈출을 반복해 영국으로 망명했다. 그러나 블레츨리 파크는 독일군 점령 지역에서 탈출한 두 사람과 정보를 공유하는 것은 너무 위험하다고 판단하고, 나치 친위대가 사용하던 수기 암호를 해독하는 일만을 맡겼다. 한편 PC 브루노에서 일하던 다른 폴란드 해독가들은 독일군에 붙잡혔지만, 다행히 아무도 에니그마에 관한 비밀을 누설하지 않았다.
운용상 취약점.
에니그마가 현대의 기준으로 완벽한 암호체계는 아니지만, 당시 에니그마의 진짜 취약점은 그 운용 방식에 있었다. 에니그마와 같은 다중치환암호는 해독가가 원문을 예상할 수 있을 경우 공격에 취약해진다는 단점이 있다. 이를 잘 몰랐던 당시의 암호 장교들의 게으름이나 실수, 그리고 운용법 자체의 약점으로 인해 여러 취약점이 드러나고 있었다. 운용상의 실수가 아니었다면, 에니그마는 당대의 기술로 해독할 수 없었을 것으로 예상된다.
폴란드 해독가들이 이용했던 취약점들은 다음과 같다
전쟁 발발 후 영국과 미국의 해독가들이 이용했던 취약점은 다음과 같다
독일군 암호전문가들은, 에니그마의 해독이 이론상 가능하기는 하지만 해독을 위해 너무나 많은 경우의 수를 시험해봐야 하며, 이를 깰 수 있을만큼 자원을 투자하는 것은 불가능할 것으로 예상했다. 독일군은 만약의 경우를 위해 에니그마를 끊임없이 개선했지만, 해독이 정말로 가능할 것이라고는 믿지 않았다.
기지 평문 공격.
블레츨리 파크는 암호화된 암호문의 원문으로 예상되는 평문의 조각을 크립()이라고 불렀다. 에니그마는 구조상 알려진 평문을 기반으로 한 공격에 취약했고, 영국 해독가들은 이를 적극적으로 이용했다.
영국 정부 암호 학교(GC&amp;CS)는 블레츨리 파크로 이사하기 전, 수학자와 논리학자의 중요성을 깨닫고 이들을 적극적으로 고용했다. 케임브리지 대학교의 천재 수학자 앨런 튜링은 1938년 뮌헨 사태 무렵 암호 학교에 합류했다. 케임브리지의 또다른 수학자 고든 웰치먼도 1938년 무렵에 암호 학교에 합류했다. 전쟁 발발 다음날인 1939년 9월 4일, 두 수학자는 블레츨리 파크에 합류했다.
그때까지 폴란드 해독가들의 암호 해독은 메시지 키를 두번 전송하는 취약점에 거의 전적으로 의존하고 있었다. 블레츨리 파크의 딜리 녹스는 이 취약점이 금방 막힐 수 있다고 생각하고 있었고, 그의 팀에 합류한 튜링은 다른 취약점을 이용한 암호 해독법을 연구하기 시작했다. 딜리 녹스의 예상대로 독일군은 몇달 되지 않아 이 운용 방식을 폐기했다.
폴란드는 독일군이 플러그보드 배선을 6개만 사용할 무렵부터 크립 기반 공격을 사용하고 있었다. 이 공격은 "Forty Weepy Weepy"라고 불렸는데, 자주 사용되는 평문 가운데 "FORTYWEEPYYWEEPY"라는 내용이 있었기 때문이다. 독일군은 숫자를 나타내기 위해 QWERTZ 자판의 윗줄에 대응하는 숫자를 쓰고, 좌우를 Y로 감싼 후 두번 반복하는 방식으로 숫자를 표현했다. Fort는 계속을 의미하는 독일어 "Fortsetzung"의 약자였고, 2330(군대에서 23시 30분을 나타내는 표현)을 QWERTZ 자판에 대응시키면 WEEP가 되었으므로, FORTYWEEPYYWEEPY는 "23시 30분에 보냈던 메시지의 계속"이라는 의미가 되었다.
영국은 평문을 추정하여 암호를 해독하는 방법을 많이 사용했는데, 평문을 추정하는 것은 많은 요령이 필요했다. 이를 위해 블레츨리 파크 8번 방에 평문 추정을 담당하는 "크립 방"()이 생겨났다.
평문을 추정하는데 가장 유용한 것은 바로 이전 메시지의 내용이었으므로, 블레츨리 파크는 에니그마를 운용하는 모든 장교와 배 및 부대의 목록을 관리하고 있었다. 또한 자주 사용되는 용어를 찾아내기 위해 독일의 군사용어와 주소, 기술용어 등의 긴 목록을 갖고 있었다. 라디오에서 도청한 모든 메시지마다 발신지 및 수신지, 주파수, 발신 시각, 도청 시각, 망 이름 등의 정보가 기록되었고, 이후 나타나는 새로운 메시지와 교차 비교해 분석되었다. 따라서 이전 메시지를 많이 해독하면 할수록 새 메시지 해독에 도움이 되었다.
흔히 사용되는 메시지 가운데는 "Keine besonderen Ereignisse" (보고할 것 없음, 또는 이상 무) "An die Gruppe" (집단군에게) 등의 메시지가 있었다. 또한 에르빈 롬멜 원수의 병참장교는 항상 동일한 인사말로 메시지를 시작했기 때문에 쉽게 해독할 수 있는 빌미를 주었다. 에니그마의 암호문과 평문이 절대 같은 글자가 될 수 없다는 특성과 합쳐지면, 흔히 사용되는 평문이 어떤 위치에 들어가는지를 추정하는 단서가 되었다. 기지 평문 공격의 이런 특성 때문에, 데렉 턴트는 좋은 암호해독가에게는 창조적 상상력과 비판적 사고력, 그리고 꼼꼼함이 필요하다고 말했다. 특히 블레츨리 파크는 신입 해독가들을 고용할 때 가로세로 낱말 풀이를 얼마나 잘 하는지를 시험하기도 했다. 낱말 풀이 기술은 특히 플러그보드의 배선을 추정할 때 많은 도움이 되었다. 쉬운 예로, 플러그보드를 알아내기 전 해독 결과가 "TEWWER"라면, 이는 독일어로 날씨를 의미하는 "WETTER"에서 "T"와 "W"의 배선이 바뀐 것으로 추정할 수 있었다.
또한 영국은 독일군 스파이 가운데 한명을 이중간첩으로 전향시킨 후, 아무런 배신행위를 하지 말고 독일군 정보부에 평소처럼 보고하되, 보고을 정확히 블레츨리 파크에 전달하도록 했다. 이 스파이가 보고한 내용이 그대로 독일군 암호망을 통해 전달될 경우, 블레츨리 파크는 길고 정확한 평문을 쉽게 얻을 수 있었다.
평문의 단서를 얻기 위해 영국군이 직접 움직이는 경우도 있었다. 예를 들어 독일 해군 암호를 급히 해독해야 할 경우, 영국 공군은 특정 좌표로 날아가 기뢰를 투하했다. 이때 투하된 기뢰의 좌표와 기뢰가 제거되었다는 보고를 단서로 평문을 추정해, 더 빠르게 해군 암호를 해독할 수 있었다. 영국은 이런 식으로 평문을 직접 심는 행위를 정원 돌보기라고 불렀다.
한편 독일군은 기존의 QWERTZ 키보드로 숫자를 보내는 방식에서 숫자를 직접 말로 써서 보내는 방식으로 암호 방식을 변경했다. 앨런 튜링은 이를 알아내고 지금까지 해독된 메시지들을 다시 살펴보았는데, 모든 암호문의 90%에 EIN (숫자 1) 이 들어간다는 사실을 알아냈다. 앨런 튜링은 이를 바탕으로 모든 회전판 설정에 대해 EIN이 암호화되는 경우의 목록을 작성했다. 이 목록은 평문 해독이 거의 자동적으로 이루어지게 하는 데 도움을 주었다.
영국 봄브.
1939년 9월, 앨런 튜링은 암호 해독을 자동화할 수 있는 전기기계식 계산기인 봄브()를 설계했다. 튜링은 폴란드 봄바가 사용했던 것과 비슷한 아이디어를 이용했으나, 폴란드와 같은 특정 조합이 아닌 임의의 평문을 바탕으로 자동 해독을 수행할 수 있었다. BTM(영국 계산기 회사)의 엔지니어 해롤드 킨은 이 설계를 바탕으로 실제 기계를 제작했다.
튜링의 봄브는 회전판 순서와 회전판의 초기설정, 그리고 플러그보드의 설정에 따른 17,576 가지의 모든 가능성을 시험해보고, 논리적으로 있을 수 없는 조합을 제거하는 방식으로 동작했다. 먼저 암호해독가가 예상되는 평문과 그에 해당하는 암호문을 입력하고 봄브를 동작시키면, 봄브는 모든 가능성에 대해 36개의 작은 에니그마를 동작시킨 후 레예프스키가 분석했던 것과 같은 순환군을 찾아냈다. 플러그보드의 구조상, 플러그보드에 꽂힌 플러그는 항상 쌍으로 동작해야 했기 때문에, 봄브는 이 가정에 맞지 않는 순환군 구조를 자동적으로 제거하고 다음 조합을 시험해 보는 방식으로 동작했다. 1940년 초, 고든 웰치먼은 튜링의 봄브 설계에 더해, 에니그마의 평문이 같은 글자로 암호화되지 않는다는 가정을 추가해 봄브의 속도를 더욱 향상시켰다.
36개의 에니그마 조합을 동시에 시험해 볼 수 있는 첫번째 봄브 모델은 1940년 3월에 완성되었다. 봄브는 1941년 6월까지 5대가 생산되었고, 전쟁이 끝날 때쯤에는 210대가 생산되었다. 또한 인접한 키를 플러그보드에 꽂을 수 없는 제한을 추가한 인접 플러그 제거 논리가 추가된 봄브가 따로 만들어졌다.
처음 생산된 봄브는 기계를 제작한 BTM의 엔지니어들이 운용했다. 그러나 1941년 3월부터 영국 해군 여군 부대에서 봄브 운용을 위해 요원이 파견되었다. 1945년에는 약 2,000명의 요원이 봄브 운용을 하고 있었다. 폭격을 피하기 위해 블레츨리 파크에는 소수의 봄브만이 배치되어 있었고, 블레츨리 파크는 외부에 설치된 봄브 기지와 전신으로 통신하면서 작업했다.
독일 해군이 에니그마의 회전판을 4개로 늘리자, 봄브의 설계 또한 4개의 회전판을 사용하도록 변경되었다. 그러나 미국 해군의 봄브 설계가 훨씬 빠르게 동작했다. 따라서 블레츨리 파크는 미국 해군과 긴밀하게 협력하면서 암호 해독을 계속했다.
독일 공군 에니그마.
독일 육군, 친위대, 경찰, 그리고 철도에서 각각 비슷한 설정의 에니그마를 사용했지만, 가장 빨리 해독된 것은 독일 공군 에니그마였다. 1940년 5월 22일부터, 독일 공군의 암호망 가운데 하나(블레츨리 파크가 "빨강"이라고 이름붙인 망)는 특히 주기적으로 쉽게 해독되었다. 블레츨리 파크의 6번 방은 매일 아침 식사 시간 무렵에 그날의 비밀 키를 알아내서 3번 방에 전달했고, 3번 방은 이를 가공하여 정보당국에 보고했다. 공군 암호망이 쉽게 해독된 것은 공군 총사령관 헤르만 괴링이 일상적인 통신이나 농담을 암호망으로 보내 많은 평문을 제공해 주었기 때문이다. 블레츨리 파크는 이것을 "괴링 농담"이라고 불렀다.
독일 군사정보국 에니그마.
딜리 녹스는 1941년 독일 군사정보국() 에니그마의 해독에 성공했다. 딜리 녹스는 흔히 사용되는 5글자 그룹 앞에 6글자가 아닌 8글자가 들어간다는 사실에 주목했고, 독일이 추가 회전판을 사용한다는 사실을 밝혀냈다. 이 에니그마는 모델 G 에니그마로, 평범한 3개의 회전판 외에 반사판의 배선을 바꿀 수 있는 추가 회전판이 있었다. 딜리 녹스는 폴란드 암호국이 사용했던 것과 같은 방식을 사용해 이 추가 회전판의 배선을 알아냈다.
독일 군사정보국은 독일 최고사령부의 첩보 및 방첩을 담당하는 기관이었다. 군사정보국에서 투입한 해외 스파이들은 더 보안이 취약한 상용 에니그마를 이용해 군사정보국에 보고했는데, 군사정보국은 더 복잡한 에니그마를 이용해 이를 그대로 다시 암호화하여 상부에 보고했다. 따라서 취약한 에니그마를 해독하면 엄청난 양의 평문을 쉽게 얻을 수 있었다. MI5는 군사정보국에서 얻어낸 정보를 이용해 연합국에 침투한 모든 독일군 스파이를 잡아내고, 이중 상당수를 이중간첩으로 전향시켰다.
독일 육군 에니그마.
1940년 여름 독일과 프랑스가 휴전한 후, 독일 육군의 대부분의 암호 통신은 유선으로 이루어져 도청이 쉽지 않았다. 한편 영국이 가장 걱정한 것은 영국 본토 항공전이었기 때문에 영국 정부는 육군 암호 해독에 큰 노력을 기울이지 않았다. 독일 육군 에니그마가 처음으로 해독된 것은 1941년 초였고, 대부분의 암호 통신을 해독할 수 있게 된 것은 1942년 봄 무렵이었다.
독일 해군 에니그마.
독일 해군은 1937년 5월 1일부터 다른 독일군과 다른 운용 방식을 도입했다. 독일 해군은 육군과 공군과 같은 암호책을 사용했으나, 메시지 키를 암호화하는 방식을 바꿔 전송했다. 예를 들어 암호책에서 메시지 키 YLA를 골랐다면, 암호책에서 또다른 메시지 키 YVT를 고른다. 그리고 다음과 같이 배치한다.
그리고 점 위치에 임의의 글자를 써넣었다.
그런 다음 각각의 쌍을 2글자 변환표를 이용해 다시 변환해서 전송했다.
이 방법을 도입한 이후 폴란드 암호국은 독일 해군 암호를 해독할 수 없게 되었다. 이후 독일 해군은 3개의 회전판을 추가해 총 8개의 회전판으로 보안을 한층 강화했다.
모든 이들이 해군 암호 해독을 포기하고 있었던 시점에, 앨런 튜링은 이 암호 방식을 알아내는데 착수했다. 튜링은 1937년 회전판이 3개였던 시절에 폴란드가 도청했던 내용을 바탕으로 새로운 메시지 키 암호 방식이 어떻게 동작하는지를 밝혀냈다. 그러나 회전판이 추가된 해군 암호는 여전히 해독이 불가능했다.
독일 해군의 초기 에니그마.
독일 해군은 초기에 회전판 8개중 3개를 고르는 방식의 암호문을 사용했다. 이 암호문이 처음 풀린 것은 1939년 12월이었다. 그러나 1년 넘게 전에 도청된 암호문 하나를 풀어냈을 뿐 그 이상의 진전은 없었다.
영국군은 1940년 2월 독일군에서 노획한 에니그마와 암호책을 바탕으로, 이전까지 몰랐던 6번째와 7번째 회전판의 배선을 알아내었다.
1940년 4월에는 네덜란드 어선으로 위장한 독일 정찰선이 포획되었는데, 이 배에서 에니그마의 사용설명서와 암호책, 그리고 실제 통신문 일부가 발견되었다. 이 정보를 바탕으로 튜링이 추정한 새로운 암호 방식이 맞다는 것이 확인되었고, 처음으로 6일치의 암호를 해독할 수 있었다. 이때 신개발된 봄브가 사용되었다.
추가 암호 해독을 위해 튜링은 폴란드 암호국이 사용했던 시계 방법()을 응용한 반부리스무스() 기법을 시험해 보았다. 이것은 통계적 분석을 이용해 가장 느린 회전판이 언제 움직이는지를 잡아내는 방법이었다. 이 방법을 이용하면 336가지 가능성 가운데 18개만을 봄브를 이용해 시험해보면 암호를 해독할 수 있었다. 이 방법을 이용하려면 독일 해군이 이용하는 2글자 변환표를 얻어내야 했고, 암호 해독을 바탕으로 변환표를 얻어내는 방법은 오랜 시간이 걸렸다.
이 변환표를 얻어내기 위한 여러 비밀작전이 계획되었는데, 이 중 한 작전에 제임스 본드 시리즈의 작가 이언 플레밍이 투입될 계획이었으나 작전이 취소되었다고 전해진다. 또다른 비밀작전인 클레이모어 작전에서, 영국군 특수부대는 1941년 3월 4일 로포텐 섬을 급습해 독일의 무장 어선을 나포하고 암호책을 얻어냈다. 비록 변환표는 얻어내지 못했으나 블레츨리 파크는 이 암호책을 바탕으로 변환표를 역설계하여 완성할 수 있었다.
변환표가 완성된 이후 반부리스무스는 암호해독에 큰 도움을 주었다. 튜링이 담당하는 블레츨리 파크 8호실에는 많은 인원이 충원되어 24시간 체제로 돌아가기 시작했고, 평문 방(crib room)이 설치되었다.
튜링의 반부리스무스 기법은 1943년 7월까지 사용되었다. 이때부터는 봄브가 크게 개선되어 반부리스무스 방법의 의미가 상실되었다.
독일 해군의 후기 에니그마.
1942년 2월 1일, 독일 대서양 U-보트와 본부 간의 암호 통신이 다른 통신과 크게 달라진 점이 블레츨리 파크에 포착되었다. 독일 해군은 4개의 회전판과 2개의 반사판을 동시에 사용할 수 있는 신모델을 사용하기 시작했다. 블레츨리 파크는 4개의 회전판이 사용된 에니그마의 개발이 1941년부터 진행되고 있다는 것을 이미 알고 있었으므로 놀라지는 않았다. 블레츨리 파크는 기존의 암호를 "돌고래"라고 부르고, 새로운 암호를 "상어"라고 이름붙였다.
블레츨리 파크는 운용 장교의 실수를 이용해 새로운 회전판의 배선을 금방 알아냈다. 그러나 회전판의 배선을 알아낸 후에도 암호 해독에는 몇가지 난점이 있었다.
그러나 회전판 4개짜리 고속 봄브를 제작하는 것을 쉽지 않았다. 영국 통신연구소와 영국 계산기 회사가 각각 이 작업에 착수했으나 몇달이 지나도 완성품이 제작되지 않았다.
그러던 중 U-보트 메시지의 평문을 얻어낼 수 있는 계기가 나타났다. 독일 해군은 삼각측량으로 위치가 드러나는 것을 피하기 위해 메시지를 최대한 짧게 보내는 단문 암호 () 체계를 사용했는데, 이 메시지는 22글자로 연합군을 발견한 위치를 보고할 수 있게 되어 있었다. 이 단문 암호의 암호표가 1941년 5월 9일 포획한 U-보트에서 발견되었다. 또한 이와 유사한 체계인 기상관측용 단문 암호 체계는 1942년 10월 30일 노획되었다. 이 메시지들은 이미 기존의 회전판 3개짜리 암호를 해독하는데 사용되고 있었는데, 4번째 회전판의 배선 중에 특정 위치에서 암호화된 메시지는 회전판 3개짜리와 똑같이 암호화되는, 중립 위치가 존재한다는 것이 밝혀졌다. 이 사실을 이용해 1942년 12월부터 대부분의 U-보트 암호가 성공적으로 해독되었다.
미 해군 봄브.
영국의 모든 암호 해독이 블레츨리 파크에서 지휘되었던 것과 달리, 2차대전 당시의 미국은 통합된 암호해독 부서를 두고 있지 않았다. 미군은 참전하기 전에도 지속적으로 독일군 암호 해독에 협력하고 있었다. 그러나 추축국의 암호가 해독되고 있다는 사실이 절대로 들키면 안되었기 때문에, 영국군은 미국에 제한적인 정보만을 제공했다.
1941년 2월, 미군 장교들이 블레츨리 파크의 일본 담당 부서인 7호실을 방문해 일본의 "보라" 암호 기계의 복제본을 전달했다. 이 장교들은 열흘 후 블레츨리 파크에서 얻어낸 에니그마에 관한 정보와 라디오 신호를 이용한 위치 탐지 방법을 가지고 미국으로 돌아왔다.
대서양에서 활동하는 독일의 U-보트는 미국에 심각한 위협이 될 수 있었다. 미국은 영국의 U-보트 암호 해독이 늦어지는 것을 보고, U-보트가 사용하는 회전판 4개짜리 에니그마를 독자적으로 해독하기 위한 시설을 지었다. 오랜 전쟁으로 피폐해진 영국과 달리 미국은 충분한 자원과 영국에서 얻은 설계도를 바탕으로 더 강력한 봄브를 설계했다. 미국 정부는 1942년 9월 해군의 U-보트 암호 해독 시설을 짓기 위해 200만 달러의 예산을 승인했다.
OP-20-G(미 해군 암호국)는 전기기계식 방식의 기존 봄브의 한계를 뛰어넘기 위해 완전 전자식으로 새롭게 봄브를 설계했다. 전자계산기 설계의 경험이 많은 현금계산기 회사인 NCR이 이 기계의 제작을 맡았다. 한편 봄브의 최초 설계자인 앨런 튜링은 1942년 12월 NCR을 방문해, 튜링이 기존에 사용했던 반부리스무스 기법을 응용하면 336개가 아닌 96개의 봄브만 만들면 된다는 것을 보여주었다.
미 해군 봄브는 기본 설계는 영국 봄브와 같았으나, 훨씬 빠른 속도로 동작했다. 최초 시제품이 1943년 5월 3일 완성되었다. 이 신형 봄브는 훨씬 빠르게 동작해 기계의 여유 시간이 많이 남았으므로, 후에 블레츨리 파크 6호실과 8호실도 이 기계의 도움을 받게 되었다. 미 해군은 121개의 신형 봄브를 제작했다.
미 육군 또한 봄브를 제작했다. 미 육군의 설계는 영국이나 해군의 설계와 전혀 달랐고, 1942년 벨 연구소에서 제작되었다.
독일의 의혹.
1945년 무렵, 대부분의 독일 에니그마 암호문은 하루나 이틀 안에 해독되고 있었지만, 독일은 그 사실을 전혀 모르고 있었다. 독일군 수뇌부는 암호망에서 전략과 군부대의 배치를 자유롭게 논의했다. 독일군에서 전달되는 정보가 너무 많아 연합군은 이 정보를 다 활용하지도 못했다. 예를 들어 미군은 에르빈 롬멜의 카세린 회랑 전투 계획에 대해 미리 해독했으나 이 정보를 제대로 활용하지 못했다.
종전 후 미국은 독일군의 전쟁 중 첩보활동에 관련한 정보를 수집하는 TICOM 프로젝트를 진행하면서 많은 수의 독일군 암호 전문가들을 억류했다. 이들을 심문한 결과 독일군은 에니그마가 이론적으로 해독 가능하다는 것은 알고 있었다. 그러나 해독에 필요한 엄청난 경우의 수를 모두 시험해볼 방법이 존재하지 않을 것이라고 믿었다. 독일군 암호 전문가들은 카를 되니츠 제독에게 보낸 보고서에서 모든 정보유출 가능성 가운데 에니그마의 해독은 가장 가능성이 낮다고 보고했다.
2차대전 이후.
현대에는 언급된 여러 기법을 이용하면 컴퓨터로 에니그마를 해독할 수 있다. 아직까지 해독되지 않은 에니그마 메시지를 분산 컴퓨팅으로 해독하는 프로젝트도 존재한다.