Shor 算法不仅能够高效分解整数,还可以在多项式时间内求解离散对数问题(Discrete Logarithm Problem, DLP)——而这正是 Diffie-Hellman 密钥交换、DSA 数字签名和椭圆曲线密码(ECC)安全性的数学基础。本词条详细分析 Shor 算法在离散对数上的应用。

问题定义

离散对数问题

给定素数 ,乘法群 的生成元(generator),以及元素 ,求整数 使得:

记作 。由于 是生成元,其阶恰为 ,因此 在模 意义下存在且唯一。以下记群阶

为什么重要

  • Diffie-Hellman 密钥交换:双方公开 ,共享密钥为 ;其安全性基于从 计算 的困难性
  • DSA 数字签名:签名验证依赖 DLP 的困难性
  • 椭圆曲线密码(ECC):椭圆曲线离散对数问题(ECDLP),对一般曲线目前没有经典亚指数算法

经典最优算法:

  • 一般 DLP:数域筛法(Number Field Sieve),亚指数时间 ,其中
  • ECDLP:Pollard rho 算法,,对 256 位曲线约为

Shor 算法求解离散对数

核心思想

Shor 的 DLP 算法将离散对数 归约为隐藏子群问题(Hidden Subgroup Problem, HSP):考察函数 。由 可知 ,它在一个二维格的每个陪集上取常值、在不同陪集上取不同值;求出这个隐藏的格,等价于求出 。量子傅里叶变换(QFT)正是从这类”陪集常值函数”中提取隐藏子群的标准工具。

算法步骤

第一步:量子叠加制备

制备两个寄存器的均匀叠加态

(归一化是对的: 个基态各带振幅 。)每个寄存器有 量子比特

第二步:模幂计算

计算 ,将结果写入第三个寄存器:

关键性质:由 ,且 的阶为 ,故 当且仅当 。于是 只依赖于 :对每个 当且仅当 ,其解集为

(把每个 代入解出唯一的 ,共 个解。)这些解集是一个固定子群的平移:集合

对加法封闭(两个满足同余式的元素之和仍满足),是 的子群,而解集恰为陪集 的每个陪集上取常值、在不同陪集上取不同值—— 隐藏了子群 ,而 完全决定。

第三步:量子傅里叶变换(QFT)

对前两个寄存器施加二维 QFT:

随后测量前两个寄存器。测量结果 以均匀概率满足线性关系(完整推导见下文”理论推导”一节)

于是当 互素时,一次解出

第四步:经典后处理

  1. 从测量结果 计算 (用扩展欧几里得算法求
  2. ,将同余式两边除以 得到 的信息,多次测量收集多个方程后用中国剩余定理(Chinese Remainder Theorem, CRT)合并

理论推导

测量分布的完整推导

我们对第三步做完整计算。由关键性质,把 按第三个寄存器的取值分组:

内层括号正是陪集 个基态的均匀叠加。对前两个寄存器施加 ,由线性性,基态 的振幅为

其中我们把与 无关的因子 提出求和号。内层是以 )为公比的几何级数,用等比求和公式:

  • ,每项都是 1,级数等于
  • ,则 ,级数等于

因此振幅非零当且仅当 ;非零时其模为 。对 求和( 只出现在相位因子中,不影响模长),测得满足 的概率为 。满足条件的 恰有 个(每个 唯一对应 ),概率总和为 1。结论:

特别地, 上均匀分布。

格结构分析

中满足 的点集 也可以看成 中的二维格(lattice),它的一组基为:

验证 ✓; ✓。反过来,任一整系数组合 都满足 ,且这样的组合互不相同地覆盖了 的全部 个元素( 取遍 ,每个 给出唯一的 ),故上述两向量确为 的基。基中向量 直接包含未知量 ——求出 就等于求出

上一节的测量结果集 恰是 的(模 意义下的)对偶格(dual lattice):条件对基向量 自动成立(),对 给出 ,即 ——与推导结果完全一致。这正是隐藏子群问题中”QFT 采样得到对偶格元素”的一般规律。

