
所以在本週之前我從未使用過 gpg (2.0.14),而且我也不是密碼學專業人士,但我使用 gpg 得到的結果似乎很奇怪。
當我匯入 OpenPGP 產生的金鑰(例如 gpg --import public.key)時,gpg 似乎成功處理它們並且沒有報告任何錯誤。但是,當我導出這些密鑰並與原始密鑰進行比較時,它們是不是相同。我認為這就是 gpg 無法解密使用原始公鑰在[其他地方]創建的訊息的原因。
重現步驟:使用類似的工具https://sela.io/pgp/若要產生金鑰集,請匯入到 gpg,從 gpg 匯出,進行比較。
不相容?錯過了一個步驟嗎?軟體之神繼續用一連串的小麻煩來陰謀對付我?
答案1
我看到的唯一區別是GPG 2.0.14(我在CentOS 6 上有)輸出帶有舊格式標頭的關鍵數據包(大概是為了更廣泛的兼容性,至少在過去的幾年裡),而不是使用新格式標頭站點(參見rfc4880 第 4.2 節),並且預設是無裝甲的(但很容易移除)。資料包的主體以及金鑰的值應該是相同的。
但是,僅導入民眾金鑰永遠不允許您解密或簽名。公鑰或「非對稱」密碼學的全部要點在於,只有被認為是唯一的持有者私人的key,出於歷史原因,GPG 稱之為秘密金鑰,可以解密或簽名,而公鑰可以公開並被任何人和每個人用來加密或驗證。
補充:雖然使用網站產生金鑰是非常可疑的做法,特別是當它甚至沒有說(我可以找到)生成是在瀏覽器中時(儘管基於 ProcExp 指示的 CPU 使用情況)出現可能)。他們產生一個帶有 CSEA 標誌的主密鑰和兩個都帶有 SEA 標誌的子密鑰,這很奇怪,這基本上沒有用,而且浪費 CPU。