d라이브러리









[특집] 액자 뒤 단서 - 미스터리 암호 푸는 방법은?

엇, 액자 뒤에 뭔가 있는 것 같더라니, 자세히 보니 종이 같은 게 삐죽 나와 있었다. 
혹시 다음 장소의 단서가 여기 있을까 싶어 액자를 모두 떼봤다. 역시나 
액자 뒤에도 암호에 관한 이야기가 적혀있다! 방금 봤던 암호를 해석한 내용이다.

 

# 암호 만든 키워드를 찾아라!

 

스미스 판결문은 손이나 간단한 기계로 만든 암호를 해독해 본래 글(평문)을 알아내야 하는 ‘고전 암호’의 일종으로, 평문의 글자 하나하나를 여러 개의 다른 글자로 바꾼 ‘다중 문자 암호’다. 그중에서도 키워드를 이용해 암호를 만든 ‘뷰포트 암호’에 속한다.


판결문에 암호가 숨겨져 있다는 것은 영국 변호사 댄 텐치가 알아냈다. 텐치는 판결문의 알파벳 일부만 이탤릭체라는 사실을 더 타임스에 제보했는데, 이를 본 스미스 판사가 텐치에게 단서를 알려줬다. 

 

“암호를 풀려면 소설 속의 피보나치 수열을 알파벳에 적용하시오.”

 

곧장 텐치는 다빈치 코드에 나왔던 피보나치 수 1, 1, 2, 3, 5, 8, 13, 21을 이용해 암호를 만든 키워드를 찾았다. 각 수가 알파벳 순서에 해당한다고 가정하고 피보나치 수에 대응되는 알파벳을 나열해 ‘AABCEHMU’라는 키워드를 발견한 것이다.


뷰포트 암호에서 키워드는 다음과 같은 원리로 평문을 암호문으로 만든다. 예를 들어 키워드가 ‘code’, 숨기고 싶은 평문이 ‘bad’라면 먼저 표①처럼 평문과 키워드의 글자가 만드는 순서쌍을 정의한다.

 


이제 순서쌍에 맞춰 암호문에 들어갈 글자를 찾는다. (b, c)를 예로 들면, 표② 첫 번째 가로줄에 나열된 평문의 글자에서 b를 찾고 세로로 내려오다가 세로줄에 키워드의 글자 c가 나오면 멈춘다. 그 위치에서 맨 왼쪽의 알파벳이 암호문의 글자가 된다. 이 원리로 ‘bad’를 암호화하면 ‘boa’다.
반대로 키워드로 암호문을 해독할 때는 암호문의 글자를 맨 왼쪽 열에서 찾고, 해당 키워드의 글자를 찾을 때까지 오른쪽으로 이동해 맨 위에 있는 평문의 글자를 찾으면 된다. 

 

 

# 코드북을 활용한다!

 

치머만 전보는 수와 단어가 쌍을 이루는 코드북(난수표)을 이용한 암호다. 이 암호는 암호를 만든 코드북이 있어야만 해독할 수 있어 군사 목적으로 널리 쓰였다. 


영국의 암호 해독반은 독일이 멕시코로 보낸 치머만 전보를 입수해 분석했지만 무작위한 수가 나열돼 있어 해독하기 어려웠다. 하지만 영국의 동맹국이었던 러시아가 독일 제국 해군의 함선에서 찾은 코드북을 이용해 암호를 해독할 수 있었다.


영국이 입수한 코드북에는 숫자와 단어가 쌍을 이룬 표가 있었다. 암호문에 나열된 각각의 수에 대응하는 단어를 찾아 해독하면 된다. 

 

 

# 모든 경우를 다 따져라!

 

괴팍한 수염 독수리 암호의 핵심인 129자리 소인수분해는 1993년부터 1994년까지 컴퓨터 과학자들이 힘을 합쳐 풀었다. 600명 이상의 지원자가 인터넷을 통해 약 1600대의 컴퓨터로 6개월 동안 일일이 129자릿수를 소수들로 나눠 소인수분해 계산을 해 암호문을 해독했다. 현재는 500자릿수가 넘는 소수로 RSA 암호를 만든다.


괴팍한 수염 독수리 암호는 인터넷을 통해 푼 최초의 암호로, 컴퓨터로 암호를 해독하는 일을 괴팍한 수염 독수리라고 할 정도로 암호계에서 매우 큰 사건이었다.

 

 

이 기사를 읽은 분이 본
다른 인기기사는?