量子密钥分发

量子密钥分发（quantum key distribution，简称QKD）是利用量子力学特性实现密码协议的安全通信方法。它使通信的双方能够产生并分享一个随机的、安全的密钥，来加密和解密讯息。它常常被误称为量子密码学，因为它是量子密码学任务中最著名的例子。

量子密钥分发的一个最重要的，也是最独特的性质是：如果有第三方试图窃听密码，则通信的双方便会察觉。这种性质基于量子力学的基本原理：任何对量子系统的测量都会对系统产生干扰。第三方试图窃听密码，必须用某种方式测量它，而这些测量就会带来可察觉的异常。通过量子叠加态或量子纠缠态来传输信息，通信系统便可以检测是否存在窃听。当窃听低于一定标准，一个有安全保障的密钥就可以产生了。

量子密钥分发的安全性基于量子力学的基本原理，而传统密码学是基于某些数学算法的计算复杂度。传统密码学无法察觉窃听，也就无法保证密钥的安全性。QKD的安全性是是可以依据信息论证明的，而且它还具有前向安全性。

量子密钥分发只用于产生和分发密钥，并没有传输任何实质的讯息。密钥可用于某些加密算法来加密讯息，加密过的讯息可以在标准信道中传输。跟量子密钥分发最常见的相关算法就是一次性密码本，如果使用保密而随机的密钥，这种算法是。在实际的运用上，量子密钥分发常常被拿来与对称密钥加密的加密方式，如AES这类算法一同使用。

## 量子密钥交换

量子通讯中，讯息编码为量子态，或称量子比特，与此相对，经典通信中，讯息编码为比特。通常，光子被用来制备量子态。量子密码学利用量子态的特性来确保安全性。量子密钥分发有不同的实现方法，但根据所利用量子态特性的不同，可以分为两大类。

基于制备和测量的协议 : 与经典物理不同，测量是量子力学不可分割的组成部分。一般来讲，测量一个未知的量子态会以某种形式改变该量子的状态。这被称为量子的不确定性，它的一些基本结论有维尔纳·海森堡的不确定性原理，信息干扰理论和不可克隆原理。这些性质可以被利用来检测通讯过程中的任何窃听（窃听必然需要测量），更重要的是，能够计算被截获讯息的数量。

基于纠缠态的协议 : 两个或更多的量子态能够建立某种联系，使得他们无论距离多远依然要被看做是一个整体的量子态，而不是独立的个体。这被称为量子纠缠。他们之间的联系是，比如，对其中一个量子的测量会影响其他量子。如果纠缠的量子对被通讯的双方分别持有，任何对讯息的拦截会改变整个系统，使第三方的存在（以及他截获讯息的数量）被检测到。

这两大类方法中的每一类都可以进一步分为三类协议：连续或离散变量、连续变量和分布式相位参考编码。离散变量协议是第一个被发明的，也是最广泛实现的。其他两类主要关注克服实验的实用局限性。下面描述的两种协议都使用离散变量编码。

## 协议

### BB84协议

查尔斯·贝内特（Charles Bennett）与吉勒·布拉萨（Gilles Brassard）于1984年发表的论文中提到的量子密码分发协议，后来被称为BB84协议。其实任意两组共轭状态都可以用于该协议，而且大多数BB84的基于光纤的实现都使用相位编码状态。BB84协议是最早描述如何利用光子的偏振态来传输讯息的。发送者（通常称为Alice）和接收者（通常称为Bob）用量子信道来传输量子态。如果用光子作为量子态载体，对应的量子信道可以是光纤或者简单的自由空间。另外他们还需要一条公共经典信道，比如无线电或因特网。公共信道的安全性不需考虑，BB84协议在设计时已考虑到了两种信道都被第三方（通常称为Eve）窃听的可能。

