適合多方通訊(例如群聊)的加密體制有哪些?

現有的密碼體制(RSA、AES等)都是針對雙方通信,對於三人及三人以上的多人通信的情景下,有什麼好的密碼方案么?


傳輸中只有雙方,發送方和接收方。

即便是群聊也是如此。


群聊加密有現成的協議和實現,一般來說群聊加密協議還會考慮plausible deniable。

可以參考這篇文章 Private Group Messaging 還有這篇 Cryptocat - Security


加解密不重要,重要的是密碼怎樣協商和分發。

要保證密碼產生的公平性,即每個人都參與密碼產生;

要保證密碼協商過程中,非群的人無法獲得密碼信息;

這個協商過程是公開透明的;

一個假設前提:

參與群聊的人都能被其他參與群聊的人認證來源。

這些條件夠不夠啊。方案我沒有,題目先理清。


群聊加密不就是等於每個人都跟伺服器聊天然後分別加密嘛,都一樣。


群組加密最簡單的方法是先使用一個公用公鑰對內容加密,同時使用各個人的公鑰對公用私鑰進行加密,然後分發加密後的內容和加密後的公用私鑰,每個人再用各自的私鑰解密獲取內容。

也就是通過將解密用的私鑰加密多遍,來避免將內容加密多遍。


可以考慮ABE,基於屬性的加密,目前多見於論文,貌似實際應用不多。


呃。。。新聞組配合pgp加密?

不知道我理解的對不對,題主的想法是

1.參與群聊的客戶端可以發送加密後的密文

2.伺服器端只存留密文並且無法解密密文

3.其他客戶端收取服務端密文後,在本地解密


一種是: A 給群發消息, A把消息加密給伺服器, 伺服器解密消息,在分別加密發給B ,C,D,E。

另一種是: A要給B,C,D發消息,收取B,C,D的公鑰,然後把消息分別發給伺服器,伺服器中轉下,B,C,D 用自己私鑰解密,這種特麻煩,邏輯結構太複雜。


發給每個接收方的消息都專門加密並專門發送一次。

這樣雖然比較浪費,但也只有這樣能實現端對端加密的群聊。


推薦閱讀:

開啟 Passcode 的 iOS 設備,數據是硬體加密不可獲取破譯的嗎?

TAG:通信 | 密碼學 | AES加密 | RSA加密 |