未来已经到来,只是还不均匀。
# Quantum Key Distribution
# Problem setup
事情是这样子的,有两个人 Alice 和 Bob。
Key Distribution 的目的就是,希望这两个人通过通信,都知道了同一个字符串(经典的字符串)。
然后问题有以下假设:
- Alice 和 Bob 之间有两条信道:一个是量子的,一个是经典的。
- 有一个小贼 Eve,她可以获得所有 Alice 和 Bob 之间的通信的信息。
- Eve 可以对量子信道上的量子态进行任意操作(譬如修改,丢弃,测量等等)。但是对于经典信道 Eve 只能监听和丢弃信息,并不能修改。(这是假设经典的通信已经有成熟的协议保证安全性了)
那该怎么通信,才能在不让 Eve 知道的前提下,使得 Alice 和 Bob 都知道了同一个字符串呢?
尝试 0:Alice 随机生成一个字符串s,然后通过经典信道发送给 Bob。
显然这很猪,因为 Eve 直接监听到了s,失败。
尝试 1:Eve 直接把所有接收到的信息都 drop 掉。
这是玉石俱焚的行为。实际上,我们研究的困难点主要是避免下面两种情况:
- Alice 和 Bob 都以为自己获得了 key,结果他们的 key 不一样。
- Eve 窃取到了 key。
所以不妨假设 Eve 不去 drop 信息。因为 drop 后,Alice 和 Bob 就认为通信失败了,根据协议应该接收到的消息没收到,从而 Alice 和 Bob 就放弃了这条信道,重新建立信道去了。
# 协议 [BB84]
这个协议的内容很简单:
-
Alice 随机选择4n 个随机的 0/1 经典比特,记为a。
-
Alice 随机选择4n 个随机的 0/1 经典比特,记为b。
-
Alice 生成4n 个量子比特q1,...,q4n,其中:
qi=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∣0⟩∣1⟩∣+⟩∣−⟩ai=0,bi=0ai=1,bi=0ai=0,bi=1ai=1,bi=1
然后将它们发送给 Bob。
-
Bob 收到量子比特后,回复 Alice 自己确认收到。
-
然后 Bob 随机生成4n 个 0/1 经典比特,记为b′。并对收到的量子比特进行测量。若bi′=0,那么就对qi 在{∣0⟩,∣1⟩} 下测量,若bi′=1,那么就在{∣+⟩,∣−⟩} 下测量。测量结果也是一个长为4n 的 0/1 经典比特串,记为a′。
-
Alice 把b 传输给 Bob。Bob 把b′ 传输给 Alice。Alice 和 Bob 都丢弃bi=bi′ 的那些ai,ai′。这一步,大概率两人会留下超过2n 个经典比特。不妨假设两人留下了2n 个经典比特。
-
Alice 随机 sample 一个大小为n 的集合S⊆[2n],然后告诉 Bob S 和{ai∣i∈S}。Bob 会比较收到的ai 和自己的ai′,如果∀i∈S.ai=ai′,那 Bob 就回复 Accept。
-
如果 Accept,那么 Alice 和 Bob 分别把a1a2...an 和a1′a2′...an′ 中那些i∈S 丢弃掉,剩下的n 个经典比特就是 share 的 key。
我们分析一下这个协议。
首先,第 7,8 步,可以看作一个简单的 sampling test。
这个 test 的目的是保证 agreement,即如果通过这个 test(Bob 回复 Accept),那么 Alice 和 Bob 大概率 share 的 key 是一样的。同样的,如果 Eve 进行了影响 key 的修改,那么大概率就无法通过 test 了。
我们先来说明这件事。
这个可以抽象为:
给定任意两个长度为2n 的 0/1 串a 和b。(这里的任意,就是假设 Eve 可以随心所欲地修改)
不失一般性,假设a,b 有μn 位不一样。
那么对于任意一个阈值δ>0,我们随机 sample 一个大小为n 的集合S⊆[2n],有直观感觉:
若μ 很大,那么S 中至少有δn 位a 和b 不一样,是大概率的(和δ,μ,n 有关)。
那么逆反地,若S 中只有很少的(<δn)几位是不一样的,那么我们就认为大概率μ 也是很小的。
形式化地,我们考虑长为2n 的串c,满足ci={10ai=biai=bi。
那么原说法相当于任意给一个c,我们 sample 一个S⊆[2n],那么应该可以得到如下式子:
Prob[i∈S∑ci≤δn]<...
我们考虑ci=1 的每一位,随机 sample 一个大小为n 的集合的话,有:
Prob[i∈S]=C2nnC2n−1n−1=21Prob[i∈/S]=C2nnC2n−1n=21
因此,我们可以记一个随机变量Zi={10i∈Si∈/S。那么就有:
i∈S∑ci=i=1,ci=1∑nZi
而Zi 以21 的概率取0 或1。那么根据 Hoeffding’s inequality,有:
Prob[μn1i=1,ci=1∑n(Zi−E[Zi])≤−t]≤exp(−2μnt2)
所以:
Prob[i=1,ci=1∑nZi≤21μn−tμn]≤exp(−2μnt2)
我们令21μn−tμn=δn,那么取t=21−μδ,那么有:
Prob[i∈S∑ci≤δn]≤exp(−2μn(21−μδ)2)≤exp(−2μn(41−μδ))=exp((−21μ+2δ)n)
我们分析上述不等式,可以得到两个个结论。
对于长为2n 的 01 串a,b,若a,b 有μn 位不一样,那么我们随机 sample 一个大小为n 的集合S⊆[2n]:
- μ 越大,sample 的集合中至少有δn 位不一样的概率越大。不容易通过 test。
- δ 越大,sample 的集合中至少有δn 位不一样的概率越小。容易通过 test。
当δ=0,即原协议中说的,那么就有 test 不通过的概率:
ProbS⊆[2n],∣S∣=n[∃i∈S.ai=bi]≥1−exp(−μn/2)
可以看到,错误越多(μn 越大),越不容易通过 test。
除了 agreement,我们还需要分析 secrecy。这个就简单很多,也就是 Eve 无法窥探到 key 值。
当 Alice 随机生成量子比特给 Bob 时,可以看作随机从{∣0⟩,∣1⟩,∣+⟩,∣−⟩} 中,随机重复选择了(4+δ)n 个。所以在 Eve 看来这个 qubit 就是和随机没有区别。
(注意,∣0⟩,∣1⟩,∣+⟩,∣−⟩ 正好四等分 Bloch 球面上的圆周,也是单光子偏振 45,90,135,180 度的情况,所以无论怎么测量观察,它们都是均匀随机的)
由于不可克隆性,Eve 无法留下 qubit。所以当后续 Alice 发送给 Bob b 时,Eve 此时已经无法通过测量知道 key 值了。
还有一个小 trick,就是随机生成两个长度为4n 的 01 串,大概率至少有2n 位是一样的。这留给读者证明 hhh 很简单呐。