PGP (Pretty Good Privacy)
PGP는 1991년에 미국의 암호학자 필 짐머만(Phil Zimmermann)이 개발한 공개키 암호 방식을 기반으로 하는 전자 메일 및 파일 암호화 프로그램이다. 공식 명칭은 “Pretty Good Privacy”이며, 이후 여러 버전과 파생 제품이 출시되었지만 기본적인 설계 원칙은 동일하게 유지되고 있다.
주요 특징
-
공개키 기반 암호화
- 사용자마다 공개키와 개인키 한 쌍을 생성한다. 공개키는 자유롭게 배포할 수 있으며, 개인키는 비밀로 보관한다.
- 메시지는 수신자의 공개키로 암호화되며, 해당 개인키로만 복호화가 가능하다.
-
하이브리드 암호화 구조
- 대용량 데이터 암호화를 위해 대칭키(보통 AES, CAST5 등)를 이용하고, 이 대칭키 자체를 수신자의 공개키로 암호화한다.
- 이러한 구조는 대칭키 암호화의 속도와 공개키 암호화의 보안성을 결합한다.
-
디지털 서명
- 발신자는 자신의 개인키를 사용해 메시지에 디지털 서명을 부여한다. 수신자는 발신자의 공개키를 통해 서명의 진위와 메시지 무결성을 검증한다.
-
키 관리와 웹 오브 트러스트(Web of Trust)
- 중앙 인증 기관(CA) 대신 사용자 간 상호 인증을 통해 신뢰 관계를 형성한다. 사용자는 다른 사용자의 키에 서명(sign)함으로써 신뢰도를 부여한다.
역사 및 발전
- 1991년: 필 짐머만이 PGP를 공개 배포한다. 당시 암호화 소프트웨어는 군용으로만 제한되어 있었으며, 민간에서 사용 가능한 암호화 도구는 거의 없었다.
- 1990년대 중반: 미국 정부의 수출 규제(ITAR)와 관련한 법적 논란이 있었으며, 짐머만은 핵심 코드를 ‘소스코드 공개’ 형태로 배포해 논란을 회피한다.
- 1997년: PGP Inc.가 설립되어 상업용 PGP 제품을 출시한다. 이후 Symantec이 2010년에 PGP Corp.를 인수하여 상용 솔루션을 계속 제공하였다.
- 현재: 오픈소스 구현체인 GnuPG(Gnu Privacy Guard)가 가장 널리 사용되며, RFC 4880(“OpenPGP Message Format”)에 정의된 표준 형식을 따른다.
사용 환경
- 전자 메일 암호화: MIME(Multi-purpose Internet Mail Extensions)와 연동하여 PGP/MIME 형태로 메일을 암호화·서명한다.
- 파일 암호화: 명령줄 도구 또는 GUI 기반 클라이언트를 이용해 개별 파일을 암호화한다.
- 인스턴트 메시징: 일부 메신저 및 채팅 애플리케이션에서 PGP 기반 플러그인을 통해 엔드투엔드 암호화를 구현한다.
- 버전 관리 시스템: Git 등에서 커밋 서명을 위해 GPG(GnuPG)를 활용한다.
표준 및 구현
- OpenPGP: IETF에서 정의한 표준( RFC 4880, RFC 6637 등)으로, 다양한 구현체가 이를 따르고 있다.
- 대표 구현체
- GnuPG (GNU Privacy Guard) – 자유 소프트웨어, 대부분의 리눅스 배포판에 기본 포함.
- PGP Desktop – Symantec이 제공하는 상용 제품.
- Kleopatra, Enigmail – GUI 기반 관리 도구.
보안 특성
- 현재까지 공개된 주요 암호 알고리즘(AES, RSA, ECC 등)이 적용되어 있어, 적절히 최신 버전을 사용한다면 실용적인 수준에서 강력한 보안을 제공한다.
- 키 길이와 알고리즘 선택에 따라 보안 수준이 달라지므로, 최신 권고 사항(예: RSA 3072비트 이상, ECC Curve25519 등)을 따르는 것이 권장된다.
참고
- RFC 4880 – OpenPGP 메시지 포맷 표준.
- Phil Zimmermann – PGP 개발자, https://en.wikipedia.org/wiki/Phil_Zimmermann (공신력 있는 출처)
- GnuPG 공식 사이트 – https://gnupg.org
이 문서는 확인된 공개 자료와 표준 문서에 기반하여 작성되었으며, 추측이나 미확인 정보는 포함되지 않았다.