想象你是一名锁匠学徒,面前立着一扇巨大的金库门,铭牌上写着:“这把锁的密码是两个 2048 位大素数的乘积。”师傅递给你一筐钥匙,叹气道:“老朋友 RSA 用它锁住了全世界的数据,你一把把试吧。”这就是经典计算机面对大数分解的命运——把几百位的大数拆回两个质因数,用尽宇宙诞生至今的时间也试不完。 可隔壁“量子歌舞团”的首席编舞师小 Q 有不同主意。她盯着金库门看了三天,突然拍手:“锁芯里有节拍!如果我随便挑一个舞步 a,把 a 的 1 次方、2 次方、3 次方……除以 N 的余数一个个踩在纸上,会发现脚印在循环:1, 7, 4, 13, 1, 7, 4, 13……。循环一圈要 4 步,这个'周期 r'就是开锁的节奏!”更神奇的是,小 Q 能让所有舞者同时踩出所有舞步(量子叠加),再请“节拍分析仪”(量子傅里叶变换)一扫,周期 r 立刻水落石出。有了 r,锁匠三两下就能转出真正的密码 p 和 q。 这就是 Shor 算法:把“暴力试钥匙”变成“听节拍”,把指数级的绝望变成多项式级的从容。1994 年 Peter Shor 提出它时,全球密码学家倒吸一口凉气——RSA 的倒计时就此开始。

岗位关联

掌握 Shor 算法,你就拥有了量子时代密码安全的“透视镜”:既能看到 RSA 体系的裂缝,也能为后量子密码迁移提供科学判断力——这是未来十年安全架构师的核心竞争力。

目录
  1. 可视化演示
  2. 一、算法概述:一把试不完的钥匙
  3. 二、数学原理:把拆锁变成找节拍
  4. 三、量子傅里叶变换:全声部同时入耳
  5. 四、周期查找:所有舞者同时踩点
  6. 五、量子电路实现:给舞团排练
  7. 六、复杂度分析:速度之争
  8. 七、应用与挑战:破锁之后的世界
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示Shor算法周期查找与因子提取、量子线路QFT峰值检测及与经典算法复杂度对比,交互探索量子分解的指数加速。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+CAP1+'

一、算法概述:一把试不完的钥匙

想象一间金库,铁门上嵌着一把双重密码锁:密码是两个 2048 位的大素数 p 和 q 的乘积 N。管理员把 N 贴在门上供所有人查验,却把 p、q 锁进保险柜。只要有谁能把 N 拆回 p 和 q,整扇门就对他敞开。绝大多数公钥密码系统——尤其是我们每天都在用的 RSA——就是建立在这个门槛上:拆开它,数学上“极难”;不拆开它,一切安然无恙。

经典计算机挑战这道门的姿势很笨拙:拿 2 去试除,不行;拿 3、5、7……一把把钥匙试下去。对小 N 这不成问题,可当 N 有几百位十进制数字时,宇宙诞生至今的时间都不够试。目前最快的经典算法——数域筛法——也只需要亚指数时间,依然令人绝望。正是这道“拆不开的锁”,让 RSA 安安稳稳统治了互联网四十余年。

Shor 算法的革命性在于:它干脆不试钥匙了。它把“两个素数相乘的大数”这个静态对象,变成一个会“踩节拍”的动态过程——选择随机底数 a,观察序列 a^x mod N 的循环规律。锁不再是锁,而是一支等待被听出节奏的舞。这就是本节的第一个核心公式:锁的结构本身。

N=p×q\displaystyle N = p \times q

1. 公开的大整数 N:$N$ 是门上的公开锁体,即 RSA 的模数,常见规模是 1024~2048 比特,任何人都能读取和验证。

NN

2. 秘密素数 p:$p$ 是构成锁的两个密码之一,由密钥生成器随机挑选的大素数,绝不公开。

pp

3. 秘密素数 q:$q$ 是与 $p$ 不同的另一个大素数,同样保密;两者共同撑起整把锁。

qq

4. 乘法乘积:$\times$ 表示两个素数相乘得到 $N$;乘法只需一瞬,但从 $N$ 反推 $p$、$q$ 却极其困难——这种不对称正是 RSA 的地基。

N=p×qN = p \times q

小结一下:经典方法像一把把试钥匙,指数级的绝望写在复杂度里;而 Shor 的第一步只是重述了锁的结构。真正的魔法在后面——把拆锁换成找节拍。

