基于线性反馈移位寄存器的保密增强方法及系统与流程

文档序号:16401183发布日期:2018-12-25 20:08阅读:268来源:国知局
基于线性反馈移位寄存器的保密增强方法及系统与流程

本发明涉及通信技术领域,具体地,涉及基于线性反馈移位寄存器的保密增强方法及系统。

背景技术

随着信息技术的迅速发展,人们对安全性的要求越来越高,基于量子力学的量子保密通信具有物理上的无条件安全性,成为了人们关注的焦点。量子密钥分发作为量子保密通信的核心技术,提供了一种相距很远的两端共享安全密钥的方法,它的安全性基于海森堡定理、量子不可克隆定理和测不准原理。量子密钥分发可分为离散变量的量子密钥分发和连续变量的量子密钥分发,二者各有优缺点,离散变量的量子密钥分发传输的距离远,但整体信息传输速率较低,而连续变量虽然传输的距离有待突破,但信息传输速率较高。我们主要对连续变量量子密钥分发进行研究。连续变量量子密钥分发可分为四个阶段:密钥传输、参数估计、秘密协商、保密增强。

无论是离散变量的量子密钥分发还是连续变量的量子密钥分发,整个通信过程都可能存在窃听者窃取信息。当信息泄漏时,信息的安全性就会受到影响。虽然接收端可以通过测量传输的量子态来判断是否存在窃听者从而决定是否终止整个量子保密通信,但若泄漏信息较少的情况下此方法的成本较高。故人们需要一种方法去消除密钥中泄漏出去的部分,自此,保密增强应运而生。

保密增强可用于消除传输密钥中泄漏给窃听者的部分,但其速率影响着整个量子保密通信系统的实时性。在连续变量量子密钥分发系统中,保密增强的速率必须大于秘密协商的速度,否则最终密钥会产生紊乱。现有的保密增强算法通过构造toeplitz矩阵来进行,但当密钥长度较大时矩阵也会随之增大,矩阵元素的存储就成为了重要的技术难题。因此设计高效的保密增强算法来维护系统的实时性显得尤为重要。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于线性反馈移位寄存器的保密增强方法及系统。

根据本发明提供的一种基于线性反馈移位寄存器的保密增强方法,包括:

初始化步骤:初始化线性反馈移位寄存器状态,通过预定的条件对线性反馈移位寄存器的状态不断移位,从而构成新的线性反馈移位寄存器状态;

通用哈希函数构造步骤:根据初始化步骤得到的寄存器状态构造通用哈希函数,通用哈希函数为矩阵,线性反馈移位寄存器的初始状态作为矩阵的第一列,后面的列依次对应每次移位后得到的线性反馈移位寄存器的状态;

最终密钥计算步骤:根据通用哈希函数和协商密钥的乘积得到最终密钥。

较佳的,所述初始化步骤包括:

步骤a1:选取线性反馈移位寄存器,在二元域内将线性反馈移位寄存器中的值随机初始化,即线性反馈移位寄存器中每一位的数为0或1,满足均匀分布;

步骤a2:在二元域内选取最高次幂不超过最终密钥长度的不可约多项式p(x);

步骤a3:线性反馈移位寄存器向后移一位,得到的新状态的第一位由原状态和不可约多项式p(x)的內积决定;

步骤a4:重复步骤a3,重复次数为协商密钥的长度减2。

较佳的,步骤a3中的内积为按位內积再求和,线性反馈移位寄存器的移位方向对应不可约多项式p(x)由低位到高位的方向。

较佳的,不可约多项式p(x)最高位的位数不超过最终密钥的位数,遍历不可约多项式p(x)的所有位,无值则做补零处理,当最高位低于最终密钥的位数时,最高位到最终密钥位均做补零处理。

较佳的,所述协商密钥的长度与矩阵的列数相等,即一个协商密钥的密钥位对应矩阵的一列;

把协商密钥的密钥位作为使能端对其对应的矩阵的列做控制,当密钥位为1时,其对应的列进入累加器,并参与最终密钥的计算;当密钥位为0时,其对应的列不进入累加器,不参与最终密钥的计算。

较佳的,所述矩阵为toeplitz矩阵。

较佳的,所述最终密钥计算步骤包括:

