071. 단일 치환 암호 (Mono-alphabetic Substitution Cipher)
⚠️ 이 문서는 카이사르 암호처럼 일정한 규칙으로 문자를 밀어내는 것을 넘어, 무작위로 섞인 치환표를 사용하여 평문의 알파벳 하나를 무조건 다른 특정 알파벳 하나로 1:1 매핑하는 고전 암호 체계인 '단일 치환 암호'를 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: 단일 치환 암호(Mono-alphabetic Cipher)는 평문의 특정 문자(예: 'A')가 암호문에서도 문서의 처음부터 끝까지 변함없이 오직 하나의 고정된 문자(예: 'Q')로만 1:1 치환되는 방식이다.
- 가치: 카이사르 암호의 고작 25개뿐인 키 공간(Key Space) 약점을 극복하기 위해, 알파벳 26개를 무작위로 뒤섞은 치환표 자체를 키(Key)로 사용함으로써 경우의 수를 $4 \times 10^{26}$ 개(26 팩토리얼)로 폭발시켜 무차별 대입 공격을 불가능하게 만들었다.
- 한계: 키의 가짓수는 우주적 스케일로 늘렸으나, "A가 Q로 치환된다"는 1:1 규칙이 끝까지 유지되므로 언어의 통계적 습관(빈도 분석법) 앞에서는 결국 맥없이 뚫리고 마는 태생적 뼈대를 벗어나지 못했다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
카이사르 암호(3칸 이동)는 규칙이 너무 뻔해서 적군이 25번만 시도해보면 1분 만에 풀려버렸다(Brute Force 취약성). 이를 해결하기 위해 고대의 암호학자들은 "단순히 뒤로 미루지 말고, 아예 알파벳 26개를 제비뽑기하듯 마구잡이로 뒤섞어서 암호표를 만들면 어떨까?"라는 기발한 생각을 해냈다.
이것이 단일 치환 암호의 무작위 치환(Random Substitution) 방식이다. 평문의 'A'는 'Q'로, 'B'는 'W'로, 'C'는 'E'로 치환하는 표를 짠다. 이 치환표 자체가 하나의 거대한 암호 키(Key)가 되며, 이 표의 종류는 자그마치 **26! (약 $4 \times 10^{26}$ 개)**에 달한다. 슈퍼컴퓨터가 없던 시절에는 억겁의 시간이 주어져도 모든 키를 대입해 보는 것은 불가능에 가까웠다.
📢 섹션 요약 비유: 카이사르 암호가 "비밀번호 다이얼을 3칸 돌리는 것"이라면, 단일 치환 암호는 다이얼이 아니라 "피아노 건반의 소리를 하나씩 다 뽑아서 내 마음대로 위치를 바꿔버린 뒤 연주하는 것"입니다. 건반을 누르는 조합이 무한에 가깝습니다.
Ⅱ. 단일 치환 암호의 동작 원리
가장 대표적인 무작위 단일 치환 암호는 송신자와 수신자가 미리 **'무작위 알파벳 치환표'**를 나눠 가지는 것에서 시작한다.
┌──────────────────────────────────────────────────────────────────────┐
│ 단일 치환 암호(무작위 키표) 작동 원리와 빈도 노출 시각화 │
├──────────────────────────────────────────────────────────────────────┤
│ │
│ [ 비밀 키 (무작위로 섞은 치환표) ] │
│ 평문 (Plain) : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z │
│ 암호문(Cipher): Q W E R T Y U I O P A S D F G H J K L Z X C V B N M │
│ │
│ [암호화 과정 예시] │
│ 평문(P): B E E │
│ ↓ ↓ ↓ (치환표에 따라 무조건 1:1 변경) │
│ 암호문(C): W T T │
│ │
│ * 취약점의 발현: 평문의 똑같은 글자 'E' 두 개는 암호문에서도 반드시 │
│ 똑같은 글자 'T' 두 개로 치환된다! │
└──────────────────────────────────────────────────────────────────────┘
[다이어그램 해설] 이 시스템의 치명적인 모순이 그림에 잘 나타나 있다. 키의 종류가 수경 개가 넘어가니 무차별 대입은 막았다. 하지만 "하나의 평문은 무조건 고정된 하나의 암호문 문자로 바뀐다(1:1 매핑)"는 단일 치환의 철칙 때문에, 평문의 패턴(예: EE, OO 같은 연속된 문자)이 암호문(예: TT)에도 고스란히 도장 찍히듯 노출된다.
- 📢 섹션 요약 비유: 사람의 얼굴에 무작위 동물 가면을 씌워서(A=호랑이, B=사자) 정체를 완벽히 숨겼습니다. 그런데 호랑이 가면을 쓴 사람이 평소 A의 습관처럼 다리를 덜덜 떠는 버릇(빈도, 패턴)을 멈추지 않으면, 가면의 종류가 아무리 많아도 금방 "저건 A구나!" 하고 들통나게 됩니다.
Ⅲ. 빈도 분석법 (Frequency Analysis) 앞의 붕괴
단일 치환 암호를 멸망시킨 것은 무식한 계산력(컴퓨터)이 아니라, 이슬람 세계의 학자 알킨디가 9세기에 창안한 **'빈도 분석법'**이라는 통계학적 칼날이었다.
- 영어의 언어적 통계: 영어로 된 긴 문장을 분석해 보면, 언제나 가장 많이 쓰이는 알파벳은 **E (약 12%)**다. 그다음이 T(9%), A(8%), O, I, N 순서다. 반면 Z, Q, J는 거의 쓰이지 않는다.
- 해커의 빈도 분석 공격:
- 해커가 수십 페이지짜리 암호문(Q, W, E... 로 범벅된 텍스트)을 탈취한다.
- 무식하게 키를 찍어 맞추는 대신, 암호문에서 알파벳의 개수를 센다.
- 만약 암호문에서 **'X'**라는 글자가 가장 많이(12% 이상) 등장했다면? 해커는 웃으며 말한다. "치환표가 뭔진 모르겠지만, 평문의 'E'를 'X'로 바꿔치기했군!"
- 그다음으로 많이 나온 글자는 'T'나 'A'일 것이라고 유추하며, 낱말 맞추기 퍼즐 풀듯 한두 글자씩 역추적해 나가면 10분 만에 암호표 전체가 박살 난다.
Ⅳ. 결론
"어떤 마술로 껍데기를 바꿔도, 본질적인 습관(통계)은 숨길 수 없다." 단일 치환 암호는 카이사르 암호의 허접한 키 공간을 26 팩토리얼이라는 거대한 수학적 장벽으로 업그레이드한 훌륭한 시도였다. 그러나 "하나의 글자는 끝까지 하나의 글자로만 치환한다"는 경직성 탓에, 언어가 가진 본연의 통계적 특성을 암호문에 고스란히 새겨버리는 치명적 약점을 남겼다. 이 실패를 교훈 삼아, 암호학자들은 'E'라는 똑같은 글자가 나올 때마다 암호문이 'X', 'B', 'P' 등으로 매번 다르게 바뀌는 **다중 치환 암호(Vigenère Cipher)**의 세계로 문을 열게 된다.
📌 관련 개념 맵
- 상위 개념: 치환 암호 (Substitution Cipher)
- 대표 예시: 무작위 대입 암호, 키워드 혼합 암호
- 치명적 약점/해독법: 통계적 빈도 분석법 (Frequency Analysis)
- 진화된 암호 체계: 다중 치환 암호 (Poly-alphabetic Substitution Cipher)
👶 어린이를 위한 3줄 비유 설명
- 카이사르 장군의 뻔한 3칸 밀기 암호가 다 털리자, 사람들은 아예 알파벳을 제비뽑기하듯 뒤죽박죽 섞어서 수조 개의 마법 암호표를 만들었어요.
- 하지만 나쁜 악당들은 표를 다 찍어보는 대신, "저 암호 편지에서 제일 많이 나오는 글자가 뭐지? 아, 저게 100% 모음 'E'를 숨긴 거구나!" 하고 눈치를 채버렸죠.
- 아무리 복잡한 가면을 씌워도, 평소에 기침을 자주 하는 사람의 버릇(글자의 통계)은 숨길 수 없어서 들통나버린 거랍니다!