에니그마 기계 시뮬레이터
Enigma I를 설정하세요. 다섯 개 중 세 개의 회전자, 반사판 B 또는 C, 링 설정, 시작 위치, 최대 열 개의 플러그보드 케이블을 고르고 입력하면, 회전자가 움직이고 램프가 켜지며 모든 키 입력이 추적됩니다. 이 기계는 자기 자신의 역함수이므로 같은 설정으로 복호화할 수 있습니다.
예시 불러오기
기계 설정
공백으로 구분한 글자 쌍을 최대 열 개까지 입력하세요. 예: AV BS CG. 한 글자는 한 쌍에만 들어갈 수 있습니다.
이 기계에는 알파벳 26개 키만 있어서 공백, 숫자, 문장부호는 입력되지 않습니다. 운용자는 숫자를 글자로 풀어 쓰고, 마침표 대신 X를 썼습니다.
기계
회전자 창
왼쪽
왼쪽 창에 A이(가) 보입니다
I
가운데
가운데 창에 A이(가) 보입니다
II
오른쪽
오른쪽 창에 F이(가) 보입니다
III
마지막 키를 누른 뒤의 상태입니다. 키를 누를 때마다 전류가 흐르기 전에 오른쪽 회전자가 먼저 한 칸 움직이므로, 첫 글자는 시작 위치에서 한 칸 뒤의 배열로 암호화됩니다.
램프 보드
키보드
마지막 키 입력의 경로
- 키A
- 플러그보드A
- III (오른쪽)G
- II (가운데)R
- I (왼쪽)U
- 반사판 BC
- I (왼쪽)Y
- II (가운데)V
- III (오른쪽)O
- 램프O
플러그보드를 지나 회전자를 오른쪽에서 왼쪽으로 거치고, 반사판에서 되돌아와 회전자와 플러그보드를 다시 지나 램프에 도달합니다.
출력
BDZGO
입력한 글자 5개
복호화하려면 같은 회전자, 링, 플러그보드, 시작 위치를 설정한 뒤 암호문을 입력하세요. 에니그마는 자기 자신의 역함수이므로 같은 설정으로 복호화됩니다.
키 입력 기록
| # | 창 | 키 | 램프 |
|---|---|---|---|
| 1 | AAB | A | B |
| 2 | AAC | A | D |
| 3 | AAD | A | Z |
| 4 | AAE | A | G |
| 5 | AAF | A | O |
에니그마 기계 시뮬레이터 사용 방법
- 1. 기계를 설정하세요. 반사판을 고른 다음, 왼쪽·가운데·오른쪽 슬롯마다 회전자, 링 설정, 시작할 때 창에 보이는 글자를 고르세요.
- 2. 플러그보드를 연결하세요. 글자 쌍을 최대 열 개까지 입력합니다. 예를 들어 AV BS CG처럼 쓰면, 각 쌍은 들어올 때와 나갈 때 두 글자를 서로 바꿉니다.
- 3. 메시지를 입력하세요. 입력 상자에 쓰거나 아래 키를 누르세요. 이 기계에는 알파벳 26개 키만 있어서 공백, 숫자, 문장부호는 입력되지 않습니다. 운용자는 숫자를 글자로 풀어 쓰고, 마침표 대신 X를 썼습니다.
- 4. 작동을 지켜보세요. 창에는 마지막 키를 누른 뒤의 회전자 상태가 보이고, 램프 보드에는 마지막 글자가 켜지며, 신호 경로와 기록에 키 입력마다 흔적이 남습니다.
- 5. 같은 설정으로 복호화하세요. 같은 회전자, 링, 플러그보드, 시작 위치를 맞추고 암호문을 입력하세요. 세 가지 예시는 공개된 시험 사례를 불러옵니다.
Enigma I의 작동 원리
키를 누르면 두 가지 일이 이 순서대로 일어납니다. 먼저 회전자가 움직입니다. 오른쪽 회전자는 항상 한 칸 움직이고, 그 링에 있는 노치(턱)가 한 바퀴마다 가운데 회전자를 한 칸 함께 돌립니다. 그다음 전류가 키에서 플러그보드를 지나 오른쪽에서 왼쪽으로 가는 세 회전자, 반사판, 다시 왼쪽에서 오른쪽으로 가는 회전자를 거쳐 플러그보드를 한 번 더 지나고, 램프 하나를 켭니다.
각 회전자는 알파벳을 고정된 방식으로 뒤섞은 것이고, 회전하면 글자와의 대응이 바뀌므로 같은 키라도 매번 다른 램프가 켜집니다. 반사판은 글자를 쌍으로 묶어 기계가 자기 자신의 역함수가 되게 하며, 어떤 글자도 자기 자신으로 암호화되지 않게 합니다. 회전자 I, II, III, 반사판 B, 링 AAA, 시작 위치 AAA에서 AAAAA를 입력하면 B, D, Z, G, O 램프가 켜집니다. 이것이 모든 에니그마 시뮬레이터의 표준 첫 번째 검사입니다.
| 회전자 | A → Z 배선 | 턴오버 | 도입 시기 |
|---|---|---|---|
| 회전자 I | EKMFLGDQVZNTOWYHXUSPAIBRCJ | Q → R | 1930 |
| 회전자 II | AJDKSIRUXBLHWTMCQGZNPYFVOE | E → F | 1930 |
| 회전자 III | BDFHJLCPRTXVZNYEIWGAKMUSQO | V → W | 1930 |
| 회전자 IV | ESOVPZJAYQUIRHXLNFTGKDCMWB | J → K | 1938년 12월 |
| 회전자 V | VZBRGITYUPSDNHLXAWMJQOFECK | Z → A | 1938년 12월 |
| 반사판 B | YRUHQSLDPXNGOKMIEBFZCWVJAT | — | 1937년 11월 |
| 반사판 C | FVPJIAOYEDRZXWGCTKUQSBNMHL | — | 1940년, 잠시 사용 |
턴오버: 회전자가 창에서 첫 글자에서 두 번째 글자로 넘어갈 때, 왼쪽 회전자를 한 칸 함께 돌립니다.
링 설정과 이중 전진
링 설정(Ringstellung)은 글자가 적힌 링에 대해 배선을 돌리고, 노치는 글자와 함께 그대로 둡니다. 링을 AAA 대신 BBB로 맞추면 같은 다섯 번의 키 입력이 EWTYX를 만듭니다.
가운데 회전자에는 유명한 특이점이 있습니다. 가운데 회전자가 자신의 턴오버 위치에 이르면, 다음 키 입력에서 한 칸 더 움직여 왼쪽 회전자를 함께 돌립니다. 회전자 I, II, III에서 ADU로 시작하면 창은 ADV, AEW, 그다음 BFX를 보입니다. 가운데 회전자가 D에서 E로 가고 곧바로 F로 넘어간 것입니다. 이를 직접 보려면 “이중 전진” 예시를 불러오세요.
실제 예시: 링과 플러그보드가 있는 메시지
“완전한 메시지” 예시는 독일어판 위키백과의 “Enigma” 항목에 나오는 예시를 불러옵니다. 반사판 B, 회전자 I IV III, 링 16 26 08 (P Z H), 플러그 AD CN ET FL GI JV KZ PU QY WX입니다. 운용자는 시작 위치 QWE를 골랐고, 메시지 키 RTZ를 입력해 EWG를 보았으며, QWE EWG를 암호화하지 않은 채 보냈습니다.
수신자는 QWE를 설정하고 EWG를 입력한 뒤 램프에서 RTZ를 읽습니다. RTZ로 맞추면 암호문 EJZLB SYEQP DWDUE EJJOU PSOFL B…가 XAACH ENXAA CHENX ISTGE RETTE T…로 풀립니다. 이것은 Aachen ist gerettet, 즉 “아헨이 구출되었다”입니다. 공백과 마침표는 X로 쓰고, 지명은 두 번 반복되며, CH는 Q로 씁니다. 독일 군 전문의 관례입니다.
에니그마 해독: Rejewski, 블레츨리 파크, 튜링
아르투르 셰르비우스는 1918년에 회전자 기계의 특허를 신청했고, 1923년에 첫 상업용 에니그마를 팔았습니다. 독일 해군은 1926년에 개량형을 채택했고, 육군은 1928년에 플러그보드를 추가했으며, Enigma I는 1930년부터 쓰였습니다. 먼저 해독한 쪽은 폴란드 수학자들이었습니다. 1932년 12월경 폴란드 암호국의 마리안 레예프스키는 순열 이론을 적용했고, 프랑스가 독일 간첩 한스틸로 슈미트에게서 입수한 일일 키를 이용해 회전자의 배선을 알아냈습니다. 예지 루지츠키, 헨리크 지갈스키와 함께 지갈스키 시트와 일일 설정을 찾는 전기기계 bomba를 만들었고, 1939년 7월 바르샤바 근처 피리에서 폴란드인들은 이 모든 것을 프랑스와 영국의 암호 해독자들과 나눴습니다.
블레츨리 파크에서 앨런 튜링은 영국의 봄브(bombe)를 설계했습니다. 이 기계는 해독자들이 메시지에 있으리라 예상한 평문인 crib에 대해 회전자 설정을 시험했습니다. 고든 웰치먼의 대각선 판이 성능을 크게 높였고, 첫 봄브는 1940년 3월에 설치되었습니다. 어떤 글자도 자기 자신으로 암호화되지 않으므로, 추측한 단어가 글자 위에 글자를 겹쳐 놓는 자리에는 들어갈 수 없었고, 이것이 crib의 위치를 정하는 데 도움이 되었습니다. 에니그마와 다른 암호에서 얻은 정보는 Ultra라는 암호명으로 불렸으며, 연합국에 큰 도움이 되었습니다.
에니그마는 안전했나요?
설계상으로는 강했습니다. 다섯 개 중 세 개의 회전자를 순서대로 고르고, 시작 위치와 플러그보드 쌍 열 개를 쓰면 링 설정을 빼고도 158,962,555,217,826,360,000가지 설정이 가능합니다. 약 1.6 × 10²⁰, 즉 67비트입니다. 그러나 무너진 것은 설계와 사용 방식 때문이었습니다. 어떤 글자도 자기 자신이 되지 않았고, 운용자는 예측 가능한 문구를 보냈으며, 1940년 5월까지는 메시지 키를 두 번씩 입력했습니다. 오늘날에는 컴퓨터가 암호문만으로 에니그마 설정을 찾아내므로, 이 시뮬레이터는 비밀 유지용이 아니라 학습용입니다.
자주 묻는 질문
- 에니그마 기계는 어떻게 작동하나요?
- 키를 누를 때마다 먼저 회전자가 움직이고, 전류가 플러그보드, 회전자 세 개, 반사판을 지나며, 회전자를 역방향으로 다시 지나고 플러그보드를 한 번 더 지나 램프를 켭니다. 회전자가 키를 누를 때마다 움직이므로 글자마다 다른 알파벳으로 암호화되며, 메시지에서 같은 글자가 반복되어도 암호문에서는 반복되지 않습니다.
- 에니그마의 이중 전진 현상이란 무엇인가요?
- 가운데 회전자가 자신의 턴오버 위치에 이르면 두 번의 키 입력에 연달아 움직입니다. 한 번은 오른쪽 회전자가 그곳으로 옮겨 놓을 때이고, 다시 한 번은 다음 입력에서 왼쪽 회전자를 함께 돌릴 때입니다. 회전자 I, II, III에서 ADU로 시작하면 창은 ADV, AEW, BFX가 됩니다. 많은 시뮬레이터가 이를 잘못 구현하지만, 이 도구는 이 현상으로 검증되었습니다.
- 에니그마는 왜 글자를 자기 자신으로 암호화할 수 없나요?
- 반사판이 글자를 항상 다른 글자와 짝짓기 때문입니다. 그래서 전류가 다른 선을 따라 돌아오므로, 켜지는 램프는 누른 키와 같을 수 없습니다. 이 때문에 기계는 자기 역함수가 되었지만, 해독자들은 추측한 단어가 어디에 올 수 없는지도 알 수 있었습니다.
- 에니그마 메시지는 어떻게 복호화하나요?
- 발신자가 썼던 반사판, 회전자 순서, 링 설정, 플러그보드, 시작 위치를 똑같이 맞추고 암호문을 입력하면, 램프에 평문이 나타납니다. 전시 메시지에는 암호화된 메시지 키도 함께 들어 있었으므로, 수신자는 먼저 그 키를 복호화한 다음 회전자를 그 키에 맞춰 설정했습니다.
- 누가 에니그마 암호를 깼나요?
- 처음 깬 것은 폴란드 사람들이었습니다. 마리안 레예프스키가 1932년 12월경 회전자 배선을 복원했고, 예지 루지츠키, 헨리크 지갈스키와 함께 전쟁 전 여러 해 동안 에니그마 전문을 읽었습니다. 1939년부터는 블레츨리 파크에서 앨런 튜링, 고든 웰치먼과 수천 명이 작업을 이어받았으며, 그중 많은 여성이 봄브를 운영했습니다. 이 작업은 산업 규모의 작업으로 바뀌었습니다.