전치 암호 (Permutation Cipher) / 재배열 암호
전치 암호는 평문(원본 메시지)에 있는 문자들의 순서(위치)만 미리 정해진 규칙에 따라 재배열(섞어서) 암호문을 만드는 방식입니다. 문자의 정체는 변하지 않습니다.
- 치환 암호 (Substitution): 문자의 값을 바꿈 (예: A $\rightarrow$ D)
- 전치 암호 (Permutation/Transposition): 문자의 위치를 바꿈 (예: A B C $\rightarrow$ B C A)
1. 작동 원리: 행렬(Matrix) 기반 재배열
전치 암호는 보통 평문을 직사각형 형태의 행렬에 채운 다음, 정해진 규칙에 따라 행 또는 열 단위로 읽어 암호문을 만듭니다.
예시: Rail Fence Cipher (레일 펜스 암호)
가장 간단한 전치 암호 중 하나로, 지그재그 패턴으로 문자를 재배열합니다.
평문 (Plaintext): SECRET MESSAGE
키 (Key): 3 (3개의 레일)
- 지그재그 쓰기 (암호화)
문자를 3줄에 지그재그 패턴으로 씁니다.
S . . . E . . . M . . . E . . E . R . T . E . S . A . G . . . C . . . M . . . S . . . E -
행 단위로 읽기 (암호문 생성) 각 줄을 왼쪽에서 오른쪽으로 순서대로 읽습니다.
- 1행:
S E M E - 2행:
E R T E S A G - 3행:
C M S E
- 1행:
-
암호문 (Ciphertext):
SEM E E R T E S A G C M S E
2. 복호화 (Decryption)
복호화는 암호화 과정의 역순입니다.
- 암호문의 총 글자 수와 키(레일 수)를 이용하여 행렬의 크기를 계산합니다.
- 계산된 크기에 따라 빈 행렬을 만든 후, 암호문의 글자들을 행 단위로 채워 넣습니다.
- 지그재그 패턴으로 다시 읽으면 평문이 복원됩니다.
3. 보안의 취약점
전치 암호는 문자 빈도(Frequency Analysis)가 그대로 남아있기 때문에, 암호문 길이가 길면 빈도 분석으로 쉽게 언어를 파악할 수 있습니다. 하지만 어떤 위치가 바뀌었는지 파악하는 데는 시간이 걸릴 수 있습니다. 현대 암호에서는 치환과 전치(재배열)를 모두 사용하는 복합 암호가 사용됩니다.