3.1. 고전암호
다음은 네 가지의 고전암호를 나열하고 설명한 것입니다.
1). 전치암호(Transpose Cipher)기법 :
암호를 임의의 행렬로 나열 한 후 행렬의 전치를 사용하여 암호화 하는 기술입니다.
2). 치환암호(Permutation Cipher)기법 :
임의의 치환 규칙을 가지고 해당 평문을 치환 규칙에 맞게 변환하여 사용하는 암호화 기술입니다.
평문을 특정 개수로 나눈 후 해당 순서의 단어를 다른 순서의 단어로 치환 하는 방법들을 사용합니다.
3). 대입암호(Substitution Cipher)기법 :
임의의 치환 테이블을 가지고 해당 평문을 치환 규칙에 맞게 변환 하여 사용하는 암호화 기술입니다.
평문을 한글자씩 테이블에 대입하여 나온 결과를 사용하여 치환하는 방법들을 사용합니다.
4). 곱암호(Product Cipher)기법 :
위의 표기된 암호기법들을 임의의 순서대로 사용하여 더 복잡하게 암호화 하는 기술입니다.
대표적으로 ADFGVX 곱 암호가 있습니다.
3.2. 고전암호의 예
1). “단순 대입암호”(SImple Substitution Cipher) :
암호 함수가 모듈러(Modulo)연산과 배수 연산으로만 정의된 경우를 말합니다.
“아핀 암호”(Affine Cipher)는 \(1\)부터 \(26\)사이에 정의된 두 수 \(a, b\)에 대해
\(e(x) = ( ax + b )mod(26)\) 으로 정의된 “아핀함수”(Affine Function)를 사용하는 기법입니다.
\(a = 1\) 일 때, “시프트암호”(Shift Cipher)라고 표현할 수 있습니다.
\(a = 1 ∧ b = 3\) 일 때, “시져암호”(Caesar Cipher)라고 표현할 수 있습니다.
2). “동음이의 대입암호”(Homophonic Substitution Cipher) :
같은 글자에 하나씩 대입되는 것이 아닌, 여러 값을 대입 가능 하도록 설계하여 (즉, 음함수 형태로 설계)
동일한 패턴에 대해 다른 값들을 의도적으로 사용하여 조금 더 파악하기 어렵게 하기 위해서 사용됩니다.
물론, 복호화는 여러 값이 하나로 이어지는 테이블을 가지고 대입하여 복호화 가능합니다.
3). “다문자 대입암호”(Polyalphabetic Cipher) :
평문의 자리수 위치에 따라 각기 다른 함수를 적용하여 암호화 하고
복호화 역시 자리수를 기반으로 하여 함수의 역을 적용하여 복호화하는 방법입니다.
대표적으로 “비게네르(Vigenere)암호”, “버포트(beaufort)암호”, “힐(Hill)암호” 등이 있습니다.
4). “플레이페어암호”(Playfair Cipher) : 어떤 2차 테이블이 정의될 때,
두 글자를 페어로 수직 및 수평의 관계에 맞는 다른 두 글자를 페어로 치환하여 암호화 하고
복호화 할 때 역시 두 글자 단위로 관계에 맞는 다른 두 글자를 치환하여 복호화하는 방법입니다.
5). “일회용패드암호”(One-Time Pad Cipher) :
평문과 동일한 사이즈의 열쇠를 가지고 비트 XOR( 베타적 논리합 )한 결과를 사용합니다.
“버냄”에 의해 고안된 암호로 “버냄암호”(Vernam Cipher)라고도 표현합니다.
따라서 복호화역시 같은 열쇠에 대해 한 번 더 XOR하면 되기에 간단하지만,
열쇠의 크기가 평문개수만큼 있어야 하기에 잘 쓰이지는 않습니다.
이 암호는 해독이 계산상은 가능하지만 이론적으로 해독 할 수 없는 암호 입니다.
그 이유는 열쇠를 잘 조작하면 같은 사이즈의 모든 평문을 만들 수 있기 때문에
어떤 평문이 본래의 문장인지 알 수 없어서 이론적으로 해독 불가능한 암호체계 입니다.
6). “기계암호” :
암호화 복호화를 기계로 하여금 회전자나 다양한 전선 연결방식 들을 한 번에 사용하여
해독이 더 복잡하지만 기계가 암호 복호화를 진행하여 간단하게 사용할 수 있는 방법입니다.
그 중 “에니그마(Enigma)암호”는 “세르비우스”가 고안한 암호/복호화 기계로
자판과 하단에 임의 전선 연결 방식, 상단에 회전자, 결과가 나오는 전구로 구성되어 있습니다.
에니그마를 사용하기 위해서는 송신자와 수신자는 에니그마를 소지하고 있어야 합니다.
그리고 송신자와 수신자만이 아는 코드북(열쇠)를 사전에 전달합니다.
코드북으로 2차 암호키를 암호화 하고, 2차 암호키로 평문을 암호화하여 암호화된 2차 암호키와 평문을 공개합니다.
복호화는 역순으로 진행하면 에니그마에서 복호화된 결과를 알려줍니다.
“하게린암호”는 “하게린”(Hagelin)이 고안한 암호/복호화 기계로 C-38 , M-209로도 불립니다.
경우의 수는 \(|\{A \sim Z\}| * |\{A \sim Z\} – \{W\}| * \)\(|\{A \sim X\} – \{W\}| * |\{A \sim U\}| * \)\(|\{A \sim S\}| * |\{A \sim Q\}|\)
\(= 26 * 25 * 23 * 21 * 19 * 17 = 101405850\)의 주기를 돌고
다시 같은 글을 반복하기에 해독이 쉽지 않지만, “임의열쇠수열”(Random Key Sequence)이 아니라서
평문공격이나 암호문만으로 공격을 시도하여 해독 가능함을 보였습니다.