2016-11-06 84 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结合提供一些身份绑定,但它不是必需的。