不使用 KDF 時的 ECDH 安全性
假設我們的設備使用固定的、未知的私鑰執行 ECDH $ \text{prv} $ .
它接受任何點作為輸入 $ Q $ 位於適當橢圓曲線的適當子群中,然後計算: $ P = \mathit{prv}*Q $ 和輸出 $ P $ .
攻擊者:
- 可以訪問 $ P $
- 可以選擇任何有效的 $ Q $ 作為輸入
- 可以多次呼叫ECDH
可以獲得有關私鑰的任何資訊 $ \mathit{prv} $ ?
如果不是,那麼為什麼通常在 x 座標上使用 KDF $ P $ ?
是否只是為了更好地分配可能的輸出(因為大約一半可能的 x 座標不是曲線上的有效點)?
注意:這裡不考慮小群/無效曲線攻擊或壞橢圓曲線。
也許恢復私鑰無濟於事,但在實際應用中,私鑰很少是感興趣的對象——相反,你的私人對話、你的錢等等,才是感興趣的對象。 散列點對於ECDH 與另一個密碼系統的組合的安全性很重要。 這既有利於下游密碼系統,也有利於對 DH 安全性的信心。
- 將均勻隨機*曲線點標準編碼為位*****串是在位串上獲得均勻分佈的不好方法——**太糟糕了,這是 Gjøsteen 在評論中公開報導的關於 Dual_EC_DRBG 的第一個問題$$ 1 $$在所有人意識到有一個後門之前。
可能是 Biryukov 和 Khovratovich 對 AES-256 的相關密鑰攻擊$$ 2 $$不適用於滿足點的編碼 $ y^2 = x^3 + a x + b $ 在您的曲線上,但是選擇更接近均勻的鍵分佈並具有更好的散列函式(如 HKDF-SHA512)更有信心 - 您不必考慮可能的互動。例如,如果您在二進製欄位上使用曲線,並且您在同一二進製欄位上使用多項式評估 MAC 的密鑰怎麼辦? 2. 使用像 SHAKE128 這樣的標準散列函式證明使用 Bellare 和 Rogaway 的標準參數將決策預言機轉換為計算預言機是合理的$$ 3 $$. 破壞系統的成本可以通過研究實現計算Diffie-Hellman反相問題的成本來研究 $ g^{x y} $ 而不是可能更容易決策**的Diffie-Hellman 問題 $ (g^x, g^y, g^{x y}) $ 從 $ (g^x, g^y, g^z) $ 對於均勻隨機 $ x, y, z $ .
也許你不相信隨機預言模型,但很難想像散列步驟——與你剛剛執行的橢圓曲線標量乘法相比,其成本可以忽略不計——可以使攻擊者的工作更容易;這個論點表明它通常會使攻擊者的工作更加困難。
例如,Cheon 的攻擊$$ 4 $$$$ 5 $$( paywall-free ) 計算秘密指數 $ x $ 給定 $ g, g^x, g^{x^2}, \dots, g^{x^d} $ 在 $ O(\sqrt{p/d} + \sqrt d) $ 組操作在哪裡 $ p $ 是順序 $ g $ 和 $ d \mid p - 1 $ , 或者 $ O(\sqrt{p/d} + d) $ 組操作如果 $ d \mid p + 1 $ . 一個神諭 $ h \mapsto h^x $ 可以用來找到這些權力 $ g $ 通過迭代它,而一個預言機 $ h \mapsto H(h^x) $ 不能。因此,散列足以減輕 Cheon 的攻擊。
因此,伯恩斯坦的 X25519 安全猜想$$ 6 $$,例如,是一個知道每個人的公鑰的對手 $ \operatorname{X25519}(n_1, 9), \operatorname{X25519}(n_2, 9), \dots $ , 並且有預言機 $ q \mapsto H(\operatorname{X25519}(n_i, q)) $ , 不能更好地一般性地破壞下游的密碼系統 $ H(\operatorname{X25519}(n_i, \operatorname{X25519}(n_j, 9))) $ 而不是支付計算的能量 $ 2^{125} $ Pollard 所需的曲線添加 $ \rho $ .