Diffie-Hellman

Diffie-Hellman 私鑰的大小應該是多少?

  • May 7, 2013

我正在實現 SRP-6 協議,它依賴於離散對數的安全性(本質上是 Diffie-Hellman)。

RFC 文件指出:

私人價值觀 $ a $ 和 $ b $ 應至少為 256 位隨機數,以針對某些計算離散對數的方法提供大約 128 位的安全性。

我似乎找不到任何關於此的資訊——它仍然是有效的建議嗎?

其原因僅僅是計算離散對數的最知名方法嗎? $ n $ -位數需要 $ 2^{n/2} $ 腳步?

嗯,是的,這通常是關於 DH 的好建議。

以下是這方面的一些背景:支持你被賦予了價值 $ g^x \bmod p $ , 你還被告知 $ 1 \le x \le A $ 為了一些價值 $ A $ . 如果是這樣,那麼有幾種已知的攻擊(例如Big Step/Little StepPollard’s Rho)可以恢復 $ x $ 大約 $ \sqrt A $ 腳步。如果我們有作為我們的安全目標,它至少應該採取 $ 2^{128} $ 步驟,然後意味著 $ \sqrt A \ge 2^{128} $ , 或者 $ A \ge 2^{256} $ ,也就是說,我們取我們的私人指數 $ x $ 是一個隨機的 256 位數字(注意:在這種情況下,即使 msbit 恰好為零,我們也將其視為 256 位數字)。

現在,我想留給您一些其他注意事項:

  • 使私有指數遠大於此沒有什麼意義。還有另一種途徑(數字場篩)也可以及時解決離散對數問題,它與指數的大小無關,而僅取決於模的大小。對於現實的模數大小,這也將是大約(或者,至少,不會顯著超過) $ O(2^{128}) $ 步驟,因此使私有指數顯著增大隻會使您的計算更加昂貴,而不會使系統在任何真正意義上更加安全。
  • 關於 SRP 的一個小問題(相對於直接 DH);該協議確實洩漏了發起者的私有指數的 LSbit(通過洩漏,我的意思是聽正在交換的消息的人可以推斷出該位值)。我不相信這有什麼大不了的(因為它只有 1 位,並且沒有其他任何內容被洩露)。如果你想學究氣,我想你可以讓發起者選擇一個 257 大的私有指數(所以仍然會有 256 個未知位)。

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