2013-05-13 28 views
-2

我已經獲得了一個帶有(e,n)加密數據的公鑰,並且必須通過RSA獲取平面文本,並且所有都在C中! 首先我不會知道如何找出我的p和q是什麼?我知道他們必須是素數,並且p <> q!RSA算法 - 已知n如何獲得p&q

請幫忙!

ciao

+2

據信難以獲得p和q從n開始,並且沒有公開的方式來爲一般的大n做可行的計算機時間。 RSA算法的安全性取決於此。 – 2013-05-14 00:22:42

+0

是的,埃裏克我知道!但我的e是17和n 3233,所以不是那麼大!我必須計算d,私鑰。 d = e ^( - 1)mod(p-1)(q-1)任何想法如何得到d?請用c寫成? – 2013-05-14 18:00:35

回答

2

首先,因子n。這並不難;因爲sqrt(3233)是56.8 ...,所以你只需要測試素數就可以了。那會給你p和q。用這些來計算(p-1)•(q-1)。

然後使用Extended Eudlidean Algorithm找到17的模(p-1)•(q-1)的乘法逆。你不需要C代碼;我是親手做的。 (該算法給出了否定的結果,您可以將其用於d或者添加(p-1)•(q-1)以給出正值,這也可以起作用。)

相關問題