这个协议的安全性源于用非正交态。量子不确定性告诉我们，通常不能在不干扰原始状态的情况下测量这些状态（参见不可克隆原理）。BB84协议利用两对状态，分别是光子偏振的两个直线基"+"：水平偏振（0°）记作|→>，垂直偏振（90°）记作|↑>；和光子偏振的两个对角基"×"：45°偏振记作|↗>，和135°偏振记作|↘>。这两对状态互相不正交，无法被彻底的分辨。比如选择基"+"来测量|↑>，会以100%的概率得到|↑>。但选择基"+"来测量|↗>，结果是随机的，会以50%的概率得到|→>，或以50%的概率得到|↑>，而原始状态的讯息丢失了。也就是说，当测量后得到状态|↑>，我们不能确定原本的状态是|↑>还是|↗>，这两个不正交的状态无法被彻底分辨。

基｜0｜1

<image>

｜

<image>

｜

<image>

<image>

｜

<image>

｜

<image>

BB84协议的第一步是量子传输。Alice随机产生一个比特（0或1），再随机选择一个基（"+"或"×"），来制备量子态。如左侧的表格所示，选择基"+"时把比特0制备成|↑>，把比特1制备成|→>；选择基"×"时，把比特0制备成|↗>，把比特1制备成|↘>。光子的偏振态被制备好之后，Alice把这个光子通过量子信道传送给Bob。之后重复这个过程多次。

Bob并不知道Alice制备量子态时选择了哪种基，他可以随机的选择基（"+"或"×"）来测量接收到的量子态。Bob测量他接受到的每个光子，记录所选的基和测量结果。Bob测量过所有光子后，他与Alice通过公共经典信道联系。Alice公布制备每个光子时所选择的基。Alice和Bob对比他们所选择的基，舍弃那些双方选择了不同的基的比特（一半左右），剩下的比特还原为他们共有的密钥。

Alice的随机比特｜0｜1｜1｜0｜1｜0｜0｜1

Alice随机选择的基｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

Alice所传光子的偏振态｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

Bob随机选择测量的基｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

Bob测量的光子的偏振态｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

｜

<image>

在公共信道中对比基

共有的密钥｜0｜1｜0｜1

Alice和Bob可以拿出他们密钥的一部分，然后相互对比来检查是否有人窃听。如果有第三方窃听（Eve，来自英文"eavesdropper"），他为了获得光子偏振讯息而作的测量，会导致对比密钥时发现错误。如果Eve选择了与Alice相同的基去测量，则不会影响Bob的测量结果，Alice和Bob对比密钥的一部分时便不会发现有Eve的存在。但Eve仍有50%的概率会选择与Alice不同的基去测量光子，这会使光子偏振态改变，此时Bob再测量这个光子又有50%的概率得到与Alice不同的结果，从而发现有窃听者Eve的存在，Eve引入的错误的概率是25%。当所对比的密钥部分，超过p个比特出错，则这个密码被舍弃并重新传递一次，重传可选择别的量子信道。p的取值依据是，如果Eve获取的比特数少于p，则可以用隐私放大（privacy amplification）的方法减少Eve所知道讯息，同时密钥的长度也被缩短了。

### B92协议

贝内特在1992发表的论文中描述的量子密码分发协议，被称作B92协议。B92协议中只使用两种量子态。Alice发送状态|↑>和|↗>。Bob接受状态后选择基"+"或"×"测量。Bob测量得到的结果如果是|→>，可以肯定Alice发送的状态是|↗>，得到结果|↖>可以肯定接受到的状态是|↑>。但如果Bob的测量结果是|↑>或|↗>，则不能肯定接收到的状态是什么。

之后Bob告诉Alice他对哪些状态得到了确定的结果，哪些状态他不能肯定，而不告诉Alice他选择了什么样的基测量。而后用那些得到了确定结果的基来编码，把"+"编为"0"，把"×"编为"1"，并把这串比特作为密钥。

这个协议有个弱点，只有无损耗的信道才能保证这个协议的安全性。否则，Eve可以把那些无法得到确定结果的状态截获然后重新制备可以得到确定结果的状态再发出去。

### E91协议

Artur Ekert的方案使用纠缠的光子对。这些光子对可以由Alice、Bob或与他们两者都不在一起的某些源（包括窃听者Eve）产生。这些光子会被分发，Alice和Bob最终都会得到每对光子中的其中一个。

