PGP是壹套用於消息加密、驗證的應用程序,采用IDEA的散列算法作為加密與驗證之用。
PGP加密由壹系列散列、數據壓縮、對稱密鑰加密,以及公鑰加密的算法組合而成。每個步驟支持幾種算法,可以選擇壹個使用。每個公鑰均綁定唯壹的用戶名和/或者E-mail地址。
這個系統的第壹個版本通常稱為可信Web或X.509系統;X.509系統使用的是基於數字證書認證機構的分層方案,該方案後來被加入到PGP的實現中。當前的PGP加密版本通過壹個自動密鑰管理服務器來進行密鑰的可靠存放。
PGP可以用來發送機密消息。這是通過對稱的壹組密鑰-公鑰組合來實現的。消息采用對稱加密算法加密,采用壹組對稱密鑰。每個對稱密鑰只使用壹次,所以也叫做會話密鑰。會話密鑰通過接收方的公鑰來加密保護,因此只需確保僅接收方能解密會話密鑰即可。
加密的消息和加密的會話密鑰壹起發送給接收方。PGP支持消息認證和完整性檢測。完整性檢測被用來檢查消息在傳輸過程中是否變更過,而消息認證則是被用來決定消息是否確由某特定的人或實體發出(即數字簽名驗證)。
在PGP中,這些特性默認是和消息加密同時開啟的,而且同樣可以被應用到明文的驗證。發送者只需使用PGP為消息創建壹個數字簽名(簽名算法采用RSA或DSA算法)。具體步驟為:PGP以數據或信息創建壹個散列(參見消息摘要),然後使用發送者的私鑰利用散列生成數字簽名。