문화/생활

오랜 옛날부터 비밀 유지를 위해 암호가 사용되었다. 아주 기초적인 암호화 기법은 단순히 문자를 치환하는 것이었다. “I love you”를 알파벳 한 자씩 옮겨서 “J mpwfzpv”로 바꾸는 것이 대표적이다. 하지만 이런 단순한 암호는 적에 의해 금방 해독되고 말았다.
암호 기법은 점점 복잡해졌다. 난수표나 책을 사용하여 암호를 주고받기도 했다. 암호문은 책의 페이지-행-열을 나타내는 숫자였고, 이를 이용해 문장을 조립해낼 수 있다. 간첩들이 주로 사용한 이 방법은 어떤 책이 사용되는지 알아내지 못하는 한 암호문을 해독하기 극히 어려웠다.


때문에 암호를 해독하려는 측에서는 적들이 주고받는 암호문을 확보하는 한편, 해독법을 알아내기 위해 전장에서의 첩자 색출, 무전도청, 해독에 필요한 키 추측 등 다양한 방법을 동원했다. 암호문을 주고받기 위해서는 반드시 해독법도 전달해야 하는데, 이 과정의 취약점을 노린 것이다.
2차대전 당시 독일 나치는 에니그마란 획기적인 암호기계를 만들었다. 이 장치는 매우 정교한 방법으로 암호를 만들어냈기 때문에 원문을 알아내기가 불가능에 가까웠다. 연합군은 독일군이 주고받는 암호를 해독하기 위해 엄청난 노력을 기울였고, 결국 이들이 암호기계를 사용한다는 것을 알아냈다.
연합군은 에니그마 복제품을 만들고 날마다 바뀌는 기계 세팅 값도 알아냈다. 이렇게 연합군이 실시간으로 독일군의 통신 암호문을 해독한 덕에 전쟁을 승리로 이끌 수 있었다. 비록 독일군은 패배했지만, 에니그마는 이후 컴퓨터를 이용한 자동 암호화로 발전되었다.
현대의 암호화는 컴퓨터를 사용하기 때문에 암호문을 만드는 과정이 매우 복잡하다. 때문에 암호문으로부터 원문을 알아낸다는 것은 거의 불가능에 가깝다. 때문에 표준화된 암호 기법을 공통적으로 사용한다. 이 기법을 적이 알더라도 비밀 키를 모르는 한 원문을 만들어낼 수 없다. 즉, 암호화에 필요한 비밀 키만 잘 보호하면 되는 것이다.

