一种高效量子密钥分配方法转让专利
申请号 : CN200610095145.X
文献号 : CN1929372B
文献日 : 2010-04-21
发明人 : 包小敏
申请人 : 西南大学
摘要 :
权利要求 :
1.一种高效量子密钥分配方法,它首先要设定一个Alice和Bob共享的实数序列,然后依次进行建立原始密钥、信息调和、保密增强三个阶段;
其特征在于:Alice和Bob共享的实数序列为P=(p1,…,pn) (#)其中p1,…,pn是在区间[0,1]上选取的n个数;
第一阶段建立原始密钥的步骤如下:
(1)Alice随机地产生一个长度为n的比特序列A=(A1,…,An),Alice与Bob的共享密钥将在其中产生;
(2)Alice在区间[0,1]上选取n个实数r1A,…,rnA,然后构造比特序列a=(a1,…,an),其中
(3)对于A中的比特Ai(1≤i≤n),若ai=0,则用Z基编码,即如果Ai=0,则相应的光子的状态取为|0>,如果Ai=1,则相应的光子的状态取为|1>;若ai=1,则用X基编码,即如果Ai=0,则相应的光子的状态取为|+>,如果Ai=1,则相应的光子的状态取为|->;
(4)Alice将按照第3步中的方法制取的光子序列发送给Bob;
(5)Bob随机地在区间[0,1]上选取n个实数r1B,…,rnB,然后构造比特序列b=(b1,…,bn),其中
对于到达的第i个光子(i=1,…,n),若bi=0,则用Z基测量;若bi=1,则用X基测量,然后按照表1的编码得到一个比特序列B=(B1,…,Bn);
表1 编码方案
(6)Alice公布a=(a1,…,an),Bob公布b=(b1,…,bn);
(7)Alice和Bob分别将A和B中所有对应于ai≠bi位置i的比特Ai和Bi删除,保留其余的比特,得到的比特序列分别记为A′和B′;
(8)Alice和Bob随机地选择若干个位置,分别将A′和B′中这些位置上对应的比特做比较,分别计算在Z基编码上和在X基编码上的错误率eZ和eX;若eZ>t1,其中t1为可接受的筏值,或eX>t2,其中t2为可接受的筏值,则终止协议;否则进行信息调和和保密增强。
说明书 :
技术领域
本发明涉及量子密码技术领域,具体涉及量子密钥分配问题.
背景技术
以下介绍一下BB84协议:
按惯例我们把BB84协议中的两个端实体分别用Alice和Bob来表示,协议中的光子的四个状态分别为:|0>,|1>和|+>,|->,其中|0>,|1>为计算基态[M.A.Nielsen,I.L.Chuang著,赵千川译.量子计算和量子信息(一)-量子计算部分.清华大学出版社,2004,14页],而[M.A.Nielsen,I.L.Chuang著,赵千川译.量子计算和量子信息(一)-量子计算部分.清华大学出版社,2004,21页]。
向量组Z={|0>,|1>}和X={|+>,|->}都构成光子的状态空间(2维Hilbert空间)的标准正交基(这里沿用[M.A.Nielsen,I.L.Chuang著,赵千川译.量子计算和量子信息(二)-量子信息部分.清华大学出版社,2004]228页的记法)。相应于这两个基的编码方案由表1给出:
表1编码方案
BB84协议(其它协议也类似)大致可以分为三阶段:建立原始密钥,信息调和,保密增强。由于本发明只涉及第一阶段,所以这里只介绍BB84的第一阶段,其它两个阶段不详细介绍。
首先Alice和Bob共享一个实数序列
P=(p1,…,pn) (*)
其中pi=1/2,i=1,…,n.
第一阶段:建立原始密钥(Raw key establishment)
1.Alice随机地产生一个长度为n的比特序列A=(A1,…,An),Alice与Bob的共享密钥将在其中产生。
2.Alice随机地在区间[0,1]上选取n个实数r1A,…,rnA,然后构造比特序列a=(a1,…,an),其中
3.对于A中的比特Ai(1≤i≤n),若ai=0,则用Z基编码(即如果Ai=0,则相应的光子的状态取为|0>,如果Ai=1,则相应的光子的状态取为|1>);若ai=1,则用X基编码(即如果Ai=0,则相应的光子的状态取为|+>,如果Ai=1,则相应的光子的状态取为|->)。
4.Alice将按照第3步中的方法制取的光子序列发送给Bob。
5.Bob随机地在区间[0,1]上选取n个实数r1B,…,rnB,然后构造比特序列b=(b1,…,bn),其中
6.对于到达的第i个光子(i=1,…,n),若bi=0,则用Z基测量;若bi=1,则用X基测量。然后按照表1的编码得到一个比特序列B=(B1,…,Bn)。
7.Alice公布a=(a1,…,an),Bob公布b=(b1,…,bn)。
8.Alice和Bob分别将A和B中所有对应于ai≠bi位置i的比特Ai和Bi删除,保留其余的比特,得到的比特序列分别记为A′和B′。
9.Alice和Bob随机地选择若干个位置,分别将A′和B′中这些位置上对应的比特做比较。若不同(错误)的比率e>t(可接受的阀值),则终止协议;否则进行信息调和和保密增强。
第二阶段:信息调和(Information reconciliation)
第三阶段:保密增强(Privacy amplification)
在BB84的第一阶段中,有两个关键的地方。一个是编码基序列a和测量基序列b的构造。a和b的构造受实数序列(*)直接影响。由于实序列(*)的每一项都为1/2,而Alice和Bob构造a和b是互相独立的,所以a和b的对应项中大约有50%相同,故A′和B′的长度大约是n/2,也就是说,到第一阶段结束,BB84的效率不超过50%。另一个是在第9步中错误率的计算方式:不区分错误是发生在Z基编码上还是X基编码上,只统一计算一个错误率e。
为了提高量子密钥分配的效率,H.K.Lo等人发明了一种方法(以下简称LCA方法,此方法1998年3月获美国专利,专利号为5732139),相应的文章于2005年发表[H.K.Lo,H.F.Chau,and M.Ardehali.Efficient Quantum Key Distribution Scheme and a Proof of ItsUnconditional Security(一种高效的量子密钥分配方案及其无条件安全性的证明).Journal ofCryptography 18(2005),133--165.]。LCA方法主要是在上面所说的两个关键地方做了改进。
在LCA方法中,Alice和Bob共享的实数序列为:
P=(p1,…,pn) (**)
其中pi=p,0≤p≤1,i=1,…,n。这里各项还是都取的一个固定值p,但p的值可以是0和1之间的任一实数。
LCA方法的第9步为:
LAC9.Alice和Bob随机地选择若干个位置,分别将A′和B′中这些位置上对应的比特做比较,分别计算在Z基编码上和在X基编码上错误的率eZ和eX。若eZ>t1(可接受的筏值)
或eX>t2(可接受的筏值),则终止协议;否则进行信息调和和保密增强。
当p≠1/2时,a和b中的对应项取相同的值的可能性为:p2+(1-p)2>1/2,故a和b中相同的项所占的比率超过50%,因此这时用LCA方法得到的A′和B′的长度超过n/2。这里p≠1/2导致了选取Z基和X基的机会不均等。LCA方法的第9步(LAC9)就是为了防止这种不均等可能带来的安全上的隐患而设计的。
LCA方法的其它步骤同BB84一样。
在现有的方案中,实序列P的各项p1,…,pn都取的是相同的数。正如文献[4]中所指出的那样,实序列P中各项都取相同的值p,窃听者可以根据p的值来决定窃听时测量所用的基,譬如,当p<1/2时,在每个位置上,Alice和Bob用X基的可能性要大于用Z基的可能性,因此窃听者可以简单的采取全用X基测量来达到窃听的目的。而在(#)中,当各项都随机选取时,在不同位置,Alice和Bob用X基还是用Z基的可能性就可能不同,因此窃听者不能简单的采取全用X基或全用Z基测量来达到窃听的目的,从而增加了窃听的难度。
发明内容
本发明的技术方案如下:
同LCA方法一样,本发明方法同LCA方法的主要区别是在实数序列(*)上,也就是在如何选择编码基和测量基上,其它的同LCA方法相同。以下是本方法具体步骤:
首先Alice和Bob共享一个实数序列
P=(p1,…,pn) (#)
其中p1,…,pn是在区间[0,1]上选取的n个数。
P的共享可以通过许多途径来实现,可以由一方产生后通过公共信道发送给另一方;也可由一方随机地选取一个数作为伪随机数函数的种子发给对方,然后双方通过这个种子用同一个伪随机数函数来产生。
第一阶段:建立原始密钥(Raw key establishment)
1.Alice随机地产生一个长度为n的比特序列A=(A1,…,An),Alice与Bob的共享密钥将在其中产生。
2.Alice随机地在区间[0,1]上选取n个实数r1A,…,rnA,然后构造比特序列a=(a1,…,an),其中
3.对于A中的比特Ai(1≤i≤n),若ai=0,则用Z基编码(即如果Ai=0,则相应的光子的状态取为|0>,如果Ai=1,则相应的光子的状态取为|1>);若ai=1,则用X基编码(即如果Ai=0,则相应的光子的状态取为|+>,如果Ai=1,则相应的光子的状态取为|->)。
4.Alice将按照第3步中的方法制取的光子序列发送给Bob。
5.Bob随机地在区间[0,1]上选取n个实数r1B,…,rnB,然后构造比特序列b=(b1,…,bn),其中
6.对于到达的第i个光子(i=1,…,n),若bi=0,则用Z基测量;若bi=1,则用X基测量。然后按照表1的编码得到一个比特序列B=(B1,…,Bn)。
7.Alice公布a=(a1,…,an),Bob公布b=(b1,…,bn)。
8.Alice和Bob分别将A和B中所有对应于ai≠bi位置i的比特Ai和Bi删除,保留其余的比特,得到的比特序列分别记为A′和B′。
LAC9.Alice和Bob随机地选择若干个位置,分别将A′和B′中这些位置上对应的比特做比较,分别计算在Z基编码上和在X基编码上错误的率eZ和eX。若eZ>t1(可接受的筏值)或eX>t2(可接受的筏值),则终止协议;否则进行信息调和和保密增强。
第二阶段:信息调和(Information reconciliation)
第三阶段:保密增强(Privacy amplification)
发明效果
首先比较(**)和(#)和可以看出,(**)中的每一项的值都是相同的p,而(#)中的各项可以取不同的值。当(#)中各项都取相同的p时,就得到(**),因此本方法在这里推广了LCA方法。
其次,当(#)中的各项取不同的值时,如果序列(#)中各项的选取在区间[0,1]上服从均匀分布,则序列a和序列b相同的项所占的比率约为2/3。
这样到第一阶段第8步为止,本方法可以把效率从BB84的约1/2提高到约2/3,增加近17%。
同LCA方法一样,本方法也可以用于其它量子密钥分配协议,如B92,EPR等。
具体实施方式
Alice和Bob共享的实数序列为:
P=(0.82886,0.16627,0.39391,0.52076,0.71812,0.56919,0.46081,0.44531,0.087745,0.44348,0.3663,0.30253,0.85184,0.75948,0.94976,0.55794,0.014233,0.59618,0.81621,0.977098)。
1.Alice随机地产生一个长度为n的比特序列
A=(0,1,1,0,1,0,1,1,1,0,1,0,1,0,0,0,0,0,1,1)
2.Alice随机地在区间[0,1]上选取n个实数
由此序列和P可得比特序列
a=(0,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0)
比如:
因为所以a1=0;
因为所以a2=1;
同样,分别比较R3A和p3,…,RnA和pn可得a3,…,an的值。
3.根据A和a,Alice选取的光子的状态序列为:
(|0>,|->,|->,|+>,|1>,|0>,|1>,|1>,|->,|0>,|1>,|+>,|->,|0>,|0>,|+>,|+>,|+>,|1>,|1>)
4.Alice按照其光子的状态序列产生光子序列并发送给Bob
5.Bob随机地在区间[0,1]上选取n个实数
由此序列和P可得比特序列
b=(0,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0)
比如:
因为所以b1=0;
因为所以b2=1;
同样,分别比较R3B和p3,…,RnB和pn可得b3,…,bn的值。
6.对于到达的光子,Bob按照由b得到的基序列
(Z,X,Z,X,Z,Z,Z,X,X,Z,Z,Z,Z,Z,Z,Z,X,Z,X,Z)
来分别测量,测量的结果为:
(|0>,|->,R,|+>,|1>,|0>,|1>,R,|->,|0>,|1>,R,R,|0>,|0>,R,|+>,R,R,|1>)
对应的比特序列为:
B=(0,1,R,0,1,0,1,R,1,0,1,R,R,0,0,R,0,R,R,1)
其中R表示随机的结果。
7.Alice公布a=(0,1,1,1,0,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0),
Bob公布b=(0,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0)。
8.所有对应于ai≠bi的位置i有3,8,12,13,16,18,19。Alice和Bob分别将A和B中这些位置的比特Ai和Bi删除,保留其余的比特,得到的比特序列分别为
A′=(0,1,0,1,0,1,1,0,1,0,0,0,1)
B′=(0,1,0,1,0,1,1,0,1,0,0,0,1)
9.Alice和Bob选择4,6,9,10四个位置,A′和B′中这些位置上对应的比特分别为:(1,1,1,0)和(1,1,1,0)
在4,6,9,10四个位置上,4和9上是X基,6和10上是Z基。而在Z基编码上和在X基编码上的错误率eZ和eX都为0。
这里我们假设传输是在无噪音的理想情况下进行的,故错误率eZ和eX都为0。在实际应用中,传输难免会受到各种噪音的干扰,所以错误率eZ和eX不一定为0。