🕵️ 친구와 암호 대화
한국어

비제네르 암호에서 에니그마까지

시저 암호처럼 글자를 한 가지 규칙으로만 바꾸면 빈도 분석에 쉽게 무너집니다. 그렇다면 글자마다 밀어 주는 칸수를 계속 바꾸면 어떨까요? 이 발상에서 나온 것이 다중 문자 치환 암호이고, 그 대표 주자가 비제네르 암호입니다. 그리고 이 발상을 기계 장치로 극단까지 밀어붙인 것이 2차 세계대전의 에니그마였습니다. 이 글에서는 두 암호의 원리와 해독 이야기를 따라가 봅니다.

글자마다 열쇠가 달라지는 암호

비제네르 암호의 핵심은 열쇠 단어입니다. 시저 암호가 숫자 하나로 모든 글자를 밀었다면, 비제네르 암호는 열쇠 단어의 각 글자를 밀어 주는 칸수로 사용합니다. A는 0칸, B는 1칸, C는 2칸 하는 식으로 계산하고, 열쇠 단어를 평문 길이만큼 반복해서 글자마다 짝을 지어 줍니다.

이름은 프랑스 외교관 블레즈 드 비제네르에서 왔지만, 이 방식을 먼저 기술한 사람은 1553년 이탈리아의 조반 바티스타 벨라소로 알려져 있습니다. 비제네르는 1586년에 이를 발전시킨 별도의 암호를 책으로 남겼는데, 후대에 이름이 잘못 붙은 채 굳어졌다는 것이 정설입니다. 아무튼 이 암호는 오랫동안 풀 수 없다는 뜻으로 "le chiffre indéchiffrable", 즉 해독 불가능한 암호라는 별명을 얻었습니다.

직접 해 보는 비제네르 암호

평문 HELLO를 열쇠 단어 KEY로 암호화해 보겠습니다. 열쇠가 평문보다 짧으니 KEYKE처럼 반복해서 맞춥니다. K는 10칸, E는 4칸, Y는 24칸을 뜻합니다.

결과는 RIJVS입니다. 여기서 눈여겨볼 점이 있습니다. 평문의 L이 두 번 나오는데 암호문에서는 J와 V로 서로 다르게 바뀌었습니다. 같은 글자가 항상 같은 글자로 바뀌는 시저 암호와 달리, 글자의 위치에 따라 결과가 달라지는 것입니다. 이것이 빈도 분석을 무력하게 만든 이유입니다. 영어의 E가 아무리 많이 나와도 암호문에서는 여러 글자로 흩어져 버립니다.

이 방식의 장점은 열쇠 단어만 기억하면 된다는 점입니다. 긴 숫자 표를 외우지 않아도 "KEY"나 좋아하는 단어 하나로 글자마다 다른 규칙을 적용할 수 있습니다. 반대로 열쇠 단어가 짧거나 사전에 있는 흔한 단어라면 추측당하기 쉽다는 약점도 있습니다. 이 점은 오늘날의 비밀번호에도 그대로 들어맞는 교훈입니다. 같은 이유로 비제네르 암호는 열쇠 단어가 평문만큼 길고 무작위이며 한 번만 쓰이면 이론적으로 깨지지 않는 일회용 암호판과 같은 원리가 되지만, 그렇게 쓰기는 현실적으로 매우 번거로웠습니다.

풀 수 없던 암호가 풀리다

그래도 영원히 안전하지는 않았습니다. 영국의 찰스 배비지가 1850년대에 이 암호를 푸는 방법을 알아냈지만 발표하지 않았고, 프로이센 군 장교 프리드리히 카시스키가 1863년에 이를 책으로 공개했습니다. 그래서 이 방법을 카시스키 검사라고 부릅니다.

아이디어는 이렇습니다. 열쇠 단어가 반복되기 때문에, 평문에서 같은 단어가 열쇠의 같은 위치에 겹치면 암호문에서도 똑같은 조각이 나타납니다. 암호문 속 반복 조각 사이의 거리를 재면 그 거리는 열쇠 길이의 배수가 됩니다. 이런 거리들의 공통 약수를 찾으면 열쇠 길이를 추정할 수 있습니다. 열쇠 길이가 5라는 걸 알면 암호문을 5개의 줄로 나누어, 각 줄을 서로 독립적인 시저 암호로 보고 빈도 분석을 적용하면 됩니다. 어려운 암호가 쉬운 암호 여러 개로 쪼개지는 셈입니다.

기계로 만든 다중 치환, 에니그마

20세기에 들어서자 이 발상은 기계로 구현되었습니다. 독일의 아르투르 셰르비우스가 1918년에 특허를 낸 에니그마는 타자기처럼 생긴 장치로, 자판을 누르면 전기 신호가 회전판을 지나 다른 글자에 불이 들어옵니다. 핵심은 로터라 불리는 회전판으로, 글자를 하나 칠 때마다 로터가 돌아가며 치환 규칙이 계속 바뀝니다. 같은 글자 E를 연달아 쳐도 매번 다른 글자가 나옵니다. 비제네르 암호의 열쇠가 매우 길어진 것과 비슷한 효과입니다.

여기에 반사판과 플러그판이 더해져 가능한 설정의 수는 천문학적으로 커졌습니다. 독일 군은 1920년대 말부터 에니그마를 군용으로 도입했고, 스스로 깰 수 없는 암호라고 믿었습니다. 한 가지 구조적 약점은 반사판 때문에 어떤 글자도 자기 자신으로는 암호화되지 않는다는 점이었습니다. 이 사소한 규칙이 훗날 해독의 단서가 됩니다.

에니그마는 어떻게 풀렸나

