一种用于连续变量量子密钥分发中的长码私钥放大方法与流程

文档序号:13577303阅读:993来源:国知局

本发明涉及连续变量量子密钥分发领域,主要是应用于连续变量量子密钥分发后处理中的可以实现长码私钥放大的方法,尤其适用于考虑有限码长影响后,初始密钥长度非常长的情况,可以有效的实现私钥放大,从而得到最终的安全密钥。



背景技术:

当今社会信息安全越来越受到人们的重视,但是现有的密码体系通常是建立在数学复杂度的基础上,随着量子计算机技术的发展,破译传统的密码将不再成为难题,信息安全受到极大的威胁。量子密钥分发(quantumkeydistribution,qkd)是基于物理学原理的,由量子力学的基本原理保证了其绝对安全性。

qkd技术主要分为离散变量量子密钥分发(discretevariablequantumkeydistribution,dv-qkd)和连续变量量子密钥分发(continuousvariablequantumkeydistribution,cv-qkd)。经过30年的发展,dv-qkd在信号的产生、检测方面存在一定的局限性。而cv-qkd系统通常使用相干态或压缩态来实现量子信号传递,其光源使用普通的半导体激光器即可,不需要复杂而昂贵的单光子源,而且cv-qkd可以使用经典光通信中的平衡探测器,不需要使用单光子探测器。因此cv-qkd可以充分利用经典光通信多年的技术成果。

cv-qkd主要分为量子态的制备、量子态的传输、量子态的测量和密钥后处理。经过前三个过程以后,合法通信双方alice和bob之间共享一组具有关联性的数据,但是由于窃听者的存在以及信道的不完美性,这组数据并不是安全的不能作为密钥。cv-qkd密钥后处理过程又分为基选择、参数估计、数据协调和私钥放大。经过密钥后处理的前三个过程以后,alice和bob共享一组完全相同的二进制密钥,但是由于窃听者的存在以及前三个过程中可能会在经典信道泄露一部分信息,因此密钥并不安全,还要经过私钥放大,将窃听者获得的密钥降低到能够接受的范围。

私钥放大过程可以看作是纠错后的密钥与hash函数作用的过程。常用的hash函数是toeplitz矩阵,其特点是矩阵中每条自左上至右下的斜线上的元素相同,即矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等。

有限码长对cv-qkd的安全性有着非常重要的影响,不仅影响cv-qkd系统的安全码率也会影响cv-qkd系统的传输距离,即使传输距离为0,初始密钥的长度也至少要达到106,如果传输距离为50km,那么要求初始密钥长度至少为108,如果传输距离为100km,那么要求初始密钥长度至少为1010。由此看出,为了满足长距离cv-qkd的要求,假如传输距离为50km,那么初始密钥长度至少要达到108,普通计算机实现108的私钥放大非常困难,而且还有前面三个过程也需要消耗大量计算和存储资源。如果传输距离达到100km或者更远,初始密钥长度大于1010,需要消耗大量的计算和存储资源,普通计算机的计算能力和内存大小难以满足要求。cv-qkd系统要求能够实时产生安全密钥,私钥放大过程的计算复杂度为o(n2),当初始密钥很长时,处理速度较慢,利用快速傅里叶变换(fastfouriertransform,fft)可以加速私钥放大的过程,其计算复杂度为o(nlogn)。

综上所述,传统的私钥放大过程难以满足长距离cv-qkd系统的要求,当初始密钥较长时,无法进行私钥放大。因此为了实现长距离的cv-qkd,设计一种应用于连续变量量子密钥分发的任意长度私钥放大方法很有必要。



技术实现要素:

本发明的目的是提供一种用于连续变量量子密钥分发中的长码私钥放大方法,是一种通过将初始密钥和toeplitz矩阵分块计算再合并结果得到最终安全密钥的方法。这种方法可以满足长距离cv-qkd系统的要求,不受有限码长的限制。

本发明通过以下步骤实现上述方法:

步骤1:根据计算机的性能,主要是计算机cpu处理速度和内存大小,计算最佳的单次私钥放大长度m和toeplitz矩阵大小m×l。

步骤2:根据纠错后密钥的长度n和参数估计估计出的安全码率长度k,以及步骤1得出的计算机最佳私钥放大长度m和toeplitz矩阵大小m×l,对纠错后的密钥和toeplitz矩阵进行分块处理。

步骤3:采用快速傅里叶变换与快速傅里叶逆变换的方法分别对步骤2分块以后的每块密钥和与之对应的toeplitz矩阵之间的运算进行加速,然后将所有块的计算结果对应位相加即可得到最终的安全密钥。

步骤1的具体步骤如下:

步骤1a:检查计算机的配置,包括cpu处理速度以及内存大小。

步骤1b:通过调整纠错后密钥长度和toeplitz矩阵大小测试计算机能够处理的最佳私钥放大长度m和toeplitz矩阵大小m×l。

