一种基于模算术哈希函数的保密增强方法及装置与流程

文档序号:19123865发布日期:2019-11-13 01:55阅读:645来源:国知局
一种基于模算术哈希函数的保密增强方法及装置与流程

本发明涉及一种基于模算术哈希函数的保密增强方法及装置,属于量子通信技术领域。



背景技术:

量子密钥分发(quantumkeydistribute,qkd)是一种在通信双方之间利用量子力学原理分发安全密钥的新兴技术。量子密钥分发系统根据协议的不同可以分为离散变量量子密钥分发系统,连续变量量子密钥分发系统,我们主要对于离散变量量子密钥分发系统进行研究。

离散变量量子密钥分发系统通常包含量子子系统和后处理子系统两大部分,其中量子子系统负责量子态的制备、传输和测量,生成原始密钥;后处理子系统主要负责对原始密钥进行纠错和提纯,包括对基、误码协商、保密增强、认证四个环节。保密增强作为量子密钥分发系统生成安全密钥的最后一个环节,对最终密钥的安全性影响极大,其作用是将通信双方协商后获得的纠错密钥进行提纯,将窃听者从量子信道和经典信道获取的密钥信息压缩至接近为0,生成量子密钥分发系统中的最终安全密钥。

图1为保密增强算法的基本原理。保密增强算法的输入是一段通信双方各自协商模块产生的n比特相同的纠错密钥x,其中窃听者已知其部分的量子信息ρ,ρ代表一个量子态。通信双方需要从一个哈希函数中公开选择一个压缩函数g:{0,1}n→{0,1}r,对输入的纠错密钥进行压缩,即y=g(x)。最终密钥y应在已知ρ和压缩函数g的条件下尽可能呈均匀分布,即满足条件其中d(w|z)代表条件z下序列w与均匀分布的随机序列u之间的距离,即序列w的非一致性。则代表公开函数g与窃听者窃听的量子信息的量子信息ρ之和。称满足上述条件的最终密钥y是ε安全的。

通用2类哈希函数已经被证明可以用于保密增强。按照可组合安全性的要求,在无限码长的情况下,保密增强的输出长度r和输入长度n的压缩比r要满足条件其中s(x)代表x的冯诺依曼熵。根据安全性分析,保密增强的块长至少为106时,才能认为保密增强的密钥安全性与无限码长的情况相接近。为了提高安全密钥的生成速率,现有的高速qkd系统已经将保密增强码长提高到108。因此找到运算量小的通用2类哈希函数实现保密增强十分重要。现有的量子密钥分发系统主要采用基于toeplitz矩阵的保密增强算法,在108码长下处理速率刚刚突破百兆,难以满足快速发展的dv-qkd系统的需求。基于模算术类哈希函数的保密增强算法并没有得到充分研究,已有的算法由于优化方法选择的影响,实际实验中在107处理速率在十兆量级,还远不能满足现有需求。



技术实现要素:

针对现有保密增强算法处理速率低问题,本发明提供一种一种基于模算术哈希函数的保密增强方法及装置。

本发明的一种基于模算术哈希函数的保密增强方法,所述方法包括:

s1、以n比特为单位,导入二进制的纠错密钥x、模运算类哈希函数所需的二进制随机比特流数据c、d,得到ψ()表示数据导入函数;

s2、采用多级分治的乘法算法进行大数乘法运算:然后进行加法运算,获得

所述多级分治的乘法算法为:随着乘法运算位数的增加,依次采用基本乘法basecase算法、卡拉楚巴乘法karatsuba算法、汤姆库克乘法toom-3算法、汤姆库克乘法toom-4算法、汤姆库克乘法toom-6.5算法、汤姆库克乘法toom-8.5算法、肖恩哈格-施特拉森乘法andstrassen算法进行乘法运算;

s3、将s2获得的结果与2n进行模算术得到哈希之后的结果

s4、将s3得到的结果进行导出,得到γ()为ψ()的反函数;

s5、根据s4的y',进行y=y'/2n-r计算,选取r位数据的y,按比特流读出即得到保密增强的结果;

其中,根据qkd系统的参数及gllp安全性分析的结论获取r的取值。

作为优选,所述s1,进一步包括:

先将比特数据以高位在前的顺序保存在无符号整型数组中,再通过数据导入函数,以高位在前的顺序保存于所需的数据类型的变量中,所述无符号整型数组为由多个64位无符号长整型数为一串的数组。

本发明还提供了一种基于模算术哈希函数的保密增强装置,所述装置包括:

数据导入模块,用于以n比特为单位,导入二进制的纠错密钥x、模运算类哈希函数所需的二进制随机比特流数据c、d,得到ψ()表示数据导入函数;

大数乘法和加法运算模块,与数据导入模块连接,用于采用多级分治的乘法算法进行大数乘法运算:然后进行加法运算,获得

所述多级分治的乘法算法为:随着乘法运算位数的增加,依次采用基本乘法basecase算法、卡拉楚巴乘法karatsuba算法、汤姆库克乘法toom-3算法、汤姆库克乘法toom-4算法、汤姆库克乘法toom-6.5算法、汤姆库克乘法toom-8.5算法、肖恩哈格-施特拉森乘法andstrassen算法进行乘法运算;

模运算模块,与大数乘法和加法运算模块连接,用于将大数乘法和加法运算模块获取的与2n进行模算术得到哈希之后的结果

数据导出模块,与模运算模块连接,用于将模运算模块得到的结果进行导出,得到γ()为ψ()的反函数;

保密结果输出模块,与数据导出模块连接,用于根据数据导出模块得到的y',进行y=y'/2n-r计算,选取r位数据的y,按比特流读出即得到保密增强的结果;

