一种基于格的公钥加密方法技术

技术编号:21899193 阅读:61 留言:0更新日期:2019-08-17 18:32
本发明专利技术公开了一种基于格的公钥加密方法。本发明专利技术首先提出一类非对称模带错误学习(AMLWE)数学困难问题,也提供了该类数学困难问题的变种和一般化定义。通过基于AMLWE数学困难问题,本发明专利技术提出了一种格上选择明文安全的公钥加密方法。基于该加密方法,本发明专利技术也提供了选择密文安全的密钥封装机制以及选择密文安全的公钥加密方法。本发明专利技术设计的公钥加密方法和密钥封装机制具有可证明安全、抵抗量子计算机攻击、公钥和密文长度短、计算效率高、参数选取灵活等特点和优势。利用通用的转换方法,本发明专利技术也提供了(认证)密钥交换协议。

A Lattice-based Public Key Encryption Method

【技术实现步骤摘要】
一种基于格的公钥加密方法
本专利技术属于密码学中的公钥加密领域,涉及使用格密码学中的相关技术,具体表现为一种基于格的公钥加密方法,能抵抗量子计算机攻击。
技术介绍
公钥加密已在许多实际应用中得到广泛部署。根据Shor算法,当量子计算机出现时,已部署的基于RSA或椭圆曲线的公钥加密方法将不再安全。量子计算机的快速发展促使我们设计抗量子安全的公钥加密方法。当前,主流的抗量子安全公钥加密方法是基于格或者编码上的数学困难问题。从效率和安全性综合来看,基于格的公钥加密方法是相当有前途的候选方法之一,并得到了国内外学者的广泛研究。在数学中,格是一种离散的加法子群。由于特殊的代数结构,格上有很多难以求解的困难问题,例如最短向量问题。基于格的公钥加密方法是指基于格上数学困难问题设计的公钥加密方法,具有抵抗量子计算机攻击的能力。公钥加密方法的设计和安全性是建立在数学困难问题之上的。当前,格上公钥加密方法的安全性大多是建立在Regev提出的带错误学习问题(LearningwithErrors,LWE)的困难性之上。简单来说,带错误的学习问题与求解模整数方程有关系。令为正整数,为正实数,是以α为参数的噪音分布(通常为高斯分布,或与其相近的二项分布)。计算性带错误的学习问题LWEn,m,q,α目标是对于随机选择的矩阵向量以及噪音向量给定样本求解秘密向量判定性LWE问题是区分(A,b=As+e)和上均匀随机的元组。在一定参数下,判定性LWE问题和计算性LWE问题在多项式时间意义下是等价的。在特定参数下,求解LWE问题在平均情况下的复杂度比求解格上某些问题(例如,最短向量问题)在最坏情况下的复杂度还高。这种平均困难性到最坏困难性的联系特性实际上是基于格上困难问题的密码方法相对于基于其他困难问题的密码方法独有的优势之一。由于目前已知的格上困难问题的量子求解算法与传统经典求解算法相比在计算复杂度上并没有本质的降低,以至于大多数国内外研究学者都倾向于相信格上问题是困难的,以及基于格上困难问题设计的密码方法能够抵抗量子计算机攻击。此外,当秘密向量s并不是随机均匀地选自于时,相应LWE的变种问题(称之为正规形LWE问题)也是困难的。特别地,当秘密向量与噪音向量e选自于相同的分布时,正规形LWE问题和标准的LWE问题在多项式时间的意义上是等价的。由于正规形LWE问题能够更好地控制噪音增长,因此在文献中被广泛用于设计公钥加密方法。为了获得更好的效率,环上的LWE(RLWE)困难问题也被提出。RLWE问题定义在n-1次多项式环Rq上。给定正实数以及定义RLWE分布为计算性RLWE数学困难问题RLWEn,q,l,α是指随机选取在有l个样本的条件下计算出秘密值判定性RLWE数学困难问题的目标是区分分布Bs,α和上的均匀分布。然而,RLWE问题使用了特殊的环结构,而这种环结构可能被敌手利用来求解相应的数学困难问题。从而,为了安全性和效率的折中,模LWE(MLWE)数学困难问题被密码研究者提出。给定正整数以及正实数对于随机选取的矩阵和向量计算性MLWE问题MLWEn,q,k,l,α的目标是给定样本输出秘密向量判定性MLWE问题的目标是区分样本(A,b=As+e)和选自于上均匀分布的元组。
技术实现思路
针对当前公钥加密技术中存在的不足,本专利技术的目的在于提供一种基于格的公钥加密方法。本专利技术包括以下四个方面的内容:1)定义非对称MLWE(即AMLWE)数学困难问题;2)基于所述AMLWE数学困难问题设计一种基于格的公钥加密方法,并给出AMLWE数学困难问题的变种AMLWE-R;3)利用所述公钥加密方法设计高效的密钥封装机制以及密钥交换协议;4)提出AMLWE和AMLWE-R数学困难问题的一般化定义。本专利技术的技术方案为:一种基于格的公钥加密方法,其特征在于,包括以下步骤:·定义AMLWE数学困难问题:对于正整数正实数满足α1≠α2,给定随机的矩阵和向量计算性AMLWE数学困难问题的目标是给定样本输出秘密向量对于随机的矩阵和向量判定性AMLWE数学困难问题的目标是将样本(A,b=As+e)和选自于上均匀分布的元组区分开;其中Rq是定义在上次数为n-1的多项式环,当n=1时定义表示正整数集合,表示正实数集合,表示以α1为参数的噪音分布,表示以α2为参数的噪音分布;·基于所述AMLWE数学困难问题,提出格上公钥加密方法,用公钥对明文进行加密获得密文,用私钥解密密文获得明文。进一步的,基于格的公钥加密方法由8个正整数参数来实例化,包括:密钥生成方法PKE.KeyGen(1κ)根据安全参数κ生成公钥pk和私钥sk;加密方法PKE.Enc(pk,μ;r)根据公钥pk和随机数r对明文μ加密输出密文c;解密方法PKE.Dec(sk,c)根据私钥sk对密文c进行解密输出明文μ。进一步的,密钥生成方法PKE.KeyGen(1κ)包括以下步骤:1)随机选取种子ρ←{0,1}n,计算2)随机选取和计算和其中对于任意正整数模切换函数3)输出公钥pk和私钥sk=s。进一步的,加密方法PKE.Enc(pk,μ;r)包括以下步骤:1)根据公钥明文消息μ∈{0,1}n和随机数计算2)选择计算u:=ATr+e1和3)计算和4)输出密文进一步的,解密方法PKE.Dec(sk,c)包括以下步骤:1)根据私钥sk=s和密文计算2)计算μ:=Switchq→2(z);3)输出明文μ。进一步的,通过调整参数(η1,η2)来达到公钥加密方法安全性和正确性的最佳平衡,具体调整方法为:通过减小η1的值提高公钥加密方法的正确性,增大η2的值提高公钥加密方法的安全性。进一步的,公钥加密方法扩展为以下基于格的密钥封装机制,其包括以下子方法:1)密钥生成方法KEM.KeyGen(1κ)根据安全参数κ生成公钥pk和私钥sk,其包括以下步骤:a)随机选取z←{0,1}n;b)执行(pk,sk′):=PKE.KeyGen(1κ);c)输出公钥和私钥sk=(sk′,pk,H1(pk),z);2)封装方法KEM.Encaps(pk)用公钥pk封装一个密钥K并输出一个密文c,其包括以下步骤:a)均匀随机选取μ←{0,1}n,计算μ′:=H1(μ);b)计算c)计算c:=PKE.Enc(pk,μ′;r);d)计算e)输出密文c和封装的密钥K。3)解封装方法KEM.Decaps(sk,c)根据私钥sk=(sk′,pk,H1(pk),z)对密文c进行解封装和获得密钥K,其包括以下步骤:a)计算μ′:=PKE.Dec(sk,c);b)计算c)计算c′:=PKE.Enc(pk,μ′;r′);d)如果c=c′,那么输出否则输出K:=H1(z||H1(c))。进一步的,定义AMLWE问题的变种,即AMLWE-R数学困难问题,保证公钥加密方法在抗明文信息泄露方面的安全性:对于和正整数p>1、正实数满足α1≠α2,给定随机选取的和判定性AMLWE-R数学困难问题的目标是将样本和均匀随机选取的元组区分开,其中以及v←Rq都是均匀随机选取的值;计算性AMLWE-R数学困难问题是给定样本求解秘密向量s。一种基于格的公钥加密方法,其特征在于,定义一般化AMLWE数学困难问题如下:对于正整数正整数以及不是全部相同的正实数给定随机选取的矩阵秘密向本文档来自技高网
...

