<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shor算法 on kenji.blog</title><link>http://kenji.blog/zh-cn/tags/shor%E7%AE%97%E6%B3%95/</link><description>Recent content in Shor算法 on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 05 Sep 2026 22:09:21 +0900</lastBuildDate><atom:link href="http://kenji.blog/zh-cn/tags/shor%E7%AE%97%E6%B3%95/index.xml" rel="self" type="application/rss+xml"/><item><title>量子计算机真的会破坏RSA加密吗？——秀尔算法与当前进展</title><link>http://kenji.blog/zh-cn/p/shors-algorithm-and-rsa-breaking/</link><pubDate>Sat, 05 Sep 2026 22:09:21 +0900</pubDate><guid>http://kenji.blog/zh-cn/p/shors-algorithm-and-rsa-breaking/</guid><description>&lt;img src="http://kenji.blog/p/shors-algorithm-and-rsa-breaking/quantum_breaking_rsa_1788613722990.jpg" alt="Featured image of post 量子计算机真的会破坏RSA加密吗？——秀尔算法与当前进展" />&lt;h2 id="引言密码学技术与量子计算机的交汇点">引言：密码学技术与量子计算机的交汇点
&lt;/h2>&lt;p>在现代互联网社会中，“公钥加密”是保护通信机密的基础。其中最具代表性的，是1977年由Ron Rivest、Adi Shamir和Leonard Adleman三位学者开发的“RSA加密”。从我们每天使用的在线购物支付、网站浏览（HTTPS）到电子邮件的收发，RSA加密作为互联网基础设施的心脏发挥着作用。&lt;/p>
&lt;p>然而，随着“量子计算机”的出现，人们指出这种安全性有可能被彻底颠覆。媒体上甚至会看到“量子计算机一旦完成，世界上的密码和加密将在几秒钟内被破解”这样耸人听闻的标题。这到底是不是真的呢？&lt;/p>
&lt;p>在本文中，我们将深入探讨经典的密码破解方法GNFS（一般数域筛选法），以及使用量子计算机的密码破解算法终极武器——“秀尔算法（Shor&amp;rsquo;s Algorithm）”的原理。我们将通俗易懂地讲解量子傅里叶变换和周期寻找等高级概念，并详细验证在当前NISQ（含噪中型量子）时代的量子硬件现状，以及实际破解RSA-2048所需跨越的障碍。&lt;/p>
&lt;hr>
&lt;h2 id="rsa加密的根基大数质因数分解的困难性">RSA加密的根基：大数质因数分解的困难性
&lt;/h2>&lt;p>RSA加密的安全性依赖于数学中极其简单的非对称性。那就是这样一个事实：“将两个巨大的质数相乘很容易，但要从它们相乘的结果（合数）中找出原来的两个质数（质因数分解）却极其困难。”&lt;/p>
&lt;p>例如，假设有两个质数 $ p = 61 $、$ q = 53 $。计算它们的乘积 $ N = p \times q = 3233 $ 只需一瞬。但是，如果只给你“3233”这个数字，问你“这是哪两个质数相乘的结果？”，随着数字变大，解题的计算量会呈爆炸性增长。&lt;/p>
&lt;p>在目前主流的RSA-2048中，使用的密钥长度为2048位，即十进制下约有617位的巨大合数 $ N $。如果能将这个 $ N $ 进行质因数分解，加密就等同于被破解了。&lt;/p>
&lt;h3 id="经典计算机的挑战gnfs一般数域筛选法">经典计算机的挑战：GNFS（一般数域筛选法）
&lt;/h3>&lt;p>为了解决质因数分解问题，数学家和密码学家多年来开发了各种算法。其中，目前在经典计算机上被认为最快的是 &lt;strong>一般数域筛选法（GNFS: General Number Field Sieve）&lt;/strong>。&lt;/p>
&lt;p>GNFS为了将巨大的数 $ N $ 进行质因数分解，会将整数环中的计算扩展到更抽象的代数域（Number Field）中进行分析。其大致流程如下：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>选择多项式&lt;/strong>：寻找一个以 $ N $ 为根、具有适当次数和系数的多项式 $ f(x) $。&lt;/li>
&lt;li>&lt;strong>数据收集（筛选）&lt;/strong>：在有理数域和代数域上，大量寻找能够分解为小质数（平滑数，Smooth numbers）的数对。这个过程被称为“筛选”，是耗时最长的部分。&lt;/li>
&lt;li>&lt;strong>矩阵生成与化简&lt;/strong>：基于收集到的关系式生成一个巨大的稀疏矩阵（大部分元素为0的矩阵），并使用线性代数的方法（如块Lanczos算法）求解。&lt;/li>
&lt;li>&lt;strong>平方根计算&lt;/strong>：最后在代数域上计算平方根，推导出 $ N $ 的因数（质因数）。&lt;/li>
&lt;/ol>
&lt;p>GNFS的计算复杂度非渐进地评估为 $ O(\exp((\sqrt[3]{\frac{64}{9}} + o(1)) (\log N)^{\frac{1}{3}} (\log \log N)^{\frac{2}{3}})) $。这被称为“亚指数（Sub-exponential）”时间复杂度。虽然比指数时间快，但比多项式时间（Polynomial time）慢得多。&lt;/p>
&lt;p>实际上，在2020年，一个国际研究团队使用GNFS成功完成了RSA-250（829位，250位的合数）的质因数分解。这项计算汇集了世界各地的计算机资源，耗费了约2700个CPU核心年的庞大计算时间。然而，如果换成2048位，所需的计算量将膨胀到宇宙寿命的数兆倍。无论现在用多少台超级计算机并行运行，使用经典方法都不可能在现实时间内完成破解。&lt;/p>
&lt;hr>
&lt;h2 id="量子计算机的杀手锏秀尔算法">量子计算机的杀手锏：秀尔算法
&lt;/h2>&lt;p>在这里登场的是1994年由彼得·秀尔（Peter Shor）提出的“秀尔算法（Shor&amp;rsquo;s Algorithm）”。该算法具有划时代的意义，它能够让质因数分解问题在量子计算机上以 &lt;strong>多项式时间&lt;/strong>（ $ O((\log N)^3) $ ）被解出。亚指数时间和多项式时间之间的差距是决定性的，这在理论上意味着，如果使用量子计算机，RSA加密将被彻底破坏。&lt;/p>
&lt;h3 id="秀尔算法的整体流程">秀尔算法的整体流程
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[输入想要分解质因数的数 N] --&amp;gt; B[随机选择一个整数 a]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C{a 与 N 的&amp;lt;br&amp;gt;最大公约数}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|大于1| D[幸运地发现了质因数！]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|等于1 互质| E[量子计算机登场]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt; F[通过量子傅里叶变换求得&amp;lt;br&amp;gt;函数 f_x = a^x mod N 的周期 r]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G{周期 r 为偶数 且&amp;lt;br&amp;gt;a^r/2 ≢ -1 mod N}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|Yes| H[计算最大公约数 gcd_a^r/2 ± 1, N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I((质因数分解成功！))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|No| B
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>秀尔算法并不是直接去解质因数分解问题，而是利用数论定理将其转换为另一个称为“周期寻找问题（Period Finding Problem）”的问题，并利用量子计算机的特性来高速求解。&lt;/p>
&lt;h3 id="步骤1从质因数分解还原为周期寻找问题经典计算处理">步骤1：从质因数分解还原为周期寻找问题（经典计算处理）
&lt;/h3>&lt;p>算法的第一步在经典计算机上进行。
对于想要进行质因数分解的数 $ N $，随机选择一个与 $ N $ 互质（最大公约数为1）的整数 $ a $（ $ 1 &lt; a &lt; N $ ）。如果很偶然地最大公约数不为1，那么此时找到的公约数就是 $ N $ 的质因数，破解完成，但这种概率极低。&lt;/p>
&lt;p>接下来，考虑以下模方程序列：
$ f(x) = a^x \pmod N $&lt;/p>
&lt;p>如果将 $ x = 1, 2, 3, \dots $ 代入该函数 $ f(x) $，得到的值看起来可能是随机的，但由于是在有限范围内计算，它必然会在某个点回到原来的值，并重复相同的数列。这个重复的周期被称为 $ r $。也就是说，
寻找使得
$ a^r \equiv 1 \pmod N $
成立的最小正整数 $ r $ 的问题，这就是“周期寻找问题”。&lt;/p>
&lt;p>如果找到了这个周期 $ r $，且 $ r $ 是偶数，则 $ a^r - 1 \equiv 0 \pmod N $，利用因式分解公式可以变形为：
$ (a^{r/2} - 1)(a^{r/2} + 1) \equiv 0 \pmod N $
由此，通过使用欧几里得算法（辗转相除法）计算 $ N $ 与 $ a^{r/2} \pm 1 $ 的最大公约数，就能以极高的概率获得 $ N $ 的质因数。&lt;/p>
&lt;p>在经典计算机上寻找周期 $ r $ 最终还是需要指数级的步骤，无法实现加速。但是，如果是量子计算机，就能在瞬间（多项式时间内）找到这个周期 $ r $。&lt;/p>
&lt;h3 id="步骤2量子态的准备与叠加">步骤2：量子态的准备与叠加
&lt;/h3>&lt;p>接下来就是量子计算机的舞台了。
量子计算机使用能够同时拥有“0”和“1”状态的“量子比特（Qubit）”。在秀尔算法中，准备了两个寄存器：用于存储输入的寄存器（第一寄存器）和用于存储计算结果的寄存器（第二寄存器）。&lt;/p>
&lt;p>首先，将一种称为阿达马门（Hadamard gate）的量子逻辑门操作应用于第一寄存器的所有量子比特。借此，第一寄存器会进入所有可能的 $ x $ 值（从 $ 0 $ 到 $ 2^n-1 $，$ n $ 为足够大的比特数）的 &lt;strong>均匀叠加态&lt;/strong>。&lt;/p>
&lt;p>也就是说，在量子计算机内部，构建出了一个无数个输入值 $ x=0, 1, 2, 3, \dots $ 同时并行存在的状态。&lt;/p>
&lt;h3 id="步骤3量子模幂运算quantum-modular-exponentiation">步骤3：量子模幂运算（Quantum Modular Exponentiation）
&lt;/h3>&lt;p>接下来，以第一寄存器的叠加态作为输入，计算 $ f(x) = a^x \pmod N $，并将结果存储在第二寄存器中。
由于这种计算是作为量子电路上的幺正变换（Unitary transformation）执行的，因此在保持叠加态的同时，对所有 $ x $ 的 $ f(x) $ 计算是“同时并行地（量子并行性）”进行的。&lt;/p>
&lt;p>此时整个量子系统的空间，变成了
$ |x, a^x \bmod N\rangle $
这种状态的庞大叠加。&lt;/p>
&lt;p>但是，如果在这里简单地对第二寄存器进行测量（观测），就会按概率随机选出一个 $ a^x \bmod N $ 的值，与之联动的第一寄存器中的 $ x $ 也会确定为一个值。这就和用经典计算机计算一次是一样的，无法找到周期 $ r $。&lt;/p>
&lt;p>根据量子力学的规则，我们无法直接窥探叠加态的内容。那么，如何提取出整体“周期”这种全局信息呢？&lt;/p>
&lt;h3 id="步骤4量子傅里叶变换qft-quantum-fourier-transform">步骤4：量子傅里叶变换（QFT: Quantum Fourier Transform）
&lt;/h3>&lt;p>突破这道壁垒的秀尔算法之精髓，就在于对第一寄存器应用 &lt;strong>量子傅里叶变换（QFT）&lt;/strong>。&lt;/p>
&lt;p>在进行测量之前，分析函数 $ f(x) $ 的波的性质。假设我们观测了第二寄存器，并得到了一个值 $ y $。那么，第一寄存器的状态就会坍缩为“所有满足 $ a^x \pmod N = y $ 的 $ x $ 的叠加”。
这个 $ x $ 的值，会变成像 $ x_0, x_0 + r, x_0 + 2r, x_0 + 3r, \dots $ 这样以周期 $ r $ 为间隔离散排列的状态（一种梳状的概率幅分布）。&lt;/p>
&lt;p>对这种状态应用量子傅里叶变换（QFT）。就像经典的离散傅里叶变换将时域信号转换为频域一样，QFT会让量子态的概率幅发生干涉。&lt;/p>
&lt;p>应用QFT后，由于量子干涉效应，与周期 $ r $ 不共振（相位不一致）的错误答案的概率会相互抵消并趋近于零（破坏性干涉），而只有包含周期 $ r $ 信息的正确答案的概率才会被放大（建设性干涉）。&lt;/p>
&lt;h3 id="步骤5测量与连分数展开经典后处理">步骤5：测量与连分数展开（经典后处理）
&lt;/h3>&lt;p>在应用QFT之后测量第一寄存器，以极高的概率可以得到一个非常接近 $ c \approx \frac{j \cdot 2^n}{r} $ 这种形式的整数 $ c $（其中 $ j $ 是一个未知的整数，$ 2^n $ 是寄存器的大小）。&lt;/p>
&lt;p>将这个测量结果 $ c $ 传回经典计算机，构建分数 $ \frac{c}{2^n} \approx \frac{j}{r} $。然后，利用称为“连分数展开（Continued fraction expansion）”的数学方法计算近似值，就能巧妙地找出作为分母的周期 $ r $。&lt;/p>
&lt;p>一旦知道了 $ r $，剩下的就是使用步骤1的公式计算出 $ N $ 的质因数，RSA加密就被彻底破解了。&lt;/p>
&lt;hr>
&lt;h2 id="当前量子计算机nisq的实力与课题">当前量子计算机（NISQ）的实力与课题
&lt;/h2>&lt;p>虽然秀尔算法在理论上是完美的，但如果问“明天RSA加密就会被破解吗？”，答案明确是“否定”的。其原因在于当前量子计算机的硬件技术限制。&lt;/p>
&lt;h3 id="nisq含噪中型量子时代">NISQ（含噪中型量子）时代
&lt;/h3>&lt;p>我们目前正处于被称为“NISQ”的时代。NISQ设备拥有几十到几百个物理量子比特，但对噪声极为脆弱。&lt;/p>
&lt;p>量子比特很容易受到热量和电磁波等外部环境的影响，从而频繁发生导致量子态被破坏的“退相干（量子纠缠丧失）”或门操作时的“门错误”。如果试图运行像秀尔算法这样极其深（运算步骤庞大）的量子电路，错误会在计算过程中累积，最终的输出将变成毫无意义的完全噪声。&lt;/p>
&lt;h3 id="物理量子比特与逻辑量子比特">物理量子比特与逻辑量子比特
&lt;/h3>&lt;p>为了解决这个错误问题，“量子纠错（Quantum Error Correction）”是不可或缺的。
虽然经典计算机中也使用了纠错码，但由于存在禁止复制量子态的“不可克隆定理”，量子纠错极其复杂。&lt;/p>
&lt;p>在量子纠错中，通过使用“表面码（Surface Code）”等技术，将许多充满噪声的“物理量子比特”组合起来，从而创造出一个没有错误的理想“逻辑量子比特”。&lt;/p>
&lt;p>在当前错误率的前提下，据估算，制造1个逻辑量子比特大约需要1,000到10,000个物理量子比特。这被称为“纠错开销（Overhead）”。&lt;/p>
&lt;h3 id="破坏rsa-2048需要怎样的资源">破坏RSA-2048需要怎样的资源？
&lt;/h3>&lt;p>那么，为了实际破解RSA-2048而运行秀尔算法，需要多少资源呢？&lt;/p>
&lt;p>Craig Gidney（谷歌）和Martin Ekerå在2021年的一篇论文中进行的突破性资源估算表明，如果使用优化的秀尔算法，并使用表面码进行纠错，则需要以下资源：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>逻辑量子比特数&lt;/strong>：约 4,096 个&lt;/li>
&lt;li>&lt;strong>物理量子比特数 &lt;strong>：&lt;/strong> 约 2000万个&lt;/strong>（假设错误率在 $10^{-3}$ 左右）&lt;/li>
&lt;li>&lt;strong>计算时间&lt;/strong>：约 8小时（需要数百万到数十亿次物理门操作）&lt;/li>
&lt;/ul>
&lt;p>对此，当前量子硬件的水平达到了什么程度呢？
2023年底，IBM发布的超导量子处理器“Condor”达到了1,121个量子比特。此外，有关逻辑量子比特生成的突破性研究（如哈佛大学和QuEra公司等利用中性原子量子计算机生成了48个逻辑量子比特）也已涌现，但目前仍未达到能够长时间连续执行“无噪声完美运算”的阶段。&lt;/p>
&lt;p>从几千个物理量子比特，扩展到 &lt;strong>2000万个&lt;/strong> 实用的物理量子比特（且互相连接，在极低温下稳定工作，并能超高速处理控制信号的系统），在工程上存在着巨大的壁垒（布线问题、冷却能力限制、控制电子设备的臃肿化）。许多专家预测，能够破解RSA-2048的“容错量子计算机（FTQC）”至少需要10到30年，甚至更长的时间才能实现。&lt;/p>
&lt;hr>
&lt;h2 id="悄然逼近的store-now-decrypt-later威胁与pqc的曙光">悄然逼近的“Store Now, Decrypt Later”威胁与PQC的曙光
&lt;/h2>&lt;p>认为“既然还需要10年以上，那就安心了”还为时过早。目前，诸如国家机密信息、医疗数据以及长期的基础设施设计等，存在着必须确保未来几十年内依然保密的数据。&lt;/p>
&lt;p>在此令人担忧的，是一种被称为 &lt;strong>“Store Now, Decrypt Later（现在存储，以后解密）”&lt;/strong> 的攻击手法。恶意的国家或组织会拦截当前所有用RSA或ECC（椭圆曲线加密）加密的通信数据，并将它们保存在存储器中。然后等到10年、20年后强大的量子计算机完成的瞬间，再使用秀尔算法将过去的数据全部解密，从而暴露机密信息。&lt;/p>
&lt;p>为了对抗这种时间差带来的威胁，以NIST（美国国家标准与技术研究院）为中心，&lt;strong>“后量子密码学（PQC: Post-Quantum Cryptography）”&lt;/strong> 的标准化进程一直在加紧推进。&lt;/p>
&lt;p>PQC是基于即使使用量子计算机也很难破解（即无法应用秀尔算法）的数学问题的新型加密算法。主要的方法有以下几种：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>基于格的密码学（Lattice-based cryptography）&lt;/strong>：以LWE（容错学习）等问题为基础。在NIST标准化中占据主流（如Kyber、Dilithium等）。&lt;/li>
&lt;li>&lt;strong>基于编码的密码学（Code-based cryptography）&lt;/strong>：依赖于纠错码解码问题的困难性。&lt;/li>
&lt;li>&lt;strong>多变量密码学（Multivariate cryptography）&lt;/strong>：依赖于求解多变量非线性多项式方程组的困难性。&lt;/li>
&lt;li>&lt;strong>基于哈希的签名（Hash-based signatures）&lt;/strong>：仅依赖于哈希函数安全性的数字签名。&lt;/li>
&lt;/ul>
&lt;p>目前在Google Chrome和Apple的iMessage等主要软件和平台上，PQC的导入测试和混合实现已经启动。&lt;/p>
&lt;h2 id="结语">结语
&lt;/h2>&lt;p>量子计算机正在从科幻世界里的梦想，转变为现实的工程挑战。秀尔算法是数学与量子力学融合的人类伟大智力成果，但同时，它也暗藏着动摇我们数字社会基石的“破坏力”。&lt;/p>
&lt;p>RSA加密并不会明天立刻就变得不可用。但是，考虑到量子技术的发展以及“Store Now, Decrypt Later”的风险，向PQC过渡这一密码学史上规模空前的迁移已经开始。我们现在正在见证信息安全领域范式转移的最前线。&lt;/p></description></item><item><title>【公式完全解析】经典最强“GNFS”为何败给量子算法？因数分解的范式转变</title><link>http://kenji.blog/zh-cn/p/gnfs-to-shors-algorithm-math-deepdive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://kenji.blog/zh-cn/p/gnfs-to-shors-algorithm-math-deepdive/</guid><description>&lt;img src="http://kenji.blog/p/gnfs-to-shors-algorithm-math-deepdive/quantum_vs_gnfs_eyecatch_1788616101508.jpg" alt="Featured image of post 【公式完全解析】经典最强“GNFS”为何败给量子算法？因数分解的范式转变" />&lt;p>现代互联网社会中的信息安全，是由以RSA密码为首的公开密钥密码体制来保障的。RSA密码安全性的依据依赖于这样一个事实：&lt;strong>“对巨大的合数进行因数分解在计算上是极其困难的”&lt;/strong>。&lt;/p>
&lt;p>本文将为您剖析经典计算机中最强的因数分解算法——&lt;strong>“普通数域筛选法”&lt;/strong>（General Number Field Sieve, GNFS）的数学机制，并通过公式和概念图深入探讨它为何会被彼得·肖尔发现的 &lt;strong>“Shor算法”&lt;/strong> 彻底击败，揭示这场范式转变。&lt;/p>
&lt;hr>
&lt;h2 id="1-经典计算中的因数分解方法从费马因数分解法的发展">1. 经典计算中的因数分解方法：从费马因数分解法的发展
&lt;/h2>&lt;p>因数分解问题是指：对于给定的合数 $N$，找到素数 $p, q$ 使得 $N = p \times q$ 的问题。&lt;/p>
&lt;p>基本的思路归结为寻找满足以下同余式的非平凡的 $x, y$：&lt;/p>
$$ x^2 \equiv y^2 \pmod N $$
&lt;p>对其进行变形，得到：&lt;/p>
$$ x^2 - y^2 \equiv 0 \pmod N $$
$$ (x - y)(x + y) \equiv 0 \pmod N $$
&lt;p>在此，如果 $x \not\equiv \pm y \pmod N$，则通过计算 $\gcd(x-y, N)$ 或 $\gcd(x+y, N)$，就可以得到 $N$ 的非平凡因子。这一事实构成了包括GNFS在内的现代因数分解算法的基础。&lt;/p>
&lt;hr>
&lt;h2 id="2-经典最强算法普通数域筛选法gnfs的深渊">2. 经典最强算法：“普通数域筛选法”（GNFS）的深渊
&lt;/h2>&lt;p>&lt;strong>“GNFS”&lt;/strong> 是目前已知针对经典计算机的最快因数分解算法。其时间复杂度需要亚指数级（Sub-exponential）的时间。&lt;/p>
&lt;h3 id="gnfs的计算复杂度">GNFS的计算复杂度
&lt;/h3>&lt;p>设数字 $N$ 的位数为 $b = \log_2 N$，GNFS的计算复杂度可以表示为：&lt;/p>
$$ O\left( \exp \left( \left(\frac{64}{9} b\right)^{1/3} (\log b)^{2/3} \right) \right) $$
&lt;p>从这个公式可以看出，计算复杂度并不是多项式时间，而是比指数函数稍慢的 &lt;strong>“亚指数时间”&lt;/strong>。尽管如此，随着位数的增加，计算时间仍会呈天文数字般增长。&lt;/p>
&lt;h3 id="gnfs的数学机制">GNFS的数学机制
&lt;/h3>&lt;p>GNFS主要由四个步骤组成：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>多项式选择 (Polynomial Selection)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>筛选 (Sieving)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>矩阵化简 (Matrix Reduction)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>平方根计算 (Square Root)&lt;/strong>&lt;/li>
&lt;/ol>
&lt;h4 id="21-多项式选择与代数数域">2.1. 多项式选择与代数数域
&lt;/h4>&lt;p>首先，选择以整数为系数的不可约多项式 $f(x)$ 和 $g(x)$。它们被设定为在模 $N$ 下具有公共根 $m$。即：&lt;/p>
$$ f(m) \equiv 0 \pmod N $$
$$ g(m) \equiv 0 \pmod N $$
&lt;p>通常，$g(x)$ 被选择为一次多项式 $g(x) = x - m$。设 $f(x)$ 的根为 $\alpha$，则构造出一个名为 $\mathbb{Q}(\alpha)$ 的 &lt;strong>“代数数域”&lt;/strong>（Number Field）。通过同态映射 $\phi: \alpha \mapsto m$，比较 $\mathbb{Q}(\alpha)$ 环中的运算与普通整数环 $\mathbb{Z}$ 中的运算。&lt;/p>
&lt;h4 id="22-筛选-sieving">2.2. 筛选 (Sieving)
&lt;/h4>&lt;p>接着，寻找大量互素的整数对 $(a, b)$。目的是找到满足以下两个值分别为 &lt;strong>“B-smooth”&lt;/strong>（仅由较小素因子组成）的整数对：&lt;/p>
&lt;ol>
&lt;li>$a - bm$ （整数环上的值）&lt;/li>
&lt;li>$b^d f(a/b)$ （对应代数数域上的范数 $N(a - b\alpha)$）&lt;/li>
&lt;/ol>
&lt;p>在这里采用被称为 &lt;strong>“筛选”&lt;/strong>（Sieve）的高效搜索方法。这使得我们能够从庞大的候选集中高效提取满足条件的 $(a, b)$ 对。&lt;/p>
&lt;h4 id="23-矩阵化简-linear-algebra-over-gf2">2.3. 矩阵化简 (Linear Algebra over GF(2))
&lt;/h4>&lt;p>由收集到的整数对 $(a, b)$ 构造指数向量，并在 $\mathbb{F}_2$ （仅包含0和1的域）上求解巨大稀疏矩阵的左零空间。&lt;/p>
&lt;p>找到向量 $v$ 作为解，使得关系式 $ \prod (a_i - b_i m) $ 和 $ \prod (a_i - b_i \alpha) $ 都成为平方元。这无异于求解如下线性方程组：&lt;/p>
$$ M \mathbf{x} \equiv \mathbf{0} \pmod 2 $$
&lt;p>在这里，使用了如分块Lanczos法（Block Lanczos Algorithm）和分块Wiedemann法（Block Wiedemann Algorithm）等高级数值计算算法。&lt;/p>
&lt;h4 id="24-平方根计算">2.4. 平方根计算
&lt;/h4>&lt;p>最后，在代数数域和整数环上同时取平方根，导出 $x^2 \equiv y^2 \pmod N$ 的关系式。然后计算 $\gcd(x-y, N)$ 从而得到因子。&lt;/p>
&lt;hr>
&lt;h2 id="3-量子计算的突破shor算法">3. 量子计算的突破：“Shor算法”
&lt;/h2>&lt;p>相较于GNFS需要亚指数级时间，彼得·肖尔在1994年发表的 &lt;strong>“Shor算法”&lt;/strong>，利用量子计算机可以在 &lt;strong>“多项式时间”&lt;/strong> 内解决这一问题。&lt;/p>
&lt;h3 id="shor算法的计算复杂度">Shor算法的计算复杂度
&lt;/h3>&lt;p>假设量子比特数为 $O(\log N)$，时间复杂度如下：&lt;/p>
$$ O((\log N)^3) $$
&lt;p>这意味着它不会随比特数产生指数级的爆炸。即使是那些对于 &lt;strong>“经典计算”&lt;/strong> 而言计算量超过宇宙寿命的巨大合数，在 &lt;strong>“量子计算”&lt;/strong> 下也能在几小时到几天内破解，这是一个惊人的结果。&lt;/p>
&lt;h3 id="shor算法全貌归结为寻找周期问题">Shor算法全貌：归结为寻找周期问题
&lt;/h3>&lt;p>Shor算法巧妙地将因数分解问题归结为 &lt;strong>“寻找周期问题”&lt;/strong>。&lt;/p>
&lt;ol>
&lt;li>选取与 $N$ 互素的随机整数 $a$（$1 &lt; a &lt; N$）。&lt;/li>
&lt;li>定义函数 $f(x) = a^x \bmod N$。&lt;/li>
&lt;li>找到 $f(x)$ 的周期 $r$，即满足 $a^r \equiv 1 \pmod N$ 的最小正整数 $r$。&lt;/li>
&lt;li>如果 $r$ 为偶数，则检查 $a^{r/2} \not\equiv -1 \pmod N$ 是否成立，计算 $\gcd(a^{r/2} \pm 1, N)$ 以获得素因子。&lt;/li>
&lt;/ol>
&lt;p>这个步骤3中 &lt;strong>“周期的寻找 $r$”&lt;/strong> 正是经典计算机需要指数级时间的瓶颈，但量子计算机利用 &lt;strong>“量子叠加”&lt;/strong> 和 &lt;strong>“量子傅里叶变换”&lt;/strong>（QFT），可以瞬间解决这个问题。&lt;/p>
&lt;hr>
&lt;h2 id="4-量子傅里叶变换qft与周期提取">4. 量子傅里叶变换（QFT）与周期提取
&lt;/h2>&lt;p>让我们用公式详细看看Shor算法的核心——量子状态的操作。&lt;/p>
&lt;h3 id="41-量子叠加的生成">4.1. 量子叠加的生成
&lt;/h3>&lt;p>首先，准备两个量子寄存器。寄存器1保持输入 $x$ 的叠加态，寄存器2保持函数的计算结果 $f(x)$。对初始状态 $|0\rangle |0\rangle$ 应用阿达马变换（Hadamard Transform），创造出所有可能 $x$ 的叠加。&lt;/p>
$$ |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |0\rangle $$
&lt;p>
（其中 $Q$ 是满足 $N^2 \le Q &lt; 2N^2$ 的2的幂）&lt;/p>
&lt;p>接着，利用量子预言机 $U_f$ 计算 $f(x) = a^x \bmod N$ 并存入寄存器2。&lt;/p>
$$ |\psi_2\rangle = U_f |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |a^x \bmod N\rangle $$
&lt;p>假设现在测量了寄存器2（实际上即使不测量，数学结构也是相同的）。如果观测到某个值 $y = a^{x_0} \bmod N$，寄存器1的状态就会坍缩到所有使 $f(x) = y$ 成立的 $x$ 的叠加。设周期为 $r$，那么这样的 $x$ 将是 $x_0, x_0 + r, x_0 + 2r, \dots$。&lt;/p>
$$ |\psi_3\rangle = \frac{1}{\sqrt{M}} \sum_{k=0}^{M-1} |x_0 + kr\rangle $$
&lt;p>
（其中 $M \approx Q/r$ 是项数）&lt;/p>
&lt;p>这个状态内含了周期 $r$ 的信息，但直接测量只能得到随机的 $x_0 + kr$，无法得知周期 $r$。这时QFT便派上用场了。&lt;/p>
&lt;h3 id="42-应用量子傅里叶变换-quantum-fourier-transform">4.2. 应用量子傅里叶变换 (Quantum Fourier Transform)
&lt;/h3>&lt;p>QFT是对量子状态的振幅进行离散傅里叶变换的操作。QFT对状态 $|x\rangle$ 的作用定义如下：&lt;/p>
$$ \text{QFT} |x\rangle = \frac{1}{\sqrt{Q}} \sum_{y=0}^{Q-1} e^{2\pi i \frac{xy}{Q}} |y\rangle $$
&lt;p>将此应用于 $|\psi_3\rangle$，会发生相位干涉（量子干涉）。&lt;/p>
$$ |\psi_4\rangle = \text{QFT} |\psi_3\rangle = \frac{1}{\sqrt{MQ}} \sum_{y=0}^{Q-1} \sum_{k=0}^{M-1} e^{2\pi i \frac{(x_0 + kr)y}{Q}} |y\rangle $$
&lt;p>展开此式的和：&lt;/p>
$$ \sum_{k=0}^{M-1} e^{2\pi i \frac{kry}{Q}} $$
&lt;p>这部分便显现出来。这个等比数列的和，只有当 $ry/Q$ 接近整数时才会增强（Constructive Interference），在其他情况下则会相互抵消（Destructive Interference）。&lt;/p>
&lt;p>因此，以高概率被测量到的状态 $|y\rangle$ 将是满足以下条件的整数 $y$：&lt;/p>
$$ \frac{y}{Q} \approx \frac{c}{r} $$
&lt;p>
（$c$ 为某个整数）&lt;/p>
&lt;h3 id="43-通过连分数展开确定周期">4.3. 通过连分数展开确定周期
&lt;/h3>&lt;p>通过测量得到 $y$ 后，使用经典计算机对 $y/Q$ 进行 &lt;strong>“连分数展开”&lt;/strong>（Continued Fraction Expansion）。由此计算出 $y/Q$ 的近似分数 $c/r$，从而可以高效地从分母中提取出周期 $r$ 的候选值。&lt;/p>
&lt;hr>
&lt;h2 id="5-概念模型比较与范式转变">5. 概念模型比较与范式转变
&lt;/h2>&lt;p>为了直观理解GNFS和Shor算法的区别，下面展示使用Mermaid语法的概念图。&lt;/p>
&lt;h3 id="基于量子电路的shor算法概念图">基于量子电路的Shor算法概念图
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[初始状态: 0...0] --&amp;gt; B[阿达马变换实现全状态叠加]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C[模幂运算 a^x mod N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|量子纠缠| D[坍缩到具有周期性的状态]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> D --&amp;gt; E[量子傅里叶变换 QFT]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt;|干涉概率放大| F[测量: 得到y]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G[经典处理: 连分数展开]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt; H[找到周期 r]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I[算出N的素因子]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style A fill:#f9f,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style E fill:#bbf,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style I fill:#bfb,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="范式转变的本质">范式转变的本质
&lt;/h3>&lt;p>GNFS采取了 &lt;strong>“在数学空间（代数数域）中寻找关系式”&lt;/strong> 的方法。然而，搜索空间随位数呈指数级扩展，因此在经典计算机的计算能力（即使包含并行化）下，当密钥长度超过2048位等时，实际上是无法解密的。&lt;/p>
&lt;p>另一方面，Shor算法利用了 &lt;strong>“量子干涉的波特性”&lt;/strong>。同时评估处于叠加态的所有计算路径，通过QFT抵消（减弱）不需要的答案，仅放大（增强）作为正确答案的周期概率振幅。由此实现了非遍历空间，而是 &lt;strong>“让正确答案浮现”&lt;/strong> 的完全不同维度的途径。&lt;/p>
&lt;h2 id="6-总结">6. 总结
&lt;/h2>&lt;p>本文深入比较了经典极限巅峰的 &lt;strong>“GNFS”&lt;/strong> 和展现量子计算力量的 &lt;strong>“Shor算法”&lt;/strong>，探讨了各自的数学背景和算法结构。&lt;/p>
&lt;p>相较于GNFS倾尽多项式选择或巨大矩阵计算等数学技巧将计算复杂度降至亚指数时间，Shor算法将量子力学的基本原理——叠加与干涉与数学工具（QFT）融合，一举实现了向多项式时间的突破。&lt;/p>
&lt;p>目前，能够以实用规模（数千个量子比特）运行Shor算法的容错量子计算机（FTQC）尚不存在。然而，正是这种数学与理论范式转变的存在，构成了当今世界急切向抗量子密码（PQC: Post-Quantum Cryptography）过渡的最大理由。&lt;/p></description></item></channel></rss>