Encryption
我什麼時候需要使用混合密碼學?
我需要為協議提供機密性。協議消息大小在 100 字節到 500 字節之間。我需要使用非對稱加密還是混合加密?
協議消息大小在 100 字節到 500 字節之間。我需要使用非對稱加密還是混合加密?
要支持 500 字節的消息,您的(直接)加密方案需要在大約 5000 位上工作(例如,對於RSA、Paillier、ElGamal),以便為填充提供空間以獲得CCA2 安全性。在 5000 位時,這些方案變得有些慢,因此您絕對應該在混合解決方案和直接解決方案之間的任何一種情況下進行測量(例如使用帶有OAEP的 RSA-5000 ,可能還有指數 3、17 和 65537)。
Curve25519 怎麼樣?
如果您可以將消息可逆地編碼到橢圓曲線點(不容易),您可以在 Curve25519 上使用 ElGamal 或Cramer-Shoup來加密最多 32 個字節的消息。當然 32 字節比你想加密的要少得多,所以直接加密就不行了。
通常使用 Curve25519 和其他方案,您將執行混合加密,作為ECIES或直接通過加密對稱密鑰(使用 CCA2 安全或專用方案,如 RSA-KEM)和 AE 加密消息。作為額外的獎勵,如果您可以進行必要的隨機數/IV 管理,那麼您可以潛在地將該共享密鑰重新用於多條消息,即您可以保證您可以為每條消息提供一個唯一的隨機數。