基于身份的两方跨域认证密钥协商协议
2020-03-18宁炳钦邓伦治
宁炳钦,邓伦治
(贵州师范大学 数学科学学院,贵州 贵阳 550025)
0 引言
随着网络规模的不断扩大,跨域通信及通信安全成为了研究的焦点。设计合适的跨域通信认证密钥协商方案是确保通信安全的有效手段。基于传统公钥证书的认证密钥协商方案的主要问题是存在身份管理。为了解决证书管理给系统带来的不便,Shamir[1]于1984年提出基于身份的公钥密码算法。在基于身份密码系统中,将用户的唯一身份标识作为用户的公钥,由密钥生成中心为每一位用户生成私钥并发放。王圣宝[2]利用双线性映射的方法,提出了一种基于身份的认证密钥协商协议,并在标准模型下证明了协议的安全性。但双线性映射运算往往比较耗时,因此该协议的计算效率有待提高。曹雪菲等[3]基于除法性计算Diffie-Hellman 假设,提出一种不使用双线性对的基于身份的认证密钥协商协议,但该协议不能抵抗临时密钥泄露安全。高志刚[4]和Chen[5]分别提出基于标准模型和随机预言模型的认证密钥协商协议,但执行过程中用到双线性对,计算效率不高。陈安林等[6]提出一种适用于移动自组网的基于身份的跨域两方认证密钥协商,并用Pi演算和pro-verif自动化验证工具证明了安全属性,但方案中使用了双线性对,计算效率不高。Sun[7]设计的基于身份的密钥协商协议安全性高且没有使用双线性映射,但协议执行过程中的计算效率有待提高。基于身份的密钥协商方案主要问题是密钥托管问题。为了解决密钥托管问题,Al-riyami[8]提出了无证书公钥密码体制。Zhang[9]和Ghoreishi等[10]分别基于无证书公钥密码系统构建了各自的密钥协商协议,虽然安全性较高,但无证书公钥密码体系构建比基于身份的公钥密码系统复杂。刘小琼等[11]构建了一个两方无证书跨域认证密钥协商协议,并采用了Pi演算法证明了协议的安全性,但协议中使用了双线性对,计算效率有待加强。陈红等[12]提出一个无线性对无证书两方跨域认证密钥协商协议,但方案在协商过程中出现错误,得不到相同的会话密钥。魏振宇等[13]提出基于PKI体系的跨域密钥协商协议,霍士伟[14]提出基于身份的Adhoc网络认证和密钥协商方案,虽然安全性高,但方案中使用公钥加密,数字签名等算法。且通过分析认为,只要经过合理的设计,基于身份也可以设计出无会话密钥托管的跨域认证密钥协商方案。
本文构建了一个安全有效的两方基于身份跨域认证密钥协商协议,并证明了协议的安全性。与其他同类方案的比较表明,新方案满足目前已知的安全属性,同时保证了良好的性能。
1 准备
本文涉及的预备知识主要有计算复杂性和密钥协商安全属性等知识。下面给出简要介绍。
1.1 计算复杂性假设
相关问题及假设
表1 给出本文用到的符号和说明Tab.1 Notations and corresponding descriptions
1.2 密钥协商协议的安全模型
文献[15]提出了基于身份的ECK模型中,添加了敌手攻击获取协议参与方的临时私钥与PKG主密钥的能力,从而使构造的协议有更强的安全性。模型中,该游戏分两个阶段:
阶段1:敌手可以以任何顺序进行以下查询。
PKGStaticKey Reveal:C把系统的主密钥发送给A。
Corrupt(i):A查询并获取长期私钥。
如果A认为第一阶段的查询结束了,则A选择一个新的会话,然后进行游戏的第二阶段,执行Test()查询。
定义3 新鲜会话。如果下面条件都不成立,则称是新鲜的。
2)对于协议参与者i,A同时进行查询Corrupt(i)和EphemeralKey Reveal(i)。
3)对于协议参与者j,A同时进行查询Corrupt(j)和EphemeralKey Reveal(j)。
定义4 安全性。当认证密钥交换协议达到以下条件,则称该协议是安全的。
2)对于任意的多项式敌手A,能够赢得游戏的概率是可以忽略的。
2 安全的跨域两方认证密钥协商方案
根据王真等[16]基于身份的移动互联网高效认证密钥协商协议推广到基于身份的两方跨域认证密钥协商协议。
3)密钥协商:用户A,B分别是系统中不同域需要进行认证密钥协商的两方。
③A收到信息后,A计算
④B收到消息后,B计算
4)方案的正确性:
=(rA+hAsA)tBP+tA(rB+hBsB)P
=tB(rA+hAsA)P+(rB+hBsB)tAP
=tB(RA+hAPpubA)+dBTA
=tAtBP+dA(rB+hBsB)P
=tBTA+dB(rA+hAsA)P
=tBTA+dB(RA+hAPpubA)
3 安全性证明
下面给出本文协议在ECK模型下的安全性证明,H1和H2由随机预言器模拟。
引理1 由于CDH问题是困难的,协议在A的攻击下是安全的。
3.1 A不知道IDI的长期私钥和IDJ的临时密钥
3.1.1 系统建立阶段
3.1.2 训练查询阶段
H1(ID*,R*)C维护一个初始化为空的列表LH1(ID*,R*,d*,h*)。A发送一个身份ID*给C,C按如下规则进行回答。
②否则,随机生成hk∈{0 ,1}k,并在列表LH2中加入元组
Corrupt(ID*)A发送一个身份ID*给C,C查询列表LH1。如果ID*在列表LH1中,则返回d*作为回答。如果ID*不在列表LH1,C先进行H1(ID*,R*)查询并获得d*,然后返回d*作为回答。当ID*=IDI,则返回⊥作为回答。
①如果T=⊥,若IDi∈PKGA,C在列表LH1中找到元组(IDi,Ri,di,hi),在列表LE中找到元组(IDi,ti,Ti),返回(Ti,Ri,PpubA)作为回答。
②如果T=(Ti,Ri,PpubA),如果IDj≠IDJ,C在列表LH1中找到元组
(IDj,Rj,dj,hj),在列表LE中找到元组(IDj,tj,Tj),返回(Tj,Rj,PpubB)作为回答;如果IDj=IDJ,C在列表LH1中找到元组(IDJ,RJ,dJ,hJ),在列表LE中找到元组(IDJ,⊥,vP),返回(vP,RJ,PpubB)作为回答。
⑤如果m≠W且IDi=IDI,IDj≠IDJ,C计算
⑧如果m=W且IDi=IDI,IDj≠IDJ,C计算
PKGstaticKey Reveal 如果A查询IDj,C返回SI作为回答;否则,C返回⊥。
3.1.3 测试阶段
3.2 A不道IDJ的长期私钥与IDI的临时密钥
情况与3.1类似。
3.3 A不知道IDI和IDJ的临时密钥
3.3.1 系统建立
3.3.2 训练查询阶段
①如果当T=⊥,若IDi∈PKGA,当IDi≠IDI,C在列表LH1中找到元组(IDi,Ri,di,hi),在列表LE中找到元组(IDi,ti,Ti),返回(TI,Ri,PpubA)作为回答;当IDi=IDI,C在列表LH1中找到元组(IDI,RI,dI,hI),在列表LE中找到元组(IDI,⊥,uP),返回(uP,RI,PpubA)作为回答。
②如果T=(Ti,Ri,PpubA),如果IDj≠IDJ,C在列表LH1中找到元组(IDj,Rj,dj,hj),在列表LE中找到元组(IDj,tj,Tj),返回(Tj,Rj,PpubB)作为回答;如果IDj=IDJ,C在列表LH1中找到元组(IDJ,RJ,dJ,hJ),在列表LE中找到元组(IDJ,⊥,vP),返回(vP,RJ,PpubB)作为回答。
⑤如果m≠W且IDi=IDI,IDj≠IDJ,C计算
⑧如果m=W且IDi=IDI,IDj≠IDJ,C计算
PKGstaticKey Reveal 若查询IDi,则将sa发给A,若查询IDj,将sb发给A。
3.3.3 测试阶段
3.4 A不知道IDI和IDJ的长期私钥
3.4.1 系统建立
C模拟定义中的游戏,在游戏中C回答A的所有询问,A进行的所有查询都不重复。C随机选1≤I≤n1和1≤J≤n1,1≤W≤n0。C随机选取U,V∈G1,设置PpubA=U=uP,设置PpubB=V=vP。
3.4.2 训练查询阶段
①如果T=⊥,若IDi∈PKGA,C在列表LH1中找到元组(IDi,Ri,di,hi),在列表LE中找到元组(IDi,ti,Ti),返回(Ti,Ri,PpubA)作为回答。
②如果T=(Ti,Ri,PpubA),C在列表LH1中找到元组(IDj,Rj,dj,hj),在列表LE中找到元组(IDj,tj,Tj),返回(Tj,Rj,PpubB)作为回答。
④如果m≠W且IDi≠IDI,IDj=IDJ,C计算
⑤如果m≠W且IDi=IDI,IDj≠IDJ,C计算
⑦如果m=W且IDi≠IDI,IDj=IDJ,C计算
⑧如果m=W且IDi=IDI,IDj≠IDJ,C计算
3.4.3 测试阶段
综合以上情况,攻击者赢得游戏的优势是可以忽略的,因此证明了方案的安全性。
4 与其他方案对比分析
将本文协议与文献[6,11]相比,比较结果见表3。为了能更清楚展示运行时间,通过在移动设备上使用一个著名的加密库(MIRACL)实施相关操作(三星Galaxy S5 与四核2.45G 处理器,2G 字节内存和谷歌 Android 4.4.2 操作系统)得到表2中的数据(文献[17])。
表2 相关运算的运行时间Tab.2 Runtime of relative operation
表3 与其他方案的比较Tab.3 Comparison with other schemes
5 结束语
本文结合基于身份的密码体系和认证密钥协商协议,设计了一种新的两方跨域认证密钥协商方案,并且在随机预言机模型下证明了方案的安全性。通过分析发现,在满足安全性的前提下,本文方案具有比较高的计算效率。