一种量子密钥分发系统的误码协商方法与流程

文档序号:21778159发布日期:2020-08-07 19:47阅读:289来源:国知局
一种量子密钥分发系统的误码协商方法与流程

本发明涉及一种误码协商算法,特别涉及一种cascade类误码协商算法的改进方法,属于量子通信技术领域。



背景技术:

误码协商算法的作用是纠正量子密钥分发(quantumkeydistribution,qkd)中筛选码中的错误比特。误码协商是qkd后处理中最受关注的环节。

误码协商算法主要有两大类,一类是基于交互的误码协商算法,另一类是基于前向纠错码的误码协商算法。cascade算法是目前性能较好的一种基于交互的误码协商算法。

cascade算法由brassard等于1993年提出,它是bbbss算法的改进,这两种算法的核心均为二分搜索(binary)过程。步骤如下:

1)alice把a数据串分成两部分,并把第一部分的奇偶校验子发送给bob。

2)bob按照同样的方法将数据串b分成两个部分,计算第一部分的校验子并和接受到的数据进行比较来确定在哪一个部分中存在奇数个错误。

3)不断对数据串进行划分,直到错误被找到。

传统的bbbss算法每一轮首先将数据置乱,然后根据分块长度对筛选码进行分块,对每一个分块,均使用奇偶校验码发现错误,利用二分查找定位并翻转纠正错误。cascade算法在此思想的基础上增加了回溯机制,通过记录历史分块信息,在第i(i≥2)轮定位到一个新错误时,cascade算法可通过回溯找到一系列错误位置,从而达到以更少暴露信息量纠正错误的效果,以提高协商效率。原始cascade算法具体的流程如下:输入:alice的初始密钥序列a,bob的初始密钥序列b,序列长度为m,误码率ε;输出:经过协商后的密钥序列;

cascade算法进行误码协商的流程包括如下步骤:

步骤1、alice和bob按同一置乱函数将原始密钥序列重新排列,使误码随机、均匀地分布在原始密钥序列中。记录每个比特的编号,al为alice拥有的顺序为l的比特数据,bl为bob拥有的顺序为l的比特数据,l∈{1,2,...,m}。

步骤2、在第一轮协商中,将数据分块,块长为n1,共分块,根据文献n1=0.73/ε,尽量保证每块中误码的个数小于等于1。将分块中第一块记为第v块记为上标表示第几轮协商,下标表示该轮中分块的编号。第v块所包含的比特信息位置为{l|(v-1)n1<l≤vn1}。

步骤3、alice计算各组数据的奇偶性并通过公开信道告知bob并进行对比,当出现奇偶性不一致时利用二分奇偶纠错算法进行纠正,与二分奇偶纠错算法不同的是整个过程中不舍弃任何数据,目的是为了纠正更多的错误。经过这一轮纠错后,所有的只存在偶数个误码,包括0。

步骤4、进行第二轮纠错,分块长度为n2,根据文献ni=2×ni-1,利用新的置乱函数将m个比特数据分为块。用表示第二轮分块后顺序为j的分块,在分块内数据的位置是{l|f2(l)=j},其中l是在步骤1中已经确定的编号。分块后对各块进行奇偶性检验,遇到alice和bob不一致的分块,使用二分奇偶纠错法进行纠错。如果在中发现错误,编号为l,就可以断定在第一轮的分块中含有数据编号l的块内一定还存在另外的奇数个误码。对于这个块再使用二分奇偶纠错法纠错。直至不能再发现新的错误,第二轮协商结束。协商后的密钥仍可能含有偶数个错误,需要进行第三轮或更多轮的协商。

步骤5、重复进行步骤4进行分块纠错。在第i(i>1)轮协商中,采用随机函数将整个数据分为m/ni个块,每个块长为ni,进行奇偶比较,如果不一致进行二分奇偶纠错,在中发现序号为l的误码,经过纠错后一定能在含有序号l的分块中发现另外奇数个误码,再进行二分纠错法纠错。当不再发现新错误,进入新一轮的协商。

