量子密鑰分發
量子密鑰分發（，簡稱QKD）是利用量子力学特性实现密码协议的方法。它使通信的双方能够产生并分享一个随机的、安全的密钥，来加密和解密訊息。它常常被误称为量子密碼學，因为它是量子密碼學任务中最著名的例子。
量子密鑰分發的一个最重要的，也是最独特的性质是：如果有第三方试图窃听密码，则通信的双方便会察觉。这种性质基于量子力学的基本原理：任何对量子系统的测量都会对系统产生干扰。第三方试图窃听密码，必须用某种方式测量它，而这些测量就会带来可察觉的异常。通过量子叠加态或量子纠缠态来传输信息，通信系统便可以检测是否存在窃听。当窃听低于一定标准，一个有安全保障的密钥就可以产生了。
量子密鑰分發的安全性基于量子力学的基本原理，而传统密码学是基于某些数学算法的计算复杂度。传统密码学无法察觉窃听，也就无法保证密钥的安全性。QKD的安全性是是可以依据信息论证明的，而且它还具有前向安全性。
量子密鑰分發只用于产生和分发密钥，并没有传输任何实质的訊息。密钥可用于某些加密算法来加密訊息，加密过的訊息可以在标准信道中传输。跟量子密鑰分發最常見的相關演算法就是一次性密碼本，如果使用保密而隨機的密鑰，這種演算法是。在實際的運用上，量子密鑰分發常常被拿來與對稱密鑰加密的加密方式，如AES這類演算法一同使用。
量子通訊中，訊息编码为量子态，或称量子比特，与此相对，经典通信中，訊息编码为比特。通常，光子被用来制备量子态。量子密码学利用量子态的特性来确保安全性。量子密钥分发有不同的实现方法，但根据所利用量子态特性的不同，可以分为两大类。 这两大类方法中的每一类都可以进一步分为三类协议：、连续变量和分布式相位参考编码。离散变量协议是第一个被发明的，也是最广泛实现的。其他两类主要关注克服实验的实用局限性。下面描述的两种协议都使用离散变量编码。
查尔斯·貝內特（Charles Bennett）與吉勒·布拉薩（Gilles Brassard）於1984年发表的论文中提到的量子密码分发协议，后来被称为BB84协议。其实任意两组共轭状态都可以用于该协议，而且大多数BB84的基于光纤的实现都使用相位编码状态。BB84协议是最早描述如何利用光子的偏振态来传输訊息的。发送者（通常称为Alice）和接收者（通常称为Bob）用量子信道来传输量子态。如果用光子作为量子态载体，对应的量子信道可以是光纤或者简单的自由空间。另外他们还需要一条公共经典信道，比如无线电或因特网。公共信道的安全性不需考虑，BB84协议在设计时已考虑到了两种信道都被第三方（通常称为Eve）窃听的可能。
这个协议的安全性源于用非正交态。量子不确定性告诉我们，通常不能在不干扰原始状态的情况下测量这些状态（参见不可克隆原理）。BB84协议利用两对状态，分别是光子偏振的两个直线基"+"：水平偏振（0°）记作|→>，垂直偏振（90°）记作|↑>；和光子偏振的两个对角基"×"：45°偏振记作|↗>，和135°偏振记作|↘>。这两对状态互相不正交，无法被彻底的分辨。比如选择基"+"来测量|↑>，会以100%的概率得到|↑>。但选择基"+"来测量|↗>，结果是随机的，会以50%的概率得到|→>，或以50%的概率得到|↑>，而原始状态的訊息丢失了。也就是说，当测量后得到状态|↑>，我们不能确定原本的状态是|↑>还是|↗>，这两个不正交的状态无法被彻底分辨。
BB84协议的第一步是量子传输。Alice随机产生一个比特（0或1），再随机选择一个基（"+"或"×"），来制备量子态。如左侧的表格所示，选择基"+"时把比特0制备成|↑>，把比特1制备成|→>；选择基"×"时，把比特0制备成|↗>，把比特1制备成|↘>。光子的偏振态被制备好之后，Alice把这个光子通过量子信道传送给Bob。之后重复这个过程多次。
Bob并不知道Alice制备量子态时选择了哪种基，他可以随机的选择基（"+"或"×"）来测量接收到的量子态。Bob测量他接受到的每个光子，记录所选的基和测量结果。Bob测量过所有光子后，他与Alice通过公共经典信道联系。Alice公布制备每个光子时所选择的基。Alice和Bob对比他们所选择的基，舍弃那些双方选择了不同的基的比特（一半左右），剩下的比特还原为他们共有的密钥。
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所知道訊息，同时密钥的长度也被缩短了。
貝內特在1992发表的论文中描述的量子密码分发协议，被称作B92协议。B92协议中只使用两种量子态。Alice发送状态|↑>和|↗>。Bob接受状态后选择基"+"或"×"测量。Bob测量得到的结果如果是|→>，可以肯定Alice发送的状态是|↗>，得到结果|↖>可以肯定接受到的状态是|↑>。但如果Bob的测量结果是|↑>或|↗>，则不能肯定接收到的状态是什么。
之后Bob告诉Alice他对哪些状态得到了确定的结果，哪些状态他不能肯定，而不告诉Alice他选择了什么样的基测量。而后用那些得到了确定结果的基来编码，把"+"编为"0"，把"×"编为"1"，并把这串比特作为密钥。
这个协议有个弱点，只有无损耗的信道才能保证这个协议的安全性。否则，Eve可以把那些无法得到确定结果的状态截获然后重新制备可以得到确定结果的状态再发出去。
Artur Ekert的方案使用纠缠的光子对。这些光子对可以由Alice、Bob或与他们两者都不在一起的某些源（包括窃听者Eve）产生。这些光子会被分发，Alice和Bob最终都会得到每对光子中的其中一个。
该方案依赖于纠缠的两个性质。首先，纠缠态是完全相关的，如果Alice和Bob都测量他们的粒子是否具有垂直或水平极化，他们总是以100%的概率得到相同的答案。如果他们都测量其它任何互补（正交）极化对，结果同样如此。这就需要相距很远的二者具有精确的方向性同步。但是，特定的结果是完全随机的；Alice无法预测她（以及Bob）是否会获得垂直极化或水平极化。其次，Eve任何试图窃听的行为都会打破这些相关性，于是Alice和Bob就可以检测出来。
与BB84类似，该协议在检测Eve的存在之前涉及私密测量协议。在测量阶段，Alice会用 formula_1 中的某些基来测量她收到的每个光子，而Bob会从 formula_2 中选择，其中 formula_3 是 formula_4 基旋转 formula_5 得到的。他们在完成测量之前都不会公开他们选取的基的序列。于是得到了两组光子：第一组由Alice和Bob使用相同基础测量的光子组成，而第二组包含所有其他光子。要想检测窃听，他们可以使用Alice的基和Bob的之间的相关系数来计算检验统计量 formula_6，类似于Bell测试实验中所用的相关系数。最大纠缠光子会导致 formula_7。如果情况并非如此，那么Alice和Bob可以得出结论，Eve已经在系统中引入了局域实在性（），违反了贝尔定理。如果协议成功，则第一组可用于生成密钥，因为这些光子在Alice和Bob之间完全反对齐（anti-aligned）。
上述量子密钥分发协议为Alice和Bob提供了几乎相同的共享密钥，并且还对密钥之间的差异进行了估计。这些差异可能是由窃听引起的，也可能是由传输线和探测器的缺陷引起的。由于无法区分这两种类型的错误，因此保证安全性需要假设所有错误都是由于窃听造成的。如果密钥之间的错误率低于某一阈值（截至2007年4月为20％），则可以执行两个步骤：首先移除错误的比特，然后将Eve对密钥的了解减少到任意小的值。这两个步骤分别称为信息协调和隐私增强，这两个步骤最早在1992年被提出来。