5G网络中D2D安全动态群组认证和密钥协商协议 [PDF全文]
(1东南大学网络空间安全学院,南京 210096)

为了解决5G网络中设备到设备(D2D)的群组通信中常见的安全威胁,提出了确保D2D安全通信的动态群组认证和密钥协商(DG-AKA)协议方案.结果表明:该方案基于CDH假设难题实现了安全的认证,使得非法用户无法伪造签名; 基于MDBDH假设难题并结合安全认证过程实现了安全的密钥协商,使得非法用户或核心网络无法获取共享会话密钥,保证了密钥的安全性,解决了密钥托管问题; 结合认证和密钥协商过程实现了安全的动态群组成员管理以保证群组前向和后向安全,当群组成员被撤销或新成员加入时,无需重新执行全部协议,即能安全地更新会话密钥.安全性分析证明了DG-AKA协议方案满足所有安全性目标,效率分析则表明了该方案具有和现有方案同等数量级的运行效率.

Dynamic group authentication and key agreement protocol for D2D secure communication in 5G networks
Cheng Xianbing1,Jiang Rui1,Pei Bei2,Wu Songyang2
(1School of Cyber Science and Engineering, Southeast University, Nanjing 210096, China)(2Key Lab of Information Network Security, Ministry of Public Security, Shanghai 200031, China)

To solve common secure challenges in device-to-device(D2D)group communication in 5G networks, a dynamic group-authentication and key agreement(DG-AKA)protocol scheme for ensuring D2D secure communication was proposed. The results show that the security authentication can be implemented based on the Diffie-Hellman(CDH)hypothesis problem, so illegal users cannot forge signatures. Based on the MDBDH hypothesis problem and the security authentication process, a secure key agreement can be implemented, preventing illegal users or the core network to obtain the shared session key, thus the security of the key is ensured and the key escrow problem is solved. Combined with the authentication and key agreement process, a secure dynamic group member management can be implemented to ensure the group forward and backward secrecy. When group members are revoked or new members join the system, the session key is safely updated without re-executing the entire protocol. The security analysis proves that DG-AKA protocol scheme meets all safety objectives, and the efficiency analysis shows that the scheme has the same order of operation efficiency as the existing schemes.

引言

为了适应无线通信服务的多样化和普遍接入的发展趋势,5G无线网络通过与LTE-A、WLAN以及其他无线接入技术相结合,成为一种高密度的异构网络.高密度5G异构网络在增加网络容量方面起着重要作用.然而,复杂的宏蜂窝和微蜂窝网络之间的相互干扰限制了通信容量的增加.D2D通信作为流量卸载技术,可以直接在临近设备之间进行通信,从而减轻基站承载网络流量的负担.文献[1-6]表明D2D通信能够大幅度提高频谱利用率,具有较低的通信时延,以及适应更加复杂通信环境(如应急通信、物联网通信等)的能力.IEEE 802.11、802.15标准为D2D通信提供了许多协议,例如Wi-Fi、LTE和Bluethooth.然而这些协议使用在不同的无线设备中,使得D2D通信面临严重的安全威胁.

在许多D2D通信场景中安全是十分重要的,如移动支付、无线局域网中个人医疗信息的传输、车联网中的车辆信息以及智能家居等.而身份认证和密钥协商方案可以帮助D2D用户建立安全的通信渠道.因此研究适用于D2D通信的安全认证和密钥协商协议具有十分重要的意义.

近年来,越来越多的研究[7-19]集中在D2D通信的安全认证和密钥协商协议上,其中文献[7-15]主要解决2个用户间的D2D安全认证和密钥协商问题.文献[7]提出了一个基于异或的安全密钥分发方案,然而基于异或的密钥很容易被提取,所以该方案不能保证安全的D2D通信.文献[8]提出了一个通过WiFi直连的共享密钥建立方案,该方案通过Diffie-Hellman密钥交换机制保证安全的密钥分发,然而该方案并没有实现真正的相互认证过程,容易遭到消息篡改或假冒等攻击.文献[9]提出了一个不需要核心网络参与的安全密钥交换方案,该方案能够抵御中间人攻击.文献[10]提出了一个适用于漫游场景的D2D通用身份认证和密钥协商协议,然而该方案要求访问网络(VN)大量参与D2D通信过程. 文献[11]提出了一种基于属性的D2D通信方案,该方案将可信协商过程建模为一个0/1背包问题,然后基于同态加密技术进行安全计算,以确保D2D通信的安全性.文献[12]提出了一种轻量级的基于无证书广义签密技术的安全感知D2D辅助数据传输协议,该协议适用于医疗健康系统,以满足对敏感信息保护的更高要求.文献[13]提出了一种安全的数据共享协议方案,该方案借助于基站(eNB)在D2D用户之间实现了相互认证和安全的数据传输,然而eNB的过度参与导致整个系统存在局限性和单点故障.文献[14-15]提出了2个实现安全和匿名的D2D群组通信协议,但是这2个协议仅仅使用2个用户之间群组信息的匿名性来解决安全的D2D通信问题,并不适用于安全的D2D群组通信.