二、数学原理:把拆锁变成找节拍

小 Q 不再盯着锁孔,而是请舞者们在舞台上踩出一串脚印。她随便挑了一个舞步 a,让舞者依次跳 a 的 1 次方、2 次方、3 次方……每跳一步,就把结果除以 N 取余数,记下一个“脚印值”。奇妙的事情发生了:这些脚印值不是杂乱无章的,而是像音乐的小节一样循环往复。比如 N=15、a=7 时,脚印是 1, 7, 4, 13, 1, 7, 4, 13……正好 4 步一个循环。这个循环长度 r 在数论里叫“a 关于 N 的阶”(order)。

为什么循环会出现?因为在“模 N”的时钟世界里,数字只有 N 个位置:0 到 N-1。走完一圈后,余数必然重复,而且由于底数 a 与 N 互质,序列会严谨地周期循环。找出这个周期 r,就是 Shor 算法全部工作的靶心。而一旦拿到 r,打开金库就只剩最后一步数学手续:如果 r 是偶数,令 x = a^(r/2) mod N,那么 x² ≡ 1 (mod N),说明 (x-1)(x+1) 能被 N 整除——用欧几里得算法求最大公约数,就能从 x-1 和 x+1 里揪出 p 和 q。

ar≡1(modN)\displaystyle a^{r} \equiv 1 \pmod{N}

1. 随机底数 a:$a$ 是随机选取的整数,范围在 $2 \le a \le N-2$ 之间,相当于小 Q 随机挑一个舞步。

aa

2. 同余符号:$\equiv \pmod{N}$ 表示左右两边除以 N 的余数相同,是在“模 N 时钟”世界里比较大小。

(modN)\pmod{N}

3. 最小正整数 r:$r$ 是使 $a^r$ 模 N 余 1 的最小正整数,也就是脚印序列完成一次循环所需的步数。

ar≡1a^{r} \equiv 1

4. 因子提取:若 r 为偶数且 $a^{r/2} \not\equiv -1 \pmod{N}$,则 $x-1$ 与 $x+1$ 分别与 N 有非平凡公约数,用 gcd 即可拆分:

gcd⁡(ar/2−1,N),gcd⁡(ar/2+1,N)\gcd(a^{r/2} - 1, N), \quad \gcd(a^{r/2} + 1, N)

数学这一步很关键:它把“分解大数”等价转化成了“求一个序列的周期”。前者听起来无从下手,后者却长着一副可以被量子计算机“听出来”的模样。去舞团找节拍,总比在宇宙里捞针有希望得多。

三、量子傅里叶变换:全声部同时入耳

舞池里几百位舞者同时踩着不同舞步,耳朵里塞满杂乱的声音,怎么才能听出其中隐藏的主节奏?小 Q 请来一位天才指挥家——量子傅里叶变换(QFT)。这位指挥家的本事是:无论多少声部同时演奏,他都能在脑海中把所有声部按“频率”重新排列,让隐藏的主旋律变成一根根明显的尖峰旗标。周期性越强的信号,尖峰就越突出。

在数学上,量子傅里叶变换就是把一个叠加态从“位置表示”变到“频率表示”。经典傅里叶变换处理一串数字,QFT 处理的是量子态上的概率幅。它把一个均匀叠加的量子态 |x⟩ 变成一系列带相位旋转的叠加,等价于在复平面上“拨动”每个分量的指针。当被分析的函数具有周期 r 时,变换后的输出会在某些特定频率上出现强烈的干涉峰,其他频率则被相消抹平。

这就是 Shor 算法加速的灵魂:经典找周期需要对每个 x 逐个观察、统计,而 QFT 一次性把所有 x 的周期信息汇聚到少数频率峰上。虽然测量只能读出一个结果,但峰的位置携带了周期信息,多测几次就能锁定 r。

f^(k)=1M∑x=0M−1f(x) e2πikx/M\displaystyle \hat{f}(k) = \frac{1}{\sqrt{M}} \sum_{x=0}^{M-1} f(x)\, e^{2\pi i k x / M}

1. 求和遍历:$\sum_{x=0}^{M-1}$ 遍历所有量子态 x,相当于指挥同时听取所有舞者的声部。

∑x=0M−1\textstyle\sum_{x=0}^{M-1}

