Public-Key
為什麼 gnupg 創建 4 個單獨的鍵,sub 和 ssb 是什麼意思?
使用 gpg 創建單個密鑰時,我得到:
$ gpg --list-keys ------------------------------- pub 2048R/0C0EA301 2018-01-01 uid [ultimate] sub 2048R/023A0509 2018-01-01 $ gpg --list-secret-keys ------------------------------- sec 2048R/0C0EA301 2018-01-01 uid ssb 2048R/023A0509 2018-01-01
使用 bouncycastle 查看密鑰時(在 ~/.gnupg/pubring.gpg 和 ~/.gnupg/secring.gpg 中),我發現創建了四個密鑰:
(#gpg.public[9AB238A08EF3EAB0A7D01E1284AB64C10C0EA301] #gpg.public[A841D2BA6635154081F3A5176DE7FF9B023A0509]) (#gpg.secret[9AB238A08EF3EAB0A7D01E1284AB64C10C0EA301] #gpg.secret[A841D2BA6635154081F3A5176DE7FF9B023A0509])
為什麼 gpg 會創建四個密鑰(public/private/sub/ssb),它們的用途是什麼?
縮寫代表以下內容:
pub
–公共主鍵sub
– 公共子密鑰sec
– sec ret 主鍵ssb
–秘密s u b -key _在非對稱密碼學中,您總是有密鑰對:要加密的公鑰,要解密的私鑰(秘密)。這裡我們有兩個密鑰對:(1, 3) 和 (2, 4)。他們可以通過相同的指紋來辨識。
但是為什麼有兩個密鑰對呢?當使用 GnuPG 生成 OpenPGP 密鑰時,預設情況下會創建一個主密鑰(對),也稱為主密鑰,以及一個子密鑰(對)。主密鑰,也稱為主密鑰,包含一個或多個使用者 ID(姓名、電子郵件地址),用於簽名。由主密鑰簽名並因此確認屬於其使用者 ID 的子密鑰用於加密/解密。
這裡很好地描述了擁有帶有子密鑰的主密鑰的想法。如果您想偏離預設行為並獲得對密鑰生成的更多控制,例如僅創建單個密鑰對或選擇某種加密算法,您應該嘗試
gpg --full-gen-key
(在 GnuPG 2.1.17 中引入)。