步骤c1:依次判断协商密钥每一位的值;

步骤c2:初始化累加器,累加器的个数等于最终密钥的长度,并设初始值为0;对于步骤c1中协商密钥每一位的值,若值为1则该位对应的矩阵的列进入累加器,若值为0,则不进入累加器累加;

步骤c3:经过协商密钥的长度减一个循环后,最后累加器的值即为最终密钥。

根据本发明提供的一种基于线性反馈移位寄存器的保密增强系统,包括:

初始化模块:初始化线性反馈移位寄存器状态,通过预定的条件对线性反馈移位寄存器的状态不断移位,从而构成新的线性反馈移位寄存器状态;

通用哈希函数构造模块:根据初始化模块得到的寄存器状态构造通用哈希函数,通用哈希函数为矩阵,线性反馈移位寄存器的初始状态作为矩阵的第一列,后面的列依次对应每次移位后得到的线性反馈移位寄存器的状态;

最终密钥计算模块:根据通用哈希函数和协商密钥的乘积得到最终密钥。

较佳的,所述初始化模块包括:

选取线性反馈移位寄存器,在二元域内将线性反馈移位寄存器中的值随机初始化,即线性反馈移位寄存器中每一位的数为0或1,满足均匀分布;

在二元域内选取最高次幂不超过最终密钥长度的不可约多项式p(x);

线性反馈移位寄存器向后移一位,得到的新状态的第一位由原状态和不可约多项式p(x)的內积决定;

重复移位,重复次数为协商密钥的长度减2。

较佳的,所述内积为按位內积再求和,线性反馈移位寄存器的移位方向对应不可约多项式p(x)由低位到高位的方向。

与现有技术相比,本发明具有如下的有益效果:

本发明用少量存储空间构造通用哈希函数来缩短协商密钥,消除窃听者获取的信息,从而保证最终密钥安全性的技术,可以将基于高斯调制相干态的连续变量量子密钥分发系统cvqkd的保密增强速度提高2倍。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的原理图;

图2为寄存器状态转移原理图;

图3为基于寄存器状态转移方法构造toeplitz矩阵从而实现保密增强算法原理图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

为了减小有限长效应的影响,密钥长度需比较大,一般大于千万个比特。在密钥长度很大的情况下节省构造toeplitz矩阵元素的存储空间,并运用并行计算加快运算速度。最终运用本发明的方法的时间消耗比一般构造toeplitz矩阵实现保密增强的方法的时间消耗少一般。即实现了保密增强速度的提升,从而为连续变量量子密钥分发系统的实时性做出贡献。

为实现上述目的,本发明采用的技术方案如下:

如图1所示,本发明提供的一种基于线性反馈移位寄存器的保密增强方法,包括:

初始化步骤:初始化线性反馈移位寄存器状态,通过预定的条件对线性反馈移位寄存器的状态不断移位,从而构成新的线性反馈移位寄存器状态;

通用哈希函数构造步骤:根据初始化步骤得到的寄存器状态构造通用哈希函数,通用哈希函数为toeplitz矩阵,线性反馈移位寄存器的初始状态作为toeplitz矩阵的第一列,后面的列依次对应每次移位后得到的线性反馈移位寄存器的状态(寄存器的平移方向对应toeplitz矩阵由上到下的方向);

最终密钥计算步骤:根据通用哈希函数和协商密钥的乘积得到最终密钥。

具体的,初始化步骤包括:

步骤a1:选取线性反馈移位寄存器,在二元域内将线性反馈移位寄存器中的值随机初始化,即线性反馈移位寄存器中每一位的数为0或1,满足均匀分布;

步骤a2:在二元域内选取最高次幂不超过最终密钥长度的不可约多项式p(x);

步骤a3:线性反馈移位寄存器向后移一位,得到的新状态的第一位由原状态和不可约多项式p(x)的內积决定;

步骤a4:重复步骤a3,重复次数为协商密钥的长度减2。