在D2D通信中,研究群组通信的安全认证和密钥协商协议更具必要性.群组通信可以帮助用户建立基于群组的服务,如多人游戏、多人聊天和智能家居等.文献[16]提出了一个适用于D2D群组通信的认证和密钥协商方案(简称方案1),该方案可以在不需要核心网络的情况下,进行群组密钥协商.然而,由于该方案在密钥协商过程中需要同时传递用户公钥以及由私钥生成的签名,因此攻击者可以通过替换用户公钥,然后篡改协商信息并利用自己的私钥签名,最后发送给接收方,以此达到欺骗的目的.文献[17]提出了一个安全的D2D群组认证和密钥协商方案(简称方案2),该方案利用多项式来分发密钥,每个用户利用自己的身份信息来计算多项式参数,然后将参数代入多项式进行计算来提取会话密钥.然而,在群组成员动态管理的过程中,基于多项式的密钥更新方式并不能保证安全的会话密钥更新,离开的用户仍然能够计算出新的会话密钥.文献[18]提出了2个具有隐私保护的认证和密钥协商方案PPAKA-HMAC和PPAKA-IBS(简称方案3),这2个方案均适用于安全的D2D群组通信,但是在动态群组成员管理的过程中,必须依赖于安全信道,导致方案的实用性降低.文献[19]提出了一种适用于医疗物联网中D2D通信的群组密钥协商方案(简称方案4),该方案使用秘密共享的方式分发密钥,但该方案不能实现动态的群组成员管理,在群组成员发生变化时,不能及时更新会话密钥,无法保证群组前向和后向安全.

目前已有的D2D动态群组认证和密钥协商协议方案仍存在一些问题.其中,方案1没有实现安全的身份认证,攻击者能够伪造认证消息从而欺骗用户.其次,在密钥托管问题上,方案2和方案4的会话密钥是由核心网络生成和管理的,一旦核心网络被攻击,用户数据将被泄露.最后,在群组成员动态管理上,方案2、方案3和方案4没有真正实现安全动态群组管理,密钥更新过程极易被攻击或需要通过安全信道实现.

因此,为了解决上述安全问题,本文提出一个5G网络中D2D安全动态群组认证和密钥协商(DG-AKA)协议方案.在DG-AKA协议方案中,D2D群组成员在服务网络(SN)的协助下,进行相互认证并协商出一个共享会话密钥,从而实现安全的认证和密钥协商,并且可实现群组成员的动态管理.

1 预备知识1.1 定义

定义1(双线性对)[20] 定义G0和G1是有着相同素数阶q的乘法循环群,映射e:G0×G0→G1称为双线性对,满足如下性质:

1)双线性.g0,g1∈G0,a,b∈Z*q,有e(ga0,gb1)=e(gb0,ga1)=e(g0,g1)ab.

2)非退化性.g0,g1∈G0\{1},e(g0,g1)≠1.

3)可计算性.g0,g1∈G0,e(g0,g1)可以在群G1中得到有效的计算.

定义2(计算Diffie-Hellman(CDH)假设)[21]

设G0是一个素数阶q的乘法循环群,g是生成元.随机选择a,b∈Z*q,并公开ga,gb∈G0,以此计算gab是困难的.

对于任何多项式时间敌手A,将其针对CDH问题的优势定义为ε1=〖JB<1|〗Pr[A(g,ga,gb)=gab]〖JB>1|〗,当ε1在一个多项式时间内可忽略时,CDH假设成立.

定义3(判定双线性Diffie-Hellman(DBDH)假设)[22] 定义e:G0×G0→G1是一个双线性对,g是群G0中一个生成元,且随机选择a,b,c,d∈Z*q,并公开ga,gb,gc∈G0,以此区分(g,ga,gb,gc,e(g,g)abc)和(g,ga,gb,gc,e(g,g)d)是困难的.

设F为0-1函数,它对于区分上述2个元组的优势为ε2=〖JB<1|〗Pr[F(e(g,g)abc)=0]-Pr[F(e(g,g)d)=0]〖JB>1|〗,当ε2在一个多项式时间内可忽略时,DBDH假设成立.

定义4(变性的判定双线性Diffie-Hellman(MDBDH)假设)[21] 定义e:G0×G0→G1是一个双线性对,g是群G0中一个生成元,且随机选择a,b,c,d,s∈Z*q并公开ga,gb,gc,gs,gsa,gsb,gsc∈G0,以此区分(g,ga,gb,gc,gs,gsa,gsb,gsc,e(g,g)abc)和(g,ga,gb,gc,gs,gsa,gsb,gsc,e(g,g)d)是困难的.

设F为0-1函数,它对于区分上述2个元组的优势为ε3=〖JB<1|〗Pr[F(e(g,g)abc)=0]-Pr[F(e(g,g)d)=0]〖JB>1|〗,当ε3在一个多项式时间内可忽略时,MDBDH假设成立.

1.2 群组前向和后向安全

定义5(群组前向安全)对于一个已存在的群组,当有新用户加入并建立新的群组后,新加入的成员无法获取原群组的会话密钥.即对于任何多项式时间敌手A,定义ε4=AdvDG-AKA-fsA(t,qE,qS)为敌手在执行qE次Execute询问和qS次Send询问后获得加入群组并获得会话密钥的最大优势.当ε4在一个多项式时间t内可忽略时,则满足群组前向安全.

定义6(群组后向安全)对于一个已存在的群组,当有成员被撤销,未撤销的成员构建新的群组,并更新会话密钥,离开的用户无法获取新的会话密钥.即对于任何多项式时间敌手A,定义ε5=AdvDG-AKA-bsA(t,qE,qS)为敌手在执行qE次Execute询问和qS次Send询问后获得更新会话密钥的最大优势.当ε5在一个多项式时间t内可忽略时,则满足群组后向安全.

2 DG-AKA协议方案2.1 系统模型

在DG-AKA协议方案中有D2D用户和SN两种不同的实体,其系统通信模型如图1所示.为便于理解,只给出了3个用户(U1、U2、U3)之间的系统模型,但它同样适用于3个以上用户的场景.D2D通信中用户与用户之间直接进行相互认证和密钥协商,从而得到D2D群组会话密钥.SN是一个用于用户身份管理、密钥管理以及D2D通信管理的机构,它负责为用户生成临时身份和公/私钥对,并帮助用户相互之间建立D2D通信会话.

图1 系统模型

图1 系统模型

2.2 安全模型