其中计算机的内存一般不会全部分配给一个进程,因此要测试单个进程可分配的内存大小。

步骤2的具体步骤如下:

步骤2a:根据n和k,生成toeplitz矩阵,大小为n×k

步骤2b:根据n、k、m和l分别将纠错后的密钥和toeplitz矩阵进行分块处理。

对纠错后密钥和toeplitz矩阵分块的方法为:将长度为n的密钥分成p块,每块长度为m,满足n=m×p;将大小为n×k的toeplitz矩阵按行分成p块,每块m行,满足n=m×p,按列分成q块,每块l列,满足k=l×q。

步骤3的具体步骤如下:

步骤3a:利用fft和ifft技术对初始密钥ci和与之对应的toeplitz矩阵tij之间的运算进行加速,得到中间密钥kij。其中i=1,2...p,j=1,2...q,i和j都从1开始。

步骤3b:i值加1,重复步骤3a,直到i达到p为止。

步骤3c:i值重新置为1,j值加1,重复步骤3a和3b,直到j达到q为止。

步骤3d:计算得到最终安全密钥k,k=(k1,k2...kq),j=1,2...q。

与现有技术相比,本发明的优势在于:

1.考虑到有限码长的影响,cv-qkd在长距离传输时要求初始密钥长度非常长,即使传输距离为0km,初始密钥长度也要求大于106,50km时要求初始密钥长度大于108,100km时要求初始密钥长度大于1010。密钥长度大于108以后,需要消耗大量的计算资源和存储资源,普通计算机无法直接处理。本发明利用分块处理技术解决了长距离传输的难题。

2.本发明可以有效的利用计算和存储资源,大大提高了资源利用率,提高了效率。

附图说明

图1为本发明所用方法的流程图

具体实施方式

下面举例具体说明本发明的方法。本发明是一种用于连续变量量子密钥分发中的长码私钥放大方法,具体实施方案如下:

首先根据计算机的性能,计算最佳单次私钥放大长度m和toeplitz矩阵大小m×l。具体计算方法为通过调整纠错后密钥长度的大小和toeplitz矩阵的大小测试计算机能够处理的最佳私钥放大长度m和toeplitz矩阵大小m×l。

然后根据cv-qkd后处理中数据协调后密钥的长度n和参数估计估计出的安全码率长度k,以及计算机最佳私钥放大长度m和toeplitz矩阵大小m×l,对纠错后的密钥和toeplitz矩阵进行分块处理。

对数据协调后密钥和toeplitz矩阵分块的方法为:将长度为n的密钥分成p块,每块长度为m,满足n=m×p;将大小为n×k的toeplitz矩阵按行分成p块,每块m行,满足n=m×p,按列分成q块,每块l列,满足k=l×q。

具体算法如下:

设初始密钥为:

c=(a1,a2…an)

对其重新进行组合,可得:

c=((a1,a2…am),(am+1,am+2…a2m)...(a(p-1)m+1,a(p-1)m+2…apm))

上式可以表示为:

c=(c1,c2…cp)

其中ci=(a1+m(i-1),a2+m(i-1)…ami),i=1,2…p,ci为c的子集,满足

ci即为分块后的初始密钥,共p块。

toeplitz矩阵的特点是矩阵中每条自左上至右下的斜线上的元素相同,即矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等。比如:

根据toeplitz矩阵的特点只需要确定toeplitz矩阵的第一行和第一列即可完全确定该toeplitz矩阵。

假设toeplitz矩阵为t,大小为n×k,对其进行分块处理,按行分成p块,每块m行,满足n=m×p,按列分成q块,每块l列,满足k=l×q。分块后每块toeplitz子矩阵tij大小为m×l,其中i=1,2...p,j=1,2...q,共pq块。比如对前面例子进行分块,此toeplitz矩阵的n=4,k=4,假设m=2,l=2,那么p=2,q=2。按如下方式进行分块:

分块完成以后采用快速傅里叶变换与快速傅里叶逆变换的方法分别对分块以后的每块密钥和与之对应的toeplitz矩阵之间的运算进行加速,然后将所有块的计算结果对应位相加即可得到最终的安全密钥。具体步骤如下:

(1)利用fft和ifft技术对初始密钥ci和与之对应的toeplitz矩阵tij之间的运算进行加速,得到中间密钥kij。其中i=1,2...p,j=1,2…q,i和j都从1开始。

(2)i值加1,重复步骤3a,直到i达到p为止。

(3)i值重新置为1,j值加1,重复步骤3a和3b,直到j达到q为止。

(4)计算得到最终安全密钥k,k=(k1,k2...kq),j=1,2...q。

通过上述实例,详细说明了如何在初始密钥很长的情况下进行私钥放大过程。考虑到有限码长对cv-qkd的影响,本发明对实现cv-qkd的长距离传输是至关重要的,否则无法得到安全密钥。

本发明并不局限于上述实例,凡是在权利要求范围内做出的任何形式的变形或者修改,均属于本发明的保护范围。

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