我有一个 615 位数字的号码。在整个过程中,有 8 个地方缺少数字。我必须找出数字是什么。有 10^8 种可能性。
这是针对 RSA 问题的。有问题的数字是私钥,我试图找出它是什么。为了帮助我,我有公钥对 (n, e),两者都是 615 位长,还有一个明文和相应的密文。
所以找出 d 的唯一方法是暴力破解它。我正在尝试在 python 中使用 gmpy2 来解决这个问题。我不得不跳过很多圈才能让它工作。我什至不知道我是否正确地做到了。我必须下载 Python2.7,这样我才能运行 gmpy2 安装程序,以免收到错误消息。但我认为它现在有效,因为我可以输入
>>>import gmpy2
在终端中,它不会给我一个错误。
在我尝试遍历 10^8 种可能性之前,考虑到我的情况,我想知道是否有可能在相对较短的时间内这样做。我不想炸我的电脑或冻结它试图计算这个。我还想知道我是否为此使用了正确的工具,或者 gmpy2 不是正确的版本,或者 Python2.7 不够好/不够快。我在笔记本电脑上的 Python2.7 上运行 gmpy2。
最后,我想我想得到所有 10^8 个答案并提出 C^d = M mod n。所以这是一个(已经)很大的数字,是 615 位数字的幂,10 ^ 8 次。这可能吗?如果是,我怎样才能使用 gmpy2 做到这一点?有没有更有效的方法来计算这个?
如果这不是问这个问题的正确地方,我真诚地道歉。感谢您的任何帮助。