치환 암호 (Substitution Cipher)
치환 암호는 암호학에서 가장 기본적인 암호 방식 중 하나로, 평문(원본 메시지)에 등장하는 하나 또는 여러 개의 문자(단위)를 미리 정해진 규칙에 따라 다른 문자나 문자열로 대체(치환)하여 암호문을 생성하는 방법입니다.
1. 작동 원리
치환 암호는 문자의 순서(위치)는 그대로 두고, 문자의 정체(값)만 바꾸는 방식입니다.
- 평문 단위:
A,B,C... - 암호문 단위:
K,X,Z...
키(Key)는 '어떤 문자를 어떤 문자로 바꿀지'에 대한 규칙(대응표)을 정의합니다.
2. 치환 암호의 주요 종류
① 단일 문자 치환 (Monoalphabetic Substitution)
평문 전체에서 같은 문자는 항상 같은 문자로 치환됩니다. (키가 하나)
- 시저 암호 (Caesar Cipher): 모든 문자가 일정한 거리(Key)만큼 이동하는 가장 단순한 형태의 단일 문자 치환입니다.
- 아핀 암호 (Affine Cipher): 시저 암호에 수학적 곱셈($ax+b$)을 추가하여 보안을 강화한 방식입니다.
② 다중 문자 치환 (Polyalphabetic Substitution)
평문 전체에서 같은 문자라도 다른 위치에서는 다른 문자로 치환될 수 있습니다. (여러 개의 키를 사용하거나, 키가 순환함)
- 비즈네르 암호 (Vigenère Cipher): 여러 개의 시저 암호 키를 사용하여 주기적으로 키를 바꾸는 방식입니다. 단일 문자 치환보다 훨씬 해독하기 어렵습니다.
3. 시저 암호와의 차이점
| 구분 | 시저 암호 (Caesar Cipher) | 일반적인 치환 암호 (Monoalphabetic) |
|---|---|---|
| 규칙 | 항상 일정한 거리(Shift)로 치환 | 랜덤하거나 복잡하게 정의된 1:1 대응표로 치환 |
| 보안성 | 매우 취약 (키 25개) | 시저 암호보다 강함 (26! 이상의 키) |
| 예시 | A $\rightarrow$ D, B $\rightarrow$ E (모두 +3) | A $\rightarrow$ K, B $\rightarrow$ Z, C $\rightarrow$ M (랜덤) |