100해 가지 조합, 에니그마는 어떻게 무너졌나
100해가 넘는 설정. 빈틈은 반복된 메시지와 운영자의 습관.
Veritasium
매일 자정이면 다시 바뀌는 100해의 조합. 앨런 튜링보다 먼저 생긴 균열과 정답을 읽지 않는 해독 기계.
100해가 넘는 조합을 매일 자정 전에 풀어야 했습니다. 하나씩 대입하는 건 애초에 불가능했습니다. 첫 균열은 영국 수학자 앨런 튜링보다 앞서 폴란드에서 생겼습니다. 독일군이 같은 세 글자를 두 번 보낸 습관이 단서였습니다.
하루 만에 바뀌는 100해의 조합
에니그마 앞면의 플러그보드는 케이블로 두 글자의 연결을 서로 바꾸는 판입니다. 키를 누르면 전류가 이 판과 세 개의 회전식 암호판인 로터를 지나 램프 하나를 켭니다. 오른쪽 로터는 그때마다 한 칸씩 움직입니다. 같은 글자를 연달아 눌러도 결과가 달라지는 이유입니다.

로터의 순서와 시작 위치, 바깥 글자 고리의 위치, 플러그보드 연결은 매일 바뀌었습니다. 이 가운데 글자 고리의 위치를 ‘링 설정’이라고 부릅니다. 영상에서 계산한 조합은 100해 이상. 전부 대입하는 동안 날짜가 바뀌면 새 키가 적용되니, 계산 속도만 높여서는 따라잡을 수 없었습니다.
튜링보다 먼저 생긴 첫 균열
에니그마는 1918년에 특허가 난 상업용 암호기였습니다. 독일군은 내부 배선과 사용법을 바꿔 군용으로 썼고, 시판 기계만으로는 메시지를 읽을 수 없었습니다.

1931년, 프랑스가 입수한 독일군 자료가 폴란드로 넘어갔습니다. 마리안 레예프스키는 운영자가 세 글자 키를 두 번 보내는 규칙을 이용해 로터 배선을 역으로 찾아냈습니다. 영국이 봄브를 만들기 전의 첫 해독이었습니다.
1939년 여름, 폴란드는 에니그마 복제품과 그동안의 연구 결과를 영국과 프랑스에 넘겼습니다. 영국의 해독 작업은 여기서부터 이어졌습니다.
막힌 자리에서 나온 두 번째 단서
첫 번째 해법은 오래가지 못했습니다. 독일군이 반복 전송을 중단하고 운영자에게 세 글자를 직접 고르게 했기 때문입니다. 절차는 더 안전해졌지만, 이번에는 사람이 완전히 무작위로 고르지 못했습니다. 여자친구 이름의 앞글자나 자판에서 이어지는 글자가 자주 나왔습니다.

매일 비슷한 시간에 전송되는 날씨 보고도 틈이 됐습니다. 해독팀은 암호문 안에서 ‘비스케이만 날씨 예보’가 들어갈 만한 자리를 찾았습니다. 이렇게 암호문에 들어갔을 것으로 짐작한 문장을 ‘크립’이라고 불렀습니다. 같은 글자가 자기 자신으로 암호화되지 않는 규칙을 대입하면, 틀린 위치부터 빠르게 지울 수 있었습니다.

정답을 읽지 않는 봄브
튜링은 크립 안에서 R→Y→S→R처럼 다시 출발점으로 돌아오는 글자 연결을 찾았습니다. 로터 설정이 틀리면 한 글자가 여러 글자와 이어지는 모순이 생겼습니다.
이 검사를 기계로 반복하도록 만든 장치가 봄브였습니다. 해럴드 킨이 만든 봄브는 암호문을 해독된 문장으로 바꿔 출력하지 않았습니다. 약 1만7,500개 로터 위치를 13분에 훑으며 모순이 생기는 설정을 지우고, 확인할 후보만 남겼습니다.

초기에는 후보가 100개가량 남았습니다. 고든 웰치먼의 대각선 보드가 들어간 뒤에는 네 개 안팎으로 줄었습니다. 1941년 말 영국에서 돌아가던 봄브는 16대였습니다.
네 번째 로터, 다시 끊긴 해독
독일 해군은 네 번째 로터를 추가했습니다. 경우의 수가 다시 늘면서 기존 방식만으로는 독일 잠수함인 U보트의 통신을 따라가기 어려워졌습니다. 튜링은 통계로 가능성이 낮은 조합을 줄였고, 영국 해군은 잠수함에서 키 자료를 확보했습니다.

1943년 U보트 통신이 다시 읽히면서 대서양 전투의 흐름도 바뀌었습니다. 이 해독이 전쟁을 최대 2년 줄였을 수 있다는 역사학자들의 평가도 소개됩니다.
구간별로 다시 보기
- 04:16입력할 때마다 달라지는 글자회전식 암호판인 로터와 글자 연결을 바꾸는 플러그보드를 거치며 결과가 달라집니다.
- 13:10군용 에니그마를 먼저 푼 폴란드레예프스키가 반복 전송된 메시지 키를 순열 문제로 바꿔 풉니다.
- 16:45손으로 좁혀가는 암호문운영자의 문자 선택 습관과 독일어에서 자주 쓰는 글자로 후보를 좁힙니다.
- 26:30예상 문장으로 찾는 로터 설정암호문에 들어갔을 것으로 짐작한 문장인 크립을 놓고, 틀린 설정에서 생기는 모순을 찾습니다.
- 34:27가능한 설정만 남기는 봄브평문을 출력하는 대신 성립할 수 없는 로터 설정을 빠르게 제외합니다.