1)参与者.每个用户Ui有一个真实的身份Qi,其中i=1,2,…,n.假设有一组用户G={U1,U2,…,Un}.

在安全模型中,允许每个用户Ui∈G可以与不同用户之间多次执行协议.用ΠπUi表示用户Ui第π次执行协议的实例.

2)初始化.在这个阶段,每个用户Ui∈G获得一个公私钥对(PKi,SKi)和一个唯一的临时身份Ti.每个用户均可以获得系统参数和D2D会话列表L={T1,T2,…,Tn}.

3)敌手模型.本方案的安全性和敌手的能力有关,假设一个多项式时间敌手Α完全控制通信信道,并且可以询问任何实例.Α可以自适应地询问以下预言机:

① Extract(TU).该预言机允许敌手获取与用户U临时身份TU相关的长期密钥,其中,TUL.

② Execute(L*).该预言机对被动攻击进行建模,允许敌手窃听用户集合L*中用户之间的协议执行过程,并记下它们诚实执行协议的全部记录.

③ Send(ΠπUi,M).该预言机对主动攻击进行建模,它允许敌手发送消息M给实例ΠπUi.在接收到来自敌手的询问后,该预言机将返回由ΠπUi生成的回复.

④ Corrupt(Ui).该预言机对揭示长期密钥攻击进行建模,它允许敌手向Ui发出询问,当Ui接收到询问后,该预言机返回Ui的长期密钥.

在敌手模型中,敌手Α可以通过2种攻击方式获得优势: ①敌手伪造认证消息或冒充合法用户; ② 获取会话密钥且不修改协议中的任何消息.因此,敌手Α获得的优势为AdvDG-AKAA(t,qE,qS)=PrA[Forge]+PrA[~Forge],其中AdvDG-AKAA(t,qE,qS)表示敌手在多项式时间t内发出qE次Execute询问和qS次Send询问后赢得的优势,PrA[Forge]表示敌手成功伪造认证消息的概率,PrA[~Forge]表示敌手在不修改任何消息的情况下成功获取会话密钥的概率.

2.3 具体方案

本文提出的DG-AKA协议方案有系统初始化、用户注册、安全D2D发现、会话请求、会话建立、动态群组成员管理6个阶段.

2.3.1 系统初始化

SN选择2个拥有相同素数阶q的乘法循环群G0、G1及一个G0的生成元g,设e:G0×G0→G1是一个双线性对,H1:{0,1}*→Z*q和H2:{0,1}*→G0是2个安全的单向Hash函数.随后SN选择一个随机数α∈Z*q作为系统的主密钥,计算Kpub=gα作为系统的公钥.最后发布系统参数{G0,G1,e,H1,H2,g,q,Kpub}.

2.3.2 用户注册

用户向SN发送身份信息Qi请求注册.在接收到请求信息后,SN为用户生成一个临时身份Ti∈{0,1}*,然后计算PKi=H2(Ti)作为用户的公钥,并计算用户私钥SKi=PKαi.最后SN通过安全信道向用户Ui发送临时身份Ti和密钥对(PKi,SKi).

2.3.3 安全D2D发现

用户注册完成后,利用各自的临时身份进行D2D发现.首先用户Ui选择一个随机数ri∈Z*q,计算Vi=gri,并生成请求信息Mi=sreq‖Ti‖Vi,其中sreq表示对特定D2D服务的请求,随后计算签名σi=PKriiSKH1(Mi)i,最后将{Mii}广播出去.在接收到用户Ui的广播消息后,临近用户验证等式e(σi,g)=e(ViKH1(Mi)pub,PKi)是否成立,若等式成立,则将Ti加入到D2D会话列表,并保存PKi.假设有n个D2D用户U1、U2、…、Un通过上述D2D发现过程发现彼此,则每个用户最终获得D2D会话列表L={T1,T2,…,Tn}.

2.3.4 会话请求

用户Ui在获得D2D会话列表后,向SN发送D2D会话请求信息Lreqi={T1,T2,…,Tn}.当SN接收到所有的请求后,检查请求信息中用户身份是否为合法注册身份,若不是则拒绝D2D会话请求.如果验证成功,SN为所有合法用户创建一个D2D群组会话,选择一个随机数rsid∈Z*q作为会话标识.随后SN根据用户身份创建一个环形群组结构R0={T1,T2,…,Ti,…,Tn},其中每个用户Ui都有一对邻居Ui-1和Ui+1,U0=Un,Un+1=U1.最后SN将{rsid,R0}广播出去.

2.3.5 会话建立

用户接收到来自SN的会话响应消息后,进行2轮相互认证和密钥协商过程,得到共享会话密钥.

1)首先用户Ui生成一个随机的秘密数xi∈Z*q,并计算V1i=Pi=gxi,生成第1次协商信息M1i=rsid‖Pi‖Ti‖0.随后用户Ui为消息M1i生成一个签名σ1i=PKxiiSKh1ii,其中h1i=H1(M1i).最后用户Ui将{M1i1i}发送给用户Ui-1、Ui-2和Ui+1,其中U0=Un,U-1=Un-1,Un+1=U1.

2)用户Ui接收到Uj发送来的第1次协商信息,其中j=i-1,i+1,i+2,执行以下步骤:

① 验证M1j中的rsid是否和用户Ui持有的rsid相同.若相同,则继续; 否则终止.

② 验证Tj是否为合法注册身份,以及序列参数是否为“0”.若是,则继续; 否则终止.

③ 当接收到用户Ui-1、Ui+1和Ui+2的消息后,计算h1j=H1(M1j).

④验证等式e(σ1j,g)=e(V1jKh1jpub,PKj)是否成立,若等式成立,则继续; 否则,向验证不通过的用户发出重新连接请求.

