Encryption

為什麼ppp和qqq必須在 RSA 中有所不同?

  • November 14, 2017

使用 RSA 加密時,解密消息和初始消息可能相同 $ p $ 和 $ q $ 是相同的。那麼為什麼它們總是不同的呢?

因為保理 $ n $ 在哪裡 $ n=pq $ 和 $ p=q $ 真的,真的很容易,取平方根。如果你可以考慮 $ n $ , 你可以破解 RSA。因此,有 $ p=q $ 不利於 RSA 的安全性。

RSA 的工作時間 $ \operatorname{GCD}(e,\varphi(N))=1 $ , 在某種意義上說 $ (m^e)^d \equiv m \pmod N $ . 即使部分或全部因素 $ n $ 相同或 $ N $ 是素數。

但是如果攻擊者知道你選擇了 $ N=p^2 $ , 他們可以簡單地考慮 $ N $ 通過計算平方根。所以選擇不安全 $ N $ 像那樣。


但是請注意,您需要調整歐拉函式的計算 $ \varphi(N) $ 如果有重複的因素:

$ \varphi(p_1^{k_1} \cdot … \cdot p_n^{k_n})=\prod\limits_{i=0}^n p_i^{k_i-1} (p_i-1) $ 在哪裡 $ p_i $ 是不同的主要因素 $ N $

在哪種情況下 $ N=p^2 $ 解決了 $ p(p-1) $ 並不是 $ (p-1)^2 $ . 所以如果你錯誤地計算 $ d $ 使用 $ e\cdot d \equiv 1 \pmod {(p-1)^2} $ 代替 $ \pmod{p(p-1)} $ 它行不通。


你的練習要求你證明 $ e\cdot d \equiv 1 \pmod {(p-1)^2} $ 正確解密時 $ n=p^2 $ . 然後它聲稱:

(這說明了為什麼 RSA 需要不同的素數)

但是這種失敗只是由於計算不正確 $ \varphi $ 而不是因為 RSA 需要不同的素數。


許多 RSA 實現和標準僅支持以下常見情況: $ N $ 是兩個不同素數的乘積,因此當被要求對此類不尋常的選擇進行操作時,可能會出現異常行為 $ N $ (影響解密和密鑰生成等私鑰操作,而不影響加密等公鑰操作)。

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