이미테이션 게임에서 등장한 암호화에 대한 내용이 있습니다. 영화에 대한 약간의 스포일러도 원하지 않는 분은 읽지 않기를 권합니다.


얼마 전 이미테이션 게임을 봤습니다. 대중 영화 한계상 암호를 깨는 원리는 고사하고 암호화 원리조차 제대로 설명을 해주지 않더군요. 별 상관 없는 crossword puzzle을 등장시킬께 아니라, 간단하게나마 설명해줬으면 하는 아쉬움이 있습니다. 물론 이해는 합니다. 아무리 깔끔하게 잘 설명해서 넣어도 지루해지기 십상인 데다가 이야기 진행하는데 암호화의 디테일은 중요하지 않으니까요. 그러나 역시 도대체 튜링이 정확히 무엇을 했는지에 대해서 궁금하신 분들이 있을까해서 간단히 글 하나 적어봅니다.


영화에서 블레츨리 파크(Bletchley Park)팀이 해독해야 하는 나치 메시지들은 에니그마(Enigma)라는 기계를 이용해서 암호화와 복호화를 했습니다. 에니그마는 겉보기에는 타자기 비슷하게 생긴 장치인데 키를 누를 때마다 해당 알파벳 전구에 불이 들어옵니다. 기계가 하는 일은 알파벳을 서로 교환하는 게 전부입니다. 예를 들어 A를 누르면 Z에 불이 켜지고 C를 누르면 F에 불이 켜지고 하는 식이죠. 그러나 문제는 이 교환 패턴이 키를 누를 때마다 변한다는 겁니다. 키를 누를 때마다 내부에 있는 회전자라는 장치가 돌아가면서 이 교환 규칙이 계속 변하기 때문입니다. 따라서 A만 여러번 누르더라도 계속 다른 알파벳에 불이 들어온다는 것이죠. 복호화를 할 때는 암호화 할 때와 같은 설정을 하고 암호문을 기계에 타이핑하면 평문에 해당하는 알파벳에 불이 들어왔습니다. 따라서 복호화를 하려면 암호화에 사용한 설정을 알아야했습니다.


문제는 가능한 설정이 많아서 (영화에서도 가능한 설정의 숫자는 나옵니다.) 암호문에 모든 설정을 다 시험해보는 식으로 설정을 알아내는 것은 절대 불가능했습니다. 그러나 에니그마 자체의 약점과 실제 에니그마를 이용해 통신을 수행하는 과정에 들어간 실수를 이용하여 에니그마로 만들어진 암호문을 평문으로 복호화할 수 있었죠. 이 과정을 사람이 다 하기에는 지난한 작업이라 기계의 도움을 받아야 하는데 이 기계가 바로 bombe입니다.(영화에서는 Christopher 라는 이름으로 나옵니다.) 그리고 bombe의 동작 원리에 각 알파벳이 자기 자신으로 암호화되는 일이 없다는 에니그마의 약점(A를 눌렀을 때 A에 불이 들어오는 일이 없다는 것이죠.)이 사용됐습니다. 


제가 더 자세한 설명을 해봐야 어차피 위키피디아에 적힌 내용 반복이니 대충 줄이고, 글보다는 영상을 좋아하시는 분들을 위해 영상 두 개를 소개합니다. 한국어 자막은 없으나 영문 자막은 있으니 궁금하신분들은 자막 켜놓고 천천히 보시면 대략적인 원리는 감이 잡히실 겁니다.


158,962,555,217,826,360,000 - Numberphile

Flaw in the Enigma Code - Numberphile

XE Login