단일 치환 암호(Simple substitution cipher)

하나의 문자가 다른 하나의 문자로 바뀌는 암호

simple1

평문의 알파벳을 평행이동 시킴으로써 암호문을 만드는 것이 시저암호였어.

여기서 알파벳 26문지를 무작위 순서로 나열해 얻게 되는 집합을 생각해보자.

이 무작위로 만든 집합과 원래 순서대로 된 알파벳 집합은 일대일 대응관계가 되며 이것을 이용해 하나의 암호를 만들 수 있어.

이와 같은 알파벳의 대응관계를 이용해 평문을 구성하는 알파벳을 다른 알파벳으로 변환하는 암호를 단일 치환 암호라고 불러.

이런 의미에서 보면 시저 암호는 단일 치환 암호 중의 하나라고 할 수 있지!

단일 치환 암호의 암호화는 평문을 구성하는 알파벳을 한 문자씩 치환표를 참조해서 변환해 가는 작업의 반복이야.

위의 치환표를 이용해서 영어 단어 "apple"을 암호화해 보자.

simple2

암호문은 "CZZLK"가 되었어.

여기서 중요한 점은 평문에 등장하는 문자의 빈도가 암호문으로 바뀐 뒤에도 암호문 내에서 동일하다는 것이야.

이 점이 단일 치환 암호가 가진 약점 중의 하나이지.

복호화는 암호화 때의 사용한 치환표를 사용해서 암호화의 연변환을 하면 돼.

단일 치환 암호를 이용해 암호화한 암호문을 복호화하려면 암호화 할 때 사용한 치환표가 필요하므로 송신자와 수신자는 치환표를 공유하고 있어야 해.

이 차환표가 단일 치환 암호의 가 돼.