孙添资 刘世民 肖海龙 张 影 冯 宝
1(国网内蒙古东部电力有限公司信息通信分公司 内蒙古 呼和浩特 010010) 2(南京南瑞国盾量子技术有限公司 江苏 南京 211000) 3(南瑞集团有限公司(国网电力科学研究院有限公司) 江苏 南京 211000)
量子信息作为物理学和信息学的交叉学科,在过去近50年内取得了迅猛的发展。其中量子算法、量子密钥分配、量子纠错码等都取得了突破性的成果[1-5],并且对一些传统的信息技术产生了巨大的冲击。例如Shor在1994年提出的因子分解算法[2],在时间效率上相比较于经典算法有着指数级的加速,从而对经典的公钥密码体制产生了巨大威胁。经典信息论已经证明,采用一次一密的加密方案,能够实现绝对的安全性[6-7]。该方案的关键在于密钥传输的安全性。量子密钥分配(Quantum Key Distribution,QKD)以量子力学的基本理论为依据[8-9],其中最为著名的协议由Bennett和Brassard于1984年提出[10](后被称为BB84协议) ,理论上可以证明在该协议中密钥的分配过程具有无条件的安全性[11-12]。QKD协议的唯一要求是量子比特在信道上传输的错误率低于某个阈值,然而在真实的量子信息传输过程中,量子比特并非处于完全孤立的量子系统中,会无可避免地受到噪声干扰从而产生错误[13-14],使得量子比特传输的错误率大幅提高。其后果是通信双方误认为有窃听者的存在[15],从而使得协议终止,或者双方的最终密钥不一致。量子纠错码的作用就是降低量子比特传输的错误率[16],与经典纠错码类似,量子纠错码通过引入冗余信息,使得编码具有一定的纠错能力[17]。量子纠错码的构造方法也是近年来的热点问题[18-20],目前常用的构造方法之一是Calderbank-Shor-Steane(CSS)纠错码[21-22],该方法能够根据经典的线性码构造出相应的量子纠错码。
本文首先介绍量子CSS纠错码以及BB84协议的相关理论,之后介绍一种简单的[7,1]CSS纠错码的构造方法,并在此基础上提出一种基于[7,1]CSS纠错码的量子密钥分配协议。该方案能够提高含噪声量子信道中量子密钥传输的效率。
在介绍量子CSS纠错码之前,先介绍量子码和量子错误的基本概念。一个[n,k]量子码Q是Hilbert空间(C2)⊗n=C2n的一个2k(0≤k≤n)维子空间,其中n称为Q的码长。量子错误是Hilbert空间C2n中的一个酉算子,它使得量子态发生改变,由于量子错误为连续错误,因此相应酉算子的形式有无穷多种可能。根据Shor和Steane的简化模型,对于一个量子错误,只需考虑在每个量子比特上独立作用的错误算子。作用于单个量子比特的酉算子可以表示为以下4个Pauli矩阵的线性组合形式。
(1)
式中:σx表示比特翻转的错误算子;σz是表示相位翻转的错误算子;σy表示同时发生比特翻转和相位翻转的错误算子(σy=iσxσz);I表示不发生错误的算子。对于一个量子码,如果其能够纠正比特翻转和相位翻转这两种错误,那么就能纠正任何一种错误[16]。
(2)
式中:“+”表示模2加。不难得出量子态|x+C2〉仅取决于x属于C2的哪一个陪集,对于C1中的两个不同码字x和y,如果两者属于同一个陪集,〈x+C2|y+C2〉=1;如果两者属于不同的陪集,〈x+C2|y+C2〉=0。因此所有的|x+C2〉是一组标准正交向量,它们生成的向量空间称为量子码CSS(C1,C2)。C1中C2的陪集数量为|C1|/|C2|=2k1-k2,即共有2k1-k2种不同的量子态|x+C2〉,因此CSS(C1,C2)是[n,k1-k2]的量子码。
使用CSS(C1,C2)进行量子纠错的原理如下。分别用长度为n的向量e1和e2表示比特翻转错误和相位翻转错误,假设初始量子态如式(2)所示,则发生错误后的量子态为:
(3)
为了检测比特翻转错误e1,引入处于全0状态的长为n-k1的辅助量子比特串。设C1的校验矩阵为H1,则可以通过使用完全由受控非门(如图1所示)组成的量子线路实现如下变换:
(4)
图1 受控非门
通过测量辅助量子比特串可以得到结果H1e1。由于C1能够纠正最多t比特的错误,因此由H1e1可以推断出不超过t量子比特的比特翻转错误e1,之后对发生错误的量子比特使用非门纠正错误。在纠正比特翻转错误后,对每个量子比特使用Hadamard门,可以得到量子态:
(5)
Bennett等[5]于1984年提出了一种量子密钥分配协议,即BB84协议。协议中使用了两种不同的基{|0〉,|1〉}和{|+〉,|-〉},其中|+〉和|-〉按式(6)定义。
(6)
BB84协议中|0〉和|+〉代表经典比特0;|1〉和|-〉代表经典比特1,其具体流程如下[1]:
(1) Alice随机生成一个长度为(4+δ)n的比特串a。
(2) Alice随机生成一个长度为(4+δ)n的比特串b。如果b中某一位的比特是0,则将a中相应位置的比特制备为|0〉或|1〉;如果b中某一位的比特是1,则将a中相应位置的比特制备为|+〉或|-〉。
(3) Alice将制备的量子比特串发送给Bob。
(4) Bob收到长度为(4+δ)n的量子比特串,随机生成一个长度为(4+δ)n的比特串b′。如果b′中某一位的比特是0,则用{|0〉,|1〉}基测量相应位置的量子比特;如果b′中某一位的比特是1,则用{|+〉,|-〉}基测量相应位置的量子比特。最后得到长度为(4+δ)n的比特串a′。
(5) Alice和Bob分别公布比特串b和b′的值。
(6) Alice和Bob对比b和b′,根据相同比特的位置保留a和a′中相应的比特。如果留下多于2n个比特(高概率),则保留前2n个比特;否则协议终止。
(7) Alice选择2n个比特中的n个作为校验比特,并告诉Bob选择的结果。
(8) Alice和Bob公布并比较校验比特的值,如果不同比特的数量多于可接受的值,则协议终止。
(9) Alice和Bob利用剩下的n个比特获得m个比特的共享密钥。
(7)
以矩阵H为校验矩阵定义的线性码C是[7,4]码,其生成矩阵为:
(8)
以GT为校验矩阵定义的线性码为C⊥,不难验证C⊥⊂C。因此,只要令C1≡C,C2≡C⊥,那么便满足了CSS纠错码的构造条件。由于C1和C2分别为[7,4]线性码和[7,3]线性码,因此可以根据式(2)构造[7,1]量子码CSS(C1,C2):
(9)
(10)
按照以上方式构造的CSS纠错码又称为Steane码[1,23]。根据Hamming码的性质,C1和C2的最小距离均为3,从而能够纠正单个比特的错误,因此由它们构造的量子码CSS(C1,C2)能够纠正单个量子比特上的错误。
BB84协议中Alice向Bob发送的量子比特未进行纠错编码,因此在含噪声信道中的传输效率低。如果使用[7,1]CSS纠错码将要发送的每个量子比特编码成相应的量子比特串,则可减小信道噪声的干扰。将|+〉CSS和|-〉CSS定义为:
(11)
在新的协议中,Alice向Bob发送的量子比特串由若干个长度为7的量子比特子串组成,每个量子比特子串的状态为{|0〉CSS,|1〉CSS,|+〉CSS,|-〉CSS}中的一种。将{|0〉CSS,|1〉CSS}扩充成一组标准正交基,记为{|0〉CSS,|1〉CSS}+;将{|+〉CSS,|1〉CSS}扩充成一组标准正交基,记为{|+〉CSS,|-〉CSS}+。易知若对量子比特子串在{|0〉CSS,|1〉CSS}+基下进行测量,则可严格区分状态|0〉CSS和|1〉CSS;若对量子比特子串在{|+〉CSS,|-〉CSS}+基下进行测量,则可严格区分状态|+〉CSS和|-〉CSS。
在以上定义的基础上,可以得到一种基于[7,1]CSS纠错码的量子密钥分配协议。该协议中|0〉CSS和|1〉CSS代表经典比特0;|1〉CSS和|-〉CSS代表经典比特1,其具体流程如下:
(1) Alice随机生成一个长度为(4+δ)n的比特串a。
(2) Alice随机生成一个长度为(4+δ)n的比特串b。如果b中某一位的比特是0,则将a中相应位置的比特制备为{|0〉CSS,|1〉CSS};如果b中某一位的比特是1,则将a中相应位置的比特制备为{|+〉CSS,|-〉CSS}。
(3) Alice将制备的量子比特串发送给Bob。
(4) Bob收到量子比特串,先对每个量子比特子串进行量子纠错,然后随机生成一个长度为(4+δ)n的比特串b′。如果b′中某一位的比特是0,则用{|0〉CSS,|1〉CSS}+基测量相应位置的量子比特子串;如果b′中某一位的比特是1,则用{|+〉CSS,|-〉CSS}+基测量相应位置的量子比特子串,最后通过译码得到长度为(4+δ)n的比特串a′。
(5) Alice和Bob分别公布比特串b和b′的值。
(6) Alice和Bob对比b和b′,根据相同比特的位置保留a和a′中相应的比特,如果留下多于2n个比特(高概率),则保留前2n个比特,否则协议终止。
(7) Alice选择2n个比特中的n个作为校验比特子串,并告诉Bob选择的结果。
(8) Alice和Bob公布并比较校验比特的值,如果不同比特的数量多于可接受的值,则协议终止。
(9) Alice和Bob利用剩下的n个比特获得m个比特的共享密钥。
为了验证上述协议的安全性,假设在密钥分配过程中存在窃听者Eve。Eve要想进行窃听,必须对量子比特进行测量。由于未知的量子态不可克隆,Eve只能对Alice发送的量子比特进行测量而无法进行大量备份。Alice发送的每个量子比特子串处于状态|0〉CSS、|1〉CSS、|+〉CSS、|-〉CSS中的一种,由于这四个状态并非两两正交,且Alice并未公布其在步骤(2)中随机生成的比特串b,如果Eve使用了不同的基进行测量,将有概率获得错误的结果。为了计算此时获得错误结果的概率,假设Alice发送的量子比特子串为|0〉CSS,而Eve使用的测量基为{|+〉CSS,|-〉CSS}+,则Eve能获得正确结果的概率为:
(12)
即有一半的概率得到错误的结果,此时量子比特子串|0〉CSS的状态也必定发生改变。
综上,Eve无法确定自己测量结果的正确性,并且以很高的概率改变了Alice发送的量子比特子串的状态。这种改变可能导致Alice和Bob的校验比特产生差异,从而使他们发现窃听者的存在。
为了说明基于[7,1]CSS纠错码的量子密钥分配协议相对于BB84协议的改进,下面通过理论分析与数值仿真来对比两者密钥传输的错误率。由于相位翻转错误可以通过Hadamard门转化为比特翻转错误,因此下面仅考虑信道中的比特翻转错误。假设信道中量子比特翻转的概率为ε,若采用BB84协议,易知传输错误率为e=ε。若使用2.2节介绍的基于[7,1]CSS纠错码的量子密钥分配协议,设一个量子比特子串中有i个量子比特发生错误的概率为Pi(0≤i≤7),则:
(13)
由于每个量子比特子串可以纠正最多一个量子比特的错误,因此传输错误率等于量子比特子串中有2个及以上的量子比特发生错误的概率,即:
e′=1-P0-P1=1-(1-ε)7-7ε(1-ε)6
(14)
对于上述两种量子密钥分配协议,绘制密钥传输错误率与信道中量子比特翻转概率的关系曲线,如图2所示。
图2 两种量子密钥分配协议中传输错误率与量子比特翻转概率关系曲线
可以看出,当量子比特的翻转概率在0到0.05之间时,使用基于[7,1]CSS纠错码的量子密钥分配协议时的密钥传输错误率低于使用BB84协议时的密钥传输错误率。这意味着当量子信道受噪声干扰且干扰程度在一定范围之内时,基于[7,1]CSS纠错码的量子密钥分配协议能够以更高的可靠性进行密钥传输。
纠错码不论在经典通信还是量子通信中都有广泛的应用,在提高通信可靠性上有着不可比拟的重要作用。本文利用CSS纠错码纠正量子错误的能力,对BB84协议进行了改进,提出了一种基于[7,1]CSS纠错码的量子密钥分配协议,在保持密钥分配安全性的同时使得密钥在含噪声量子信道中的传输效率得到了提高。现有的量子密码协议均涉及量子比特的传输,因此都需要考虑信道噪声的问题,将量子纠错码融入量子密码协议的设计中是将来的一个研究方向。