Shor 算法(Shor’s Algorithm)由 Peter Shor 于 1994 年提出,是量子计算领域最具里程碑意义的算法之一。它证明了量子计算机能够在多项式时间内完成整数因数分解——而这个问题对经典计算机而言,在大数情况下仍是计算瓶颈,也正是 RSA 加密体系安全性的根基。

问题背景:为什么因数分解很重要

RSA 加密的核心假设是:给定两个大素数 ,计算 很容易,但从 反推出 极其困难。目前最好的经典算法(数域筛法,Number Field Sieve)的时间复杂度约为:

这是亚指数级的:它远慢于任何多项式,又远快于指数级的暴力搜索。即便如此,对于 2048 位的 RSA 模数,经典计算机仍需要天文数字般的运算量。

而 Shor 算法的时间复杂度为 ——多项式级,理论上可在数小时内分解 2048 位整数。

Shor 算法的核心思想

Shor 算法将因数分解问题归约为求阶问题(order-finding problem):给定整数 (待分解)和随机选取的 ,且 ),求最小正整数 使得 。这个 称为 的阶(multiplicative order)。

一旦求得 :若 为偶数且 ,则 立即给出 的非平凡因子(引理 1 及其证明见下文);对随机选取的 ,这两个条件以至少 的概率同时满足(证明见下文”失败概率分析”)。

量子部分的任务就是高效求阶,其结构是”相位估计 + 连分数”:量子傅里叶变换把周期 转化为测量值 ,使得 是某个分母为 的分数 的近似;再用经典的连分数(continued fraction)展开从这一近似中恢复出

算法步骤

第一步:经典预处理

  1. 随机选取
  2. 计算 ,若大于 1 则直接得到因子,算法结束

第二步:量子求阶(核心)

这是量子计算机发挥作用的步骤。构造两个量子寄存器:

  • 寄存器 1量子比特,用于存储 叠加态;以下记 ,注意
  • 寄存器 2 个量子比特,用于存储 的结果

操作流程:

  1. 初始化寄存器 1 为等权叠加态:

  2. 计算模幂运算 (可用模幂电路高效实现)

  3. 对寄存器 2 进行测量,得到某个值 ,寄存器 1 坍缩为所有满足 的等权叠加,即

  4. 对寄存器 1 施加量子傅里叶变换(Quantum Fourier Transform, QFT):

  5. 测量寄存器 1,以高概率得到接近 的整数倍的值

  6. 用连分数展开从测量结果 中提取候选分母,并逐一验证 是否等于 1,取通过验证的最小候选作为 ;若所有候选都失败,重跑本步骤

第三步:经典后处理

  1. 为奇数,回到第一步重新选
  2. 计算 ,若 ,回到第一步
  3. 计算 ,得到非平凡因子

理论推导

以下给出算法正确性的完整数学证明。

从周期到因子:为什么求阶能分解 N

引理 1:设 为奇合数, 的阶。若 为偶数且 ,则 都是 的非平凡因子(即严格介于 之间)。

证明分四步。

第一步: 整除两个因子的乘积。由阶的定义 ,即 为偶数,故 是正整数,可对 用平方差公式:

因此

第二步:两个因子几乎互素。它们的差为 2,而两个整数的公因数必整除其差,故

为偶数则可直接被 2 整除,无需 Shor 算法,故我们只需考虑奇数 的每个素因子 都是奇数,不整除 2,因此 不能同时整除

第三步:素因子被划分到两侧。考虑 的任一素幂因子 奇素数)。由第一步 ;由第二步 只整除其中一个因子,于是 的全部幂次只能落在同一个因子里。把 的所有素幂按此划分,记

第四步:两个因子都是非平凡的。 当且仅当 ,即 。这不可能发生: 是使 成立的最小正整数,而 ,若 则与 的最小性矛盾。 当且仅当 ,已被引理的条件排除。于是 ;又由 知两者都不能是 1(若 ,矛盾; 同理)。故两者都是 的非平凡因子。∎

具体验证(以 为例):

  • 的素因子 被分别”捕获”

失败概率分析。算法失败有两种情况: 为奇数,或 。我们以 (两个不同奇素数)为例把两种情况的概率都算出来;更一般的奇合数可用同样的计数方法处理。

预备计数:记 为整数 所含素因子 2 的个数(即 奇数)。设 为奇数)。 阶循环群,其中阶整除 的元素恰有 个。因此, 的阶 满足 )的比例为 (阶为奇数)的比例为 。由中国剩余定理(Chinese Remainder Theorem, CRT), 均匀当且仅当 独立均匀;且 当且仅当模 、模 同时为 1,故 ,其中 的阶。

情况一( 为奇数): 为奇数当且仅当 都是奇数,概率为

情况二():设 为偶数。,而在域 的平方根只有 ,故 同理。于是签号组合 有四种可能:

  • :意味着 ,与 的最小性矛盾,不可能发生(由 ,至少一侧达到最大值,也可看出 不可能模两个素数同时为 );
  • :即 ,算法失败;
  • :此时 整除其中一个因子、 整除另一个, 恰为 ,算法成功。

何时发生? 等价于 ,即 (奇部自动相容,因为 );模 同理。两侧同时为 等价于 对某个 成立,其概率为

(等比数列求和:公比为 4。)

把两种失败情况相加,总失败概率为

其中用到 。等号在 (即 )时取到,此时两种失败各占 。结论:单次随机选取 的成功概率至少为 ,重复 次后失败概率降至

全量枚举验证( 共 7 个):

