PGP
IT위키
더 많은 작업
- Pretty Good Privacy
- 컴퓨터 파일을 암호화하고 복호화하는 프로그램. 1991년 필립 짐머만이 개발하였으며, 현재 전 세계적으로 이메일 보안의 표준으로 자리잡았다.
- IETF에서 채택한 표준은 PEM이지만 PGP가 훨씬 많이 쓰인다.
- 보안성은 PEM이 더 뛰어나지만 PGP가 구현하기가 훨씬 용이하다.
- PEM은 엄중한 수준의 보안이 요구되는 군 시설과 같은 제한적인 경우에 사용된다.
- RFC4880에 메시지 포맷이 정의되어 있다.
정보보안기사, 사무자동화산업기사 등 각 종 시험문제 빈출
- 전자서명
- 압축
- 단편화와 재조립
- 암호화
제공하지 않는 기능
- 권한 관리
초기 PGP 는 IDEA·RSA·MD5 를 썼고, 지금의 PGP 와 GnuPG 는 IETF 표준 OpenPGP(RFC 4880, 2024년 RFC 9580 으로 개정)를 따른다. OpenPGP 가 정한 알고리즘은 다음과 같다.
| 용도 | 알고리즘 |
|---|---|
| 메시지 암호화(대칭키, 세션키) | IDEA, 3DES, CAST5, Blowfish, AES(128·192·256), Twofish, Camellia. RFC 9580 은 AES-128 을 반드시 구현하게 한다 |
| 세션키 전달(공개키) | RSA, ElGamal(디피-헬먼 키 교환에 바탕을 둔 방식), 타원 곡선 ECDH·X25519 |
| 전자서명 | RSA, DSA(DSS), ECDSA, EdDSA |
| 해시 | MD5(옛 판), SHA-1, SHA-2(SHA-256 등), SHA-3 |
| 압축 | ZIP, ZLIB, BZip2 |
- PGP 5.x 는 ElGamal 을 Diffie-Hellman 이라는 이름으로 표시했다. 그래서 PGP 가 쓰는 알고리즘으로 RSA·SHA·Diffie-Hellman 을 함께 든다
- 국내 블록 암호 SEED 는 OpenPGP 알고리즘 목록에 없다. SEED 는 S/MIME(CMS), TLS 의 표준 알고리즘으로 들어갔다
- 대칭 암호용 일회용 세션키
- 비대칭 암호용 공개키/개인키
- 패스문-기반(Passphrase-based) 대칭키
PGP 는 사용자마다 키를 두 개의 키 링(key ring)에 보관한다. 키는 공개키의 하위 64비트인 Key ID 로 찾는다.
| 키 링 | 담는 것 | 항목 |
|---|---|---|
| 개인키 링(private key ring) | 자기 공개키/개인키 쌍 | 타임스탬프, Key ID, 공개키, 암호화된 개인키(패스문에서 만든 키로 암호화해 둔다), 사용자 ID |
| 공개키 링(public key ring) | 다른 사용자의 공개키 | 타임스탬프, Key ID, 공개키, 소유자 신뢰도, 사용자 ID, 키 적법성, 서명, 서명 신뢰도 |
- 개인키 링에는 인증서가 들어 있지 않다. 다른 사람의 서명·신뢰 정보는 공개키 링 쪽 항목이다
- 전자서명에는 DSS(DSA) 또는 RSA 를, 해시에는 SHA 계열을 쓴다
- 일반적인 Gmail, 네이버 메일 등 우리가 사용하는 메일서비스에서 기본적으로 적용되어 있지 않다.
- 보안을 신경 쓰는 사람이 텔레그램을 쓰듯, 필요한 사람들은 S/W를 다운받아 이용한다.
- OpenPGP
- Symantec PGP
- GnuPG
- APG(안드로이드)
- GnuPrivacyGuard(안드로이드)
- OpenKeychain(안드로이드)
- iPG Mail(iOS)
- oPenGP(iOS)