最终密钥的长度由连续变量量子密钥分发的参数估计步骤决定。由参数估计步骤可以得到泄漏的信息量,从而由此来确定需要剔除多少信息来保证最终密钥的安全。参数估计是完成密钥初始分发后通过公开一部分数据对信道透过率和过噪声进行评估,从而进一步确定alice和bob的互信息量i(x;y)以及bob和窃听者eve之间的冯诺依曼熵χ(y;e)。连续变量量子密钥分发钟密钥率公式为k=βi(x;y)-χ(y;e),其中β为协商效率,i(x;y)为alice和bob的互信息量,χ(y;e)为bob和窃听者eve之间的冯诺依曼熵。压缩率为最终密钥长度为协商密钥长度与压缩率的乘积。

步骤a3中的内积为按位內积再求和,线性反馈移位寄存器的移位方向对应不可约多项式p(x)由低位到高位的方向。

对于內积的两个输入,寄存器的状态相当于一个向量,寄存器的每一位相当于整个向量空间的一个子空间的表达。而对应不可约多项式的向量,每个子空间的表达即为不可约多项式每一位上的数,不可约多项式的由高位向低位依次排列。不可约多项式p(x)最高位的位数不超过最终密钥的位数,遍历不可约多项式p(x)的所有位,无值则做补零处理,当最高位低于最终密钥的位数时,最高位到最终密钥位均做补零处理。

对于步骤a4中的每一次移位记作一个循环,每一个循环得到的数据为一个寄存器状态。在此循环中,对于寄存器状态数据的处理会在后文中详细阐述。

协商密钥的长度与矩阵的列数相等,即一个协商密钥的密钥位对应矩阵的一列;把协商密钥的密钥位作为使能端对其对应的矩阵的列做控制,当密钥位为1时,其对应的列进入累加器,并参与最终密钥的计算;当密钥位为0时,其对应的列不进入累加器,不参与最终密钥的计算。

通用哈希函数构造步骤包括:

步骤b1:对于步骤a1中的初始化寄存器状态,把其作为toeplitz矩阵的第一列;

步骤b2:每一个循环中平移后的寄存器状态依次作为toeplitz矩阵的其余列。

最终密钥计算步骤包括:

步骤c1:依次判断协商密钥每一位的值;

步骤c2:初始化累加器,累加器的个数等于最终密钥的长度,并设初始值为0;对于步骤c1中协商密钥每一位的值,若值为1则该位对应的矩阵的列(寄存器状态)进入累加器,若值为0,则不进入累加器累加;

步骤c3:经过协商密钥的长度减一个循环后,最后累加器的值即为最终密钥。

本发明首先根据参数估计结果初始化长度为最终密钥长度的移位寄存器,初始化的方法为寄存器的所有位均为二进制上的随机分布,即取0或1。当前寄存器的状态记为状态1。

选取一个最高次幂不超过最终密钥长度的不可约多项式p(x)。

初始化个数等于最终密钥长度的累加器,初始值均设为0。

判断协商密钥的第1个比特位,其值若为1则对应的寄存器状态1的各个位上的数分别进入对应的累加器累加;其值若为0,则不放入累加器。

将寄存器向下平移一个单位,平移后寄存器的头元素为寄存器状态1与不可约多项式p(x)对应向量的内积。将此时寄存器的状态记为状态2。

判断协商密钥的第2个比特位,其值若为1则对应的寄存器状态1的各个位上的数分别进入对应的累加器累加;其值若为0,则不放入累加器。

按上述方法依次往后平移计算,直至所有的协商密钥比特都判断完,累加器的最终状态即为最后的安全密钥。

值得注意的是,每一次判断、累加、与平移作为一个循环,所用的寄存器仅仅只有一个。也就是说对于toeplitz矩阵的构造仅仅只用了这一个寄存器的存储空间,相应于一般的保密增强算法toeplitz矩阵所用的协商密钥长度与最终密钥长度的和再减一个存储空间,大大节省了硬件资源。我们的toeplitz矩阵的构造是按列依次进行的,在构造矩阵的同时对最终密钥也进行了计算。当toeplitz矩阵构造完成,我们也会同时得到最终密钥。更详细地说,每一个循环所构造的寄存器状态均为toeplitz矩阵的一列,经过判断此列对应协商密钥比特位的值,若值为1,则将此列各个元素放入相应的累加器,从而参与最终密钥的运算。已经用过的寄存器状态将不会再次使用,因为其已经参与了最终密钥的运算。因此,更新寄存器状态,并不会影响最终密钥的得到。只不过用寄存器构造toeplitz矩阵,元素都是临时存储,并不像一般用存储器构造toeplitz矩阵那样长期存储元素数据。在得到最终密钥后寄存器的状态为toeplitz矩阵的最后一列元素,此时toeplitz矩阵并不能由此列元素得到。但此方法并不影响最终密钥的得到,因为toeplitz矩阵的元素均参与了运算,相反此方法不仅节省了存储空间,还提高了运行速度。在一个循环中当协商密钥比特位为0时,对应的寄存器状态并不进入累加器运算,在这里只用了一个判断的代价却节省了数量相当于最终密钥长度的加法运算。在协商密钥和最终密钥都较长时此方法的运行效率是很高的,因为密钥越长省去的运算就越多,运行时间的减少就越为明显。

