预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN110299995A(43)申请公布日2019.10.01(21)申请号201910623907.6(22)申请日2019.07.11(71)申请人北京电子科技学院地址100070北京市丰台区富丰路7号(72)发明人杨亚涛黄洁润赵阳韩新光王安琦(51)Int.Cl.H04L9/08(2006.01)H04L9/14(2006.01)H04L9/32(2006.01)权利要求书2页说明书3页附图1页(54)发明名称一种基于RLWE支持国产密码算法的双向认证密钥协商方法与系统(57)摘要本发明公开了一种基于RLWE支持国产密码算法的双向认证密钥协商方法与系统,只需通过2轮交互就可以实现双向认证密钥协商的新模式,该模式的第1轮身份认证采用国密算法SM2加解密和签名验签模块实现,第2轮身份认证采用国密算法SM3哈希运算实现;同时,引入了掩盖因子对传输信息进行保护,具有身份隐私保护功能。本方案与已有方案相比,通信开销和计算开销很低,实现效率高,实用性较强,便于软硬件实现。CN110299995ACN110299995A权利要求书1/2页1.一种基于RLWE支持国产密码算法的双向认证密钥协商方法与系统,其特征在于,描述了一种基于RLWE的同时支持国产密码算法的双向认证密钥协商方法与系统,该模式依据设计原理对传统的密钥协商算法进行了一定的改进。通信双方客户端和服务端分别生成公私钥对(pk,sk),并对身份ID进行隐藏。初始计算后结合国密算法SM2、SM3进行2轮的身份认证来确保方案的安全性,只需经过2轮数据交互就能进行最后的密钥协商,该方案能够结合国密算法抵抗量子攻击,具有很高的效率与安全性。2.根据权利要求1所述的一种基于RLWE支持国产密码算法的双向认证密钥协商方法与系统,其特征在于,客户端和服务端双方分别用0~255的随机数发生器,随机采样32个整数元素作为种子seed。这个随机数发生器可以使用物理熵源。我们对随机采样得到的32字节的种子进行散列函数处理,这里使用的散列函数是我国的SM3算法,其中l表示输入数据的比特数,表示d输出数据的比特数。在密钥生成过程中,我们利用SM3算法对32字节的种子进行哈希运算得到一个64字节的数组z,即其中,z的数值范围同样是0~255。然后通过GenA()函数分别生成公私密钥对(pkc,skc)和(pks,sks)。3.根据权利要求1所述的一种基于RLWE支持国产密码算法的双向认证密钥协商方法与系统,其特征在于,在第1轮身份认证过程之前,客户端生成了认证标识Verc,即其中,sc,ee是ψ16域上的多项式,a是由种子变换得来的多项式,pks是服务端的公钥,Mc是通过对客户端的身份IDc进行SM3哈希运算得到的客户端的身份隐藏值,rc是引入的混淆因子。运算符表示两个多项式系数相乘,若s,e∈Rq,则:计算得到客户端的认证标识Verc后进入第1轮身份认证,客户端将认证标识Verc发送给服务端。4.根据权利要求1所述的一种基于RLWE支持国产密码算法的双向认证密钥协商方法与系统,其特征在于,在第1轮身份认证过程中,服务端验证客户端的身份,其中:(1)服务端收到Verc后,先用自身私钥sks对客户端的认证标识Verc进行解密,得到相应客户端的签名,即(2)用客户端的公钥进行验签,若验签成功,则服务端成功认证客户端的身份,然后进行接下来的认证与密钥协商;否则,认证失败,停止密钥协商算法。5.根据权利要求1所述的一种基于RLWE支持国产密码算法的双向认证密钥协商方法与系统,其特征在于,第1轮认证之后,服务端选取ψ16域上的多项式ss、es和es′进行运算。对服务端的身份IDs进行哈希运算,得到服务端的身份隐藏值Ms。计算得到bs,计算2CN110299995A权利要求书2/2页得到vs。对vs进行HelpRec()函数运算得到中间值r。为了对rs和bs进行保护,引入三个掩盖因子b、r和M,b是bc和bs的模2和,r是rc和rs的模2和,M是服务端与客户端的身份标识模2和:对Ms、bs和rs进行哈希运算,可以得到服务端的认证标识Vers,即Vers←H(Ms,bs,rs),服务端发送三个掩盖因子b、r、M和服务端的认证标识Vers给客户端。6.根据权利要求1所述的一种基于RLWE支持国产密码算法的双向认证密钥协商方法与系统,其特征在于,在第2轮认证过程中,客户端验证服务端的身份,其中:(1)先用身份标识M异或客户端本身的身份隐藏值Mc,得到服务端的身份隐藏值Ms。通过掩盖因子b和r与客户端本身求得的bc和rc分别执行异或操作,求得对应的bs和rs值,即(2)客户端对Ms、bs和rs进行SM3哈希运算,可以得到服务端的认证标识Vers,即V