(암호학) 005. 시저 암호 - Caesar Cipher

시저 암호 - Caesar Cipher

시저 암호는 평문에 있는 각 문자를 일정하게 평행이동하여 다른 문자로 바꾸는 암호이다.

이름에서 알 수 있듯 로마의 황제 쥴리어스 시저가 사용했던 암호이다.

예를 들어 알파벳을 3만큼 일정하게 이동하는 경우 아래와 같음 암호표가 나타나게 된다.

평문 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
암호문 D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

위의 표를 이용해 문자를 거꾸로 대응하면 암호문을 해독할 수 있다.

이를 통해 유추할 수 있듯 시저 암호의 비밀키는 문자를 평행이동한 거리이므로 영문 문자를 숫자로 치환하여 계산하는 것이 편리하다.

예를 들어 A는 00, B는 01, C는 02, …Y는 24, Z는 25와 같은 방식이다.

알파벳은 총 26자 이므로 시저 암호를 수학적으로 표현해본다면 정의역과 공변역의 크기가 모두 26이며, 비밀키가 19만큼의 평행이동이라고 할때 이때 암호화 함수 E를 아래와 같이 표현할 수 있다.

E:Z26Z26,E(x)x+19(mod26)E: Z_{26} \rightarrow Z_{26}, E(x) \equiv x + 19(mod 26)

반대로 복호화 함수 D는 아래와 같이 작성할 수 있다.

D(x)=E1(x)D(x) = E^{-1}(x)

이를 좀 더 풀어보면

D(x)=E1(x)=x19x+7(mod26)D(x) = E^{-1}(x) = x - 19 \equiv x + 7(mod 26)

이 된다.

시저 암호는 평문 문자의 배열 순서는 바꾸지않고 일정한 크기 만큼의 평행 이동을 사용하여 다른 문자로 치환하는 대치암호의 한 형태이다.

모든 경우의 수를 일일이 대입하는 것은 방법은 쉽지만 귀찮은 일이다.

이는 문자 출현 빈도표를 이용하면 최소한의 반복으로 비밀키를 획득할 수도 있다.

다만 현대에 와서는 모든 경우의 수를 순식간에 대입할 수 있기에 암호로서의 가치는 없다고 볼 수 있다.