어반스케치·수학비타민

[수학비타민] 다양한 암호화 방법

Buddhastudy 2020. 1. 29. 20:21


전세계적으로 팬덤을 형성하고 있는 소설 <해리포터>

영화도 성공적이었죠.

 

영화 속의 이 장면 기억하시나요?

Tom Marvolo Riddle<톰 마볼로 리들>이라는 등장인물이 있는데

이름의 알파벳을 재배열해서

I am Lord Voldemort<나는 볼드모트 경이다>로 바꾸죠.

이런 암호화 방식을 애너그램(anagram)이라고 합니다.

 

역사상 가장 먼저 나타난 암호는 문자의 위치를 바꾸는 전치암호입니다.

<해리포터>의 애너그램도 전치암호의 일종이죠.

 

예를 들어볼까요?

도와주세요. 공격을 받고 있어요라는 영어 문장

Helf me I am under attack

한 줄에 5개씩 알파벳을 배열하고 위에서 아래로 읽으면

HENT EIDT... 이런 식이 되죠.

이렇게 암호화해서 보내면 풀기가 쉽지 않습니다.

 

이 방법은 기원전 400년 경 고대 그리스의 스파르타에서 사용되었습니다.

스키테일이라는 원통형 막대에 양피지 리본을 감고

여기에 메시지를 쓰고 나서 풀면 전치암호가 되죠.

 

그다음 암호는 한 문자를 다른 문자로 바꾸는 치환암호입니다.

대표적인 치환암호는 문자를 일정한 간격으로 이동하는 카이사르 암호입니다.

 

로마의 황제 율리아스 카이사르가 사용했기 때문에 붙여진 이름인데요

예를 들어 알파벳을 3칸씩 밀어 AD, BE, CF로 바꿀 수 있습니다.

 

카이사르는 부루투스에게 암살당했는데

그 상황에서 부루투스를 믿지 말아라

‘Never trust brutus’라는 말을 했을 법 하죠.

이 문장을 암호화하면 QHYHU WUXVW EUXWXY 이런 식이 됩니다.

 

이런 규칙성 없이 무작위로 한 문자를 다른 문자로 바꿀 수도 있습니다.

애드거 앨런 포의 소설 <황금벌레>에 나오는 암호입니다.

 

--

이 암호를 푸는 것은 불가능하겠네요?

 

그렇지 않습니다.

난수표와 같은 이 암호도 빈도 분석을 통해 해독할 수 있습니다.

<황금벌레> 암호문에서 가장 많이 등장하는 것이 8입니다.

그런데 영어에서 가장 많이 쓰이는 알파벳은 e

따라서 숫자 8은 알파벳 E라고 추측할 수 있습니다.

가장 많이 쓰이는 단어는 the이고

알파벳 e를 알아냈으니

연쇄적으로 th가 무엇인지 추론할 수 있겠죠.

이런 방법을 적용하면 순차적으로 암호를 풀어갈 수 있습니다.

 

---

현대 암호는 비밀키 암호공개키 암호로 나눌 수 있습니다.

비밀키 암호에서는 암호화하는 키와 해독하는 키가 같습니다.

그러니 그 키를 비밀로 유지해야 하겠죠.

DES(Data encryption standard)가 대표적인 비밀키 암호입니다.

 

미국이 개발해서 널리 사용되고 있는 DES가 훌륭한 암호이긴 하지만

최근 각 국가들은 미국에 종속되지 않고 독립적인 암호 시스템을 만들고 있습니다.

 

---

공개키 암호는 무엇인가요?

비밀키 암호에서는 암호를 이용하는 사람마다 키를 가져야 하니

키의 개수가 급증하게 되겠죠.

그래서 생각한 게 암호화 키는 공개하고, 이걸 푸는 키는 각자 다르게 부여하는 방법입니다.

 

공개키 암호 중 대표적인 게 RSA 암호입니다.

1970년대 이를 개발한 세 명의 수학자 리베스트, 세미르, 아델만의 성을 따서 RSA라고 부릅니다.

 

이들은 RSA 암호에 대한 연구로 2002년 컴퓨터 공학의 최고상인 튜링상을 받았습니다.

RSA 암호는 소인수분해하는데 시간이 오래 걸린다는 성질을 이용합니다.

두 개의 소수를 곱하는 것은 금방이지만, 곱해진 결과가 어떤 두 소수의 곱인지 알아내는 데는 긴 시간이 걸립니다.

 

암호는 언젠가는 풀리게 되는데, 해독되는 데 걸리는 시간을 최대한 지연시키는 게 좋은 암호인 거죠.

그런 측면에서 RSA는 효율적인 암호화 방식입니다.

 

--

현대 암호의 발전은 수학 이론을 통해 가속화되었다는 점 기억해 주시고요

저는 여러분들의 두뇌 회전을 가속화시키기 위해

커밍~!