Shor 离散对数算法告诉我们:有限域乘法群中的单个离散对数问题——给定 与 ,求 ——可以在 时间内解决。但是,一旦两个指数通过加法耦合在一起,问题会重新变难。本词条研究有限域 上的指数同余方程 (exponential congruence)
其中 已知,要求的是指数对 。本词条将完整推导 van Dam 与 Shparlinski 的量子算法:先用乘法特征和证明”解一定出现在一个较窄的矩形条带中”,再把 Shor 离散对数包装成一个可相干调用的判定器,交给 Grover 搜索 与振幅放大去找到解。最终的最坏情形运行时间为 ,相对论文中给出的经典 算法,在 的指数幂上获得三次方改进();但请注意,它仍然不是输入长度 的多项式时间算法。
阅读本词条需要:有限域与循环群的基本概念,量子傅里叶变换与相位估计(作为 Shor 算法的内部,不需要重新推导),以及 Grover 搜索与振幅放大的结论。全课约定 隐藏 的多项式因子,、 在比较时忽略 因子。
1. 问题背景:为什么两个指数会变难
1.1 从离散对数到指数同余
先回忆离散对数问题。设 是 元有限域的乘法群(它是 阶循环群,这是有限域的标准事实), 给定。离散对数问题是:给定 ,求 使得 。Shor 算法把它化为周期查找,配合量子傅里叶采样在 时间内求解——这是量子计算最著名的指数级加速之一。
现在看指数同余方程 。如果两个未知数中有一个被固定,问题立刻退化:
- 固定 ,移项得 ,这是一个以 为底的离散对数;
- 固定 ,移项得 ,这是一个以 为底的离散对数。
也就是说,“单指数”的版本在量子计算机上是容易的。困难来自两个指数的真正耦合:加法 把两个循环群的乘法结构混在一起。量子傅里叶采样擅长处理的是”周期函数""阿贝尔群结构”,而映射 的等值集合 一般不构成群,也不具有可以直接傅里叶采样的周期结构。因此,既有的 HSP 机器无法直接吞下这个问题。
这个问题为什么值得研究?至少有三层动机。第一,它是检验”量子加速边界”的天然试金石:单离散对数有多项式时间量子算法,而稍加耦合之后,最好的量子算法仍然要花费关于 的指数时间——指数幂从经典的 降到 ,是一个实质但不彻底的改进,画出了当前技术的边界。第二,指数同余与某些半直积群上的隐子群问题 (hidden subgroup problem, HSP) 密切相关:如果能以 时间求解此类同余,就能为相应的 HSP 提供新的多项式时间量子算法;van Dam–Shparlinski 的论文明确讨论了这层联系,同时也明确指出他们的结果没有解决那个 HSP 所需的多项式时间子程序——这是本词条第 7 节要再次强调的保留条款。第三,指数同余的解数估计本身是解析数论中的经典问题,乘法特征和(Gauss 和、Weil 界一路的技术)在其中扮演核心角色;本词条可以看到这套经典工具如何与 Grover 搜索拼接成量子算法。
1.2 经典算法的瓶颈
经典计算机如何处理这个问题?朴素的办法是穷举:遍历所有候选的 ,对每个 计算 ,然后判断 是否落在子群 中、若落在其中则求出离散对数 。瓶颈在第二步:经典模型下没有多项式时间的离散对数算法。用通用群算法(如 Shanks 的大步小步法)在以 为底、阶为 的群中做一次成员判定兼离散对数,需要 次群运算,最坏情形 时单次检查的代价就是 。这个 不是偶然的:在只使用群运算黑箱的通用群模型中,离散对数有 的下界,因此大步小步在通用意义下已是最优——除非利用 的具体表示(如指数演减法),否则经典每次候选检查都甩不掉这个平方根因子。
把”候选数 单次离散对数代价”与下文将要推导的数论引理结合起来,van Dam–Shparlinski 给出的经典算法最坏时间为 。这个 本身就是一个参数平衡的结果:候选集合的宽度随 增大而变窄,而单次判定的 随 增大而变贵,最坏情形出现在两者顶住的临界点上。我们先把这个数当作经典基准记住,第 5.3 节会逐项重现它的推导,并看清量子算法的 究竟改进了哪几个因子。
1.3 算法概览
量子算法由三个部件拼接而成,每个部件各司其职:
- 阶查找:用 Shor 算法求出 、,把搜索范围限定为 的基本周期矩形;
- 特征和引理(纯数论,经典证明):证明当 不太小时,解必定出现在 轴方向宽度约为 的窄条带内,从而把搜索空间从 压缩到 ;
- Grover 搜索:把”固定 、求离散对数、验证等式”做成相干预言机,在压缩后的候选集上做平方根加速搜索。
三个部件中,只有第 3 步是”搜索加速”,第 1 步是”参数确定”,而第 2 步负责完备性——保证搜索范围之外确实没有遗漏的解。这个分工在第 3 节和第 5 节会反复出现。
2. 搜索空间由元素阶决定
记
即 、 在乘法群 中的阶: 是使 成立的最小正整数, 同理。由循环群的基本事实, 且 。
指数函数以阶为周期:对任意整数 ,。因此,如果 是解,那么 与 的代表元也给出一个解;反过来,每个解的指数在模 、模 意义下唯一。于是我们只需考虑
称这个 的整数矩形为基本周期矩形。搜索空间的大小从”无限”变成 ,而 。
阶 本身如何得到?用 Shor 的阶查找子程序(与因数分解中完全相同的部分):对乘法算子 做相位估计,以 的时间求出 ;同理求出 。这一步的代价被 吸收,后文不再计入。由于方程关于 与 对称(交换两组变量的角色,方程形状不变),以下不妨设 。
接下来是关键的一步约化。固定某个 ,方程等价于
记右端的值为 。分两种情况:
- 若 属于循环子群 ,那么离散对数方程 在 中有唯一解 (因为 的阶恰好是 ,映射 在这个区间上是单射),Shor 离散对数算法可以在 时间内求出它;
- 若 (包括 的情形,因为 中的元素都是非零的),则这个 不可能对应任何解。
因此我们可以定义一个判定函数
每次调用 的成本关于 为多项式:一次模幂 、一次域上的线性组合、一次 Shor 离散对数、一次验证。第 4.1 节会说明如何把它做成可相干调用的量子预言机,目前先把它当作”多项式代价的黑箱判定器”。
上面的”唯一性”观察还有一个计数层面的推论,后文会反复用到:每个 至多贡献一个解。因此,对任何候选集合 ,矩形 中的解数恰好等于 中标记项的个数 。换句话说,下一节要估计的”条带中的解数” ,正是 Grover 搜索框架里”标记项个数 “的化身——第 7 节讨论多解加速时,这个对应关系会把数论估计与查询复杂度直接焊接起来。
有了 ,最朴素的量子算法是:直接在 上做 Grover 搜索,寻找使 的 。成本为
但这还不够好: 最坏可以大到 (例如 是 的生成元时),此时 ,比我们的目标 大得多(比较指数:)。要再进一步,必须利用数论结构把候选集压缩到 的真子集——这正是下一节的特征和引理。
3. 特征和与”短边必有解”引理
本节的目标:证明当 不太小时,解必然出现在 轴方向一个宽度远小于 的条带内。整条推理链是经典的解析数论,不涉及任何量子计算;它的产出是一个存在性保证,供量子搜索使用。
3.1 乘法特征与子群成员关系的代数表达
我们需要一个代数工具来”数”满足条件的 :对每个 ,要判断 是否属于子群 。解析数论处理这类”子群成员关系”的标准工具是乘法特征 (multiplicative character)。
乘法特征 是从 到单位圆周 的群同态,即 。由于 是 阶循环群,它的全部乘法特征也构成一个 阶循环群(对偶群):取定生成元后,特征就是 (),其中 是 次单位根。特征满足正交关系:对 ,
其中求和取遍全部 个乘法特征。(当 时每一项都是 ;当 时,存在某个特征 使 ,两边同乘 后求和集不变,于是和只能为 。)我们约定 。
现在把正交关系”升级”为子群成员关系的指标函数。设 ,并记
即子群 在 中的指数(由于 , 是整数)。商群 是 阶循环群。在所有乘法特征中,恰有 个在 上恒取 ——它们正是商群的全部特征(每个这样的特征只依赖于陪集 ,而 阶循环群恰有 个特征)。把这 个特征取出来,对任意 定义
这个和式就是子群成员关系的精确指标函数:若 ,则每一项 ,和为 ,除以 得 ;若 ,则 在商群中的像 ,和式等于商群上的正交关系 ,除以 得 。于是我们得到了一个完全代数的判据:
3.2 解数估计:主项与误差项
令 表示满足
的解 的个数,其中 是待定的条带宽度。由上节的讨论,固定 时解的个数恰为 (属于子群恰对应唯一一个 ,否则为零),因此
第二个等号只是把指标函数的定义代入并交换求和次序。现在这个双重和可以按特征分成两部分来估计。
主项:平凡特征 。 在所有非零元上取 ,所以内层和为 。注意 等价于 ,在 中至多发生一次( 的阶是 , 在一个周期内两两不同)。所以平凡特征的贡献是
其中用了 ,即 。后面的 会被最终误差项吸收,以下不再单独写出。
误差项:其余 个非平凡特征。 对每个非平凡特征 ,内层和
是一个”沿几何序列 取值”的不完全乘法特征和。解析数论对这类和有通用上界:完全和的平方根抵消(Weil 界的典型尺度)给出 量级,把截断区间补全为完全和的标准技术再付出一个 因子,合起来形如
且该界对所有非平凡 一致成立。这里我们只做定性说明: 反映的是”随机 ±1 序列求和的平方根涨落”这一普遍现象(Weil 界说明代数族特征和确实达到随机行为的尺度), 是不完全和相对于完全和的技术性损失。
最后把两部分合并。非平凡特征共有 个,每个权重 ,因此它们对 的总贡献的绝对值不超过
注意这里的要点: 这个平均因子使得误差项取决于单个特征和的最大值,而不是 个特征和的总和——所以无论 多大,误差项都保持在 的尺度。合起来我们得到解数渐近公式
公式的直观解读。 主项 正是随机模型下的期望解数:把 想象成 中的随机元素,它落在占比 的子群 中的概率是 , 次独立尝试的期望命中数就是 。误差项 则衡量真实序列 与随机模型的偏离——它来自乘法子群结构( 的幂)与加法平移(减 、除以 )之间的相互作用,而特征和界告诉我们:这种偏离至多是平方根量级的涨落,不会系统性地把解”排挤出”任何一段区间。
3.3 条带宽度的选取
渐近公式立刻给出一个存在性判据:只要主项压过误差项, 就是正的,条带内必有解。具体地,设误差项 中的隐含常数为 。若我们能保证
那么
条带中至少有一个解(事实上至少有主项一半那么多的解)。把上面的不等式解出 :两边乘以 ,并用 ,只需
取 ,定义
于是我们证明了本词条的核心数论事实:
Lemma(短边引理). 设 ,其中 是充分大的绝对常数。若 ,则存在 与 满足 。Q.E.D.
两种互补的情形。 这个引理是否给出存在性,取决于算出来的 与实际周期 的大小关系:
- 若 :引理适用,前 个 中必有解。搜索空间从 压缩到 ;
- 若 :引理不适用(它不排除”前 个 中无解”的可能),但此时 本身就很小,完整的 个候选已经不多,可以全部交给量子搜索。此时搜索整个基本周期矩形,不会有任何遗漏。
这个步骤至关重要,值得强调:Grover 搜索只能加速”在一个已经确定的候选集合中找解”,它不能自己证明集合之外没有解。 如果候选集合选小了,Grover 找到解固然好,找不到时我们无法断定原方程无解。特征和引理负责的正是这个完备性保证:要么把解压缩进宽度为 的条带(情形 ),要么确认完整候选集本身已经足够小(情形 )。特征和界负责”无漏解”,量子搜索负责”找到见证”,两者缺一不可。
4. 量子算法
4.1 判定器 的相干实现
Grover 搜索要求预言机以相干方式工作:对叠加态 ,一次调用就要同时算出所有 ,而不能逐个测量。我们按标准的”计算—标志—相位翻转—反计算”模式实现 ,分五步:
- 计算 :用平方-乘算法实现可逆模幂 ,需要 次域乘法,总代价 ;
- 计算 :域上的乘法、减法都是可逆运算,代价 ;
- 相干离散对数:在 上运行 Shor 离散对数线路(以 为底),把所有测量推迟。线路输出一个候选对数 及工作区。关键点在于:Shor 算法的输出是可验证的——追加一个可逆比较器,计算标志比特 。若 ,Shor 算法以高概率给出正确的 ,验证通过,;若 ,任何 都无法通过验证,。因此 正是 (误差概率见下);
- 相位翻转:对标志比特施加受控相位(或先制备 做相位反冲),实现 ;
- 反计算:把第 1–3 步的线路逆向运行,清除工作区,只留下 寄存器和已注入的相位。
两点技术说明。第一,Shor 离散对数是有界误差算法,单次成功概率为常数;把它独立重复 次并取验证通过的结果,可以把每次预言机调用的错误率压到 以下,对 Grover 迭代的总影响可以忽略,代价只是 因子,被 吸收。第二,搜索区间内标记项的数目 事先未知(这正是问题的难点),因此不能用固定迭代次数的 Grover,而要用振幅放大一章中处理未知解数的版本(BBHT 式的指数增长尝试):其成本为 ,其中 是搜索区间;最坏情形 时即 。
4.2 整体流程
综合前面的所有部件,算法如下:
- 阶查找:用 Shor 算法求 、。若 ,交换两组参数 的角色,使 。代价 ;
- 计算条带宽度 (纯经典算术);
- 分情形搜索:若 ,令搜索区间 ;否则令 。以 为预言机,在 上运行 BBHT 振幅放大搜索;
- 输出:若搜索找到 ,再运行一次 Shor 离散对数求出 并验证 ,输出 ;若搜索宣告无标记项,输出”无解”。
正确性由两方面的论证保证:当 时,短边引理保证 中必有标记项,振幅放大以高概率找到它;当 时, 覆盖整个基本周期矩形,搜索穷尽所有候选,找到即解、找不到即无解(至多受子程序有界误差影响,可忽略)。
5. 复杂度分析
现在逐项推导两种情形下的运行时间。搜索区间大小为 ,每次预言机调用代价 ,BBHT 搜索调用 次(最坏情形),故总时间为 ,问题归结为估计 。
5.1 情形 A:
搜索区间是条带,,成本为
其中第二步把常数 和 吸收进 。这个表达式里 越小成本越高,所以我们需要 的下界。由两条信息:
- (第一条是约定,第二条是情形 A 的前提);
- ( 的定义,上取整只会让它更大),即 ,
把第一条的 与第二条相乘的方向对齐:
两边开方得 。代回成本表达式——注意 关于 递减,下界代入后得到上界:
故情形 A 的成本为 。直观地说:条带宽度 随 增大而变窄,而最坏情形出现在 尽量小、但又被约束 与 顶住的位置,解 ,此时 。
5.2 情形 B:
搜索区间是整个周期边,,成本为 。由情形前提 以及 的定义(注意 意味着上取整不起主导作用, 与 同阶):
再由约定 ,有 。于是
polylog 因子照例被吸收。故情形 B 的成本同样是 。
两种分支合起来:算法在 时间内找到一组解 ,或确定整个基本周期矩形中无解。 这就是 van Dam–Shparlinski 的最坏情形量子界。
5.3 与经典算法的对比:三次方改进的来源
为了看清量子改进究竟来自哪里,我们用同一副骨架重建论文中的经典 算法。骨架完全相同:阶已知(经典可用因数分解 后逐个检验,代价被吸收)、短边引理相同、情形划分相同。唯一的差别在判定器 的代价:经典模型下,用 Shanks 大步小步法做子群成员判定兼离散对数需要 次群运算;而且经典没有振幅放大,搜索是逐项扫描。于是:
- 情形 A:扫描 个候选,每个代价 ,总成本
其中最后一步同样用了情形 A 导出的 ;
- 情形 B:扫描 个候选,总成本 。利用 给出的 (即 ):
对照量子版本,改进来自两个因子的叠加:搜索从逐项扫描 变为振幅放大 (平方根),单次判定从经典大步小步的 变为 Shor 算法的 (指数级)。两种情形中成本表达式的”主结构”——情形 A 的 与情形 B 的 ——被替换为 与 ,最终在 的指数上体现为
即指数幂的三次方改进。必须强调的是这个改进的限度:输入 用 个比特表示,而 关于输入长度仍是指数时间。这与 Shor 算法对单个离散对数的多项式时间形成鲜明对比——加法耦合把问题从”多项式可解”推回了”指数可解但指数更小”的区间。
6. 一个小例子: 上的完整演算
渐近界的常数在 这种玩具尺度上没有任何意义(短边引理里的 是未指定的大常数),但算法的每个部件都可以完整地手工跑一遍。取
即求解 。
第一步:阶查找。 是 阶循环群。逐次计算 的幂:
所以 , 是生成元,。再算 的幂:
所以 。基本周期矩形是 、,共 个候选指数对。
第二步:逐 运行判定器。 计算 ,并判断 、求离散对数 :
- :。查上面的幂表,,故 ,;
- :。,故 ,;
- :。,故 ,。
三个候选全部命中,解为 。逐一验证:
第三步:对照解数公式。 条带取满整个周期 时,公式的主项给出
与实际解数 完全吻合(当然在 时误差项的渐近界无意义,这只是巧合级别的吻合,用来说明主项的含义)。
第四步:量子算法在这个例子上会做什么。 真实的算法不会顺序尝试 :它先由相位估计求出 、;然后注意到 ( 是生成元),于是任意非零的 必在 中,判定器几乎总是回答 ;Grover/BBHT 在 个候选、 个标记项上以约 次查询级别的代价直接选中某个解,最后再跑一次离散对数输出 。整个流程中”计算 、检查子群成员关系、求离散对数、验证等式”都被做成相干子程序,由振幅放大选择成功分支——小例子里看不出加速,但线路结构与 巨大时完全相同。
这个例子还演示了判定器退化的极端情形:当 是生成元()时,子群成员检验形同虚设,问题实质上变成” 个候选中做搜索”,量子成本 直接就是好的。真正困难的情形是 都远小于 ——那也正是特征和引理发挥压缩作用的舞台。
为了看清成员检验真正起筛选作用的样子,把同一个域上的底换成非生成元:取 (阶 ,)、(阶 ),解 。这里 ,正式的算法会交换两组参数使大阶在 侧;为了演示 侧筛选的力学,我们保持原状。逐 计算 :
- :,,这个 被成员检验直接排除,根本不用求离散对数;
- :,;
- :,且 ,得解 :验证 ;
- :,(右端为零不可能有解);
- :,得解 :;
- :,得解 :。
个候选中 个被判定器筛掉、 个命中;对照主项:,再次与实际吻合。在这个例子里”先筛后搜”的收益已经可见:Grover 只需要在判定器标记的项上放大振幅。
7. 更强承诺与平均情形(保留条款)
第 5 节的 是无条件的最坏情形界。论文还在若干更强的输入承诺下给出更好的界,本节转述这些结果,并明确它们的适用边界。
多解承诺下的参数化界。 短边引理实际上给出的是解数估计而不只是存在性:当 较大时,渐近公式应用于整个基本周期矩形()给出
当 时,主项压过误差,矩形中有 个解。标记项为 时振幅放大的成本是 而非 :沿 方向搜索的成本为
由对称性,沿 方向搜索(固定 、对 求离散对数)成本为 。取两个方向中较好的一侧( 时沿 搜,代价更小),并用 :
这就是论文中 一类的参数化界: 越大(基本周期矩形越”密”地布满解),算法越快。注意它与最坏情形界的关系:这个界依赖”矩形中确有许多解”的承诺,当 时期望解数不足 ,承诺失效,算法退回到第 5 节的分析。
平均情形。 对除 个之外的所有目标值 ,论文用关于 的均方估计(把特征和对 取平均,用第二矩控制典型偏离)证明:典型情形的条带宽度可以取得比最坏情形更窄,从而把 改进为 。均方估计的直觉是:Weil 型的逐点界必须覆盖最不利的 ,而”平均平方”只允许少数 取到那么大的偏离,故典型界更紧。此处我们只陈述结论与直觉,均方技巧的完整展开超出本词条范围。
保留条款(务必牢记)。 以上是不同输入承诺下的结论,不能把最好参数区间的复杂度(如 )写成无条件的最坏界——无条件最坏界仍是 。其次,无论哪种承诺,所有这些算法关于输入长度 都是指数时间。最后,论文明确说明:这些结果没有解决相关半直积群 HSP 所需的多项式时间指数同余子程序——该 HSP 的量子算法状态不因本结果而改变。指数同余能否在 时间求解,仍然开放。
8. 小结与习题
小结。
- 指数同余 的困难来自两个指数经加法耦合;固定任一个变量,问题退化为一次离散对数,量子上是容易的。
- 阶查找把搜索域限制为 的基本周期矩形,其中 、,不妨 。
- 乘法特征的正交关系把”子群成员关系”代数化,给出解数渐近公式 ;主项是随机模型的期望解数,误差项衡量乘法子群与加法平移之间的偏离。
- 取条带宽度 使主项压过误差,得到短边引理: 时前 个 中必有解。
- Shor 离散对数包装成相干判定器 ,BBHT 振幅放大在 上做平方根加速;两种情形分别给出 与 的界,统一为最坏 。
- 相对同一骨架下经典判定器(大步小步 、逐项扫描)的 ,这是关于 的三次方指数改进;但 不是关于 的多项式算法,两类算法都是指数时间。
习题。
- 证明:固定 时,方程 在 中至多有一个解。(提示: 在阶为 的区间上是什么样的映射?)
- 验证 3.1 节的指标公式:设 取遍在 上平凡的全部 个乘法特征,证明 当 时等于 ,当 时等于 。(提示:把这些特征与商群 的特征一一对应,再用正交关系。)
- 完整写出情形 A()从 到 的不等式链,并指出每一步用到了哪条前提(、、 的定义)。(模仿 5.1 节,但要求自己补全所有代数变形。)
- 设 是 的生成元。说明:除 (即 )外,任意固定的 都能用一次离散对数求出唯一的 ,并解释此时整个算法的成本由什么决定。
- 解释为什么特征和引理负责算法的”无漏解”(完备性),而 Grover 搜索本身不负责。具体地:如果跳过短边引理、直接在 上跑 Grover,算法的输出语义会出什么问题?
- 在第 7 节的多解承诺 下,自行推导参数化界 。(提示:在 、 两个方向分别做带 个标记项的振幅放大搜索,写出两个成本 与 ,取较好的一侧,并用 消元。)
参考文献
- Zoo 编号 111:Wim van Dam 与 Igor E. Shparlinski, Classical and Quantum Algorithms for Exponential Congruences.
- Peter Shor, Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer.
参考资料
- 本词条整理自《量子计算算法教程》原文:ch09-algebra-number-theory/exponential-congruences
- 内容遵循 CC BY-NC-SA 4.0 许可协议