一种多方量子密钥分发系统的纠错方法与流程

文档序号:11138241阅读:466来源:国知局
一种多方量子密钥分发系统的纠错方法与制造工艺

本发明涉及量子通信技术领域,具体涉及量子密钥分发技术领域,尤其涉及一种多方量子密钥分发系统的纠错方法。



背景技术:

量子通信的安全性依赖于量子密钥分发,量子密钥分发以量子物理与信息学为基础,被认为是安全性最高的加密方式,其需要一条用来传输量子态的量子信道,以及一条用来进行经典交互的可认证的(无错的)经典信道。

在多方量子通信中,假设A向n个接收端发送相同的数据,如果使用不同的密钥,则A要准备n串密钥分别发送给接收端,接收端分别进行纠错,A要分别使用这n串密钥对待发送数据进行加密。使用现有技术进行如上通信要加密n次,A需要保存n串密钥,因此运算量大,存储密钥占用空间大;如果使用相同密钥,A只需要保存一串密钥,只需加密一次,因此运算量小,存储密钥占用空间小。

Winnow纠错算法是QKD系统三大纠错算法之一,但是目前只局限于两方纠错。博士论文《远距离量子密钥分发系统的相关研究》介绍了基于Winnow的纠错算法,具体如下:

1、Alice和Bob将密钥串分成长度Nh=2m-1的密钥段,其中m是Hamming伴随式的长度,它决定了Hamming码的长度Nh

2、Alice计算每个密钥段的奇偶校验值,把它们发送给Bob,Bob计算相应密钥段的奇偶校验值,和Alice的作比较,取出奇偶校验结果不同的段。

3、Alice和Bob把它们分别记为集合A和B,Alice计算A中每个密钥段的Hamming伴随式Sa,i(i∈A),把它发送给Bob,Bob计算Sb,i(i∈B),在获得到Sa,i后计算

4、根据Hamming码的特性,Sd,i表示Alice和Bob第i个子段中错误比特的位置,Bob翻转Sd,i位置的密钥比特,即0→1,1→0。

5、Alice与Bob按照相同方式打乱密钥串。

6、进行错误率估计:

(a)如果错误率仍大于某预设值,则修改段长为原来的2倍,返回至第2步进行循环迭代,直到满足结束条件。

(b)如果错误率小于某预设值,纠错结束进入后面的校验过程。

对密钥进行校验,如果校验不通过,则抛弃整个密钥。

博士论文《远距离量子密钥分发系统的相关研究》提及的传统的winnow纠错算法,在后续的迭代过程中,当前段长选为上一次迭代段长的2倍。该方法的段长选择过于简单,段长并非最优值,效率不高。

针对上述问题,公告号为106027230A的中国发明专利申请文件《一种量子密钥分发后处理中对误码进行汉明纠错的方法》,通过变长密钥块块长,提高了汉明纠错协议的纠错效率。然而此方法仅适用于两方纠错,不能直接应用于多方纠错。且该纠错方法没有选取最优段长,需持续循环直到双方密钥一致,较为冗长繁琐。

该密钥分发过程中仅仅涉及到密钥分发问题,并没有涉及到分发后的纠错,也未给出相应的纠错方法,可靠性不高。

或者仅仅适用于两方纠错,不能直接应用于多方纠错。

在现有的Winnow纠错方法中,纠错方法没有选取最优段长,需持续循环直到双方密钥一致,较为冗长繁琐,且仅适用于两方纠错,不能直接应用于多方纠错。



技术实现要素:

本发明的目的在于为避免上述现有技术所存在的不足,提出一种可靠性高,纠错效率高,可适用于多方量子密钥分发系统的纠错方法。

本发明提供了应用于包括发送端和至少两个接收端的多方量子密钥分发平台,包括如下步骤:

S1:计算系统的误码率PeX;

S2:计算段长序列集合;所述发送端根据系统误码率PeX在段长序列集合中选取最优段长序列seg,记为seg={seg(1),…,seg(i),…,seg(n)},i∈[1,n],n为最大迭代的次数,seg(i)为第i次迭代的段长;

S3:循环迭代执行如下步骤:

S3.1:令i的初始值为1,将所述的发送端的原始密钥和各接收端的共享密钥按相同方式打乱密钥串以进行数据重排;

S3.2:根据段长seg(i)对原始密钥和共享密钥进行分段,得到若干分段密钥;分别计算发送端与接收端的分段密钥的奇偶校验和,对发送端与各接收端的奇偶校验和进行运算,得出不同的分段密钥;

S3.3:根据seg(i)计算汉明伴随式的长度r,得到汉明矩阵H,通过Winnow纠错算法在所述的步骤S3.2得出的运算结果不同的分段密钥中,找出错误比特位置;

S3.4:根据错误比特位置对各接收方共享密钥中相应位置的0或1值取反,更新i为i+1,返回步骤S3.1;直至i=n+1,停止循环;

S4:校验纠错结果;若各接收端都纠错成功,则结束运算;若至少一个接收端纠错不成功,则抛弃相应密钥。

一种计算段长序列集合的方法,包括如下步骤:

SA,设置错误边界eps;设定初始汉明伴随式长度r0,并限定r0的取值范围r0∈[rmin,rmax];设定段长增量d,并限定d的取值范围d∈[dmin,dmax];限定所述的误码率初始值Pe0的取值范围Pe0∈[Pe0min,Pe0max],误码率初始值Pe0取最小值Pe0min;

SB,将误码率Pe赋误码率初始值Pe0,初始汉明伴随式长度r0赋值rmin,初始化一个空的段长序列,并将r0写入空的段长序列中;

SC,取d=dmin,r=r0;模拟纠错,计算误码率pe对应的纠错后的误码率P-next,并将Pe赋值为P-next;

SD,对汉明伴随式长度r以d为增量进行不断递增运算不断得到新的r值,每更新一个r值则计算新的P-next,并将其赋值给Pe形成更新后的Pe;直至满足Pe<eps时,本次运算结束;依次记录每次循环中r的取值,组成序列写入段长序列中;

SE,由小到大遍历段长增量d,每取一个d值则返回步骤SD进行循环迭代运算,直至d>dmax时,本次循环结束;

SF,由小到大遍历初始汉明伴随式长度r0,每取一个r0值,对步骤SC-SE进行循环运算,直至r0>rmax时,本次循环结束;

SG,组合所述的步骤SD中的段长序列,得到Pe0对应的段长序列集合。

作为优选,由小到大遍历所述的误码率初始值Pe0;每取一个Pe0值,返回执行所述的步骤SB~SG,并在所述的误码率初始值Pe0的取值范围中选取下一个Pe0值;直至Pe0>Pe0max时,结束运算。

作为优选,所述的步骤S2中,寻找最优段长序列包括如下步骤:所述的步骤SC中模拟纠错时,计算每个段长序列对应的暴露信息百分比;根据系统误码率PeX得到对应段长序列集合,定义最优段长序列的取值范围,取其中暴露信息的百分比w最小的一组值,得到最优段长序列。

作为优选,所述的步骤SC中,计算纠错之后的误码率包括如下步骤:记密钥比特数为m0;根据k=Pe×m0计算错误比特数k,根据如下公式计算含有错误比特数k的概率:

根据(公式一)计算P2k和P2k+1

则通过如下公式计算本次纠错之后的误码率:

作为优选,所述的步骤S1中,分别各个接收端相对于发送端的误码率,取最大值记为系统的误码率PeX。

作为优选,所述的步骤S3.1中,将与原始密钥、共享密钥的长度相同的随机数串分配给发送端与各接收端;设定原始密钥、共享密钥的长度为D,则随机数串中的每一位数据取值范围为[1,D]且互不重复;将密钥中的数据由第一位开始与随机数串中对应数字所指位置的数据进行按序依次置换。

作为优选,所述的步骤S3.2中,计算发送端或各接收端奇偶校验和的步骤包括:

S3.2.1:发送端或接收端根据迭代次数i对应的段长seg(i)进行分段,得到若干分段密钥;

