適合多方通訊(例如群聊)的加密體制有哪些?
01-15
現有的密碼體制(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 用自己私鑰解密,這種特麻煩,邏輯結構太複雜。
發給每個接收方的消息都專門加密並專門發送一次。這樣雖然比較浪費,但也只有這樣能實現端對端加密的群聊。
推薦閱讀: