Shor 算法与 Grover 算法详解
理解分解和搜索的量子加速,以及它们对密码学的影响
Shor 算法与 Grover 算法详解 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
量子威胁
量子计算机并非只是更快地运行经典算法——它们利用量子叠加和干涉,以指数级更快的速度解决某些问题。两种算法威胁着大多数已部署的密码系统:Shor 算法(破解 RSA/ECC)和 Grover 算法(削弱对称密码和哈希算法)。
Shor 算法概述
Shor 算法(1994 年)可以在量子计算机上以多项式时间解决整数分解和离散对数问题。它会直接破解 RSA(基于因数分解)、Diffie-Hellman(模 p 的离散对数)以及 ECDH/ECDSA(椭圆曲线离散对数)。
量子傅里叶变换
Shor 算法的关键组成部分是量子傅里叶变换(QFT)——DFT 的量子版本,速度呈指数级提升。在寻找周期时,QFT 可以确定 f(x) = a^x mod N 的周期,并通过 GCD 推导出 N 的因数。
Shor 因数分解步骤
要分解 N: (1) 随机选择 a < N,并检查 gcd(a,N)=1。 (2) 使用 QFT 找到 f(x)=a^x mod N 的周期 r。 (3) 在较高概率下,gcd(a^{r/2}±1, N) 可以得到一个非平凡因数。经典步骤的复杂度为 O(log N);量子寻找周期的复杂度为 O((log N)^3),属于多项式时间。
破解 RSA-2048
经典因数分解的最佳算法是 GNFS,复杂度为亚指数级 O(exp((64/9 log N)^{1/3} log log N)^{2/3}))。容错量子计算机上的 Shor 算法复杂度为多项式级 O((log N)^3)。破解 RSA-2048 需要约 4000 个逻辑量子比特和约 10^9 次门操作。如今的 NISQ 计算机只有约 1000 个含噪量子比特,尚未构成威胁。
Grover 算法
Grover 算法(1996 年)可以对无结构搜索提供平方级加速。对于包含 N 个项目的搜索空间,经典算法需要 O(N) 次查询,而 Grover 算法只需要 O(√N) 次查询。应用于密码学时,它可以在 O(2^{n/2}) 而不是 O(2^n) 的复杂度下破解 n 位对称密钥。
Grover 算法对对称密码的影响
AES-128 的经典安全强度为 2^128,Grover 算法会将其降至 2^64,因此无法抵御大型量子计算机。AES-256 的安全强度从 2^256 降至 2^128,仍然安全。解决办法是将对称密钥长度加倍。SHA-256 的抗碰撞强度从 2^128 降至 2^85(生日攻击加 Grover 算法)。SHA-256 的原像安全强度从 2^256 降至 2^128,仍然可以接受。
量子威胁时间线
当前的 NISQ 量子计算机(IBM Heron:133 个量子比特;Google Sycamore:70 个量子比特)规模太小且噪声太大,无法执行具有密码学意义的计算。估计需要到 2035—2050 年,容错量子计算机才可能破解 RSA-2048。先收集、后解密攻击已经构成当前威胁。
先收集,后解密
攻击者如今收集并存储加密流量。等量子计算机可用后,他们会对这些流量进行追溯解密。因此,长期有效的机密(例如政府机密数据和医疗记录)如今就已经面临风险。对于此类数据,PQC 迁移必须立即开始。
不受 Shor 算法威胁的算法
格问题(LWE、SIS)、基于编码的问题(McEliece)、基于哈希的签名(SPHINCS+)以及多变量问题,目前都没有已知的多项式时间量子算法。这些问题构成了 NIST 后量子标准的基础。
后量子迁移的紧迫性
NIST 的 PQC 标准(ML-KEM、ML-DSA、SLH-DSA)已于 2024 年定稿。各组织应当:清点当前密码学的使用情况,识别需要长期保存的数据,并优先为密钥交换部署 PQC(由于先收集、后解密攻击,密钥交换最为紧迫)。签名迁移相对没有那么紧迫。
快速检查
Grover 算法对 AES-128 有什么影响?
回顾
Shor 算法(多项式时间)可以破解 RSA、DH 和 ECC。Grover 算法(平方级加速)会使对称密钥的强度减半。解决办法是迁移到 NIST 的 PQC 标准(基于格)。下一节:CRYSTALS-Kyber KEM。
常见问题解答
「Shor 算法与 Grover 算法详解」课时是免费的吗?
是的 — 「Shor 算法与 Grover 算法详解」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「Shor 算法与 Grover 算法详解」这节课中我会学到什么?
理解分解和搜索的量子加速,以及它们对密码学的影响 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「Shor 算法与 Grover 算法详解」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Shor 算法与 Grover 算法详解
- CRYSTALS-Kyber:基于格的 KEM
- CRYSTALS-Dilithium 与 Falcon 签名
- 迁移到 PQC:混合方案