S3.2.2:计算各分段密钥的奇偶校验和,并将来自同一原始密钥的分段密钥对应的奇偶校验和组合为相应的奇偶校验和序列;

S3.2.3:通过经典信道将各接收端的奇偶校验和序列发送至发送端,再将各接收端的奇偶校验和序列与发送端的奇偶校验和序列进行运算,得出发送端与各接收端奇偶校验结果;

S3.2.4:通过经典信道将发送端与各接收端奇偶校验结果发送至各接收端。

作为优选,所述的步骤S4中,校验纠错结果步骤包括:分别采用计算原始密钥与各接收端的共享密钥的密钥摘要,通过经典信道各接收端将密钥摘要发送至发送端,判断各接收端的密钥摘要与发送端的密钥摘要是否一致;若一致,则纠错成功;若不一致,则纠错不成功。

作为优选,所述的步骤S4中,校验纠错结果采用CRC算法或MD5算法。

本发明提供了一种多方量子密钥分发系统的纠错方法,解决了现有技术的密钥分发采用环形量子密钥分发通信存在的如下问题:

1、改进了QKD系统的交互过程,多方同时进行信息交互,使得多方能够进行相同密钥的纠错。

2、现有技术在每次纠错之后估计错误率,如果错误率仍大于预设值,只是简单的将段长修改为原来的2倍,但此时的段长极有可能不是最优段长,那么每次纠错的效率不高;本发明通过计算得出每次纠错的最优段长,提高了纠错效率。

3、现有的winnow纠错算法,纠错方法没有选取最优段长,需持续循环直到双方密钥一致,较为冗长繁琐。本发明的改进的类winnow算法纠错之前先计算出各个初始错误率下的最优段长序列,然后根据当前初始错误率选择最优段长序列,提高了纠错效率。

4、本发明暴露信息少,系统稳定。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明一种计算最优段长序列集合的方法的流程示意图。

图2是本发明暴露的信息比例随误码率变化的曲线图。

图3是本发明系统的F因子随误码率变化的曲线图。

具体实施方式

以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

本发明应用于包括发送端和至少两个接收端的多方量子密钥分发平台,包括如下步骤:

触发发送端生成原始密钥,将发送端生成的原始密钥分别发送给相应的接收端;

在接收端接收来自发送端的原始密钥,并以接收结果作为相应的共享密钥;

对发送端的原始密钥和各个接收端的共享密钥进行纠错,使发送端的原始密钥和各个接收端的共享密钥符合所述逻辑运算关系。(此处逻辑关系为相等,与上文中提及的逻辑关系不同)

实施例1

本实施例中发送端为Alice端,具有两个接收端,分别为Bob端和Charlie端。

Alice端用于将原始密钥KA分别发送给Bob端和Charlie端。Bob端和Charlie端分别接收来自发送端的原始密钥KA并得到相应的共享密钥KB和KC。

通过对Alice端的原始密钥KA和Bob端、Charlie端的共享密钥KB和KC进行纠错,使Alice端的原始密钥KA和Bob端、Charlie端的共享密钥KB和KC均相同(即纠错成功后:KA=KB=KC)。

本实施例中纠错单元可以通过硬件或安装于硬件上的软件实现。

以下对本发明的方案进行具体展开,以便更清楚地阐述和说明本发明的技术方案,并不构成对本发明保护范围的限制。

(一)计算最优段长序列集合。

计算最优段长序列集合是发送端根据系统误码率PeX寻找最优段长序列seg的前序步骤,如图1所示,包括如下步骤:

SA,设置错误边界eps;设定初始汉明伴随式长度r0,并限定r0的取值范围r0∈[rmin,rmax];设定段长增量d,并限定d的取值范围d∈[dmin,dmax];

SB,将误码率Pe赋初始值Pe0,初始汉明伴随式长度r0赋值rmin,初始化一个空的段长序列,并将r0写入空的段长序列中;

SC,取d=dmin,r=r0;模拟纠错,计算误码率pe对应的纠错后的误码率P-next(即图1中next(Pe)),并将Pe赋值为P-next;