其中,根据qkd系统的参数及gllp安全性分析的结论获取r的取值。

作为优选,所述数据导入模块,用于先将比特数据以高位在前的顺序保存在无符号整型数组中,再通过数据导入函数,以高位在前的顺序保存于所需的数据类型的变量中,所述无符号整型数组为由多个64位无符号长整型数为一串的数组。

本发明的有益效果,本发明的核心优化在于采用了多级分治的乘法算法对方法中的大数乘法运算和模运算进行了加速。利用多级分治的乘法算法进行加速主要有两个优点,第一是在gmp(gnumultipleprecisionarithmeticlibrary,多精度算术库)运算库中设计了专门的数据结构存储需要运算的数据,如图4所示,从而提高了运算速率,第二是采用了多级分治的方法,根据数据长度自动选择采用gmp乘法库中算法完成运算。本发明实现了一种基于模算术类哈希函数的qkd保密增强算法,显著提高保密增强算法的处理速率,在实际应用中具有重要意义。

附图说明

图1为保密增强算法的基本原理图;

图2为本发明中方法的流程示意图;

图3为本发明中采用多级分治的乘法算法进行大数乘法运算的原理示意图;

图4为本发明中实现保密增强算法数据结构的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

具体实施方式一:基于模算术保密增强算法所使用的模算术哈希函数的表达形式为:

gc,d={gc,d:c,d∈z2n,gcd(c,2)=1},其中,输入集合|a|=2n、输出集合|b|=2r

本实施方式的基于模算术哈希函数的保密增强方法,如图2所示,包括:

步骤一、数据导入:以n比特为单位,对纠错密钥x和模算术类哈希函数所需的随机比特流数据c、d进行数据导入得到ψ()表示数据导入函数;

本实施方式设计了数据结构存储需要运算的数据,如图4所示,该数据结构为无符号整型数组,该无符号整型数组为由多个64位无符号长整型数为一串的数组。

本实施方式先将比特数据以高位在前的顺序保存在64bit的无符号整型数组中,再通过数据导入函数,以高位在前的顺序保存于所需数据类型的变量中,这样可以快速完成输入数据的导入。

步骤二、大数运算:进行大数乘法和加法操作,特别的,采用多级分治的乘法算法大数乘法算法加速的运算;

所述多级分治的乘法算法为:如图3所示,随着乘法运算位数的增加,依次采用基本乘法basecase算法、卡拉楚巴乘法karatsuba算法、汤姆库克乘法toom-3算法、汤姆库克乘法toom-4算法、汤姆库克乘法toom-6.5算法、汤姆库克乘法toom-8.5算法、肖恩哈格-施特拉森乘法andstrassen算法进行乘法运算;

toom算法是将大整数分为k部分(k≥2)进行递归,一种以动态分治递归方式来加快计算机程序,称为toom-cook乘法算法。

步骤三、取模运算:将步骤二获得的结果与2n进行模算术得到哈希之后的结果;

步骤四、数据导出:将步骤三得到的结果进行导出,得到γ()为ψ()的反函数,与导入过程类似,输出的过程是利用数据导出函数将单个的数据按照高位在前的顺序按位输出至64bit的无符号整型数组中。

步骤五、对步骤四的结果通过进行y=y'/2n-r计算得到r位数据,按比特流读出即可得到保密增强的结果,其中r的取值参照gllp安全性分析的结论进行计算,由qkd系统的具体参数决定,不应超过gllp安全分析理论给出的上限。

由于保密增强的乘法运算位数较大,本实施方式使用andstrassen算法和toom-cook算法,该算法的主要优点有两个:一是选择了快速傅里叶变换减小了整数乘法的运算量,将运算复杂度降低至o(nlogn),o()函数,指明某个算法的耗时/耗空间与数据增长量之间的关系;二是使用了自定义的数据类型,自由的选择乘法运算进制的大小,从而将多位数据合并为快速傅里叶变换的一个点进行运算,进一步减小运算量。因此以andstrassen算法为核心的gmp乘法库可以显著提高保密增强算法的处理速率。

具体实施方式二:本实施方式的基于模算术哈希函数的保密增强装置,包括:

数据导入模块,用于以n比特为单位,导入二进制的纠错密钥x、模运算类哈希函数所需的二进制随机比特流数据c、d,得到ψ()表示数据导入函数;

大数乘法和加法运算模块,与数据导入模块连接,用于采用多级分治的乘法算法进行大数乘法运算:然后进行加法运算,获得

所述多级分治的乘法算法为:随着乘法运算位数的增加,依次采用基本乘法basecase算法、卡拉楚巴乘法karatsuba算法、汤姆库克乘法toom-3算法、汤姆库克乘法toom-4算法、汤姆库克乘法toom-6.5算法、汤姆库克乘法toom-8.5算法、肖恩哈格-施特拉森乘法andstrassen算法进行乘法运算;

模运算模块,与大数乘法和加法运算模块连接,用于将大数乘法和加法运算模块获取的与2n进行模算术得到哈希之后的结果

数据导出模块,与模运算模块连接,用于将模运算模块得到的结果进行导出,得到γ()为ψ()的反函数;

保密结果输出模块,与数据导出模块连接,用于根据数据导出模块得到的y',进行y=y'/2n-r计算,选取r位数据的y,按比特流读出即得到保密增强的结果;

其中,根据qkd系统的参数及gllp安全性分析的结论获取r的取值。

本实施方式的数据导入模块,用于先将比特数据以高位在前的顺序保存在无符号整型数组中,再通过数据导入函数,以高位在前的顺序保存于所需的数据类型的变量中,所述无符号整型数组为由多个64位无符号长整型数为一串的数组。

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

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