에니그마(Enigma)는 제1차 세계 대전과 제2차 세계 대전 동안 독일이 통신에서 사용한 암호화 기계입니다. 에니그마는 초기에 상업적인 목적으로 개발되었으나 독일 군대에서는 군사적인 통신에 사용하기 위해 변형되었습니다. 이 기계는 기계식으로 동작하지만 베터리가 필요하며, 여러 회전하는 디스크를 통해 글자를 암호화하는 방식으로 작동했습니다.
하지만 연합국은 에니그마를 해독하기 위한 암호학적 노력을 기울였고, 이는 중요한 정보를 입수하는 데 기여했습니다. 특히 폴란드와 영국에서 에니그마 해독에 성공한 노력이 제2차 세계 대전에서 연합군에게 중요한 이점을 제공했습니다. 에니그마는 암호학과 통신사의 발전에 큰 영향을 미쳤고, 역사적으로 중요한 기계 중 하나로 기억되고 있습니다.
에니그마, <Enigma by William Warby, CC BY 2.0>
1. 에니그마 구조
에니그마는 다양한 모델이 존재하지만, 일반적으로는 다음과 같은 주요 구조를 갖추고 있습니다.
베터리(Battery)
에니그마는 기계식 구조를 가지고 있지만, 최종적으로 출력되는 신호를 빛으로 표시하기 위해 베터리가 장착되어 있습니다.
키보드(Keyboard), 키 스위치(Key Switch)
키보드는 사용자가 문자를 입력 하는 곳으로, 키보드에는 26개의 알파벳 글자들이 있어서 이를 이용하여 사용자가 메시지를 입력합니다. 또한 알파벳 키에는 베터리에서 들어오는 전기 신호를 다음 단계로 보내기 위한 키 스위치가 장착되어 있으며, 최종적으로 출력 전구로 보낼 전기 신호를 내보낼 키 스위치도 함께 장착되어 있습니다.
에니그마 키보드&램프보드, <Enigma Machine by School of Mathematics – University of Manchester, CC BY 2.0>
플러그보드(Plugboard)
플러그보드는 특정 알파벳을 다른 알파벳으로 변환하기 위한 부분 중 하나로, 각 알파벳별로 플러그를 꽂기 위한 2개의 구멍이 있습니다. 전기선 양쪽에 각각 플러그가 달려 있는 연결선을 이 플러그보드에 꽂는데, 예를 들어 연결선 한쪽은 A에 꽂고 다른 한쪽은 Z에 꽂습니다. 연결선은 최대 13개까지 꽂을 수 있지만, 보통 10개의 연결선을 사용합니다.
에니그마 플러그보드, <Enigma Machine by School of Mathematics – University of Manchester, CC BY 2.0>
로터(Rotor)
로터는 특정 알파벳을 다른 알파벳으로 바꾸기 위한 부분 중 하나로서 회전하는 두꺼운 디스크입니다. 초기에 설정할 때에는 손으로 직접 돌려서 회전할 수 있고, 특수한 구조를 가지고 있기 때문에 한 번 타이핑할 때마다 로터는 회전합니다. 로터는 두꺼운 디스크 모양으로 양쪽 면에는 전기 신호를 받고 내보낼 수 있는 각각 26개의 금속이 원형으로 위치해 있으며, 로터 안쪽에는 전기선이 양쪽 면에 있는 금속을 불규칙하게 연결해 주고 있습니다. 또한 로터는 한 쪽 면에는 26개의 톱니가 장착되어 있고, 다른 쪽 면에는 1개의 톱니가 장착되어 있는 특수한 구조를 가지고 있습니다. 그리고 로터(두꺼운 디스크 모양)의 둘레를 따라서 1부터 26까지의 숫자가 표기되어 있습니다. 한 개의 에니그마에는 보통 3개의 로터를 겹쳐서 사용하여, 암호화를 더욱 강력하게 하였습니다.
리플렉터(Reflector)
리플렉터는 마지막 로터를 통과한 전기 신호를 다시 그 로터로 돌아가게 하는 기능을 가지고 있습니다. 이때 리플렉터는 입력된 신호를 전기선을 이용하여 다른 위치로 바꾼 다음에 동일한 로터로 보냅니다.
에니그마 로터&리플렉터, <Enigma Machine by School of Mathematics – University of Manchester, CC BY 2.0>
램프보드(Lampboard), 출력 전구(Light Bulb)
램프보드는 최종적인 출력 신호를 보여주는 곳이며, 출력 신호는 이 곳에 있는 알파벳이 표시된 출력 전구를 통해 나타나게 됩니다. 출력 전구들에 표시된 알파벳 위치는 키보드의 알파벳 위치와 동일하지만, 에니그마 내부의 암호화 방식 떄문에 입력 알파벳과 출력 알파벳은 다르게 나타납니다.
2. 에니그마 암호화 방법
에니그마의 암호화 방법은 기계의 초기 설정과 전기적 신호의 변환을 포함하며 그 과정은 다음과 같습니다.
에니그마의 분리된 로터, <Enigma Machine by School of Mathematics – University of Manchester, CC BY 2.0>
초기 설정
에니그마를 사용하기 전에 초기 설정이 필요합니다. 이 설정은 기계에 삽입할 로터의 선택, 삽입 로터의 순서 결정, 각 로터의 시작 위치 결정, 플러그보드에서 연결선의 조합으로 이루어집니다.
알파벳 입력과 로터 자동 회전
키보드에서 원하는 알파벳을 누릅니다. 이와 동시에 로터의 특수한 톱니 구조로 인하여 삽입된 로터들은 회전하며, 이에 따라서 같은 알파벳을 반복적으로 누르더라도 최종적으로는 다른 알파벳들이 표시됩니다. 키를 누르게 되면 베터리에서 오는 전기 신호가 키에 설치된 키 스위치와 닿음으로써 신호를 다음 단계로 보내게 됩니다.
플러그보드에서 1차 변환
사용자가 입력하는 각 알파벳 신호는 키 스위치와 연결된 플러그보드로 보내져서 변환된 후에 로터쪽으로로 나가게 됩니다. 다만, 플러그보드에서 연결선이 꽂혀있지 않은 알파벳의 경우에는 변환되지 않고 로터로 전달됩니다.
1차 로터 통과
플러그보드에서 전달된 신호는 보통 3개의 로터를 거치면서 각각의 로터별로 변환됩니다. 앞에서도 언급했듯이 알파벳을 입력할 때마다 로터들이 회전하므로 같은 알파벳을 반복하여 입력하더라도 로터의 회전에 따라 변환된 결과가 달라집니다.
리플렉터 통과
마지막 로터에서 출력되어 리플렉터로 입력된 신호는 리플렉터에서 변환되어 다시 동일한 로터로 돌아갑니다.
2차 로터 통과
리플렉터에서 변환되어 마지막 로터로 입력된 신호는 중간 로터를 거쳐서 맨 처음의 로터에서 출력됩니다.
플러그보드에서 2차 변화
로터들을 통과한 신호는 다시 한번 플러그보드로 보내지게 되며, 여기에서 한번 더 변환 과정을 거치고 나서 다음 단계로 보내지게 됩니다.
최종 출력
최종적으로 변환된 알파벳 신호는 해당 알파벳 키 스위치의 전선을 거쳐 해당 알파벳의 출력 전구로 보내지게 되고, 해당 전구에서 빛이 나게 됩니다. 이렇게 빛나는 전구의 알파벳이 암호화된 글자이며, 이를 이용하여 암호문을 만들게 됩니다.
3. 에니그마 암호화 특징
신호 변환 횟수
3로터 에니그마의 경우에 신호 변환 횟수는 1차 플러그보드에서 0 또는 1회, 로터와 리플렉터에서 7회, 2차 플러그보드에서 0 또는 1회 이므로 총 7~9회가 가능합니다.
암호키
에니그마를 초기 설정하기 위한 암호키에는 사용할 로터의 종류와 배치 순서, 각 로터의 시작 위치, 플러그보드에서 알파벳들의 연결선 매칭 방법, 리플렉터의 종류 등이 포함되어 있습니다. 또한 통신의 보안을 유지하기 위해 암호문 송신자와 수신자는 일정한 주기로 초기 설정을 위한 암호키를 교환했습니다.
복호화
암호문 수신자는 송신자와 동일한 암호키를 사용하여 초기설정을 하고, 송신자로부터 받은 암호문을 복호화합니다. 복호화는 암호문의 알파벳을 키보드로 누름으로써 나타나는 출력 신호의 알파벳을 확인하는 과정이며, 결과적으로 암호화의 반대과정을 따릅니다.
암호 해독
에니그마의 강력한 보안은 초기에 연합군에게 큰 어려움을 주었으나, 폴란드와 영국의 암호학자들이 수학적인 분석과 기계적인 장치를 사용하는 등의 역공학적인 분석을 통해 해독에 성공함으로써 연합군에게 중요한 정보를 제공했습니다.