SD,对汉明伴随式长度r以d为增量进行不断递增运算不断得到新的r值,每更新一个r值则计算新的P-next,并将其赋值给Pe形成更新后的Pe;直至满足Pe<eps时,本次运算结束;依次记录每次循环中r的取值,组成序列写入段长序列中;

SE,由小到大遍历段长增量d,每取一个d值则返回步骤SD进行循环迭代运算,直至d>dmax时,本次循环结束;

SF,由小到大遍历初始汉明伴随式长度r0,每取一个r0值,对步骤SC-SE进行循环运算,直至r0>rmax时,本次循环结束;

SG,组合所述的步骤SD中的段长序列,得到Pe0对应的段长序列集合。

由小到大遍历所述的误码率初始值Pe0;每取一个Pe0值,返回执行所述的步骤SB~SG,并在所述的误码率初始值Pe0的取值范围中选取下一个Pe0值;直至Pe0>Pe0max时,结束运算。

所述的步骤SC中,计算纠错之后的误码率包括如下步骤:记密钥比特数为m0;根据k=Pe×m0计算错误比特数k,根据如下公式计算含有错误比特数k的概率:

根据(公式一)计算P2k和P2k+1

则通过如下公式计算本次纠错之后的误码率:

在实际中,初始时进行步骤A同时设置递归深度最大值recDeepMax。采用recDeep作为递归计数器。图1中所示“Y”表示条件成立,“N”表示条件不成立。

(二)一种多方量子密钥分发系统的纠错方法。包括如下步骤:

S1:计算系统的误码率PeX;

S2:计算段长序列集合;所述发送端根据系统误码率PeX在段长序列集合中选取最优段长序列seg,记为seg={seg(1),…,seg(i),…,seg(n)},i∈[1,n],n为最大迭代的次数,seg(i)为第i次迭代的段长;

S3:循环迭代执行如下步骤:

S3.1:令i的初始值为1,将所述的发送端的原始密钥和各接收端的共享密钥按相同方式打乱密钥串以进行数据重排;

S3.2:根据段长seg(i)对原始密钥和共享密钥进行分段,得到若干分段密钥;分别计算发送端与接收端的分段密钥的奇偶校验和,对发送端与各接收端的奇偶校验和进行运算,得出不同的分段密钥;

S3.3:根据seg(i)计算汉明伴随式的长度r,得到汉明矩阵H,通过Winnow纠错算法在所述的步骤S3.2得出的运算结果不同的分段密钥中,找出错误比特位置;

S3.4:根据错误比特位置对各接收方共享密钥中相应位置的0或1值取反,更新i为i+1,返回步骤S3.1;直至i=n+1,停止循环;

S4:校验纠错结果;若各接收端都纠错成功,则结束运算;若至少一个接收端纠错不成功,则抛弃相应密钥。

以下针对具体方法时,以发送端为Alice端,接收端分别为Bob端和Charlie端的三方分发为例对上述步骤加以说明。

步骤S1中,计算系统的误码率PeX:本发明中,分别计算各个接收端相对于发送端的误码率,取最大值记为系统的误码率PeX。以三方分发为例,分别计算Alice端和Bob端之间的误码率PeB,以及Alice端和Charlie端之间的误码率PeC,并以最大值作为该密钥分发系统的误码率PeX,具体方法如下:

S1-1、通过量子信道发送给Bob端获得KB,Bob将预先约定好的部分密钥KB'通过经典信道发送给Alice端,Alice端将KB’与KAB相应部分KAB'进行比较,即将KAB中的若干个位置上的值与KB中相应位置上的值进行比对,以比对结果不同的位置的总数和占参与比对的总位置数的比值作为误码率PeB。

S1-2、同上,可得到Alice端和Charlie端之间的误码率PeC。

步骤S2中,根据上述方法计算段长序列集合,并根据系统误码率PeX在段长序列集合选取最优段长序列seg。寻找最优段长序列包括如下步骤:所述的步骤SC中模拟纠错时,计算每个段长序列对应的暴露信息百分比;根据系统误码率PeX得到对应段长序列集合,定义最优段长序列的取值范围,取其中暴露信息的百分比w最小的一组值,得到最优段长序列。更具体地来说,该取值范围为小于10。

