如何使用 PGP
要使用 PGP,您需要產生一個金鑰對(一把公開金鑰和一把私密金鑰),將公開金鑰分享給您想通訊的對象,匯入他們的公開金鑰,然後使用這些金鑰來加密、解密、簽署和驗證訊息。PGP 加密確保只有預期的收件人才能讀取您的訊息,而數位簽章則證明訊息確實來自您。像 KeychainPGP 這樣的工具透過剪貼簿工作流程讓這個過程變得簡單 — 無需命令列。
本 PGP 教學將帶您完成每個步驟,從產生第一個金鑰對到傳送和接收加密訊息。如果您對公開金鑰密碼學的概念還不熟悉,建議先閱讀什麼是 PGP?或 PGP 入門指南。
開始前的準備
在使用 PGP 加密第一則訊息之前,您需要一個 PGP 應用程式:
- KeychainPGP 網頁應用程式 — 在任何現代瀏覽器中開啟線上 PGP 工具。所有操作都透過從 Rust 編譯的 WebAssembly 在本機執行。無需安裝、無需帳號、無任何資料傳送至伺服器。
- KeychainPGP 桌面應用程式 — 從 GitHub releases 頁面下載 Windows、macOS、Linux 或 Android 的原生應用程式。桌面應用程式新增了全域快捷鍵、系統匣整合、剪貼簿自動清除和 QR code 同步功能。
- KeychainPGP CLI —
keychainpgpCLI 提供金鑰產生、加密、解密、簽署、驗證和金鑰鏈管理的命令。非常適合腳本和自動化。 - GnuPG (GPG) — 傳統的命令列工具。功能強大但需要熟悉終端機操作。請參閱 PGP vs GPG 以獲取詳細比較。
提示:如果您只是想立即嘗試 PGP 加密而不安裝任何東西,請開啟線上 PGP 工具並按照本教學操作。
步驟 1:產生 PGP 金鑰對
PGP 金鑰對由兩把數學相關的金鑰組成:
- 公開金鑰 — 您自由分享。任何人都可以用它來加密發給您的訊息或驗證您的簽章。
- 私密金鑰 — 您保密持有。它解密以您的公開金鑰加密的訊息並建立數位簽章。
在 KeychainPGP 中產生金鑰
- 開啟 KeychainPGP(網頁或桌面應用程式)。
- 前往金鑰分頁。
- 點擊產生新金鑰。
- 輸入您的姓名和電子郵件地址。
- 點擊產生。KeychainPGP 會建立 Ed25519 + X25519 金鑰對 — OpenPGP 中最現代且安全的演算法。
使用 GPG 產生金鑰(命令列)
gpg --full-generate-key
選擇金鑰類型(RSA 或 ECC)、大小和到期時間。要獲得最現代的安全性,如果您的 GPG 版本支援,請選擇 Ed25519。
步驟 2:分享您的公開金鑰
您的公開金鑰是一段 ASCII-armored 格式的文字區塊。您可以在任何地方分享它:
- 電子郵件 — 貼到郵件本文中或附加為
.asc檔案。 - 通訊應用程式 — 透過 Signal、WhatsApp、Matrix 或任何聊天平台傳送。
- 您的網站 — 發布在個人網站、GitHub 個人檔案或 Twitter 簡介上。
- 金鑰伺服器 — 上傳到公開金鑰伺服器,如
keys.openpgp.org。
重要:只分享您的公開金鑰。在任何情況下,絕對不要將私密金鑰分享給任何人。
步驟 3:匯入聯絡人的公開金鑰
在向某人發送加密訊息之前,您需要他們的公開金鑰。請您的聯絡人傳送 ASCII-armored 格式的公開金鑰給您,或在金鑰伺服器上搜尋。
在 KeychainPGP 中匯入金鑰
- 將聯絡人的公開金鑰區塊複製到剪貼簿。
- 開啟 KeychainPGP 並前往金鑰分頁。
- 點擊匯入金鑰並貼上金鑰。
- 聯絡人會出現在您的金鑰清單中,顯示其姓名和電子郵件。
步驟 4:加密訊息
在 KeychainPGP 中加密(網頁或桌面)
- 前往加密分頁。
- 輸入或貼上您想加密的訊息。
- 從金鑰清單中選擇收件人。
- 點擊加密至剪貼簿。加密訊息已複製到您的剪貼簿。
- 將加密訊息貼到電子郵件、聊天或任何其他通訊管道中。
使用桌面快捷鍵加密
使用 KeychainPGP 桌面應用程式,透過剪貼簿工作流程,過程更加快速:
- 在任何應用程式中輸入您的訊息。
- 選取並複製文字(
Ctrl+C)。 - 按下
Ctrl+Shift+E— KeychainPGP 會加密剪貼簿內容。 - 貼上加密訊息(
Ctrl+V)。
步驟 5:解密訊息
在 KeychainPGP 中解密(網頁或桌面)
- 複製完整的加密訊息區塊。
- 前往 KeychainPGP 的解密分頁。
- 貼上加密文字。
- 點擊解密。明文會立即顯示。
使用桌面快捷鍵解密
- 選取並複製加密訊息區塊(
Ctrl+C)。 - 按下
Ctrl+Shift+D— KeychainPGP 會解密剪貼簿內容。 - 明文會取代剪貼簿中的加密文字。在需要的地方貼上即可。
桌面應用程式還具有剪貼簿自動清除功能:30 秒後,解密的文字會自動從剪貼簿中清除。
步驟 6:簽署訊息
PGP 數位簽章證明兩件事:
- 真實性 — 訊息由簽署金鑰的持有者撰寫。
- 完整性 — 訊息自簽署以來未被篡改。
簽署不會加密訊息。任何人都可以閱讀已簽署的訊息,但可以驗證它確實來自您且未被竄改。
何時簽署訊息
- 公布軟體發布版本或安全公告
- 在公開論壇上驗證您的身份
- 簽署電子郵件以證明來源
- Git commit 簽署以確保程式碼完整性
步驟 7:驗證簽章
當您收到已簽署的訊息時,可以驗證其真實性和未被修改。
在 KeychainPGP 中驗證
- 複製完整的已簽署訊息(包含簽章區塊)。
- 前往驗證分頁。
- 貼上已簽署的訊息。
- 點擊驗證。KeychainPGP 會確認簽章是否有效。
KeychainPGP 剪貼簿工作流程
KeychainPGP 與傳統 PGP 工具的區別在於其剪貼簿加密工作流程。它不是操作檔案或需要專用的電子郵件用戶端,而是透過系統剪貼簿與任何應用程式配合使用。
| 操作 | 網頁應用程式 | 桌面應用程式 |
|---|---|---|
| 加密 | 貼上文字,點擊加密 | 複製文字,按下 Ctrl+Shift+E |
| 解密 | 貼上加密文字,點擊解密 | 複製加密文字,按下 Ctrl+Shift+D |
| 簽署 | 貼上文字,點擊簽署 | 在應用程式視窗中操作 |
| 驗證 | 貼上已簽署文字,點擊驗證 | 在應用程式視窗中操作 |
桌面應用程式的額外安全功能:
- 剪貼簿自動清除 — 解密文字在 30 秒後從剪貼簿中清除。
- OPSEC 模式 — 偽裝視窗標題、金鑰僅存於記憶體中及緊急清除按鈕。
- 作業系統認證存放區 — 私密金鑰透過 Windows 認證管理員、macOS 鑰匙圈或 Linux Secret Service 安全儲存。
網頁應用程式 vs 桌面應用程式
網頁應用程式(線上 PGP 工具):
- 完全透過 WebAssembly 在瀏覽器中運行
- 無需安裝、無需帳號
- 非常適合快速加密任務
- 金鑰儲存在瀏覽器的本機儲存中
桌面應用程式(Windows、macOS、Linux、Android):
- 全域快捷鍵用於加密和解密
- 系統匣整合
- 剪貼簿自動清除
- OPSEC 模式,金鑰僅存於記憶體中及緊急清除
- 透過作業系統認證管理員安全儲存金鑰
- 更適合日常使用和長期金鑰管理
兩個應用程式都是免費、開源(MIT / Apache-2.0)且無任何遙測。
常見問題
我應該分享我的私密金鑰嗎?
不應該。您絕不應該將私密金鑰分享給任何人。您的私密金鑰是用來解密發給您的訊息和建立數位簽章的。如果其他人取得了您的私密金鑰,他們就能閱讀所有加密給您的訊息並冒充您。
如果我遺失了私密金鑰會怎樣?
如果您遺失了私密金鑰,您將永久失去解密所有以對應公開金鑰加密的訊息的能力。沒有任何恢復機制。請務必安全備份您的私密金鑰。
我可以使用 PGP 加密檔案嗎?
可以。PGP 可以加密文字訊息和二進位檔案。KeychainPGP 專注於剪貼簿文字加密,而 GnuPG 等工具直接支援檔案加密。如需詳細比較,請參閱 PGP vs GPG 指南。
PGP 加密安全嗎?
使用現代演算法的 PGP 加密非常安全。KeychainPGP 使用 Ed25519 進行簽章和 X25519 進行金鑰交換 — 這些橢圓曲線演算法以極小的金鑰大小提供等同於 RSA-3072 的安全性。主要風險不在於密碼學,而在於操作層面:弱密碼、已遭入侵的裝置或疏忽的金鑰管理。
什麼是 PGP 指紋?
PGP 指紋是一個 40 個字元的十六進位字串,用於唯一識別一把 PGP 金鑰。指紋用於驗證公開金鑰確實屬於您認為的那個人。請務必透過獨立的可信管道(電話、視訊通話、當面見面)比對指紋,以防止中間人攻擊。