步骤6、重复步骤5的协商步骤直到第n轮,结束协商过程。多数文献采用14轮协商,可以保证误帧率较低。

cascade类算法通常具有很高的协商效率,同时误帧率也非常低,计算简单。但由于需要多轮通信,cascade算法对于通信资源的需求通常较高,当信道环境较差或通信距离较远时,cascade算法的速率会因此受限。一个解决方案是将二分查找的过程并行处理,这样可以让不同块的奇偶校验信息同时发送,可以有效减少通信轮数,减少通信轮数意味着减少等待的时间,因为网络延时往往是无法有效减少的。但这么做会引入新的问题,并行处理会使协商效率降低。因为串行处理中,每次交互后都会将交互的信息更新再进行下一步,但并行过程中有些信息是无法保证能够在某一块开始纠错前更新。如图1所示,若第二轮中第一块和第二块同时并行纠错,两个块会回溯定位到第一轮同一个块中,因为同时发现两个错误,所以这个块无法进行二分查找纠错。图一所示的块长为8,因此开销的比特数为2*log28=6个,而串行的过程只消耗log28+log24=5个,由此可见:在并行的过程中,由于信息没有及时被利用,整个纠错会消耗更多的比特,称这种现象为碰撞现象,随着块长和误码率的增加,碰撞现象会越来越剧烈,协商效率也会受到剧烈的影响。



技术实现要素:

针对现有cascade类算法在误码协商过程中因碰撞降低协商效率的问题,本发明提供一种预防碰撞、减少协商效率损失的量子密钥分发系统的误码协商方法。

本发明的一种量子密钥分发系统的误码协商方法,所述方法包括:

s1、第一轮误码协商,其中二分查找奇偶纠错的过程并行处理;

s2、第二轮误码协商中,置乱、分块、比对所有块的奇偶校验和,获取x个包含奇数个错误的块,令计数器num的初始值为x,然后从这x个块中选出一个与其他块碰撞概率最高的块,将其放入处理集合setpro中,剩余x-1个块放入错误集合setwrong中;

s3、计算出错误集合setwrong中每个块与处理集合setpro中块的碰撞概率,从错误集合setwrong中选出碰撞概率最小的n个块放入处理集合setpro中,每次对处理集合里所有的块并行进行一步二分查找奇偶纠错,使其长度变为原来的一半;n的大小和碰撞的剧烈程度有关;当处理集合setpro中的块二分查找到错误比特时,将这个块从处理集合setpro中移除,num减一,并回溯到之前轮误码协商中定位错误的位置,若包含该错误的块已经加入处理集合setwrong中,则将其移出,num减一,否则将该块加入错误集合setwrong,num加一;

s4、重复s3,直至num为0,转入s5;

s5、按照s2至s4的方式进行下一轮的误码协商,直至完成设定轮误码协商;

所述二分查找奇偶纠错过程中不舍弃任何数据。

作为优选,所述s3中,计算出错误集合setwrong中每个块与处理集合setpro中块的碰撞概率的方法为:

分别计算出错误集合setwrong中每个块blk与错误集合setpro中各个块blk′的碰撞概率,块blk′和块blk的碰撞概率dis(blk′,blk)的计算方法为:

len()用于计算块的长度,crushtime用于记录当前两个块中有可能碰撞的次数;

将计算出的错误集合setwrong中块blk与错误集合setpro中所有块的碰撞概率求和,即:获得块blk的碰撞概率。

作为优选,s3中,下一步二分查找的n值变化规律为:

next(n)表示下一步二分查找的n值,其中size(setpro)为处理集合setpro的大小,α为控制参数,n的初始值为1。

本发明有益效果在于,本发明是一种预防碰撞机制,优势主要有以下几点:

1.本发明可以将整个cascade类误码协商的过程转化为一定程度的并行过程,有利于提高处理速率。并且将大量的纠错操作分批处理,尽最大可能的利用当前信息,从setpro中获得的错误信息会及时更新,保证后面的块处理时已经更新了目前的全部信息,同时如果发生了碰撞现象setpro中碰撞的块也会被移除,及时止损,减少信息的暴露。