步骤S3.1中的数据重排:向发送端与各接收端分配相同的随机数种子,再使用相同的伪随机数生成器生成相同的随机数串,发送端与各接收端生成与原始密钥、共享密钥的长度相同的随机数串;设定原始密钥、共享密钥的长度为D,则随机数串中的每一位数据取值范围为[1,D]且互不重复;将密钥中的数据由第一位开始与随机数串中对应数字所指位置的数据进行按序依次置换。

Alice端、Bob端、Charlie端分配相同的随机数种子,再使用相同的伪随机数生成器生成相同的随机数串,该随机数串的长度等于密钥的长度n,随机数串的随机数不重复且取值范围是1~n;假设密钥的长度为5,生成的随机数串为{2,4,3,5,1},随后根据随机数串依次进行5次置换操作,即第一位与第2位交换,第二位与第4位交换,第三位与第3位交换,第四位与第5位交换,第五位与第1位交换,至此就完成了长度为5的密钥数据重排,其他长度的密钥亦可执行类似操作进行数据重排。

步骤S3.2中,计算发送端或各接收端奇偶校验和的步骤包括:

S3.2.1:发送端或接收端根据迭代次数i对应的段长seg(i)进行分段,得到若干分段密钥;

S3.2.2:计算各分段密钥的奇偶校验和,并将来自同一原始密钥的分段密钥对应的奇偶校验和组合为相应的奇偶校验和序列;

S3.2.3:通过经典信道将各接收端的奇偶校验和序列发送至发送端,再将各接收端的奇偶校验和序列与发送端的奇偶校验和序列进行运算,得出发送端与各接收端奇偶校验结果;

S3.2.4:通过经典信道将发送端与各接收端奇偶校验结果发送至各接收端。

需要补充说明的是,进行奇偶校验和的运算可以为简单比对或者逻辑运算,此处的逻辑运算可以为异或运算。

Alice端根据初始误码率PeX选择迭代段长序列seg,根据seg可以得出迭代的次数,及每次迭代的段长。通过经典信道Alice端将段长序列索引信息发送给Bob端、Charlie端。

以三方分发为例,计算发送端或各接收端奇偶校验和包括如下步骤:S3.2-1、Alice端、Bob端、Charlie端分别根据段长seg(i)对密钥进行分段,得到若干分段密钥。若最后一段的长度如果小于段长,则在末尾添0,使其长度等于段长。计算各个分段密钥的奇偶校验和,并将来自同一原始密钥的分段密钥对应的奇偶校验和组合为相应的奇偶校验和序列。本实施例中Alice端、Bob端、Charlie端分别计算得到奇偶校验和序列ParityA、奇偶校验和序列ParityB、奇偶校验和序列ParityC。seg(i)为所选择的最优段长序列seg中第i个元素的取值,i的取值为迭代的次数。

S3.2-2、通过经典信道Bob端、Charlie端分别将ParityB、ParityC发送给Alice端。

S3.2-3、分别计算Alice端与Bob端奇偶校验结果ParityAB、Alice端与Charlie端奇偶校验结果ParityAC:ParityAB=ParityA⊕ParityB,ParityAC=ParityA⊕ParityC。ParityAB中的0表示Alice与Bob相应密钥段奇偶校验相同,1表示Alice与Bob相应密钥段奇偶校验不同。ParityAC中的0表示Alice与Charlie相应密钥段奇偶校验相同,1表示Alice与Charlie相应密钥段奇偶校验不同。

S3.2-4、通过经典信道Alice端将ParityAB、ParityAC分别发送给Bob、Charlie。

步骤S3.3中,将发送端与各接收端运算结果不同的段分别列成集合,记为X,计算集合X中每个密钥段的汉明伴随式,

公式为:Sx,i(i∈X)=H×Xi;

