제3장 Gpg4win 의 작동원리는 무엇인가?
Gpg4win의 특별한 기능과 이를 구성하는 “공개키 방식”을 먼저 이해하여야 한다. 그 내용은 더 이상 비밀이 아니며 이해하는 것도 별로 어렵지 않다.
Gpg4win 프로그램은 매우 단순하다. 하지만 실제 작동 과정은 매우 복잡하다. 이 장에서는 ,Gpg4win이 작동하는 방법을 아주 간단하지만 이 소프트웨어의 작동 배경을 설명하기에는 충분한 수준으로 설명하려 한다. 원리만 이해하면 Gpg4win이 제공하는 보안 수준을 믿을 수 있을 것이다.
열쇠-반지의 제왕
귀중품을 남이 손대지 못하게 하려면 열쇠를 채워서 치워두면 된다. 열쇠가 오직 한 개이고 이를 안전한 금고에 넣어두면 더 안전한 것은 자명하다.
열쇠를 잊어버려 도둑의 손에 들어가면 귀중품은 더 이상 안전하지 않게 된다. 귀중품이 안전한지 여부는 열쇠를 안전하게 보관했나에 달려있다. 그래서 열쇠를 귀중품처럼 다루어야 한다. 열쇠를 복제하지 못하게 하려면 열쇠의 특성을 비밀로 유지해야 한다. 비밀열쇠는 암호학에서는 새로운 개념이 아니다. 메시지 내용을 숨기려면 열쇠를 숨겨야 한다. 열쇠를 안전하게 보관하는 과정은 매우 어려워서 에러가 많이 발생한다.
암호 메시지 전송 방법의 문제점은 암호화와 복호화 과정에서 동일한 열쇠를 사용한다는 것과 송신자와 수신자가 모두 비밀열쇠를 잘 관리해야 한다는 것이다. 그래서 이러한 암호화 방식을 “대칭 암호”라고 부른다.
그래서 다음과 같은 매우 유명한 진퇴양난 상황에 봉착한다. 비밀 메시지를 발송하기 전에 비밀열쇠를 전달해야 한다. 즉, 외부인이 탈취할 수 없는 방법으로 비밀열쇠를 교신하려는 상대방에게 전달하는 것이 문제이다. Gpg4win에서는 이와 반대로 누구나 사용할 수 있는 공개열쇠를 사용한다. 그래서 공개키 암호화 시스템이라고 부른다.
매우 이상하게 들리지만 공개키 암호화 시스템에서는 더 이상 비밀열쇠를 교환할 필요가 없다. 실제로 비밀열쇠는 절대 교환하지 않는다. 교환하는 것은 공개용 인증서에 포함된 공개 열쇠이다. Gpg4win을 사용할 때는 공개열쇠와 비밀열쇠로 구성된 열쇠 한 세트를 사용한다. 이 두 열쇠는 수학적으로 교묘하게 연결되어 있다. 현재의 과학 기술로 한쪽 열쇠로 다른 편 열쇠를 알아 낼 수 없으며 이 방법을 이용해 만든 문서를 해독해낼 수 없다.