2.减少碰撞现象的发生,提高并行状态下的协商效率。本发明利用一个参数α来控制当前并行二分纠错的块的个数,并且通过计算碰撞概率来选择合适的块处理,优点是尽可能的将他们的相关性降到最低,尽可能使它们的二分纠错的结果不会在回溯过程中相互影响,可以减少碰撞现象的发生。

3.这种方式可以更加灵活的调整处理速度和协商效率的平衡,通过改变参数α可以调整整个过程的处理速度,α较小时速度较慢,协商效率较高。当α=1时为串行处理,α=∞时是最大程度的并行处理,即处理当前所有能处理的块。

附图说明

图1为cascade类算法误码协商的流程示意图。

具体实施方式

结合图1说明本实施方式,本实施方式本发明的一种量子密钥分发系统的误码协商方法,针对cascade类算法在误码协商过程中因碰撞降低协商效率的问题,给出一种预防碰撞的优化机制,可以在有效减少通信轮数的情况下,尽可能的减少协商效率的损失。为了描述方便,本实施方式将二分查找的每一次二分查找称为一个step。并且建立两个集合,setwrong存放所有包含奇数个错误的块,setpro存放进行二分查找的块。本实施方式的方法包括:s1、第一轮误码协商,其中二分查找奇偶纠错的过程并行处理;第一轮由于没有回溯过程,所以不会出现碰撞的问题,可以并行处理,处理方式与原cascade一致。

s2、第二轮误码协商中,置乱、分块、比对所有块的奇偶校验和,获取x个包含奇数个错误的块,令计数器num的初始值为x,然后从这x个块中选出一个与其他块碰撞概率最高的块,将其放入处理集合setpro中,剩余x-1个块放入错误集合setwrong中;

s3、对于每一个step:计算出错误集合setwrong中每个块与处理集合setpro中块的碰撞概率,从错误集合setwrong中选出碰撞概率最小的n个块放入处理集合setpro中,每次对处理集合里所有的块并行进行一步二分查找奇偶纠错,使其长度变为原来的一半;n的大小和碰撞的剧烈程度有关;

当处理集合setpro中的块二分查找到错误比特时,将这个块从处理集合setpro中移除,num减一,并回溯到之前轮误码协商中定位错误的位置,若包含该错误的块已经加入处理集合setwrong中,则将其移出,num减一,否则将该块加入错误集合setwrong,num加一;

s4、重复s3,直至num为0,转入s5;

s5、按照s2至s4的方式进行下一轮的误码协商,直至完成设定轮误码协商;

所述二分查找奇偶纠错过程中不舍弃任何数据。

本实施方式利用碰撞概率来衡量两个块发生碰撞的可能性,假设有两个块他们之间的碰撞概率很高,尽量让这两个块不同时处理,如果有一个块被加入处理集合setpro中,本实施方式使另一个在这个处理结束之前不被加入处理集合setpro中,进而实现预防碰撞;本实施方式将整个cascade类误码协商的过程转化为一定程度的并行过程,有利提高处理速率。并且将大量的纠错操作分批处理,尽最大可能的利用当前信息,从setpro中获得的错误信息会及时更新,保证后面的块处理时已经更新了目前的全部信息,同时如果发生了碰撞现象setpro中碰撞的块也会被移除,及时止损,减少信息的暴露。

优选实施例中,本实施方式给出一种碰撞概率的评价方式,假设有两个块blk1、blk2,用crushtime记录目前两个块中有可能碰撞的次数,初始值为0。两个块中每有一对比特在之前的纠错过程中在同一个块组合过,crushtime加一。dis(blk1,blk2)计算方式如下:

len()用于计算块的长度;

dis(blk1,blk2)越小代表碰撞概率越低。以错误集合setwrong中一个块blk为对象,若对整个处理集合setpro计算dis(setpro,blk),即代表块blk对于处理集合setpro中的每一个块blk′,计算dis(blk′,blk),块blk′和块blk的碰撞概率dis(blk′,blk)的计算方法为:

