1장. 시저의 암호
1.1 고전 암호 약 2,500년 전 그리스 지역의 스파르타에서는 전쟁터에 나가 있는 군대에 비밀메시지를 전할 때 사용한 암호 소개 G F O D !T S L I Y T M E U R H P A C B < 스 키 테 일 >
스키테일 암호방법 전쟁터에 나갈 군대와 본국에 있는 정부는, 각자 스키테일(Scytale)이라고 하는, 같은 굵기의 원통형 막대기를 나누어 갖는다. 비밀리에 보내야 할 메시지가 생기면, 암호담당자 는 스키테일에 가느다란 양피지 리본을 위에서 아래로 감은 다음 옆으로 메시지를 적는다. 3) 리본을 풀어내어 펼치면 메시지의 내용은 아무나 읽을 수 없게 된다. 4) 같은 굵기의 원통막대기를 가진 사람만이 메시지를 읽을 수 있다
스키테일 암호 공격 방법 메시지가 앞장과 같은 문자열이 나타났다고 하자. 스키테일에 리본을 위에서 아래로 감았을 때 한 바퀴에 쓸 수 있는 문자의 개수를 C라 하고, 그 C가 얼마인지 알아보자. 우선, 그 값을 알지 못하므로, C=5라 해보자. 암호문에 나타나 있는 문자열을 5개씩 건너뛰어 다시 써보면 다음과 같은 이상한 문자열을 얻는다
스키테일 암호 공격 방법 계속 security should be the sole aim of cryptography F O Y ! C=6 으로 하여 다시 배열하여 보면 메시지의 내용을 알 수 있다. ! Y H P A R G O T C F M I E L S B D U security should be the sole aim of cryptography
전치암호 전치암호란 메시지에서 사용한 문자들의 위치를 일정한 규칙에 의해 뒤섞어서 만드는 암호를 말한다. (예: 스키테일 암호) (예제) I LOVE ROSE 에서 이 메시지에 사용한 문자들 I, L, O, V, E, R, S 의 위치를 뒤바꾸어 L VRSI OEOE 와 같은 암호문을 만든 것
치환암호 치환암호는 메시지의 각 문자들을 다른 문자로 바꾸는 암호를 말한다. (예제) I LOVE ROSE 를 $#ÅXY≒↑AK 로 바꾸는 방식으로 만든다. 치환암호에서 암호문에 사용한 문자들은 이 메시지에서 사용한 것일 수도 있고 전혀 다른 기호일 수도 있다.
치환암호 계속 더하기 암호라고 알려져 있는 시저의 암호가 대표적인 치환암호이다. 시저가 사용한 암호법의 대응규칙: 더하기 암호라고 알려져 있는 시저의 암호가 대표적인 치환암호이다. 시저가 사용한 암호법의 대응규칙: You can write a letter 는 표를 이용해 암호문을 만들면 BRX FDQ ZUMWH D OHWWHU 로 바뀐다. 시저는 3칸을 뒤로 밀었지만 몇 칸을 움직이는가는 미리 상대방과 정해 놓기만 하면 된다. 영어알파벳은 모두 26개 이므로 이번 방식의 암호는 26가지가 있을 수 있다. B y Z w C A Y X W V U T S R Q P O N M L K J I H G F E D 암호문 z x v u t s r q p o n m l k j i h g f e d c b a 평 문
1.2 아핀암호 <더하기 암호의 암호화 과정> 컴퓨터를 사용하여 암호화하는 경우 보통 a는 1, b는2, …,y는 25, z는 0으로 바꾸어서 생각한다. 문자를 숫자로 바꾸어 놓으면 더하기 암호화 같은 경우 +s(/mod 26)이라는 수식으로 간단히 표현할 수 있다. <더하기 암호의 암호화 과정> 우선 평문의 문자를 숫자로 바꾼다 각 숫자에 s를 더한다. 더한 수가 25를 넘으면 26으로 나눈 나머지를 택한다. 수학적으로는 modulo 26 또는 mod 26을 구한다고 한다
더하기 암호 (예제) 문자 x를 오른쪽으로 3칸 옮기는 더하기 암호를 수식화 해 보자. · x는 24로 바뀐다. · 24 + 3 = 27 · 27을 26으로 나눈 나머지는 1이다. · 1은 암호문자 A에 해당한다.
곱하기암호 문자(해당하는 숫자)에 t를 곱한 다음 26으로 나눈 나머지를 구하면 대응하는 암호문자가 된다. 예를 들어 각 문자에 2를 곱하여 암호화하면 대응하는 문자표는 다음과 같다. 이때 2개의 문자가 한 문자로 대응할 수도 있음을 알아야 한다. 예를 들어 h와 u는 P로 대응된다. 이런 경우 암호화에 사용하기 곤란하다. 어떤 암호라도 복호화할 때(암호문자를 평문자로 바꿀 때) 반드시 한 문자에 한 문자씩 대응되어야 한다. X y T w Z V R P N L J H F D B 암호문 z x v u t s r q p o n m l k j i h g f e d c b a 평 문
아핀암호 (예제) 3을 곱한 문자표를 생각해 보자. 이 경우는 한 문자에 한 문자씩 중복되지 않은 채 대응되고 있으므로 실제로 사용할 수 있는 단일문자암호이다. 약간 더 생각해 보면 1, 3, 5, 7, 9, 11, 15, 17, 19, 21,23, 25를 곱할 경우에만 의미 있는 암호표가 얻어짐을 알 수 있다. 더하기와 곱하기를 적절히 결합하여 사용할 수도 있다. 우선 문자에 적절한 수 s 를 더한 다음 다시 그 결과에 t 를 곱하여 암호문자를 얻는다. 이런 암호화 방법을 아핀암호라고 하며, 모두 26×12 = 312 가지 방법이 가능하다. X y T w Z V R P N L J H F D B 암호문 z x v u t s r q p o n m l k j i h g f e d c b a 평 문
1.3 통계분석에 의한 암호공격 암호 분석가: 메시지를 허락없이 들여다 보려는 사람 앨리스(Alice, 여자): 메시지를 암호화해서 보내는 사람 밥(Bob, 남자): 암호문을 받아서 미리 정한 열쇠로 메시지를 읽을 사람 오스카(Oscar) 또는 Mr. X: 정당한 자격이 없는 상태에서 남의 메시지를 열어보려는 암호공격자
암호공격 Mr. X는 우선 이 암호문이 어떤 암호를 사용했을까를 판단해야 할 것이다. 사용한 암호방법(시저암호, 스키테일 암호, 아핀암호 등등)은 그리 어렵지 않게 알아낼 수 있다. 암호문의 형태나 특성, 사용용도, 사용기관 등을 잘 고려해 보면 사용한 암호방법이 무엇인지는 쉽게 알 수 있다.