Pgp

可以從舊備份中推斷出 PGP 密鑰的密碼嗎?

  • February 22, 2014

讓我們假設 Bob 在某個時間點創建了一個 PGP(此時密鑰長度和其他參數不相關)。出於某種原因,他選擇了一個非常糟糕的密碼,例如lemon。一段時間後,鮑勃意識到他的選擇很糟糕,並決定將他的密碼更改為更安全的密碼,例如There is no doubt that a longer passphrase is more secure than a single word.

有一個問題:在更改密碼之前的某個時刻,私鑰以某種方式洩漏(例如,由於未適當保護的備份方案或其他一些事故)。無論哪種方式,Eve 現在都有 Bob 的私鑰,但沒有它的密碼。鑑於原始密碼片語的選擇不佳,這只是時間問題,因此為了討論,讓我們假設 Eve 最終設法以某種方式推斷出密碼片語。因此,她同時擁有私鑰及其密碼,並且能夠對其進行解密。

密鑰本身當然在這一點上受到損害,這是毫無疑問的。即使 Bob 的副本現在以不同的方式加密(閱讀:新密碼),Eve 肯定能夠解密她(幾乎沒有受到保護)的 Bob 私鑰副本。所以我猜這對應於對私鑰的已知明文攻擊。在這種情況下,Eve 是否能夠推斷出 Bob 的 /new/ 密碼(因此可能還有他使用相同密碼的其他密鑰)?

我假設 Bob 使用標準格式OpenPGP aka RFC4880將他的私鑰儲存在私鑰文件中。

如果攻擊者 Eve 以某種方式獲得了 Bob 的私鑰文件,而該密鑰文件上的密碼又短又弱,以至於攻擊者通過字典攻擊或暴力破解了它,那麼——事情對 Bob 來說是非常糟糕的。

Bob 在這裡的最佳選擇是生成一個新的第二個私鑰,告訴每個人(可能通過使用由他的原始私鑰簽名的消息)使用新的公鑰並撤銷他之前的密鑰。(然而,人們怎麼能分辨出這些消息真的來自 Bob?也許這些消息實際上來自 Eve,假裝看起來好像來自 Bob,告訴每個人使用對應於只知道的私鑰的公鑰Eve. 他們所能確定的只是原始密鑰已被洩露,應該被撤銷)。

然而,在這種情況下,Bob 莫名其妙地繼續使用他的原始私鑰,但使用一個好的密碼重新加密它。

然後 Eve 以某種方式獲得了 Bob 的新私鑰文件,包括由 Bob 的新密碼片語加密的原始私鑰(她猜想這與她從之前的密鑰文件中提取的私鑰相同)。

Eve 是否能夠推斷出其他秘密資訊,解密使用 Bob 的 /new/ 密碼加密的其他內容,或者甚至可以推斷出密碼本身?

不太可能。

您正在描述已知明文攻擊:Eve 有一個加密文本(使用新密碼加密的新私鑰文件)和相應的明文(從舊密鑰文件中提取的私鑰),並試圖用它來揭示更多秘密資訊。

標準 OpenPGP 格式使用 RFC4880 第 9.2 節中列出的幾種算法之一使用密碼片語(由散列版本形成的密鑰)加密私鑰。“對稱密鑰算法”,通常是 AES。

在編寫這些算法時,已知明文攻擊是眾所周知的。所有這些算法都是專門設計用來抵抗已知明文攻擊的。它們的設計使得即使在 Eve 獲得數百個明文+密文對之後,所有密文都使用相同的“好”密碼片語加密,Eve 幾乎不可能恢復該密碼片語或解密任何其他消息。

引用自:https://crypto.stackexchange.com/questions/12548