03. 암호학 기초 (Classical Cryptography)
1. 케르크호프스의 원리 (Kerckhoffs's Principle)
현대 암호학의 근간이 되는 원리입니다.
"암호 체계의 안전성은 암호 알고리즘의 비밀성에 의존해서는 안 되며, 오직 키(Key)의 비밀성에만 의존해야 한다."
즉, 공격자(Eve)가 우리가 어떤 알고리즘을 쓰는지 다 알고 있더라도 키를 모르면 풀 수 없어야 안전한 암호입니다.
2. 시저 암호 (Caesar Cipher)
기원전 100년 경 율리우스 카이사르가 사용한 가장 오래되고 단순한 치환 암호입니다. 평문의 각 알파벳을 일정한 거리(Key)만큼 밀어서 암호화합니다.
수식 표현: 평문 \( P \), 암호문 \( C \), 키 \( K \) (0 ~ 25) 일 때,
$$ C = (P + K) \mod 26 $$
[Wikipedia: Caesar Cipher 역사 보기]
Interactive: 시저 암호 (Key = 3)
Plain:
HELLO
Cipher:
KHOOR
"재생" 버튼을 눌러 암호화 과정을 확인하세요.
3. 단일 치환 암호와 빈도 분석
시저 암호는 가능한 키가 25개뿐이므로 Exhaustive Key Search(전수 조사)에 취약합니다. 이를 보완하기 위해 알파벳 26개를 무작위로 일대일 매핑하는 단일 치환 암호(Monoalphabetic Cipher)가 등장했습니다. 키 공간이 \( 26! \approx 4 \times 10^{26} \) 으로 매우 큽니다.
하지만 이 역시 언어의 특성(예: 영어에서 'e'가 가장 자주 쓰임)을 이용한 빈도 분석(Frequency Analysis)에 의해 뚫리게 됩니다. 이를 방어하기 위해 다중 치환 암호인 Vigenère 암호가 나왔지만, 이 역시 Kasiski Examination에 의해 해독되었습니다.
4. 완벽한 보안: One-Time Pad (OTP)
이론적으로 해독이 불가능한(Perfect Secrecy) 유일한 암호입니다. 평문과 동일한 길이의 완전히 무작위인 키를 생성하여 XOR(\( \oplus \)) 연산을 수행합니다.
$$ C = P \oplus K $$
- 장점: 공격자가 무한한 컴퓨팅 파워를 가져도 해독 불가능. (무작위 키 때문에 복호화된 결과가 어떤 의미 있는 문장일지 확신할 수 없음)
- 단점: 평문만큼 긴 키를 안전하게 전달(Key Distribution)해야 하므로 실용성이 매우 떨어짐.