Encryption

是否存在任何一對多的密碼方案?

  • March 22, 2014

我很確定我了解公鑰/私鑰加密的工作原理。任何人都可以使用眾所周知的公鑰加密消息,但只有持有私鑰的人才能解密。

我的問題涉及安全地向多人發送消息。假設有n公鑰/私鑰對。有沒有辦法使用公鑰加密消息,n這樣任何一個私鑰持有者都可以完整地解密消息,但沒有其他人可以?

此外,與公鑰/私鑰密碼學無關,是否有任何方案存在n共享密鑰,這樣任何知道n密鑰的人都可以加密消息,這樣任何一個共享密鑰都可以完整地解密消息,但沒有其他人可以?

是的,一點沒錯。這是解決這個問題的標準結構。讓 $ pk_1,\dots,pk_n $ 成為公鑰 $ n $ 收件人。我們選擇一個隨機對稱密鑰 $ k $ , 加密消息 $ m $ (使用經過身份驗證的加密)在密鑰下 $ k $ 要得到 $ c=AE_k(m) $ , 然後加密 $ k $ 在每個公鑰下。最後,我們將整個密文形成為

$$ E_{pk_1}(k),E_{pk_2}(k),\dots,E_{pk_n}(k),c. $$

這就是我們將其視為密文的內容。現在任何一個 $ n $ 收件人可以解密(他們可以恢復 $ k $ 使用他們的私鑰,然後用它來解密 $ c $ ),但沒有其他人可以。

同樣的方法也適用於共享密鑰(對稱密鑰)設置。

此標準結構在“RFC 4880:OpenPGP 消息格式”和PKCS#7(封裝數據)中進行了更詳細的標準化。(謝謝​​,David Cary 和 DrLecter!)

您可能還喜歡研究解決相關問題的廣播加密。它基本上允許您將消息傳輸到數百萬個接收者,而不會大幅增加密文的大小(因此它實現的密文比上面的簡單方案短得多),儘管有一些細節和一些額外的協調必需的。

對於數字簽名,您可能喜歡查看環簽名組簽名

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