⑤ 认证成功后,用户Ui首先计算Yi=e(Pi+1,(Pi+2/Pi-1)xi),然后选择一个随机数ki∈Z*q,并计算V2i=gki,生成第2次协商信息M2i=rsid‖Yi‖Ti‖V2i‖1.随后用户Ui为消息M2i生成一个签名σ2i=PKkiiSKh2ii,其中h2i=H1(M2i).最后Ui将{M2i2i}广播出去.

3)用户Ui接收到Uw发送来的第2次协商信息,其中w=1,2,…,i-1,i+1,…,n,执行以下步骤:

① 验证M1w中的rsid是否和用户Ui持有的rsid相同.若相同,则继续; 否则终止.

② 验证Tw是否为合法注册身份,以及序列参数是否为“1”.若是,则继续; 否则终止.

③ 当接收到所有用户的消息后,计算h2w=H1(M2w).

④ 验证等式e(σw,g)=e(V2wKh2wpub,PKw)是否成立,若等式成立, 则继续; 否则,向验证不通过的用户发出重新连接请求.

⑤ 认证成功后,Ui计算会话密钥Ki的过程为

ki-1,i,i+1=e(Pi+1,Pxii-1)

ki,i+1,i+2=ki-1,i,i+1Yi

ki-2,i-1,i=ki-3,i-2,i-1Yi-2

Ki=k1,2,3k2,3,4…kn,1,2=

e(g,g)x1x2x3+x2x3x4+…+xnx1x2

4)在上述会话建立过程中,若用户Ui未接收到全部协商信息,则将未发送协商信息的用户身份T加入到失败信息列表Lfaili中,并发送给SN.若SN接收到多个来自不同用户的失败信息,则将失败信息列表中对应身份的用户从D2D群组中移出,并重新生成会话标识和构建新的环形群组结构,然后发送给正常用户,最后群组中的用户再执行会话建立过程.

2.3.6 动态群组成员管理

群组中成员可能会发生变动,如用户撤销或加入.为了确保群组内的通信安全,需要对群组会话密钥进行更新.如果每次变动都重新进行一轮完整的协议过程,将增加通信开销和计算开销,降低用户的使用体验,因此实现动态的群组成员管理方案十分必要.具体过程如下.

1)用户撤销管理

当一个或多个用户被撤销时,设G-={Ul1,Ul2,…,Ulm}为被撤销的用户集合,其中{l1,l2,…,lm}{1,2,…,n}.设G'={Ul1-2,Ul1-1,Ul1+1,…,Ulm-2,Ulm-1,Ulm+1}为与撤销用户相邻的用户集合.SN构建新群组结构R-new={Tlm+1,Tlm+2,…,Tln},其对应的用户集合为G-new,其中{lm+1,lm+2,…,ln}{1,2,…,n}.SN将R-new发送给群组成员,然后群组成员执行以下过程来更新会话密钥.

① 用户Ui1∈G',选择一个新的随机秘密值xi1∈Z*q,计算Pi1=gxi1,然后按照会话建立第1轮的过程生成第1次协商信息和签名{M1i11i1},并依照新的群组结构R-new发送给相邻的3个用户.

② 当用户Ui2∈G-new接收到第1次协商信息后,若验证签名通过,则按照会话建立第2轮的过程生成第2次协商信息和签名{M2i22i2},然后广播出去.

③ 当用户集合G-new中的用户接收到第2次协商信息后,首先验证其签名,若验证通过,则更新会话密钥为

K-=e(g,g)xlm+1xlm+2xlm+3+xlm+2xlm+3xlm+4+…+xlnxlm+1xlm+2

2)用户加入管理

当只有一个用户加入群组时,新加入的用户Un+1与原群组中的用户Un执行以下过程来更新会话密钥:

① 用户Un+1与用户Un执行2个用户之间的Diffie-Hellman密钥交换协议,从而更新会话密钥为

K+=gxn+1H1(KGn)

式中,xn+1为Un+1选择的随机秘密值; KGn表示原群组的会话密钥.

② 用户Un利用原群组会话密钥加密新的会话密钥K+并广播出去.群组成员接收到消息后解密即可获得更新后的会话密钥.

当多个用户加入群组时,设G+={Un+1,Un+2,…,Un+m}为新加入的用户集合.SN为用户构建群组结构R+new={Tn,Tn+1,Tn+2,…,Tn+m},其对应的用户集合为G+new={Un,Un+1,…,Un+m}.SN将R+new广播出去,然后群组成员执行以下过程来更新会话密钥:

① 用户Ui3∈G+new选择一个随机秘密值xi3∈Z*q,计算Pi3=gxi3,其中xn=H1(KGn).然后按照会话建立第1轮的过程生成第1次协商信息和签名{M1i31i3},并依照群组结构R+new发送给相邻的3个用户.

② 当用户Ui3∈G+new接收到第1次协商信息后,若验证签名通过,则按照会话建立第2轮中的方式生成第2次协商信息和签名{M2i32i3},然后广播出去.

③ 用户集合G+中的用户在接收到第2次协商信息后,首先验证其签名,若验证通过,则更新会话密钥为

K+=e(g,g)xnxn+1xn+2+…+xn+m-1xn+mxn+xn+mxnxn+1

④ 用户Un利用原群组会话密钥加密新的会话密钥K+并广播出去.原群组成员接收到消息后解密即可获得更新后的会话密钥.

3 DG-AKA协议方案的安全性分析3.1 安全认证

定理1 DG-AKA协议方案可以实现安全认证.

证明 用户相互认证的过程中,发送方Ui发送协商信息和签名{Mii},其中σi=PKxiiSKH1(Mi)i,Vi=gxi,xi为用户选择的随机秘密数.接收方在接收到消息后,通过验证等式e(σi,g)=e(ViKH1(Mi)pub,PKi)来确认发送方Ui的身份.其正确性如下所示:

