一种高效量子密钥分配方法转让专利

申请号 : CN200610095145.X

文献号 : CN1929372B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 包小敏

申请人 : 西南大学

摘要 :

本发明提出一种高效量子密钥分配方法,它首先要设定一个Alice和Bob共享的实数序列,然后依次进行建立原始密钥、信息调和、保密增强三个阶段。其特点是设定Alice和Bob共享的实数序列为P=(p1,…,pn) (#)其中p1,…,pn是在区间[0,1]上选取的n个数,各项可以取不同的值,当序列中各项的选取在区间[0,1]上服从均匀分布,则本方法可以把效率从BB84的约1/2提高到约2/3,增加近17%,有效提高量子密钥的分配效率,增加窃听难度。

权利要求 :

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为可接受的筏值,则终止协议;否则进行信息调和和保密增强。

说明书 :

技术领域

本发明涉及量子密码技术领域,具体涉及量子密钥分配问题.

背景技术

量子密码是上世纪80年代发展起来的,其安全性是基于量子力学的Heisenberg测不准原理,攻破量子密码就意味着否定量子力学定律。因此量子密码是一种理论上绝对安全的技术,这是量子密码技术区别于其它密码技术的一个特点;而它的另一特点是能够发现窃听,一旦有窃听,就会被量子密码的使用者发现,其它现有的密码技术是没有这个特性的。第一个量子密码分配协议是1984年由纽约IBM的Charles H.Bennett和加拿大蒙特利尔大学的Gilles Brassard发明的[C.H.Bennett and G Brassard.Quantum cryptography:Public keydistributionb and coin tossing(量子密码学:公钥分配和硬币投掷)]Proceedings of IEEEInternational Conference on Computers,Systems,and Signal Processing(1984),175--179.],因此这个协议也被称为BB84协议。自BB84之后又有一些量子密钥分配协议被发明,如B92,EPR等。
以下介绍一下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等。

具体实施方式

以下通过一个BB84的例子来说明本方法的具体实现过程。由于受版面大小的限制,我们只看一个n=20的例子,其它的例子可以以此类推。
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个实数
( r 1 A , . . . , r n A ) = ( 0.22191,0.70368,0.52206,0.9329,0.71335,0.22804,0.44964 ,
0.1722,0.96882,0.35572,0.049047,0.75534,0.89481,0.28615 ,
0.2512,0.93274,0.13098,0.94082,0.70185,0.84768 )
由此序列和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个实数
( r 1 B , . . . , r n B ) = ( 0.20927,0.45509,0.081074,0.85112,0.56205,0.3193,0.3749 ,
0.8678,0.37218,0.07369,0.19984,0.049493,0.56671,0.12192 ,
0.52211,0.11706,0.76992,0.37506,0.82339,0.046636 )
由此序列和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。