将计算出的错误集合setwrong中块blk与错误集合setpro中所有块的碰撞概率求和,即:获得块blk的碰撞概率dis(setpro,blk)。

本实施方式的n的大小和碰撞的剧烈程度有关,由于碰撞剧烈程度与误码率,分块方式,处理集合setpro空间大小等因素相关,不易准确分析,本实施方式给出一种简单的方法来计算n;为了减少碰撞现象的发生,提高并行状态下的协商效率,本实施方式中利用一个参数α来控制当前并行二分纠错的块的个数,并且通过计算碰撞概率来选择合适的块处理,优点是尽可能的将他们的相关性降到最低,尽可能使它们的二分纠错的结果不会在回溯过程中相互影响,可以减少碰撞现象的发生。下一步二分查找的n值变化规律为:

next(n)表示下一步二分查找的n值,其中size(setpro)为处理集合setpro的大小,α为控制参数,n的初始值为1。

这种方式可以更加灵活的调整处理速度和协商效率的平衡,通过改变参数α可以调整整个过程的处理速度,α较小时速度较慢,协商效率较高。当α=1时为串行处理,α=∞时是最大程度的并行处理,即处理当前所有能处理的块。

在上述预防碰撞的机制中,参数α决定了整个cascade的平均并行程度,在同一个帧内高度并行的会使协商效率严重降低。为了减少协商效率的损失,本发明不会选择过大的α,一般来说会在1-127的范围内。这种并行规模不能充分利用通信的等待时延,因此适当的多帧并行可以提高处理速度。即同时处理多个cascade的帧,这样可以使并行程度扩大到一个合适的值,满足我们对协商速率的需求,又不会开销太多系统资源。

下面给出一种具体实施例:

本实施例中每一帧长64kb,误码率为3%,共设置16帧并行,α=64,协商过程为:

1)根据误码率确定每一轮块长,这里第一轮块长为32,、第二轮为256、第3-14轮为整个数据长度的一半,即32kb。

2)第一轮按块长32将数据分块,对奇偶校验和不同的块进行二分查找纠错。由于第一轮不进行回溯,处理时和其他轮没有关联性,第一轮单独工作,作为数据预处理为第二轮提供数据。

3)第二轮将第一轮预处理的数据按64kb进行arnold置乱,置乱表可以共享节省存储资源,并安放到不同的帧里。每个帧按256的长度分块。然后16个帧开始并行的将奇偶校验和不同的块,放入各自的setwrong。为每个帧初始化一个计数器num,初始值为当前帧中奇偶校验和不一致块的个数。

4)对于每一个step:从setwrong中利用dis(setpro,blk)函数计算出setwrong中每个块的碰撞概率,从中选出碰撞概率最小的n个块放入处理集合setpro。每次对处理集合里所有的块并行的进行一步二分查找,使其长度变为原来的一半。n的变化规律如下。

next(n)代表下一个step的n的值,其中size(setpro)为处理集合的大小,α为控制参数。n的初始值为1。

5)对于每个组,当setpro中的块二分查找到错误比特时,将这个块从setpro中移除,num减一。并回溯到第一轮定位错误的位置,若包含该错误的块已经加入setwrong集合,则将其移出,num减一。否则将该块加入setwrong集合,num加一

6)重复步骤3-4直到num=0。开始下一轮

7)第三轮-第十四轮的处理方式与第二轮相同,但分块的块长为帧长的一半,即32kb,并且回溯时会在之前的所有轮中定位错误。

虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这些实施例仅仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性的实施例进行许多修改,并且可以设计出其他的布置,只要不偏离所附权利要求所限定的本发明的精神和范围。应该理解的是,可以通过不同于原始权利要求所描述的方式来结合不同的从属权利要求和本文中所述的特征。还可以理解的是,结合单独实施例所描述的特征可以使用在其他所述实施例中。

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