Rsa

RSA:如果攻擊者知道 P 和 Q 值的長度,是否會帶來安全風險?

  • December 9, 2021

如果攻擊者知道在 RSA 加密算法中為參數 N 推導值時使用的 P 和 Q 值的長度,這是否是一種安全風險 - 或者可能有多大的安全風險?

我一直在閱讀 RSA 的實現,我發現有些要求 P 和 Q 的長度相同,而另一些則要求 P 或 Q 的最小長度 - 所以考慮到這一點,可能值得詢問是否有是使用 RSA 時 P 或 Q 必須的最小長度(在實踐中)?

在整個過程中,這根本不是安全風險 $ P $ 和 $ Q $ 要知道。事實上,長度 $ P $ 和 $ Q $ 通常是已知的,因為大多數標準要求 $ P $ 和 $ Q $ 具有相同的長度和公共模數 $ N = P \cdot Q $ 長度加倍(不包括 $ P $ 和 $ Q $ 兩者都是 $ n $ - 乘積介於兩者之間的位數 $ 2^{2n-2} $ 和 $ 2^{2n-1} $ ).

所以如果你知道 $ 2^{2n-1} < N < 2^{2n} $ 並且密鑰是由典型實現生成的,然後 $ 2^{n-1} < P < 2^n $ 和 $ 2^{n-1} < Q < 2^n $ . 事實上,有些實現甚至強制素數的前兩位為 1,即 $ 3 \cdot 2^{n-2} < P,Q < 2^n $ ,這保證了 $ N \ge 2^{2n-1} $ 並且不會顯著減少私鑰空間。

RSA 密鑰只能與最小的素數一樣強,因此素數具有不同的大小實際上沒有意義。質數大於其他質數會使計算變慢而不會提高安全性。

您可以在keylength.com上看到一些權威機構推薦的 RSA(“因式分解”)的最小密鑰長度。除以二得到兩個素數的大小。

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