2. 序列取值:$f(x)$ 是被分析的函数值,在这里就是脚印序列 $a^x \bmod N$。

f(x)=ax mod Nf(x) = a^{x} \bmod N

3. 相位旋转:$e^{2\pi i k x / M}$ 是在复平面上按 $kx/M$ 比例旋转的相位因子,让同周期分量的指针对齐、异周期分量互相抵消。

e2πikx/Me^{2\pi i k x / M}

4. 归一化系数:$\frac{1}{\sqrt{M}}$ 保证变换前后总概率保持为 1,是量子力学“概率守恒”的要求。

1M\frac{1}{\sqrt{M}}

可以说,QFT 就是这台“节拍分析仪”的核心芯片:它不制造周期,而是把藏在叠加态里的周期“照亮”。没有它,量子叠加只是一堆乱码;有了它,乱码中立刻浮现出规律。

四、周期查找:所有舞者同时踩点

现在轮到大戏上演。小 Q 把舞者们分成两排:第一排每人头上顶一个号码 x(从 0 到 M-1),第二排每个人跟随第一排联动地踩出对应的脚印值 a^x mod N。她先对第一排所有舞者施加“哈达玛门”,让每一个人同时处于所有号码的叠加态;接着执行一个精心编排的“模幂运算”电路,让第二排每个舞者自动算出与第一排号码配对的脚印。一瞬间,整个舞团进入了一种奇妙的纠缠状态:所有 (x, a^x mod N) 配对同时存在。

这就是量子并行。但别高兴太早——如果此刻直接测量第二排,只会坍缩出某一个脚印值,周期信息完全消失。小 Q 的妙招是:先让第一排经过量子傅里叶变换,把所有配对的相位“对齐到周期上”,然后再测量。此时第一排的输出 y 大概率落在 M/r 的整数倍附近,周期 r 的信息以“频率”的形式被保留了下来。

最后一步是经典后处理:把测得的结果 y 除以 M,得到比值 y/M,再用连分数展开逼近一个真分数 c/r,分母就是我们要找的 r。因为量子测量有随机性,单次结果未必完美,所以整个流程通常要重复几次,取最可靠的 r。

∣ψ⟩=1M∑x=0M−1∣x⟩⊗∣ax mod N⟩\displaystyle \left|\psi\right\rangle = \frac{1}{\sqrt{M}} \sum_{x=0}^{M-1} \left|x\right\rangle \otimes \left|a^{x} \bmod N\right\rangle

1. 第一寄存器:$\left|x\right\rangle$ 保存号码 x 的叠加态,相当于所有舞者同时顶起所有号码牌。

∣x⟩\left|x\right\rangle

2. 张量积耦合:$\otimes$ 把两个寄存器耦合成整体态,使第一排和第二排形成一一对应的纠缠关系。

⊗\otimes

3. 第二寄存器:$\left|a^{x} \bmod N\right\rangle$ 是联动算出的脚印值,与第一排号码配对绑定。

∣ax mod N⟩\left|a^{x} \bmod N\right\rangle

4. 测量与连分数:QFT 后测量第一排得 y,满足 $y/M \approx c/r$,再用连分数展开分母得到周期 r:

yM≈cr\frac{y}{M} \approx \frac{c}{r}

整个周期查找像一场精心排练的群舞:叠加是全员站位,纠缠是两排联动,QFT 是统一节拍,测量是按下快门,连分数则是冲洗照片。至此,最难啃的骨头已经啃完——剩下的只是把 r 变成 p、q 的收尾工作。

五、量子电路实现:给舞团排练

理论再漂亮,最终要落到硬件上:怎么用真实的量子门把这场“群舞”排练出来?小 Q 的编舞手册里主要有三样工具。第一样是哈达玛门 H,它把一个量子比特从确定态变成叠加态,相当于给舞者发出“同时站到所有位置”的指令。第二样是受控模幂电路 U_a,它实现让第二排舞者联动踩出 a^x mod N 的操作——这是整个线路里最庞大、最耗资源的部分,由一系列受控乘法和模约减器构成。

第三样是逆量子傅里叶变换 QFT⁻¹。读者可能会疑惑:刚才说 QFT 是节拍分析仪,怎么又来个逆变换?其实 Shor 算法里的 QFT 都跟在模幂运算之后,把纠缠态里的相位信息“解码”成可测量的频率峰,正是“正着用”;而在量子相位估计等变体中出现的往往是逆 QFT。无论正逆,本质都是同一台分析仪的校准旋钮。

