본문/내용
앞에서 공개키 암호화 시스템의 정의를 소개할 때, 처음에는 암호화의 키와 복호화의 키가 서로 다른 것으로 설명했다가, 나중에는 알고리즘은 공개하되 키는 공개하지 않는 것으로 설명했다. 여기서 약간의 오해가 생길 수 있으나, 종합해서 정리해 보면, 공개키 암호화 시스템은 암호화의 키와 알고리즘은 공개하고, 복호화의 키는 공개하지 않는 것이다.
공개키 암호화 시스템에서 각 개인은 개인키(비밀키 암호화 시스템의 비밀키와 혼동되지 않도록 하기 위해 개인키란 용어를 사용함)와 공개키의 쌍을 만들고, 공개키는 전화번호처럼 외부에 공개하고 개인키만 자신이 비밀로 간직한다. 메시지의 전송 시, 송신자가 수신자의 공개키로 메시지를 암호화하여 보내면 수신자는 자신의 개인키로 그것을 복호화하여 메시지의 내용을 확인한다.
그런데 어떻게 암호화의 키와 복호화의 키가 다를 수 있을까? 그 해답은 수학의 정수론에서 나오는 소인수분해에 있다. 이해를 돕기 위해 서두에서 예로 든 200자리의 합성수를 다시 떠올려 보자. 200자리의 합성수는 인수들을 가질 것이고, 그 인수들이 하나하나 정보를 의미한다고 생각할 수 있다. 인수들을 곱해서 합성수를 만들기는 쉬워도, 합성수에서 인수들을 추출해 내기란 쉽지 않다. 전자를 암호화의 키(공개키)로 보고, 후자를 복호화의 키(개인키)로 보면 쉽게 이해가 될 것이다. 제3자가 도청을 통하여 암호문을 입수했다 하더라도, 해독을 하기 위해서는 먼저 소인수분해를 해야 하는데, 그 과정에서만 슈퍼컴퓨터로 80만년이 걸린다는 점에서 공개키 암호 시스템의 조건부 안전성이 확보되는 것이다. 이 시스템을 개발자의 이름을 따서 RSA PUBLIC KEY 암호 시스템이라고 부른다.
참고문헌
정보보호 핵심지식, 도서출판 정일, 이재우 감수, 김종필, 박동섭, 이성중 공저, 2002
네트워크 사회의 에티켓 암호학, 전파과학사, 장은성 지음, 1999
빛의 수수께끼, 고려원 미디어, NHK, 김진의 감수, 1993