CN109936445B - 一种密钥纠错方法及量子密钥分发系统 - Google Patents
一种密钥纠错方法及量子密钥分发系统 Download PDFInfo
- Publication number
- CN109936445B CN109936445B CN201711367353.5A CN201711367353A CN109936445B CN 109936445 B CN109936445 B CN 109936445B CN 201711367353 A CN201711367353 A CN 201711367353A CN 109936445 B CN109936445 B CN 109936445B
- Authority
- CN
- China
- Prior art keywords
- error correction
- error
- key
- terminal
- qkd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本申请公开了一种密钥纠错方法及量子密钥分发系统,采用奇偶校验结合汉明码的方式对待纠错密钥进行纠错,具体地,第一QKD终端将本端待纠错密钥划分为至少两个分组,并将每一分组的奇偶校验码告知第二QKD终端;第二QKD终端对本端待纠错密钥实现与第一QKD终端的相同分组,并确定各分组的奇偶校验码,通过对比相同分组在两端的奇偶校验码,可以确定哪些分组在两端是不一致的;这样,可以通过汉明码对其中一端即第一QKD终端进行分组纠错,这样便完成一轮纠错。本申请可以大大减少两个QKD设备之间的交互次数,从而提高了纠错效率,减少了信息泄露量。
Description
技术领域
本申请涉及量子密钥分发技术领域,尤其涉及一种密钥纠错方法及量子密钥分发系统。
背景技术
量子密钥分发(QuantumKey Distribution,简称QKD)与经典密钥体系的根本不同在于,其采用光子的不同量子态作为密钥的载体,由量子力学的基本原理保证了该过程的不可窃听、不可破译性,从而提供了一种更为安全的密钥体系。参见图1所示的QKD系统示意图,QKD系统中的两个QKD终端Alice和Bob,用于生成相同的量子密钥,具体地,Alice通过量子信道将原始密钥数据发送给Bob,之后,Alice和Bob使用经典信道进行通信,从原始密钥数据中提取基矢一致的数据以完成数据筛选,得到筛选后密钥Sifted Key,再使用纠错算法,将两端有一定错误的Sifted Key协商达到一致,得到纠错后密钥Corrected Key,最后根据评估的压缩比例对Corrected Key进行保密增强,得到最终密钥Final Key并输出。
量子密钥协商的过程中,存在各种因素可导致量子比特误码的产生,目前,导致QKD终端产生误码的主要因素有:光子偏振态或相位经过光纤后发生偏转,暗计数、后脉冲或其他相关噪声,以及外界环境条件(比如温度、湿度、震动等)可能会影响到传输介质的物理性质。随着工作时间的推移,这些因素均可能动态地影响误码率的变化。
为保证Alice和Bob输出的量子密钥一致,需要利用经典网络信道协商发现两端不一致的Sifted Key,进而纠正两端不一致的比特bit。目前常见的QKD纠错算法包括BBBSC、Cascade纠错算法。
BBBSC纠错算法,中文称之为“二分奇偶纠错算法”,BBBSC算法是将Alice和Bob获取的Sifted Key进行分段,然后对每一段进行纠错,具体地,Alice与Bob两端通过将SiftedKey不断对半分割,并交互分割后分组的奇偶校验码,以此发现存在奇数个错误bit的分组,直到最后的分组长度为1,就是错误bit位置,将其翻转即完成一次纠错,之后通过交织将当前数据分组打乱,再开始新一轮纠错,直到Alice与Bob两端所有分组奇偶校验码一致且所有错误bit都被纠正。该算法虽然较其他算法简单,但运行效率低,而且BBBSC协商纠错对分组含偶数个错误的情况无效,只能依赖于重新分组。
Cascade纠错算法,中文称之为“级联纠错算法”,这个算法改善了BBBSC算法的缺陷。Cascade纠错算法的基本原理是,在第一轮纠错时,使用BBBSC算法使每个分组的误码成为偶数个,第二轮以后的每一轮纠错都是使用随机函数将当前所有数据先重排、再分组,然后利用BBBSC进行纠错,根据纠错结果找出错误bit在第一轮中的分组,并对第一轮分组中的错误bit进行纠错,以此不断得出第一轮分组中存在的误码情况,这样更有针对性的去纠错,使误码定位、纠错更加迅速。
相对于BBBSC纠错算法,Cascade纠错算法可以在一定程度上减少纠错时的通信次数,从而使泄露的信息减少,提高了密钥生成率。但是,在Cascade纠错算法中需要记录第一轮纠错的分组情况,包括各分组数据和各个数据的编号等等,因此在工程上需要比较大的存储资源,算法实现也比较复杂。
可见,采用现有的BBBSC、Cascade纠错算法,对两端数据完成纠错均需要进行非常多次数的网络数据交互,一般的,在对一段256kbits长度的数据进行纠错的过程中,需要50~100次Alice与Bob间的经典数据通信。在QKD设备产品化过程中,由于使用的经典网络存在延时较大或者不确定等问题,如果两端密钥存在较多误码(比如超过3%)将导致需要多轮交互才能完成所有错误bit的纠错,很可能造成在限定时间内不能完成纠错,处理带宽不足,导致Alice和Bob两端不能正常输出密钥。
发明内容
本申请实施例的主要目的在于提供一种密钥纠错方法及量子密钥分发系统,在密钥纠错过程中,能够降低QKD设备之间的交互次数,从而提高纠错效率。
本申请实施例提供了一种密钥纠错方法,所述方法应用于一种量子密钥分发QKD系统,所述QKD系统包括第一QKD终端和第二QKD终端;所述方法包括:
所述第一QKD终端和所述第二QKD终端分别获取同一时段内生成的初始待纠错密钥,并将所述初始待纠错密钥作为纠错对象;
所述第一QKD终端对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第一校验码,并将所述第一校验码发送至所述第二QKD终端;
所述第二QKD终端根据与所述第一QKD终端相同的分组方式对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第二校验码;将每一分组对应的所述第二校验码与所述第一校验码进行比较,若存在比较结果不同的错误分组,则计算所述错误分组的汉明码并将所述汉明码发送至所述第一QKD终端;
所述第一QKD终端利用所述汉明码对本端所述错误分组进行纠错;
所述第一QKD终端和所述第二QKD终端按照相同方式分别去除本端所述错误分组中的部分数据,并将去除操作后的所有密钥数据打乱,形成新的待纠错密钥,完成本轮纠错操作;所述第一QKD终端和所述第二QKD终端分别将本端所述新的待纠错密钥作为所述纠错对象,开始下一轮纠错操作,直至不存在所述错误分组为止;
或者,所述第一QKD终端在利用所述汉明码进行纠错后,完成本轮纠错操作;所述第一QKD终端和所述第二QKD终端将本轮纠错后的密钥作为所述纠错对象开始下一轮纠错操作,直至不存在所述错误分组为止。
可选的,在第一轮纠错操作中,所述第一QKD终端对本端所述纠错对象进行分组,包括:
所述第一QKD终端从本端所述纠错对象中抽取部分数据,并将每一抽取位置以及每一抽取位置处的第一比特数据发送至所述第二QKD终端;
所述第二QKD终端根据所述每一抽取位置从本端所述纠错对象中抽取部分数据,获取所述每一抽取位置处的第二比特数据;将相同抽取位置对应的所述第一比特数据与所述第二比特数据进行比较,确定比较结果不同的比特总数,并将携带该比特总数的信息发送至所述第一QKD终端;
所述第一QKD终端根据接收的比特总数估计本端所述纠错对象的误码率,根据所述误码率对本端所述纠错对象进行分组,使平均每一分组的误码率小于1。
可选的,在除所述第一轮纠错操作以外的每一轮纠错操作中,所述第一QKD终端对本端所述纠错对象进行分组,包括:
所述第一QKD终端采用上一轮纠错操作的分组方式,对本端所述纠错对象进行分组;
或者,所述第一QKD终端对本端所述纠错对象进行分组,其中,每一分组的比特数量大于上一轮分组的比特数量。
可选的,所述去除本端所述错误分组中的部分数据,包括:
确定所述错误分组对应的汉明码以及校验码的比特总数,从所述错误分组中去除该比特总数个比特数据。
可选的,所述去除操作后的所有密钥数据被定义为待排序对象,并将所述待排序对象从左到右或从右到左排序,所述将去除操作后的所有密钥数据打乱,形成新的待纠错密钥,包括:
利用N阶本原多项式构造线性反馈移位寄存器LFSR,其中,2N-1≥L,L为所述待排序对象的比特总数;
利用基于LFSR的伪随机序列发生器连续生成伪随机数RN;
若当前生成的伪随机数RN大于L,则丢弃该伪随机数RN;若当前生成的伪随机数RN小于或等于L,则将所述待排序对象中排序位置为RN且未被提取过的比特数据提取出来,直至将所述待排序对象中的全部比特数据提取完为止;
按照提取顺序,将所述待排序对象的各个比特数据依次排序,以形成新的待纠错密钥。
可选的,所述直至不存在所述错误分组为止之后,还包括:
所述第一QKD终端与所述第二QKD终端对纠错结束后的密钥数据进行完整性验证;
若验证通过,则将所述纠错结束后的密钥数据作为纠错后密钥;若验证不通过,则舍弃所述纠错结束后的密钥数据。
可选的,所述将所述纠错结束后的密钥数据作为纠错后密钥之后,还包括:
统计所述初始待纠错密钥中的错误比特总数并统计信息泄漏量,以便对所述纠错后密钥进行保密增强时根据所述错误比特总数和所述信息泄漏量评估安全成码率。
可选的,所述统计所述初始待纠错密钥中的错误比特总数并统计信息泄漏量,包括:
统计所述初始待纠错密钥中属于HV基矢的错误比特个数以及所述信息泄漏量中关于所述HV基矢的信息量;
统计所述初始待纠错密钥中属于PN基矢的错误比特个数以及所述信息泄漏量中关于所述PN基矢的信息量。
本申请实施例还提供了一种量子密钥分发系统,所述系统包括第一QKD终端和第二QKD终端;
所述第一QKD终端和所述第二QKD终端,用于分别获取同一时段内生成的初始待纠错密钥,并将所述初始待纠错密钥作为纠错对象;
所述第一QKD终端,还用于对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第一校验码,并将所述第一校验码发送至所述第二QKD终端;
所述第二QKD终端,还用于根据与所述第一QKD终端相同的分组方式对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第二校验码;将每一分组对应的所述第二校验码与所述第一校验码进行比较,若存在比较结果不同的错误分组,则计算所述错误分组的汉明码并将所述汉明码发送至所述第一QKD终端;
所述第一QKD终端,还用于利用所述汉明码对本端所述错误分组进行纠错;
所述第一QKD终端和所述第二QKD终端,还用于按照相同方式分别去除本端所述错误分组中的部分数据,并将去除操作后的所有密钥数据打乱,形成新的待纠错密钥,完成本轮纠错操作;分别将本端所述新的待纠错密钥作为所述纠错对象,开始下一轮纠错操作,直至不存在所述错误分组为止;
或者,所述第一QKD终端和所述第二QKD终端,用于在所述第一QKD终端在利用所述汉明码进行纠错后,完成本轮纠错操作;再将本轮纠错后的密钥作为所述纠错对象开始下一轮纠错操作,直至不存在所述错误分组为止。
本申请实施例还提供了一种量子密钥分发系统,所述系统包括第一QKD终端和第二QKD终端,所述第一QKD终端和所述第二QKD终端分别包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述任一项所述的方法。
本申请实施例提供的一种密钥纠错方法及量子密钥分发系统,采用奇偶校验结合汉明码的方式对待纠错密钥进行纠错,具体地,第一QKD终端将本端待纠错密钥划分为至少两个分组,并将每一分组的奇偶校验码告知第二QKD终端;第二QKD终端对本端待纠错密钥实现与第一QKD终端的相同分组,并确定各分组的奇偶校验码,通过对比相同分组在两端的奇偶校验码,可以确定哪些分组在两端是不一致的;这样,可以通过汉明码对其中一端即第一QKD终端进行分组纠错,这样便完成一轮纠错。通过上述方式,本申请可以对两个甚至两个以上的分组同时进行纠错且能够保证每轮都实现一定比特个数的纠错,而现有技术采用奇偶校验的方式需要对待纠错数据进行不断分组并交互才能完成一次纠错,因此两个QKD设备需要进行非常多次数的网络数据交互,与现有技术相比,本申请可以大大减少两个QKD设备之间的交互次数,从而提高了纠错效率,减少了信息泄露量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的QKD系统示意图;
图2为本申请实施例提供的具体密钥纠错流程示意图;
图3为本申请实施例提供的一种密钥纠错方法的流程示意图;
图4为本申请实施例提供的密钥抛弃和拼接的示意图;
图5为本申请实施例提供的一种量子密钥分发系统的组成示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
QKD系统与经典通信系统对纠错算法的功能有着不同的要求,主要表现在以下几点:
1、实时性
经典通信中对纠错算法的实时性有比较高的要求,比如语音、视频的实时通信需要纠错要有很好的实时性,不能存在较大的延时;而QKD系统对实时性没有严格的要求,目前QKD系统可以容忍秒量级的纠错延时。
2、误码残留
经典通信中部分数据是可以容忍一定的误码残留的,比如音频数据;而QKD系统不允许出现误码残留的情况,对Sifted Key进行纠错后必须保证没有误码。
3、编码效率
经典通信允许通过牺牲部分的编码效率来提高纠错算法的其他方面的性能,比如实时性、编译码的复杂度等,但QKD系统则需要纠错算法有很高的编码效率,以保证每次纠错后得到的Corrected Key经过保密增强后产生尽可能多的FinalKey。
4、带宽需求
随着经典通信对带宽的要求越来越高,对纠错算法的带宽也随之提高,高带宽成为经典通信中纠错算法的一个重要指标,但在目前的QKD系统中对纠错算法带宽的需求远低于经典通信。
5、与信号调制的关联性
经典通信中纠错算法的一些关键参数比如码长,会与通信信道的调制方案相结合,比如在长距离光纤通信中使用的RS(255,239)码,而QKD系统的纠错算法则不需要考虑类似的问题,所以可以通过使用长码来获取较好的纠错效率。
在图1所示QKD系统中,采用现有的BBBSC、Cascade等纠错算法,对Alice和Bob两端的Sifted Key进行纠错时,对两端数据完成纠错需要进行非常多次数的网络数据交互,一般的,在对一段256kbits长度的数据进行纠错的过程中,需要50~100次Alice与Bob间的经典数据通信。在QKD设备产品化过程中,由于使用的经典网络存在延时较大或者不确定等问题,如果两端密钥存在较多误码(比如超过3%)将导致需要多轮交互才能完成所有错误bit的纠错,很可能造成在限定时间内不能完成纠错,处理带宽不足,导致Alice和Bob两端不能正常输出密钥。
为解决上述问题,本申请提供了一种密钥纠错方法,该方法采用奇偶校验结合汉明码的方式对Sifted Key进行纠错,可以大大减少Alice和Bob两端的交互次数,通常情况下,当Sifted Key的错误率在1%以下时,大概4轮纠错即可完成,当Sifted Key的错误率在3%左右时,大概8轮纠错即可完成。
下面结合图2所示的具体密钥纠错流程来介绍本申请方法实施例。
参见图3,为本申请实施例提供的一种密钥纠错方法的流程示意图,所述方法应用于一种量子密钥分发QKD系统,所述QKD系统包括第一QKD终端和第二QKD终端,其中,可以定义第一QKD终端为Alice且第二QKD终端为Bob,也可以定义第一QKD终端为Bob且第二QKD终端为Alice。
该密钥纠错方法包括以下步骤:
S301:第一QKD终端和第二QKD终端分别获取同一时段内生成的初始待纠错密钥,并将所述初始待纠错密钥作为纠错对象。
参见图2,假设第一QKD终端为Alice,第二QKD终端为Bob。
Alice和Bob对两端密钥数据进行基矢比对后,按照时间顺序依次将基矢比对后生成的Sifted Key存入自己的缓存池。
Alice按照密钥存储顺序,每次从缓存池内提取预设时长内生成的Sifted Key,为便于描述,本实施例将每次提取的Sifted Key定义为密钥块SK,该密钥块SK即为所述初始待纠错密钥,对于当前提取的密钥块SK,将其对应的密钥信息发送给Bob,其中,所述密钥信息可以包括该密钥块SK中每一密钥子块的子块编码和密钥量,例如,所述密钥信息包括连续n(n为正整数)秒中每1秒内生成的Sifted Key对应的子块编码和密钥量。
Bob接收到所述密钥信息后,根据所述密钥信息查看自己的缓存池信息,以比对本端的子块编码和密钥量是否与Alice端一致,之后将比对结果反馈给Alice,若比对成功,Alice、Bob分别下发相同时间内生成的该密钥块SK,并对其进行纠错。其中,将Alice下发的密钥块SK称为Sifted Key A数据,并将Sifted Key A数据以“Sifted Key A文件”的形式存储在Alice端;将Bob下发的密钥块SK称为Sifted Key B数据,并将Sifted Key B数据以“Sifted Key B文件”的形式存储在Bob端;“Sifted Key A文件”与“Sifted Key B文件”各自存储在两端相同地址空间内,分别作为两端的纠错对象。
S302:第一QKD终端对本端纠错对象进行分组,对每一分组进行奇偶校验后生成第一校验码,并将第一校验码发送至第二QKD终端。
需要说明的是,如果第一QKD终端与第二QKD终端之间存在约定好的分组方式,则第一QKD终端不必将分组方式告知第二QKD终端;反之,如果第一QKD终端采用随机的分组方式,则第一QKD终端需要将分组方式告知第二QKD终端。
参见图2,纠错迭代开始。在第一轮纠错过程中,Alice对本端“Sifted Key A文件”中的Sifted Key进行分组,本轮纠错的分组大小是根据评估误码率来制定的,该评估误码率是通过QKD基矢比对流程对两端基矢一致的Sifted Key进行抽样公开比对进行评估得到的。
因此,在本申请的一种实施方式中,在第一轮纠错操作中,S302中的“第一QKD终端对本端纠错对象进行分组”具体可以包括S3021-S3023:
S3021:第一QKD终端从本端纠错对象中抽取部分数据,并将每一抽取位置以及每一抽取位置处的第一比特数据发送至第二QKD终端。
Alice可以按照预设抽取方式比如随机抽取方式,从“Sifted Key A文件”中抽取一定比例的比特数据比如抽取10%的数据,然后将携带“每一比特的抽取位置以及该位置对应的比特值A(即所述第一比特数据)”的抽取信息发送给Bob。
S3022:第二QKD终端根据每一抽取位置从本端纠错对象中抽取部分数据,获取每一抽取位置处的第二比特数据;将相同抽取位置对应的第一比特数据与第二比特数据进行比较,确定比较结果不同的比特总数,并将携带该比特总数的信息发送至第一QKD终端。
Bob接收到Alice发送的抽取信息后,按照Alice对“Sifted Key A文件”的比特抽取位置,从“Sifted Key B文件”中抽取相应位置的比特值B(即所述第二比特数据)”,对于每一抽取位置,比对相同抽取位置对应的比特值A与比特值B是否相同,获取比较结果不同的比特总数N1,并将N1发送至Alice。
S3023:第一QKD终端根据接收的比特总数估计本端纠错对象的误码率,根据误码率对本端纠错对象进行分组,使平均每一分组的误码率小于1。
Alice按照公式Q=N1/N*100%计算误码率Q,其中,N为“Sifted Key A文件”中被抽取的比特总数,N1为N中的错误比特个数,之后,基于误码率Q对“Sifted Key A文件”的Sifted Key进行分组,使每一分组的比特总数与Q的乘积小于1。这种分组结果,可以保证第一轮分组时每组数据中平均最多不到1个错误bit,即每一分组中最多有一1bit错误,这样方便后续发现错误分组时,利用汉明码纠正这1bit错误。
例如,参见以下表1,针对不同的误码率Q,给出了每一轮纠错操作的分组方式:
误码率Q | 第1轮 | 第2轮 | 第3轮 | 第4轮 | 第5轮 | 第6轮 | 第7轮 | 第8轮 |
小于0.5% | 128bits | 128bits | 256bits | 256bits | 256bits | 256bits | 256bits | 256bits |
0.5%~1.0% | 64bits | 128bits | 256bits | 256bits | 256bits | 256bits | 256bits | 256bits |
1.0%~2.0% | 32bits | 64bits | 128bits | 256bits | 256bits | 256bits | 256bits | 256bits |
2.0%~2.5% | 32bits | 64bits | 64bits | 128bits | 256bits | 256bits | 256bits | 256bits |
大于2.5% | 16bits | 32bits | 64bits | 128bits | 256bits | 256bits | 256bits | 256bits |
表1
表1中,在第一轮纠错操作中,当误码率Q小于0.5%时,Alice将“Sifted Key A文件”中的Sifted Key以128bits为一个分组,这样,128bits*0.5%=0.64bits,即平均每一分组的误码率小于0.64,即小于1,其中,如果其中一个分组不满128bits,将该分组也作为一个分组即可。当误码率Q为其它值时,平均每一分组的误码率同样小于1,在此不再赘述。
此外,在除第一轮纠错操作以外的每一轮纠错操作中,S302中的“第一QKD终端对本端纠错对象进行分组”具体可以包括:所述第一QKD终端采用上一轮纠错操作的分组方式,对本端所述纠错对象进行分组;或者,所述第一QKD终端对本端所述纠错对象进行分组,其中,每一分组的比特数量大于上一轮分组的比特数量,具体可以是上一轮分组的比特数量的2倍或2倍以上。
在第二轮以及第二轮以后的纠错操作中,可以使用前一轮纠错的分组方式,或者增加每一分组中的比特数量以减少分组个数,如表1所示,这是因为,经第一轮纠错后,已经纠正了部分错误bit,因此,上述第二轮以及第二轮以后采用的分组方式,同样可以保证平均每一分组的误码率小于1,从而方便后续发现错误分组时,利用汉明码纠正这1bit错误。
需要说明的是,本申请中的分组长度搭配种类不限于表1所示的5种,针对特定情况可以调整为其他分组长度搭配,例如,如果使用4bits、8bits分组长度进行纠错,可以完成更高错误率数据的纠错。此外,由于实际纠错过程中可以采用256bits或更大分组长度来实现单个分组的纠错,相对于现有技术来讲,本实施例能够支持较长Sifted Key块的纠错,例如1Mbits长度的Sifted Key。
之后,对于本轮纠错对应的分组结果,Alice对每一分组进行奇偶校验(奇校验或偶校验)并生成每一分组对应的校验码,此处称之为第一校验码,Alice将携带“分组方式以及每一分组对应的第一校验码”的分组奇偶校验信息发送Bob,如图2所示。
S303:第二QKD终端根据与所述第一QKD终端相同的分组方式对本端纠错对象进行分组,对每一分组进行奇偶校验后生成第二校验码;将每一分组对应的第二校验码与第一校验码进行比较,若存在比较结果不同的错误分组,则计算所述错误分组的汉明码并将所述汉明码发送至第一QKD终端。
如图2所示,Bob获取到Alice发送的分组奇偶校验信息后,根据分组奇偶校验信息进行分组校验,产生纠错分组的汉明码和错误分组的地址。具体地,Bob按照Alice的分组方式,对“Sifted Key B文件”的Sifted Key进行分组,如果Alice对本端各分组采用的是奇校验,则Bob也对本端各分组采用奇校验,如果Alice对本端各分组采用的是偶校验,则Bob也对本端各分组采用偶校验,以生成每一分组对应的校验码,此处称之为第二校验码。然后,对于每一分组,Bob将该分组在本端的校验码与该分组在Alice端的校验码进行比较,若比较结果不同,则说明该分组数据在两端不一致,因此,将两端这样的分组定义为错误分组。再然后,Bob针对本端的每一错误分组,计算对应分组的汉明码,并将各个错误分组的汉明码以及各错误分组的起始存储地址作为纠错信息发送给Alice,以便Alice根据汉明码对本端错误分组进行纠错。
S304:第一QKD终端利用所述汉明码对本端错误分组进行纠错。
通过步骤S303,Bob将各个错误分组的汉明码以及各错误分组的起始存储地址作为纠错信息发送给Alice后,如图2所示,Alice收到Bob发送的纠错信息后,根据分组起始存储地址找到本端的各个错误分组,并利用各个错误分组的汉明码对本端错误分组中的Sifted Key进行纠错,通过纠错,Alice将本端错误分组与Bob端的对应分组一致。
S305:第一QKD终端和所述第二QKD终端按照相同方式分别去除本端错误分组中的部分数据,并将去除操作后的所有密钥数据打乱,形成新的待纠错密钥,完成本轮纠错操作。
如图2所示,Bob将上述纠错信息发送给Alice的同时或之后,对本端“SiftedKey B文件”的Sifted Key进行密钥抛弃和拼接,得到纠错后数据并形成“文件1B”,具体实现如下。
在本申请的一种实施方式中,关于上述密钥抛弃,即S305中的“去除本端错误分组中的部分数据”,具体可以包括:确定所述错误分组对应的汉明码以及校验码的比特总数,从所述错误分组中去除该比特总数个比特数据。在本实施方式中,由于每一错误分组对应的奇偶校验码和汉明码,间接反映了对应错误分组的比特数据信息,因此,Bob计算每一错误分组的奇偶校验码和汉明码的比特总数,并从每一错误分组中去除对应比特总数的比特数据。例如,假设某错误分组长度为16bits,奇偶校验码长度为1bit,汉明码长度为4bits,则从16bits中去除5bits数据,通过去除错误分组中的一些数据,可以保证剩余数据的安全性。
需要说明的是,参见上表1,当Alice评估得到本端纠错对象的误码率Q较低时,将第一轮纠错的各个分组设置较大,虽然各分组的奇偶校验码长度均为1bit,但分组越大,每一错误分组需要的汉明码长度就越大,然而,每一错误分组的奇偶校验码与汉明码的bit总数占对应错误分组长度的比例却越小,也就降低了因交互导致的泄露信息量,比如,参见表2所示:
分组长度 | 奇偶校验码长度 | 汉明码长度 | 交互信息所占比例 |
16bits | 1bit | 4bits | 5/16=31% |
32bits | 1bit | 5bits | 6/32=18.75% |
64bits | 1bit | 6bits | 7/64=10.94% |
128bits | 1bit | 7bits | 8/128=6.25% |
256bits | 1bit | 8bits | 9/256=3.52% |
表2
泄露的信息量越少,后续保密增强阶段在评估安全成码量时所得到的安全成码率就越高,从而可以提高最终QKD终端的成码率。因此,若根据QKD基矢比对评估的误码率动态选择分组规则,即当评估误码率较低时选择较大分组,可以显著降低信息泄漏量,从而提高最终成码率。
按照上述方式对“Sifted Key B文件”的Sifted Key进行密钥抛弃后,接下来,Bob还需要将经抛弃剩下的Sifted Key进行密钥拼接。例如,如图4所示,假设上面比特串10110001011101为密钥抛弃前即“Sifted Key B文件”的Sifted Key,虚框中为被抛弃的比特数据,中间比特串110010111为抛弃剩下的Sifted Key,形成“文件1B”。
之后,如图2所示,Bob对“文件1B”进行密钥交织,也即将“文件1B”的密钥位置打乱,形成“文件2B”。在本申请的一种实施方式中,关于密钥交织,即S305中的“将去除操作后的所有密钥数据打乱,形成新的待纠错密钥”,具体可以包括S3051-S3053:
S3051:利用N阶本原多项式构造线性反馈移位寄存器(Linear FeedbackShifting Register,简称LFSR),并利用基于LFSR的伪随机序列发生器连续生成伪随机数RN,其中,2N-1≥L,L为待排序对象的比特总数。
为便于描述,将上述去除操作后的所有密钥数据(即“文件1B”)定义为待排序对象,在本实施例中,预先将所述待排序对象从左到右或从右到左排序。
选用合适的N阶本原多项式构造LFSR线性反馈移位寄存器,利用基于LFSR的伪随机序列发生器生成伪随机序列。由于随机序列的循环周期是2N-1,即伪随机序列发生器可以连续生成2N-1个不同的伪随机数RN,假设“文件1B”中的Sifted Key长度是L bits,则要保证2N-1≥L,这样,利用伪随机数RN从“文件1B”中提取数据时,才能保证每一比特数据均被提取到。
S3052:若当前生成的伪随机数RN大于L,则丢弃该伪随机数RN;若当前生成的伪随机数RN小于或等于L,则将所述待排序对象中排序位置为RN且未被提取过的比特数据提取出来,直至将所述待排序对象中的全部比特数据提取完为止。
可以设定一个常量作为LFSR的初始随机数,通过伪随机序列发生器连续不断生成伪随机数RN,如果生成的伪随机数RN≤L,则将“文件1B”中第RN位置处的bit取出放到交织后序列里;如果RN>L则丢弃该伪随机数。不断重复上述操作,直到连续生成了L个有效的小于或等于L的伪随机数,根据使用本原多项式构造LFSR生成伪随机数的周期为2N-1的性质,此时刚好将“文件1B”中的所有Sifted Key位置全部轮询一遍,所有的bit位置均已经被打乱重排到新的交织后序列中,形成“文件2B”。
S3053:按照提取顺序,将所述待排序对象的各个比特数据依次排序,以形成新的待纠错密钥。
例如,参见图4,当“文件1B”中的Sifted Key为110010111时,如果各个比特的提取顺序依次为101100111,则101100111即为新的待纠错密钥,形成“文件2B”。
通过上述方式,Bob便完成了对“Sifted Key B文件”的密钥抛弃和拼接。
同样地,Alice完成汉明纠错后,对本端纠错后的Sifted Key进行密钥抛弃形成“文件1A”,之后对“文件1A”进行密钥交织形成“文件2A”,具体实现方式请参见上述Bob的密钥抛弃和拼接操作,在此不再赘述。
S306:第一QKD终端和第二QKD终端分别将本端新的待纠错密钥作为纠错对象,继续执行S302以开始下一轮纠错操作,直至不存在所述错误分组为止。
如图2所示,若本轮纠错操作发现错误分组,则将本轮纠错后的密钥数据作为下一轮迭代纠错的纠错对象,即Alice将“文件2A”作为纠错对象,Bob将“文件2B”作为纠错对象,进行下一轮纠错;反之,若本轮纠错没有发现错误分组,则Alice将上一轮纠错得到的“文件1A”作为纠错结果,Bob将上一轮纠错得到的“文件1B”作为纠错结果。
S307:所述第一QKD终端在利用所述汉明码进行纠错后,完成本轮纠错操作;所述第一QKD终端和所述第二QKD终端将本轮纠错后的密钥作为所述纠错对象开始下一轮纠错操作,直至不存在所述错误分组为止。
本实施例中,可以将上述步骤S305和S306替换为步骤S307,即第一QKD终端和第二QKD终端不丢弃与交互数据等量的Sifted Key,而是记录交互了多少数据量,最后直接把这个数据量输出,用于后续安全成码率的计算,这样可以减少Sifted Key的损失,这种方式也是安全的。
进一步地,为防止Alice与Bob之间的交互信息被篡改,可以对两端纠错结果进行完整性验证,因此,步骤S306或S307之后还可以包括:
S308:第一QKD终端与第二QKD终端对纠错结束后的密钥数据进行完整性验证;若验证通过,则将所述纠错结束后的密钥数据作为纠错后密钥;若验证不通过,则舍弃所述纠错结束后的密钥数据。
在S308中,如图2所示,Alice可以对“文件1A”中的密钥数据进行CRC64的校验码计算,获得64bits的CRC校验值;Alice将CRC校验值发送给Bob;Bob接收Alice的CRC校验值的同时,对“文件1B”中的密钥数据进行CRC64校验,获得64bits的CRC校验值,并将两端CRC校验值进行比对;若比对结果相同,则将校验通过的结果发送给Alice,此时,“文件1A”和“文件1B”中的密钥数据分别为两端的纠错后密钥Corrected Key,以用于后续的保密增强流程;若比对结果不相同,则舍弃“文件1A”和“文件1B”中的密钥数据。
需要说明的是,本实施例除可以采用上述完整性校验方式,还可以采用其它方式,对此不作任何限制。
进一步地,在纠错过程中,每发现1bit错误,都会统计最新错误bit总数和相应泄露的交互信息量,待最后纠错完成后,会将准确的错误总计数与总的信息泄漏量随纠错结果输出,方便后续保密增强功能精确评估安全成码率。因此,上述步骤S308之后还可以包括:
S309:统计所述初始待纠错密钥中的错误比特总数并统计信息泄漏量,以便对所述纠错后密钥进行保密增强时根据所述错误比特总数和所述信息泄漏量评估安全成码率。
在S309中,如图2所示,Bob端CRC校验通过后,则统计出信息泄漏量,Alice接收到Bob发送的CRC校验通过结果后,也统计出信息泄漏量。其中,如果在纠错过程中执行的是上述步骤S305和S306,则所述信息泄漏量为所述初始待纠错密钥与所述纠错后密钥之间的比特数差值;如果在纠错过程中执行的是上述步骤S307,则Bob和Alice每次完成本轮纠错后,均直接统计出本轮泄漏的信息量,即统计出双方交互的数据量,直至纠错过程结束后,Bob和Alice将每轮统计出的泄漏信息量之和作为最终的信息泄露量。
之后,Alice将纠错结束得到的“文件1A”以及本端错误比特总计数和总的信息泄漏量形成“Corrected Key A文件”输出,用于后续保密增强;Bob端将纠错结束得到的“文件1B”以及本端错误比特总计数和总的信息泄漏量形成“Corrected Key B文件”输出,用于后续保密增强;此时,纠错流程结束。
在现有技术中,量子密钥分发系统的工作原理是在基于诱骗态方案的BB84协议基础上发展起来的,在BB84协议中,采用了单光子的4个偏振态:分别为水平偏振态0°、垂直偏振态90°、+45°偏振态、-45°偏振态,分别代表将单光子调制到相应的偏振状态,在实验中可以通过简单的偏振片来实现。其中,0°、90°为一组相互正交的两个量子态,构成一组水平垂直基,设定为base0;±45°为另一组相互正交的量子态,构成斜对角基base1。
为了生成密钥,在图1所示的基矢比对阶段,Alice和Bob应该选取制备基和测量基相同的光子态测量结果。在实际操作中,由于传输信道对光子的衰减,只有一部分光子能够到达Bob端被探测器响应,Bob在光子到达后公布它选取的测量基信息(是base0还是base1),然后Alice会告诉他只保留和自己制备基一致的结果,这个过程就叫做对基(sifting),这样最后大概有50%的bit串被抛弃。
上述base0可以理解为HV基矢,base1可以理解为PN基矢。
在本实施例中,为适应其他QKD实现协议,可以对HV基矢或PN基矢输出的两类Sifted Key分别统计错误计数和信息泄漏量,得到不同基矢对应的准确的误码率,这样可以更精确的计算安全成码量。
因此,在本申请的一种实施方式中,S309中的“统计所述初始待纠错密钥中的错误比特总数并统计信息泄漏量”,具体可以包括:统计所述初始待纠错密钥中属于HV基矢的错误比特个数以及所述信息泄漏量中关于所述HV基矢的信息量;统计所述初始待纠错密钥中属于PN基矢的错误比特个数以及所述信息泄漏量中关于所述PN基矢的信息量。
在本实施方式中,对于步骤S301获取的所述初始待纠错密钥,对其中的每个Sifted Key bit,利用1bit来标识其是HV基矢或是PN基矢,对所述初始待纠错密钥的纠错运算过程中,这些标识基矢的bit与所述初始待纠错密钥同步变换,包括密钥的抛弃、拼接、交织等,保证所述初始待纠错密钥的每一bit随时与对应基矢标识具有一一对应关系,这样可以实时确定每一Sifted Key bit属于HV基矢还是PN基矢,从而可以实时统计HV基矢对应的最新错误bit总数和相应泄露的交互信息量,以及实时统计PN基矢对应的最新错误bit总数和相应泄露的交互信息量。
可选的,在本实施例中,可以使用现场可编程门阵列(Field-Programmable GateArray,简称FPGA)实现本实施例提供的密钥纠错方法,即采用流水线与并行处理的实现方法进行纠错,可以减少每个纠错流程的平均计算耗时,提高了计算速度,例如,对1MbitsSifted Key数据进行纠错,具体计算过程耗时在100ms以内。
综上,本申请实施例提供的一种密钥纠错方法,采用奇偶校验结合汉明码的方式对待纠错密钥进行纠错,具体地,第一QKD终端将本端待纠错密钥划分为至少两个分组,并将每一分组的奇偶校验码告知第二QKD终端;第二QKD终端对本端待纠错密钥实现与第一QKD终端的相同分组,并确定各分组的奇偶校验码,通过对比相同分组在两端的奇偶校验码,可以确定哪些分组在两端是不一致的;这样,可以通过汉明码对其中一端即第一QKD终端进行分组纠错,这样便完成一轮纠错。通过上述方式,本申请可以对两个甚至两个以上的分组同时进行纠错且能够保证每轮都实现一定比特个数的纠错,而现有技术采用奇偶校验的方式需要对待纠错数据进行不断分组并交互才能完成一次纠错,因此两个QKD设备需要进行非常多次数的网络数据交互,与现有技术相比,本申请可以大大减少两个QKD设备之间的交互次数,从而提高了纠错效率,减少了信息泄露量。
此外,通过评估误码率动态调整纠错分组大小,能够进一步减少纠错轮数与纠错泄露信息量,保证较高的处理带宽与较高的纠错效率。
参见图5,为本申请实施例提供了一种量子密钥分发系统的组成示意图,所述系统500包括第一QKD终端501和第二QKD终端502;
所述第一QKD终端501和所述第二QKD终端502,用于分别获取同一时段内生成的初始待纠错密钥,并将所述初始待纠错密钥作为纠错对象;
所述第一QKD终端501,还用于对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第一校验码,并将所述第一校验码发送至所述第二QKD终端502;
所述第二QKD终端502,还用于根据与所述第一QKD终端501相同的分组方式对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第二校验码;将每一分组对应的所述第二校验码与所述第一校验码进行比较,若存在比较结果不同的错误分组,则计算所述错误分组的汉明码并将所述汉明码发送至所述第一QKD终端501;
所述第一QKD终端501,还用于利用所述汉明码对本端所述错误分组进行纠错;
所述第一QKD终端501和所述第二QKD终端502,还用于按照相同方式分别去除本端所述错误分组中的部分数据,并将去除操作后的所有密钥数据打乱,形成新的待纠错密钥,完成本轮纠错操作;分别将本端所述新的待纠错密钥作为所述纠错对象,开始下一轮纠错操作,直至不存在所述错误分组为止;
或者,所述第一QKD终端501和所述第二QKD终端502,用于在所述第一QKD终端501在利用所述汉明码进行纠错后,完成本轮纠错操作;再将本轮纠错后的密钥作为所述纠错对象开始下一轮纠错操作,直至不存在所述错误分组为止。
在本申请的一种实施方式中,在第一轮纠错操作中,所述第一QKD终端501,具体用于从本端所述纠错对象中抽取部分数据,并将每一抽取位置以及每一抽取位置处的第一比特数据发送至所述第二QKD终端502;
所述第二QKD终端502,具体用于根据所述每一抽取位置从本端所述纠错对象中抽取部分数据,获取所述每一抽取位置处的第二比特数据;将相同抽取位置对应的所述第一比特数据与所述第二比特数据进行比较,确定比较结果不同的比特总数,并将携带该比特总数的信息发送至所述第一QKD终端501;
所述第一QKD终端501,具体用于根据接收的比特总数估计本端所述纠错对象的误码率,根据所述误码率对本端所述纠错对象进行分组,使平均每一分组的误码率小于1。
在本申请的一种实施方式中,在除所述第一轮纠错操作以外的每一轮纠错操作中,所述第一QKD终端501,具体用于采用上一轮纠错操作的分组方式,对本端所述纠错对象进行分组;或者,所述第一QKD终端501,具体用于对本端所述纠错对象进行分组,其中,每一分组的比特数量大于上一轮分组的比特数量。
在本申请的一种实施方式中,所述第一QKD终端501和所述第二QKD终端502,具体用于确定所述错误分组对应的汉明码以及校验码的比特总数,从所述错误分组中去除该比特总数个比特数据。
在本申请的一种实施方式中,所述去除操作后的所有密钥数据被定义为待排序对象,并将所述待排序对象从左到右或从右到左排序;
则,所述第一QKD终端501和所述第二QKD终端502,具体用于利用N阶本原多项式构造线性反馈移位寄存器LFSR,其中,2N-1≥L,L为所述待排序对象的比特总数;利用基于LFSR的伪随机序列发生器连续生成伪随机数RN;若当前生成的伪随机数RN大于L,则丢弃该伪随机数RN;若当前生成的伪随机数RN小于或等于L,则将所述待排序对象中排序位置为RN且未被提取过的比特数据提取出来,直至将所述待排序对象中的全部比特数据提取完为止;按照提取顺序,将所述待排序对象的各个比特数据依次排序,以形成新的待纠错密钥。
在本申请的一种实施方式中,所述第一QKD终端501与所述第二QKD终端502,还用于当不存在所述错误分组为止之后,对纠错结束后的密钥数据进行完整性验证;若验证通过,则将所述纠错结束后的密钥数据作为纠错后密钥;若验证不通过,则舍弃所述纠错结束后的密钥数据。
在本申请的一种实施方式中,所述第一QKD终端501与所述第二QKD终端502,还用于在将所述纠错结束后的密钥数据作为纠错后密钥之后,统计所述初始待纠错密钥中的错误比特总数并统计信息泄漏量,以便对所述纠错后密钥进行保密增强时根据所述错误比特总数和所述信息泄漏量评估安全成码率。
在本申请的一种实施方式中,所述第一QKD终端501与所述第二QKD终端502,具体用于统计所述初始待纠错密钥中属于HV基矢的错误比特个数以及所述信息泄漏量中关于所述HV基矢的信息量;统计所述初始待纠错密钥中属于PN基矢的错误比特个数以及所述信息泄漏量中关于所述PN基矢的信息量。
本申请实施例还提供了一种量子密钥分发系统,所述系统包括第一QKD终端和第二QKD终端,所述第一QKD终端和所述第二QKD终端分别包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述任一项所述的方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种密钥纠错方法,其特征在于,所述方法应用于一种量子密钥分发QKD系统,所述QKD系统包括第一QKD终端和第二QKD终端;所述方法包括:
所述第一QKD终端和所述第二QKD终端分别获取同一时段内生成的初始待纠错密钥,并将所述初始待纠错密钥作为纠错对象;
所述第一QKD终端对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第一校验码,并将所述第一校验码发送至所述第二QKD终端;
所述第二QKD终端根据与所述第一QKD终端相同的分组方式对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第二校验码;将每一分组对应的所述第二校验码与所述第一校验码进行比较,若存在比较结果不同的错误分组,则计算所述错误分组的汉明码并将所述汉明码发送至所述第一QKD终端;
所述第一QKD终端利用所述汉明码对本端所述错误分组进行纠错;
所述第一QKD终端和所述第二QKD终端按照相同方式分别去除本端所述错误分组中的部分数据,并将去除操作后的所有密钥数据打乱,形成新的待纠错密钥,完成本轮纠错操作;所述第一QKD终端和所述第二QKD终端分别将本端所述新的待纠错密钥作为所述纠错对象,开始下一轮纠错操作,直至不存在所述错误分组为止;
或者,所述第一QKD终端在利用所述汉明码进行纠错后,完成本轮纠错操作;所述第一QKD终端和所述第二QKD终端将本轮纠错后的密钥作为所述纠错对象开始下一轮纠错操作,直至不存在所述错误分组为止。
2.根据权利要求1所述的方法,其特征在于,在第一轮纠错操作中,所述第一QKD终端对本端所述纠错对象进行分组,包括:
所述第一QKD终端从本端所述纠错对象中抽取部分数据,并将每一抽取位置以及每一抽取位置处的第一比特数据发送至所述第二QKD终端;
所述第二QKD终端根据所述每一抽取位置从本端所述纠错对象中抽取部分数据,获取所述每一抽取位置处的第二比特数据;将相同抽取位置对应的所述第一比特数据与所述第二比特数据进行比较,确定比较结果不同的比特总数,并将携带该比特总数的信息发送至所述第一QKD终端;
所述第一QKD终端根据接收的比特总数估计本端所述纠错对象的误码率,根据所述误码率对本端所述纠错对象进行分组,使平均每一分组的误码率小于1。
3.根据权利要求2所述的方法,其特征在于,在除所述第一轮纠错操作以外的每一轮纠错操作中,所述第一QKD终端对本端所述纠错对象进行分组,包括:
所述第一QKD终端采用上一轮纠错操作的分组方式,对本端所述纠错对象进行分组;
或者,所述第一QKD终端对本端所述纠错对象进行分组,其中,每一分组的比特数量大于上一轮分组的比特数量。
4.根据权利要求1所述的方法,其特征在于,所述去除本端所述错误分组中的部分数据,包括:
确定所述错误分组对应的汉明码以及校验码的比特总数,从所述错误分组中去除该比特总数个比特数据。
5.根据权利要求1所述的方法,其特征在于,所述去除操作后的所有密钥数据被定义为待排序对象,并将所述待排序对象从左到右或从右到左排序,所述将去除操作后的所有密钥数据打乱,形成新的待纠错密钥,包括:
利用N阶本原多项式构造线性反馈移位寄存器LFSR,其中,2N-1≥L,L为所述待排序对象的比特总数;
利用基于LFSR的伪随机序列发生器连续生成伪随机数RN;
若当前生成的伪随机数RN大于L,则丢弃该伪随机数RN;若当前生成的伪随机数RN小于或等于L,则将所述待排序对象中排序位置为RN且未被提取过的比特数据提取出来,直至将所述待排序对象中的全部比特数据提取完为止;
按照提取顺序,将所述待排序对象的各个比特数据依次排序,以形成新的待纠错密钥。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述直至不存在所述错误分组为止之后,还包括:
所述第一QKD终端与所述第二QKD终端对纠错结束后的密钥数据进行完整性验证;
若验证通过,则将所述纠错结束后的密钥数据作为纠错后密钥;若验证不通过,则舍弃所述纠错结束后的密钥数据。
7.根据权利要求6所述的方法,其特征在于,所述将所述纠错结束后的密钥数据作为纠错后密钥之后,还包括:
统计所述初始待纠错密钥中的错误比特总数并统计信息泄漏量,以便对所述纠错后密钥进行保密增强时根据所述错误比特总数和所述信息泄漏量评估安全成码率。
8.根据权利要求7所述的方法,其特征在于,所述统计所述初始待纠错密钥中的错误比特总数并统计信息泄漏量,包括:
统计所述初始待纠错密钥中属于HV基矢的错误比特个数以及所述信息泄漏量中关于所述HV基矢的信息量;
统计所述初始待纠错密钥中属于PN基矢的错误比特个数以及所述信息泄漏量中关于所述PN基矢的信息量。
9.一种量子密钥分发系统,其特征在于,所述系统包括第一QKD终端和第二QKD终端;
所述第一QKD终端和所述第二QKD终端,用于分别获取同一时段内生成的初始待纠错密钥,并将所述初始待纠错密钥作为纠错对象;
所述第一QKD终端,还用于对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第一校验码,并将所述第一校验码发送至所述第二QKD终端;
所述第二QKD终端,还用于根据与所述第一QKD终端相同的分组方式对本端所述纠错对象进行分组,对每一分组进行奇偶校验后生成第二校验码;将每一分组对应的所述第二校验码与所述第一校验码进行比较,若存在比较结果不同的错误分组,则计算所述错误分组的汉明码并将所述汉明码发送至所述第一QKD终端;
所述第一QKD终端,还用于利用所述汉明码对本端所述错误分组进行纠错;
所述第一QKD终端和所述第二QKD终端,还用于按照相同方式分别去除本端所述错误分组中的部分数据,并将去除操作后的所有密钥数据打乱,形成新的待纠错密钥,完成本轮纠错操作;分别将本端所述新的待纠错密钥作为所述纠错对象,开始下一轮纠错操作,直至不存在所述错误分组为止;
或者,所述第一QKD终端和所述第二QKD终端,用于在所述第一QKD终端在利用所述汉明码进行纠错后,完成本轮纠错操作;再将本轮纠错后的密钥作为所述纠错对象开始下一轮纠错操作,直至不存在所述错误分组为止。
10.一种量子密钥分发系统,其特征在于,所述系统包括第一QKD终端和第二QKD终端,所述第一QKD终端和所述第二QKD终端分别包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711367353.5A CN109936445B (zh) | 2017-12-18 | 2017-12-18 | 一种密钥纠错方法及量子密钥分发系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711367353.5A CN109936445B (zh) | 2017-12-18 | 2017-12-18 | 一种密钥纠错方法及量子密钥分发系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936445A CN109936445A (zh) | 2019-06-25 |
CN109936445B true CN109936445B (zh) | 2021-06-15 |
Family
ID=66982757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711367353.5A Active CN109936445B (zh) | 2017-12-18 | 2017-12-18 | 一种密钥纠错方法及量子密钥分发系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109936445B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110224828B (zh) * | 2019-07-17 | 2023-06-20 | 江苏南工科技集团有限公司 | 一种基于量子技术的加密算法 |
CN112929155B (zh) * | 2019-12-06 | 2022-07-05 | 北京中创为南京量子通信技术有限公司 | 一种用于量子密钥生成系统成码错误率的计算方法 |
CN113132089B (zh) * | 2019-12-31 | 2022-09-23 | 科大国盾量子技术股份有限公司 | 一种量子密钥并行比对方法、装置及系统 |
CN111786681B (zh) * | 2020-06-08 | 2022-07-05 | 中国电子科技集团公司第三十研究所 | 一种适用于cv-qkd系统数据后处理的级联译码方法 |
CN111541539B (zh) * | 2020-06-23 | 2020-12-04 | 北京中创为南京量子通信技术有限公司 | 一种提高量子密钥分发系统纠错效率的方法及装置 |
CN114598457B (zh) * | 2020-12-03 | 2024-01-30 | 科大国盾量子技术股份有限公司 | 应用于量子通信的密钥生成方法、装置、介质及设备 |
CN113259101B (zh) * | 2021-06-08 | 2021-10-26 | 北京中创为南京量子通信技术有限公司 | 一种量子密钥分发系统的纠错方法及装置 |
CN113395158B (zh) * | 2021-08-18 | 2022-01-18 | 北京中创为南京量子通信技术有限公司 | 一种消息认证密钥生成方法、装置及消息认证系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145110A (en) * | 1998-06-22 | 2000-11-07 | Ericsson Inc. | Digital data decoder that derives codeword estimates from soft data |
CN102045161A (zh) * | 2010-11-24 | 2011-05-04 | 上海电机学院 | 量子密钥协商方法 |
CN110971399A (zh) * | 2019-10-31 | 2020-04-07 | 北京邮电大学 | 用于光网络物理层密钥分发的后处理方法和装置 |
-
2017
- 2017-12-18 CN CN201711367353.5A patent/CN109936445B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109936445A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936445B (zh) | 一种密钥纠错方法及量子密钥分发系统 | |
CN104737495B (zh) | 校正量子密钥分配协议中的比特误差的排列方法 | |
Martinez-Mateo et al. | Demystifying the information reconciliation protocol cascade | |
CN111566990B (zh) | 有不受信任的装置的安全密钥协议 | |
Zhang et al. | Mobility assisted secret key generation using wireless link signatures | |
Zhang et al. | Padding for orthogonality: Efficient subspace authentication for network coding | |
JP4346929B2 (ja) | 量子鍵配送方法および通信装置 | |
US20180241548A1 (en) | Method and system for authenticating and preserving the integrity of communication, secured by secret sharing | |
CN104270247B (zh) | 适用于量子密码系统的高效泛Hash函数认证方法 | |
Coretti et al. | Non-malleable encryption: simpler, shorter, stronger | |
JP5193303B2 (ja) | 情報伝送及び複雑な保護の方法 | |
Pedersen et al. | High performance information reconciliation for QKD with CASCADE | |
CN109274485B (zh) | 一种数据加密方法、数据认证方法及相关设备和系统 | |
CN108964870B (zh) | 基于自同步混沌密码的铁路应答器报文安全增强方法 | |
Hemenway et al. | Non-committing encryption from Φ-hiding | |
JP7100654B2 (ja) | 暗号化データを伝送するための方法および機器ならびにデータを抽出するための方法および機器 | |
Mihaljević et al. | An approach for stream ciphers design based on joint computing over random and secret data | |
CN110351085B (zh) | 一种用于量子密钥分发后处理的方法及系统 | |
Thao et al. | Optimizing share size in efficient and robust secret sharing scheme for big data | |
CN110971399A (zh) | 用于光网络物理层密钥分发的后处理方法和装置 | |
US11341217B1 (en) | Enhancing obfuscation of digital content through use of linear error correction codes | |
CN113810175A (zh) | 一种用于在量子密钥分发中实现隐私放大的方法及装置 | |
JP4459526B2 (ja) | 量子鍵配送方法および通信装置 | |
Fernando et al. | Reed solomon codes for the reconciliation of wireless phy layer based secret keys | |
Kosut et al. | On generalized active attacks by causal adversaries in networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |