量子计算 6 量子密钥分发
和量子货币需要一直保持量子相干性(Coherence)不同,本节中的量子密钥分发仅需要在通讯时保持相干性即可。而量子密钥的出现,使得我们可以发现密钥是否被窃听,从而保持最大的保密和安全性。
1 一次性密码本 (One-time Pad)
在经典密码学中,有一种加密算法,其基本思想是使用共享的随机密钥来加密和解密信息,且该密钥只使用一次:
- 假设张三李四有个共享的密钥 k ∈ { 0 , 1 } n k\in \{0,1\}^n k∈{0,1}n,张三要把信息 m ∈ { 0 , 1 } m m\in \{0,1\}^m m∈{0,1}m发送给李四,于是他用加密算法得到 c = m ⊗ k c=m\otimes k c=m⊗k,其中 ⊗ \otimes ⊗是按位异或操作,当位数值相同为真,反之为假;
- 李四收到加密后的文本后进行以下操作 c ⊗ k = m ⊗ k ⊗ k = m c\otimes k=m\otimes k \otimes k=m c⊗k=m⊗k⊗k=m,这时根据异或操作结合律性质,得到了解密后的文本;
在经典密码学中,该共享密钥只使用一次,且为随机生成的,且至少和要加密的文本等长;否则,需要假设窃听者老王的算力有限。共享密钥的安全分发因此是一个非常重要的问题;我们来看使用量子密钥如何能在不假设老王算力的情况下实现安全的分发。
2 量子密钥分发 BB84 Protocol
BB84方案是首个量子密钥分发方案,仅需要在交流时保持量子相干性,通过该方案,你可以发现自己的密钥是否被窃听者窃听。
假设张三李四之间有一个经典信息频道,和一个量子信息频道,假设通过经典信息频道可以验证发文者的身份,量子信息频道可以发送量子比特,则BB84方案如下:
- 张三随机生成两个文本 x , y ∈ { 0 , 1 } n x,y\in \{0,1\}^n x,y∈{0,1}n,然后使用这两个文本生成一个 n n n位的量子态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩,张三根据 x x x确定量子比特的基 ( 0 → { ∣ 0 ⟩ , ∣ 1 ⟩ } 0\rightarrow \{|0\rangle, |1\rangle\} 0→{∣0⟩,∣1⟩}, 1 → { ∣ + ⟩ , ∣ − ⟩ } 1\rightarrow \{|+\rangle, |-\rangle\} 1→{∣+⟩,∣−⟩}),根据 y y y确定量子比特的具体状态 ( 0 → { ∣ 0 ⟩ , ∣ + ⟩ } 0\rightarrow \{|0\rangle, |+\rangle\} 0→{∣0⟩,∣+⟩}, 1 → { ∣ 1 ⟩ , ∣ − ⟩ } 1\rightarrow \{|1\rangle, |-\rangle\} 1→{∣1⟩,∣−⟩})
- 张三把 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩发送给李四;
- 李四随机生成一个文本 y ′ ∈ { 0 , 1 } n y'\in \{0,1\}^n y′∈{0,1}n,李四根据 y ′ y' y′的位确定测量的基 ( 0 → { ∣ 0 ⟩ , ∣ 1 ⟩ } 0\rightarrow \{|0\rangle, |1\rangle\} 0→{∣0⟩,∣1⟩}, 1 → { ∣ + ⟩ , ∣ − ⟩ } 1\rightarrow \{|+\rangle, |-\rangle\} 1→{∣+⟩,∣−⟩}),然后把测量的结果记录到 x ′ x' x′中 ( { ∣ 0 ⟩ , ∣ + ⟩ } → 0 \{|0\rangle, |+\rangle\}\rightarrow 0 {∣0⟩,∣+⟩}→0, { ∣ 1 ⟩ , ∣ − ⟩ } { ∣ 1 ⟩ , ∣ − ⟩ } → 1 \{|1\rangle, |-\rangle\}\{|1\rangle, |-\rangle\} \rightarrow 1 {∣1⟩,∣−⟩}{∣1⟩,∣−⟩}→1);
- 张三李四分享一下 y , y ′ y,y' y,y′,即他们所使用的基,然后将 x , x ′ x,x' x,x′中使用基不同的部分去掉,剩下的部分就是他们共同的密钥了。
使用这个方案,老王如果不去窃听量子频道就获取不了任何信息,如果窃听量子频道,老王需要去测量量子位,但是在测量的时候可能会改变量子位的状态,如果用基 { ∣ + ⟩ , ∣ − ⟩ } \{|+\rangle, |-\rangle\} {∣+⟩,∣−⟩}去测量 { ∣ 0 ⟩ , ∣ 1 ⟩ } \{|0\rangle, |1\rangle\} {∣0⟩,∣1⟩},则量子位状态会坍塌为 { ∣ + ⟩ , ∣ − ⟩ } \{|+\rangle, |-\rangle\} {∣+⟩,∣−⟩},则在李四收到并用基 { ∣ 0 ⟩ , ∣ 1 ⟩ } \{|0\rangle, |1\rangle\} {∣0⟩,∣1⟩}测量时,则有一半的概率会得到不对的结果。
于是张三李四会分享一些自己测量的量子位结果,看看是否对的上,如果对不上,则很可能已经被窃听了,于是张三李四会舍弃本次通讯结果,再进行下一次直至确保没有被窃听。
即使老王窃听到了几个量子比特并没有被发现,那张三李四也可以通过一些经典计算机算法比如哈希函数来获得新的共享密钥,那老王的这几个比特也没卵用。
这里BB84的证明方案还是很复杂的,因为老王可能还会用到一些量子纠缠的手段去测量,具体的证明方案请参考以下文献:
[1] H.-K. Lo and H. F. Chau, Unconditional Security of Quantum Key Distribution over Arbitrarily Long Distances, Science 283, 2050 (1999).
下次预告:量子通讯