도구스텍스트

에니그마 암호기 시뮬레이터

2차대전 독일군이 실전에 쓴 로터(회전자) 기반 암호기를 재현해, 로터 순서·링세팅·플러그보드를 정해 영문을 암호화·복호화합니다.

텍스트

로터 (왼쪽 · 가운데 · 오른쪽)

링세팅

시작 위치

결과

 
자기역원 암호라 암호화·복호화가 같은 연산입니다 — 결과를 정확히 같은 로터·링세팅·시작 위치·플러그보드로 다시 넣으면 원문으로 돌아옵니다. 시작 위치는 암호화가 진행되며 계속 바뀌므로, 복호화할 때는 반드시 암호화를 시작했을 때의 시작 위치로 다시 맞춰야 합니다.

사용 방법

  1. 1로터 3개(왼쪽·가운데·오른쪽)와 각각의 링세팅·시작 위치를 정합니다.
  2. 2리플렉터(B 또는 C)와 플러그보드 연결(선택)을 정합니다.
  3. 3텍스트를 입력합니다. 자기역원 암호라 같은 설정으로 결과를 다시 넣으면 원문으로 돌아옵니다.

자주 묻는 질문

글자를 누르면 신호가 플러그보드 → 로터 3개(오른쪽부터 왼쪽으로) → 리플렉터 → 로터 3개(다시 왼쪽에서 오른쪽으로) → 플러그보드 순서로 지나가며 여러 번 치환됩니다. 매 글자를 넣기 전에 로터가 최소 하나(오른쪽 로터는 항상) 회전해, 같은 글자를 두 번 눌러도 매번 다른 글자가 나옵니다.

리플렉터가 신호를 항상 다른 글자로 되돌리기 때문입니다(어떤 글자도 리플렉터에서 자기 자신과 연결되지 않습니다). 이 성질은 실전에서는 편리했지만, 훗날 연합군이 에니그마를 해독하는 데 중요한 실마리가 되었습니다.

가운데 로터가 노치(턴오버) 위치에 있으면, 다음 글자를 넣을 때 왼쪽 로터와 가운데 로터가 함께 회전하는 실제 에니그마 기계의 특징적인 동작입니다. 이 계산기도 이 규칙을 그대로 구현했습니다.

로터 배선·리플렉터 배선·노치 위치는 서로 다른 두 출처에서 교차 검증했고, 표준으로 알려진 테스트 벡터(로터 I·II·III, 리플렉터 B, 링세팅 AAA, 시작 위치 AAA로 "AAAAA"를 넣으면 "BDZGO"가 나오는 것과 링세팅을 BBB로 바꾸면 "EWTYX"가 나오는 것)로 이 구현 전체를 대조해 정확히 일치하는 것을 확인했습니다.

알아두면 좋은 점

  • 표준 테스트 벡터 두 개(AAAAA→BDZGO, 링세팅만 바꿔 AAAAA→EWTYX)로 로터 배선·리플렉터·스테핑 전체를 대조 검증했습니다.
  • 더블스테핑 규칙(가운데 로터가 노치에 있을 때 왼쪽·가운데가 함께 도는 것)을 로터 스테핑 함수만 따로 떼어 직접 검증했습니다.
  • 로터는 I~V, 리플렉터는 B·C만 지원합니다(2차대전 독일 육공군 3로터 에니그마 기준). 4로터 해군형(M4)은 다루지 않습니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.