我可以假设 64 位数字是两个 32 位数字的乘积吗?

问题描述 投票:0回答:1

我正在尝试制作一个强力程序来猜测和检查数字,直到找到两个未知的素数乘以一个已知的数字。但是,当已知数字为 64 位长时,从 3x5、3x7 等开始效率很低,因此我创建了这个公式来查找我应该开始的两个数字。这里

m
是已知的乘积,为了得到这两个数字,我首先在末尾加一或减一。这个想法是使用 log2 并向上舍入来查找乘积使用的位数,然后除以二并减一以查找倍数使用的位数。
这个公式对吗?
我可以假设 64 位数字是两个 32 位素数的倍数吗?
或者这样假设不好吗?

为了避免在处理 64 位数字时必须从 2x3、2x5、2x7、2x11 开始,我尝试制定一个公式来找出可以从哪些数字开始。我想出了这个公式
在这里,我找到乘积 (m) 使用的位数(log2(m) 四舍五入),将其除以二并减一,得到我认为的两个质因数可以使用的最小位数。然后我在最后加或减一来找到我开始的两个数字。但现在我有疑问,因为如果大素数只是 2x[巨大素数]呢?

security math rsa mathematical-optimization
1个回答
0
投票

我假设你的意思是“64位数字”是设置了位63的东西,也许位63没有设置但位62设置了;在 64 位安全性的背景下,我同意您的观点。同样,您可能指的是“32 位数字”,其位设置在 31 或 30 左右。

简而言之,即使有这样的假设,答案也是“否”。

因为产品可能是不对称的,例如“34 位数字”x“30 位数字”,36x28。 据我所知,安全方法通常会有意避开接近乘积平方根的任何内容。虽然没有达到 60x4。

© www.soinside.com 2019 - 2024. All rights reserved.