<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>量子计算机 on kenji.blog</title><link>http://kenji.blog/zh-cn/tags/%E9%87%8F%E5%AD%90%E8%AE%A1%E7%AE%97%E6%9C%BA/</link><description>Recent content in 量子计算机 on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 05 Sep 2026 22:10:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/zh-cn/tags/%E9%87%8F%E5%AD%90%E8%AE%A1%E7%AE%97%E6%9C%BA/index.xml" rel="self" type="application/rss+xml"/><item><title>【完全解剖】什么是量子计算机？〜从零开始理解终极计算原理〜</title><link>http://kenji.blog/zh-cn/p/quantum-computer-basics/</link><pubDate>Sat, 05 Sep 2026 22:10:00 +0900</pubDate><guid>http://kenji.blog/zh-cn/p/quantum-computer-basics/</guid><description>&lt;img src="http://kenji.blog/p/quantum-computer-basics/quantum_basics_eyecatch_1788613712487.jpg" alt="Featured image of post 【完全解剖】什么是量子计算机？〜从零开始理解终极计算原理〜" />&lt;h2 id="前言量子计算机带来的计算范式转变">前言：量子计算机带来的“计算范式转变”
&lt;/h2>&lt;p>近年来，我们在新闻和技术文章中几乎每天都能看到“量子计算机”这个词。“现在的超级计算机需要计算几千年的问题，它只需几分钟就能完成”、“现有的密码技术可能会全部被破解”等仿佛科幻电影般的故事被传得神乎其神。从Google、IBM、Microsoft等大型IT企业，到世界各地的大学和初创公司，都在为这项梦幻技术的实用化而展开激烈竞争。&lt;/p>
&lt;p>然而，如果被问到“量子计算机到底是什么？”，恐怕很少有人能准确回答。许多人可能都有“能够同时计算所有组合的魔法盒子”这样模糊的印象，但严格来说，这是不正确的。&lt;/p>
&lt;p>在本文中，我们将从基础开始，彻底且专业但通俗易懂地解说量子计算机与经典计算机（我们平时使用的PC或智能手机）在根本上有什么区别，以及它是如何将“叠加态（Superposition）”、“量子纠缠（Entanglement）”、“量子门（Quantum gates）”等量子力学的奇妙现象应用于计算的。当您读完这篇文章时，应该就能清楚地理解量子计算机真正的厉害之处以及目前面临的挑战。&lt;/p>
&lt;hr>
&lt;h2 id="第1章经典计算机与量子计算机的决定性差异">第1章：经典计算机与量子计算机的决定性差异
&lt;/h2>&lt;p>为了理解量子计算机的原理，我们首先需要复习一下我们目前使用的“经典计算机”是如何运作的。&lt;/p>
&lt;h3 id="比较表经典计算机-vs-量子计算机">比较表：经典计算机 vs 量子计算机
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>项目&lt;/th>
&lt;th>经典计算机&lt;/th>
&lt;th>量子计算机&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>基本单位&lt;/strong>&lt;/td>
&lt;td>比特 (0 或 1)&lt;/td>
&lt;td>量子比特 (0和1的叠加)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>状态表现&lt;/strong>&lt;/td>
&lt;td>确定性&lt;/td>
&lt;td>概率性（在观测之前不确定）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>计算方式&lt;/strong>&lt;/td>
&lt;td>串行处理（并行化需要物理核心）&lt;/td>
&lt;td>量子并行性（同时操作指数级的状态）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>擅长的计算&lt;/strong>&lt;/td>
&lt;td>四则运算、日常数据处理&lt;/td>
&lt;td>质因数分解、量子化学计算&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>容错能力&lt;/strong>&lt;/td>
&lt;td>非常强&lt;/td>
&lt;td>非常弱（需要极低温环境或纠错）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="经典计算机的世界非0即1的比特bit">经典计算机的世界：非0即1的“比特（Bit）”
&lt;/h3>&lt;p>经典计算机将所有信息表示为“0”或“1”的状态。这被称为 &lt;strong>比特（Bit）&lt;/strong>。在物理上，它由半导体芯片上晶体管电压的高（1）或低（0）来表示。
你智能手机里的高清照片、现在正在阅读的这篇文章，甚至是你最喜欢的YouTube视频，归根结底都可以还原为庞大的“0和1的排列”。计算，无非是将AND（逻辑与）、OR（逻辑或）、NOT（逻辑非）等基本逻辑电路组合起来，对这些0和1的排列进行操作的过程。
这是一个非常确定且决定论的世界。只要输入相同，就必定能得到相同的输出。&lt;/p>
&lt;h3 id="量子计算机的世界既是0又是1的量子比特qubit">量子计算机的世界：既是0又是1的“量子比特（Qubit）”
&lt;/h3>&lt;p>另一方面，量子计算机的最小信息单位被称为 &lt;strong>量子比特（Qubit：Quantum bit）&lt;/strong>。
量子比特最大的特点在于，它不像经典比特那样只能处于“0”或“1”的其中一种状态，而是可以呈现出“0和1以特定概率混合的状态”。这被称为 &lt;strong>“叠加态（Superposition）”&lt;/strong>。&lt;/p>
&lt;p>例如，如果把经典比特比作抛出后只能是“正面”或“反面”朝上的硬币，那么量子比特经常被比作“在空中持续旋转的硬币”。旋转中的硬币既不能说是正面也不能说是反面，两者的状态叠加在一起。只有当硬币掉落在地板上停止运动的瞬间（这在量子力学中被称为“观测”），它到底是“正面”还是“反面”才会被确定下来。&lt;/p>
&lt;p>量子计算机正是将这种微观世界（量子力学）特有的“在观测之前状态不确定”的性质，直接融入到了信息处理的过程中。&lt;/p>
&lt;hr>
&lt;h2 id="第2章从根本上改变计算的3个量子力学性质">第2章：从根本上改变计算的3个量子力学性质
&lt;/h2>&lt;p>量子计算机惊人计算能力的源泉，并不仅仅是因为它的时钟频率高或者部件小，而在于它将物理法则本身作为计算资源来利用。以下3个量子力学现象是关键。&lt;/p>
&lt;h3 id="1-叠加态superposition与指数级的信息量">1. 叠加态（Superposition）与指数级的信息量
&lt;/h3>&lt;p>如前所述，量子比特可以同时保持0和1两种状态。1个量子比特是“0和1的叠加”，那么增加量子比特的数量会怎样呢？&lt;/p>
&lt;ul>
&lt;li>1个量子比特：2个状态（0, 1）的叠加&lt;/li>
&lt;li>2个量子比特：4个状态（00, 01, 10, 11）的叠加&lt;/li>
&lt;li>3个量子比特：8个状态的叠加&lt;/li>
&lt;li>&lt;strong>N个量子比特：$2^N$个模式的叠加&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>如果只有50个量子比特，就能同时保持$2^{50}$（约1100万亿）个状态。而仅仅300个量子比特，就能一次性保持$2^{300}$个（比宇宙中所有原子的总数还要多！）模式。这种指数级的信息保持能力，构成了量子计算机潜力的基础。要在经典计算机的内存中记住比宇宙原子数量还多的状态，在物理上是不可能的。&lt;/p>
&lt;h3 id="2-量子纠缠entanglement幽灵般的超距作用">2. 量子纠缠（Entanglement）：幽灵般的超距作用
&lt;/h3>&lt;p>量子纠缠是一种极其违背人类直觉的奇妙现象，甚至连爱因斯坦都称其为“幽灵般的超距作用（Spooky action at a distance）”而终生无法接受。&lt;/p>
&lt;p>当多个量子比特进入“量子纠缠”状态时，它们之间会产生强烈的联系，变成一种命运共同体般的关系： &lt;strong>“只要其中一个状态确定了，无论它们相隔多远，另一个的状态也会瞬间确定下来”&lt;/strong>。&lt;/p>
&lt;p>例如，假设有两个处于纠缠状态的量子比特A和B（它们分别处于0和1的叠加态）。如果我们观测A发现它是“0”，那么超越信息传递速度极限的光速，B的状态也会瞬间确定下来（比如必定成为“1”）。
量子计算机就是通过利用这种量子纠缠，来表达多个量子比特之间复杂的关联性，并进行超并行的数据处理。如果没有纠缠，量子计算机的计算能力将与经典计算机没有多大区别。&lt;/p>
&lt;h3 id="3-量子干涉quantum-interference让正确答案浮现的魔法">3. 量子干涉（Quantum Interference）：让正确答案浮现的魔法
&lt;/h3>&lt;p>你可能会想：“既然能同时保持所有模式，那只要一次性并行计算，瞬间就能得出答案了吧？”这是对量子计算机最常见的误解。
即使在叠加状态下进行了计算，为了最终知道答案，我们还是必须要“观测”。但在观测的瞬间，状态会随机坍缩成$2^N$个模式中的某一个。这样一来，只会得出一个随便的（随机的）答案。&lt;/p>
&lt;p>这时就要用到 &lt;strong>“量子干涉（Interference）”&lt;/strong> 了。利用波和波碰撞时，波长一致的地方会相互增强，错开的地方会相互抵消的现象（这在本质上与降噪耳机的原理相同）。&lt;/p>
&lt;p>优秀的“量子算法”会在计算过程中巧妙地操作量子态，使得 &lt;strong>“导向正确答案的状态（波）的概率振幅相互增强（放大）”，“导向错误答案的状态的概率振幅相互抵消（相消）”&lt;/strong>。从而确保在最终观测时，“正确答案”能以无限接近100%的概率掉落出来。设计好这种干涉过程，正是量子编程的精髓所在。&lt;/p>
&lt;hr>
&lt;h2 id="第3章如何进行计算量子门与量子电路">第3章：如何进行计算？“量子门”与“量子电路”
&lt;/h2>&lt;p>就像经典计算机使用逻辑门（AND、OR、NOT等）来进行计算一样，量子计算机也是通过对量子比特施加被称为 &lt;strong>“量子门（Quantum Gates）”&lt;/strong> 的操作来进行计算的。将多个量子门组合在一起就称为 ** 量子电路（Quantum Circuit）**。&lt;/p>
&lt;p>量子比特的状态可以用数学上称为“布洛赫球面（Bloch sphere）”的三维球体表面上的一个点来表示。北极是“0”，南极是“1”，赤道上则是“0和1各占一半的叠加态”。所谓量子门，无非就是在球体表面上旋转状态（向量）的操作。&lt;/p>
&lt;p>让我们来介绍几个代表性的量子门。&lt;/p>
&lt;h3 id="1-阿达马门h门">1. 阿达马门（H门）
&lt;/h3>&lt;p>这是量子计算机独有的、最基本的一种门，在经典计算机中并不存在。如果让状态完全是“0”的量子比特通过H门，就能制造出0和1被观测到的概率正好各占一半的“完全叠加态”（布洛赫球面上赤道上的点）。作为量子计算的初始化步骤，许多算法一开始都会先将H门应用于所有的量子比特。&lt;/p>
&lt;h3 id="2-泡利门x-y-z门">2. 泡利门（X, Y, Z门）
&lt;/h3>&lt;p>这些门包含了相当于经典计算机中NOT门（将0翻转为1，1翻转为0）的操作。在布洛赫球面上，它们相当于围绕X轴、Y轴、Z轴旋转180度的操作。特别是X门，它会将北极（0）翻转到南极（1），因此作用与经典的NOT门完全相同。而Z门的作用是翻转叠加态的“相位（类似于波的节奏）”，在引发量子干涉时极其重要。&lt;/p>
&lt;h3 id="3-cnot门受控非门">3. CNOT门（受控非门）
&lt;/h3>&lt;p>这是用于制造量子纠缠的极其重要的门。它使用两个量子比特（控制比特和目标比特）。
它的运作方式是：“如果控制比特为1，则翻转目标比特的状态（X门）。如果控制比特为0，则什么都不做。”乍一看这只是个简单的IF条件分支，但如果控制比特处于“0和1的叠加态”会怎样呢？目标比特将变成“被翻转和未被翻转的叠加态”，两个比特的命运完全联系在一起。两个量子比特就完美地“纠缠”了。&lt;/p>
&lt;p>像音乐乐谱一样从左到右依次配置并应用这些门，就能执行复杂的算法。&lt;/p>
&lt;hr>
&lt;h2 id="第4章量子计算机擅长什么不擅长什么">第4章：量子计算机擅长什么，不擅长什么？
&lt;/h2>&lt;p>这里要告诉大家一个重要的事实：量子计算机并不是万能的神。
在网页浏览、视频渲染、Excel宏处理或一般智能手机应用的运行等日常任务中，量子计算机可能永远无法超越经典计算机。对于这些串行处理任务，已经高度优化、拥有压倒性速度和低廉成本的经典计算机更为适合。&lt;/p>
&lt;p>量子计算机只有在面对 &lt;strong>“那些经典计算机在计算组合时会呈指数级爆炸，以至于需要花费宇宙寿命般漫长时间的特定问题”&lt;/strong> 时，才能发挥其真正的价值。这被称为“量子霸权（Quantum Supremacy）”或“量子优势（Quantum Advantage）”。&lt;/p>
&lt;h3 id="量子计算机擅长的事情杀手级应用">量子计算机擅长的事情（杀手级应用）
&lt;/h3>&lt;h4 id="1-质因数分解与密码破解shor算法">1. 质因数分解与密码破解（Shor算法）
&lt;/h4>&lt;p>目前，保护互联网安全通信（如信用卡支付、个人信息传输等）的“RSA密码”等，是建立在“使用经典计算机对巨大数字进行质因数分解实际上是不可能的（需要极其庞大的时间）”这一前提之上的。
然而，如果使用1994年数学家彼得·秀尔（Peter Shor）发现的“Shor算法”，量子计算机就能巧妙利用干涉，以惊人的速度（多项式时间）破解它。因此，未来的现有密码体系有崩溃的风险，世界各地的中央银行和政府机构正急于向“抗量子密码（Post-Quantum Cryptography）”过渡。&lt;/p>
&lt;h4 id="2-量子化学计算与新材料新药开发">2. 量子化学计算与新材料、新药开发
&lt;/h4>&lt;p>自然界中分子和原子的行为，原本就遵循量子力学的法则。如果试图用经典计算机来模拟复杂分子的行为，电子之间相互作用的组合将会爆炸，即使是相对较小的分子也会触及计算量的极限。
正如诺贝尔物理学奖得主理查德·费曼所说：“如果你想模拟自然，你就必须用量子力学来构建它”，量子计算机在物质模拟方面能够发挥出压倒性的原生力量。人们期待它能带来解决人类面临课题的突破，比如设计划时代的新药、发现常温超导材料、开发高效的太阳能电池和电池材料，以及合成高能效的肥料等。&lt;/p>
&lt;h4 id="3-组合优化问题与搜索grover算法">3. 组合优化问题与搜索（Grover算法）
&lt;/h4>&lt;p>对于从庞大选项中找出最佳方案的问题（如物流路线优化、金融投资组合优化等），量子算法同样能发挥作用。使用“Grover算法”，在从无序的数据库中搜索目标数据时，只需经典计算机所需次数的平方根就能完成。例如，如果有1亿条数据，经典计算机最多需要1亿次搜索，而量子计算机只需大约1万次即可完成。&lt;/p>
&lt;hr>
&lt;h2 id="第5章阻碍硬件发展的壁垒退相干与量子纠错">第5章：阻碍硬件发展的壁垒——“退相干”与“量子纠错”
&lt;/h2>&lt;p>虽然在理论上量子计算机拥有如魔法般强大的力量，但在其实用化的道路上，矗立着极高极险峻的物理壁垒。最大的敌人就是 &lt;strong>“噪声”&lt;/strong>。&lt;/p>
&lt;p>量子比特的“叠加态”和“量子纠缠”是极其微妙且脆弱的状态。只需接触到周围微小的热量、电磁波的波动甚至宇宙射线，那种神奇的状态就会瞬间崩溃，变回普通的经典比特。这种现象被称为 &lt;strong>“退相干（量子崩塌）”&lt;/strong>。&lt;/p>
&lt;h3 id="物理实现方式的激烈竞争">物理实现方式的激烈竞争
&lt;/h3>&lt;p>目前，为了解决在物理上如何制造这种微妙的量子比特的问题，世界各地都在研究各种不同的方式，并展开了激烈的霸权争夺。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>超导方式（Superconducting）&lt;/strong>：被Google、IBM、Amazon等采用。使用环状超导电路，通过巨大的制冷机冷却到接近绝对零度（约-273℃）的极低温来控制量子态。这是目前最领先、最容易增加量子比特数量的方式，但冷却设备庞大且昂贵。&lt;/li>
&lt;li>&lt;strong>离子阱方式（Trapped Ion）&lt;/strong>：被IonQ、Quantinuum等采用。将离子（原子）用电磁场困在真空中，并用精密的激光照射进行控制。所有量子比特都是均匀的，能长时间保持状态（相干时间长）是其优势，但存在操作速度比超导慢的问题。&lt;/li>
&lt;li>&lt;strong>光量子方式（Photonic）&lt;/strong>：PsiQuantum等公司正致力于此。使用光粒子（光子）。很大一部分可以在室温下运行，不需要极低温环境，最大的优点是与现有的硅芯片制造技术和光纤通信技术兼容性好。&lt;/li>
&lt;li>&lt;strong>拓扑方式（Topological）&lt;/strong>：Microsoft多年来一直在研究。这是一种野心勃勃的方法，试图利用被称为任意子的特殊粒子的拓扑（拓扑学）性质，制造出从根本上对环境噪声有很强抵抗力（不容易发生错误）的量子比特。理论上最强，但物理实现的门槛被认为是最高的。&lt;/li>
&lt;/ul>
&lt;h3 id="迈向终极目标容错量子计算机ftqc之路">迈向终极目标“容错量子计算机（FTQC）”之路
&lt;/h3>&lt;p>在我们现在使用的经典计算机世界里，其实也存在计算错误（比如宇宙射线导致的比特翻转），但由于“纠错码”能完美地将其修正，我们才能在完全意识不到错误的情况下使用智能手机。为了让量子计算机也能进行实用的大规模计算，同样的 &lt;strong>“量子纠错（Quantum Error Correction: QEC）”&lt;/strong> 是必不可少的。&lt;/p>
&lt;p>然而，由于量子态具有“一观测就会崩溃”的性质，所以存在一个致命的悖论：为了确认错误，我们不能直接查看（观测）里面的内容。
为了绕过这个问题，人们建立了一种理论（如表面码等）：通过巧妙组合大量不稳定的“物理量子比特”，来构建1个能够检测和修正错误的稳定“逻辑量子比特”。
但是，据说为了制造1个逻辑量子比特，需要1000到1万个物理量子比特。如果要使用数千个逻辑量子比特来执行Shor算法等，整个系统就需要拥有数百万到数千万个物理量子比特。&lt;/p>
&lt;p>我们现在所处的时代，被称为 &lt;strong>NISQ（Noisy Intermediate-Scale Quantum：含噪声中型量子）&lt;/strong> 设备时代。这是一种没有纠错功能、只能在几十到几百个量子比特下运行的过渡期机器。
专家预测，要实现完全能够纠错的终极目标—— &lt;strong>“容错量子计算机（Fault-Tolerant Quantum Computer: FTQC）”&lt;/strong>，还需要进行10年到几十年的长期研发。&lt;/p>
&lt;hr>
&lt;h2 id="第6章量子计算机的历史与未来展望">第6章：量子计算机的历史与未来展望
&lt;/h2>&lt;p>最后，让我们俯瞰一下量子计算机是如何诞生的，以及它未来将走向何方。&lt;/p>
&lt;h3 id="从理论诞生到证明量子霸权">从理论诞生到证明“量子霸权”
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>1980年代&lt;/strong>：物理学家保罗·贝尼奥夫和理查德·费曼提出了利用量子力学原理的计算机概念。“如果要模拟自然，就使用量子力学吧”这句话成为了发端。&lt;/li>
&lt;li>&lt;strong>1994年&lt;/strong>：彼得·秀尔发表了用于质因数分解的量子算法（Shor算法）。这震惊了世界，也成为了巨额研究资金流入的契机。&lt;/li>
&lt;li>&lt;strong>1996年&lt;/strong>：洛夫·格罗弗（Lov Grover）发表了加速数据搜索的Grover算法。&lt;/li>
&lt;li>**2019年 **：历史性的里程碑。Google宣布，使用53个量子比特的超导处理器“Sycamore”，在约200秒内完成了经典超级计算机需要花费1万年（据称）才能完成的随机数生成验证计算。作为世界首次宣告证明 &lt;strong>“量子霸权（Quantum Supremacy）”&lt;/strong> 的事件，引起了巨大轰动（后来IBM等改进了经典超级计算机端的算法，反驳称几天就能计算完，引发了热烈讨论）。&lt;/li>
&lt;li>&lt;strong>2023年以后&lt;/strong>：IBM发布了超过1000个量子比特的处理器“Condor”。此外，哈佛大学等成功生成并操作了“逻辑量子比特”，纠错技术的初期实证报告开始陆续出现。&lt;/li>
&lt;/ul>
&lt;h3 id="面向下一代技术">面向下一代技术
&lt;/h3>&lt;p>量子计算机并不仅仅是“时钟频率更快的下一代CPU”。它用支配微观世界的量子力学法则从根本上改写了计算行为本身的观念，这确实是信息科学中的一次范式转变。&lt;/p>
&lt;p>在我们有生之年，大概不会拥有能放进口袋的“个人量子智能手机”（因为那也没有必要）。但是，在AWS或Azure等云网络背后的强大量子数据中心，有朝一日突然发现了不治之症的特效药，或者计算出了能解决全球变暖的梦幻清洁能源材料（例如在常温下从大气中的氮气合成氨的催化剂），这样的未来确实正在逼近。&lt;/p>
&lt;p>目前还相当于1940年代的ENIAC（电子数值积分计算机）那样的黎明期——巨大的真空管发出的热量让整个房间变得酷热，还要靠打孔卡来运行。但是，全世界顶尖的研究人员和工程师正在绞尽脑汁，每天都有技术突破的报告。
能够实时见证这个新“计算黎明”进化过程的我们，可以说生活在一个在历史上非常令人兴奋的时代。&lt;/p>
&lt;p>通向量子世界的大门才刚刚开启。未来的动向值得我们密切关注。&lt;/p>
&lt;hr>
&lt;p>&lt;em>本文的目的是为了向商务人士和对技术感兴趣的普通大众，以通俗易懂的方式解说量子计算的基本概念。请注意，本文在严密的数学和物理学定义（如狄拉克符号（Bra-ket记号）、复数概率振幅的细节等）上进行了一定程度的简化。&lt;/em>&lt;/p></description></item><item><title>量子计算机真的会破坏RSA加密吗？——秀尔算法与当前进展</title><link>http://kenji.blog/zh-cn/p/shors-algorithm-and-rsa-breaking/</link><pubDate>Sat, 05 Sep 2026 22:09:21 +0900</pubDate><guid>http://kenji.blog/zh-cn/p/shors-algorithm-and-rsa-breaking/</guid><description>&lt;img src="http://kenji.blog/p/shors-algorithm-and-rsa-breaking/quantum_breaking_rsa_1788613722990.jpg" alt="Featured image of post 量子计算机真的会破坏RSA加密吗？——秀尔算法与当前进展" />&lt;h2 id="引言密码学技术与量子计算机的交汇点">引言：密码学技术与量子计算机的交汇点
&lt;/h2>&lt;p>在现代互联网社会中，“公钥加密”是保护通信机密的基础。其中最具代表性的，是1977年由Ron Rivest、Adi Shamir和Leonard Adleman三位学者开发的“RSA加密”。从我们每天使用的在线购物支付、网站浏览（HTTPS）到电子邮件的收发，RSA加密作为互联网基础设施的心脏发挥着作用。&lt;/p>
&lt;p>然而，随着“量子计算机”的出现，人们指出这种安全性有可能被彻底颠覆。媒体上甚至会看到“量子计算机一旦完成，世界上的密码和加密将在几秒钟内被破解”这样耸人听闻的标题。这到底是不是真的呢？&lt;/p>
&lt;p>在本文中，我们将深入探讨经典的密码破解方法GNFS（一般数域筛选法），以及使用量子计算机的密码破解算法终极武器——“秀尔算法（Shor&amp;rsquo;s Algorithm）”的原理。我们将通俗易懂地讲解量子傅里叶变换和周期寻找等高级概念，并详细验证在当前NISQ（含噪中型量子）时代的量子硬件现状，以及实际破解RSA-2048所需跨越的障碍。&lt;/p>
&lt;hr>
&lt;h2 id="rsa加密的根基大数质因数分解的困难性">RSA加密的根基：大数质因数分解的困难性
&lt;/h2>&lt;p>RSA加密的安全性依赖于数学中极其简单的非对称性。那就是这样一个事实：“将两个巨大的质数相乘很容易，但要从它们相乘的结果（合数）中找出原来的两个质数（质因数分解）却极其困难。”&lt;/p>
&lt;p>例如，假设有两个质数 $ p = 61 $、$ q = 53 $。计算它们的乘积 $ N = p \times q = 3233 $ 只需一瞬。但是，如果只给你“3233”这个数字，问你“这是哪两个质数相乘的结果？”，随着数字变大，解题的计算量会呈爆炸性增长。&lt;/p>
&lt;p>在目前主流的RSA-2048中，使用的密钥长度为2048位，即十进制下约有617位的巨大合数 $ N $。如果能将这个 $ N $ 进行质因数分解，加密就等同于被破解了。&lt;/p>
&lt;h3 id="经典计算机的挑战gnfs一般数域筛选法">经典计算机的挑战：GNFS（一般数域筛选法）
&lt;/h3>&lt;p>为了解决质因数分解问题，数学家和密码学家多年来开发了各种算法。其中，目前在经典计算机上被认为最快的是 &lt;strong>一般数域筛选法（GNFS: General Number Field Sieve）&lt;/strong>。&lt;/p>
&lt;p>GNFS为了将巨大的数 $ N $ 进行质因数分解，会将整数环中的计算扩展到更抽象的代数域（Number Field）中进行分析。其大致流程如下：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>选择多项式&lt;/strong>：寻找一个以 $ N $ 为根、具有适当次数和系数的多项式 $ f(x) $。&lt;/li>
&lt;li>&lt;strong>数据收集（筛选）&lt;/strong>：在有理数域和代数域上，大量寻找能够分解为小质数（平滑数，Smooth numbers）的数对。这个过程被称为“筛选”，是耗时最长的部分。&lt;/li>
&lt;li>&lt;strong>矩阵生成与化简&lt;/strong>：基于收集到的关系式生成一个巨大的稀疏矩阵（大部分元素为0的矩阵），并使用线性代数的方法（如块Lanczos算法）求解。&lt;/li>
&lt;li>&lt;strong>平方根计算&lt;/strong>：最后在代数域上计算平方根，推导出 $ N $ 的因数（质因数）。&lt;/li>
&lt;/ol>
&lt;p>GNFS的计算复杂度非渐进地评估为 $ O(\exp((\sqrt[3]{\frac{64}{9}} + o(1)) (\log N)^{\frac{1}{3}} (\log \log N)^{\frac{2}{3}})) $。这被称为“亚指数（Sub-exponential）”时间复杂度。虽然比指数时间快，但比多项式时间（Polynomial time）慢得多。&lt;/p>
&lt;p>实际上，在2020年，一个国际研究团队使用GNFS成功完成了RSA-250（829位，250位的合数）的质因数分解。这项计算汇集了世界各地的计算机资源，耗费了约2700个CPU核心年的庞大计算时间。然而，如果换成2048位，所需的计算量将膨胀到宇宙寿命的数兆倍。无论现在用多少台超级计算机并行运行，使用经典方法都不可能在现实时间内完成破解。&lt;/p>
&lt;hr>
&lt;h2 id="量子计算机的杀手锏秀尔算法">量子计算机的杀手锏：秀尔算法
&lt;/h2>&lt;p>在这里登场的是1994年由彼得·秀尔（Peter Shor）提出的“秀尔算法（Shor&amp;rsquo;s Algorithm）”。该算法具有划时代的意义，它能够让质因数分解问题在量子计算机上以 &lt;strong>多项式时间&lt;/strong>（ $ O((\log N)^3) $ ）被解出。亚指数时间和多项式时间之间的差距是决定性的，这在理论上意味着，如果使用量子计算机，RSA加密将被彻底破坏。&lt;/p>
&lt;h3 id="秀尔算法的整体流程">秀尔算法的整体流程
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[输入想要分解质因数的数 N] --&amp;gt; B[随机选择一个整数 a]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C{a 与 N 的&amp;lt;br&amp;gt;最大公约数}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|大于1| D[幸运地发现了质因数！]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|等于1 互质| E[量子计算机登场]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt; F[通过量子傅里叶变换求得&amp;lt;br&amp;gt;函数 f_x = a^x mod N 的周期 r]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G{周期 r 为偶数 且&amp;lt;br&amp;gt;a^r/2 ≢ -1 mod N}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|Yes| H[计算最大公约数 gcd_a^r/2 ± 1, N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I((质因数分解成功！))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|No| B
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>秀尔算法并不是直接去解质因数分解问题，而是利用数论定理将其转换为另一个称为“周期寻找问题（Period Finding Problem）”的问题，并利用量子计算机的特性来高速求解。&lt;/p>
&lt;h3 id="步骤1从质因数分解还原为周期寻找问题经典计算处理">步骤1：从质因数分解还原为周期寻找问题（经典计算处理）
&lt;/h3>&lt;p>算法的第一步在经典计算机上进行。
对于想要进行质因数分解的数 $ N $，随机选择一个与 $ N $ 互质（最大公约数为1）的整数 $ a $（ $ 1 &lt; a &lt; N $ ）。如果很偶然地最大公约数不为1，那么此时找到的公约数就是 $ N $ 的质因数，破解完成，但这种概率极低。&lt;/p>
&lt;p>接下来，考虑以下模方程序列：
$ f(x) = a^x \pmod N $&lt;/p>
&lt;p>如果将 $ x = 1, 2, 3, \dots $ 代入该函数 $ f(x) $，得到的值看起来可能是随机的，但由于是在有限范围内计算，它必然会在某个点回到原来的值，并重复相同的数列。这个重复的周期被称为 $ r $。也就是说，
寻找使得
$ a^r \equiv 1 \pmod N $
成立的最小正整数 $ r $ 的问题，这就是“周期寻找问题”。&lt;/p>
&lt;p>如果找到了这个周期 $ r $，且 $ r $ 是偶数，则 $ a^r - 1 \equiv 0 \pmod N $，利用因式分解公式可以变形为：
$ (a^{r/2} - 1)(a^{r/2} + 1) \equiv 0 \pmod N $
由此，通过使用欧几里得算法（辗转相除法）计算 $ N $ 与 $ a^{r/2} \pm 1 $ 的最大公约数，就能以极高的概率获得 $ N $ 的质因数。&lt;/p>
&lt;p>在经典计算机上寻找周期 $ r $ 最终还是需要指数级的步骤，无法实现加速。但是，如果是量子计算机，就能在瞬间（多项式时间内）找到这个周期 $ r $。&lt;/p>
&lt;h3 id="步骤2量子态的准备与叠加">步骤2：量子态的准备与叠加
&lt;/h3>&lt;p>接下来就是量子计算机的舞台了。
量子计算机使用能够同时拥有“0”和“1”状态的“量子比特（Qubit）”。在秀尔算法中，准备了两个寄存器：用于存储输入的寄存器（第一寄存器）和用于存储计算结果的寄存器（第二寄存器）。&lt;/p>
&lt;p>首先，将一种称为阿达马门（Hadamard gate）的量子逻辑门操作应用于第一寄存器的所有量子比特。借此，第一寄存器会进入所有可能的 $ x $ 值（从 $ 0 $ 到 $ 2^n-1 $，$ n $ 为足够大的比特数）的 &lt;strong>均匀叠加态&lt;/strong>。&lt;/p>
&lt;p>也就是说，在量子计算机内部，构建出了一个无数个输入值 $ x=0, 1, 2, 3, \dots $ 同时并行存在的状态。&lt;/p>
&lt;h3 id="步骤3量子模幂运算quantum-modular-exponentiation">步骤3：量子模幂运算（Quantum Modular Exponentiation）
&lt;/h3>&lt;p>接下来，以第一寄存器的叠加态作为输入，计算 $ f(x) = a^x \pmod N $，并将结果存储在第二寄存器中。
由于这种计算是作为量子电路上的幺正变换（Unitary transformation）执行的，因此在保持叠加态的同时，对所有 $ x $ 的 $ f(x) $ 计算是“同时并行地（量子并行性）”进行的。&lt;/p>
&lt;p>此时整个量子系统的空间，变成了
$ |x, a^x \bmod N\rangle $
这种状态的庞大叠加。&lt;/p>
&lt;p>但是，如果在这里简单地对第二寄存器进行测量（观测），就会按概率随机选出一个 $ a^x \bmod N $ 的值，与之联动的第一寄存器中的 $ x $ 也会确定为一个值。这就和用经典计算机计算一次是一样的，无法找到周期 $ r $。&lt;/p>
&lt;p>根据量子力学的规则，我们无法直接窥探叠加态的内容。那么，如何提取出整体“周期”这种全局信息呢？&lt;/p>
&lt;h3 id="步骤4量子傅里叶变换qft-quantum-fourier-transform">步骤4：量子傅里叶变换（QFT: Quantum Fourier Transform）
&lt;/h3>&lt;p>突破这道壁垒的秀尔算法之精髓，就在于对第一寄存器应用 &lt;strong>量子傅里叶变换（QFT）&lt;/strong>。&lt;/p>
&lt;p>在进行测量之前，分析函数 $ f(x) $ 的波的性质。假设我们观测了第二寄存器，并得到了一个值 $ y $。那么，第一寄存器的状态就会坍缩为“所有满足 $ a^x \pmod N = y $ 的 $ x $ 的叠加”。
这个 $ x $ 的值，会变成像 $ x_0, x_0 + r, x_0 + 2r, x_0 + 3r, \dots $ 这样以周期 $ r $ 为间隔离散排列的状态（一种梳状的概率幅分布）。&lt;/p>
&lt;p>对这种状态应用量子傅里叶变换（QFT）。就像经典的离散傅里叶变换将时域信号转换为频域一样，QFT会让量子态的概率幅发生干涉。&lt;/p>
&lt;p>应用QFT后，由于量子干涉效应，与周期 $ r $ 不共振（相位不一致）的错误答案的概率会相互抵消并趋近于零（破坏性干涉），而只有包含周期 $ r $ 信息的正确答案的概率才会被放大（建设性干涉）。&lt;/p>
&lt;h3 id="步骤5测量与连分数展开经典后处理">步骤5：测量与连分数展开（经典后处理）
&lt;/h3>&lt;p>在应用QFT之后测量第一寄存器，以极高的概率可以得到一个非常接近 $ c \approx \frac{j \cdot 2^n}{r} $ 这种形式的整数 $ c $（其中 $ j $ 是一个未知的整数，$ 2^n $ 是寄存器的大小）。&lt;/p>
&lt;p>将这个测量结果 $ c $ 传回经典计算机，构建分数 $ \frac{c}{2^n} \approx \frac{j}{r} $。然后，利用称为“连分数展开（Continued fraction expansion）”的数学方法计算近似值，就能巧妙地找出作为分母的周期 $ r $。&lt;/p>
&lt;p>一旦知道了 $ r $，剩下的就是使用步骤1的公式计算出 $ N $ 的质因数，RSA加密就被彻底破解了。&lt;/p>
&lt;hr>
&lt;h2 id="当前量子计算机nisq的实力与课题">当前量子计算机（NISQ）的实力与课题
&lt;/h2>&lt;p>虽然秀尔算法在理论上是完美的，但如果问“明天RSA加密就会被破解吗？”，答案明确是“否定”的。其原因在于当前量子计算机的硬件技术限制。&lt;/p>
&lt;h3 id="nisq含噪中型量子时代">NISQ（含噪中型量子）时代
&lt;/h3>&lt;p>我们目前正处于被称为“NISQ”的时代。NISQ设备拥有几十到几百个物理量子比特，但对噪声极为脆弱。&lt;/p>
&lt;p>量子比特很容易受到热量和电磁波等外部环境的影响，从而频繁发生导致量子态被破坏的“退相干（量子纠缠丧失）”或门操作时的“门错误”。如果试图运行像秀尔算法这样极其深（运算步骤庞大）的量子电路，错误会在计算过程中累积，最终的输出将变成毫无意义的完全噪声。&lt;/p>
&lt;h3 id="物理量子比特与逻辑量子比特">物理量子比特与逻辑量子比特
&lt;/h3>&lt;p>为了解决这个错误问题，“量子纠错（Quantum Error Correction）”是不可或缺的。
虽然经典计算机中也使用了纠错码，但由于存在禁止复制量子态的“不可克隆定理”，量子纠错极其复杂。&lt;/p>
&lt;p>在量子纠错中，通过使用“表面码（Surface Code）”等技术，将许多充满噪声的“物理量子比特”组合起来，从而创造出一个没有错误的理想“逻辑量子比特”。&lt;/p>
&lt;p>在当前错误率的前提下，据估算，制造1个逻辑量子比特大约需要1,000到10,000个物理量子比特。这被称为“纠错开销（Overhead）”。&lt;/p>
&lt;h3 id="破坏rsa-2048需要怎样的资源">破坏RSA-2048需要怎样的资源？
&lt;/h3>&lt;p>那么，为了实际破解RSA-2048而运行秀尔算法，需要多少资源呢？&lt;/p>
&lt;p>Craig Gidney（谷歌）和Martin Ekerå在2021年的一篇论文中进行的突破性资源估算表明，如果使用优化的秀尔算法，并使用表面码进行纠错，则需要以下资源：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>逻辑量子比特数&lt;/strong>：约 4,096 个&lt;/li>
&lt;li>&lt;strong>物理量子比特数 &lt;strong>：&lt;/strong> 约 2000万个&lt;/strong>（假设错误率在 $10^{-3}$ 左右）&lt;/li>
&lt;li>&lt;strong>计算时间&lt;/strong>：约 8小时（需要数百万到数十亿次物理门操作）&lt;/li>
&lt;/ul>
&lt;p>对此，当前量子硬件的水平达到了什么程度呢？
2023年底，IBM发布的超导量子处理器“Condor”达到了1,121个量子比特。此外，有关逻辑量子比特生成的突破性研究（如哈佛大学和QuEra公司等利用中性原子量子计算机生成了48个逻辑量子比特）也已涌现，但目前仍未达到能够长时间连续执行“无噪声完美运算”的阶段。&lt;/p>
&lt;p>从几千个物理量子比特，扩展到 &lt;strong>2000万个&lt;/strong> 实用的物理量子比特（且互相连接，在极低温下稳定工作，并能超高速处理控制信号的系统），在工程上存在着巨大的壁垒（布线问题、冷却能力限制、控制电子设备的臃肿化）。许多专家预测，能够破解RSA-2048的“容错量子计算机（FTQC）”至少需要10到30年，甚至更长的时间才能实现。&lt;/p>
&lt;hr>
&lt;h2 id="悄然逼近的store-now-decrypt-later威胁与pqc的曙光">悄然逼近的“Store Now, Decrypt Later”威胁与PQC的曙光
&lt;/h2>&lt;p>认为“既然还需要10年以上，那就安心了”还为时过早。目前，诸如国家机密信息、医疗数据以及长期的基础设施设计等，存在着必须确保未来几十年内依然保密的数据。&lt;/p>
&lt;p>在此令人担忧的，是一种被称为 &lt;strong>“Store Now, Decrypt Later（现在存储，以后解密）”&lt;/strong> 的攻击手法。恶意的国家或组织会拦截当前所有用RSA或ECC（椭圆曲线加密）加密的通信数据，并将它们保存在存储器中。然后等到10年、20年后强大的量子计算机完成的瞬间，再使用秀尔算法将过去的数据全部解密，从而暴露机密信息。&lt;/p>
&lt;p>为了对抗这种时间差带来的威胁，以NIST（美国国家标准与技术研究院）为中心，&lt;strong>“后量子密码学（PQC: Post-Quantum Cryptography）”&lt;/strong> 的标准化进程一直在加紧推进。&lt;/p>
&lt;p>PQC是基于即使使用量子计算机也很难破解（即无法应用秀尔算法）的数学问题的新型加密算法。主要的方法有以下几种：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>基于格的密码学（Lattice-based cryptography）&lt;/strong>：以LWE（容错学习）等问题为基础。在NIST标准化中占据主流（如Kyber、Dilithium等）。&lt;/li>
&lt;li>&lt;strong>基于编码的密码学（Code-based cryptography）&lt;/strong>：依赖于纠错码解码问题的困难性。&lt;/li>
&lt;li>&lt;strong>多变量密码学（Multivariate cryptography）&lt;/strong>：依赖于求解多变量非线性多项式方程组的困难性。&lt;/li>
&lt;li>&lt;strong>基于哈希的签名（Hash-based signatures）&lt;/strong>：仅依赖于哈希函数安全性的数字签名。&lt;/li>
&lt;/ul>
&lt;p>目前在Google Chrome和Apple的iMessage等主要软件和平台上，PQC的导入测试和混合实现已经启动。&lt;/p>
&lt;h2 id="结语">结语
&lt;/h2>&lt;p>量子计算机正在从科幻世界里的梦想，转变为现实的工程挑战。秀尔算法是数学与量子力学融合的人类伟大智力成果，但同时，它也暗藏着动摇我们数字社会基石的“破坏力”。&lt;/p>
&lt;p>RSA加密并不会明天立刻就变得不可用。但是，考虑到量子技术的发展以及“Store Now, Decrypt Later”的风险，向PQC过渡这一密码学史上规模空前的迁移已经开始。我们现在正在见证信息安全领域范式转移的最前线。&lt;/p></description></item><item><title>【公式完全解析】经典最强“GNFS”为何败给量子算法？因数分解的范式转变</title><link>http://kenji.blog/zh-cn/p/gnfs-to-shors-algorithm-math-deepdive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://kenji.blog/zh-cn/p/gnfs-to-shors-algorithm-math-deepdive/</guid><description>&lt;img src="http://kenji.blog/p/gnfs-to-shors-algorithm-math-deepdive/quantum_vs_gnfs_eyecatch_1788616101508.jpg" alt="Featured image of post 【公式完全解析】经典最强“GNFS”为何败给量子算法？因数分解的范式转变" />&lt;p>现代互联网社会中的信息安全，是由以RSA密码为首的公开密钥密码体制来保障的。RSA密码安全性的依据依赖于这样一个事实：&lt;strong>“对巨大的合数进行因数分解在计算上是极其困难的”&lt;/strong>。&lt;/p>
&lt;p>本文将为您剖析经典计算机中最强的因数分解算法——&lt;strong>“普通数域筛选法”&lt;/strong>（General Number Field Sieve, GNFS）的数学机制，并通过公式和概念图深入探讨它为何会被彼得·肖尔发现的 &lt;strong>“Shor算法”&lt;/strong> 彻底击败，揭示这场范式转变。&lt;/p>
&lt;hr>
&lt;h2 id="1-经典计算中的因数分解方法从费马因数分解法的发展">1. 经典计算中的因数分解方法：从费马因数分解法的发展
&lt;/h2>&lt;p>因数分解问题是指：对于给定的合数 $N$，找到素数 $p, q$ 使得 $N = p \times q$ 的问题。&lt;/p>
&lt;p>基本的思路归结为寻找满足以下同余式的非平凡的 $x, y$：&lt;/p>
$$ x^2 \equiv y^2 \pmod N $$
&lt;p>对其进行变形，得到：&lt;/p>
$$ x^2 - y^2 \equiv 0 \pmod N $$
$$ (x - y)(x + y) \equiv 0 \pmod N $$
&lt;p>在此，如果 $x \not\equiv \pm y \pmod N$，则通过计算 $\gcd(x-y, N)$ 或 $\gcd(x+y, N)$，就可以得到 $N$ 的非平凡因子。这一事实构成了包括GNFS在内的现代因数分解算法的基础。&lt;/p>
&lt;hr>
&lt;h2 id="2-经典最强算法普通数域筛选法gnfs的深渊">2. 经典最强算法：“普通数域筛选法”（GNFS）的深渊
&lt;/h2>&lt;p>&lt;strong>“GNFS”&lt;/strong> 是目前已知针对经典计算机的最快因数分解算法。其时间复杂度需要亚指数级（Sub-exponential）的时间。&lt;/p>
&lt;h3 id="gnfs的计算复杂度">GNFS的计算复杂度
&lt;/h3>&lt;p>设数字 $N$ 的位数为 $b = \log_2 N$，GNFS的计算复杂度可以表示为：&lt;/p>
$$ O\left( \exp \left( \left(\frac{64}{9} b\right)^{1/3} (\log b)^{2/3} \right) \right) $$
&lt;p>从这个公式可以看出，计算复杂度并不是多项式时间，而是比指数函数稍慢的 &lt;strong>“亚指数时间”&lt;/strong>。尽管如此，随着位数的增加，计算时间仍会呈天文数字般增长。&lt;/p>
&lt;h3 id="gnfs的数学机制">GNFS的数学机制
&lt;/h3>&lt;p>GNFS主要由四个步骤组成：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>多项式选择 (Polynomial Selection)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>筛选 (Sieving)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>矩阵化简 (Matrix Reduction)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>平方根计算 (Square Root)&lt;/strong>&lt;/li>
&lt;/ol>
&lt;h4 id="21-多项式选择与代数数域">2.1. 多项式选择与代数数域
&lt;/h4>&lt;p>首先，选择以整数为系数的不可约多项式 $f(x)$ 和 $g(x)$。它们被设定为在模 $N$ 下具有公共根 $m$。即：&lt;/p>
$$ f(m) \equiv 0 \pmod N $$
$$ g(m) \equiv 0 \pmod N $$
&lt;p>通常，$g(x)$ 被选择为一次多项式 $g(x) = x - m$。设 $f(x)$ 的根为 $\alpha$，则构造出一个名为 $\mathbb{Q}(\alpha)$ 的 &lt;strong>“代数数域”&lt;/strong>（Number Field）。通过同态映射 $\phi: \alpha \mapsto m$，比较 $\mathbb{Q}(\alpha)$ 环中的运算与普通整数环 $\mathbb{Z}$ 中的运算。&lt;/p>
&lt;h4 id="22-筛选-sieving">2.2. 筛选 (Sieving)
&lt;/h4>&lt;p>接着，寻找大量互素的整数对 $(a, b)$。目的是找到满足以下两个值分别为 &lt;strong>“B-smooth”&lt;/strong>（仅由较小素因子组成）的整数对：&lt;/p>
&lt;ol>
&lt;li>$a - bm$ （整数环上的值）&lt;/li>
&lt;li>$b^d f(a/b)$ （对应代数数域上的范数 $N(a - b\alpha)$）&lt;/li>
&lt;/ol>
&lt;p>在这里采用被称为 &lt;strong>“筛选”&lt;/strong>（Sieve）的高效搜索方法。这使得我们能够从庞大的候选集中高效提取满足条件的 $(a, b)$ 对。&lt;/p>
&lt;h4 id="23-矩阵化简-linear-algebra-over-gf2">2.3. 矩阵化简 (Linear Algebra over GF(2))
&lt;/h4>&lt;p>由收集到的整数对 $(a, b)$ 构造指数向量，并在 $\mathbb{F}_2$ （仅包含0和1的域）上求解巨大稀疏矩阵的左零空间。&lt;/p>
&lt;p>找到向量 $v$ 作为解，使得关系式 $ \prod (a_i - b_i m) $ 和 $ \prod (a_i - b_i \alpha) $ 都成为平方元。这无异于求解如下线性方程组：&lt;/p>
$$ M \mathbf{x} \equiv \mathbf{0} \pmod 2 $$
&lt;p>在这里，使用了如分块Lanczos法（Block Lanczos Algorithm）和分块Wiedemann法（Block Wiedemann Algorithm）等高级数值计算算法。&lt;/p>
&lt;h4 id="24-平方根计算">2.4. 平方根计算
&lt;/h4>&lt;p>最后，在代数数域和整数环上同时取平方根，导出 $x^2 \equiv y^2 \pmod N$ 的关系式。然后计算 $\gcd(x-y, N)$ 从而得到因子。&lt;/p>
&lt;hr>
&lt;h2 id="3-量子计算的突破shor算法">3. 量子计算的突破：“Shor算法”
&lt;/h2>&lt;p>相较于GNFS需要亚指数级时间，彼得·肖尔在1994年发表的 &lt;strong>“Shor算法”&lt;/strong>，利用量子计算机可以在 &lt;strong>“多项式时间”&lt;/strong> 内解决这一问题。&lt;/p>
&lt;h3 id="shor算法的计算复杂度">Shor算法的计算复杂度
&lt;/h3>&lt;p>假设量子比特数为 $O(\log N)$，时间复杂度如下：&lt;/p>
$$ O((\log N)^3) $$
&lt;p>这意味着它不会随比特数产生指数级的爆炸。即使是那些对于 &lt;strong>“经典计算”&lt;/strong> 而言计算量超过宇宙寿命的巨大合数，在 &lt;strong>“量子计算”&lt;/strong> 下也能在几小时到几天内破解，这是一个惊人的结果。&lt;/p>
&lt;h3 id="shor算法全貌归结为寻找周期问题">Shor算法全貌：归结为寻找周期问题
&lt;/h3>&lt;p>Shor算法巧妙地将因数分解问题归结为 &lt;strong>“寻找周期问题”&lt;/strong>。&lt;/p>
&lt;ol>
&lt;li>选取与 $N$ 互素的随机整数 $a$（$1 &lt; a &lt; N$）。&lt;/li>
&lt;li>定义函数 $f(x) = a^x \bmod N$。&lt;/li>
&lt;li>找到 $f(x)$ 的周期 $r$，即满足 $a^r \equiv 1 \pmod N$ 的最小正整数 $r$。&lt;/li>
&lt;li>如果 $r$ 为偶数，则检查 $a^{r/2} \not\equiv -1 \pmod N$ 是否成立，计算 $\gcd(a^{r/2} \pm 1, N)$ 以获得素因子。&lt;/li>
&lt;/ol>
&lt;p>这个步骤3中 &lt;strong>“周期的寻找 $r$”&lt;/strong> 正是经典计算机需要指数级时间的瓶颈，但量子计算机利用 &lt;strong>“量子叠加”&lt;/strong> 和 &lt;strong>“量子傅里叶变换”&lt;/strong>（QFT），可以瞬间解决这个问题。&lt;/p>
&lt;hr>
&lt;h2 id="4-量子傅里叶变换qft与周期提取">4. 量子傅里叶变换（QFT）与周期提取
&lt;/h2>&lt;p>让我们用公式详细看看Shor算法的核心——量子状态的操作。&lt;/p>
&lt;h3 id="41-量子叠加的生成">4.1. 量子叠加的生成
&lt;/h3>&lt;p>首先，准备两个量子寄存器。寄存器1保持输入 $x$ 的叠加态，寄存器2保持函数的计算结果 $f(x)$。对初始状态 $|0\rangle |0\rangle$ 应用阿达马变换（Hadamard Transform），创造出所有可能 $x$ 的叠加。&lt;/p>
$$ |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |0\rangle $$
&lt;p>
（其中 $Q$ 是满足 $N^2 \le Q &lt; 2N^2$ 的2的幂）&lt;/p>
&lt;p>接着，利用量子预言机 $U_f$ 计算 $f(x) = a^x \bmod N$ 并存入寄存器2。&lt;/p>
$$ |\psi_2\rangle = U_f |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |a^x \bmod N\rangle $$
&lt;p>假设现在测量了寄存器2（实际上即使不测量，数学结构也是相同的）。如果观测到某个值 $y = a^{x_0} \bmod N$，寄存器1的状态就会坍缩到所有使 $f(x) = y$ 成立的 $x$ 的叠加。设周期为 $r$，那么这样的 $x$ 将是 $x_0, x_0 + r, x_0 + 2r, \dots$。&lt;/p>
$$ |\psi_3\rangle = \frac{1}{\sqrt{M}} \sum_{k=0}^{M-1} |x_0 + kr\rangle $$
&lt;p>
（其中 $M \approx Q/r$ 是项数）&lt;/p>
&lt;p>这个状态内含了周期 $r$ 的信息，但直接测量只能得到随机的 $x_0 + kr$，无法得知周期 $r$。这时QFT便派上用场了。&lt;/p>
&lt;h3 id="42-应用量子傅里叶变换-quantum-fourier-transform">4.2. 应用量子傅里叶变换 (Quantum Fourier Transform)
&lt;/h3>&lt;p>QFT是对量子状态的振幅进行离散傅里叶变换的操作。QFT对状态 $|x\rangle$ 的作用定义如下：&lt;/p>
$$ \text{QFT} |x\rangle = \frac{1}{\sqrt{Q}} \sum_{y=0}^{Q-1} e^{2\pi i \frac{xy}{Q}} |y\rangle $$
&lt;p>将此应用于 $|\psi_3\rangle$，会发生相位干涉（量子干涉）。&lt;/p>
$$ |\psi_4\rangle = \text{QFT} |\psi_3\rangle = \frac{1}{\sqrt{MQ}} \sum_{y=0}^{Q-1} \sum_{k=0}^{M-1} e^{2\pi i \frac{(x_0 + kr)y}{Q}} |y\rangle $$
&lt;p>展开此式的和：&lt;/p>
$$ \sum_{k=0}^{M-1} e^{2\pi i \frac{kry}{Q}} $$
&lt;p>这部分便显现出来。这个等比数列的和，只有当 $ry/Q$ 接近整数时才会增强（Constructive Interference），在其他情况下则会相互抵消（Destructive Interference）。&lt;/p>
&lt;p>因此，以高概率被测量到的状态 $|y\rangle$ 将是满足以下条件的整数 $y$：&lt;/p>
$$ \frac{y}{Q} \approx \frac{c}{r} $$
&lt;p>
（$c$ 为某个整数）&lt;/p>
&lt;h3 id="43-通过连分数展开确定周期">4.3. 通过连分数展开确定周期
&lt;/h3>&lt;p>通过测量得到 $y$ 后，使用经典计算机对 $y/Q$ 进行 &lt;strong>“连分数展开”&lt;/strong>（Continued Fraction Expansion）。由此计算出 $y/Q$ 的近似分数 $c/r$，从而可以高效地从分母中提取出周期 $r$ 的候选值。&lt;/p>
&lt;hr>
&lt;h2 id="5-概念模型比较与范式转变">5. 概念模型比较与范式转变
&lt;/h2>&lt;p>为了直观理解GNFS和Shor算法的区别，下面展示使用Mermaid语法的概念图。&lt;/p>
&lt;h3 id="基于量子电路的shor算法概念图">基于量子电路的Shor算法概念图
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[初始状态: 0...0] --&amp;gt; B[阿达马变换实现全状态叠加]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C[模幂运算 a^x mod N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|量子纠缠| D[坍缩到具有周期性的状态]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> D --&amp;gt; E[量子傅里叶变换 QFT]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt;|干涉概率放大| F[测量: 得到y]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G[经典处理: 连分数展开]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt; H[找到周期 r]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I[算出N的素因子]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style A fill:#f9f,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style E fill:#bbf,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style I fill:#bfb,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="范式转变的本质">范式转变的本质
&lt;/h3>&lt;p>GNFS采取了 &lt;strong>“在数学空间（代数数域）中寻找关系式”&lt;/strong> 的方法。然而，搜索空间随位数呈指数级扩展，因此在经典计算机的计算能力（即使包含并行化）下，当密钥长度超过2048位等时，实际上是无法解密的。&lt;/p>
&lt;p>另一方面，Shor算法利用了 &lt;strong>“量子干涉的波特性”&lt;/strong>。同时评估处于叠加态的所有计算路径，通过QFT抵消（减弱）不需要的答案，仅放大（增强）作为正确答案的周期概率振幅。由此实现了非遍历空间，而是 &lt;strong>“让正确答案浮现”&lt;/strong> 的完全不同维度的途径。&lt;/p>
&lt;h2 id="6-总结">6. 总结
&lt;/h2>&lt;p>本文深入比较了经典极限巅峰的 &lt;strong>“GNFS”&lt;/strong> 和展现量子计算力量的 &lt;strong>“Shor算法”&lt;/strong>，探讨了各自的数学背景和算法结构。&lt;/p>
&lt;p>相较于GNFS倾尽多项式选择或巨大矩阵计算等数学技巧将计算复杂度降至亚指数时间，Shor算法将量子力学的基本原理——叠加与干涉与数学工具（QFT）融合，一举实现了向多项式时间的突破。&lt;/p>
&lt;p>目前，能够以实用规模（数千个量子比特）运行Shor算法的容错量子计算机（FTQC）尚不存在。然而，正是这种数学与理论范式转变的存在，构成了当今世界急切向抗量子密码（PQC: Post-Quantum Cryptography）过渡的最大理由。&lt;/p></description></item></channel></rss>