文章总结: BB84协议是量子密钥分发的经典方案,其核心目标是通过量子信道安全分发随机密钥而非直接加密消息。该协议利用量子测量原理:使用互无偏基编码信息,同基测量可准确传递比特,异基测量会引入随机错误。窃听者Eve无法克隆量子态,任何窃听行为都会在误码率中暴露。协议流程包括随机基选择、筛选、误码率估计及后处理。安全基础是物理规律而非计算假设,最终密钥需经信息调和与隐私放大处理。 综合评分: 85 文章分类: 技术标准,解决方案,数据安全,网络安全
【量子计算】量子密钥分发:BB84 协议
原创
Litt1eQ Litt1eQ
Coder小Q
2026年5月9日 08:31 山东
在小说阅读器读本章
去阅读
【量子计算】量子密钥分发:BB84 协议
上一节 4.7 讲到,Shor 算法之所以让经典公钥密码紧张,不是因为它“也许更快一点”,而是因为它直接打穿了 RSA 这类方案赖以成立的计算困难性。那就会立刻逼出一个更根本的问题:如果公钥密码不再可靠,Alice 和 Bob 还怎么安全地共享密钥?
这篇文章要回答的,正是这个问题。
BB84 协议是量子密码学最经典的起点。它做的事不是“把加密算法变成量子版”,而是把最困难的那一步单独拎出来解决:先分发一个只有 Alice 和 Bob 知道、而 Eve 不知道的随机密钥。它依靠的不是“大数分解很难”这种计算假设,而是量子测量本身的物理规律:用错基测量会打乱子态,未知量子态又不能被偷偷复制。[3][4][5]
读完这篇文章,希望你能带着四句话离开:
- BB84 解决的不是“怎么加密消息”,而是“怎么先拿到一个安全密钥”。
- 它的安全直觉只有一句话:同基测量传递信息,异基测量打乱信息。
- Eve 想窃听,就必须测量;一旦测量,就有概率在 Alice 和 Bob 的比对中留下误码。
- 真正可用的最终密钥,不是筛选后的原始比特串,而是再经过参数估计、信息调和和隐私放大之后得到的结果。[6][7][8]
0. 引子:密码学最难的地方,其实不是加密
设 Alice 想给 Bob 发送消息。最朴素的做法当然是先把消息加密,再把密文发出去。但只要你继续追问一句“加密用的密钥从哪里来”,问题就会突然变得棘手。
在信息论意义下,最干净的加密方案是一次一密。若明文记为 ,密钥记为 ,密文就是
只要 真正随机、与明文等长、并且只使用一次,那么从密文 本身出发,Eve 得不到关于 的任何额外信息。这就是 Shannon 所说的完美保密。[1]
但一次一密有一个不肯消失的前提:Alice 和 Bob 必须先共享那串同样长度、同样随机、且外人不知道的密钥。也就是说,一次一密没有消灭密钥分发问题,只是把它提前了。
经典信道上的困难恰好出在这里。经典比特可以被复制,而复制不会留下物理痕迹。Eve 完全可以在中途拷贝一份密钥,再把原数据继续转发给 Bob。Alice 和 Bob 事后看到的,是一条“表面上什么都没发生”的链路。
这件事和上一节的 Shor 算法威胁正好形成对照。RSA、Diffie-Hellman 这类经典方案的思路,是把“密钥怎么安全送达”转写成“某个数学问题在可预见时间内算不出来”。BB84 则走了完全不同的路:它不靠 Eve 算不过来,而是让 Eve 没法无声无息地看一眼。[5][6]
所以这一章真正要翻译成量子计算语言的,是下面这句话:
❝
经典密钥分发最大的问题,不是 Eve 一定能破译,而是 Alice 和 Bob 无法知道她有没有复制过密钥;BB84 的贡献,是把“是否被偷看”这件事变成可检测的物理问题。
1. BB84 依赖的物理事实:测量会改变态,而且未知量子态不能复制
1.1 从前文接过来的那条主线
在 1.4 “测量与波函数坍缩”和 2.1 “自旋:量子世界的指南针”里,我们已经反复见过同一个现象:如果一个量子比特先在某个方向上被制备成确定态,再换到另一组不相容的基去测量,结果会变成随机,而且测量后态真的被改写了。
BB84 只是把这件事从“物理实验现象”变成了“通信协议规则”。
它使用两组单量子比特基:
| 基 | 对应态 | 比特 0 | 比特 1 | | — | — | — | — | | Z 基(计算基) | | | | | X 基(Hadamard 基) | | | |
这里的 和 不是新冒出来的对象,而是 2.2 里已经见过的 X 基态。Hadamard 门满足
更准确地说,在二维情形里,Z 基和 X 基是一对 互无偏基(mutually unbiased bases):任意一个 Z 基态,在 X 基下测量都会给出 50/50 的结果;反过来也一样。[2][3]
1.2 为什么“用错基”一定会引入随机性
先只看一个最小例子。Alice 若发送的是
而 Eve 偏偏用 X 基去测,那么她面对的其实是
这表示:在 X 基里, 不是确定态,而是两个 X 基态的等权叠加。因此 Eve 会以 的概率得到 ,以 的概率得到 。[2][3]
如果 Eve 测到的是 并把它转发给 Bob,而 Bob 后面又在正确的 Z 基里测量,那么 Bob 看到的是
于是 Bob 得到 0 和 1 的概率各是 。也就是说,Eve 一旦猜错基,就把原本“在 Z 基里完全确定”的信息,变成了“在 Z 基里只有一半概率正确”的结果。
把四个发送态都列出来,结构就更清楚了:
| Alice 发送态 | Alice 所用基 | Bob 测量基 | Bob 结果 | | — | — | — | — | | | Z | Z | 必得 0 | | | Z | Z | 必得 1 | | | X | X | 必得 0 | | | X | X | 必得 1 | | | Z | X | 0 或 1,各 | | | Z | X | 0 或 1,各 | | | X | Z | 0 或 1,各 | | | X | Z | 0 或 1,各 |
这张表其实就是 BB84 的全部物理直觉。协议里所有复杂步骤,最后都在服务这一句核心总结:
❝
同基测量时,比特可以被稳定传递;异基测量时,结果不但随机,而且会把原来的态改坏。
1.3 Eve 为什么不能“先复制一份,等会儿再测”
如果 BB84 只依赖上一节那条表,那么 Eve 仍然会想到一个经典世界里的标准招式:先把量子比特复制一份,一份继续发给 Bob,另一份等 Alice 和 Bob 公布基选择后再慢慢测。
问题是,这一步在量子里根本做不到。
不可克隆定理告诉我们:不存在一个统一的幺正操作,能把任意未知量子态 变成两份完全一样的副本 。[4] 这一点在 3.4 里已经从线性性角度证明过;在 BB84 里,它的通信含义非常直接:
- Eve 不能把未知态“备份”下来以后再决定怎么看。
- 她若想获得信息,就只能立刻选一个基去测。
- 一旦她选错基,就会以可统计检测的方式把误差带进 Bob 的结果里。
这和量子计算有什么关系?因为 BB84 利用的恰恰是量子信息和经典信息之间最深的一条边界:量子态不是可以任意复制、任意缓存、任意读取的普通数据。这个限制在算法里会带来麻烦,在密码学里却正好变成优势。
2. 把 BB84 协议完整跑一遍
现在先不谈安全证明,只把协议本身从头到尾走一遍。
角色还是那三个:
- Alice:发送方
- Bob:接收方
- Eve:潜在窃听者
这里还要补一句很多入门介绍容易略过的话:BB84 除了量子信道,还需要一条公开但经过认证的经典信道。公开,表示 Eve 可以听见 Alice 和 Bob 说了什么;认证,表示 Eve 不能冒充 Alice 或 Bob 改写这些消息。若没有“认证”这一步,Eve 完全可以发起中间人攻击,协议本身就站不住了。[6][7]
2.1 第一步:Alice 随机选比特,也随机选编码基
Alice 先准备两串随机序列。一串是她希望传出去的原始比特 ,另一串是每一位所用的基 。
我们用一个 10 个量子比特的例子来跑:
| 位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | — | — | — | — | — | — | — | — | — | — | — | | Alice 的比特 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | | Alice 的基 | Z | Z | X | X | Z | X | Z | X | Z | X | | 发出的态 | | | | | | | | | | |
这里的逻辑很简单:Z 基下用 编码 0 和 1,X 基下用 编码 0 和 1。
2.2 第二步:Bob 不知道 Alice 的基,只能随机测
Bob 收到每个量子比特时,并不知道 Alice 用的是 Z 基还是 X 基,所以他也必须随机选一组基去测:
| 位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | — | — | — | — | — | — | — | — | — | — | — | | Bob 的基 | Z | X | X | Z | Z | X | X | Z | Z | X | | Bob 的测量结果 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | | 是否与 Alice 同基 | 是 | 否 | 是 | 否 | 是 | 是 | 否 | 否 | 是 | 是 |
这里要特别注意第 2、4、7、8 位。比如第 2 位,Alice 发的是 ,而 Bob 用 X 基去测;这个结果是随机的。我们这里假设 Bob 恰好测到了 0,但这位之后会被丢掉,所以它对最终密钥没有帮助。
2.3 第三步:公开比较基,不公开比特值
接下来 Alice 和 Bob 通过公开经典信道交换的,不是自己的 0/1 结果,而是“这一位我用的是 Z 还是 X”。这样做的目的是把真正有意义的位置筛出来。
从上表可见,两人基相同的位置是
于是他们保留这些位置的结果,得到筛选后的比特串:
| 保留位置 | 1 | 3 | 5 | 6 | 9 | 10 | | — | — | — | — | — | — | — | | Alice | 0 | 0 | 0 | 1 | 1 | 0 | | Bob | 0 | 0 | 0 | 1 | 1 | 0 |
这串结果叫做筛选密钥,或更口语一点,叫“同基留下来的原始候选密钥”。在没有噪声、也没有 Eve 的理想例子里,它们应当完全一致。
2.4 第四步:抽样估计误码率
Alice 和 Bob 现在还不能直接把这 6 位当作最终密钥来用。原因很简单:他们不知道量子信道里究竟有没有噪声,也不知道 Eve 有没有动过手。
所以他们会随机抽出其中一部分位公开比较。比如在这个玩具例子里,假设他们公开第 3 位和第 9 位:
| 抽样位置 | 3 | 9 | | — | — | — | | Alice | 0 | 1 | | Bob | 0 | 1 |
这两位一致,所以在这次抽样里误码率是 0。由于这些位已经公开,它们不能再用作密钥,剩下的候选串变成
现实协议中当然不会只发 10 个量子比特,也不会只抽两位。这里故意用小数字,只是为了让你能手动跟着跑完。
2.5 第五步:把“候选密钥”变成“最终密钥”
即便抽样误码率看起来足够低,Alice 和 Bob 手里的串也还只是“可能一致、可能部分泄露”的原始密钥。真正可用的最终密钥,还要再经过两道后处理:
- 信息调和:解决 Alice 和 Bob 之间可能还剩下的少量不一致;
- 隐私放大:把 Eve 也许掌握的那点残余信息压缩掉。[6][7][8]
到这里,BB84 的完整流程就已经出现了:发送量子态,随机测量,公开比基,抽样估计误码率,再做后处理。下一节我们回过头来看,为什么 Eve 一插手,这条链上的误码率就会升上来。
3. Eve 为什么会暴露:25% 从哪里来
3.1 先看一个单比特例子
设 Alice 发送的是 ,这表示她在 X 基里编码了比特 0。
若 Eve 也用 X 基去测,她会准确得到 0,再把 发给 Bob;这一位不会出错。
但若 Eve 猜错,改用 Z 基去测,那么她得到的是 0 或 1,各有 概率。假设她测得 0,于是她发给 Bob 的就是 。可对 Bob 来说,这一位本来应该在 X 基下读取。于是 Bob 面对的是
所以 Bob 在 X 基下又只有一半概率得到正确结果 0,另一半概率会得到错误结果 1。
这个例子已经暴露了整件事的逻辑:Eve 并不是“有时偷到完整信息,有时什么也偷不到”这么简单;她一旦测错基,就会把 Alice 原本写进相对基结构里的信息打乱。
3.2 25% 误码率的来源
现在只考虑那些最后会被 Alice 和 Bob 保留下来的位,也就是 Alice 和 Bob 恰好用了同一组基的位。对这些位来说:
- Eve 猜对基的概率是 ,这时她不会引入错误;
- Eve 猜错基的概率也是 ;
- 在猜错基的条件下,Bob 有 的概率得到错误结果。
所以 Eve 采用最朴素的截获-重发(intercept-resend)攻击时,筛选密钥上的期望误码率是
这就是 BB84 最著名的数字来源。[3][5]
要立刻补一句严格表述:25% 是大量重复后的期望值,不是说任何一个 10 位玩具例子都会刚好出现 25% 的错误。小样本里,16.7%、33.3% 都可能出现;真正起作用的是统计规律,而不是某一次必须命中一个漂亮整数。
3.3 误码率到底在量化什么
这时就可以给出一个在后文会反复出现的量:量子比特误码率,通常记作 QBER(quantum bit error rate)。在最基本的抽样估计里,它就是
抽样中和不同的位数抽样公开比较的总位数
QBER 越高,说明信道里“某种会扰动态的东西”越强。这个东西可能来自自然噪声,也可能来自 Eve 的攻击,也可能两者同时存在。BB84 的精髓不在于“只要有 1 位错就一定有窃听者”,而在于:Eve 若想获得信息,就必须把自己的存在转换成一个可以统计估计的扰动水平。[6][7]
这和量子计算有什么关系?因为 BB84 用到的不是某种额外的“密码学魔法”,而是你在前几章已经见过的同一条量子规则:测量既给出结果,也改写后续可观测的统计分布。
4. 从原始密钥到最终密钥:信息调和与隐私放大各做什么
到这里,一个常见误解会冒出来:既然 Alice 和 Bob 已经筛出了同基结果,又抽样确认误码率不高,那剩下的比特串不就是密钥了吗?
还不够。
原因有两个。第一,真实信道有噪声,Alice 和 Bob 手里的串可能仍有零星不一致;第二,就算 Eve 没有强到足以把协议直接破坏,她也可能通过窃听和公开讨论拿到一部分相关信息。[6][7]
4.1 信息调和:先让 Alice 和 Bob 的串重新对齐
信息调和的目标很朴素:让 Alice 和 Bob 在不直接公开整串密钥的前提下,把双方的比特串修正到一致。
为了说明它在做什么,先看一个故意简化的例子。假设经过筛选和抽样之后,Alice 手里的 8 位原始密钥是
而 Bob 因为信道噪声拿到的是
两串只差一位。若 Alice 和 Bob 直接公开整串比对,当然能修好,但密钥也就同时泄露光了。所以他们会在认证过的公开信道上只交换“部分校验信息”,例如奇偶校验。
把这 8 位分成前后两块:
- Alice 的前四位
1011有 3 个 1,奇偶为奇; - Bob 的前四位
1010有 2 个 1,奇偶为偶。
这说明错误出在前四位里。再把前四位一分为二:
- 前两位
10与10奇偶相同; - 后两位
11与10奇偶不同。
于是错误被进一步锁定在第 4 位。Bob 把这一位从 0 改成 1 后,双方串重新一致。
真实协议里不会只用这一种最简单的分块法,但本质始终一样:Alice 和 Bob 公开的不是密钥本身,而是足以帮助纠错的一些校验关系。[7]
4.2 隐私放大:再把 Eve 可能知道的那一点信息压掉
信息调和之后,Alice 和 Bob 拿到的是一致的串,但这时还不能忘记一个事实:刚才公开交换的校验信息,本身也让 Eve 多知道了一点东西。再加上她可能在量子信道上已经听到的内容,Eve 对原始密钥往往不是“完全不知道”,而是“知道一点点”。[7][8]
这时要做的不是继续争论 Eve 到底知道哪几位,而是直接把长串压缩成更短的一串,让 Eve 对新串的知识急剧下降。这一步叫隐私放大。
为了建立直觉,可以看一个玩具例子。设 Alice 和 Bob 已经一致的 8 位串是
他们公开约定一个压缩规则,例如取三个新的比特:
代入这个例子可得
于是最终得到的 3 位串是
这当然不是实际协议里会直接使用的具体哈希函数;真实安全证明里使用的是经过严格分析的哈希族。但这个小例子已经能说明隐私放大的结构:不是“修补原串”,而是“把长串压成更短但更安全的新串”。[7][8]
4.3 “无条件安全”到底该怎样理解
到了这里,终于可以回到本文开头那句最容易被说得过满的话:BB84 提供无条件安全。
更准确的说法是:
❝
在理想化器件模型下,并在公开但认证的经典信道上完成参数估计、信息调和和隐私放大之后,BB84 的密钥可以达到信息论安全;它不依赖 Eve 计算资源有限,而依赖量子力学和统计推断本身。[6][7]
这句话里有三个边界不能丢:
- 安全对象是“最终密钥”,不是未经后处理的筛选串。
- 需要认证过的经典信道;公开不等于可以任人篡改。
- 理论安全证明和现实设备安全不是同一件事;现实系统还要额外面对探测器漏洞、光源缺陷和有限样本效应。[6][7]
这样一来,BB84 和 RSA 的差别就很清楚了。RSA 的安全性来自“Eve 目前还算不出”;BB84 的目标则是让 Eve “一旦想看,就必须留下可统计检验的痕迹”。前者是计算安全,后者在理想模型里是信息论安全。
小结:把 BB84 翻译回量子计算语言
现在可以把整篇文章压缩成一条完整逻辑链:
- 一次一密告诉我们,真正完美的加密需要先有一个真正安全的共享密钥。[1]
- 经典信道做不到这一点,因为经典信息可以被无痕复制。
- 量子信道之所以不同,是因为量子测量会改变态,而未知量子态不能被复制。[2][3][4]
- BB84 用 Z 基和 X 基把这个物理事实变成协议:同基留下,异基丢弃;抽样估计 QBER;再通过信息调和和隐私放大提炼出最终密钥。[5][6][7][8]
如果只记一句可以反复拿来用的总结,那应该是:
❝
BB84 的安全性,不是把破解变难,而是把窃听变成一件会扰动态、会抬高误码率、因此能被统计检测到的物理事件。
这正是量子信息最有意思的地方之一。前几章里我们把“测量会改变态”“不同基下结果会变随机”“未知量子态不能复制”当成量子系统的限制;到了 BB84,它们第一次被直接拿来做一件经典世界里做不到的事。
下一篇 5.2 会把视角再往前推进一步:BB84 仍然是 Alice 主动制备并发送单个量子态,而 Ekert 协议会改用纠缠对和 Bell 不等式来建立密钥。到那时,安全性的根基不再只是“测量会扰动”,还会进一步连到量子非定域性的结构上。
参考资料
- Claude E. Shannon, “Communication Theory of Secrecy Systems,” Bell System Technical Journal 28(4), 656-715, 1949. https://doi.org/10.1002/j.1538-7305.1949.tb00928.x
- Leonard Susskind and Art Friedman, Quantum Mechanics: The Theoretical Minimum. Basic Books, 2014.
- Chris Bernhardt, Quantum Computing for Everyone. The MIT Press, 2019.
- W. K. Wootters and W. H. Zurek, “A single quantum cannot be cloned,” Nature 299, 802-803, 1982. https://doi.org/10.1038/299802a0
- Charles H. Bennett and Gilles Brassard, “Quantum cryptography: Public key distribution and coin tossing,” in Proceedings of IEEE International Conference on Computers, Systems and Signal Processing, 175-179, 1984.
- Peter W. Shor and John Preskill, “Simple Proof of Security of the BB84 Quantum Key Distribution Protocol,” Physical Review Letters 85, 441-444, 2000. https://doi.org/10.1103/PhysRevLett.85.441
- Valerio Scarani, Helle Bechmann-Pasquinucci, Nicolas J. Cerf, Miloslav Dušek, Norbert Lütkenhaus, and Momtchil Peev, “The security of practical quantum key distribution,” Reviews of Modern Physics 81, 1301-1350, 2009. https://doi.org/10.1103/RevModPhys.81.1301
- Charles H. Bennett, Gilles Brassard, Claude Crépeau, and Ueli M. Maurer, “Generalized Privacy Amplification,” IEEE Transactions on Information Theory 41(6), 1915-1923, 1995. https://doi.org/10.1109/18.476316
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Coder小Q Litt1eQ Litt1eQ《【量子计算】量子密钥分发:BB84 协议》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论