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:
随后测量前两个寄存器。测量结果 以均匀概率满足线性关系(完整推导见下文”理论推导”一节)
于是当 与 互素时,一次解出 。
第四步:经典后处理
- 从测量结果 计算 (用扩展欧几里得算法求 )
- 若 ,将同余式两边除以 得到 模 的信息,多次测量收集多个方程后用中国剩余定理(Chinese Remainder Theorem, CRT)合并
理论推导
测量分布的完整推导
我们对第三步做完整计算。由关键性质,把 按第三个寄存器的取值分组:
内层括号正是陪集 上 个基态的均匀叠加。对前两个寄存器施加 ,由线性性,基态 的振幅为
其中我们把与 无关的因子 提出求和号。内层是以 ()为公比的几何级数,用等比求和公式:
- 若 ,每项都是 1,级数等于 ;
- 若 ,则 而 ,级数等于 。
因此振幅非零当且仅当 ;非零时其模为 。对 求和( 只出现在相位因子中,不影响模长),测得满足 的 的概率为 。满足条件的 恰有 个(每个 唯一对应 ),概率总和为 1。结论:
特别地, 在 上均匀分布。
格结构分析
中满足 的点集 也可以看成 中的二维格(lattice),它的一组基为:
验证:: ✓;: ✓。反过来,任一整系数组合 都满足 ,且这样的组合互不相同地覆盖了 的全部 个元素( 取遍 ,每个 给出唯一的 ),故上述两向量确为 的基。基中向量 直接包含未知量 ——求出 就等于求出 。
上一节的测量结果集 恰是 的(模 意义下的)对偶格(dual lattice):条件对基向量 自动成立(),对 给出 ,即 ——与推导结果完全一致。这正是隐藏子群问题中”QFT 采样得到对偶格元素”的一般规律。
成功概率与不可逆情形的处理
均匀分布于 ,故单次测量得到 (从而 存在、一次解出 )的概率为 ,其中 为欧拉函数(Euler’s totient function)。注意 是偶数( 为奇素数),必然是合数,因此 严格小于 1;例如 时 。
若测得 ,也不必丢弃这次结果。同余式 意味着 ;由于 且 (从而 ),可得 。于是写 、、,同余式两边除以 得到合法的同余式
此时 ,解得 。多次测量得到 模 的各个”分量”后,用中国剩余定理合并即可恢复 。
数值实例:p = 13,g = 2,h = 11
取 ,则 。 是 的生成元(逐一计算 ,阶为 12)。设隐藏的 ,则 。
量子部分给出的每次测量结果是满足 的均匀随机对 。下表列出几组典型结果与经典后处理:
| 测得 | 对应 | 后处理 | |
|---|---|---|---|
| 1 | 7 | 1 | ✓ |
| 5 | 11 | 1 | (), ✓ |
| 7 | 1 | 1 | (), ✓ |
| 11 | 5 | 1 | (), ✓ |
| 2 | 2 | 2 | 除以 2:,即 ,需再测一次合并 |
单次测量直接成功的概率为 ( 时可逆);即便测到不可逆的 ,也能像最后一行那样缩小候选范围,再测一次即可确定。最终验证: ✓。
对椭圆曲线的推广
Shor 算法可以直接推广到椭圆曲线离散对数问题(ECDLP):
给定椭圆曲线 ,基点 ,点 ,求 。
量子电路修改:
- 模幂运算替换为椭圆曲线点乘:
- QFT 在椭圆曲线群的阶 上进行
- 其余步骤完全相同
复杂度: 量子门,与经典 相比为指数加速。
与整数分解的关系
Shor 的两个算法共享同一个量子内核,但并不是一个归约为另一个。
一方面,整数分解被归约为一维周期查找:给定 与 ,函数 以阶 为周期,求出 即可按本词条因数分解篇的方式分解 。另一方面,离散对数是二维周期查找:函数 在二维格 的每个陪集上取常值,求出 的基即得 。
两者都可以纳入阿贝尔隐藏子群问题的统一框架:给定群 与在子群 的每个陪集上取常值、不同陪集取不同值的函数 ,求 ;解法是对 的定义域做量子傅里叶采样,从对偶对象中读出 。本百科中的 BV 算法(,线性结构)、Simon 算法(,异或周期)、求阶()、离散对数()都是这一框架的实例。
反方向的归约——把离散对数归约为整数分解——目前没有已知的多项式时间算法。两个问题在经典模型下互不归约,却在量子模型下被同一套傅里叶采样技术一并击破。
对密码学的影响
| 密码系统 | 依赖问题 | Shor 量子威胁 |
|---|---|---|
| RSA | 整数分解 | 时间破解 |
| Diffie-Hellman | DLP | 时间破解 |
| DSA | DLP | 时间破解 |
| ECC | ECDLP | 时间破解 |
所有主流公钥密码系统都受 Shor 算法威胁。ECC 虽然经典安全性更高(256 位 ECC ≈ 3072 位 RSA),但对量子攻击同样脆弱。
复杂度分析
| 步骤 | 量子门数 |
|---|---|
| 模幂运算 | |
| 二维 QFT | |
| 经典后处理 | |
| 总计 |
对比经典:
| 方法 | 复杂度 |
|---|---|
| 数域筛法(DLP) | |
| Pollard rho(ECDLP) | |
| Shor(量子) |
总结
Shor 算法对离散对数的求解,连同整数分解,构成了对所有主流公钥密码系统的统一量子威胁。对椭圆曲线密码的威胁尤其值得关注:ECC 被广泛部署在移动设备、IoT 和区块链中,其经典安全边际远低于 RSA,因此对量子攻击更加脆弱。这也是后量子密码标准化的紧迫动因之一。
参考文献:
- Shor, P. W. (1994). Algorithms for quantum computation: discrete logarithms and factoring. FOCS 1994.
- Proos, J., & Zalka, C. (2003). Shor’s discrete logarithm quantum algorithm for elliptic curves. Quantum Information & Computation, 3(4), 317-344.
- NIST (2024). Post-Quantum Cryptography Standardization. https://csrc.nist.gov/projects/post-quantum-cryptography
- Roetteler, M., Naehrig, M., Svore, K. M., & Lauter, K. (2017). Quantum resource estimates for computing elliptic curve discrete logarithms. ASIACRYPT 2017.
参考资料
- 本词条整理自《量子计算算法教程》原文:ch04-classic-algorithms/shors-discrete-log-tutorial
- 内容遵循 CC BY-NC-SA 4.0 许可协议