算法
肖尔算法(Shor's algorithm)
假设你想把一个大数还原成相乘得到它的那两个质数。对于一个几百位的数字,我们已知最好的经典方法所花的时间会超过宇宙的年龄,而 RSA 加密的全部安全性正是建立在这一难度之上。肖尔算法是一套量子「配方」,能把这件事做得快得多。它的高明之处在于不去正面强攻因数分解,而是把问题换成另一个:挑一个数,让它对你想分解的那个数取模、不断升到更高的幂,这个序列最终会以某个周期重复出现。只要你能找到这个周期,再做一点普通的算术,就能把因数交到你手上。
找出这个周期,正是量子部分大显身手的地方。算法会准备一个寄存器,让它同时容纳许多输入,再施加量子傅里叶变换(QFT)——它的构造使得错误答案的振幅相互抵消,而揭示周期的那些振幅彼此增强。当你测量时,极有可能读出一个指向周期的数值。这并不是说机器「把每个幂都试一遍、并行地全部检查」——若真如此,测量后什么有用的东西都留不下来。加速的来源,是把干涉安排得让问题的周期结构变得「响亮」,而其他一切都安静下去。对于这个特定、高度结构化的任务,这相对于我们目前已知的每一种经典方法,都带来了指数级的优势。
f(x) = a^x mod N — Shor finds the period r of this function, then uses it to factor N
把分解 N 重新表述为寻找模幂运算的周期 r;量子傅里叶变换负责把 r 提取出来。
如今没有任何一台量子计算机的规模能接近在真实 RSA 密钥上运行肖尔算法所需的水平——那需要数百万个高质量、经过纠错的量子比特,远远超出我们现在拥有的、含噪声的 NISQ 时代机器——但正是这一未来的威胁,促使人们转向后量子密码学(post-quantum cryptography)。
又称
另见