PGP란 무엇인가?
PGP(Pretty Good Privacy)는 온라인 통신에 암호학적 프라이버시와 인증 기능을 제공하는 암호화 프로그램입니다. PGP는 주로 이메일 내용을 암호화하여 기밀성을 유지하는 용도로 가장 널리 사용됩니다. Claris Emailer, Microsoft Outlook/Outlook Express, Qualcomm Eudora 등 일부 이메일 클라이언트에서는 플러그인 형태로 PGP를 손쉽게 사용할 수 있습니다.
디지털 서명과 키 구조
PGP는 무결성(integrity), 인증(authentication), 부인 방지(non-repudiation)를 보장하기 위해 디지털 서명을 활용합니다. 또한 기밀성 유지를 위해 비밀키(대칭키) 암호화와 공개키 암호화를 함께 사용합니다. 즉, 디지털 서명을 구현하려면 하나의 해시 함수, 하나의 비밀키, 그리고 두 쌍의 개인키-공개키 쌍이 필요합니다.
PGP는 마우스 클릭 한 번으로 이메일 메시지에 서명하거나 암호화할 수 있습니다. 사용되는 기능은 PGP 버전에 따라 달라지는데, 일반적으로 메시지 해시 계산에는 SHA 또는 MD5가, 암호화에는 CAST, Triple-DES 또는 IDEA가, 키 교환과 디지털 서명에는 RSA 또는 DSS/Diffie-Hellman 알고리즘이 사용됩니다.
키 쌍 생성과 패스프레이즈
PGP를 처음 설정할 때 사용자는 키 쌍(key pair)을 생성해야 합니다. 두 키 중 하나인 공개키(public key)는 자유롭게 배포하여 널리 유통할 수 있습니다. 반면 개인키(private key)는 패스프레이즈(passphrase)로 보호되며, 사용자가 개인키에 접근할 때마다 패스프레이즈를 입력해야 합니다.
메시지 서명의 작동 방식
PGP에서 서명만 적용된 메시지는 도청자로부터 내용을 완전히 숨기지는 못하지만, 수신자는 해당 메시지가 발신자가 전송한 원본 그대로 변경되지 않았음을 확신할 수 있습니다. 이 과정에서 발신자는 자신의 개인키로 메시지에 서명하고, 수신자는 서명을 검증하기 위해 발신자의 공개키가 필요합니다. 이 공개키는 발신자의 이메일 주소를 기준으로 수신자의 키링(keyring)에서 찾아 사용됩니다.
PGP가 널리 사용되는 이유
- 무료이며 멀티플랫폼 지원: Windows, UNIX, Mac 등 다양한 플랫폼에서 실행되는 무료 버전이 전 세계적으로 제공됩니다. 벤더 지원이 필요한 사용자를 위한 상용 버전도 마련되어 있습니다.
- 검증된 강력한 알고리즘 기반: 광범위한 공개 검토를 거쳐 안전하다고 평가받는 알고리즘을 사용합니다. 공개키 암호화에는 RSA, DSS, Diffie-Hellman이, 대칭 암호화에는 CAST-128, IDEA, 3DES가, 해시 처리에는 SHA-1이 포함됩니다.
- 폭넓은 활용 범위: 문서와 메시지 암호화를 위한 표준화된 체계를 도입해야 하는 기업부터, 인터넷을 통해 전 세계 사람들과 안전하게 소통하려는 개인 사용자까지 폭넓게 활용할 수 있습니다.
- 독립적인 운영: 어떠한 정부나 표준화 기구도 PGP를 개발하거나 관리하지 않습니다. '기존 질서'에 근본적인 불신을 가진 사용자에게 PGP는 매력적인 선택지입니다. 최근에는 상용 버전도 출시되어 선택의 폭이 넓어졌습니다.
- 인터넷 표준 준수: PGP는 인터넷 표준 트랙(RFC 3156)에 등재되어 있으며, 동시에 반체제적 성격을 지닌 프로젝트이기도 합니다.