e(σi,g)=e(PKxiiSKH1(Mi)i,g)=

e(PKxii,g)e(SKH1(Mi)i,g)=

e(PKi,gxi)e(PKi,gαH1(Mi))=

e(PKi,Vi)e(PKi,gαH1(Mi))=

e(ViKH1(Mi)pub,PKi)

接下来证明本文认证过程的安全性,可以通过引理1推出.

引理1 在随机预言机模型下,若存在一个敌手A能够在多项式时间t内进行qH1和qH2次对散列函数H1和H2的询问、qE次Extract询问和qS次Send询问且以ε的优势赢得游戏,则存在一个算法,能够在多项式时间t'内以ε'≥ε(1-1/qE)/q的优势解决CDH问题.

证明 首先根据A构造一个算法C,它把A作为子程序并扮演A的挑战者.C接收一个随机的CDH问题实例(g,ga,gb),a,b∈Z*q,g∈G0,其目标是计算gab.

1)初始化.C设定Kpub=ga,a是系统的主密钥,且C不知道a.C生成系统参数{G0,G1,e,H1,H2,g,q,Kpub}并发送给A.

2)阶段1.A接收到系统参数后,向C进行如下询问和挑战.

① H2询问.A向C发出H2(T*)询问,T*为被询问的用户身份,C返回一个公钥PK*=gb.对于所有的H2询问,C选择一个随机数ri∈Z*q,并将〈Ti,ri,PKi〉插入到表L2中,然后把PKi=gri发送给A.

② Extract询问.A向C发出Extract(Ti)询问,如果PKi=PK*,那么C输出FAIL,然后终止模拟程序.否则,C在表L2中找出一个三元组〈Ti,ri,PKi〉,然后发送一个私钥Kripub=gari=gria=PKai给A.

③ H1询问.A向C发出H1(Mi)询问,Mi为协商信息.C返回一个随机数hi∈Z*q,并发送给A.

④ Send询问.A向C发出Send(Ti)询问,C选择一个随机数xi∈Z*q,并计算gxi,然后将元组〈Ti,gxi〉加入表L1中.C在表L2找一个三元组〈Ti,ri,PKi〉,然后计算σi=PKxigarihi=PKxiSKhii,并将〈Ti,gxii〉发送给A.

⑤ 伪造.如果A发出Corrupt(T*)询问,那么C输出FAIL,然后终止模拟程序.否则按如下方式伪造出一个新的有效元组〈T*,gx*,h,σ*〉,其中x*为随机秘密数,h为消息的哈希值,σ*为签名:任取x*∈Z*q,计算gx*,然后选取满足等式e(g,σ*)=e(PKT*,gx*Khpub)的σ*,生成一个元组〈T*,gx*,h,σ*〉,其中PKT*为用户T*的公钥.

如果A能以不可忽略的优势ε在时间t内产生相应的元组赢得游戏,C可以重复A的行为,通过控制随机预言机H1的输出,在时间2t内输出〈T*,gx*,h,σ*〉和〈T*,gx*,h',σ'〉, 其中,h'和σ'分别表示预言机第2次输出的协商信息的哈希值和签名,h≠h'.显然,gab=(σ*/σ')(h-h')-1,C便解决了CDH问题.

下面分析C的优势:

1)如果事件E发生,C模拟失败,E表示A对目标身份T*执行了Extract询问.显然有Pr((-overE))=1-1/qE.

2)敌手在伪造签名时,需要在G0中寻找满足等式e(g,σ*)=e(PKT*,Khpub)的σ*.此概率不大于1/q.

综上所述,若算法C在模拟过程中未终止,并且敌手以不可忽略的优势ε赢得游戏,则算法C输出CDH困难问题的有效解优势是ε'≥ε(1-1/qE)/q.这显然与定义2相矛盾.故定理1得证.

3.2 安全的密钥协商与托管

定理2 基于随机预言机模型,将AdvDG-AKAA(t,qE,qS)定义为敌手A针对DG-AKA协议方案密钥协商过程的最大优势,AdvDBDHG0,G1,e(t)定义为敌手A针对DBDH假设难题的最大优势,AdvForgeΓ(t)定义为针对认证方案Γ的任意伪造算法在多项式时间t内的最大优势.令ε0=AdvMDBDHG0,G1,e(t),则敌手A在多项式时间t内发出qE次Execute询问和qS次Send询问后,通过伪造签名或计算会话密钥来获得的优势有

AdvDG-AKAA(t,qE,qS)≤2nqEAdvDBDHG0,G1,e(t)+

AdvForgeΓ(t)=2nqEε0+ε'

证明 首先,假设敌手A可以通过自适应的假冒攻击来赢得优势,那么就可以构造一个算法C来生成有效的消息元组〈T,gx,h,σ〉,其中T表示被伪造用户的身份,x为用户选择的随机秘密数,h为消息的哈希值,σ为伪造后的签名.C诚实地生成系统参数,然后模拟A的所有预言机询问,如果A发出Corrupt(T)询问,那么C输出FAIL,然后终止模拟程序.否则,A伪造出一个新的有效消息元组〈T,gx,h,σ〉,那么C生成有效的消息元组〈T,gx,h,σ〉.C成功的概率满足PrA[Forge]≤AdvForgeC,Γ(t)≤AdvForgeΓ(t),在3.1节中已经证明了针对认证方案Γ的任意伪造算法在一个多项式时间t内有可以忽略的优势AdvForgeΓ(t)=ε'.

接下来假设敌手A可以在不更改任何消息的情况下赢得优势.根据文献[21]可得, MDBDH和DBDH在计算上等效,即AdvMDBDHG0,G1,e(t)=AdvDBDHG0,G1,e(t).首先考虑A只发出一次Execute询问Execute(T1,T2,…,Tn),然后扩展到发出多次Execute询问的情形.n是A选择的用户数,给出公共参数S和协商过程生成的参数集合R如下所示:

S=[(G0,G1,e)←IGBDH(1k); g←G0; α←Z*q; Kpub=

gα; PK1,PK2,…,PKn←G0; SK1=PKα1,SK2=PKα2,…,

SKn=PKαn:(G1,G2,e,g,Kpub)]

R=[x1,x2,…,xn,h1,h2,…,hn←Z*q; P1=gx1,

P2=gx2,…,Pn=gxn; σ1=PKx11SKh112=PKx12SKh12,…,

σn=PKxnnSKhnn; Y1=(e(P2,Px13))/(e(P2,Px1n)),Y2=(e(P3,Px14))/(e(P3,Px1n)),…,

Yn=(e(P1,Pxn2))/(e(P1,Pxnn-1)); I=〈P1,P2,…,Pn; σ12,…,σn;

Y1,Y2,…,Yn〉; kn,1,2=e(P2,Px1n),k1,2,3=kn,1,2Y1,…,

kn-1,n,1=kn-2,n-1,nYn-1; K=k1,2,3k2,3,4…kn,1,2:(I,K)]

式中,IGBDH为一个安全参数为1k的多项式时间算法,它在多项式时间内输出2个相同素数阶q的乘法循环群G0和G1以及一个双线性对e:G0×G0→G1; K为真实的共享会话密钥.

定义如下参数分布F1:

