Dsa

DSA 給定參數的安全級別

  • June 16, 2022

所以我試圖比較不同的數字簽名,因此我偶然發現了一個 DSA 算法。我正在使用 python 的密碼庫,它為 L 和 N 提供以下值:

  • L=1024,N=160
  • L=2048,N=256
  • L=3072,N=256
  • L=4096,N=256

我想知道這些對的安全級別是多少。我從 NIST 出版物中找到了這張表,但它並沒有真正涵蓋它們。

在此處輸入圖像描述

正如對為什麼我們在 DSA 中使用 1024 / 160 位素數的回答中所述?,DSA 的安全需要擔心兩種攻擊(這兩種攻擊都不應該被描述為因式分解)。

存在依賴於的通用數域篩 (GNFS) 索引演算攻擊 $ L $ . 準確計算 GNFS 攻擊的難度並不容易描述,但可以在上面引用的表格中查找。唯一缺失的值是 $ L=4096 $ 其中(根據keylength.com上的 RFC 3766 方法,安全性約為 142 位。

另一種攻擊是使用類似於波拉德袋鼠的方法,這將需要大約 $ 2^{N/2} $ 的乘法 $ L $ 位數。然後大多數人會將其描述為 $ N/2 $ -每張桌子的安全性。

總體安全性充其量是這兩個值中的最小值。我們現在看到 python 選項在某些情況下提供了不匹配的安全級別,這不是非法的,但可能效率低下。然後為每對提供的整體安全性是

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