Ua∣x⟩=∣ax mod N⟩\displaystyle U_{a} \left|x\right\rangle = \left|a x \bmod N\right\rangle

1. 酉算子 U_a:$U_a$ 对应模乘法的量子门电路,是可逆的酉变换,保证量子演化不损失信息。

UaU_{a}

2. 输入态:$\left|x\right\rangle$ 是寄存器当前状态,代表舞者头顶的号码牌。

∣x⟩\left|x\right\rangle

3. 输出态:$\left|a x \bmod N\right\rangle$ 是模乘运算的写入结果,所有 x 在叠加中并行完成这一步。

∣ax mod N⟩\left|a x \bmod N\right\rangle

4. 可逆性保证:对 N 取模且 a 与 N 互质时,乘 a 是可逆操作(乘 a 的逆元即可还原),这是量子电路合法性的前提。

∣a−1y mod N⟩\left|a^{-1} y \bmod N\right\rangle

真实的量子硬件远比编舞手册残酷:每一个量子门都有错误率,叠加态会在几十微秒内“退相干”崩塌,噪声像排练时的起哄声。因此 Shor 电路必须配合量子纠错码,把逻辑比特用多个物理比特冗余编码。这也是为什么理论上 2048 位 RSA 只需几千个逻辑量子比特,实际却需要上百万个物理量子比特——舞团还在排练,离正式登台还远。

六、复杂度分析:速度之争

如果给两位锁匠计时,差距会让人咋舌。经典锁匠用的是数域筛法,完成一次分解所需的基本运算量大约是 e 的“位数的三次根次方”次方——这是一个超多项式甚至亚指数的函数。位数从 1024 加到 2048,耗时不是翻倍,而是平方级地暴增。这也是密码学界敢把 RSA 密钥越设越长的底气:加长密钥就是对暴力最有效的防御。

而量子锁匠小 Q 的账本完全不同。Shor 算法总共需要大约 O((log N)² · loglogN · logloglogN) 个量子门,简化地看就是位数的多项式量级。位数从 1024 涨到 2048,工作量只涨大约 8 倍——对一台还算像样的量子计算机来说,几乎是“加个班”的事。这就是所谓“指数级加速”的真正含义:不是快十倍百倍,而是把复杂度从指数拉回多项式,从“不可能”拉回“可行”。

TShor=O((log⁡N)3)\displaystyle T_{\text{Shor}} = O\left((\log N)^{3}\right)

1. 大 O 记号:$O(\cdot)$ 表示算法随输入规模增长时的渐近复杂度,忽略常数只留量级。

O(⋅)O(\cdot)

2. 对数规模:$\log N$ 是 N 的比特数,例如 RSA-2048 的 $\log N \approx 2048$。

log⁡N\log N

3. 立方量级:$(\log N)^3$ 表示量子门数量随比特数立方增长,属于“轻松搞定”的多项式时间。

(log⁡N)3(\log N)^{3}

4. 对比经典:经典数域筛法约为 $O\left(e^{(\log N)^{1/3}}\right)$ 次运算,位数翻倍即指数爆炸。

O(e(log⁡N)1/3)O\left(e^{(\log N)^{1/3}}\right)

这场速度之争的结论简单而震撼:密钥越长,Shor 的优势越大。对经典是灾难的 2048 位,对量子只是换了个更大的排练厅。密码学家们终于意识到,在多项式时间面前,加长 RSA 密钥只是把死刑缓期执行,而不是赦免。

七、应用与挑战:破锁之后的世界

既然 Shor 算法终将打开 RSA 这把锁,世界该如何应对?我们先看“破锁”的完整落地:拿到周期 r 后,经典后处理用欧几里得算法求两个最大公约数,它们恰好就是 p 和 q。整个过程环环相扣:随机选底数、量子找周期、经典提因子。这既是 Shor 算法的终点,也是量子安全时代的起点。

第一个直接冲击是 RSA 与 ECC 体系的末日倒计时。TLS 握手、数字签名、HTTPS 证书——所有依赖“大数分解难”和“离散对数难”的协议都可能被批量解密。更可怕的是“先截获、后破解”攻击:攻击者今天录下加密流量,等量子计算机成熟后再解密。因此各国政府和云厂商已经开始向“后量子密码”迁移:基于格问题的 LWE(带误差学习)等方案被认为是抗量子的,因为它们连量子计算机也找不到多项式解法。

