Encryption

RSA - 計算ddd給定φ(N)披(ñ)varphi (N)和ññN

  • November 10, 2019

這個討論中,我知道如果我知道 $ \varphi (N) $ 和 $ N $ (在哪裡 $ N=pq $ , $ p $ 和 $ q $ 素數),那麼我可以很容易地得到 $ p $ 和 $ q $ .

假設我有加密的消息 $ c $ . 我想得到指數 $ d $ 這樣 $ c^d \pmod N $ 是原始消息 $ m, $ 不知道 $ e. $

我知道理論上可以遍歷所有指數 $ 1 $ 至 $ \varphi (N) $ ,然後查看生成的消息是否有意義。但自從我知道 $ p $ 和 $ q $ 和 $ N $ ,我認為應該有比蠻力更好的方法。

我不知道是否要考慮因素 $ \varphi (N) $ 這比試圖考慮因素容易得多 $ N $ ? 這意味著即使不是所有數字之間 $ 1 $ 和 $ \varphi (N) $ 會有逆(因為它們不會都是相對質數 $ \varphi (N) $ ) 根據我掌握的資訊,我不會知道。

有沒有更好的方法來破解加密?

問題總結:在教科書RSA中,給出了 $ N $ , $ \phi(N) $ , 和一個密文 $ c $ . 想要明文消息 $ m $ 和一個私人指數 $ d $ .

如果 $ e $ 或者 $ m $ 是隨機的,那將是不可行的。但通常, $ e $ 很小,因此可以猜測,並且 $ m $ 是高度冗餘/可辨識的。因此我們可以嘗試計算 $$ \begin{align} d_e&=e^{-1}\bmod\phi(N)\ m_e&=c^{d_e}\bmod N \end{align} $$ 對於各種小值 $ e $ 與 $ \phi(N) $ , 看看哪個 $ m_e $ 說得通。計算一個 $ m_e $ 成本適中,與普通解密相當。

我先試試 $ e=F_i=2^{(2^i)}+1 $ 為了 $ i\in[0,4] $ (費馬素數,與 $ F_4=65537 $ 和 $ F_0=3 $ 很常見)。然後我們可以嘗試(其他)小奇數 $ e>1 $ ,包括流行的 $ 43 $ . 我也看過 $ e=2^{F_i}+1 $ ( $ i\le3 $ ),顯然是由於編碼錯誤。

如果我們發現一個候選人 $ e $ 不與 $ \phi(n) $ ,我們可以通過增加它 $ 2 $ 直到它發生,因為一些密鑰生成器就是這樣做的。

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