banner
三文字

方寸之间

居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
github
email
mastodon
website

PGP工作原理詳解

前言#

最近在浏览博客的時候發現博主的 PGP Key 頁面,雖然之前知道是用於郵件通信加密的,但是具體原理及使用卻不太清楚,所以找了時間查閱了相關資料,整理一下 PGP 加密的一些內容。

PGP 定義#

Pretty Good Privacy(PGP)是一個加密程式,為資料通信提供加密隱私身份驗證。PGP 用於對文本、電子郵件、文件、目錄和整個磁碟分區進行簽名、加密和解密,並提高電子郵件通信的安全性。PGP 加密使用雜湊資料壓縮對稱金鑰加密,最後是公鑰加密的串行組合。其中最關鍵的是兩種形式的加密的組合:對稱金鑰加密 (Symmetric Cryptography) 和非對稱金鑰加密 (Asymmetric cryptography)。

PGP 工作原理#

在實現 PGP 加密的過程中,首先使用對稱金鑰加密演算法對原始資料進行加密。對稱金鑰加密演算法包括 DES、AES、Blowfish 等,這些演算法能夠快速地加密和解密資料,但是需要發送方和接收方之間共享金鑰。

為了避免在網路上傳輸金鑰,PGP 使用了公鑰加密演算法。公鑰加密演算法是一種使用不同的金鑰加密和解密的演算法,其中公鑰用於加密,而私鑰用於解密。公鑰加密演算法包括 RSA、DSA 等,這些演算法具有極高的安全性,但是加密和解密速度比對稱金鑰加密演算法慢得多。

PGP 將對稱金鑰加密,並使用接收方的公鑰進行加密。這種方式可以保證金鑰的安全性,同時可以確保只有接收方可以解密對稱金鑰,從而保護了資料的機密性。接收方使用自己的私鑰對加密的對稱金鑰進行解密,然後使用對稱金鑰對資料進行解密。這種方式既可以保護資料的安全性,也可以提高加解密的速度。

PGP 工作原理示意

PGP 使用兩種類型的加密演算法來保護資料:對稱金鑰加密和公鑰加密。對稱金鑰加密是一種使用相同金鑰加密和解密的演算法,因此在加密和解密之間需要共享金鑰。而公鑰加密則是一種使用不同的金鑰加密和解密的演算法,其中公鑰用於加密,而私鑰用於解密。下面我將簡單介紹一下這兩種演算法的工作原理。

對稱金鑰加密#

對稱金鑰加密是一種使用相同金鑰加密和解密的演算法,因此在加密和解密之間需要共享金鑰。對稱金鑰加密的過程如下:

  1. 發送方選擇一個加密金鑰,並使用它將原始資料加密。
  2. 加密後的資料被發送到接收方。
  3. 接收方使用相同的金鑰將加密的資料解密。

儘管對稱金鑰加密非常高效,但它有一個明顯的缺點,即需要在發送方和接收方之間共享金鑰。如果這個金鑰被黑客或其他人獲取,資料將無法得到保護。為了解決這個問題,PGP 使用了另一種加密演算法:公鑰加密。

公鑰加密#

公鑰加密是一種使用不同的金鑰加密和解密的演算法,其中公鑰用於加密,而私鑰用於解密。公鑰加密的過程如下:

  1. 發送方獲取接收方的公鑰,並使用它將對稱金鑰加密。
  2. 加密後的對稱金鑰和加密後的資料被發送到接收方。
  3. 接收方使用自己的私鑰將加密的對稱金鑰解密。
  4. 接收方使用解密後的對稱金鑰將加密的資料解密。

公鑰加密允許發送方使用接收方的公鑰加密資料,而無需共享對稱金鑰。這樣,即使黑客獲得了加密後的資料,也無法使用它,因為他們沒有接收方的私鑰來解密對稱金鑰。

PGP 示例#

我用常用的加密電子郵件來舉個例子,具體的工作流程是:

用戶 A 要給用戶 B 發送郵件。

  1. 用戶 B 生成一對金鑰(公鑰和私鑰),將公鑰發送給用戶 A。
  2. PGP 軟體使用演算法生成一個隨機的會話金鑰,這個金鑰是一個很大的數字,而且只使用一次。
  3. 用戶 A 用剛剛生成的金鑰,加密郵件,並使用用戶 B 的公鑰對該金鑰進行加密。
  4. 最後,用戶 A 將加密的郵件及金鑰發送給用戶 B,用戶 B 使用自己的私鑰進行解密,得到會話金鑰,進而可以解密完整的郵件。

PGP 加密用途#

PGP 有三個主要用途:

  • 發送和接收加密電子郵件。
  • 驗證向您發送此訊息的人員的身份,即數字簽名驗證
  • 加密資料。

其中,發送安全電子郵件 - 是迄今為止 PGP 的主要應用。數字簽名是一種基於公鑰加密的技術,用於證明訊息的發送者身份和訊息完整性,以及防止訊息被篡改。發送方使用自己的私鑰對訊息的摘要進行加密,生成數字簽名。接收方使用發送方的公鑰對數字簽名進行解密,並生成訊息的摘要,比對兩個摘要是否一致,來驗證訊息的完整性和身份。如果數字簽名驗證失敗,則說明訊息可能被篡改或者來自偽造的發送方。

總結#

PGP 使用對稱金鑰加密演算法保護資料機密性,使用公鑰加密演算法保護對稱金鑰的安全性,使用數字簽名技術驗證訊息的完整性和身份。這種結合了對稱金鑰和公鑰加密的方法,可以在安全性和效率之間取得平衡。PGP 已經成為一種被廣泛應用的資料加密和數字簽名的標準,保護了用戶的隱私和安全。

參考#

Pretty Good Privacy - Wikipedia

What is PGP Encryption and How Does It Work? | Varonis

Public Key Cryptography Simply Explained | Hacker Noon


歡迎訪問我的個人博客:方寸之間

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。