TShor=O(b3),b=⌈log⁡2N⌉\displaystyle T_{\text{Shor}} = O(b^{3}), \quad b = \lceil \log_{2} N \rceil

1. 比特长度 b:$b = \lceil \log_{2} N \rceil$ 是大整数 N 的二进制位数,例如 RSA-2048 的 $b = 2048$。

b=⌈log⁡2N⌉b = \lceil \log_{2} N \rceil

2. 量子运行时间:$T_{\text{Shor}}$ 是量子算法完成分解所需的量子门总数,是判断可行性的标尺。

TShorT_{\text{Shor}}

3. 立方增长:$O(b^{3})$ 表明耗时随位数三次方增长,2048 位只是 $2048^3 \approx 8.6 \times 10^9$ 量级的门。

O(b3)O(b^{3})

4. 经典对比:经典分解最快也要亚指数时间,位数翻倍就指数爆炸,因此“加长密钥”救不了 RSA。

O(eb1/3)O\left(e^{b^{1/3}}\right)

至于实验进展,目前量子计算机在真实硬件上只分解过 15、21 这类“玩具数字”——2019 年 IBM 用 4 个超导量子比特分解了 15,2023 年有团队用光子平台做到分解 21。真正的瓶颈不在算法设计,而在量子纠错:把错误率压到阈值以下、把逻辑量子比特扩展到数千个,还需要多年工程攻关。舞团的谱子已经写好,但舞台和演员还在建造。好消息是,算法已经为密码学划定了明确的日落时间,后量子世界的帷幕正在拉开。

AI 应用场景

量子安全风险评估

阶段:风险建模与迁移规划

解决的问题:金融机构和政府部门需要判断“RSA 系统还能安全用几年”。传统方式只能凭经验猜测,而基于 Shor 算法复杂度模型可以量化:结合量子比特数、错误率和门延迟,估算破解特定密钥位数的年份窗口(即著名的 "Y2Q" 倒计时)。

具体案例:某大型银行的密码学团队用 Shor 的复杂度公式推算:在 1 万个逻辑量子比特、错误率 10⁻¹⁰ 的条件下,破解 RSA-2048 需要约 1 亿物理量子比特与数小时到数天的运行时间。据此他们制定了“2028 年前完成核心系统迁移”的路线图。

后量子密码迁移实施

阶段:算法替换与工程落地

解决的问题:RSA/ECC 即将被 Shor 类算法威胁,但全面替换加密协议风险极高。传统方案“一刀切”切换会导致兼容性灾难,AI 辅助的混合加密方案可以平滑过渡。

具体案例:某云厂商在 TLS 1.3 中引入格密码 ML-KEM(Kyber)与 RSA 的混合模式:证书同时携带两种签名,客户端协商时优先使用抗量子算法,老客户端自动回退 RSA。测试环境先行验证性能损耗仅为 8%。

量子相位估计在量子化学中的应用

阶段:量子模拟与科学计算

解决的问题:Shor 算法最核心的子程序是量子相位估计(QPE),它同样适用于求解分子基态能量——这是研发催化剂、电池材料的关键。传统从头算方法在电子数增多时指数级发散。

具体案例:研究团队用 QPE 估计固氮酶 FeMo 辅因子的电子能级,以设计更高效的合成氨催化剂。虽然硬件仍处原型阶段,但算法框架已被验证为量子化学模拟的标准范式。

Python 演示

