에니그마 Enigma

2024. 5. 14. 23:27대학교/정보보안

초창기의 암호는 전쟁에서 주로 사용되었다. 전쟁에서는 수많은 사람들이 의사를 공유해야 한다. 어느 때 어느 위치에 몇명이 등등등.... 즉 통신을 해야한다는 의미이고 적군에게 통신 정보가 유출되면 내부 사정을 꿰뚫어볼 수 있다. 이는 곧 전쟁의 패전을 초래한다. 이로 인해서 암호가 나오고 꾸준히 발전해왔다.
1차 세계대전 당시 치머만 전보 사건으로, 독일의 정보가 유출되어 미군이 참전했다고 한다. 이러한 암호 방식을 업그레이드 해서 2차 세계대전 당시 사용된 독일의 암호 체계 '에니그마' 를 알아보자.
 
먼저 에니그마의 방식을 알아보기 전, 암호가 어떻게 진행되는지 암호 체계를 살펴볼 필요가 있다.
에니그마는 다중 치환 암호의 일종이다.
 
일단 단일 치환 암호부터 알아보자.
A라는 문자가 있다고 해보자. 이것을 다른 문자로 치환 하는것이다. F로 치환해보자.
R이라는 문자는 O로 , E라는 문자는 P로 치환해보자. 

이 규칙에 의거해, ARE이라는 메시지를 암호화 하면 FOP이라는 괴상한 문자가 나온다. 이게 바로 단일 치환 암호 방식이다.
 
하지만 단점이 존재한다. AARREE는 암호화 시 FFOOPP이다. 문자와 치환되는 암호 문자의 관계는 1대 1 관계라서 중복된 문자도 똑같이 중복되는것이다. 이 약점은 빈도분석법에 의해 해독될 수 있다.
 
그래서 다중 치환 암호가 나온것이다. 문자 하나가 (A~Z)까지 ..범위를 가지고 나올때마다 계속 바뀌는것 이다.
AARREE - > ZOKSJE 이렇게 되는것이다. 중복이라는 개념을 배제해서 단일 치환 암호보다 해독 난이도가 극악적으로 올라간다. 
 
이렇게 다중 치환 암호를 만들어내는 알고리즘을 가진 장치가 바로 에니그마이다.

https://www.tnmoc.org/

에니그마의 외관 모습이다.
입력 키보드 란이 있고, 위에는 전구가 있다. 전구는 키의 갯수와 같은것을 볼 수 있다. ( 같은 위치는 같은 알파벳 의미.)
키 하나를 누를 시 내부에서 막 뒤섞여서  다른 위치의 전구 불이 켜진다. 그러면 그 알파벳이 암호문자고 종이에 적는것이다.
 
 

간단한 예시 회로도이다.

A 스위치(키보드)를 누르면, A전구가 켜지고 B스위치(키보드)를 누르면 B  전구가 켜진다.

전구와 스위치의 사이 전선을 뒤죽박죽 바꿔버리자. 
A스위치를 누르면 C전구가 켜진다. B스위치를 누르면 A 전구가 켜진다.
 
이것이 에니그마의 작동 원리이다.
이것의 핵심은 에니그마의 Rotor에 있다.

https://enigma.virtualcolossus.co.uk/technical.html

 
이 로터는 아까 말한 전구의 예시를 담고 있다. 구멍은 모두 1부터 26(a부터 z까지이다.)

내부는 각각 다른 선들로 쏘여있어 A핀으로 들어간 전기는 B 로 나오고 C핀은 A로 나온다.(예시)
 
에니그마는 이 Rotor가 3개가 있다.

 
가만히 있었다면 다중 치환 암호가 아니다. 항상 같은 문자는 같은 출력이 되니까.
그래서 이 Rotor는 돌아가기까지 한다!!!! 그러면 경로가 바뀌니 다른 값이 나온다.
 
첫 번째 로터가 한바퀴 돌때 두 번째 로터가 한번 움직이고 두 번째 로터가 한바퀴 돌때 세 번째 로터가 한번 움직이는 방식으로 동작된다.
 
여기서 끝이 아니다. 마지막에 Reflecter 라는것이 있어서 치환이 다시한번 진행된다. 어떤 느낌이냐면.....

다시 되돌아온다는것이다.. 총 7번 (3 + 3 + reflecter) 을 거쳐서 알파벳이 치환된다.
이해가 안된다면 오른쪽 전선부터 따라 들어가보자. 
 
 
에니그마의 핵심 두 번째. Plugboard이다.

https://en.m.wikipedia.org/wiki/File:Enigma-plugboard.jpg

로터를 통해 나온 전기가 전선을 따라 플러그보드로 흘러간다.
플러그보드를 보면 선이 서로 연결되어있는 구조이다. 
그렇다. 또 교환을 진행하는것이다. 만약 로터에서 나온 전기 전선이 'O' 라면 저 사진에 O와 A가 연결되어 있는 것으로 보아 A로 나오고 최종적으로 전구에는 A가 나올것이다.
 
전체적인 구조는 키보드 입력 -> 플러그보드 -> 로터 -> 플러그보드 -> 전구이다.
 
로터는 종류가 5개 있는데, 독일군은 준비된 5개의 로터중 3개의 로터를 정하고, 3개중 순서를 또 정하고, 처음 시작될 숫자를 또 정해서 이 정해진것을 날마다 다르게 설정한 표로 배포해서 사용했다고 한다.
 
이게 바로 키인것이다.
 
 
참고자료

 
 

'대학교 > 정보보안' 카테고리의 다른 글

플레이페어 암호 - Play fair Cipher  (0) 2024.04.08
전치 암호 - Transposition Cipher  (0) 2024.04.08
비즈네르 암호 - Vigenere Cipher  (0) 2024.04.08