Encryption
libsodium 的 X25519 加密構造可以推廣嗎?
據我了解,libsodium 的seal_box是基於 X25519,一個 Diffie-Hellman 函式:通過將 X25519 密鑰協議與對稱密碼相結合,並讓接收者派生對稱密鑰,可以構造一條只能通過使用解密的消息X25519 私鑰。
這種構造能否推廣到其他 Diffie-Hellman 函式(具有其他曲線的 ECDH,或普通的非 EC Diffie-Hellman)?
是的。通用結構稱為IES(集成加密方案),最常被稱為 ECIES(橢圓曲線 IES)。原理是一樣的:使用“密鑰協商”原語(DH,ECDH,X25519,……)構造一個由雙方共享的秘密,雙方都知道雙方的公鑰,但只知道自己的私鑰。然後使用共享密鑰導出用於對稱認證加密的密鑰。
我不知道 libsodium 的
crypto_box
數據格式是否完全符合官方 ECIES 標準(有很多)。ECIES 標准在組(DH 組或 EC 曲線)、派生中包含哪些數據以及參數的新鮮度(例如臨時密鑰與多用途密鑰)方面有很多選擇。根據這些選項,生成的結構可能在隨機數誤用性、對私鑰妥協的抵抗性、對側通道的抵抗性等方面具有不同的屬性。但是在密鑰之上建構的混合加密的基本原理協議是一樣的。一些關於 IES 如何完成的細節如何影響二級安全屬性的閱讀:
- Neil Madden,公鑰認證加密以及您想要它的原因(第二部分) ——“選項 2:來自 Diffie-Hellman 的認證加密” ff。
crypto_box
ECIES 與zcash的簡短討論