【问题标题】:Regenerating Public and Private Key based on modulus and public exponent基于模数和公共指数重新生成公钥和私钥
【发布时间】:2016-11-06 03:45:11
【问题描述】:

我才刚刚开始学习 RSA 的工作原理以及密码学的整体情况,我有一个问题。假设我只有 RSA 模数和公钥的公共指数:

n = AA18ABA43B50DEEF38598FAF87D2AB634E4571C130A9BCA7B878267414FAAB8B471BD8965F5C9FC3818485EAF529C26246F3055064A8DE19C8C338BE5496CBAEB059DC0B358143B44A35449EB264113121A455BD7FDE3FAC919E94B56FB9BB4F651CDB23EAD439D6CD523EB08191E75B35FD13A7419B3090F24787BD4F4E1967
e = 65537

我正在尝试按照本指南生成公钥和私钥:https://warrenguy.me/blog/regenerating-rsa-private-key-python

我的问题是,我怎样才能同时获得private keypublic key?因为如果你将n 转换成整数形式,你会得到:

119445732379544598056145200053932732877863846799652384989588303737527328743970559883211146487286317168142202446955508902936035124709397221178664495721428029984726868375359168203283442617134197706515425366188396513684446494070223079865755643116690165578452542158755074958452695530623055205290232290667934914919

这与指南中指定的整数位数不匹配。

编辑:

或者,有没有办法为文件生成签名?只给出ne?这是我的主要目标,尽管我得出的结论是,我可能需要私钥和公钥才能导致我提出主要问题。

非常感谢,

夜斗

【问题讨论】:

    标签: python encryption cryptography rsa


    【解决方案1】:

    在 RSA 中,公钥是 (n, e),您已经拥有了。从模数中导出私钥正是 RSA 想要做的困难的事情。这被称为factoring problem。如果这是一个计算上易于处理的问题,那么 RSA 将不是一个有用的密码系统。事实上,随着计算机变得更快并且分解算法得到改进(参见:GNFS),为了解决这个问题,推荐的 RSA 密钥的位长度变得更长。 1024 曾经被认为是今天可以接受的,而 2048 是最低推荐值。

    如果没有私钥,您将无法签名,因为签名表明拥有私钥,而您使用公钥(您以某种方式将公钥分发给需要验证签名的各方)来确认签名是真实的。这通常与 X.509 结合以提供一些身份绑定,但这不是必需的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-29
      • 2015-06-22
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 2023-03-21
      • 2014-08-16
      • 1970-01-01
      相关资源
      最近更新 更多