Encryption

是否有公鑰加密和簽署短消息的標準?

  • August 22, 2015

一些在易碎承載上執行的系統需要發送完全自包含的簽名、加密消息——即發送一個 300 字節的 UDP,而不是通過 TCP 進行 10Kb 的雙向證書對話。

假設目的地有一個私鑰並且已經知道源的公鑰,源有一個私鑰並且已經知道目的地的公鑰。

鑑於此假設,是否有加密/簽署小但任意長度的消息的標準?

(我很清楚推出自己的加密方案的危險。)

是否存在與公鑰大小相關的最小密文大小?

(我正在考慮對比密鑰短的明文進行普通 PKI 加密,對更長的明文使用 PKI 加密的 AES 密鑰。)

是否存在與公鑰大小相關的最小密文大小?

這取決於使用的​​算法。沒有任何花里胡哨的 RSA 簽名在大小上等於密鑰長度(即 2048 位 RSA 為 2048 位)。同樣,原始 RSA 加密也添加了相同的內容。因此,如果您同時使用兩者,您將添加兩倍的密鑰長度,或者 512 字節的 2048 位密鑰大小。

橢圓曲線允許更緊湊的簽名和加密。256 位 ECDSA 簽名通常為 512 位。使用NaCL,使用 Curve25519 和混合加密,您只需 40 字節的額外空間即可獲得經過身份驗證的加密。這就是我可能會使用的小消息。

如果即使橢圓曲線算法添加太多,您也可以使用對稱算法,偶爾使用公鑰系統交換會話密鑰。如果使用 AES GCM 交換許多消息,則每條消息的成本約為隨機數大小 + 身份驗證標籤大小(例如總共 192 位)。如果您可以使用一些現有的計數器作為隨機數,那就更少了。

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