python62 行
import random  def gcd(a, b):    while b:        a, b = b, a % b    return a  def mod_exp(base, exp, mod):    result = 1    base = base % mod    while exp > 0:        if exp % 2 == 1:            result = (result * base) % mod        exp = exp // 2        base = (base * base) % mod    return result  def find_order(a, N):    r = 1    value = a % N    while value != 1:        value = (value * a) % N        r += 1        if r > N:            return None    return r  def shor_factor(N, attempts=10):    if N % 2 == 0:        return 2    for _ in range(attempts):        a = random.randint(2, N - 2)        common = gcd(a, N)        if common > 1:            return common        r = find_order(a, N)        if r is None or r % 2 != 0:            continue        x = mod_exp(a, r // 2, N)        if x == N - 1:            continue        p = gcd(x - 1, N)        if p > 1:            return p    return None  def factorize(N):    p = shor_factor(N)    if p is None:        print("factorization failed")        return    print("{} = {} x {}".format(N, p, N // p))  if __name__ == "__main__":    for num in [15, 21, 35, 143]:        factorize(num)
目的:用 Python 完整模拟 Shor 算法的经典部分——模幂、找阶、gcd 后处理——演示 15、21、35、143 如何被分解。
  1. result = (result * base) % mod快速幂核心:平方再取模,避免大数爆炸
  2. while value != 1:逐个累乘找“阶”,模拟量子周期查找的输出
  3. r = find_order(a, N)找到周期 r,对应量子部分要“听”出的节拍
  4. x = mod_exp(a, r // 2, N)计算半阶值 x,为 gcd 做准备
  5. p = gcd(x - 1, N)经典后处理:用欧几里得算法提取非平凡因子

常见误区

误区量子计算机能同时尝试所有数字,所以 Shor 算法就是超级暴力搜索,把所有可能的因子一次性试一遍。

正解Shor 算法的核心根本不是搜索因子,而是把分解问题转化为“找周期”:随机选底数 a,求 a^x mod N 的循环周期 r,再用 gcd 导出因子。它甚至从不“猜”p、q,只通过周期间接破解——相当于不再一把把试钥匙,而是去听锁芯的节奏。

为何常见:量子叠加常被宣传为“同时计算所有可能”,人们自然脑补成超级并行暴力搜索,却忽略了 Shor 真正的数学巧思。

误区既然所有 x 都同时算出了 a^x mod N,那么测量时就能一次性拿到全部结果,量子并行等于免费加速。

正解测量会使叠加态坍缩到单一结果,直接“全读”违背量子力学。Shor 的巧妙在于先用量子傅里叶变换把周期信息集中到少数频率峰上,再通过多次测量和连分数后处理还原 r。并行只是铺垫,QFT 才是真正的加速器。

为何常见:“同时计算”的直觉很强大,但测量坍缩这条量子定律反直觉,初学者最容易在这里翻车。

误区教材上的电路图画得整整齐齐,所以 Shor 算法跑一次就能稳定输出 p 和 q,是确定性算法。

正解Shor 是概率型算法。单次运行可能因为 r 为奇数、a^(r/2) ≡ -1 (mod N) 或测量结果不佳而失败,需要重复数次,并用连分数后处理,最后还要经典验证因子是否真的整除 N。

为何常见:教材流程图通常只展示一条“幸运路径”,省略了随机重试和经典后处理环节,制造了确定性的错觉。

误区把 RSA 密钥从 2048 位加到 8192 位,破解工作量就翻 4 倍,量子计算机也得认怂。

正解Shor 的复杂度是位数的多项式量级 O(b³),位数翻倍只带来约 8 倍开销,对量子计算机几乎无感。真正抗量子必须更换算法族(如 LWE 格密码),而不是加长 RSA 密钥。

为何常见:经典密码学里“加长密钥抗暴力破解”是根深蒂固的直觉,但多项式时间算法完全绕开了这条防线。

面试题

Q1. Shor 算法的核心目标是什么?

单选题 · easy

  • A.大整数的质因数分解← 正确答案
  • B.旅行商的最短路径求解
  • C.图着色与组合优化问题
  • D.大规模矩阵的特征值计算

答案:A。Shor 算法专门破解“大整数分解”难题,即从公开的 N 反推出素数 p 和 q。它不像旅行商、图着色那样是通用优化算法,而是直指 RSA 的数学地基。

Q2. RSA 公钥密码的安全性主要依赖什么?

单选题 · easy

  • A.大数分解在经典计算下极难← 正确答案
  • B.量子芯片制造成本极其高昂
  • C.对称加密算法密钥非常长
  • D.哈希碰撞很难被构造发现

答案:A。RSA 的安全根基是“从乘积 N 反推 p、q 在经典计算下极难”。一旦 Shor 算法让大数分解变成多项式时间,RSA 就失去了安全前提,密钥长短、芯片成本都无关紧要。

Q3. 在 Shor 算法中,随机底数 a 的“阶 r”是指什么?

单选题 · mid

  • A.使 a 的 r 次方模 N 余 1 的最小 r← 正确答案
  • B.使 a 的 r 次方模 N 余 0 的任意 r
  • C.量子线路中使用的逻辑门的总数目
  • D.经典后处理阶段迭代计算的总轮数

答案:A。阶 r 是最小正整数使 a^r ≡ 1 (mod N),对应“脚印序列循环一次需要几步”。它是 Shor 算法要提取的周期,而非电路规模或迭代次数。

Q4. 以下关于量子傅里叶变换的说法正确的有?

多选题 · mid

  • A.能将叠加态中的周期信息集中到频率峰值← 正确答案
  • B.是经典离散傅里叶变换的量子版本← 正确答案
  • C.可以直接输出大数的素因子而无需后处理
  • D.是 Shor 算法中实现量子加速的核心模块← 正确答案

答案:ABD。QFT 把周期信息汇聚成尖峰(A 对),它是经典 DFT 的量子对应物(B 对),也是 Shor 加速的核心(D 对)。但 QFT 只给出频率峰,还必须经过测量、连分数和 gcd 后处理才能得到因子(C 错)。

Q5. 关于 Shor 算法的测量与概率特性,下列说法正确的有?

多选题 · mid

  • A.测量会使叠加态坍缩到单一结果← 正确答案
  • B.测量结果集中于周期倒数的整数倍处← 正确答案
  • C.并行计算的所有结果都能无损耗读出
  • D.连分数展开可用于修正测量近似周期← 正确答案

答案:ABD。测量触发坍缩(A 对);QFT 后测量结果大概率落在 M/r 的整数倍附近(B 对);连分数用于从 y/M 还原精确 r(D 对)。但“无损耗读出全部结果”违反测量坍缩定律(C 错)。

Q6. Shor 算法分解大整数 N 的量子复杂度量级是?

单选题 · hard

  • A.关于比特数多项式量级的高效复杂度← 正确答案
  • B.关于 N 的平方量级的经典计算开销
  • C.随位数增加的指数级爆炸式增长复杂度
  • D.与暴力试除法完全相同的迭代复杂度

答案:A。Shor 的复杂度约 O((logN)³),随比特数多项式增长。选项 B、C、D 分别对应经典筛法、指数搜索、试除法,都是经典计算的复杂度特征,而非量子算法。

Q7. 量子测量得到 y 后,经典后处理用连分数展开的目的是什么?

单选题 · mid

  • A.从测量比值恢复出精确的周期 r 值← 正确答案
  • B.提高量子比特相干时间以稳定测量
  • C.判断测量得到的数字是否是素数
  • D.将量子态重新归一化为单位向量

答案:A。测量得到的 y/M 是周期的近似比值,连分数展开把它逼近成真分数 c/r,分母即精确周期 r。相干时间、素性判断、归一化都发生在其他环节。

Q8. 在 Shor 算法完整流程中,以下哪些属于经典计算步骤?

多选题 · mid

  • A.随机选取底数 a 并检查公共因子← 正确答案
  • B.使用欧几里得算法计算最大公约数← 正确答案
  • C.用量子门执行量子傅里叶变换步骤
  • D.判定 r 奇偶并验证半阶结果的因子← 正确答案

答案:ABD。随机选 a、gcd 求因子、判断 r 奇偶并验证,都是经典计算机完成的部分;只有模幂和 QFT 在量子芯片上执行。Shor 是“经典+量子”混合算法。

Q9. 后量子密码学兴起的直接原因是什么?

单选题 · easy

  • A.大规模量子计算可能破解 RSA 与 ECC← 正确答案
  • B.经典计算机算力已接近物理极限
  • C.哈希函数完全丧失了抗碰撞性能
  • D.对称密码密钥容易被穷举暴力破解

答案:A。后量子密码是为抵御 Shor 类算法而生,目标是找到量子计算机也难解的数学问题(如格问题)。它与经典算力、哈希碰撞、对称密码穷举没有直接因果关系。

Q10. 当前 Shor 算法实验实现的主要瓶颈是什么?

单选题 · extreme

  • A.量子门错误率与退相干造成的噪声← 正确答案
  • B.经典控制器内存不足以存储中间态
  • C.当前找不到足够大的合数分解目标
  • D.连分数展开分母的精度仍然不足

答案:A。算法本身早已清晰,瓶颈在硬件:量子门错误率太高、退相干时间太短,必须依赖大规模量子纠错,导致物理量子比特数量比逻辑比特多三个数量级。经典内存、目标数字和连分数精度都不是关键障碍。