PGP 透過加密、資料壓縮和雜湊技術工作。它與其他常見的加密方法類似,例如 Kerberos,它可驗證網路使用者、保護網站SSL(SSL),以及保護移動中的資料的安全檔案傳輸通訊協定 (SFTP)。
PGP 使用公開金鑰系統,其中每位使用者都有一個公開已知的唯一加密金鑰,以及只有自己知道的私密金鑰。當使用者使用其公開金鑰將訊息傳送給某人時會加密訊息,然後在收件人使用其私密金鑰開啟訊息時解密。它結合了私密金鑰和公開金鑰加密技術,以及對稱和非對稱金鑰技術,在資料跨網路傳輸時將其加密。
PGP 遵循三個步驟的流程:
PGP 會產生無法猜測的巨大一次性公共加密演算法,成為隨機工作階段金鑰。
然後,使用收件人的公開金鑰加密工作階段金鑰,該金鑰可在傳輸時保護訊息。收件人與想要接收訊息的任何人共用該金鑰。
訊息傳送者提交其工作階段金鑰,然後收件者可以使用其私密金鑰解密訊息。
加密整個訊息可能需要很長的時間,但 PGP 會使用較快的演算法加密訊息。PGP 可壓縮純文字資料,可節省磁碟空間和傳輸時間,並強化加密安全性。公開金鑰用於加密對完整訊息進行加密的較短版本。兩者都會傳送給收件人,收件人使用私密金鑰解密較短的金鑰,然後解密完整訊息。
PGP 使用高效演算法建立稱為雜湊的數學摘要來傳送數位簽章。雜湊值可以是使用者名稱和其他數位資料,由訊息傳送者的私密金鑰加密。收件人使用訊息傳送者的公開金鑰解密雜湊,如果該金鑰與傳送者傳送的金鑰相符,就會確認訊息已安全接收。
PGP 有兩種公開金鑰版本:
Rivest-Shamir-Adleman (RSA): RSA 是最早的公開金鑰加密系統之一,該系統使用國際資料加密演算法 (IDEA) 加密建立的短金鑰。這可讓使用者根據兩個主要數字建立和發佈公開金鑰,任何人要解碼都必須提供這兩個主要數字,並使用訊息摘要演算法(MD5)來建立雜湊值。
RSA 演算法實際上被認為是無法破解的,在 CryptoLocker 這類高度複雜的惡意軟體中使用。然而這個演算法速度相當緩慢,意味著它不適合加密使用者資料。
Diffie-Hellman :Diffie-Hellman 版本可讓兩個使用者產生共用私密金鑰,以便透過這些金鑰在不安全的頻道上交換資料。它使用 CAST 演算法和安全雜湊演算法(SHA-1)以短金鑰加密訊息來建立雜湊值。