Discrete-Logarithm

非常短期使用的離散對數密鑰大小

  • November 12, 2016

我們有一個特殊的案例,我們的會話通常只持續不到 30 分鐘,最多不超過 1 小時,會話結束後,受保護的資訊無關緊要。每次新的會話開始,一個新的組(p,q,g,k)隨機選擇,其中p=k*q + 1,g是子組q的生成器,p,q都是大素數,k和q互質;我知道 sizeof p = 1024, sizeof q = 160 是否足夠好,但是它有點慢並且在智能手機上消耗太多電量,因為我們的會話只存在很短的時間,我想知道選擇更短的時間是否安全組大小,比如 p=512,q=160,或者更短的 p=256,q=112?

任何意見將不勝感激

如果:

  1. 您可以在會話後輕鬆解密加密資訊
  2. 您可以保證會話不會很長
  3. 您使用隨機且不可預測的安全素數 $ p $ 每屆

我認為理論上應該可以使用稍小的位長 $ p $ .

也就是說,在實踐中這可能是一個壞主意,最好像@CurveEnthusiast 提到的那樣使用ECC。生成安全的 DH 素數並非易事,從有多少實現將其搞砸來判斷。對於較小的組,為每個會話生成隨機且不可預測的安全素數絕對至關重要(否則,有人可以簡單地對組進行大量預計算,並使用該組非常非常快地破解連接 - - 見僵局)。

你的威脅模型是什麼?你的攻擊者有多少計算能力可供他使用?

作為參考,2015 年 Logjam 攻擊的作者在一周內破解了幾個 512 位組。他們估計這可以優化 3 倍,並且故意在預計算上花費更多時間。您認為國家行為者能夠以多快的速度破壞 512 位密鑰交換?不難想像,憑藉巨大的計算能力和一些非常聰明的優化,一個州級對手可以在幾個小時內完成。

簡而言之,不值得冒險。您冒著不正確地生成較弱的 DH 組的巨大風險。重用較弱的 DH 組,或者讓它們可預測,從而使自己容易受到預計算攻擊,這又是一個很大的風險。

嘗試使用 ECC 曲線,看看它們是否不能緩解您的時間/功耗問題。

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