에니그마를 처음 깨뜨린 것은 영국이 아니라 폴란드였습니다. 폴란드 암호국의 수학자 마리안 레예프스키, 예르지 루지츠키, 헨리크 지갈스키는 1932년 말 치환의 수학, 곧 군론의 개념을 이용해 에니그마의 내부 배선을 알아내고 일일 설정을 구하는 방법을 개발했습니다. 이후 해독을 돕는 전자기계식 장치도 만들었습니다. 1939년 7월 전쟁 직전에 폴란드는 이 성과를 영국과 프랑스에 넘겼습니다.

영국은 런던 북서쪽의 블레츨리 파크에 암호 해독 조직을 세웠고, 앨런 튜링과 고든 웰치먼 등이 참여해 훨씬 강력한 해독 기계 봄브를 만들었습니다. 이 기계는 "이 단어가 이 위치에 있을 것이다"라는 추측, 즉 예상 문구를 바탕으로 가능한 설정을 빠르게 걸러 냈습니다. 독일군이 매일 기상 보고를 비슷한 형식으로 보내던 습관이 좋은 단서가 되었습니다. 어떤 글자도 자기 자신으로 바뀌지 않는다는 성질도 후보를 줄이는 데 쓰였습니다.

해독 성과가 전쟁에 얼마나 영향을 미쳤는지는 지금도 논의가 이어지지만, 연합군의 정보 활동에 큰 도움이 되었다는 점은 널리 인정됩니다. 중요한 교훈은 기계가 아무리 복잡해도 사람의 습관과 설계상의 작은 규칙성이 약점이 된다는 것입니다.

연습 문제로 익히기

손으로 계산해 보면 비제네르 암호가 훨씬 가깝게 느껴집니다. 문제 세 개를 준비했습니다.

  1. 평문 CAT을 열쇠 단어 DOG로 암호화해 보세요.
  2. 평문 ATTACK을 열쇠 단어 LEMON으로 암호화해 보세요.
  3. 어떤 암호문에서 같은 조각이 12글자, 18글자 간격으로 반복해서 나타났습니다. 열쇠 길이는 어떻게 추정할까요?

풀이

첫 번째는 D, O, G가 각각 3칸, 14칸, 6칸입니다. C에 3을 더하면 F, A에 14를 더하면 O, T는 19번째 글자여서 6을 더하면 25가 되어 Z가 됩니다. 답은 FOZ입니다. 두 번째는 열쇠가 5글자이니 L, E, M, O, N을 차례로 쓰고, 6번째 글자 K에는 열쇠가 다시 처음 글자 L부터 적용됩니다. 계산하면 L, X, F, O, P, V가 되어 LXFOPV입니다.

세 번째는 카시스키 검사의 핵심 아이디어입니다. 12와 18의 최대공약수는 6이므로 열쇠 길이는 6이거나 6의 약수인 2나 3일 가능성이 큽니다. 글자 사이의 우연한 일치가 섞일 수 있으므로 반복 조각을 여러 개 찾아 공통 약수를 확인하는 것이 안전합니다. 열쇠 길이를 추정한 뒤에는 암호문을 그 길이만큼의 줄로 나누어 각각 시저 암호로 풀면 됩니다.

흔한 오해 바로잡기

자주 묻는 질문

열쇠 단어는 어떻게 고르는 것이 좋을까요?

비제네르 암호에서는 열쇠가 길고 흔하지 않을수록 풀기 어렵습니다. 다만 아무리 길게 골라도 열쇠가 반복되는 한 카시스키 검사의 약점은 남습니다. 놀이로 쓸 때 친구와 미리 약속한 단어를 쓰는 정도가 알맞습니다.

이 사이트의 번역기는 비제네르 암호의 후예인가요?

방식 자체는 전혀 다릅니다. 번역기는 열쇠를 반복해서 쓰지 않고 AES-GCM이라는 현대 암호로 한 번에 변환하며, 암호화할 때마다 새로 뽑은 12바이트의 무작위 값을 섞습니다. 같은 문장이라도 결과가 달라지는 효과는 "규칙이 계속 바뀌게 한다"는 오래된 발상을 더 엄밀하게 구현한 것으로 볼 수 있습니다.

에니그마 해독에서 가장 중요한 단서는 무엇이었나요?

한 가지만 꼽기는 어렵지만, 자기 자신으로 바뀌지 않는다는 기계의 성질과 반복되는 형식의 문장이 모두 활용되었다는 점은 널리 알려져 있습니다. 완벽해 보이는 기계도 쓰는 사람의 습관 때문에 약점이 생긴다는 교훈을 줍니다.

오늘의 암호와 무엇이 다른가

비제네르와 에니그마는 모두 "규칙이 계속 변하게 하자"는 같은 생각에서 나왔고, 결국 규칙성이 남아 있어서 깨졌습니다. 현대 암호는 수학적으로 안전성을 따지고, 공격자가 알고리즘을 전부 안다는 전제에서 설계합니다. 이 사이트가 쓰는 AES-GCM도 같은 글을 같은 열쇠로 두 번 암호화해도 매번 다른 암호문이 나오도록 무작위 값을 섞습니다. 에니그마가 기계로 얻으려던 효과를 훨씬 엄밀하게 얻는 셈입니다. 직접 비교해 보고 싶다면 번역기 열기에서 체험해 볼 수 있습니다. 이 이야기의 앞부분은 시저 암호부터 시작하는 암호 이야기에서 확인할 수 있습니다.

잘못된 내용이나 보완할 점을 발견하셨다면 소개·문의의 이메일로 알려 주세요. 확인 후 글을 고치고 수정일을 갱신합니다.

함께 읽으면 좋은 글

다음 글: 빈도 분석: 암호는 어떻게 깨지는가 → 번역기 열기