치환법(substitution cipher)은 평문의 문자들을 다른 문자로 치환함으로써 암호화하는 기법이다. 예를 들어, [표 2-1]과 같은 치환 규칙으로 치환함으로써 암호화하는 기법이다.

만약 평문이 다음과 같이 주어진다면

암호알고리즘

[표 2-1]에 의해 처음 문자인 '암'은 'C'로 두 번째 문자인 '호'는 '+'로, 세 번째 문자인 '알'은 '-'로 치환된다. 나머지 세 문자도 [표 2-1]에 의해 차례로 치환되면 결국 다음과 같은 암호문이 만들어진다.

C+-가3Z

이렇게 만들어진 암호문을 복호화하려면 암호화와 동일하게 [표 2-1]의 치환 규칙을 이용하면 된다. 단, 암호화를 할 때와는 반대로 각 암호문 문자를 평문 문자로 치환해야 한다. 즉, 암호문 문자 'C'는 평문 문자 '암'으로, 암호문 문자 '+'는 평문 문자 '호'로 치환이 되고 나머지 문자들도 치환하면 '암호 알고리즘'이라는 원래의 평문을 얻게 된다.

이렇듯 치환법은 암호화를 하는 쪽과 복호화를 하는 쪽이 미리 정해 놓은 문자 치환규칙에 따라 암호화와 복호화를 수행하는 방식으로, 암호문에 사용되는 문자들은 평문에서 사용된 문자들과 달라지지만 대응되는 각 문자의 위치는 바뀌지 않는다.

이러한 치환법은 기원전 50년경에 고대 로마의 카이사르(Julius Caesar, 영어명 시저)가 군사와 정치적인 목적으로 사용하였다. 시저 암호는 아주 간단한 치환 방식으로, 알파벳 26글자를 알파벳 순서로 세 자씩 오른쪽으로 이동시킨 뒤, 해당되는 글자로 치환하여 암호화를 한다. [ 표 2-2 ]는 시저 암호에 이용되는 치환 규칙이다.

예를 들어, 평문 'CAESAR'를 시저 암호로 암호화한다면, [ 표 2-2 ]의 치환 규칙에 따라 'C'는 'F'로, 'A'는 'D'로, 'E'는 'H'로 치환되고, 나머지도 치환하면 'FDHVDU'라는 암호문이 만들어진다. 이에 대한 복호화는 역시 [ 표 2-2 ]를 이용하여 암호문 문자 'F'는 평문 문자 'C'로, 암호문 문자 'D'는 평문 문자 'A'로 치환되며, 나머지도 치환하면 결국 'CAESAR'라는 원래의 평문이 된다.

시저 암호를 일반화한 암호로 시프트 암호(shift cipher)가 있다. 시프트 암호는 각 문자를 알파벳 순서로 k번째 뒤 문자로 치환하는 방법으로, 이때 k는 0부터 25까지의 정수 중 하나가 된다. 즉, 암호화와 복호화를 하는 두 사람이 미리 k 값을 약속해야 하며 이 값이 바로 키(key)가 된다.

예를 들어, k=5인 경우 평문 문자 'A'는 알파벳 순서로 5번째 뒤 문자인 'F'로 치환되고, 평문 문자 'B' 는 'G'로, 평문 문자 'C'는 'H'로 치환된다. 따라서 평문 'CAESAR'를 암호화한다면 암호문 'HFJXFW'가 만들어진다. 만약 k=3인 경우라면 시저 암호화 동일해진다.

하지만 시프트 암호는 키를 만들 수 있는 경우의 수가 알파벳의 개수인 26가지밖에 없어 제3자가 겨우 26번의 시도만으로 암호를 풀 수 있는 매우 취약한 방식이다.