시저 암호 - 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
를 아래와 같이 표현할 수 있다.
반대로 복호화 함수 D
는 아래와 같이 작성할 수 있다.
이를 좀 더 풀어보면
이 된다.
시저 암호는 평문 문자의 배열 순서는 바꾸지않고 일정한 크기 만큼의 평행 이동을 사용하여 다른 문자로 치환하는 대치암호의 한 형태이다.
모든 경우의 수를 일일이 대입하는 것은 방법은 쉽지만 귀찮은 일이다.
이는 문자 출현 빈도표를 이용하면 최소한의 반복으로 비밀키를 획득할 수도 있다.
다만 현대에 와서는 모든 경우의 수를 순식간에 대입할 수 있기에 암호로서의 가치는 없다고 볼 수 있다.