【问题标题】:Finding prime factors to large numbers using specially-crafted CPUs使用特制 CPU 寻找大数的质因数
【发布时间】:2009-07-30 12:28:19
【问题描述】:

我的理解是,如今许多公钥加密算法都依赖于大素数来组成密钥,而难以分解两个素数的乘积使得加密难以破解。我的理解也是,分解如此大的数字如此困难的原因之一是,所使用的数字的绝对大小意味着没有 CPU 可以有效地处理这些数字,因为我们的微型 32 位和 64 位 CPU 是不匹配的对于 1024、2048 甚至 4096 位数。必须使用专门的 Big Integer 数学库来处理这些数字,而这些库本身就很慢,因为 CPU 一次只能保存(和处理)小块(如 32 位或 64 位)。

所以...

您为什么不能构建一个具有 2048 位寄存器和巨大算术电路的高度专业化的定制芯片,就像我们将 CPU 从 8 位扩展到 16 位到 32 位到 64 位一样,只需构建一个更大的芯片?该芯片不需要传统 CPU 上的大部分电路,毕竟它不需要处理虚拟内存、多线程或 I/O 之类的事情。它甚至不需要是支持存储指令的通用处理器。只是对巨大数字执行必要的算术计算的最低要求。

我对 IC 设计知之甚少,但我记得学习过逻辑门的工作原理,如何构建半加器、全加器,然后将一堆加法器连接在一起进行多位运算。只是放大。很多。

现在,我相当肯定有一个很好的理由(或 17 个)上述方法行不通(否则,比我聪明的许多人中的一个已经这样做了)但我很感兴趣知道为什么它不起作用。

(注意:这个问题可能需要重新处理,因为我什至不确定这个问题是否有意义)

【问题讨论】:

  • 为什么有人投票结束这个问题?
  • stackoverflow.com/faq 查看“我不应该在这里问什么样的问题?”
  • 对不起,我认为 stackoverflow 开始时有一个很好的计划,就像专家交流一样,但更好,但它已经进化了,它需要成长。应该允许此类元讨论。几乎没有编程“讨论板”来以开放式的方式讨论编程话题。我个人认为 SO 需要与它的用户一起发展,并且版主需要停止像 wikipedia 上的纳粹一样。顺便说一句,你怎么能看到投票结束的元数据,还是只有问题作者才能看到?

标签: theory cpu-architecture bignum prime-factoring digital-design


【解决方案1】:

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

几乎可以肯定,让一堆“传统”32 位或 64 位系统并行工作会更好:您可以在不考虑硬件设计复杂性的情况下获得加速。

编辑:如果有人拥有 ACM 访问权限(我没有),不妨看看 this paper 看看它说了什么。

【讨论】:

    【解决方案2】:

    这是因为这种加速只会在 O(n) 中,但因数分解的复杂性类似于 O(2^n)(相对于位数)。因此,如果您制作这个超级处理器并将数字因式分解的速度提高 1000 倍,我只需将数字增大 10 位,我们就可以重新开始。

    【讨论】:

    • 其实因式分解的复杂度并不是指数级的(O(2^n));有次指数算法。但它仍然很慢。请参阅en.wikipedia.org/wiki/… 了解所有血腥数学:-)。
    【解决方案3】:

    如上所述,主要问题只是您必须通过多少种可能性来分解一个数字。话虽如此,确实存在专门的计算机来做这种事情。

    这种密码学的真正进步是数分解算法的改进。目前,已知最快的通用算法是general number field sieve

    从历史上看,我们似乎能够每十年对两倍大的数字进行因式分解。部分原因是更快的硬件,部分原因只是更好地理解数学以及如何执行因式分解。

    【讨论】:

      【解决方案4】:

      我无法评论与您描述的完全一样的方法的可行性,但人们使用 FPGA 经常做类似的事情:

      【讨论】:

        【解决方案5】:

        Shamir & Tromer 提出类似的方法,使用一种grid computing

        本文讨论了定制硬件的新设计 筛分步骤的实施,其中 将 [相对于 TWINKLE 的筛分成本] 降低到大约 1000 万美元。新设备, 称为 TWIRL,可以看作是 闪烁装置。但是,与 TWINKLE 不同的是 没有光电元件,可以 因此使用标准 VLSI 技术制造 在硅片上。基本思想是使用 输入的单个副本以解决许多子问题 在平行下。由于输入存储支配成本,如果 并行化开销保持较低,然后产生 加速基本上是免费获得的。的确, 主要挑战在于有效地实现这种并行性,同时允许输入的紧凑存储。 解决这个问题涉及无数的考虑,范围 从数论到 VLSI 技术。

        【讨论】:

          【解决方案6】:

          您为什么不尝试构建一个超级量子计算机并在其上运行Shor's algorithm

          "... 如果要构建具有足够数量的量子比特的量子计算机,Shor 算法可用于破解公钥加密方案,例如广泛使用的 RSA 方案。 RSA是基于对大数进行因式分解在计算上不可行的假设。据我们所知,这个假设对经典(非量子)计算机是有效的;没有已知的经典算法可以考虑多项式时间。但是,Shor 的算法表明因式分解在量子计算机上是有效的,因此足够大的量子计算机可以破解 RSA。..." -Wikipedia

          【讨论】:

            猜你喜欢
            • 2020-07-29
            • 2018-03-31
            • 1970-01-01
            • 1970-01-01
            • 2019-04-26
            • 1970-01-01
            • 2023-01-13
            • 1970-01-01
            • 2019-06-12
            相关资源
            最近更新 更多