에니그마의 암호화 내부 원리

에니그마(Die Enigma)는 제2차 세계 대전 시기 독일군이 사용했던 휴대용 암호 생성기이다. 전쟁 중 통신 보안을 위하여 만들어진 암호 해독, 생성기로, 당시 독일군의 핵심 기구였다.
에니그마 사용법
에니그마는 암호 생성, 해독기로써, 키보드로 전달 내용을 입력하면, 암호환된 메시지가 상단 램프보드에 표시되며, 이 메시지를 전송하면 된다. 암호를 해독할 때는 반대로 받은 메시지를 키보드에 입력하면 램프보드에 원 메시지가 표시된다.
에니그마의 내부구조
에니그마는 배터리, 키보드, 플러그보드, 로터, 램프보드로 구성되어 있다
배터리
에니그마 오른쪽 상단에 위치해있으며, 기계에 전원을 공급한다
키보드
26키의 알파벳 키보드로 각각 스프링이 달린 붐에 연결되어 있다. 키와 연결되어 있는 스위치는 3개의 구리탭으로 구성되어 있는데, 상단 구리탭은 램프보드, 중간 구리탭은 플러그보드, 하단 구리탭은 배터리(전원공급)에 연결되어 있다. 키를 눌러 붐이 내려가면 상단 구리탭에 연결되어 있던 중간 구리탭이 하단 구리탭과 연결된다.
램프보드
키스위치의 중간탭으로 부터 받은 전기가 램프보드와 연결된 상단탭으로 흐르고, 해당되는 키의 램프가 불이 들어온다. 이후 회로가 끊기면 램프보드의 금속판으로 전기가 흘러 다시 배터리로 들어가게 된다.
플러그보드
키 스위치의 하단, 중간탭으로 부터 전기를 받은 플러그 보드는 52개의 플러그 (26개 알파벳 당 상하 2개)로 이후어져있는데, 플러그가 연결되어 있지않다면 상단 플러그에 전달된 전기가 그대로 하단으로 빠져나가지만 플러그가 연결되어 있다면 연결된 플러그의 하단으로 전기가 흐른다, 즉 A 플러그가 비어있다면 전기가 A로 다시 흐르겠지만 A 플러그가 T 플러그와 연결되어 있다면 A 상단 플러그로 온 전기가 T 하단 플러그로 들어가게 된다.
로터
에니그마의 핵심부품으로, 총 3개를 장착할수 있다. 각 로터는 알파벳 26개의 이빨로 구성되어 있으며, 각 로터 내부는 매우 복잡하게 연결되어 임의 알파벳으로 바꿔준다. 키보드 키를 한번 누르면 기계적으로 연결된 우측 로터 이빨을 한칸 움직이고 26번 움직이면 중간 로터의 이빨을 한번 돌린다. 이 밖에 26개의 알파벳(이빨)을 코드북에 따라 임의로 돌려 설정 할 수 있다.

에니그마의 작동원리
에니그마는 배터리 -> 키보드 -> 플러그보드 -> 로터 -> 플러그보드 -> 키보드 -> 램프보드 -> 배터리 순으로 전기가 흐르며 작동한다.
예를 들어 N키를 눌렀다면, 키의 붐이 스위치의 중간탭을 움직여 중간탭과 하단탭이 연결되어, 플러그보드의 N 상단 플러그에 전기가 흐르고, 플러그보드에서 N과 연결된 R하단 플러그로 전기가 흐른다.
이후 로터로 이 전기신호가 흐르고 총 7번 (오른쪽 로터 우->좌, 중간 로터 우->좌, 왼쪽로터 우->좌, 리플렉터, 왼쪽로터 좌->우, 중간로터 좌->우, 오른쪽 로터 좌->우) 로터를 통과하며 6번 알파벳이 바뀌어 A 상단 플러그와 연결된 전선으로 전기가 흐르게된다.
이후 A 플러그에 연결된 H 플러그의 하단플러그로 전기가 흐르고, H 하단 플러그에서 H 키스위치의 중간탭으로 전기가 흘러, 중간탭과 연결된 상단탭으로 전기가 이동하여 결론적으로 H 전구에 전기가 흐르게 된다. 이후 N키를 떼면 회로가 끊겨 전기가 배터리로 다시 들어간다.
에니그마의 성능
총 3개의 로터가 26번씩 회전하여 26x26x26 = 17576번의 경우의 수가 생긴다. 또한 최초 에니그마 지급씩 5개의 로터가 지급되고 코드북에 따라 로터를 골라 장착하는 방식이기에 로터 선택자체로도 60개의 경우의 수가 생긴다. 이에 더해 코드북에 따라 플러그보드까지 설정한다면 위 로터까지 합하면 총 158,962,555,217,826,360,000가지의 경우의 수, 약 1해 5860경의 경우의 수가 생긴다.

예시문 실험
플러그보드를 Q-V,R-Y,W-M,L-A,C-H,O-N,D-Z,G-B로 설정하였을때, DKSH FOREVER를 입력하면 플러그보드에 따라 ZKSC FNYEQRY로 변환되고 AAL로 설정된 로터를 지나
UFPB GEXYXCZ로 변환되어 다시 한번 플러그보드를 거치면** UFPG BEXRXHD **로 암호화 된다.