使用特制的CPU查找大数的主要因素

Ada*_*kin 8 theory cpu-architecture bignum digital-design prime-factoring

我的理解是,目前许多公钥加密算法都依赖于大质数来构成密钥,并且难以将两个素数的乘积分解,使加密难以破解.我的理解是,将如此大的数字分解的原因之一是,使用数字的绝对大小意味着没有CPU可以有效地操作数字,因为我们的32位和64位CPU都不匹配对于1024,2048甚至4096位数.必须使用专门的Big Integer数学库来处理这些数字,并且这些库本质上很慢,因为CPU一次只能保存(和处理)小块(如32或64位).

所以...

为什么你不能用2048位寄存器和巨大的运算电路构建一个高度专业化的定制芯片,就像我们从8到16到32到64位CPU的缩放一样,只需构建一个更大的?该芯片不需要传统CPU上的大部分电路,毕竟它不需要处理虚拟内存,多线程或I/O等内容.它甚至不需要是支持存储指令的通用处理器.只是在最大数量上执行必要的算术计算的最低限度.

我不太了解IC设计,但我确实记得了解逻辑门如何工作,如何构建半加器,全加器,然后将一堆加法器链接在一起进行多位算术.只是扩大规模.很多.

现在,我很确定有一个非常好的理由(或者17)以上内容不起作用(因为否则会比我更聪明的人中的一个人已经做过了)但我有兴趣知道为什么它不会起作用.

(注意:这个问题可能需要一些重新工作,因为我甚至不确定这个问题是否有意义)

Jas*_*n S 3

@cube 所说的,以及一个巨大的算术逻辑单元需要更多时间来稳定逻辑信号的事实,并包括数字设计中的其他复杂性。数字逻辑设计包括您在软件中认为理所当然的东西,即通过组合逻辑的信号需要很短但非零的时间来传播和稳定。32x32 乘法器需要仔细设计。1024x1024 乘法器不仅会占用芯片中的大量物理资源,而且还会比 32x32 乘法器慢(尽管可能比计算执行 1024x1024 乘法所需的所有部分乘积的 32x32 乘法器更快)。另外,瓶颈不仅仅是乘数:你还有记忆路径。您必须花费大量时间从只有 32 位宽的存储电路中收集 1024 位,并将所得的 2048 位存储回存储电路中。

几乎可以肯定的是,让一堆“传统”32 位或 64 位系统并行工作会更好:无需硬件设计复杂性即可获得加速。

编辑:如果有人有 ACM 访问权限(我没有),也许可以看看这篇论文,看看它说了什么。