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 则直接得到因子,算法结束
第二步:量子求阶(核心)
这是量子计算机发挥作用的步骤。构造两个量子寄存器:
操作流程:
-
初始化寄存器 1 为等权叠加态:
-
计算模幂运算 (可用模幂电路高效实现)
-
对寄存器 2 进行测量,得到某个值 ,寄存器 1 坍缩为所有满足 的 的等权叠加,即
-
对寄存器 1 施加量子傅里叶变换(Quantum Fourier Transform, QFT):
-
测量寄存器 1,以高概率得到接近 的整数倍的值
-
用连分数展开从测量结果 中提取候选分母,并逐一验证 是否等于 1,取通过验证的最小候选作为 ;若所有候选都失败,重跑本步骤
第三步:经典后处理
- 若 为奇数,回到第一步重新选
- 计算 ,若 ,回到第一步
- 计算 和 ,得到非平凡因子
理论推导
以下给出算法正确性的完整数学证明。
从周期到因子:为什么求阶能分解 N
引理 1:设 为奇合数,, 为 模 的阶。若 为偶数且 ,则 和 都是 的非平凡因子(即严格介于 与 之间)。
证明分四步。
第一步: 整除两个因子的乘积。由阶的定义 ,即 。 为偶数,故 是正整数,可对 用平方差公式:
因此 。
第二步:两个因子几乎互素。它们的差为 2,而两个整数的公因数必整除其差,故
若 为偶数则可直接被 2 整除,无需 Shor 算法,故我们只需考虑奇数 : 的每个素因子 都是奇数,不整除 2,因此 不能同时整除 和 。
第三步:素因子被划分到两侧。考虑 的任一素幂因子 ( 奇素数)。由第一步 ;由第二步 只整除其中一个因子,于是 的全部幂次只能落在同一个因子里。把 的所有素幂按此划分,记
则 且 。
第四步:两个因子都是非平凡的。 当且仅当 ,即 。这不可能发生: 是使 成立的最小正整数,而 ,若 则与 的最小性矛盾。 当且仅当 ,已被引理的条件排除。于是 ;又由 知两者都不能是 1(若 则 ,矛盾; 同理)。故两者都是 的非平凡因子。∎
具体验证(以 为例):
- , ✓
- , ✓
- 的素因子 被分别”捕获”
失败概率分析。算法失败有两种情况: 为奇数,或 。我们以 (两个不同奇素数)为例把两种情况的概率都算出来;更一般的奇合数可用同样的计数方法处理。
预备计数:记 为整数 所含素因子 2 的个数(即 奇数)。设 ( 为奇数)。 是 阶循环群,其中阶整除 的元素恰有 个。因此, 模 的阶 满足 ()的比例为 ,(阶为奇数)的比例为 。由中国剩余定理(Chinese Remainder Theorem, CRT), 模 均匀当且仅当 与 独立均匀;且 当且仅当模 、模 同时为 1,故 ,其中 是 模 的阶。
情况一( 为奇数): 为奇数当且仅当 都是奇数,概率为
情况二():设 为偶数。,而在域 中 的平方根只有 ,故 , 同理。于是签号组合 有四种可能:
- :意味着 ,与 的最小性矛盾,不可能发生(由 ,至少一侧达到最大值,也可看出 不可能模两个素数同时为 );
- :即 ,算法失败;
- 或 :此时 整除其中一个因子、 整除另一个, 恰为 ,算法成功。
何时发生? 等价于 ,即 (奇部自动相容,因为 );模 同理。两侧同时为 等价于 对某个 成立,其概率为
(等比数列求和:公比为 4。)
把两种失败情况相加,总失败概率为
其中用到 。等号在 (即 )时取到,此时两种失败各占 。结论:单次随机选取 的成功概率至少为 ,重复 次后失败概率降至 。
以 全量枚举验证( 的 共 7 个):
| 结果 | ||||
|---|---|---|---|---|
| 2 | 4 | 4 | ✓ | |
| 4 | 2 | 4 | ✓ | |
| 7 | 4 | 4 | ✓ | |
| 8 | 4 | 4 | ✓ | |
| 11 | 2 | 11 | ✓ | |
| 13 | 4 | 4 | ✓ | |
| 14 | 2 | 14 | 失败() |
7 个中有 6 个成功,比例 ,与理论一致。
QFT 提取周期的数学原理
测量寄存器 2 得到 后,寄存器 1 坍缩为所有满足 的 的等权叠加态。设最小的解为 ,则解集为 中不超过 的那些,于是
(项数 的由来:要求 ,即 ,故 的最大值为 ,共 项。)
对 施加 QFT。第 个分量的振幅为
内层是公比为 ()、共 项的几何级数。用等比求和公式并提取公因子的相位,可得其模长为
当 接近整数时各项几乎同相,级数模长接近 ,发生相长干涉;当 接近半整数时各项几乎两两反相,级数模长接近 0,发生相消干涉。定量地,利用不等式 ()与 :当 时,
即模长至少是最大值的 倍。
现在确定峰的位置。对每个 ,取 为最接近 的整数,则 ,于是
(最后一步是因为 ;由于 ,边界效应可忽略。)因此峰处的振幅满足 ,测量概率
个峰合计的总概率约为 ,这就是单次量子运行”落在好峰上”的概率下限。
关键在于峰的位置编码了 :由 两边除以 得
(用到 与 : 的阶整除群阶 。)换言之,测量值 是某个以 为分母的有理数 的近似,且近似精度好到 以内。问题于是转化为:从一个有理数的高精度近似值恢复其分母——这正是连分数的经典用武之地。
连分数算法:从测量值中提取 r
连分数展开(continued fraction)是将有理数表示为嵌套分数的标准工具。对任意正有理数 ,其连分数展开为:
记作 ,其中 为正整数( 可为 0)。逐级截断得到的分数 称为渐近分数(convergent)。
展开算法是欧几里得辗转相除法的直接改写:,对余数 与 重复同样操作,直到余数为 0。整个过程在 时间内完成。
为什么连分数能恢复 (Legendre 定理):若分数 (既约)满足 ,则 必为 的某个渐近分数。把上一节的结果代入: 与 的偏差小于 ;将 化为既约分数 ( 整除 ),偏差进一步小于 。于是 必然出现在 的渐近分数序列中。
恢复流程:对测量值 做连分数展开,列出分母不超过 的所有渐近分数分母 作为候选。由于 且 ,候选中若有某个 使 (用快速模幂验证,代价多项式),它就是阶的一个因子。完整的后处理为:
- 若某候选 满足 :取其中最小者,它就是 (阶是最小的这样的正指数);
- 若候选 都不满足(这发生在 、既约分母 时):依次尝试 的 2 倍、3 倍等小倍数并验证,因为 是 的小倍数;
- 若仍失败或测得 (对应 ,不含信息):重跑量子部分。多次运行取候选的最小公倍数也是常用策略。
计算实例(,,,;此时 ,四个峰 均为整数,每个以概率 测得):
- 测得 :做辗转相除 ,,故 ,渐近分数依次为 。候选分母 中验证:,候选 1 不通过; ✓,故 ,提取成功(此时 )。
- 测得 :,渐近分数为 ,同样得到候选 ,验证通过(此时 )。
- 测得 :,渐近分数为 ,候选 。但 ,验证失败;改试倍数 : ✓,故 。(这里 与 有公因子 2,既约分母 ,正是上述第 2 种情形。)
- 测得 :对应 ,不含信息,重跑。
量子电路结构
 | 量子门 |
| 量子傅里叶变换 | 量子门 |
| 经典连分数展开 | |
| 总体 |
对比经典最优算法的亚指数复杂度,这是指数级加速。
当前进展与局限
已实现的里程碑:
- 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 测出 的近似 “;连分数定理保证能从近似值恢复分母;平方差分解与最大性论证保证阶能还原出因子。理解它不仅有助于把握量子计算的本质——利用量子叠加与干涉实现并行计算——也让我们认识到量子时代对现代密码体系的深远影响。
参考文献:
- Shor, P. W. (1994). Algorithms for quantum computation: discrete logarithms and factoring. FOCS 1994.
- Nielsen, M. A., & Chuang, I. L. (2010). Quantum Computation and Quantum Information. Cambridge University Press.
- NIST (2024). Post-Quantum Cryptography Standardization. https://csrc.nist.gov/projects/post-quantum-cryptography
参考资料
- 本词条整理自《量子计算算法教程》原文:ch04-classic-algorithms/shors-algorithm-tutorial
- 内容遵循 CC BY-NC-SA 4.0 许可协议