结果
244
424
744
844
11211
1344
14214失败(

7 个中有 6 个成功,比例 ,与理论一致。

QFT 提取周期的数学原理

测量寄存器 2 得到 后,寄存器 1 坍缩为所有满足 的等权叠加态。设最小的解为 ,则解集为 中不超过 的那些,于是

(项数 的由来:要求 ,即 ,故 的最大值为 ,共 项。)

施加 QFT。第 个分量的振幅为

内层是公比为 )、共 项的几何级数。用等比求和公式并提取公因子的相位,可得其模长为

接近整数时各项几乎同相,级数模长接近 ,发生相长干涉;当 接近半整数时各项几乎两两反相,级数模长接近 0,发生相消干涉。定量地,利用不等式 )与 :当 时,

即模长至少是最大值的 倍。

现在确定峰的位置。对每个 ,取 为最接近 的整数,则 ,于是

(最后一步是因为 ;由于 ,边界效应可忽略。)因此峰处的振幅满足 ,测量概率

个峰合计的总概率约为 ,这就是单次量子运行”落在好峰上”的概率下限。

关键在于峰的位置编码了 :由 两边除以

(用到 的阶整除群阶 。)换言之,测量值 是某个以 为分母的有理数 的近似,且近似精度好到 以内。问题于是转化为:从一个有理数的高精度近似值恢复其分母——这正是连分数的经典用武之地。

连分数算法:从测量值中提取 r

连分数展开(continued fraction)是将有理数表示为嵌套分数的标准工具。对任意正有理数 ,其连分数展开为:

记作 ,其中 为正整数( 可为 0)。逐级截断得到的分数 称为渐近分数(convergent)。

展开算法是欧几里得辗转相除法的直接改写:,对余数 重复同样操作,直到余数为 0。整个过程在 时间内完成。

为什么连分数能恢复 (Legendre 定理):若分数 (既约)满足 ,则 必为 的某个渐近分数。把上一节的结果代入: 的偏差小于 ;将 化为既约分数 整除 ),偏差进一步小于 。于是 必然出现在 的渐近分数序列中。

恢复流程:对测量值 做连分数展开,列出分母不超过 的所有渐近分数分母 作为候选。由于 ,候选中若有某个 使 (用快速模幂验证,代价多项式),它就是阶的一个因子。完整的后处理为:

  1. 若某候选 满足 :取其中最小者,它就是 (阶是最小的这样的正指数);
  2. 若候选 都不满足(这发生在 、既约分母 时):依次尝试 的 2 倍、3 倍等小倍数并验证,因为 的小倍数;
  3. 若仍失败或测得 (对应 ,不含信息):重跑量子部分。多次运行取候选的最小公倍数也是常用策略。

计算实例;此时 ,四个峰 均为整数,每个以概率 测得):

  • 测得 :做辗转相除 ,故 ,渐近分数依次为 。候选分母 中验证:,候选 1 不通过; ✓,故 ,提取成功(此时 )。
  • 测得 ,渐近分数为 ,同样得到候选 ,验证通过(此时 )。
  • 测得 ,渐近分数为 ,候选 。但 ,验证失败;改试倍数 ✓,故 。(这里 有公因子 2,既约分母 ,正是上述第 2 种情形。)
  • 测得 :对应 ,不含信息,重跑。

量子电路结构

![Shor 算法量子电路](../assets/circuits/s

为例:把 按二进制分解 ,模幂 就分解为一系列受控模乘,第 个受控门在控制比特为 1 时对目标寄存器执行 。所需的乘数依次为 ——第三个受控门退化为恒等操作,因为 整除 。这正体现了周期结构:一旦指数超过周期,乘数就开始循环。

具体例子:分解 N = 15

  1. 随机选
  2. 量子求阶:
  3. 为偶数,
  4. 计算
  5. 计算
  6. 得到:

复杂度分析

步骤复杂度
模幂运算(量子) 量子门
量子傅里叶变换 量子门
经典连分数展开
总体

对比经典最优算法的亚指数复杂度,这是指数级加速。

当前进展与局限

已实现的里程碑:

  • 2001 年,IBM 在 7 量子比特的量子计算机上用 Shor 算法分解了 15
  • 2019 年,Google 实现了 53 量子比特的量子优越性(Sycamore)
  • 2023 年起,各类量子纠错码取得实质性进展

现实挑战:

  • 分解 2048 位 RSA 需要约 4000 个逻辑量子比特,考虑纠错开销需要数百万个物理量子比特
  • 当前最先进的量子处理器约 1000+ 物理量子比特
  • 量子退相干和门错误率仍是核心瓶颈

对密码学的影响

虽然量子计算机短期内还无法运行实用规模的 Shor 算法,但威胁已经推动了后量子密码学(Post-Quantum Cryptography)的发展:

  • NIST 已于 2024 年标准化首批后量子算法(ML-KEM、ML-DSA 等)
  • “现在截获、未来解密”(Harvest Now, Decrypt Later)是现实威胁
  • 从 RSA/ECC 迁移到后量子算法需要数年至数十年的过渡期

总结

Shor 算法展示了量子计算在特定问题上相对于经典计算的指数级优势。它的推导链条环环相扣:因数分解归约为求阶;求阶归约为”用 QFT 测出 的近似 “;连分数定理保证能从近似值恢复分母;平方差分解与最大性论证保证阶能还原出因子。理解它不仅有助于把握量子计算的本质——利用量子叠加与干涉实现并行计算——也让我们认识到量子时代对现代密码体系的深远影响。


参考文献:

  1. Shor, P. W. (1994). Algorithms for quantum computation: discrete logarithms and factoring. FOCS 1994.
  2. Nielsen, M. A., & Chuang, I. L. (2010). Quantum Computation and Quantum Information. Cambridge University Press.
  3. NIST (2024). Post-Quantum Cryptography Standardization. https://csrc.nist.gov/projects/post-quantum-cryptography


参考资料