# 버넘 암호 (Vernam Cipher)

**버넘 암호**는 평문의 각 문자 부호를 키 테이프의 부호와 비트 단위 배타적 논리합(XOR, 2를 법으로 하는 덧셈)으로 결합하는 최초의 기계식 스트림 암호입니다. 미국 AT&T의 길버트 S. 버넘(Gilbert S. Vernam)이 1917년에 고안했고, 1919년 7월 22일 미국 특허 1,310,719호로 등록되었습니다.

## 작동 방식

당시 텔레타이프는 문자마다 5비트 보도(Baudot) 부호를 종이 테이프에 구멍으로 찍어 전송했습니다. 버넘의 장치는 평문 테이프와 무작위 부호가 찍힌 키 테이프를 동시에 읽어 두 부호를 비트마다 XOR하고, 그 결과를 암호문으로 보냈습니다. 수신 측은 같은 키 테이프로 다시 XOR하면 평문을 복원합니다. 이 방식은 사람이 손으로 암호화하던 이전 방식과 달리 송신과 동시에 자동으로 암호화와 복호화가 이루어지는 온라인 암호화였다는 점에서도 새로웠습니다. XOR는 같은 값을 두 번 적용하면 원래대로 돌아오므로 암호화와 복호화가 같은 연산입니다.

예를 들어 평문 비트가 1011이고 키 비트가 0110이면 암호문은 1101이 되며, 암호문 1101에 다시 0110을 XOR하면 1011이 복원됩니다.

## 원래 시스템의 한계

버넘의 원래 시스템은 키 테이프의 양 끝을 이어 붙인 **고리형 테이프(loop)**를 사용했습니다. 테이프 길이가 유한하므로 메시지가 길어지면 같은 키가 반복되었고, 반복되는 키는 통계적 분석으로 깨뜨릴 수 있었습니다. 길이가 다른 고리 두 개를 겹쳐 주기를 늘리는 변형도 제안되었지만, 키가 주기적이라는 근본 약점은 남았습니다. 따라서 버넘 암호 자체가 언제나 해독 불가능한 것은 아닙니다.

## 일회용 패드와의 관계

미 육군의 조지프 모보른(Joseph Mauborgne)은 키를 메시지만큼 길고 진정으로 무작위이며 한 번만 쓰도록 하자는 조건을 더했습니다. 이 조건을 갖춘 방식이 **일회용 패드(one-time pad)**이며, 클로드 섀넌은 1949년 이 경우 암호문이 평문에 대한 정보를 전혀 주지 않는다는 **완전 비밀성**을 증명했습니다. 즉 이론적 해독 불가능성은 버넘의 XOR 결합에 일회용 패드의 키 조건이 더해졌을 때에만 성립합니다.

## 실무상 제약과 의의

- **키 분배:** 일회용 패드 조건을 지키려면 메시지만큼 긴 무작위 키를 미리 안전하게 나눠 가져야 하며, 이것이 가장 큰 부담입니다.
- **키 재사용 금지:** 같은 키를 두 메시지에 쓰면 두 암호문을 XOR해 두 평문의 XOR가 드러나므로 안전성이 무너집니다.

현대 스트림 암호는 짧은 비밀 키로 의사난수 키스트림을 만들어 평문과 XOR하는 방식으로, 버넘이 처음 기계로 구현한 결합 원리를 그대로 이어받고 있습니다.

정리하면, ‘버넘 암호’는 XOR로 키를 결합하는 방식의 이름이고, 그 안전성은 키를 어떻게 만들고 관리하느냐에 따라 전혀 달라집니다. 주기적인 키를 쓰면 깨질 수 있고, 일회용 패드 조건을 지키면 이론적으로 안전합니다.

---
출처: https://achivx.kr/glossary/vernam-cipher-%EB%B2%84%EB%84%98-%EC%95%94%ED%98%B8/ · ACHIVX 용어 사전 · 수정일 2026-10-20
