一种用于格公钥密码的错误采样方法与流程

文档序号:17922735发布日期:2019-06-15 00:13阅读:421来源:国知局
一种用于格公钥密码的错误采样方法与流程
本发明涉及密码学
技术领域
,尤其涉及一种用于格公钥密码的错误采样方法。
背景技术
:随着量子计算技术的快速发展,现有的密码体制的安全性受到了较大威胁。研究可抵抗量子计算攻击的密码算法体制受到了广泛关注,在众多具有潜在抗量子能力的算法设计中,基于格困难问题的密码算法是最具有竞争力的一类算法。在基于格困难问题的密码算法设计中,离散错误采样器是其中一个核心组件。离散错误采样器在输入一组系统参数后,通过运行采样算法输出任意数量的采样样本。这些采样样本的分布以及输出效率由系统参数以及采样算法所决定,当分布能够满足特定的条件时,可保证算法的安全性。因此,离散错误采样器中所采用的采样算法直接关系到格密码体制的效率以及安全性。在现有的基于格困难问题的密码算法设计中,离散错误采样器的采样算法主要可分为三类:1、近似离散高斯分布采样算法;2、二项分布采样算法;3、取整采样算法。值得一提的是,前两类采样算法需要一个随机数生成器作为随机源,在一般情况下,随机数生成器产生随机数的效率(比特/秒)稳定,因此,前两类算法输出样本时的随机数利用率(比特/样本)决定了采样算法的效率。第三类算法与前两类算法的不同之处在于其不需要随机源,而需要一个额外的输入x∈zq,输出则计算x乘p/q的取整,即因此对于输入x,第三类算法的输出是确定的而非随机的,在随机假设下,其输出分布可认为与[-q/(2p),q/(2p)]上的均匀整数采样相当。衡量离散错误采样器的采样算法输出分布是否安全主要考虑两个指标,其一是输出分布的标准差;其二是输出分布在其特征函数下的等效标准差(以下简记为等效标准差)。标准差和等效标准差分别对应其抵抗搜索攻击和区分攻击的能力,标准差和等效标准差越大意味着安全性越高,由于短板效应,标准差和等效标准差中的较小者主要决定了安全性。对上述三类已知算法采样算法,其效率以及安全性对比如下:效率标准差等效标准差近似离散高斯分布可变可变可变二项分布2k\sqrt{k/2}>\sqrt{k/2}均匀整数分布f×2^f/3^k\sqrt{2k/3}<\sqrt{2k/3}其中,近似离散高斯分布采样方式多种多样,在任意设定的效率下,标准差变化范围极大,但过大的标准差会导致等效标准差过小,使得安全性降低,目前并没有有效的选取规则来实现两者的平衡;二项分布采样中标准差与等效标准差之间的大小关系清晰,可以保证最后的安全性,同时采样效率也可以直接由标准差导出,但缺点是k仅能取整数,采样参数选取范围窄,难以满足密码方案设计的安全性需求;对于均匀整数分布采样,其效率较二项分布随k的不同各有高低,其标准差与同效率下的二项分布相比更大,但等效标准差更小,使得其安全性在在同等条件下的低于二项分布。技术实现要素:针对上述现有技术中存在的不足之处,本发明提供一种用于格公钥密码的错误采样方法,将两种不同的采样算法相互结合,当参数k1与k2选取适当时,可以达到效率和安全性的良好平衡,同时具有较大的灵活性。该用于格公钥密码的错误采样方法包括以下步骤:步骤一、接收输入参数k1,k2,表示采样算法的结果需要运行k1次二项分布采样模块与和k2次整数均匀采样模块;步骤二、利用二项分布采样模块,通过输入的2比特随机源产生的随机数,输出服从二项分布的整数a;步骤三、重复二项分布采样模块k1次,计算二项分布采样模块k1次输出之和a;步骤四、利用整数均匀采样模块,通过输入的比特随机源产生的随机数,输出服从k2次整数均匀采样的结构b;步骤五、输出采样结果s=a+bmodq。进一步地,步骤四中如果以二进制表示的随机数的数值大于3^k2,则再次输入f比特随机源产生的随机数,直到产生以二进制表示的随机数的数值不大于3^k2的情况,根据该f比特随机源产生的随机数输出服从k2次整数均匀采样的结构b。进一步地,当满足k1不小于k2时,可保证所述错误采样方法的标准差及等效标准差不小于\sqrt{1/2×k1+2/3×k2},从而保障所述错误采样方法的安全性优于同等条件下的二项分布采样。进一步地,当满足f×2^f/3^k2小于2k2时,可保证所述错误采样方法的效率达到2k1+f×2^f/3^k2,从而保障该错误采样方法的效率优于同等条件下的二项分布采样。本发明的用于格公钥密码的错误采样方法将两种不同的采样算法相互结合,当参数k1与k2选取适当时,可以达到效率和安全性的良好平衡,同时具有较大的灵活性;在保证安全强度的前提下,效率更高,参数选取范围更广,安全性计算(即标准差与等效标准差中的较小值)更加明确。附图说明图1为本发明实施例提供的用于格公钥密码的错误采样方法的流程图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1,本实施例提供一种用于格公钥密码的错误采样方法,该错误采样方法包括以下步骤:步骤一、接收输入的参数k1,k2,表示采样算法的结果需要运行k1次二项分布采样模块与k2次整数均匀采样模块;步骤二、利用二项分布采样模块,通过输入的2比特随机源产生的随机数,输出服从二项分布的整数a,例如:随机数输入分别为00/01/10/11时,输出分别为a=-1/0/0/1;步骤三、重复二项分布采样模块k1次,计算二项分布采样模块k1次输出之和a,例如:第i(i=1,…,k1)次调用二项分布采样模块输出为ai,计算a=a1+a2+…+ak1;步骤四、利用整数均匀采样模块,通过输入的比特随机源产生的随机数,如果以二进制表示的随机数的数值大于3^k2,则再次输入f比特随机源产生的随机数,直到产生以二进制表示的随机数的数值不大于3^k2的情况,根据该f比特随机源产生的随机数输出服从k2次整数均匀采样的结构b,例如:将上述随机数表示为k2个三进制的字串,统计其中0与2的个数分别为b0,b2,输出b=b2-b0;步骤五、输出采样结果s=a+bmodq。在上述错误采样方法的输入选取时,当满足k1不小于k2时,可保证标准差及等效标准差不小于\sqrt{1/2×k1+2/3×k2},从而保障安全性优于同等条件下(k=k1+k2)的二项分布采样;当满足f×2^f/3^k2小于2k2时可保证效率达到2k1+f×2^f/3^k2,从而保障效率优于同等条件下(k=k1+k2)的二项分布采样;此外,通过组合满足上述条件参数的k1和k2,可获得多种满足不同安全性和效率要求的采样算法,从而在效率、安全性及灵活性上均超过同等条件的二项分布采样与均匀整数分布采样。本实施例的用于格公钥密码的错误采样方法将两种不同的采样算法相互结合,当参数k1与k2选取适当时,可以达到效率和安全性的良好平衡,同时具有较大的灵活性;在保证安全强度的前提下,效率更高,参数选取范围更广,安全性计算(即标准差与等效标准差中的较小值)更加明确。此外,需要说明的是,本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域技术人员来说,本发明可有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1