T

Text Machine

강력한 텍스트 도구를 브라우저에서

에니그마 암호기

제2차 세계대전 독일의 에니그마 암호기로 시뮬레이션하고 인코딩·디코딩하세요. 반사판, 세 개의 로터와 각 링 설정 및 시작 위치, 그리고 플러그보드를 고른 다음 메시지를 입력하고 로터가 회전하는 모습을 지켜보세요. 에니그마는 상호적입니다. 같은 설정으로 암호화와 복호화가 모두 되므로 별도의 복호화 모드가 없습니다. 모든 작업은 브라우저 안에서 이루어집니다.

에니그마는 상호적입니다. 같은 기계 설정으로 암호화와 복호화가 모두 됩니다. 메시지를 읽으려면 로터, 링, 위치, 플러그보드를 암호화할 때와 똑같이 설정하고 암호문을 붙여넣으세요. 그러면 결과가 원래 평문이 됩니다. 별도의 복호화 버튼은 없습니다.

기계 설정

반사판

로터

왼쪽 (느림)

가운데

오른쪽 (빠름)

링 설정

시작 위치

플러그보드

플러그보드는 로터 앞뒤에서 글자를 짝지어 맞바꿉니다. AB CD EF처럼 짝을 입력하세요. 각 글자는 한 번만 쓸 수 있습니다. 맞바꿈을 원하지 않으면 비워 두세요. 공백과 그 밖의 문자는 무시됩니다.

텍스트
결과

위에 텍스트를 입력하면 여기에 에니그마 결과가 표시됩니다.

에니그마 암호기 사용 방법

  1. 1

    반사판과 로터 고르기

    반사판 B 또는 C를 고르고, 왼쪽·가운데·오른쪽 자리에 들어갈 로터를 I~V 중에서 세 개 고릅니다. 표준 기준 설정은 반사판 B에 로터 I·II·III입니다.

  2. 2

    링 설정하기

    세 개의 링 설정을 AAA처럼 글자로 입력하세요. 링 설정(Ringstellung)은 각 로터의 배선을 글자 링에 대해 회전시켜 결과를 바꿉니다.

  3. 3

    시작 위치 설정하기

    세 개의 시작 위치를 AAA처럼 글자로 입력하세요. 이는 입력을 시작하기 전에 로터를 맞춰 두는 지점으로 로터 창에 표시됩니다. 복호화하려면 암호화할 때 사용한 것과 같은 시작 위치를 쓰세요.

  4. 4

    플러그보드 짝 추가하기

    원하면 AB CD EF처럼 플러그보드 짝을 입력하세요. 각 짝은 로터 앞뒤에서 두 글자를 맞바꾸며, 각 글자는 한 번만 쓸 수 있습니다. 플러그보드를 쓰지 않으려면 칸을 비워 두세요.

  5. 5

    입력하고 결과 읽기

    메시지를 입력하거나 붙여넣으면 결과가 즉시 나타나고 실시간 계산에서 로터 창이 회전합니다. 에니그마는 상호적이라 같은 설정으로 암호화와 복호화가 되므로, 정확한 기계 설정과 텍스트로 도구를 다시 여는 링크를 복사·다운로드하거나 공유할 수 있습니다.

에니그마 암호기 이해하기

에니그마 암호기란?

에니그마 암호기는 독일 기술자 아르투어 셰르비우스(Arthur Scherbius)가 1918년경에 발명한 전기기계식 로터 암호 장치입니다. 나무 상자에 든 타자기처럼 생겼으며, 자판과 그 위에 26개의 글자가 빛나는 램프판, 로터라고 부르는 회전하는 바퀴들, 그리고 앞면의 케이블식 플러그보드로 이루어져 있습니다. 글자를 누르면 전류가 플러그보드를 지나 로터와 반사판을 가로지른 뒤 되돌아와 램프판의 다른 글자를 켭니다. 그 켜진 글자가 바로 암호문입니다. 키를 누를 때마다 로터도 회전하므로 같은 평문 글자라도 나타날 때마다 다르게 암호화되며, 바로 이 점이 에니그마를 단순 치환이 아닌 다중 알파벳 암호로 만듭니다.

