Pgp

OpenPGP 是否容易受到“加密末日原則”的影響?

  • July 12, 2013

通過閱讀RFC 2015(使用 PGP 的 MIME 安全性),以及查看 (GnuPG) 加密和數字簽名電子郵件的原始格式,似乎首先從純文字消息中計算出簽名,然後對兩者進行加密。

我的問題是,為什麼這不受 Moxie Marlinspike 所說的“密碼末日原則”的影響(基本上,如果您必須在檢查簽名之前進行任何加密操作,就會發生壞事)?我想原因(與魔鬼一起)將在細節中,以實現“簽名然後加密”操作的特定方式。但我一直無法找到(或更可能理解)這些細節。任何人都可以解釋一下嗎?

由於術語略有混淆,答案(對標題問題)是否定的。莫西說的是(強調)

如果您必須在驗證收到的消息的MAC之前執行任何加密操作,這將不可避免地導致厄運。

請注意,他說的是 MAC 而不是簽名。PGP 小組也對此進行了討論,因此您並不孤單。

換句話說,mac-then-encrypt 與 sign-then-encrypt 不同。先加密再加密優於先加密再簽名。有關先簽名後加密的更多討論,請參閱此問題和答案

這是否可行取決於加密算法的細節。您將其指出為“魚腥味”是正確的。也就是說,根據細節,GnuPG 的方法可能是可以的。例如,如果它使用的加密算法是 IND-CCA2 安全的,它可能沒問題。

顯然 Moxie Marlinspike 的建議側重於 MAC(對稱密鑰設置),但我認為您是對的,它在非對稱密鑰設置中也是很好的建議。但是,讓我指出一個小細節。原則上,MAC(對稱密鑰)與簽名(非對稱密鑰)之間沒有區別。在實踐中一個區別:很少找到已經對選擇密文攻擊(沒有 MAC)安全的對稱密鑰加密算法,而找到已經對選擇密文攻擊(沒有 MAC)已經安全的非對稱密鑰加密算法更為常見。 MAC)。換句話說,大多數對稱密鑰加密算法都是 IND-CPA 安全的,但不是 IND-CCA2 安全的。相比之下,許多非對稱密鑰加密算法是 IND-CCA2 安全的(使用不安全的 IND-CCA2 算法也是一種“魚腥味”)。

如果 GnuPG 使用 IND-CCA2 安全非對稱密鑰,則 Moxie Marlinspike 指出的風險不適用:他指出了對解密常式進行選擇密文攻擊的風險,但任何 IND-CCA2 算法已經是安全的對抗選擇密文攻擊,即使在沒有任何簽名的情況下。

您可以將 MAC 化或簽署密文的過程視為保護加密方案免受選擇密文攻擊的一種方式(即保護不是 IND-CCA2 安全的加密方案免受 IND-CCA2 式攻擊)。如果加密方案已經是 IND-CCA2-secure,則減少了對密文進行簽名/MAC 的需要。

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