Public-Key

解密混合網路的實現,以及密鑰大小的問題

  • September 7, 2020

我一直在研究解密混合網路,在電子投票和隱形網路的背景下。讓我們用一種非常簡單的方式來描述它。這個概念很簡單。消息 M 通過多個伺服器 A、B、C 轉發。使用者用 C 的公鑰加密消息,然後用 B 的密鑰加密輸出,然後用 A 的密鑰加密。每個伺服器刪除一個層,最後一個伺服器知道明文。

我的兩個問題是…

如何在軟體中實現這一點?我正在使用 Python,每個庫都使用填充。兩三層加密之後,輸出就是那麼大。出於安全目的,非對稱加密需要隨機填充。但我認為這種情況只需要一層隨機填充,在開始時(C 層),而不是在每一層都添加 PKCS。是否有實現 mixnet 的庫,或允許您使用 RSA 或 ECC 加密而無需填充的低級模組?

而且,長度呢?公鑰加密對明文有長度限制,具體取決於密鑰的大小。這如何適用於混合網路?這個問題的唯一解決方案是混合方案,加密對稱密鑰嗎?

使用 RSA 和 ECC,您通常不會加密實際消息。簽名時,您對消息的*雜湊進行簽名;*並在加密時加密可用於解密消息的對稱密鑰。消息本身使用分組密碼或流密碼加密,具體取決於設計中選擇的內容。因此,使用分組密碼,一旦消息被填充一次,它已經只要它會得到,並且使用流密碼根本不需要填充。

此外,應該注意的是,與 RSA 相比,基於 ECC 的公鑰算法的操作更像是分組密碼。使用 RSA,您需要在每一層進行填充,但使用 ECC,您只需要填充一次。

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