독일군이 채택해 끊임없이 개량한 에니그마는 제2차 세계대전 내내 나치 독일 비밀 통신의 중추가 되었습니다. 독일은 가능한 설정의 수가 어마어마하다는 이유로 이를 해독 불가능하다고 믿었지만 그것은 착각이었습니다. 마리안 레예프스키(Marian Rejewski)가 이끈 폴란드 수학자들은 1930년대 초에 기계와 그 배선을 재구성했고, 그들의 성과는 영국 블레츨리 파크에서 앨런 튜링(Alan Turing), 고든 웰치먼(Gordon Welchman)을 비롯한 많은 이들에 의해 확장되었습니다. 이들의 암호 해독은 전쟁을 단축했다고 널리 평가받습니다. 이 도구는 독일 육군과 공군이 사용한 표준 3로터 에니그마 I을 재현합니다.

에니그마 암호기의 작동 원리

에니그마 설정에는 네 개의 작동 부분이 있습니다. 플러그보드(Steckerbrett)는 로터 묶음의 앞뒤에서 케이블로 글자를 짝지어 맞바꿉니다. 로터(Walzen)는 26개의 입력 접점 각각이 뒤섞인 출력 접점에 연결되도록 배선된 바퀴이며, 이 기계는 다섯 개 가운데 골라 순서를 정한 세 개를 동시에 사용합니다. 반사판(Umkehrwalze)은 맨 끝에 있으며 고정된 짝짓기로 전류를 로터 쪽으로 되돌려 보냅니다. 그러면 램프판이 결과를 보여 줍니다. 따라서 신호는 왕복합니다. 플러그보드, 오른쪽 로터, 가운데 로터, 왼쪽 로터, 반사판, 왼쪽 로터, 가운데 로터, 오른쪽 로터, 플러그보드, 그리고 마지막으로 램프 순입니다.

세 가지 설정이 특정한 날이나 메시지에 맞게 기계를 개인화합니다. 링 설정(Ringstellung)은 각 로터의 배선을 글자 링에 대해 회전시킵니다. 시작 위치(Grundstellung)는 입력을 시작하기 전에 각 로터를 맞춰 두는 지점으로, 작은 창을 통해 보입니다. 플러그보드 짝은 마지막 맞바꿈 층을 더합니다. 키를 누를 때마다 로터는 주행 거리계처럼 전진하므로 전류가 지나는 배선은 결코 연달아 두 번 같지 않습니다. 도구 아래의 실시간 계산은 메시지의 각 글자에 대해 세 로터 창이 회전하는 모습을 보여 줍니다.

풀이 예시

기계를 가장 자주 인용되는 기준 구성으로 설정하세요. 반사판 B, 왼쪽에서 오른쪽으로 로터 I·II·III, 세 링 설정 모두 A, 세 시작 위치 모두 A, 플러그보드는 비웁니다. 이제 A를 다섯 번 입력합니다. 첫 키 입력에서 오른쪽 로터가 회전하고, 전류가 왕복을 거쳐 램프 B를 켭니다. 나머지 A를 입력하면 그때마다 로터가 회전하여 D, 이어서 Z, G, O가 켜집니다. 따라서 평문 AAAAA는 BDZGO로 암호화됩니다. 이는 로터가 올바르게 배선되었는지 확인하는 고전적인 검사입니다.

에니그마는 상호적이므로 복호화에도 똑같은 설정을 씁니다. 세 로터를 시작 위치 A로 되돌리고 나머지는 그대로 둔 채 암호문 BDZGO를 입력하세요. 원래 메시지 AAAAA가 나옵니다. 같은 설정이 텍스트를 복원한 것입니다. 그래서 이 도구에는 별도의 복호화 모드가 없습니다. 암호화에 사용한 설정을 복원하고 암호문을 다시 입력하기만 하면 됩니다.

반사판과 상호성

에니그마를 상호적으로 만드는 것은 반사판입니다. 26개의 선을 대칭으로 짝짓기 때문에 전류가 키에서 램프까지 가는 경로는 완전히 가역적입니다. 어떤 로터 구성에서 A를 누를 때 G가 켜진다면, 같은 구성에서 G를 누르면 A가 켜집니다. 로터의 전진은 설정과 메시지 안에서의 글자 위치에만 달려 있고 글자 자체에는 결코 좌우되지 않으므로, 기계를 같은 시작 상태로 되돌리기만 하면 복호화는 암호화와 완전히 같습니다. 절차도 하나, 설정도 하나, 방향은 양쪽입니다.

반사판은 에니그마의 가장 유명한 결함도 만들어 냈습니다. 글자는 결코 자기 자신으로 암호화될 수 없습니다. 전류는 항상 나갔던 선과는 다른 선으로 돌아오므로 A는 A를 제외한 어떤 글자로도 될 수 있습니다. 무해해 보이지만 이는 해독자에게 강력한 도구를 주었습니다. 평문 조각, 이른바 크립(crib)이 메시지 어딘가에 있다고 추측할 수 있으면, 그것을 암호문을 따라 밀어 가며 글자가 자기 자신과 일치하는 위치를 즉시 모두 배제할 수 있어 탐색 범위를 크게 좁혔습니다. 편의를 더하려던 설계가 연합군에게 발판을 내준 셈입니다.

로터 전진과 이중 전진

로터는 주행 거리계의 바퀴처럼 회전하지만 한 가지 묘한 점이 있습니다. 오른쪽 로터는 키를 누를 때마다 전진합니다. 각 로터에는 넘김 홈이 있고, 로터가 그 홈을 지나 전진하면 왼쪽 로터를 한 자리 앞으로 밀어 줍니다. 그래서 오른쪽 로터가 한 바퀴를 다 돌아 자신의 홈에 이르면 가운데 로터가 전진하고, 가운데 로터가 마침내 자신의 홈에 이르면 왼쪽 로터가 전진합니다. 이것이 기계가 좀처럼 반복되지 않는 이유입니다. 세 로터로는 전체 주기가 수천 글자에 이릅니다.

이중 전진이라고 불리는 잘 알려진 변칙이 있습니다. 전진 레버가 맞물리는 방식 때문에, 가운데 로터가 자신의 넘김 위치에 있을 때는 다음 키 입력에서 왼쪽 로터와 함께 전진하는데, 바로 앞 입력에서 오른쪽 로터에 의해 이미 한 번 전진했기 때문에 짧은 사이에 두 번 움직이는 것처럼 보입니다. 충실한 에니그마 시뮬레이터라면 이 이상 현상을 반드시 재현해야 하며, 이 도구도 재현합니다. 가운데 로터가 홈 근처에 있을 때 실시간 계산에서 그 발생을 볼 수 있습니다. 전진을 정확히 맞추는 일은 필수입니다. 단 한 번의 잘못된 전진도 그 뒤의 모든 글자를 어긋나게 하기 때문입니다.

에니그마 암호는 어떻게 해독되었나

첫 돌파구는 폴란드에서 나왔습니다. 1932년 수학자 마리안 레예프스키(Marian Rejewski)는 폴란드 암호국에서 예지 루지츠키(Jerzy Rozycki), 헨리크 지갈스키(Henryk Zygalski)와 함께 치환 이론과 빼돌린 설정 목록을 이용해 군용 에니그마의 내부 배선을 재구성했습니다. 이는 오랫동안 불가능하다고 여겨진 위업이었습니다. 폴란드는 전기기계식 보조 장치를 만들어 여러 해 동안 독일 통신을 읽었고, 전쟁 직전 모든 것을 영국과 프랑스에 공유했습니다. 그 선물이 블레츨리 파크가 세워진 토대가 되었습니다.

