Elliptic-Curves

將 X25519 用於 ECDH 和 XChaCha20-Poly1305 用於 AEAD 時是否需要 KDF?

  • May 14, 2016

使用 X25519 進行 ECDH 和 XChaCha20-Poly1305 或 XSalsa20-Poly1305 進行身份驗證加密時是否需要 KDF?

我的假設是“否”,因為來自 X25519 的密鑰長度小於 256 位;因此,它可以直接在 XChaCha20-Poly1305 中使用,因為 ChaCha20 被認為對相關密鑰攻擊免疫。

一般來說,有(至少)三個原因將 KDF 置於 DH 共享密鑰和批量加密之間。

  1. **提高了可重用性。**如果您不使用 KDF 對共享密鑰進行後處理,則無法為每個方向為發送者和接收者提供不同的密鑰或拆分身份驗證和加密密鑰。另一個好處是,如果您保留共享的秘密,您可以通過增加一些輸入 KDF 的輔助計數器來輕鬆實現會話恢復功能。
  2. **較弱的安全性降低假設。**如果您將共享密鑰提供給 KDF,那麼您只依賴於 CDH 問題持有(並將 KDF 建模為隨機預言機)。如果將密鑰直接輸入密碼,則依賴於已知的 DDH 假設,該假設對於 CDH 持有的某些組是不正確的。
  3. **更好地匹配預期的關鍵屬性。**對稱密碼的建構、建模和分析只考慮了完全隨機的密鑰(或一些計算上無法區分的變體)。然而,DH 和 ECDH 共享秘密是整數和曲線點,其結構違反隨機性假設。快速通過 KDF 不會花費太多並解決了這個問題。

術語表: KDF:密鑰派生函式;CDH:計算 diffie-hellman 問題;DDH:決策 diffie-hellman 問題;DH:diffie-hellman;共享密鑰:DH 密鑰協商協議執行的結果;ECDH:diffie-hellman 的橢圓曲線變體

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