成功概率与不可逆情形的处理

均匀分布于 ,故单次测量得到 (从而 存在、一次解出 )的概率为 ,其中 为欧拉函数(Euler’s totient function)。注意 是偶数( 为奇素数),必然是合数,因此 严格小于 1;例如

若测得 ,也不必丢弃这次结果。同余式 意味着 ;由于 (从而 ),可得 。于是写 ,同余式两边除以 得到合法的同余式

此时 ,解得 。多次测量得到 的各个”分量”后,用中国剩余定理合并即可恢复

数值实例:p = 13,g = 2,h = 11

,则 的生成元(逐一计算 ,阶为 12)。设隐藏的 ,则

量子部分给出的每次测量结果是满足 的均匀随机对 。下表列出几组典型结果与经典后处理:

测得 对应 后处理
171
5111),
711),
1151),
222除以 2:,即 ,需再测一次合并

单次测量直接成功的概率为 时可逆);即便测到不可逆的 ,也能像最后一行那样缩小候选范围,再测一次即可确定。最终验证: ✓。

对椭圆曲线的推广

Shor 算法可以直接推广到椭圆曲线离散对数问题(ECDLP):

给定椭圆曲线 ,基点 ,点 ,求

量子电路修改

  • 模幂运算替换为椭圆曲线点乘:
  • QFT 在椭圆曲线群的阶 上进行
  • 其余步骤完全相同

复杂度 量子门,与经典 相比为指数加速。

与整数分解的关系

Shor 的两个算法共享同一个量子内核,但并不是一个归约为另一个。

一方面,整数分解被归约为一维周期查找:给定 ,函数 以阶 为周期,求出 即可按本词条因数分解篇的方式分解 。另一方面,离散对数是二维周期查找:函数 在二维格 的每个陪集上取常值,求出 的基即得

两者都可以纳入阿贝尔隐藏子群问题的统一框架:给定群 与在子群 的每个陪集上取常值、不同陪集取不同值的函数 ,求 ;解法是对 的定义域做量子傅里叶采样,从对偶对象中读出 。本百科中的 BV 算法(,线性结构)、Simon 算法(,异或周期)、求阶()、离散对数()都是这一框架的实例。

反方向的归约——把离散对数归约为整数分解——目前没有已知的多项式时间算法。两个问题在经典模型下互不归约,却在量子模型下被同一套傅里叶采样技术一并击破。

对密码学的影响

密码系统依赖问题Shor 量子威胁
RSA整数分解 时间破解
Diffie-HellmanDLP 时间破解
DSADLP 时间破解
ECCECDLP 时间破解

所有主流公钥密码系统都受 Shor 算法威胁。ECC 虽然经典安全性更高(256 位 ECC ≈ 3072 位 RSA),但对量子攻击同样脆弱。

复杂度分析

步骤量子门数
模幂运算
二维 QFT
经典后处理
总计

对比经典:

方法复杂度
数域筛法(DLP)
Pollard rho(ECDLP)
Shor(量子)

总结

Shor 算法对离散对数的求解,连同整数分解,构成了对所有主流公钥密码系统的统一量子威胁。对椭圆曲线密码的威胁尤其值得关注:ECC 被广泛部署在移动设备、IoT 和区块链中,其经典安全边际远低于 RSA,因此对量子攻击更加脆弱。这也是后量子密码标准化的紧迫动因之一。


参考文献:

  1. Shor, P. W. (1994). Algorithms for quantum computation: discrete logarithms and factoring. FOCS 1994.
  2. Proos, J., & Zalka, C. (2003). Shor’s discrete logarithm quantum algorithm for elliptic curves. Quantum Information & Computation, 3(4), 317-344.
  3. NIST (2024). Post-Quantum Cryptography Standardization. https://csrc.nist.gov/projects/post-quantum-cryptography
  4. Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. ASIACRYPT 2017.


参考资料