블레츨리 파크에서 앨런 튜링(Alan Turing)과 고든 웰치먼(Gordon Welchman)은 그날의 키를 찾기 위해 엄청난 수의 로터 설정을 빠르게 시험하는 기계 봄베(Bombe)를 설계했습니다. 그들의 공격은 자기 암호화가 일어나지 않는 결함, 날씨 보고와 상투적인 문구처럼 예측 가능한 평문 크립, 그리고 키를 재사용하거나 대충 고르는 운용자 실수에 기댔습니다. 독일이 로터와 플러그를 늘리면서 작업은 더 어려워졌지만 암호 해독은 멈추지 않았습니다. 거기서 얻은 정보는 울트라(Ultra)라는 암호명으로 불렸으며, 제2차 세계대전을 단축하고 많은 생명을 구했다고 널리 평가받고, 현대 컴퓨팅의 토대를 놓는 데에도 한몫했습니다.

에니그마 암호는 안전한가?

그 시대의 기준으로 에니그마는 가공할 만했습니다. 로터 선택, 링 설정, 시작 위치, 그리고 열 개의 플러그보드 케이블까지 세면 가능한 설정은 약 159경 가지에 이릅니다. 그러나 키의 순수한 개수가 곧 보안은 아닙니다. 구조적 결함, 특히 어떤 글자도 자기 자신으로 암호화되지 않는다는 점, 예측 가능한 메시지 내용, 그리고 사람의 실수 덕분에 적절한 기계와 방법을 갖춘 분석가들은 일일 키를 거듭거듭 복원할 수 있었습니다. 현대 컴퓨터 앞에서는 완벽하게 운용된 에니그마조차 아무런 보호가 되지 못합니다.

오늘날 에니그마 암호는 그것이 가르쳐 주는 바와 비범한 역사 덕분에 연구되고 즐겨집니다. 로터 기계, 다중 알파벳 치환, 그리고 치밀한 암호 해독이 어떻게 암호를 무너뜨리는지를 이해하는 가장 좋은 방법 가운데 하나이며, 박물관·영화·퍼즐·capture the flag 과제에 끊임없이 등장합니다. 실제 정보를 보호하려면 언제나 AES처럼 현대적이고 충분히 검증된 알고리즘에 의존해야 합니다.

자주 묻는 질문