F1=[rn,1,2,x1,x2…,xn←Z*q; P1=gx1,P2=gx2,…,Pn=gx2;

σ1=PKx11SKh112=PKx22SKh22,…,σn=PKxnnSKhnn;

Y1=(e(P2,Px13))/(e(g,g)rn,1,2),Y2=(e(P3,Px24))/(e(P3,Px2`1)),…,Yn=(e(g,g)rn,1,2)/(e(P1,Pxnn-1));

I=〈P1,P2,…,Pn; σ12,…,σn; Y1,Y2,…,Yn〉;

kn,1,2=e(P2,Prn,1,2n),k1,2,3=kn,1,2Y1,…,kn-1,n,1=

kn-2,n-1,nYn-1; K=k1,2,3k2,3,4…kn,1,2:(I,K)]

同样的方式可得参数分布Fn,即

Fn=[rn,1,2,r1,2,3…,rn-1,n,1,x1,x2…,xn←Z*q;

P1=gx1,P2=gx2,…,Pn=gxn;

σ1=PKx11SKh112=PKx22SKh22,…,σn=PKxnnSKhnn;

Y1=(e(g,g)r1,2,3)/(e(g,g)rn,1,2),Y2=(e(g,g)r2,3,4)/(e(g,g)r1,2,3),…,Yn=(e(g,g)rn,1,2)/(e(g,g)rn,n-1,1);

I=〈P1,P2…,Pn; σ12,…,σn; Y1,Y2,…,Yn〉;

kn,1,2=e(P2,Prn,1,2n),k1,2,3=kn,1,2Y1,…,kn-1,n,1=

kn-2,n-1,nYn-1; K=k1,2,3k2,3,4…kn,1,2:(I,K)]

敌手A通过多次发出Corrupt和H1询问, 可以获得全部长期密钥SKi和协商信息的哈希值hi,从而计算PKxiii/SKhii.根据F1可知,敌手A需要区分e(g,g)xnx1x2和e(g,g)rn,1,2,这满足MDBDH问题.根据MDBDH假设,在时间t内运行的任何区分算法A都有

〖JB<1|〗Pr[(I,K)←R:A(I,K)=1]-

Pr[(I,K)←F1:A(I,K)=1]≤ε0〖JB>1|〗

同理有

〖JB<1|〗Pr[(I,K)←F1:A(I,K)=1]-

Pr[(I,K)←F2:A(I,K)=1]≤ε0〖JB>1|〗

〖JB<1|〗Pr[(I,K)←Fn-1:A(I,K)=1]-

Pr[(I,K)←Fn:A(I,K)=1]≤ε0〖JB>1|〗

令e(g,g)=f,根据以下n个等式可知,随机数r1,2,3,r2,3,4,…,rn,1,2的值受I的约束:

logfY1=r1,2,3-rn,1,2

logfY2=r2,3,4-r1,2,3

logfYn=rn,1,2-rn-1,n,1

因此该方程组是线性无关的.在Fn中,敌手计算的会话密钥为KFn=e(g,g)r1,2,3+r2,3,4+…+rn,1,2,方程两边取对数,可以得到logfKFn=r1,2,3+r2,3,4+…+rn,1,2,显然它独立于I.这意味着对于任何敌手A,以下等式是成立的:

Pr[(I,K)←Fn:A(I,K)=1]=

Pr[I←Fn; K←KR:A(I,K)=1]

这表明敌手A无法通过Fn将会话密钥KFn与相同长度的随机数KR区分开.

同理,在MDBDH假设下,时间t内运行的任何算法都有

〖JB<1|〗Pr[(I,K)←Fn:A(I,K)=1]-Pr[I←Fn-1;

K←KR:A(I,K)=1]〖JB>1|〗≤ε0

〖JB<1|〗Pr[I←F1; K←KR:A(I,K)=1]-Pr[I←R;

K←KR:A(I,K)=1]〖JB>1|〗≤ε0

这表明,当敌手A截取它所选子集的所有消息时,区分真实会话密钥K与KR的优势是2nε0,即

〖JB<1|〗Pr[I←R; K←R:A(T,K)=1]-

Pr[I←R; K←KR:A(I,K)=1]〖JB>1|〗≤2nε0

由于ε0=AdvMDBDHG0,G1,e(t)=AdvDBDHG0,G1,e(t),因此PrA[~Forge]≤2nAdvDBDHG0,G1,e(t)成立.因此下式亦成立:

AdvDG-AKAA(t,1,qS)≤

2nAdvDBDHG0,G1,e(t)+AdvForgeΓ(t)

最终,在执行qE次Execute询问和qS次Send询问后,敌手A针对DG-AKA协议方案的最大优势为

AdvDG-AKAA(t,qE,qS)≤2nqEAdvDBDHG0,G1,e(t)+

AdvForgeΓ(t)=2nqEε0+ε'

因敌手A针对DG-AKA协议方案的最大优势AdvDG-AKAA(t,qE,qS)≤2nqEε0+ε'在多项式时间内是可忽略的,由此定理2得证.定理2证明了DG-AKA协议方案能实现安全的密钥协商.

定理3 DG-AKA协议方案能够解决密钥托管问题.

证明 在密钥协商的过程中,密钥中的所有组件均由群组成员共同生成.在定理2中已证明,即使攻击者获取了群组成员的长期私钥,它们也无法计算出正确的会话密钥.而SN作为用户密钥生成和管理中心,只能获取用户的长期私钥,因此由定理2可知,SN无法计算出共享会话密钥.综上可知,DG-AKA协议方案能解决密钥托管问题.

3.3 安全的动态群组成员管理

定理4 DG-AKA协议方案能实现安全的动态群组成员管理.

证明 动态群组成员管理分为以下3种情况.

1)有一个或多个用户被撤销时,可将群组划分为2部分,即与离开用户相邻的G'中的群组成员以及其他未离开的群组成员.在更新协议中对G'中成员的秘密值进行了更新,撤销的用户无法获取这些秘密值,并且生成的新会话密钥不再含有撤销用户的任何密钥组件成分.因此由定理2可知,在执行qE次Execute询问和qS次Send询问后,设m为未离开群组的用户数,敌手A针对DG-AKA协议方案用户撤销管理方案的最大优势为

AdvDG-AKA-bsA(t,qE,qS)≤2mqEAdvDBDHG0,G1,e(t)+

AdvForgeΓ(t)=2mqEε0+ε'

式中,ε0=AdvDBDHG0,G1,e(t),ε'=AdvForgeΓ(t).由于AdvDG-AKA-bsA(t,qE,qS)≤2mqEε0+ε'在多项式时间内是可忽略的,因此根据定义6,本方案在上述情况下满足群组后向安全.

2)只有一个用户加入群组,原群组中的一个成员与新加入的成员执行2个用户之间的Diffie-Hellman密钥交换协议,得到新的会话密钥,然后利用原群组会话密钥加密发送给原群组中的其他成员,从而更新群组会话密钥.由定义2可知,群组外的用户仅根据gxn+1和gH1(KGn)无法计算出新的会话密钥gxn+1H1(KGn).在更新密钥的过程中,只有原群组中的一个成员参与了密钥的生成过程,并且该成员使用了新的秘密值.因此,由定理2可知,在执行qE次Execute询问和qS次Send询问后,设n为原群组的用户数,敌手A针对DG-AKA协议方案中单个用户加入管理方案的最大优势为

AdvDG-AKA-fsA(t,qE,qS)≤

2nqEAdvDBDHG0,G1,e(t)+AdvForgeΓ(t)=2nqEε0+ε'

因为AdvDG-AKA-fsA(t,qE,qS)≤2nqEε0+ε'在多项式时间内是可忽略的,因此根据定义5,该方案在上述情况下满足群组前向安全.证毕.

3)有多个用户加入群组时,原群组中的一个成员与新加入成员之间执行DG-AKA协议方案得到会话密钥,然后利用原群组会话密钥加密发送给原群组中的其他成员,从而更新群组会话密钥.由定理2可知,群组外的用户无法计算出新的会话密钥.同第2种情况,原群组中的一个成员使用新的秘密值来参与密钥的生成.因此,由定理2可知,在执行qE次Execute询问和qS次Send询问后,设u为新加入群组的用户数,敌手A针对DG-AKA协议方案中多个用户加入管理方案的最大优势为

AdvDG-AKA-fsA(t,qE,qS)≤2(u+1)qEAdvDBDHG0,G1,e(t)+

AdvForgeΓ(t)=2(u+1)qEε0+ε'

因为AdvDG-AKA-fsA(t,qE,qS)≤2(u+1)qEε0+ε'在多项式时间内是可忽略的,因此根据定义5,该方案在上述情况下满足群组前向安全.证毕.

3.4 安全性能比较

表1为方案1、方案2、方案3和DG-AKA协议方案安全性能的综合比较,由表可知,DG-AKA协议方案满足所有安全性目标,相对于其他方案在安全性上更具优势.

表1 安全性能比较

表1 安全性能比较

4 DG-AKA协议方案的效率分析4.1 计算开销

本节主要分析SN和用户的计算开销,DG-AKA协议方案中SN负责用户注册和会话请求,用户则参与了协议的全部过程.表2为DG-AKA协议方案不同阶段计算开销分析结果.其中,TR表示取随机数运算,TE表示指数运算,TH表示哈希运算,TM表示乘法运算,TP表示双线性对运算.

表2 DG-AKA协议方案的计算开销

表2 DG-AKA协议方案的计算开销

阶段 计算开销 计算复杂度系统初始化 TR+TE O(1)用户注册 n(TH+TE)O(n)会话请求 TR O(1)会话建立第1轮 TH+TR+2TE O(1)会话建立第2轮 4TH+5TE+TM+7TP O(1)密钥生成(n-1)TH+nTE+2(n-1)TM+nTP O(n)

表2所示,系统初始化阶段的复杂度为O(1).在用户注册阶段,SN要为n个用户生成临时身份和公/私钥对,因此总复杂度为O(n).在会话请求阶段,SN只需一次取随机数运算,复杂度为O(1).在会话建立阶段第1轮和第2轮中,计算复杂度均为O(1).而在密钥生成阶段,计算复杂度和用户数量成正比,此阶段的计算复杂度为O(n).

表3为方案1、方案2、方案3和DG-AKA协议方案计算开销的对比.其中,方案1的计算量要低于DG-AKA协议方案,由于方案1中没有SN的参与,便没有用户与SN之间通信产生的计算开销,因此相比方案1,DG-AKA协议方案的计算开销较大.但方案1没有实现安全认证,容易遭受伪造攻击.同时,方案2的开销要大于DG-AKA协议方案,因为方案2只有哈希运算的计算量与DG-AKA协议方案相同,在指数、乘法、双线性对和取随机数运算上计算量均大于DG-AKA协议方案.方案3在哈希运算和双线性对运算上计算量与DG-AKA协议方案相当,而乘法运算计算量比DG-AKA协议方案大,但在取随机数运算和指数运算上又略低于DG-AKA协议方案,因此2个方案的计算开销相当.

表3 各方案计算开销

表3 各方案计算开销

4.2 通信开销

为了分析通信开销,首先定义协议中每个参数的大小.设Q和T的大小均为16 B,rsid为8 B,其余参数的大小均设置为20 B.将通信开销分为2类,即SN与用户之间的通信和用户与用户之间的通信.在用户注册阶段,每个用户与SN的通信开销为72 B,总开销为72n B.在会话请求阶段,每个用户与SN的通信开销为(32n+8)B,总开销为n(32n+8)B.在会话建立第1轮阶段,每个用户要与其他3个用户进行通信,通信开销为194 B,总开销为194n B.在会话建立第2轮阶段,每个用户都要将消息广播出去,通信开销为64(n-1)B,总开销为64n(n-1)B.

图2所示,DG-AKA协议方案的通信开销高于方案1,因为方案1中没有SN的参与,只有用户与用户之间的通信开销.但方案1没有实现安全认证,容易遭受伪造攻击.同时,DG-AKA协议方案的通信开销略高于方案2,因为方案2的会话密钥是由SN生成和管理的,减少了用户与用户之间协商产生的通信开销.但方案2不能解决密钥托管问题,并且没有实现安全的动态群组成员管理,不能保证群组前向和后向安全.最后,方案3和DG-AKA协议方案的通信开销相当,因为2个方案中均有SN与用户之间的通信以及用户与用户之间的通信,且这些通信过程的通信量相当.但方案3没有实现安全的动态群组成员管理,需要借助安全信道.

图2 不同方案的通信开销对比

图2 不同方案的通信开销对比

4.3 时间开销

本节通过仿真实验对运行DG-AKA协议方案的时间性能进行了测试.测试中用到的参数Q和T的大小设为16 B,rsid为8 B,其余参数的大小均设置为20 B.

首先对协议的注册、会话请求和会话建立阶段进行了测试.如图3所示,在用户注册和会话建立阶段,协议的执行时间随用户数的增加呈线性增长.在会话建立阶段,需要执行大量的乘法、指数、哈希、双线性对和取随机数运算,并且在通信过程中每个用户需要与多个用户进行通信,因此会话建立阶段是整个协议中最耗时的部分,当用户数为5和100时,执行时间分别为82.4和1 597.5 ms.在用户注册阶段,只需少量的哈希和指数运算,当用户数为5和100时,执行时间分别为16.5和 296.7 ms.在会话请求阶段,SN只做一次取随机数运算,而对用户的合法性检验也只需对身份做简单的比较运算,因此该阶段执行时间是整个协议中最

图3 协议各阶段执行时间

图3 协议各阶段执行时间

少的,当用户数为5和100时,执行时间分别为0.3和5.7 ms.

为了分析不同协议的执行时间情况,本文对方案1、方案2、方案3和DG-AKA协议方案总的执行时间进行了对比(见图4),其中总的执行时间包括注册、会话建立和会话请求3个阶段.如图4所示,随着用户数的增加,不同方案均呈线性增长.其中DG-AKA协议方案总的执行时间大于方案1,因为DG-AKA协议方案中用户与SN通信需要额外的执行时间.但方案1容易遭受伪造攻击,无法保证安全认证.同时,DG-AKA协议方案总的执行时间低于方案2,因为方案2在会话建立阶段需要更多的指数、乘法、双线性对和取随机数运算,因此DG-AKA协议方案的执行时间更低,并且方案2没有实现安全动态群组管理.最后,DG-AKA协议方案总的执行时间略高于方案3,DG-AKA协议方案中每个用户要与相邻的3个用户通信,增加了一次通信和计算开销,但方案3没有实现真正的安全动态群组管理,需要借助安全信道来传递更新的密钥组件.

图4 不同方案的总执行时间对比

图4 不同方案的总执行时间对比

5 结论

1)基于CDH假设难题,实现了适用于D2D群组通信的安全认证过程.群组用户利用临时身份进行相互认证,而非法用户无法伪造认证消息,从而能够抵抗伪造攻击.

2)基于MDBDH假设难题,实现了一种安全的密钥协商过程.密钥协商时的密钥组件均由群组成员生成,而SN无法获取密钥组件,从而解决了密钥托管问题.通过结合安全的认证过程,DG-AKA协议方案确保了会话密钥的安全性.

3)在群组成员管理中,当有用户加入时,新加入的成员与原群组中的一个成员执行DG-AKA协议,而无需知道原群组成员的密钥组件,保证了新密钥的安全性以及群组前向安全; 当有用户被撤销时,与撤销用户相邻的用户更新其密钥组件,而撤销用户的密钥组件不再参与新密钥的生成,保证了新密钥的安全性以及群组后向安全.

参考文献