2016-11-06 149 views
0

我剛開始學習RSA的工作原理和整體密碼學方面的知識,並且我有一個問題。比方說,我只有RSA模量和公共密鑰的公共指數:基於模數和公開指數重新生成公鑰和私鑰

n = AA18ABA43B50DEEF38598FAF87D2AB634E4571C130A9BCA7B878267414FAAB8B471BD8965F5C9FC3818485EAF529C26246F3055064A8DE19C8C338BE5496CBAEB059DC0B358143B44A35449EB264113121A455BD7FDE3FAC919E94B56FB9BB4F651CDB23EAD439D6CD523EB08191E75B35FD13A7419B3090F24787BD4F4E1967 
e = 65537 

,我試圖按照本指南生成公鑰和私鑰:https://warrenguy.me/blog/regenerating-rsa-private-key-python

我的問題是,如何能我從字面上得到private keypublic key?因爲如果你轉換n其整數形式,您可以:

119445732379544598056145200053932732877863846799652384989588303737527328743970559883211146487286317168142202446955508902936035124709397221178664495721428029984726868375359168203283442617134197706515425366188396513684446494070223079865755643116690165578452542158755074958452695530623055205290232290667934914919 

而作爲指南中指定了不匹配的整數位大小。

編輯:

或者,是否有什麼方法來生成文件的簽名?只給出ne?這是我的主要目標,儘管我的結論是我可能需要沿着通向我的主要問題的私鑰和公鑰。

非常感謝你,

YATO

回答

2

在RSA公鑰是(n, e),你已經有了。從模數中獲得私鑰是RSA想要的難點。這被稱爲factoring problem。如果這在計算上是一個易處理的問題,那麼RSA就不是一個有用的密碼系統。實際上,隨着計算機速度的提高以及保理算法的改進(請參閱:GNFS),RSA密鑰的推薦位長度已經變得更長了以解決這個問題。凡在今天1024被認爲可以接受的地方2048是最低的建議。

您不能簽署私鑰,因爲想法是簽名證明擁有私鑰並且使用公鑰(您以某種方式將其分發給需要驗證簽名的各方)確認簽名是真實的。通常這與X.509結合提供一些身份綁定,但它不是必需的。