1. 问题转化:因数分解 → 阶寻找
设要分解的合数为 N,其两个未知质因数为 p 和 q。Shor算法通过以下步骤实现分解:
-
随机选择整数 a:
选取 a 满足 1<a<N 且 gcd(a,N)=1。若 gcd(a,N)≠1,则已找到因数;否则进入下一步。 -
寻找 a 的阶 r:
找到最小的正整数 r,使得。
-
若 r 为奇数或
,需重新选择 a。
-
否则,利用
得到 N 的因数。
-
2. 量子相位估计(Phase Estimation)的核心作用
Shor算法通过量子相位估计快速找到 a 的阶 r。其步骤如下:
步骤1:定义乘法算子
在模 N 的加法群 ZN 上定义酉算子 ,其作用为:
由于 a 与 N 互质, 是置换矩阵,其本征值为单位根 e2πik/r,其中 k∈Zr。
步骤2:构造量子态叠加
-
初始化量子寄存器:
-
应用量子傅里叶变换(QFT):
对第一个寄存器应用 QFTN,得到:
步骤3:应用受控乘法算子
通过受控 操作,将相位信息编码到量子态中:
步骤4:逆量子傅里叶变换(QFT⁻¹)
测量第二个寄存器后,第一个寄存器的态坍缩为与 r相关的周期函数。应用 提取相位 s/r,其中 s 是整数。通过连分数展开逼近s/r,得到 r。
3. 数论关键:从阶到因数分解
假设已成功找到阶 r,且 r 为偶数,满足,则
由于,N必须与
有平凡公因子,通过计算:
和
即可得N的因数
4.示例:分解 N=15的完整过程
-
选择 a=2:
gcd(2,15)=1,进入下一步。 -
寻找阶 r:
计算,
,
,
,故 r=4。
-
验证条件:
r=4为偶数,且。
-
计算公因数:
gcd(4−1,15)=3, gcd(4+1,15)=5..成功分解 15=3×5。
5. 算法的量子优势
-
经典困难性: 寻找 rr 的经典算法复杂度为指数级(如试除法),而Shor算法通过量子相位估计将其降至多项式时间 O((logN)3)。
-
量子并行性: 叠加态和量子干涉允许同时计算所有可能的 ax mod N,并通过QFT高效提取周期 rr。
6. 群结构与算法的普适性
-
群 ZN∗ 的性质: 当 N=pq 为两不同质数乘积时,ZN∗≅Zp−1×Zq−1。
-
阶的存在性: 由拉格朗日定理,元素的阶必整除 ϕ(N)=(p−1)(q−1),但实际分解只需找到任意一个满足条件的r。
总结
Shor算法通过量子相位估计高效求解乘法群中元素的阶,结合数论中最大公约数的计算,将大数分解转化为可量子加速的周期寻找问题,最终实现多项式时间分解。其步骤如下:
-
随机选择 a 并验证互质。
-
用量子相位估计找到 a 的阶 rr。
-
若 r 满足条件,计算 gcd(ar/2±1,N)。
附录:
1.为什么r不能为奇数或者
?
因为会导致无法有效分解N
无法构造平方差公式:
分解的关键是将转化为平方差形式:
若r为奇数那么.,r/2不是整数,无法定义。
若,则:
,那么
此时:
若 N 为奇数,gcd(−2,N)=1,无法得到非平凡因数。