【技术保护点】
1.一种基于格的公钥加密方法,其特征在于,包括以下步骤:1)定义AMLWE数学困难问题:对于正整数n,q,k,

【技术特征摘要】
2019.04.19 CN 20191031666601.一种基于格的公钥加密方法,其特征在于,包括以下步骤:1)定义AMLWE数学困难问题:对于正整数n,q,k,正实数α1,满足α1≠α2,给定随机的矩阵和向量计算性AMLWE数学困难问题的目标是给定样本输出秘密向量对于随机的矩阵和向量判定性AMLWE数学困难问题的目标是将样本(A,b=As+e)和选自于上均匀分布的元组区分开;其中Rq是定义在上次数为n-1的多项式环,当n=1时定义表示正整数集合,表示正实数集合,表示以α1为参数的噪音分布,表示以α2为参数的噪音分布;2)基于所述AMLWE数学困难问题,提出格上公钥加密方法,用公钥对明文进行加密获得密文,用私钥解密密文获得明文。2.如权利要求1所述的方法,其特征在于,基于格的公钥加密方法由8个正整数参数n,k,q,η1,η2,du,dv,来实例化,包括:密钥生成方法PKE.KeyGen(1κ)根据安全参数κ生成公钥pk和私钥sk;加密方法PKE.Enc(pk,μ;r)根据公钥pk和随机数r对明文μ加密输出密文c;解密方法PKE.Dec(sk,c)根据私钥sk对密文c进行解密输出明文μ。3.如权利要求2所述的方法,其特征在于,密钥生成方法PKE.KeyGen(1κ)包括以下步骤:1)随机选取种子ρ←{0,1}n,计算2)随机选取和计算和其中对于任意正整数p,模切换函数对于正整数和η∈{η1,η2},Bη表示以正整数η为参数的中心二项分布,表示每个分量取自分布Bη构成的k维向量;3)输出公钥和私钥sk=s。4.如权利要求3所述的方法,其特征在于,加密方法PKE.Enc(pk,μ;r)包括以下步骤:1)根据公钥明文消息μ∈{0,1}n和随机数计算2)选择计算u:=ATr+e1和3)计算和4)输出密文5.如权利要求4所述的方法,其特征在于,解密方法PKE.Dec(sk,c)包括以下步骤:1)根据私钥sk=s和密文计算2)计算μ:=Switchq→2(z);3)输出明文μ。6.如权利要求5所述的方法,其特征在于,通过调整参数(η1,η2)来达到公钥加密方法安全性和正确性的最佳平衡,具体调整方法为:通过减小η1的值提高公钥加密方法的正确性,增大η2的值提高公钥加密方法的安全性。7.如权利要求6所述的方法,其特征在于,公钥加密方法扩展为以下基于格的密钥封装机制,其包括以下子方法:1)密钥生成方法KEM.KeyGen(1κ)根据安全参数κ生成公钥pk和私钥sk,其包括以下步骤:a)随机选取z←{0,1}n;b)执行(pk,sk′):=PKE.KeyGen(1κ);c)输出公钥pk和私钥sk=(sk′,pk,H1(pk),z);2)封装方法KEM.Encaps(pk...

【专利技术属性】
技术研发人员:张江郁昱范淑琴张振峰杨糠
申请(专利权)人:北京信息科学技术研究院
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1