该方案依赖于纠缠的两个性质。首先，纠缠态是完全相关的，如果Alice和Bob都测量他们的粒子是否具有垂直或水平极化，他们总是以100%的概率得到相同的答案。如果他们都测量其它任何互补（正交）极化对，结果同样如此。这就需要相距很远的二者具有精确的方向性同步。但是，特定的结果是完全随机的；Alice无法预测她（以及Bob）是否会获得垂直极化或水平极化。其次，Eve任何试图窃听的行为都会打破这些相关性，于是Alice和Bob就可以检测出来。

与BB84类似，该协议在检测Eve的存在之前涉及私密测量协议。在测量阶段，Alice会用 $Z_{0}, Z_{\frac{\pi}{8}}, Z_{\frac{\pi}{4}}$ 中的某些基来测量她收到的每个光子，而Bob会从 $Z_{0}, Z_{\frac{\pi}{8}}, Z_{-\frac{\pi}{8}}$ 中选择，其中 $Z_{\theta}$ 是 $\{|\uparrow \rangle, \; |\rightarrow \rangle\}$ 基旋转 $\theta$ 得到的。他们在完成测量之前都不会公开他们选取的基的序列。于是得到了两组光子：第一组由Alice和Bob使用相同基础测量的光子组成，而第二组包含所有其他光子。要想检测窃听，他们可以使用Alice的基和Bob的之间的相关系数来计算检验统计量 $S$，类似于Bell测试实验中所用的相关系数。最大纠缠光子会导致 $|S|=2\sqrt{2}$。如果情况并非如此，那么Alice和Bob可以得出结论，Eve已经在系统中引入了局域实在性（local realism），违反了贝尔定理。如果协议成功，则第一组可用于生成密钥，因为这些光子在Alice和Bob之间完全反对齐（anti-aligned）。

## 信息协调与隐私增强

上述量子密钥分发协议为Alice和Bob提供了几乎相同的共享密钥，并且还对密钥之间的差异进行了估计。这些差异可能是由窃听引起的，也可能是由传输线和探测器的缺陷引起的。由于无法区分这两种类型的错误，因此保证安全性需要假设所有错误都是由于窃听造成的。如果密钥之间的错误率低于某一阈值（截至2007年4月为20％），则可以执行两个步骤：首先移除错误的比特，然后将Eve对密钥的了解减少到任意小的值。这两个步骤分别称为信息协调和隐私增强，这两个步骤最早在1992年被提出来。

- 信息协调（Information Reconciliation）是密钥纠错（Error Correction）的一种方式，可保证Alice和Bob共同拥有的密钥的一致性。这个过程在公共信道中完成，由于可能被Eve窃听，所以要保证关于密钥本身的信息公布的越少越好。用于信息协调的通用协议是1994年提出的级联协议（cascade protocol）。这可以在几轮中运行，每一轮中的两个密钥被分成块，并且比较这些块的奇偶校验位。如果发现奇偶校验有差异，则执行二分搜索来查找和纠正错误。如果在前一轮中奇偶校验正确的块中发现错误，则该块中必须包含另一个错误；需要找到此错误并像以前一样进行纠正。这个过程以递归方式重复，这是“级联”这个名称的来源。在比较了所有的块之后，Alice和Bob都以相同的随机方式对其键进行重新排序，并开始新一轮。在多轮结束后，很大概率Alice和Bob拥有相同密钥；但是，Eve从交换的奇偶校验信息中也获得了关于密钥的附加信息。不过，从编码理论的角度来看，信息协调本质上就是带有辅助信息的源编码，因此适用于该问题的任何编码方案都可以用于信息协调。近来，Turbo码、LDPC码和极性码已用于此目的，提高了级联协议的效率。
- 隐私增强（Privacy Amplification）是减少或去除Eve窃听到的部分密钥信息的一种方法。这部分密钥信息可能是在传输密钥时被窃听的，也可能是后来通过公共信道做信息协调时被获取的。隐私增强利用Alice和Bob手中的密钥，生成一个新的、更短的密钥，这样Eve关于这个新密钥便知之甚少了。这可以使用通用散列函数来完成，该函数从公开的一组这样的函数中随机选择，其将长度等于密钥的二进制串作为其输入并输出所选择的较短长度的二进制串。根据Eve可以获得的关于旧密钥的信息量来计算缩短该新密钥的量，以便将Eve知道新密钥的概率降低到非常低的值。