치환(Substitution)과 전치(Transposition)는 고전 암호의 두 가지 기본 범주입니다. 핵심적인 차이점은 **치환 암호가 평문 글자를 다른 글자나 기호로 ‘대체’**하는 반면, 전치 암호는 원래 평문 글자의 ‘순서’를 재배열한다는 것입니다.
🔄 치환 암호 (Substitution Ciphers)
치환 암호에서는 평문의 각 단위가 특정 시스템에 따라 암호문의 해당 단위로 교환됩니다. 글자의 원래 순서는 그대로 유지되지만, 글자의 정체성이 바뀝니다.
비제네르 암호 (Vigenère Cipher)
이것은 다중 문자 치환 암호로, 키워드를 사용하여 평문의 각 글자를 다른 값으로 이동시켜 단순한 단일 알파벳 치환보다 더 안전하게 만듭니다. 예를 들어, 키워드 deceptive를 사용하여 wearediscoveredsaveyourself를 암호화할 때, w는 d의 값만큼, e는 e의 값만큼, a는 c의 값만큼 이동합니다.
- 키워드:
deceptivedeceptivedeceptive - 평문:
wearediscoveredsaveyourself - 암호문:
ZICVTWQNGRZGVTW...
표준 비제네르 암호의 약점은 키가 반복된다는 점입니다. 비제네르 오토키 암호(Vigenère Autokey Cipher) 는 키워드로 시작한 다음 평문 자체를 사용하여 키를 확장함으로써 이 문제를 해결합니다.
원타임 패드 (One-Time Pad, OTP)
원타임 패드는 수학적으로 해독이 불가능하기 때문에 궁극의 치환 암호로 간주됩니다.
그 보안성은 몇 가지 엄격한 규칙에 의존합니다:
- 키는 완전히 무작위적인 문자열이어야 합니다.
- 키는 최소한 평문 메시지만큼 길어야 합니다.
- 키는 단 한 번만 사용되고 폐기되어야 합니다. 새로운 메시지에는 새로운 키가 필요합니다.
완벽한 보안에도 불구하고, 원타임 패드는 대량의 무작위 키를 생성하고 안전하게 배포하는 어려움 등 상당한 현실적인 단점이 있습니다. 이 때문에 주로 극도로 높은 보안이 요구되는 낮은 대역폭의 채널에서 사용됩니다.
↔️ 전치 암호 (Transposition Ciphers)
전치 암호는 원래 평문 글자는 그대로 유지한 채 그 위치만 뒤섞는 방식입니다. 글자 자체는 변하지 않고, 오직 그 순서만 바뀝니다.
예시: 레일 펜스 암호 (Rail Fence Cipher)
이 암호는 평문 글자를 여러 개의 “레일”에 걸쳐 지그재그 패턴으로 쓴 다음, 각 행을 순서대로 읽어 암호문을 만듭니다.
- 평문:
WE ARE DISCOVERED - 방식 (2개의 레일 사용):
W . R . D . S . O . E . E . E . A . E . I . C . V . R . D - 암호문:
WRDSOEE EAEICVRD
차이점
| 구분 | 치환 암호 | 전치 암호 |
|---|---|---|
| 동작 | 글자 대체 | 순서 재배열 |
| 글자의 정체성 | 변경됨 | 유지됨 |
| 글자의 위치 | 유지됨 | 변경됨 |
| 예시 | 비제네르, 원타임 패드 | 레일 펜스, 컬럼 암호 |