“判断一个数大概是素数”和“给出任何人都能核验的素性证明”是两件不同的事。Miller—Rabin 很快,但通过若干轮只说明合数概率很低;AKS 可以确定性判断,却不一定是实践中最省资源的证书系统。本词条从 Lucas 定理出发,推导量子阶查找如何直接产生素性证据,并讨论它与 Shor 分解、经典证书之间的取舍。
预备知识:量子傅里叶变换、相位估计与 Shor 算法。本词条不再重复推导阶查找电路本身,而是把它当作一个可以调用的黑盒:输入单位 与模数 ,输出 。我们要回答的问题是:为什么知道一个元素的乘法阶,就能证明 是素数?量子计算机在这里到底省掉了哪一步?
1. 问题的来龙去脉:素性判定与素性证明
给一个大整数 (比如密码学中常见的几百位整数),我们想回答“ 是素数吗”。这个问题的历史可以分成两条线。
第一条线是概率性判定。Fermat 小定理说,若 是素数,则对所有与 互素的 都有 。反过来随机挑一个 检验这个同余式,就得到一个快速的素性“测试”:通不过一定是合数,通过了则“大概是素数”。但存在 Carmichael 数——一类合数,能让所有与它互素的 都通过 Fermat 检验——所以单靠 Fermat 条件永远不能把合数和素数干净地分开。
最小也最著名的一个 Carmichael 数是 。为什么它能骗过所有底数?任取 ,则 模每个素因子都可逆,由 Lagrange 定理,它模 、模 、模 的阶分别整除 、、(即各自的群阶 )。而 、、 全都整除 ,所以
三个同余式模数两两互素,由中国剩余定理合并得 。也就是说,只要底数不直接暴露因子(那种情况 检查会先抓住它),Fermat 检验对 必然放行——这正是“Carmichael 数让所有单位都通过 Fermat 检验”的含义。Miller—Rabin 测试把条件加强为检查 这一串幂中是否出现 的非平凡平方根,可以证明每个合数都有至少 的随机底数会“揭穿”它,重复几十轮后误判概率指数级小。这在实践中完全够用,但逻辑上它只给出“这个数是合数的概率极低”,而不是一份可以逐项核验的证明。
第二条线是确定性判定与证书。Pratt 在 1975 年指出:每个素数都有一份长度多项式有界、可以多项式时间核验的证书 (certificate)——换句话说,素性不仅好猜,而且“猜对之后可以说服别人”。2002 年 Agrawal—Kayal—Saxena (AKS) 给出第一个无条件的确定性多项式时间素性判定算法,把“素性在 P 中”变成定理;此后 Cheng、Bernstein、Morain 等人围绕 AKS 变体与椭圆曲线素性证明 (ECPP) 不断改进复杂度(见文末 Zoo 393—395 对应的工作)。这些结果表明:经典计算机原则上不需要量子帮助就能判定素性。
那么量子算法还有什么可做的?关键在于资源模型与证书形式。经典 Lucas—Pratt 证书要求先分解 ;分解一般整数正是经典计算的困难所在,而恰是量子计算机擅长的事。1995 年 Chau 与 Lo 提出用 Shor 算法分解 、再走经典 Lucas 证书的路线(Zoo 397);2017 年 Donis-Vela 与 Garcia-Escartin 进一步观察到:证明素性根本不需要完整分解 ,只需要一个阶为 的元素,而“求一个元素的阶”可以绕开分解直接由量子阶查找完成(Zoo 396)。本词条的主线就是把这个观察讲透。
2. 数论准备:单位群、乘法阶与 Lucas 定理
设 为奇数。模 的单位群 (unit group) 定义为
即所有与 互素的剩余类,运算是模 乘法。它确实是群:互素的两个数相乘仍与 互素(封闭性);每个元素有逆元,因为 时 Bézout 等式给出 ,即 。看个具体例子:求 模 的逆元。辗转相除一步得 ,回代即 ,所以 ;验算 ,正确。群的大小是 Euler 函数
元素 的乘法阶 (multiplicative order) 定义为
即让 的幂第一次回到 所需的最小指数。这个最小值一定存在:群有限,序列 必然出现重复,而一旦 (),两边乘以 得 。
阶的最重要性质来自 Lagrange 定理:有限群中任意元素的阶整除群的阶。对 这就是
若 为素数,则 全部与 互素,,于是 ;特别地 ,这正是 Fermat 小定理。
反方向一般不成立: 不能反推 是素数——Carmichael 数就是反例,它们是合数,却让所有单位都通过 Fermat 检验。问题出在 Fermat 条件只限制了“ 是阶的倍数”,而没有限制阶本身有多大。Lucas 的关键观察是把条件加强到阶恰好等于 :
Lucas 定理。若存在 使 ,则 必为素数。
这个定理的证明很短,我们把每一步都写出来:
- 第一步,由 Lagrange 定理,。假设 ,则 是 的正整数倍,特别地
- 第二步, 数的是 中与 互素的元素,这个集合总共只有 个数,所以恒有
- 第三步,两式夹出 ,即 中的每一个数都与 互素。
- 第四步,若 是合数,它必有一个因子 满足 ;这个 落在 中,但 ,与第三步矛盾。所以 是素数。Q.E.D.
值得强调的是这个条件不是空的:若 真的是素数,这样的 一定存在。原因是 为素数时 是阶 的循环群 (cyclic group),即存在生成元 使 ,而生成元的阶正是 。我们在第 5 节证明循环性。于是 Lucas 定理给出的是一个充要的认证机制:素数一定有阶 的元素,有阶 的元素一定是素数。剩下的全部问题只是:怎么找到这样一个元素,又怎么向别人证明它的阶确实是 。
3. 经典 Lucas 证书:为什么绕不开分解
直接验证 似乎要检查 全都不是 ——这是指数次工作。Lucas 证书的核心技巧是:只要知道 的素因子分解,检查就塌缩成对每个素因子的一次模幂。
设已知
其中 是互不相同的素数、。验证以下两组条件:
为什么这就够了?记 ,逐步推理:
- 由第一个条件,(阶的基本性质:;证明:写 、,则 ,由 的最小性得 )。
- 把 写成素因子分解 ,其中 (因为 整除 ,它的素因子不会跑出 的清单,指数也不会更大)。
- 假如某个 ,那么 整除 (两边做素因子分解逐项比较指数即见),于是由上面同一条基本性质,——与第二个条件矛盾。
- 所以对所有 都有 ,即 。Q.E.D.
核验的代价:每个条件是一次模幂,指数约 位,用快速幂是 次模乘;不同素因子的个数 最多 个。所以给定 的分解后,整个核验是多项式时间的。困难没有消失,只是从“求 的因子”转移成了“分解 ”——对经典计算机来说,这一般仍是困难问题。
Pratt 证书把这个观察递归化:证书里除了 和 的分解,还递归附上每个 自己的素性证书。递归在 处终止,整棵证书树的规模可以证明是多项式有界的,核验完全经典、完全确定性。这就是“素性属于 NP”的具体含义。
用 走一遍这棵递归树,它的结构就一目了然。证书内容是:
- 顶层:,见证元 ,分解 ;
- 子证书 1:, 是素数(递归基例,直接承认);
- 子证书 2:,见证元 ,分解 (再次落到基例)。
核验者做的事:顶层检查 、、(具体数值在第 9 节算出);子证书 2 检查 、,即 。整棵树一共三次模幂,全是几位的算术——但前提永远是有人已经把 分解好了。
Chau—Lo 方法(Zoo 397,1995 年)的想法到此已经呼之欲出:分解 是经典困难的,但量子计算机有 Shor 算法。那就用 Shor 算法分解 ,再构造上述 Lucas—Pratt 证书。优点非常突出:最终输出的证书(、 的分解、递归子证书)可以由纯经典验证者快速核验,量子计算机只负责“出题”,不负责“监考”。代价则是我们执行了一次完整的整数分解——而判定 Lucas 条件其实只需要知道一个元素的阶,分解给出的是多得多的信息。有没有可能只取所需、跳过分解?这正是下一节的方法。
4. 直接阶查找算法
Donis-Vela 与 Garcia-Escartin(Zoo 396,2017 年)的算法把量子子程序从“分解 ”换成“求 ”。令 为 的位长。算法的单次迭代如下:
- 均匀随机选择 ,用辗转相除法计算 。若 ,直接输出非平凡因子 :这确定 为合数,而且 本身就是一份可以经典核验的证据(验算一次乘法即可)。
- 经典计算 ( 为奇数, 是整数;用快速幂做, 次模乘)。若 ,则 是合数见证,输出“合数”。
- 若 ,则 ,于是 ,这个 不可能是 Lucas 定理要的元素,丢弃,换一个新的 。
- 若 ,调用 Shor 的量子阶查找,得到 。
- 若 ,由 Lucas 定理确定 为素数,输出证书 ;否则换一个 。
下面逐步说明每个分支为什么是对的。
第 2 步的两个子情形。 说“ 说明 是合数”,严格来说有两条路径,都值得看清:
- 若 ,则 Fermat 小定理的逆否命题直接给出 是合数, 是 Fermat 见证;
- 若 但 ,那么 是 的非平凡平方根: 即 ,而 意味着 既不整除 也不整除 ,所以 必有因子分在两边, 给出非平凡因子。模素数时 只有 两个解(域上二次多项式至多两个根),所以非平凡平方根的存在本身证明 是合数。这正是 Miller—Rabin 测试与 Shor 算法共同使用的经典技巧。
两种情形结论一致:第 2 步不会冤枉任何素数。
第 3 步为什么安全。 意味着阶整除 ,所以阶至多是 ,这样的 对 Lucas 定理无用。反过来,任何阶为 的元素 必然落在 分支:因为 是 的平方根(它的平方是 ),而阶为 说明 ,所以只能等于 (这里用到 为素数时 中 的平方根只有 ;若 是合数,这个 反正也不是我们要的)。换句话说,预筛选永远不会误删真正的生成元。
第 4 步为什么值得调用量子计算机。 同时告诉我们两件事:(i) ,所以 ;(ii) 。把 的因子 的幂次记作 (即 ),则 (i) 说 ,(ii) 说 ,合起来
已经“凑齐”了 的全部因子 ,差的只可能是奇数部分。所以这个分支里的 是阶为 的“候选者”,值得花一次量子阶查找去确认。预筛选不是正确性所必需(直接对第 1 步幸存的 做阶查找也行),但它避免对明显无用的底数调用昂贵的量子电路,而且让阶查找的结果有明确的比较目标:只收 。
第 5 步的收尾。 阶查找以常数概率返回正确的 (相位估计加连分数的标准成功率);若 直接成功,若 或者阶查找失败,就换一个新的 重来。阶查找失败是独立随机事件,重复常数次即可把每轮的有效成功率垫高,渐近上只贡献对数因子(见第 6 节)。
4.1 阶查找黑盒:我们到底调用了什么
为了不把本词条变成 Shor 算法的复述,我们把量子阶查找当作黑盒使用,但黑盒的接口规格必须说清楚,因为算法的正确性与复杂度都挂在这些规格上。
为什么第 1 步要求 。 阶查找的核心酉算子是模乘映射
它要成为酉算子(即计算基上的置换),当且仅当 在模 下可逆,也就是 :若 可逆, 有逆映射 ,因而是双射;反之若 ,则 ,映射把两个不同的基矢送到同一个像,不是置换,更谈不上酉。所以 gcd 预筛选不仅抓出明显的合数,也保证喂给量子电路的输入合法。
黑盒内部做了什么(一句话版本)。 保持 维不变子空间 (),在其上循环置换基矢,因此特征值是 ()。相位估计把某个 的近似值读到辅助寄存器,再用连分数展开从逼近值中恢复分母 。细节见相位估计与 Shor 算法两课。
黑盒的输出规格。 相位估计读出的近似值以(近似)均匀分布落在 上;连分数展开能恢复出 本身(而不是 的因子)的条件是 ,其概率为 ——用第 5 节将介绍的同一条下界,这至少是 。所以单次运行直接给出 的概率是 ,另有有界概率因相位估计精度不足而失败;独立重复 次即可把每轮的成功率垫到常数。失败模式值得细看:测量到 的 时,连分数给出 的真因子而非 ——但“ 吗”这个判定问题对假阳性天然免疫:即使黑盒报错,只要我们核验 (已是第 2 步的副产品)并且只接受 这一个答案,错误的 只会让我们白跑一轮,而不会让我们颁发错误证书。这一点与第 7 节“素数证书零假阳性”的论断互为表里。
黑盒的成本规格。 相位估计需要把相位读到约 位精度(连分数法要求误差小于 才能唯一确定分母 ),因此要执行 个逐比特受控的模乘 ;每次模乘即一次 位整数乘法加一次模约减。这个成本账在第 6 节展开。
5. 素数情形:为什么很快找到生成元
算法的期望运行时间取决于一个数论问题:当 是素数时,随机 有多大概率是生成元(即阶为 )?答案依赖两件事: 是循环群,以及循环群中生成元的精确计数。
5.1 素数时 是循环群
为素数时,模 的剩余类构成域 , 是它的乘法群。我们要证:
引理(域的乘法群的有限子群是循环群)。设 是某个域的乘法群的有限子群,则 是循环群。
证明的关键是多项式根的计数:域上 次多项式至多有 个根,所以对任何 ,方程 在 中至多有 个解。记 ,对每个 ,令
逐步推出 的形状:
- 若 ,取一个阶为 的元素 。它的幂 互不相同( 蕴含 ,与阶为 矛盾),且每一个都满足 。这根方程至多有 个解,所以 的解恰好就是这 个幂。
- 任何阶为 的元素都满足 ,故必在 之中。其中 的阶是 (习题 4 证明这个标准事实),等于 当且仅当 。这样的 恰有 个。
- 所以对每个 ,要么 ,要么 。
最后用 Euler 函数的经典恒等式
收尾(恒等式的证明:把 按 分类, 等价于 ,所以第 类恰有 个元素; 跑遍 的因子时 也跑遍 的因子,求和即得)。一方面, 的 个元素按各自的阶分类,给出 ;另一方面 且 。两个和相等而逐项有上界,只能每项都取等: 对所有 成立。特别地
即 中存在阶为 的元素——它就是生成元, 是循环群。Q.E.D.
这个证明还顺手给出了计数:阶为 的循环群恰有 个生成元。
5.2 随机底数的成功概率
当 为素数, 是阶 的循环群,由上面的计数,随机 成功的概率是
可以小到多少?先看一个精确公式。Euler 函数是积性的( 时 ,这是中国剩余定理的直接推论),且对素数幂有 ( 个数里恰有 个是 的倍数,其余都与之互素)。于是对 ,
这个乘积只在 拥有很多小素因子时才小:因子 砍半,再乘 、……衰减得最厉害的情形是 取前若干个素数的乘积(所谓的 primorial)。而前 个素数的乘积大小约为 ,倒过来即 ,代入 Mertens 定理()的尺度, 的下坠速度只是对数对数级。解析数论据此给出如下粗略下界:对足够大的 ,
我们不证明这条界(它属于解析数论的标准结果),但要会用它的含义: 衰减得非常慢,只比 略快。于是单次随机选取的成功概率 ,独立重复选取时,由几何分布的期望,找到一个生成元所需的期望底数个数满足
注意一个关键的尺度换算: 是 位数,,所以
(对数取什么底只影响常数因子)。因此期望只需 个随机底数就能命中一个生成元。
给一个数量级感受:取 位的 ,自然对数下 ,所以期望尝试次数上界约为 个底数——量子阶查找是昂贵的,但它只需要被调用二十来次(期望值),而不是指数次。
想把“期望常数次成功”升级为“以 的概率成功”,用 解出
取 为逆多项式(如 ),,这就是“重复 次把错误压到逆多项式”的来源,我们在第 6 节把它组装进总复杂度。
6. 复杂度逐项分析
现在把每个部件的成本摆出来。记 。
- 第 1 步(gcd):辗转相除法对 位整数做 轮带余除法,每轮朴素实现 比特操作,合计 。这不是瓶颈。
- 第 2 步(预筛选模幂):快速幂把 分解为 次模乘(指数有 位,每位移最多一次平方、一次乘法)。用普通整数乘法电路每次模乘 门,合计 经典门。
- 第 4 步(量子阶查找):这是主成本,值得把账拆细。相位估计需要把相位读到约 位精度(连分数法要求误差小于 而 ),因此指数寄存器用 个比特,逐比特施加受控的 ()。这里有一个标准省法: 不必靠“把 做 次”来实现——经典预处理算出常数 (反复平方 次即得),于是 就是一次普通的受控模乘。所以量子部分总共 个受控模乘;每次模乘即一次 位整数乘法加一次模约减,用普通整数乘法电路为 门,乘起来是 ;最后对指数寄存器做一次逆 QFT,成本 ,被吸收。合计约 门。
- 底数个数:第 5 节算出期望 个。
- 错误放大:把整个流程重复 次,把“不走运没碰到生成元”以及阶查找自身的常数失败率一并压到逆多项式。
逐项相乘:每次量子阶查找 ,乘以期望底数个数 ,再乘以错误放大的 ,得到 Donis-Vela—Garcia-Escartin 口径下的总复杂度
如果底层整数乘法不用朴素电路,而采用渐近快速乘法(Harvey 与 van der Hoeven 证明两个 位整数可以在 时间内相乘,Zoo 398),每次模乘从 降到 ,每次阶查找相应地从 降到约 ,代入同样的底数个数与放大因子,总复杂度可降至接近
必须强调原文的保留条款:这些式子是门操作的渐近估计,不能省略模乘电路、容错开销或成功率放大。具体来说,大 记号吞掉了模乘电路的常数因子;真实机器上运行还需要容错编码带来的巨大物理比特开销;而“期望 个底数”说的是期望,严格的尾概率界要靠上面的放大论证。比较两个复杂度表达式时,比较的只是渐近增长阶。
7. 合数分支与证书类型
算法的输出要按分支分类讨论,这是理解“量子素性证明”概念的关键。
确定性的合数证据。 若算法在第 1 步找到 ,或在第 2 步找到 Fermat 见证 / 的非平凡平方根,合数结论可以经典核验:验算一次 gcd、一次模幂或一次乘法即可。这类输出是零误差的。
概率性的合数判断。 若算法跑了很多轮,既没有找到合数见证,也没有找到阶为 的元素,我们只能宣布“ 大概是合数”。这不是确定性证书:素数也可能因为抽样不走运而暂时没有命中生成元(概率 )。第 5 节的估计说明,重复 次可把这类错误降到逆多项式,再按需要继续放大——但它本质上是 Monte Carlo 式的判断,与“找到生成元”那种一锤定音的认证地位不同。素数证书零假阳性;“多次未找到”仍是概率性判断。
把放大账算清楚:设单轮(含一次阶查找)“找到生成元”的成功概率至少为 ( 由底数命中概率 与阶查找自身的常数成功率相乘得到,仍是 量级)。 轮全部失败的概率是 ;要它不超过 ,解 得 。取 (逆多项式),,于是 轮封顶——这正是第 6 节总复杂度里两个 因子的最终归宿。若还想压到 量级,,代价相应变为 轮,渐近上仍只是多项式。
两种素数证书的对比。 当算法找到生成元 时, 是一份“量子可验证证书”:任何拥有量子计算机的验证者重新运行阶查找,确认 ,即可被说服。但它不像带有 完整分解的 Lucas—Pratt 证书那样可由纯经典验证者快速核验——这是少做分解换来的代价。Chau—Lo 路线多做一次完整分解,换回经典可核验性;直接阶查找路线省下分解,验证者也需要量子设备。选用哪一种,取决于“证书给谁看”。
最后摆正量子方法的位置:量子素性测试并不意味着经典素性测试无效。素性判定早已被证明在 P 中(AKS);量子改进针对的是特定操作模型和渐近次数。本词条的核心教学价值,是展示“阶”这个 Shor 算法内部的对象,本身就可以作为正向的素性证书——量子计算在这里省掉的不是“判定素性”这个任务,而是“分解 ”这次过度的努力。
8. 三种素性证明路线的取舍
到这里我们已经见到了三条路线,把它们并排摆在一起,取舍就清楚了。
经典 Lucas—Pratt 路线。 不分解 就无法开始;而分解一般整数没有已知的多项式时间经典算法。一旦(以某种方式)拿到分解,证书递归、零假阳性、纯经典可核验,核验只做 次模幂。瓶颈完全在“分解 ”这一步上。
经典判定算法(AKS、ECPP)。 AKS 是无条件的确定性多项式时间判定,回答了理论问题,但它输出的是“是/否”而非可独立核验的证书,且实际常数并不占优;ECPP 在实践中高效且输出经典可核验的证书,但其复杂度分析依赖启发式假设(这是模型依赖的保留条款:启发式成立与否不影响单次证书核验的正确性,只影响运行时间的严格上界)。这些工作与量子路线并不冲突——它们说明经典世界已经把“判定”解决得很好,量子路线的卖点在别处。
Chau—Lo 路线(量子分解 + 经典证书)。 用 Shor 算法分解 的渐近成本与分解 相当(同样是模幂与 QFT 的组合),换来一份 Lucas—Pratt 型证书:验证者只需要经典计算机。适合“证明一次、到处张贴”的场景——证书发布给没有能力或没有意愿运行量子设备的验证者群体。
直接阶查找路线(本词条)。 不分解任何东西,只对候选底数做阶查找;证书 由量子验证者重跑阶查找来核验。省掉的是对 的完整分解:分解要处理所有因子、处理幂次、还要对因子递归判定素性,而 Lucas 条件只需要一个元素的阶。换来的是验证者也必须是量子的。
一句话总结:证书越“经典可核验”,前期要做的量子/数论工作越多;证书越“轻”,验证者的门槛越高。 选哪条路线,取决于证书要交给谁、以及分解 在你的参数区间里到底有多贵。
9. 小例子: 与 完整演算
9.1 :一次成功的认证
取 ,。我们模拟算法,先看一个会走进死胡同的底数,再看一个成功的。
底数 。 第 1 步:,通过。第 2 步:
,落入第 3 步:,阶至多为 ,丢弃。(确实 ,阶就是 。)
底数 。 第 1 步:。第 2 步:
,进入第 4 步调用阶查找。我们把阶查找会返回的结果手工算出来,逐个幂:
前五个幂都不是 ,第六个是 ,所以 。第 5 步:由 Lucas 定理, 是素数,输出证书 。
顺便用第 3 节的经典 Lucas 检验复核这份证书:已知 ,检查 (上面已算)、、,两个素因子都通过——阶确实是 。这也演示了经典核验需要知道 这个分解,而量子路线不需要。
再注意 的情形:,,会进入第 4 步,但 。这说明 只是“候选”,第 4 步的量子阶查找是必不可少的裁判(习题 3 展开这一点)。
最后把 的完整阶谱列出来,验证第 5 节的计数公式。六个元素的阶分别是
其中 由 、、、 逐步验得( 说明阶整除 但不整除 ,又不整除 ,只能是 )。阶为 的元素恰有 和 两个,数目等于 ,与“阶为 的循环群恰有 个生成元”一致。随机底数命中生成元的概率是 ,期望 次尝试——上面我们试了 (丢弃)、(成功),正好两次,与期望同量级。
9.2 :为什么永远不会出错误证书
取 。先算 :,由 Euler 函数的乘性()
确实 共 个元素。由 Lagrange 定理,任何单位的阶都整除 ,而证书要求阶等于 ——……更直接地说,, 的因子中没有 ,所以任何 的阶都不可能等于 ,算法永远不会对 产生素数证书。这正是 Lucas 定理逆方向的体现:合数不存在阶 的元素。
再看两个底数在算法中的实际走向。
底数 。 第 1 步:。第 2 步:
快速幂:,,所以 。,落入第 2 步的合数分支。验证:, 是 Fermat 见证, 被确定证伪。顺带看到 ( 且更小的正幂 都不是 ),与“阶整除 ”一致。
底数 (演示非平凡平方根分支)。 ;,所以 。第 2 步:
,但 :这是 的非平凡平方根情形。按第 4 节的分析, 直接给出 的非平凡因子——合数结论不仅成立,还附带了一份分解证据。
10. 小结与习题
本词条的要点:
- Fermat 条件只限制 ,会被 Carmichael 数整体欺骗;Lucas 条件要求完整阶等于 ,是素数的充要认证。
- 经典 Lucas—Pratt 证书把困难转移到分解 ;Chau—Lo 用 Shor 算法补上这块短板,证书经典可核验。
- 直接阶查找(Donis-Vela—Garcia-Escartin)绕过了先分解 的步骤:预筛选(gcd 与 )挑出候选者,量子阶查找一锤定音。
- 素数时随机底数以概率 命中生成元,期望 次尝试。
- 总复杂度 (普通乘法),采用渐近快速乘法时接近 ;这些是渐近门估计,不含容错开销。
- 素数证书零假阳性;“多次未找到”仍是概率性判断。必须说明证书由经典验证者还是量子验证者核验。
习题。
1.(基础)补全 Lucas 定理证明的细节:证明若 ,则 ;并说明若 是合数,为什么 。 2.(计算)找出模 的全部生成元,并验证其数目等于 。(提示:先验证 是生成元,再用“ 是生成元当且仅当 ”。) 3.(理解)解释为什么 推出 与 ,但不保证阶就是 。用第 9 节 、 的例子说明:为什么第 4 步的量子阶查找不能省。 4.(证明)设 是阶为 的循环群的生成元,证明 ,并由此推出阶为 的循环群恰有 个生成元。 5.(推导)由 出发,推导找到一个生成元所需的期望底数个数上界;说明为什么 ;再把每次阶查找 、底数个数与 次错误放大组装成总复杂度 。 6.(讨论)比较“输出 的因子分解”(Chau—Lo)和“输出一个生成元 ”(直接阶查找)两种证书的核验资源:各自的验证者需要什么设备、做多少次什么运算?什么场景下前者的额外分解是值得的?
参考文献
- Zoo 编号 396:Alvaro Donis-Vela 与 Juan Carlos Garcia-Escartin, A Quantum Primality Test with Order Finding.
- Zoo 编号 397:H. F. Chau 与 H.-K. Lo, Primality Test via Quantum Factorization.
- Zoo 编号 393—395:Qi Cheng、Daniel J. Bernstein、François Morain 关于 AKS/ECPP 素性证明复杂度的经典工作。
- Zoo 编号 398:David Harvey 与 Joris van der Hoeven, Integer Multiplication in Time .
- Zoo 编号 399 是 Quantum Algorithm Zoo 记录的一条个人通信,不作为可独立核验的技术依据。
参考资料
- 本词条整理自《量子计算算法教程》原文:ch09-algebra-number-theory/primality-proving
- 内容遵循 CC BY-NC-SA 4.0 许可协议