電子メールなどで、文書の暗号化や電子署名などを実現するためのソフトウェアの一つ。
PGPは、フィリップ・ジマーマン(Philip R. Zimmermann)個人により作られたソフトウェアであった。
現在は、OpenPGPという仕様がRFC 2440
で公開され、そしてOpen PGP Allianceなどの団体が作られている。
PGPは、公開鍵暗号方式と慣用暗号方式を併用し、安全性と高速性を両立させている。
メッセージは、慣用暗号方式で暗号化する。メッセージ暗号化に使う「鍵」は、都度乱数として生成する。鍵長は暗号化アルゴリズムに依存する。この鍵をセッション鍵と呼ぶ。
次に、セッション鍵を暗号化する。アルゴリズムは公開鍵暗号方式であり、その鍵は受信者の公開鍵である。結果を先の暗号化メッセージに追加することで、暗号化は完成する。
なお電子メールはASCII文字しか扱えないので、作られた結果はradix-64変換によってASCII文字に符号化して送る。これは3バイトのバイナリデータを4文字のASCII文字にする単純な処理で、これ自体は暗号ではない。
メール受信者は、まず自分の秘密鍵でセッション鍵を取り出し、メッセージを復号する。これで、暗号化されたメッセージを相手に安全に送信することに成功したことになる。
メールは、ある一つを相手に一回、送るだけである。何度も相手とやり取りするような手間を取ることは、メールというシステムとしては事実上不可能である。このため、例えばIPsecやSSLなどのように、セッション鍵交換プロトコルを使って鍵交換をすることは出来ない。
そこでPGPでは、一回限りの送信で全てを終える。セッション鍵は乱数とし、使い捨てにすることとした。この鍵は小さいので、処理は遅いが強力な暗号である公開鍵暗号方式で暗号化し、メッセージ自体は高速な慣用暗号方式で暗号化する。
この方式は、公開鍵暗号方式が安全である限り安全である。但しメッセージ暗号化に用いた慣用暗号方式も充分に安全でなければ安全が維持されない。
セッション鍵の暗号化に公開鍵暗号方式を使うため、事前に公開鍵を互いに交換せねばならない。
いかなる方法で渡しても支障はないが、途中で万一改善されると都合が悪いため、その確認の方法が必要である。そこで、公開鍵のハッシュを作り、これを指紋として公開する。
公開鍵の本人の提示する指紋と、入手した公開鍵の指紋を確認し、一致していれば途中の改竄等がない公開鍵であると判断できる。
当時の米国では、暗号技術は核技術並の機密事項であり、輸出は厳しく規制されていた。当然、FBIはZimmermannに目を付ける事になり、米国の暗号輸出規制への違反容疑で司法当局に召喚された。
そこでZimmermannは、「PGP 5.0のソースコードを書籍にして出版」するという対抗措置を取った。全12巻、6000ページ以上というこの書籍の出版は米国憲法により認められた「権利」であり、何人もこれを侵すことはできない。これにより、FBIなどの捜査当局は暗号輸出を食い止める事が出来無くなってしまったのである。結果としてZimmermannは不起訴となり、PGP暗号輸出に関する結論は曖昧になってしまった。
こうして「合法的に」輸出されたPGP 5.0のソースコードは欧州でOCRにて読み取られ、初の合法的インターナショナル版PGP 5.0iが誕生した。
但し、暗号のソフトウェアが米国のネットワークから海外へ送られることは違法である、という米政府の見解から、PGPは長く米国内で開発が進められた米国版と、その他の国で開発が進められたインターナショナル版が別々に用意されていた。
しかし1999(平成11)年9月16日に米政府は暗号ソフトウェアの輸出規則を緩和することを発表し、12月13日に輸出規制は解除された。このためPGP 6.5.1iがインターナショナル版PGPの最終バージョンとなり、その後は両者は統一された。