System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及信息安全,尤其涉及一种ntru格上的merkle树认证密钥协商方法及装置。
技术介绍
1、随着科技的发展,电子商务与电子政务日益普及。对于许多互联网的用户而言,在某些具体的应用中,例如网络投票和网络支付,人们希望割断自己的身份与行为之间的联系,又希望能够认证通信对象的身份并确保传递信息的完整性和机密性。因此,在执行认证密钥协商协议时保护通信双方身份隐私,就是为这类密码任务而提出的。
2、然而,现有的ntru格上的认证密钥交换协议大都需要结合签名算法实现认证功能,而且需要三轮的交互协议,通信量较大。此外,大部分协议都没有考虑到用户的身份隐私保护的需求。
技术实现思路
1、本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
2、为此,本申请的第一个目的在于提出一种ntru格上的merkle树认证密钥协商方法。
3、本申请的第二个目的在于提出一种装置。
4、本申请的第三个目的在于提出一种电子设备。
5、本申请的第四个目的在于提出一种计算机可读存储介质。
6、本申请的第五个目的在于提出一种计算机程序产品。
7、为达上述目的,本申请第一方面实施例提出了一种ntru格上的merkle树认证密钥协商方法,包括:
8、根据预设的密钥生成算法分别生成第一通信方的第一长期公钥、第一长期私钥对以及第二通信方的第二长期公钥、第二长期私钥对,所述第一长期公钥和所述第二长期公钥均公开;
10、由所述第二通信方通过第二长期私钥解密所述第一密文并验证所述第一身份认证信息,若身份认证通过,生成第二共享会话密钥并将第二密文和第二身份认证信息至所述第一通信方;
11、由所述第二通信方通过第一长期私钥解密所述第二密文并计算第一共享会话密钥,若所述第二身份认证信息的身份认证通过,完成密钥协商。
12、可选的,在根据预设的密钥生成算法生成分别生成第一通信方的第一长期公钥、第一长期私钥对以及第二通信方的第二长期公钥、第二长期私钥对之前,还包括:
13、设定参数集合param={n,p,q,d},其中,n为多项式环的维度,p为小模数,用于生成私钥多项式,q为大模数,用于生成公钥并限制结果的范围,d为函数自变量;
14、将三元多项式生成函数l(d+1,d)标记为l,表示多项式环中具有d+1个系数为1,d个系数为-1,其余系数均为0的全体整系数多项式,且sampler(l,seed)表示利用l以及种子seed实例化后的离散高斯采样算法;
15、随机选取矩阵作为所述第一通信方和所述第二通信方的共享矩阵,供所述第一通信方和所述第二通信方在密钥协商过程中使用;
16、定义哈希函数ha(u0,u1)=bin(a0·u0+a1·u1mod q),用于生成身份认证信息,其中,a=[a0|a1],u0,u1表示给定的两个多项式
17、定义多项式环用于确保除了ha(·)哈希函数计算认证信息的特殊情况下,其他计算保持在固定环结构内。
18、可选的,所述密钥生成算法的长期密钥生成过程,包括:
19、输入参数集合param={n,p,q,d}和一个种子seed,种子seed用于随机采样生成多项式的过程;
20、根据离散高斯采样算法sampler(l,seed)随机生成一个多项式f;
21、根据多项式f计算私钥f,计算表达式为:
22、
23、其中,需要确保f在多项式环中是可逆的,如果不可逆,则重新生成多项式f并重复此步骤,直至f在多项式环中可逆后执行下一步骤;
24、根据离散高斯采样算法sampler(l,seed)再随机生成另外一个多项式g,并检查多项式g是否在多项式环中是不可逆的,如果多项式g可逆,则将多项式g进行自加g=g+g,直至多项式g不可逆;
25、计算长期公钥h,计算表达式为:
26、h=g/f(modq)
27、输出计算得到的长期公钥h与长期私钥对(f,g)。
28、可选的,所述响应于所述第一通信方发起身份认证请求并随机生成第一临时密钥,根据所述第一临时密钥和所述第二长期公钥生成第一密文和第一身份认证信息,并发送至所述第二通信方,包括:
29、所述第一通信方利用自身的第一身份信息ida和一个种子生成填充多项式ma-pad,用于隐藏身份信息,表达式为:
30、ma-pad=pad(ida,seed)
31、其中,所述第一通信方的第一身份信息ida与所述第二通信方的第二身份信息idb均在本地秘密保存,并不公开,且身份信息包含协议执行时本地的当前时间戳;
32、根据多项式ma-pad与第二长期公钥hb计算哈希值hash(ma-pad||hb),并从sampler(l,hash(ma-pad||hb))中选取随机多项式ra作为所述第一通信方的所述第一临时私钥;
33、利用所述第一临时私钥ra和所述第二长期公钥hb计算ra=ptahb,并将其作为所述第一身份认证信息的部分值u000;
34、从sampler(l,hash(ra))中选取掩码多项式ma-mask的多项式系数,用于生成ma-mask;
35、计算多项式差值ma=ma-pad-ma-mask(modp),并将其作为所述第一身份认证信息的另一部分认证信息u001;
36、根据哈希函数ha计算第一身份认证信息u00=ha(u000,u001);
37、计算第一密文
38、将所述第一身份认证信息和所述第一密文构成的消息发送给所述第二通信方。
39、可选的,所述由所述第二通信方通过第二长期私钥解密所述第一密文并验证所述第一身份认证信息,若身份认证通过,生成第二共享会话密钥并将第二密文和第二身份认证信息至所述第一通信方,包括:
40、通过第二长期私钥fb所述第一密文计算得到并将结果记为u′001=m′a,以及计算记r′a为u′000;
41、验证所述第一身份认证信息u00,使用哈希函数计算u′00=ha(u′000,u′001),若u′00=u00成立,则所述第一通信方的身份认证通过,且消息在传送过程中未被更改参数,消息具有完整性,否则,消息验证失败,所述第二通信方拒绝通信;
42、若身份认证成功,记m′a为u010,所述第二通信方根据自身的第二身份信息idb生成填充多项式mb-pad,表达式为:
43、mb-pad=pad(idb,seed)
44、根据多项式mb-pad与第一长期公钥ha计算哈希值hash(mb-pad||ha),本文档来自技高网...
【技术保护点】
1.一种NTRU格上的Merkle树认证密钥协商方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,在根据预设的密钥生成算法生成分别生成第一通信方的第一长期公钥、第一长期私钥对以及第二通信方的第二长期公钥、第二长期私钥对之前,还包括:
3.根据权利要求2所述的方法,其特征在于,所述密钥生成算法的长期密钥生成过程,包括:
4.根据权利要求3所述的方法,其特征在于,所述响应于所述第一通信方发起身份认证请求并随机生成第一临时密钥,根据所述第一临时密钥和所述第二长期公钥生成第一密文和第一身份认证信息,并发送至所述第二通信方,包括:
5.根据权利4所述的方法,其特征在于,所述由所述第二通信方通过第二长期私钥解密所述第一密文并验证所述第一身份认证信息,若身份认证通过,生成第二共享会话密钥并将第二密文和第二身份认证信息至所述第一通信方,包括:
6.根据权利要求5所述的方法,其特征在于,所述由所述第二通信方通过第一长期私钥解密所述第二密文并计算第一共享会话密钥,若所述第二身份认证信息的身份认证通过,完成密钥协商,
7.一种NTRU格上的Merkle树认证密钥协商装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
...【技术特征摘要】
1.一种ntru格上的merkle树认证密钥协商方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,在根据预设的密钥生成算法生成分别生成第一通信方的第一长期公钥、第一长期私钥对以及第二通信方的第二长期公钥、第二长期私钥对之前,还包括:
3.根据权利要求2所述的方法,其特征在于,所述密钥生成算法的长期密钥生成过程,包括:
4.根据权利要求3所述的方法,其特征在于,所述响应于所述第一通信方发起身份认证请求并随机生成第一临时密钥,根据所述第一临时密钥和所述第二长期公钥生成第一密文和第一身份认证信息,并发送至所述第二通信方,包括:
5.根据权利4所述的方法,其特征在于,所述由所述第二通信方通过第二长期私钥解密所述第一密文并验证所述第一身份认证信息,若身份认证通过,生成第二...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。