역으로 말하면, 공격자들이 이 비밀 키만 확보하면 어떤 암호든 해독할 수 있다는 뜻이다. 때문에 해킹, 도청 등 암호 전달 경로를 공격하는 시도가 끊임없이 이루어지고 있다. 세월이 흘렀지만, 암호키 전달 문제가 여전히 취약점으로 남아 있었던 것이다. 하지만 이 문제를 해결한 천재적인 수학자들이 나타났다.
이들은 수학적으로 한 쌍의 암호화 키 만드는 법을 고안해냈다.
이 키를 A와 B라고 하면, 이 둘은 서로 다른 숫자이다. 암호화 키 A로 암호화한 것은 암호화 키 B로만 해독할 수 있다. 반대로 B로 암호화한 것은 A로만 풀 수 있다.
이 중 A는 개인 키로 삼고 아무도 볼 수 없게 숨겨둔다. B는 공개 키로 삼고 암호를 주고받으려는 상대편에게 보낸다. 이것이 키배송 문제를 해결한 공개 키 암호화 기법의 전부이다.
공개 키는 0이 3백8개 붙은 정도의 큰 수를 사용하기 때문에, 암호화 키 A로 B를 알아낼 수 없다. 암호화 키 B로도 A를 알아낼 수 없다. 물론 여기서 알아낼 수 없다는 것은 제한된 시간 안에 알아내기 어렵다는 뜻이다. 공개 키 A를 이용해 B를 알아내는 데 전세계의 모든 컴퓨터를 다 동원하더라도 몇만 년이 걸릴지 알 수 없을 정도이다.
누구든지 나에게 암호문을 보내고 싶은 사람은 내가 알려준 공개 키로 암호화해서 보내면 된다. 이 암호문은 내가 가진 개인 키로만 풀 수 있다. 해커가 내 공개 키를 알아도 아무 소용이 없다. 공개키로 암호화한 것을 공개 키로 풀 수 없기 때문이다.
내가 누군가에게 암호문을 보내고 싶으면, 그 사람의 공개 키로 암호화해서 보내면 된다. 이 암호문은 그 사람이 가진 개인 키로밖에 풀 수 없다. 공개 키는 마음대로 공개해도 되기 때문에, 상대편은 아무 걱정 없이 나에게 공개 키를 보낼 수 있다.
공개 키는 서로 다른 키를 사용하므로 비대칭 키라고 부른다. 반면 암호화하고 푸는 데 같은 키를 사용하는 전통적인 방법은 대칭키라고 부른다. 공개 키 기법의 문제는 암호화하고 푸는 것이 어렵다는 점이다. 계산이 복잡해 시간이 많이 걸린다. 반대로 대칭 키 방법은 비용이 적게 든다. 때문에 공개 키 기법을 사용하여 대칭키를 전송하는 데 쓰자는 아이디어가 나왔다.
나는 누군가와 암호문을 주고받고 싶다. 그 사람에게 암호 교신을 요청한다. 상대가 이를 수락하면서 자신의 공개 키를 보낸다.
나는 암호를 주고받을 때 쓸 대칭 키를 만들고, 이것을 상대의 공개 키로 암호화해서 보낸다. 상대는 자신의 개인 키로 이 암호문을 해독해서 대칭 키를 얻는다. 이제 양쪽은 이 대칭 키를 사용해 암호문을 주고받는다.

비용이 많이 드는 공개 키는 대칭 키를 전달 할 때만 쓰고, 실제 암호문은 대칭 키를 사용하므로 암호를 주고받는 비용을 줄일 수 있다. 공개 키로 안전하게 암호 키를 주고받았으므로 키 배송의 취약점도 없다. 이렇게 현대 암호학이 완성되었다. 즉, 컴퓨터를 이용한 복잡한 암호 기법으로, 암호문으로부터 원문을 알아낼 수 없게 하고 공개 키 기법으로 키 배송 문제를 완벽하게 해결한 것이다.
웹 접속에 사용하는 세계 표준 암호화 기법과 한국의 공인인증서가 바로 이 기법을 사용한다. 공인인증서에는 각 사용자의 개인키와 공개 키가 들어 있다. 은행 거래 등 보안이 필요한 업무를 할 때 이 키가 사용된다. 하지만 한국식 보안 접속 방식인 공인인증서는 세계 표준과 달라 문제가 발생하고 있다.
현재 컴퓨팅 환경은 PC 환경에서 스마트폰, 태블릿 등 모바일 기기로 급속하게 이전되고 있다. 공인인증서는 PC-마이크로소프트 윈도우-인터넷 익스플로러-액티브엑스에 최적화되어 있기 때문에, 이에 대한 대응이 부족하다.
한국식 보안 체계는 한국 인터넷 서비스를 국내용으로 제한하고 보안 업체들의 세계 진출을 어렵게 하고 있다. 하루빨리 이런 문제를 해결하여 한국의 서비스뿐만 아니라 한국의 보안 업체들까지 세계로 진출할 수 있는 기반을 마련해야 할 것이다.
글·김인성 (IT칼럼니스트)
K-공감누리집의 콘텐츠 자료는 「공공누리 제4유형 : 출처표시 + 상업적 이용금지 + 변경금지」의 조건에 따라 자유롭게 이용이 가능합니다. 다만, 사진의 경우 제3자에게 저작권이 있으므로 사용할 수 없습니다. 콘텐츠 이용 시에는 출처를 반드시 표기해야 하며, 위반 시 저작권법 제37조 및 제138조에 따라 처벌될 수 있습니다.
[출처] K-공감누리집(gonggam.korea.kr)