在上述基于线性反馈移位寄存器的保密增强方法的基础上,本发明还提供一种基于线性反馈移位寄存器的保密增强系统,包括:

初始化模块:初始化线性反馈移位寄存器状态,通过预定的条件对线性反馈移位寄存器的状态不断移位,从而构成新的线性反馈移位寄存器状态;

通用哈希函数构造模块:根据初始化模块得到的寄存器状态构造通用哈希函数,通用哈希函数为toeplitz矩阵,线性反馈移位寄存器的初始状态作为toeplitz矩阵的第一列,后面的列依次对应每次移位后得到的线性反馈移位寄存器的状态(寄存器的平移方向对应toeplitz矩阵由上到下的方向);

最终密钥计算模块:根据通用哈希函数和协商密钥的乘积得到最终密钥。

具体的,初始化模块包括:

模块a1:选取线性反馈移位寄存器,在二元域内将线性反馈移位寄存器中的值随机初始化,即线性反馈移位寄存器中每一位的数为0或1,满足均匀分布;

模块a2:在二元域内选取最高次幂不超过最终密钥长度的不可约多项式p(x);

模块a3:线性反馈移位寄存器向后移一位,得到的新状态的第一位由原状态和不可约多项式p(x)的內积决定;

模块a4:重复模块a3的内容,重复次数为协商密钥的长度减2。

最终密钥的长度由连续变量量子密钥分发的参数估计步骤决定。由参数估计模块可以得到泄漏的信息量,从而由此来确定需要剔除多少信息来保证最终密钥的安全。

模块a3中的内积为按位內积再求和,线性反馈移位寄存器的移位方向对应不可约多项式p(x)由低位到高位的方向。

对于內积的两个输入,寄存器的状态相当于一个向量,寄存器的每一位相当于整个向量空间的一个子空间的表达。而对应不可约多项式的向量,每个子空间的表达即为不可约多项式每一位上的数,不可约多项式的由高位向低位依次排列。不可约多项式p(x)最高位的位数不超过最终密钥的位数,遍历不可约多项式p(x)的所有位,无值则做补零处理,当最高位低于最终密钥的位数时,最高位到最终密钥位均做补零处理。

对于模块a4中的每一次移位记作一个循环,每一个循环得到的数据为一个寄存器状态。在此循环中,对于寄存器状态数据的处理会在后文中详细阐述。

协商密钥的长度与矩阵的列数相等,即一个协商密钥的密钥位对应矩阵的一列;把协商密钥的密钥位作为使能端对其对应的矩阵的列做控制,当密钥位为1时,其对应的列进入累加器,并参与最终密钥的计算;当密钥位为0时,其对应的列不进入累加器,不参与最终密钥的计算。

通用哈希函数构造模块包括:

模块b1:对于模块a1中的初始化寄存器状态,把其作为toeplitz矩阵的第一列;

模块b2:每一个循环中平移后的寄存器状态依次作为toeplitz矩阵的其余列。

最终密钥计算模块包括:

模块c1:依次判断协商密钥每一位的值;

模块c2:初始化累加器,累加器的个数等于最终密钥的长度,并设初始值为0;对于模块c1中协商密钥每一位的值,若值为1则该位对应的矩阵的列(寄存器状态)进入累加器,若值为0,则不进入累加器累加;

模块c3:经过协商密钥的长度减一个循环后,最后累加器的值即为最终密钥。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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