에니그마 암호기란 무엇인가요?
에니그마 암호기는 아르투어 셰르비우스(Arthur Scherbius)가 1918년경에 발명하고 나치 독일이 제2차 세계대전 내내 사용한 전기기계식 로터 암호입니다. 키를 누르면 전류가 플러그보드, 세 개의 회전 로터, 반사판을 지나 암호문 글자를 켜며, 키를 누를 때마다 로터가 전진하므로 같은 글자도 매번 다르게 암호화됩니다. 이 도구는 표준 3로터 에니그마 I을 시뮬레이션합니다.
에니그마 암호기는 어떻게 작동하나요?
신호는 왕복합니다. 플러그보드를 지나고 오른쪽·가운데·왼쪽 로터를 거쳐 반사판에서 튕겨 나온 뒤 로터를 거꾸로 되돌아오고 플러그보드를 한 번 더 통과해 램프를 켭니다. 키를 누를 때마다 그에 앞서 로터가 주행 거리계처럼 전진합니다. 반사판이 선을 대칭으로 짝짓기 때문에 암호가 상호적이 되어 같은 설정으로 암호화와 복호화가 모두 됩니다.
에니그마 메시지는 어떻게 디코딩하나요?
반사판, 로터, 링 설정, 시작 위치, 플러그보드를 메시지를 암호화할 때 사용한 값과 똑같이 설정한 다음 암호문을 붙여넣으세요. 에니그마는 상호적이라 별도의 복호화 모드가 없으며, 설정이 맞으면 출력이 원래 평문이 됩니다. 설정을 모른다면 암호 해독으로 그것을 복원해야 합니다.
에니그마 예시를 보여 줄 수 있나요?
반사판 B, 로터 I·II·III, 모든 링 설정을 A, 모든 시작 위치를 A로 두고 플러그보드를 비운 상태에서 AAAAA를 입력하면 BDZGO가 나옵니다. 같은 기계를 초기 상태로 되돌리고 BDZGO를 입력하면 AAAAA로 돌아옵니다. 에니그마가 상호적이기 때문입니다. 이 AAAAA에서 BDZGO로의 결과는 에니그마 시뮬레이터가 올바르게 배선되었음을 보여 주는 고전적인 검사입니다.
에니그마에는 왜 별도의 복호화 버튼이 없나요?
에니그마는 반사판 덕분에 상호적입니다. 어떤 로터 구성에서든 A가 G를 켜면 G가 A를 켜며, 로터의 전진은 설정과 글자의 위치에만 달려 있고 글자 자체에는 달려 있지 않습니다. 그래서 복호화는 기계를 같은 시작 상태로 되돌려 수행하는, 암호화와 완전히 같은 작업입니다. 설정 하나가 양방향을 처리하므로 복호화 모드가 필요 없습니다.
로터, 링 설정, 시작 위치란 무엇인가요?
로터는 26개의 글자를 뒤섞도록 배선된 바퀴로, 이 기계는 다섯 개 중 고른 세 개를 정해진 순서로 사용합니다. 링 설정(Ringstellung)은 로터의 내부 배선을 글자 링에 대해 회전시킵니다. 시작 위치(Grundstellung)는 입력을 시작하기 전에 각 로터를 맞춰 두는 지점입니다. 둘이 합쳐 일일 키의 큰 부분을 이룹니다.
플러그보드란 무엇인가요?
플러그보드(Steckerbrett)는 신호가 로터에 들어가기 전과 돌아온 뒤에 글자를 짝지어 맞바꾸는 케이블 소켓 패널입니다. 예를 들어 A를 B에 꽂으면 모든 A는 B로, 모든 B는 A로 취급됩니다. 각 글자는 한 번만 꽂을 수 있으며, 플러그보드는 에니그마의 가능한 설정 수를 크게 늘렸습니다.
글자는 왜 결코 자기 자신으로 암호화될 수 없나요?
반사판이 전류를 늘 나갔던 선과는 다른 선으로 되돌리기 때문에 글자는 결코 자신의 램프를 켤 수 없습니다. A는 A를 제외한 무엇이든 될 수 있습니다. 이는 심각한 약점이었습니다. 해독자는 추측한 평문 조각을 가져다 암호문을 따라 밀어 가며 글자가 자기 자신과 일치하는 모든 배열을 배제할 수 있었고, 그 덕분에 키를 찾는 작업이 크게 줄었습니다.
누가 에니그마 암호를 해독했나요?
폴란드 수학자 마리안 레예프스키(Marian Rejewski), 예지 루지츠키(Jerzy Rozycki), 헨리크 지갈스키(Henryk Zygalski)가 1930년대에 처음으로 군용 에니그마를 재구성하고 그 통신을 읽은 뒤 그 성과를 영국과 프랑스에 공유했습니다. 블레츨리 파크에서 앨런 튜링(Alan Turing)과 고든 웰치먼(Gordon Welchman)은 봄베를 만들었고 많은 동료와 함께 에니그마를 일상적으로 해독했습니다. 울트라(Ultra)라는 암호명의 그 정보는 제2차 세계대전을 단축했다고 널리 평가받습니다.
에니그마 암호는 얼마나 안전했나요?
그 시대로서는 에니그마가 매우 강력해 가능한 설정이 약 159경 가지였습니다. 그러나 키의 수가 많다고 보안이 보장되지는 않습니다. 자기 암호화가 일어나지 않는 결함, 예측 가능한 메시지 내용, 재사용된 키, 운용자 실수 덕분에 분석가들은 일일 설정을 거듭 복원할 수 있었습니다. 현대 컴퓨터 앞에서는 완벽하게 운용된 에니그마조차 실질적인 보호가 되지 못합니다.
제 텍스트가 서버로 업로드되나요?
아니요. 모든 인코딩과 디코딩은 전적으로 브라우저 안에서 이루어지므로 텍스트와 기계 설정이 업로드·기록·저장되는 일이 없습니다. 공유 링크조차 데이터를 URL의 해시 뒤쪽 부분에 담는데, 이 부분은 브라우저가 서버로 보내지 않으므로 직접 공유하기 전까지 비공개로 유지됩니다.

관련 도구

이런 편리한 도구도 함께 사용해 보세요

카이사르 암호

비제네르 암호

아트바시 암호

레일 펜스 암호

플레이페어 암호

아핀 암호