본문 바로가기

암호학

에니그마 기계 이해하기

https://ko.wikipedia.org/wiki/%EC%97%90%EB%8B%88%EA%B7%B8%EB%A7%88_%EA%B8%B0%EA%B3%84

 

에니그마 기계는 크게 3 가지 부분으로 나뉜다.

로터 / 키보드/ 플러그

 

키보드에서는 사용자가 입력한다.

 

키보드를 입력하면 로터가 1개만큼 회전한다.

각 로터는 알파벳의 개수인 26개로 이루어 졌으며, 초/분/시 와같이 첫번째 로터가 1바퀴 돌면 두번째 로터가 한번 움직인다. 따라서 같은 알파벳을 입력해도 다른 값이 나오게 된다.

따라서 키보드로 입력을 하면 첫번째 로터가 1이었을 때 입력 후 2로 변경된다.

로터의 마지막 부분은 다시 3,2,1 번째 로터로 돌아오도록 하는 유턴 장치가 마련돼 있다. 때문에 2중으로 암호를 꼬는 것이다.

 

마지막으로는 플러그 부분이 있다.

플러그는 10쌍이 존재하며, 26개인 알파벳의 20개를 연결한다.

A와 O가 연결돼 있다면 로터에서 결과물이 A가 나왔을 때 O로 한번 더 변환시킨다.

만약 플러그가 없는 경우엔 A로 값이 들어왔을 때 A가 결과물로 나오게 된다.

https://ko.wikipedia.org/wiki/%EC%97%90%EB%8B%88%EA%B7%B8%EB%A7%88_%EA%B8%B0%EA%B3%84

여기서 주의깊게 봐야할 점은 플러그가 10쌍이 존재한다는 것이다. 따라서 연결되지 않은 부분이 존재한다는 것에서 경우의 수가 훨씬 늘어난다.


결과물은 다음과 같다.

https://ko.wikipedia.org/wiki/%EC%97%90%EB%8B%88%EA%B7%B8%EB%A7%88_%EA%B8%B0%EA%B3%84

1. 자판을 누른다(입력)

2. 로터에 전기 인가

3. 1,2,3,U,3,2,1 순서로 암호화

4. 암호화 된 알파벳 플러그로 전송

5. 결과물 출력