철옹성의 암호, 에니그마

242025년 08월 13일4

허트 8의 낡은 책상 위, 튜링과 그의 동료들은 적의 심장부를 해부하고 있었다. 그들의 해부 대상은 강철로 만들어진 기계, 에니그마였다.

에니그마는 겉보기에는 타자기와 비슷했다. 하지만 그 내부는 악마적인 복잡성을 품고 있었다. 튜링은 폴란드 정보국이 전쟁 직전 영국에 넘겨준 귀중한 자료들을 바탕으로 그 작동 원리를 분석했다.

1단계: 회전자(Rotors)
에니그마의 핵심은 세 개(후에는 네 개)의 회전자였다. 각 회전자는 26개의 알파벳이 내부에 복잡한 전선으로 연결된 원판이었다. 타자기에서 'A'를 누르면, 전류는 첫 번째 회전자를 통과하며 다른 알파벳(예: 'G')으로 바뀐다. 이 'G'는 다시 두 번째 회전자를 통과하며 또 다른 알파벳(예: 'X')으로, 그리고 세 번째 회전자를 거쳐 완전히 새로운 알파벳(예: 'L')으로 변환된다.

여기서 끝이 아니었다. 키를 한 번 누를 때마다, 첫 번째 회전자가 톱니바퀴처럼 한 칸씩 '딸깍'하고 돌아갔다. 그러면 내부의 배선이 완전히 달라져, 다음에 'A'를 눌렀을 때는 전혀 다른 결과가 나왔다. 첫 번째 회전자가 한 바퀴(26번)를 돌면, 두 번째 회전자가 한 칸 돌아갔고, 두 번째 회전자가 한 바퀴를 돌면 세 번째 회전자가 한 칸 돌아갔다. 마치 자동차의 주행 기록계처럼.

이 회전자들의 초기 시작 위치(예: A-B-C)를 설정하는 경우의 수만 해도 26 x 26 x 26 = 17,576가지였다.

2단계: 반사판(Reflector)
세 번째 회전자를 통과한 신호는 '반사판'이라는 특수한 원판에 부딪혔다. 반사판은 신호를 다시 세 개의 회전자를 거꾸로 통과시켜 최종 암호문으로 내보냈다. 이 반사판의 존재 덕분에, 만약 'A'를 암호화해서 'L'이 나왔다면, 똑같은 설정에서 'L'을 암호화하면 반드시 'A'가 나왔다. 암호화와 복호화 과정이 동일해지는 편리함을 주었지만, 동시에 치명적인 약점도 만들었다. 어떤 글자도 자기 자신으로 암호화될 수 없다는 것. 즉, 'A'는 절대로 'A'가 될 수 없었다.

  1. 플러그보드(Plugboard)
    독일 군용 에니그마에는 상업용 모델에는 없는 최악의 장치가 추가되어 있었다. 바로 기계 전면에 있는 플러그보드였다. 이곳에는 26개의 알파벳 소켓이 있었고, 암호병은 10개의 전선을 이용해 20개의 글자를 서로 짝지어 연결했다. 예를 들어 'A'와 'S'를 연결하고, 'D'와 'W'를 연결하는 식이었다.

이렇게 되면 타자기에서 'A'를 누른 신호는 회전자로 들어가기 전에 먼저 'S'로 바뀌었고, 모든 회전 과정을 거쳐 나온 최종 결과가 만약 'W'였다면, 밖으로 나오기 전에 다시 'D'로 바뀌었다. 이 플러그보드의 추가로, 암호의 복잡성은 천문학적인 수준으로 치솟았다.

튜링은 칠판에 경우의 수를 계산하기 시작했다.

  • 회전자 배열 순서: 3개의 회전자를 나열하는 방법 = 3 x 2 x 1 = 6가지 (실제로는 더 많은 회전자 중 3개를 골라 썼으므로 경우의 수는 더 많았다)
  • 회전자 초기 위치 설정: 17,576가지
  • 플러그보드 설정: 26개의 알파벳 중 20개를 골라 10개의 쌍으로 연결하는 경우의 수는 무려 150,738,274,937,250가지였다.

이 모든 것을 곱하면, 에니그마의 총 가능한 설정값의 개수는 거의 10의 23제곱에 달했다. 우주에 있는 모든 원자의 개수보다도 많은 숫자였다.

그리고 최악의 문제는, 이 모든 설정값이 매일 자정을 기해 완전히 새롭게 바뀐다는 점이었다. 어제의 해법은 오늘의 휴지 조각에 불과했다. 블레츨리 파크의 암호 해독가들에게는 매일 24시간이라는 제한 시간 안에, 이 천문학적인 경우의 수 속에서 단 하나의 정답, 그날의 '일일 키(Daily Key)'를 찾아내야 하는 임무가 주어졌다.

허트 8의 공기는 무겁게 가라앉았다.
적은 단순한 기계가 아니었다. 그것은 매일 얼굴을 바꾸는, 수학적 괴물이었다.
인간의 손과 머리만으로는 이 철옹성을 무너뜨리는 것은 불가능해 보였다.
튜링은 설계도를 내려다보며 생각했다.

‘이 괴물의 약점을 찾아야 한다. 논리적 허점. 기계이기에 가질 수밖에 없는, 피할 수 없는 모순을.’

그의 두뇌는 전쟁터의 장군이 아닌, 시스템의 버그를 찾는 프로그래머처럼 작동하기 시작했다.