Rsa

在 RSA 中,e 和 d 在技術上是等效的嗎?

  • September 15, 2022

在尋找 RSA 密鑰對的過程中,我們首先找到與φ(n)互質的e(其中n = p × q),然後找到滿足e × d mod φ(n) = 1的 d 。d也與φ(n) 互質,還是不一定?

在實踐中,e通常選擇為3或65537,但是如果我們選擇e足夠大,ed可以互換使用嗎?

在尋找 RSA 密鑰對的過程中,我們首先找到一個 $ e $ 這是相對質數 $ \varphi(n) $ (在哪裡 $ n = p \times q $ ),然後找到 $ d $ 這樣 $ e \times d \bmod \varphi(n) = 1 $ .

我會將此作為假設†,另外還有 $ p $ 和 $ q $ 不同‡,大,隨機,獨立選擇,當然還有秘密素數。

是 $ d $ 也比較素 $ \varphi(n) $ ,或者不一定?

必然。這從 $ e \times d \bmod \varphi(n) = 1 $ .

如果我們選擇 $ e $ 是一個足夠大的數字,可以 $ e $ 和 $ d $ 可以互換使用嗎?

TL;DR:不要這樣做

完整版:是的,但如果我們希望 RSA 僅在滿足以下所有條件時才安全:

  • 那個足夠大的數字確實是。少於 $ n^{0.292} $ 已知太小(見此。攻擊只會變得更好,因此它似乎是可取的 $ e>2^{\left\lceil\log_2(\max(p,q))\right\rceil} $ ; 我不知道有足夠的證據。
  • 的選擇 $ e $ (現在用作私人指數)是隨機的,特別是 $ e $ 不是根據選擇 $ \varphi(n) $ , $ p $ , 或者 $ q $ ,除了確保 $ e $ 相對質數 $ \varphi(n) $ , 或兩者 $ p-1 $ 和 $ q-1 $ ; 也許 $ e<p\cdot q $ 或者那個曲子上的東西。
  • 而且當然, $ e $ (現在用作私人指數)仍然保密。

此外,在實踐中,如果以下所有條件都適用:

  • 在使用密鑰時,沒有任何東西對公共指數強制執行較小的最大值(現在 $ d $ ,這將很大)。通常有這樣的限制,例如 $ <2^{32} $ 在一些古老的 Windows 加密 API 中,或 $ <2^{256} $ ( FIPS 186-4 )。這麼小的限制使得交換 $ d $ 和 $ e $ 與安全不兼容。
  • 設置了一個上限 $ e $ (現在用作私有指數)與使用的庫/設備兼容,通常強制執行限制 $ <n $ ( PKCS#1 ),有時 $ <\varphi(n) $ , 或者 $ <\lambda(n) $ 和 $ \lambda(n)=\operatorname{lcm}(p-1,q-1) $ ( FIPS 186-4 )。
  • 我們不關心加密和簽名驗證性能:因為公共指數(現在 $ d $ ) 將很大,教科書 RSA 公鑰操作的成本將從 $ 17 $ 通常的模乘法 $ e=65537 $ , 為 $ 1.5 $ 時間的位長度 $ n $ . 對於 2048 位,這可能要慢一百多倍 $ n $ . 現在使用 RSA 的兩個最常見的原因是與 ECC 相比,RSA 簽名驗證的速度和簡單性;但交換 $ e $ 和 $ d $ 將明顯的速度優勢轉變為明顯的速度劣勢。

† 實際使用 RSA 的常見做法是先選擇一個小的奇數 $ e\ge3 $ , 經常是素數, 經常 $ e=2^{(2^4)}+1=65537 $ ,然後生成隨機素數 $ p $ 和 $ q $ 和 $ \gcd(p-1,e)=1 $ 和 $ \gcd(q-1,e)=1 $ ; 然後,當需要計算時 $ d $ (僅以可互操作的方式導出/儲存私鑰必不可少),現代趨勢(和/由於FIPS 186-4中的要求)是使用 $ d=e^{-1}\bmod\lambda(n) $ , 在哪裡 $ \lambda(n)=\operatorname{lcm}(p-1,q-1) $ .

‡ $ p\ne q $ 數學上需要使 $ x\mapsto x^e\bmod n $ 的排列 $ [0,n) $ , 並且有 $ \varphi(n)=(p-1)\times(q-1) $ , 並使 $ n $ 很難考慮。在實踐中, $ p $ 和 $ q $ 大、隨機和獨立選擇幾乎肯定意味著 $ p\ne q $ .

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