通过经典信道将各接收端汉明伴随式发送至发送端,将发送端的汉明伴随式与各接收端的汉明伴随式分别进行逻辑运算,并记录逻辑运算结果,找出错误比特位置。

具体来说,计算r×seg(i)的汉明矩阵H,且满足seg(i)=(2r-1):汉明矩阵是纠错过程中的校验矩阵,矩阵的元素可以表示成m表示汉明矩阵H的第m行,n表示汉明矩阵H的第n列,这个表达式在FPGA中可以通过移位操作方便的实现,所以汉明矩阵采用实时产生的方案,可以节省汉明矩阵的存储空间。

以三方分发为例,计算汉明伴随式找出错误比特位置:

S3.3-1、通过ParityABC取出Alice与Bob⊕Charlie之间奇偶校验不同的段,Alice端、Bob端以及Charlie端把它们分别记为集合A、B以及C,Alice端计算A中每个密钥段的汉明伴随式Sa,i(i∈A)=H×Ai,Bob计算B中每个密钥段的汉明伴随式Sb,i(i∈B)=H×Bi,Charlie端计算C中每个密钥段的汉明伴随式Sc,i(i∈C)=H×Ci。

S3.3-2、通过经典信道Alice端将Sa,i分别发送给Bob端与Charlie端;在Bob端计算在Charlie端计算

步骤S3.4进行纠错,根据步骤S3.3-2的Sab,i、Sac,i可以分别得出Bob端、Charlie端的错误比特位置将各接收端的共享密钥的错误比特位置的0或1值取反,即0翻转为1,1翻转为0。

采用步骤S3.1所述的方法进行数据重排,然后返回至步骤4循环迭代执行,直至达到最大循环迭代次数,跳出循环向下执行步骤S4。

所述的步骤S4中,校验纠错结果步骤包括:分别采用计算原始密钥与各接收端的共享密钥的密钥摘要,通过经典信道各接收端将密钥摘要发送至发送端,分别判断接收端的密钥摘要与发送端的密钥摘要是否一致;若发送端的密钥摘要与各接收端的密钥摘要都一致,则纠错成功;若至少一个发送端的密钥摘要与接收端的密钥摘要不一致,则纠错不成功。

所述的步骤S4中,校验纠错结果采用CRC算法或MD5算法。

以CRC算法为例,Alice端、Bob端、Charlie端计算密钥摘要KA_CRC、KB_CRC、KC_CRC,通过经典信道Bob、Charlie发送密钥摘要KB_CRC、KC_CRC给Alice,分别判断KA_CRC与KB_CRC、KC_CRC是否相等,若都相等,则纠错成功,否则纠错失败,抛弃相应密钥。同理可以采用MD5算法。

实施例2

本实施例提供一种用于多方量子密钥共享的纠错方法。

与实施例1相比,该多方量子密钥分发系统应用于一个发送端和多个接收端的多方量子密钥分发平台,其工作原理与实施例1相同,这里不再重复说明。

该纠错方法用于对发送端的原始密钥和多个接收端的共享密钥进行纠错使发送端的原始密钥和多个接收端的共享密钥相同。与实施例1相比,本实施例中的纠错方法应用于一个发送端和多个接收端的多方量子密钥分发平台,但其在实际算法上可由实施例1推理可得,这里不再重复说明。

除此之外,需要说明的是,本申请中提及的计算每个段长序列对应的暴露信息百分比,是考虑计算过程中通过经典信道而泄漏的信息而进行的。暴露信息百分比是经典信道传输的数据总量比密钥的长度(即量子信道的传输的信息量)。如图2可以看出,本发明的暴露信息少。

图3所示的F因子即纠错效率,作为纠错编码的性能标准。F因子定义为对于某一错误率,实际纠错交互消耗的信息量与理想情况下消耗的信息量(即信息熵、或者香农极限)的比值。由图可以看出,本发明的F因子小,系统更稳定。

以上仅就本发明的最佳实施例作了说明,但不能理解为是对权利要求的限制。本发明不仅限于以上实施例,凡在本发明独立权利要求的保护范围内所作的各种变化均在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1