强安全的匿名隐式漫游认证与密钥协商方案

陈 明

(宜春学院数学与计算机科学学院 江西宜春 336000) (可信计算与信息保障国家重点实验室(中国科学院软件研究所) 北京 100190)

(chenming9824@aliyun.com)

摘 要 现有两方漫游认证与密钥协商方案没有考虑抵抗临时秘密泄露的安全性,仅在CK模型下可证明安全.基于椭圆曲线密码体制和基于身份密码系统,采用Schnorr签名算法设计了类似HMQV方案的“挑战-应答”签名,进而构造了一种基于隐式认证技术的、具有强安全性和匿名性的两方漫游认证密钥协商方案.随后,扩展了ID-BJM模型,使之能模拟两方漫游认证与密钥协商方案.在扩展的安全模型下,新方案的安全性被规约为多项式时间敌手求解椭圆曲线上的计算Diffie-Hellman问题,实现了eCK安全.对比分析表明:新方案具有更强的安全性,能抵抗临时秘密泄露攻击,需要实现的密码算法更少,计算、通信和存储开销都相对较低.新方案可应用于移动通信网络、物联网或泛在网络中,为资源约束型移动终端提供安全的漫游接入服务.

关键词 认证密钥协商;移动漫游服务;基于身份密码系统;隐式认证;计算Diffie-Hellman问题;eCK模型

随着移动通信网与互联网的融合,在生活领域,各种手持设备和穿戴传感设备已经大量为人们所使用;在生产领域,以RFID技术和传感器技术为代表的低能耗设备也已广泛应用,新型的网络形态(物联网或泛在网络)正在逐步形成.新型网络的一个典型特征是终端设备多样化和移动频繁.为适应不同设备的安全需求,多样化的网络安全技术研究是目前网络通信和信息安全领域的一个主流趋势,针对资源受限移动设备的漫游接入认证与密钥协商方案是近年来的一个研究热点 [1] .

由于早期的移动终端计算能力低下,漫游协议主要采用三方在线认证的方式 [2-6] ,不使用公钥算法.在认证过程中,首先由移动节点(mobile node, MN)将认证消息发送给远程域认证服务器(foreign server, FS),然后FS将认证消息转发给MN的家乡服务器(home server, HS),由HS在线验证MN的身份,并将认证结果返回给FS.三方漫游协议具有较大的通信时延,且易于遭受DOS攻击.

随着移动设备计算和存储能力的提升,如今大量的移动终端能够很好地支持公钥加密算法,一些研究者基于公钥算法,提出两方的漫游认证协议 [7-14] ,其具体优点是不需要HS在线参与认证.在最近提出的6种两方漫游认证方案中,Jo等人 [9] 方案采用加密Hash链表存储MN的撤销信息,降低了节点撤销过程中的通信开销,采用基于身份的签密方案 [15] 实现了匿名认证,并且在CK模型 [16] 下证明了协议的安全性;Tsai等人 [10] 改进了Jo等人方案,采用了新的基于身份签密方案,降低了计算、通信和存储开销,并且在服务器端使用了基于身份的批量签名验证技术,支持用户身份的批量验证,进一步降低认证服务器的计算开销;周彦伟等人 [11-13] 提出3种相近的漫游认证方案,采用公钥加密和数字签名技术实现漫游匿名认证,采用Diffie- Hellman密钥交换机制实现密钥协商;此外,胡志华等人 [14] 采用代理签名实现了两方的漫游认证,但是没有实现密钥协商.

上述两方漫游认证与密钥协商方案存在3点不足:

1) 文献[9-13]提出的方案安全性较弱,在CK模型下可证明安全(Tsai方案采用了类似的模型),没有考虑会话临时秘密泄露攻击.由于移动设备更容易被攻击者劫持,进而读取其内存信息,导致认证会话状态信息泄露,形成会话临时秘密泄露攻击.

2) 现有方案的计算和存储开销较大,移动节点需要支持的公钥算法类型较多.例如文献[9-11,13]的方案采用了双线性映射群,引入了计算代价较高的双线性对运算,周彦伟等人 [11-13] 方案在漫游认证阶段使用了多次公钥加密和数字签名算法,这些都增加了方案的计算开销和算法实现方面的成本.目前虽然移动终端能够有效支持公钥算法,但是其总体的计算能力仍然较低且能量有限,特别是一些微型的传感器设备,仅能支持简单的公钥算法 [17] .

3) 文献[9-13]提出的方案均要求移动节点预先存储远程认证服务器的身份ID(或公钥),增加了移动节点的存储开销,并且影响了节点漫游的自由度(移动节点要么预先存储所有远程域认证服务器的公钥,要么只能在局部区域漫游).

通过上述分析可见,更加高效和安全的两方漫游认证与密钥协商方案仍然需要进一步研究,这是本文研究工作的动机.

本文基于椭圆曲线密码体制(elliptic curve cryp-tography, ECC)和基于身份密码系统 [18-19] (identity-based cryptosystem, IBC),设计了一种高效且强安全的两方漫游认证与密钥协商方案.新方案在扩展的ID-BJM模型 [20-21] 下被证明实现了eCK [22] 安全性,其安全性被规约为多项式时间敌手求解椭圆曲线上的计算Diffie-Hellman(CDH)问题.

本文研究工作主要有2点创新点:1)采用类似HMQV [23] 方案的隐式认证技术实现了移动节点与远程域认证服务器之间的相互认证和密钥协商;2)在文献[20-21]的基础上,进一步扩展了ID-BJM模型用于分析移动漫游认证协议,并且实现了模拟该类协议的eCK安全性.HMQV隐式认证技术的优点在于,所有公开发送的认证会话消息都不包含任何形式的用户长期私钥信息,并且所有公开的认证会话消息都不需要进行加密或签名,相互认证的实现取决于认证双方能够计算完全一致的会话密钥.相较现有方案,本文方案有3个主要的优点:

1) 安全性更强,能抵抗临时秘密泄露攻击,能有效防止临时秘密泄露造成的移动节点认证私钥泄露;

2) 需要实现的算法库更少,计算、通信和存储开销都相对较低(这里算法库是指编程实现相关密码算法的函数库,例如实现双线性对运算的PBC Library [24] );

3) 移动节点不需要预先存储远程域认证服务器的ID和公钥,降低了存储开销,移动节点的漫游路线更加自由.

1 背景知识

1 . 1 困难数学问题

G 为椭圆曲线上的 q 阶循环群, P , Q G 是曲线上的点, Q P 的倍数点,存在 a q ,满足: Q = aP .下面定义 G 上的CDH问题和CDH假设.

1) CDH问题.对于任意未知的 a , b q ,假设 P G G 的生成元,给定( aP , bP ),计算 a bP .

2) CDH假设.不存在概率多项式时间算法能成功求解CDH问题.

说明:为了描述简洁,本文忽略了mod q 运算.

1 . 2 漫游认证模型

Fig. 1 Roaming authentication model
图1 漫游认证模型

本文漫游认证方案的基本模型如图1所示,包含4个角色:证书权威(CA)、家乡域认证服务器HS、远程域认证服务器FS和移动节点MN.CA负责HS和FS的密钥分发与身份管理,HS负责MN的密钥分发与身份管理,FS为MN提供漫游接入服务.

漫游认证与密钥协商方案包含:系统建立、域服务器注册、节点注册、漫游接入认证4个算法.

1) 系统建立.输入安全参数 κ ,由CA产生并发布系统公开参数.

2) 域服务器注册.域服务器向CA中心进行注册,提交其身份标识,CA产生服务器私钥,并通过安全信道返回给相应的域服务器.

3) 节点注册.MN提交其身份标识,HS为MN产生临时身份和漫游时的认证私钥,通过安全信道返回给MN.

4) 漫游接入认证.当MN漫游进入其他认证域,该认证域的FS与MN进行交互,认证彼此身份,并协商一致的会话密钥.

1 . 3 漫游认证安全模型

eCK [22] 模型是本领域被广泛引用的强安全模型之一,能模拟认证协议的主要安全性包括:已知会话密钥安全(known key security, KKS)、无密钥控制(no key control, NKC)、抗未知密钥共享(unknown key-share resilience, UKS)、弱的完美前向安全(weak perfect forward secrecy, wPFS)、抗密钥泄露伪装(key-compromise impersonation resilience, KCI)、抗临时秘密泄露安全(ephemeral secrets reveal resistance, ESR).此外,漫游认证还要求实现匿名性(anonymity).

本文采用基于身份的密码方案 [18] 构造漫游认证协议,因此,本文安全模型以ID-BJM模型 [20] 为基础,扩展定义了能实现eCK安全的ID-eCK模型,并用于分析漫游协议.下面简要描述相关概念及定义,详细内容见本文3.2节,或参考文献[20-21].

安全模型被定义为挑战者 C 与敌手 A 之间的一系列游戏Game. A 被模拟为一个概率多项式时间图灵机,被允许执行多项式时间的询问(询问的具体内容见3.2节), C 模拟协议的相应算法做出应答.预言机 Π u 定义为 A 发起的第 u 次会话实例,会话的标识由用户标识和会话参数连接而成. Π u Π v 互为匹配预言机定义为: Π u Π v 具有相同的会话标识.在询问过程中, A 提交对新鲜预言机 Π t Test 询问, C 输出一个会话密钥作为应答.最后, A 输出对该密钥的猜测 b ′∈{0,1}, b ′=0表示该密钥是 Π t 的真实密钥,否则不是.如果猜测正确, A 赢得游戏Game. A 赢得Game的优势定义为

/2|.

定义1 . 新鲜性(freshness).如果 Π t 是诚实用户 ID a ID b 之间的会话, ID a Π t 的拥有者,且 Π t 已成功完成(用Acc表示),令 Π v (如果存在)是 Π t 的匹配预言机,那么,分别定义3种类型的新鲜预言机 Π t

1) A 从未提交 Corrupt ( ID b ), Reveal ( Π t ), Reveal ( Π v ), EpheKeyReveal ( Π t )询问;

2) A 从未提交 Reveal ( Π t ), Reveal ( Π v ), EpheKeyReveal ( Π v ), EpheKeyReveal ( Π t )询问;

3) A 从未提交 Corrupt ( ID a ), Corrupt ( ID b ), Reveal ( Π t ), Reveal ( Π v )询问.

上述3种情形涵盖了认证密钥协商协议的主要安全问题,类型1模拟KCI安全;类型2模拟wPFS安全性;类型3模拟ESR安全性.其他安全性更易于实现,如KKS和NKC,由会话双方各自选择的新鲜随机数确保;UKS安全性(类似Diffie-Hellman密钥交换的中间人攻击)则由隐式认证技术保障,因为对认证会话消息的任何篡改都会导致认证双方不能计算一致的会话密钥,从而认证失败.

定义2 . 如果协议满足2点要求,被认为满足eCK安全:

1) 在匹配预言机 Π u Π v 之间仅存在被动攻击者的情况下,总能协商相同的会话密钥 SK ,且 SK 在密钥空间上随机均匀分布;

2) 在上面定义的安全游戏各种情形中 均是可忽略的.

2 漫游认证与密钥协商协议

基于ECC的IBC系统设计了一种采用隐式认证技术的漫游认证与密钥协商协议.本文协议只涉及漫游认证,但是稍加变化也可用作家乡域的本地认证.

在CK模型下,Fiore等人 [25] 提出一种高效的基于身份密钥协商方案(记为Fiore-IBKA方案),但是该方案没有考虑临时密钥泄露的攻击.文献[26]指出Fiore-IBKA方案易遭受临时密钥泄露伪装攻击.本文方案受到Fiore-IBKA方案的启发,结合Schnorr [27] 签名机制设计了类似HMQV方案的“挑战-应答”签名,进而构造了高效且强安全的匿名漫游认证与密钥协商方案.本文方案描述如下.

1) 系统建立.输入安全参数 κ ,CA产生并发布系统参数 params =〈 κ , G , q , P , P 0 , H 1 , H 2 , H 3 〉.其中 q 为大素数, P G G 的生成元, P 0 = sP 为系统公钥, s q 为主密钥, H 1 :{0,1}*→ q H 2 :{0,1}*→ q 为抗碰撞Hash函数, H 3 :{0,1}*→{0,1} κ 为密钥导出函数.

2) 域服务器注册.域服务器提交其身份标识 ID S ,CA随机选择 r S q ,计算 R S = r S P q S = H 1 ( ID S R S )和 d S = r S + sq S ,通过安全信道将〈 d S , R S 〉发回给域服务器.域服务器通过计算 d S P = R S + q S P 0 是否相等来验证私钥的正确性.私钥产生算法采用了Schnorr签名机制, ID S 为被签名消息.

3) 节点注册.MN提交其身份标识 ID M ,HS随

机选择 r M , , r * M q ,计算 R M = r M P = P R M r * M ), t ′= H 1 ( ID H R M t ′‖ R M T σ C ),通过安全信道将〈 d M , r * M , Cert M 〉发回给MN.其中, ID H 是家乡服务器身份 作为MN漫游时的临时身份, T Cert M 的有效期, σ C = + d H t ′是HS对 Cert M 的签名.HS将〈 ID M , Cert M 〉插入节点列表,并删除 r M , r * M , d M .注意, Cert M 事实上是HS给MN颁发的公钥证书.在IBC系统中,用户公钥直接由用户ID导出,无法实现匿名性.这里,为了实现匿名性,隐藏MN的公钥与真实ID之间的联系,HS为MN生成临时身份 作为其漫游时的公钥,同时生成关于 的公钥证书.

收到〈 d M , r * M , Cert M 〉后,MN按如下方式验证签名 σ C 是否有效:计算 q H = H 1 ( ID H R H )和 σ C P - t ′( R H + q H P 0 ),验证 t ′= H 1 ( ID H R M T )是否相等( Cert M 签名 σ C 使用了vBNN-IBS签名 [17] ,Schnorr签名的一个变种,文献[17]证明了该签名满足不可伪造性).然后,MN计算 R M r * M ),验证等式 是否相等,若通过验证,则存储 Cert M ,删除 r * M ,并秘密保存 d M .

4) 漫游接入认证.漫游接入认证过程如图2所示:

MNFSx∈ZZq,X=xPX‖CertM→True←Verify(CertM)y∈ZZq,Y=yPqF=H1(IDF‖RF)TM=xYY‖IDF‖RF←qH=H1(IDH‖RH)TF=yXh=H2(IDF‖CertM‖RF‖RM‖X‖Y)KF=(y+hdF)(X+h(RM+tIDM(RH+qHP0)))KM=(x+hdM)(Y+h(RF+qFP0))SKFM=H3(IDF‖tIDM‖X‖Y‖h‖TF‖KF)SKMF=H3(IDF‖tIDM‖X‖Y‖h‖TM‖KM)

Fig. 2 Authentication and key agreement for roaming service
图2 漫游认证与密钥协商

认证步骤描述为:

① MN随机选择 x q ,计算 X = xP ,发送( X Cert M )给FS.

② 收到( X Cert M )后,FS检查 Cert M 的有效期 T ,计算 q H = H 1 ( ID H R H )和 q H P 0 ),检查 t ′= H 1 ( ID H R M T )是否相等来验证 Cert M 签名.若 Cert M 不在有效期内或签名无效则终止认证;否则,随机选择 y q ,计算 Y = yP ,发送( Y ID F R F )给MN.然后计算 h = H 2 ( ID F Cert M R F R M X 及会话密钥 SK FM = H 3 ( ID F X Y h T F K F ).

③ 收到( Y ID F R F ),MN计算 q F = H 1 ( ID F R F ), h = H 2 ( ID F Cert M R F R M X Y ), T M = xY K M =( x + hd M )( Y + h ( R F + q F P 0 )),及会话密钥 SK MF = H 3 ( ID F X Y h T M K M ).

上述过程是基本的认证密钥协商方案(没有考虑密钥确认),采用了类似HMQV的隐式认证技术.考虑到实际应用中需要进行密钥确认,我们对上述基本方案在4个方面进行增强,具体描述如下:

1) 系统建立阶段引入抗碰撞密码Hash函数 H K ×{0,1}*→ q

2) FS将 h 同时发送给MN,即FS发送消息( Y ID F R F h );

3) MN检查 h = H 2 ( ID F Cert M R F R M X Y )是否成立,计算 g = H ( SK MF ID F Cert M R F R M X Y h ),并发送给FS;

4) FS检查 g = H ( SK FM ID F Cert M R F R M X Y h )是否成立以完成密钥确认.

3 分析与比较

3 . 1 协议正确性分析

协议的正确性证明:

K F =( y + hd F )( X + h ( R M + ( R H + q H P 0 )))=

( y + hd F )( x + h ( r M + ( r H + sq H ))) P =

( y + hd F )( x + hd M ) P

(1)

K M =( x + hd M )( Y + h ( R F + q F P 0 ))=

( x + hd M )( y + h ( r F + sq F )) P =

( x + hd M )( y + hd F ) P .

(2)

由式(1)和式(2)可得 K F = K M ,从而可计算相同的会话密钥 SK FM = SK MF .

3 . 2 协议安全性分析

本文第2节描述的基本方案(不考虑密钥确认)更加符合HMQV协议的思想,为了便于分析和证明,在下面的证明过程中,我们仅分析基本的认证密钥协商方案(非增强版本).

定理1 . 假设仅存在被动攻击者的情况下,相互匹配的预言机 Π u Π v 总能协商一致的会话密钥 SK ,且 SK 在密钥空间上随机均匀分布.

证明. 假设 A 是被动攻击者,则预言机 Π u / Π v 总能正确接收彼此输出的消息.根据3.1节的结论, Π u Π v 能计算相同的会话密钥 SK MF = SK FM .且由于 x y ID M ID F 随机选择的临时秘密,那么( T M , K M )和( T F , K F )可看成是随机生成, SK MF / SK FM 根据( T M , K M )/( T F , K F )由密钥导出函数生成,因此, SK MF / SK FM 在密钥空间上随机均匀分布.

证毕.

定理2 . 假设 H 1 / H 2 / H 3 模拟随机预言机,如果CDH假设成立,那么本文协议满足eCK安全.

证明. 根据本文1.3节定义的安全模型,我们将协议的安全性规约到求解CDH问题.假如存在多项式时间敌手 A 以优势 ε ( κ )赢得下面构造的挑战-测试游戏,那么可以构造算法以不低于 f ( ε ( κ ))的概率求解CDH问题.

考虑到漫游认证协议的特殊性,该类协议是非对称的认证密钥协商协议,协议的发起者(MN)和响应者(FS)角色是固定的,不能互换.因此,我们进一步扩展ID-BJM模型 [20-21] ,考虑4种情况证明漫游认证协议满足eCK安全.注意:本文用 i 专指发起者,用 j 专指响应者,令 sid *是挑战会话,

1) sid *不存在匹配会话,且拥有者为 i .①事件 E 1, A 不能询问 j 的长期私钥和 sid *的临时私钥;②事件 E 2, A 不能询问 i j 的长期私钥.

2) sid *不存在匹配会话,且拥有者为 j .①事件 E 3, A 不能询问 i 的长期私钥和 sid *的临时私钥;②事件 E 4, A 不能询问 i j 的长期私钥.

3) sid *存在匹配会话 sid ′,且拥有者为 i .①事件 E 5, A 不能询问 sid *和 sid ′的临时私钥;②事件 E 6, A 不能询问 i j 的长期私钥;③事件 E 7, A 不能询问 j 的长期私钥和 sid *的临时私钥.

4) sid *存在匹配会话 sid ′,且拥有者为 j .①事件 E 8, A 不能询问 sid *和 sid ′的临时私钥;②事件 E 9, A 不能询问 i j 的长期私钥;③事件 E 10, A 不能询问 i 的长期私钥和 sid *的临时私钥.

上述事件分为 sid *是否存在匹配会话两大类,其中, E 1, E 3, E 7, E 10模拟KCI安全性, E 2, E 4, E 6, E 9模拟ESR安全性, E 5, E 8模拟wPFS安全性.我们通过一系列的挑战-测试游戏模拟上述事件.

游戏模拟过程中,我们引入一个判定预言机 O (#,#)判定 O ( xP , yP )= O ( W , P )是否成立.采用双线性对 [19-20] 运算可构造此预言机,因此我们要求在协议模拟过程中,系统参数满足双线性映射条件.这一要求与协议本身无关,且不影响安全性,因为在满足双线性映射条件的群 G 上CDH假设也是成立的.

假设至多创建了 m 个移动节点、 n 个认证服务器以及 l 次会话, sid *是挑战会话.

Game1 . 给定CDH问题实例( aP , bP ),求解 a bP .

初始化:挑战者 C 生成系统公开参数 params =〈 κ , G , q , P , P 0 , H 1 , H 2 , H 3 〉,其中 P 0 = aP H 1 / H 2 / H 3 模拟为随机预言机. C 随机选择 ∈{1,2,…, l }和 j ** ∈{ j 1 , j 2 ,…, j n }.

询问: C 维护初始为空的列表 L ID L 2 L 3 L S ,按以下方式对 A 的询问做出应答.

H 1 ( ID ,#).如果 ID L ID 中存在,则输出 t ID ,否则 C 随机选择并输出 t ID q .

1) 如果 ID = j ** C 随机选择 r ID q ,计算 R ID = r ID P ,设置 f ID =FS,将〈 f ID , ID , R ID , r ID , t ID ,⊥〉插入 L ID

2) 否则 C 随机选择 d ID q ,计算 R ID = d ID P - t ID P 0 ,设置 f ID =FS,将〈 f ID , ID , R ID ,⊥, t ID , d ID 〉插入 L ID .

其中, f ID 为用户身份标签, f ID =FS表示域认证服务器, f ID =MN表示移动节点,⊥表示空值.

H 2 ( j , i , R j , R i , X , Y ).如果〈 j , i , R j , R i , X , Y , h 〉在 L 2 中存在,则输出 h ;否则, C 随机选择 h q ,输出 h ,将〈 j , i , R j , R i , X , Y , h 〉插入 L 2 .注意,为了简化符号标识,这里直接使用用户标识 i 代替了其证书 Cert i .

H 3 ( j , i , X , Y , h , T , K ).如果〈 j , i , X , Y , h , T , K , SK 〉在 L 3 中存在, C 直接输出 SK ;否则存在3种情况:

1) 如果存在〈 j , i , X , Y , h ,⊥, K , SK 〉,此时 j = j ** L S 中不存在发起者预言机(见 Send 1 询问), C 调用判定预言机判定 O ( X , Y )= O ( T , P )是否成立,若成立,则更新该记录为〈 j , i , X , Y , h , T , K , SK 〉,并且用 T 更新 L S 中的相应记录,否则,随机选择 SK ←{0,1} k ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3 ,输出 SK

2) 如果存在〈 j , i , X , Y , h , T ,⊥, SK 〉,此时 j = j ** X = η bP (见 Send 1 询问),更新记录为〈 j , i , X , Y , h , T , K , SK 〉,用 K 更新 L S 中的相应记录,输出 SK

3) C 查询 L 2 ,如果 L 2 中存在相应元组〈 j , i , R j , R i , X , Y , h 〉,那么随机选择并输出 SK ←{0,1} k ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3 ;否则忽略该询问;

4) 以〈 j , i , X , Y , h , T , K 〉为索引在 L S 中查询,若存在相应记录,且已输出 SK ,则将该会话标记为Revealed.

Create ( ID ).如果 ID 是认证服务器, C 执行 H 1 询问;如果 ID 是移动节点, C 执行 H 1 询问,创建家乡服务器公私钥〈 ID H , R H , t H , d H 〉,随机选择 r ID , t ID q ,计算 d ID = r ID + t ID d H R ID = r ID P ,生成公钥证书 Cert ID ,将〈MN, ID , R ID , r ID , t ID , d ID , Cert ID 〉插入 L ID .

Send 0 ( Π u ,I, i , j ). A 发起了1次新的会话, i 为发起者, j 为响应者, C 创建发起者预言机 Π u (I表示会话的发起者角色).如果 u = ,且 j = j ** (否则终止游戏), C 随机选择 η q ,令 X = η bP ,将〈 Π u ,I, i , j , η , X ,#〉插入 L S ;否则, C 随机选择 x q ,计算 X = xP ,将〈 Π u ,I, i , j , x , X ,#〉插入 L S .输出( X Cert i ).

注意:根据协议规范 表示 i 的家乡服务器.

Send 1 ( Π v ,R, j , i ,( X Cert i )). C 验证 Cert i ,如果验证错误,则忽略该询问;否则创建响应者预言机 Π v (R表示会话的响应者角色). C 随机选择 y , h q SK ←{0,1} k ,计算 T = yX

1) 如果 j j ** ,计算 Y = yP K =( y + hd j )( X + hd i P )),将〈 Π v ,R, j , i , X , y , Y , h , T , K , SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3

2) 如果 j = j ** X = η bP ,计算 Y = yP ,将〈 j , i , X , Y , h , T ,⊥, SK 〉插入 L 3 ,将〈 Π v ,R, j , i , X , y , Y , h , T ,⊥, SK ,Acc〉插入 L S

3) 如果 j = j ** 且已创建 Π u ( u )与之匹配,计算 Y = yP K =( x + hd i )( Y + h ( R j + t j P 0 )),将〈 Π v ,R, j , i , X , y , Y , h , T , K , SK ,Acc〉插入 L S ,〈 j , i , X , Y , h , T , K , SK 〉插入 L 3

4) 如果 j = j ** 且不存在 Π u 与之匹配,计算 Y = yP - h ( R j + t j P 0 )和 K = y ( X + hd i P ),将〈 Π v ,R, j , i , X , y , Y , h ,⊥, K , SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h ,⊥, K , SK 〉插入 L 3

5) 将〈 j , i , R j , R i , X , Y , h 〉插入 L 2 ,输出( Y j R j ).

Send 2 ( Π u ,I, i , j , X ,( Y j R j )).

1) 如果 u = C 执行 H 2 询问取得 h ,更新状态为〈 Π u ,I, i , j , η , X , Y , h ,⊥,⊥,⊥,Acc〉;

2) 如果 u L S 中同时存在〈 Π v ,R, j , i , X , y , Y , h , T , K , SK ,Acc〉和 Π u ,更新 Π u 为〈 Π u ,I, i , j , x , X , Y , h , T , K , SK ,Acc〉,如果不存在 Π u ,插入新的〈 Π u ,I, i , j ,⊥, X , Y , h , T , K , SK ,Acc〉;否则 L S 中存在 Π u 但不存在匹配的 Π v C 计算 T = xY K =( x + hd i )( Y + h ( R j + t j P 0 )),执行 H 2 / H 3 询问取得 h SK ,更新记录为〈 Π u ,I, i , j , x , X , Y , h , T , K , SK ,Acc〉;否则, Π u 以及与其匹配的 Π v 均未创建,则忽略该询问.

Reveal ( sid ).如果 sid sid *在 L S 中已存在,且状态为Acc,则输出相应的 SK ,并标记 sid 为Revealed;否则输出⊥.

Corrupt ( ID ).输出 ID 的长期私钥 d ID .注意, A 不能询问 ID = j ** 的长期私钥.

EpheKeyReveal ( sid ).输出 sid 的临时私钥 x ( sid 的拥有者为 i )或 y ( sid 的拥有者为 j ).注意, A 不能询问 sid *的临时私钥.

Test ( sid *).令 sid *=〈 Π ,I, i *, j *, X *, Y *〉,如果 j *≠ j ** 或存在已Revealed的会话 sid ′与 sid *相匹配,那么终止游戏.否则 C 输出随机的 SK *←{0,1} k .

Test 询问结束以后, A 可以继续执行 Test 以外的询问,但不能破坏挑战预言机的新鲜性.最后, A 返回其猜测位 b ′∈{0,1}.

上述模拟过程包含2类事件 E 1和 E 7.

事件 E 1. L S 中不存在 sid ′与 sid *相匹配, C L 3 中随机选择( T *, K *),计算 a bP =( K *- T *- h * r * j X *- h * d * i ( Y *+ h *( R * j + t * j P 0 )))/ η h * t * j ,作为对CDH挑战的回答.其中, X *= η bP j *= j ** ,( d * i , r * j , R * j , t * j )从 L ID 中取得,以下相同.

事件 E 7. L S 中存在 sid ′与 sid *相匹配, C L 3 中随机选择 K *,计算 a bP =( K *-( y *+ h * r * j ) X *- h * d * i ( Y *+ h *( R * j + t * j P 0 )))/ η h * t * j ,作为对CDH挑战的回答.其中, y *从会话 sid ′中取得.

所有的预言机模拟器有效,其输出消息在消息空间上均匀分布, A 不能发现模拟过程与真实攻击之间的差异.

引理1 . 令 event 1表示( T *, K *)(E1)或 K *(E7)在 H 3 询问中没有出现,那么 ).

引理1的论述与文献[20]中Claim 2类似.假设 H 1 / H 2 / H 3 模拟随机预言机,如果 event 1发生,那么, A 只可能在2种情况下赢得Game1:

1) A 随机猜测 SK *是否是 sid *的真实会话密钥;

2) A 知道某个已Revealed的会话 sid ″与 sid *具有相同的会话密钥.

也就是说, C 在没有察觉的情况下响应了针对 sid ″的 H 3 询问.根据 H 3 询问过程, C 对具有相同输入的 H 3 询问做出相同的应答.如果 sid ″与 sid *具有相同会话密钥,则:要么 sid ″= sid *,要么 sid ″与 sid *相匹配.根据游戏规则, sid *及其匹配会话不允许被Revealed.因此,情形2发生的概率至多为1/2 κ ( H 3 的输出发生碰撞的概率).那么: Pr [ A wins| event 1]≤1/2,

ε ( κ )+1/2= Pr [ A wins]=
Pr [ A wins| event 1] Pr [ event 1]+

1/ ].

如果游戏没有终止, A 选择了第 次会话作为挑战,且 j = j ** ,记为 event 2.那么: Pr [ event 2]≥1/ n · l .

event 3表示 C 找到了正确的( T *, K *)( E 1)或 K *( E 7),那么 C 成功的概率为

Pr [ C wins]= Pr [ event 2∧ event 3]≥
(1/ n × l × q 3 ) Pr [ ]≥(1/ n × l × q 3 ) ε ( κ ).

其中, q 3 表示 L 3 中记录的数量.

Game2 . Game2模拟事件 E 3, E 10,其模拟过程与Game1相似,下面主要描述与Game1不同之处.

初始化:按照协议生成系统参数 params ,其中, P 0 = sP s q C 选择 ∈{1,2,…, l }和 i ** ∈{ i 1 , i 2 ,…, i m }.

询问: H 1 ( ID ,#).如果 ID L ID 中存在,则输出 t ID ,否则 C 随机选择并输出 t ID q ,然后按照协议计算认证服务器的私钥,并维护 L ID .

H 2 ( j , i , R j , R i , X , Y ).与Game1相同.

H 3 ( j , i , X , Y , h , T , K ).与Game1基本相同.不同之处在于:当 i = i ** ,如果存在〈 j , i , X , Y , h , T ,⊥, SK 〉,令 Q =( K - T - hxd j P - h 2 d j ( R i + t i P 0 ))/ h C 判定 O ( Y , aP )= O ( Q , P )是否成立,若成立,则更新记录为〈 j , i , X , Y , h , T , K , SK 〉,用 K 更新 L S 中相应记录,否则随机选择 SK ←{0,1} k ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3 .

Create ( ID ).与Game1基本相同.不同之处:如果 ID = i ** C 随机选择 t ID q ,执行 H 1 询问取得 d H ,计算 R ID = t ID d H P - aP ,然后生成公钥证书 Cert ID ,将〈MN, ID , R ID ,⊥, t ID ,⊥, Cert ID 〉插入 L ID .

Send 0 ( Π u ,I, i , j ). C 随机选择 x q ,计算 X = xP ,将〈 Π u ,I, i , j , x , X ,#〉插入 L S ,输出( X Cert i ).

Send 1 ( Π v ,R, j , i ,( X Cert i )). C 创建 Π v

1) 如果 v = i = i ** C 随机选择 η q ,令 Y = η bP ,执行 H 2 询问取得 h ,若 L S 中存在 Π u ,计算 T = xY ,将〈 Π v ,R, j , i , X , η , Y , h , T ,⊥,⊥,Acc〉插入 L S ,若不存在 Π u ,则将〈 Π v ,R, j , i , X , η , Y , h ,⊥,⊥,⊥,Acc〉插入 L S

2) 否则,随机选择 y q ,计算 Y = yP T = yX ,执行 H 2 询问取得 h ,计算 K =( y + hd j )( X + h ( R i + t i P 0 ))),随机选择 SK ←{0,1} k ,将〈 Π v ,R, j , i , X , y , Y , h , T , K , SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3

3) 输出( Y j R j ).

Send 2 ( Π u ,I, i , j , X ,( Y j R j )).与Game1基本相同.不同之处:①不存在 u = 情形;②如果 i = i ** L S 中存在 Π u 但不存在 Π v 与之匹配, C 执行 H 2 询问取得 h ,计算 T = xY ,若 L 3 中存在〈 j , i , X , Y , h , T , K , SK 〉,令 Q =( K - T - hxd j P - h 2 d j ( R i + t i P 0 ))/ h ,判定 O ( Y , aP )= O ( Q , P )成立则更新记录为〈 Π u ,I, i , j , x , X , Y , h , T , K , SK ,Acc〉,否则随机选择 SK ←{0,1} k ,更新记录〈 Π u ,I, i , j , x , X , Y , h , T ,⊥, SK ,Acc〉,将〈 j , i , X , Y , h , T ,⊥, SK 〉插入 L 3 .

Reveal ( sid ).与Game1相同.

Corrupt ( ID ).输出 ID 的长期私钥 d ID .注意, A 不能询问 i = i ** 的长期私钥.

EpheKeyReveal ( sid ).与Game1相同.

Test ( sid *).与Game1基本相同.不同的是 sid *的拥有者为响应者预言机,且 i *= i ** .

最后, A 返回其猜测位 b ′∈{0,1}.

事件 E 3. C L 3 中随机选择( T *, K *),计算 a bP =( K *- T *- h * d * j X *- h *2 d * j aP )/ η h *,作为对CDH挑战的回答.

事件 E 10. C L 3 中随机选择 K *,计算 a bP =( K *-( x *+ h * d * j ) Y *- h *2 d * j aP )/ η h *,作为对CDH挑战的回答.

与Game1类似, C 成功的概率为

Pr [ C wins]≥(1/ m × l × q 3 ) ε ( κ ).

Game3 . Game3模拟事件 E 2, E 6,其模拟过程与Game1和Game2相似.

初始化:与Game2相同, C 选择 ∈{1,2,…, l }, i ** ∈{ i 1 , i 2 ,…, i m },以及 j ** ∈{ j 1 , j 2 ,…, j n }.

询问: H 1 ( ID ,#).与Game2基本相同.不同之处:如果 ID = j ** ,则计算 R ID = t ID sP - bP .

H 2 ( j , i , R j , R i , X , Y ).与Game1相同.

H 3 ( j , i , X , Y , h , T , K ).与Game1基本相同.不同之处:如果 L 3 中存在〈 j , i , X , Y , h , T ,⊥, SK 〉,

1) 当 i = i ** ,令 Q = K - T - hxbP ,判定 O ( Y + hbP , haP )= O ( Q , P )是否成立;当 j = j ** ,令 Q = K - T - hyaP ,判定 O ( X + haP , hbP )= O ( Q , P )是否成立;

2) 如果上述判定等式成立,则更新记录为〈 j , i , X , Y , h , T , K , SK 〉,用 K 更新 L S 中相应记录;否则随机选择并输出 SK ←{0,1} k ,在 L 3 中插入新的〈 j , i , X , Y , h , T , K , SK 〉.

Create ( ID ).与Game2相同.

Send 0 ( Π u ,I, i , j ).与Game2相同.

Send 1 ( Π v ,R, j , i ,( X Cert i )). C 创建 Π v ,随机选择 y q SK ←{0,1} k ,计算 Y = yP T = yX ,执行 H 2 询问取得 h ,输出( Y j R j ).

1) 如果 i = i ** j = j ** ,将〈 Π v ,R, j , i , X , y , Y , h , T ,⊥, SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h , T ,⊥, SK 〉插入 L 3 ;(这里对事件 E 2作特殊处理)如果挑战会话 Π 已更新状态为〈 Π , I , i ** , j ** , x *, X *, Y *, h *, T *,⊥,⊥,Acc〉,其中, Y *= y * P Send 2 询问的输入消息,由敌手产生,对 C 来说, y *未知,且如果 L S 中存在〈 Π u ,I, i ** , j ** , x , X ,#〉,那么 C 随机选择 η q ,计算 Y = η Y *, T = x η Y *,将〈 Π v ,R, j , i , X , η , Y , h , T ,⊥, SK ,Acc〉插入 L S ,〈 j , i , X , Y , h , T ,⊥, SK 〉插入 L 3

2) 如果 i i ** j = j ** ,存在匹配的 Π u ,计算 K =( x + hd i )( Y + hbP ),将〈 Π v ,R, j , i , X , y , Y , h , T , K , SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3 ;如果不存在 Π u ,将〈 Π v ,R, j , i , X , y , Y , h , T ,⊥, SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h , T ,⊥, SK 〉插入 L 3

3) 如果 j j ** ,计算 K =( y + hd j )( Y + hP i ),其中, P i 表示 i 的公钥,将〈 Π v ,R, j , i , X , y , Y , h , T , K , SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3 .

Send 2 ( Π u ,I, i , j , X ,( Y j R j )).与Game1基本相同,不同之处在于, C 计算 T = xY ,执行 H 2 询问取得 h

1) 如果 u = ,且 i = i ** j = j ** ,更新状态为〈 Π u ,I, i , j , x , X , Y , h , T ,⊥,⊥,Acc〉;

2) 如果 i = i ** (但 u )且 L S 中不存在匹配的 Π v ,如果 L 3 中存在〈 j , i , X , Y , h , T , K , SK 〉,令 Q = K - T - hxbP ,若判定 O ( Y + hbP , haP )= O ( Q , P )成立,则更新记录为〈 Π u ,I, i , j , x , X , Y , h , T , K , SK ,Acc〉,否则随机选择 SK ←{0,1} k ,将〈 Π u ,I, i , j , x , X , Y , h , T ,⊥, SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h , T ,⊥, SK 〉插入 L 3 .

Reveal ( sid ).与Game1相同.

Corrupt ( ID ).输出 ID 的长期私钥 d ID .注意, A 不能询问 i = i ** j = j ** 的长期私钥.

EpheKeyReveal ( sid ).输出 sid 的临时私钥.

Test ( sid *).与Game1基本相同.不同的是: i *= i ** j *= j ** ;且对于事件 E 2, C 查找〈 j ** , i ** , X ′, Y ′, h ′, T ′, K ′, SK ′〉,其中 Y ′= η Y *(见 Send 1 询问),如果该记录存在,且 K ′≠⊥,则继续,否则终止游戏.

最后, A 返回其猜测位 b ′∈{0,1}.

事件 E 2. C L 3 中随机选择 K *,并取得 K ′,令:

y * aP =( K ′- η x Y *- h x bP - h 2 abP )/ η h ′,

K *= x * Y *+ h * x * bP + h * y * aP + h *2 abP .

2个等式合并求解:

abP =

作为对CDH挑战的回答.

事件 E 6. C L 3 中随机选择 K *,计算 a bP =( K *- T *- h * x * bP - h * y * aP )/ h *2 ,作为对CDH挑战的回答.

与Game1类似, C 成功的概率为

Pr [ C wins]≥(1/ m × n × l × q 3 ) ε ( κ ).

说明.上述模拟过程中,对事件 E 2的特殊处理是因为 Y *= y * P 由敌手产生, C 无法同时求解2个CDH问题实例( y * P , aP , y * aP )和( aP , bP , abP ).通过上述方式,让敌手提供其中一个解 y * aP .

Game4 . Game4模拟事件 E 4, E 9,其模拟过程与Game3基本一致,不同之处是挑战会话的拥有者为 j ** ,这里不再详述.对于事件 E 4,采用与 E 2相同的方式处理.

Game5,Game6分别模拟事件 E 5, E 8,其模拟过程与Game1~Game4类似,Game5,Game6的区别在于挑战会话的拥有者不同.

Game5 . 初始化:与Game2相同, C 选择 , γ ∈{1,2,…, l },且 γ .

询问: H 1 ( ID ,#).与Game2相同.

H 2 ( j , i , R j , R i , X , Y ).与Game1相同.

H 3 ( j , i , X , Y , h , T , K ).如果〈 j , i , X , Y , h , T , K , SK 〉在 L 3 中存在, C 直接输出 SK ;否则,随机选择 SK ←{0,1} k ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3 ,输出 SK .

Create ( ID ).与Game2相同.

Send 0 ( Π u ,I, i , j ).与Game1基本一致.不同之处:挑战会话不要求 j = j ** .

Send 1 ( Π v ,R, j , i ,( X Cert i )). C 创建 Π v

1) 如果 v = γ ,且 X = η bP (否则终止游戏), C 随机选择 μ q ,令 Y = μ aP ,执行 H 2 询问取得 h ,将〈 Π v ,R, j , i , X , μ , Y , h ,⊥,⊥,⊥,Acc〉插入 L S ,同时更新 Π 为〈 Π , I , i , j , η , X , Y , h ,⊥,⊥,⊥,Acc〉;

2) 否则,随机选择 y q SK ←{0,1} k ,计算 Y = yP ,执行 H 2 询问取得 h ,计算 K =( y + hd j )( X + hd i P ), T = yX ,将〈 Π v ,R, j , i , X , y , Y , h , T , K , SK ,Acc〉插入 L S ,将〈 j , i , X , Y , h , T , K , SK 〉插入 L 3

3) 输出( Y j R j ).

Send 2 ( Π u ,I, i , j , X ,( Y j R j )).与Game1相同.

Reveal ( sid ).与Game1相同.

Corrupt ( ID ).输出 ID 的长期私钥 d ID .

EpheKeyReveal ( sid ).输出 sid 的临时私钥. A 不能询问 sid *及其匹配会话的临时私钥.

Test ( sid *).与Game1基本相同,但不要求 j *= j ** .

最后, A 返回其猜测位 b ′∈{0,1}.

事件 E 5. C L 3 中随机选择( T *, K *),计算 a bP =( K *- T *- h * d j * η bP - h * d i * μ aP )/ μ η 回答CDH挑战.

与Game1类似, C 成功的概率为

Pr [ C wins]≥(1/ l 2 × q 3 ) ε ( κ ).

Game6 . Game6与Game5基本一致,这里不再描述.

证毕.

3 . 3 匿名性分析

漫游过程中,MN始终使用临时的身份 R M r * M ),其中, r * M q 是由HS随机选择的值且随后被安全删除. 可看成在 q 上随机均匀分布,除HS外,任何实体都不能将其与MN的真实身份 ID M 联系起来.因此,协议满足匿名性.

然而,由于每次认证使用相同的证书 Cert M ,不能避免对MN的追踪(尽管不能识别MN的真实身份).为了避免追踪(强的匿名性),在节点注册阶段产生 j 个临时身份:选择 r * M ,{ } j ,{ r M } j q ,计算 T ),则证书为 Cert M =( ID H ‖{ t ′} j ‖{ R M } j T ‖{ σ C } j ),认证密钥为{ d M } j .每次认证依次采用第 i 个证书 t i T 和私钥 其中, ID H 和时间 T 与MN身份无关.这样保证了每次使用的证书是不同的临时身份,实现了不可追踪性.

3 . 4 分析与比较

表1和表2对最近提出的5种两方漫游认证协议进行了对比分析.

Table 1 Comparison of Security

表1 安全性比较

ProtocolsSecurityKCIwFPSESRAnonymityAuthenticationMethodHardProblemandAssumptionSecurityModelRef[9]√√×√explicitCDH∕BDHCKRef[11]√√×√explicitCDH∕BDHCKRef[12]√√×√explicitCDHCKRef[13]√√×√explicitCDH∕BDHCKRef[10]√√×√explicitk⁃CAA∕BDHCK⁃likeOursScheme√√√√implicitCDHeCK

Notes: “√” means the protocol achieves the security property; “×” means the protocol doesn’t achieve the security property.

Table 2 Comparison of Protocols Performance

表2 协议性能比较

ProtocolsComputationOverhead(MN∕FS)CommunicationOverhead(Sent∕Receive)∕timesSent∕bReceive∕bStorageOverheadRequiredCryptographicPrimitivesRef[9]2M+3E+1SV∕2P+1M+3E+1SS2∕1723218361para+j(2g+2z)+nidECC∕PBC∕DS∕HashRef[11]5M+1PKE+1SV∕4M+2P+2PKD+1SS1(+1)∕14088(+160)966(+160)1para+4z+(n+1)gECC∕PBC∕PKC∕DS∕HashRef[12]3M+1PKE+2PKD∕4M+1PKD+2PKE+1SV1(+1)∕13816(+160)1286(+160)1para+4z+(n+2)gECC∕PKC∕DS∕HashRef[13]6M+1PKE+1PKD∕5M+3P+1PKD+1PKE1(+1)∕13880(+160)854(+160)1para+4z+(n+1)g+nidECC∕PBC∕PKC∕DS∕HashRef[10]4M+1E∕1P+5M2∕132829181para+j(1g+3z)+nidECC∕PBC∕HashOursScheme5M∕8M1(+1)∕12882(+160)1676(+160)1para+1g+5zECC∕Hash

Notes:“ M ” represents a scalar multiplication in G . “ E ” represents an exponentiation in G T . “ P ” represents a pairing computation. “ PK E ” represents a public key encryption, and “ PK D ” represents a public key decryption. “ S S ” represents a digital signature, and “ S V ” represents verifying a signature. “ para ”, “ z ”, “ g ” and “ id ” represent a storage section occupied by system public parameters, an element in q , an element in G , and an identity, respectively. “ECC”, “PBC”, “PKC” and “DS” represent elliptic curve cryptography, pairing-based cryptography, public key cryptosystem, and digital signature scheme, respectively.

表1对协议安全性进行了比较.文献[9-13]采用了CK模型,没有考虑用户的临时秘密泄露攻击,因此,不满足ESR安全性.考虑这样一种场景,当MN发送了初始认证消息,然后被敌手所劫持,此时会话的临时秘密存储在内存中,敌手能读取会话的临时秘密完成该会话.而本文协议在步骤3计算 K M 时需要访问MN的认证私钥.对于手持式设备(如智能手机),可以在访问其私钥时输入口令密码,则敌手无法访问,因而无法完成认证.更有甚者,敌手能根据内存中的消息恢复出MN的认证私钥,以Tsai等人 [10] 协议为例,敌手能恢复出 ).而本文协议中,敌手即使获得全部的会话状态信息( x , y , K M , K F )也无法恢复MN的认证私钥(面临求解椭圆曲线上的离散对数问题),这是采用隐式认证方式的优势之一.此外,正如文献[11-12]结论部分指出的那样,Zhou等人 [11-13] 协议在面临认证服务器私钥泄露的情况下是脆弱的.以Zhou等人协议 [11] 为例,远程服务器的私钥泄露会导致移动节点的秘密参数泄露,从而使得移动节点被仿冒,具体描述如下(限于论文篇幅,这里不再复述相关协议,具体内容请参考文献[11]).假设移动节点 i 与远程服务器 j 完成了1次会话,攻击者 A 记录了该次会话消息 Enc ( PK j , ID H TID i Message ).该消息由 j 的公钥 PK j 加密,其中, ID H 是家乡服务器身份, TID i 是移动节点的临时身份, 是时间戳, Message =( AUTHEN , U i , V i , W i , Y , M i )是移动节点的认证消息, U i = sR V i = sCP W i = sTP Y = yP M i = yH ( Y ,0)+ sT AUTHEN 是家乡服务器为 i 生成的身份凭证(相当于公钥证书).其中, P 是群的生成元, s , y q 由移动节点 i 随机选择,( R , C , T )是 i 的公、私钥.随后,认证服务器 j 的私钥泄露, A 解密消息获得( ID H , TID i , AUTHEN , U i , V i , W i , Y , M i )(对 A 来说,( s , y ,R, C , T )仍然未知). A 仿冒移动节点 i :首先,随机选择 y ′∈ q ,计算 Y ′= y P = y H ( Y ′,0)+ M i = H ( Y ,0) Y + U i = V i = H ( Y ,0) Y + W i ,然后生成新的会话消息 Enc ( PK l , ID H TID i Message ′‖ 发送给认证服务器 l ,其中 是新的时间戳, Message ′=( AUTHEN , , , , Y ′, ).收到该消息后, l 解密消息并按照协议验证等式 e ( - , P )= e ( , PK H )和 P = H ( Y ′,0) Y ′+ 是否成立.由于 - = W i - U i = V i ,则 e ( - , P )= e ( , PK H )等价于 e ( W i - U i , P )= e ( V i , PK H );同时 P = y H ( Y ′,0) P + M i P = y H ( Y ′,0) P + yH ( Y ,0) P + sTP = H ( Y ′,0) Y ′+ H ( Y ,0) Y + W i P = H ( Y ′,0) Y ′+ .其中, PK H 是家乡服务器公钥.可以验证,上述等式成立, A 成功仿冒了移动节点 i 的身份通过了服务器的认证. A 计算会话密钥 SK = H ( y X ,1).其中, X = xP 是服务器用于生成会话密钥的参数.至此,攻击者 A 成功仿冒了移动节点 i 的身份进行漫游认证,并计算了一致的会话密钥,攻击成立.

表2对比了相关协议的计算、通信和存储开销.以80 b安全等级为基准,参考文献[28]的实验数据,采用基于超奇异椭圆曲线上的有限域 E ( F 2 m ), q G G T 上的元素分别为160 b,758 b,1 516 b.假定用户 ID 为20 B,时间数据为6 B.

由于各协议采用不同的系统参数,其中,Jo等人 [9] 协议、Zhou等人协议 [11-13] 和Tsai等人 [10] 协议采用双线性映射群,Zhou等人 [11-13] 协议使用了公钥加密和数字签名方案(未具体说明所采用的相关算法),Jo等人协议使用了ECDSA方案,因此,很难做出完全一致的对比.总之,本文协议需要实现的算法库最少,计算、通信和存储开销均为最低.

计算方面,在MN端本文协议和Tsai协议相近,周彦伟等人提出的方案由于使用多次公钥加密和数字签名方案,计算量较高;在FS端本文协议开销最低,Tsai协议略高(根据基于MIRACL库的算法实现 [28] ,1 P ≈4 M ).

通信方面,列举了MN的通信开销(FS则相反),所有协议实际都是发送2次/接收1次(带密钥确认,周彦伟等人协议忽略了密钥确认的步骤,为了保持一致性,采用类似本文的密钥确认方法,在发送和接收部分各增加160 b的密钥确认消息).总的通信开销对于智能手机差别不大,但是对于传感器节点还是有较大差别.以文献[17]的实验数据为基础,MICA2节点发送和接收1 B数据消耗能量分别约为52.2 μJ和19.3 μJ.总的通信能量消耗分别约为:23.6 mJ(本文协议)、23.7 mJ(Tsai协议)、28.9 mJ(Zhou协议)、29.5 mJ(Zhou协议)、30.5 mJ(Zhou协议)、52.6 mJ(Jo协议).

存储方面,本文协议需要的存储空间更少.周彦伟等人协议的漫游认证阶段第1个步骤,MN使用了FS的公钥加密消息,因此,需要预存FS的公钥(假设为 n 个);Tsai协议和Jo协议每次漫游采用不同的临时身份和认证密钥(为了避免追踪),需要预存 j 个认证密钥以及临时身份信息( j 为最大的认证次数),此外,该协议在第1步的计算中需要输入FS的ID,因此需要存储 n 个ID值;本文协议在步骤1的计算中不涉及FS的信息,FS的ID和公钥参数在步骤2中接收,无需预先存储,因此,本文协议仅需要存储公开参数、证书及私钥.根据3.3节的分析,为了实现不可追踪性,本文协议需要的存储空间为1 para + j (1 g +4 z )+1 z .

4 结束语

本文提出一种新的在移动漫游接入服务中的两方认证密钥协商方案.本文方案的特点是:所采用的公钥算法完全基于椭圆曲线上的点乘运算,对移动节点在算法支持方面的要求更低,计算、通信和存储开销也更低;采用了隐式认证技术,在实现匿名性的同时安全性更强,能抵抗临时秘密泄露的攻击;通过扩展,新方案能实现移动节点的不可追踪特性.此外,本文扩展了ID-BJM模型,使之能模拟两方漫游认证与密钥协商方案,并且使用扩展的ID-BJM模型证明了新方案达到eCK安全.

本文的漫游认证模型是建立在单一认证权威框架下的,具有全局统一的公开参数.对于多认证权威或者无全局认证权威(服务器对等模式)结构模型下的漫游认证方案还需要进一步研究.在该类网络结构中,不同的认证域拥有不同的系统参数,对密码算法的要求也不同,因此,对漫游认证方案的设计提出更高的要求.

参考文献

[1]Zou Yulong, Zhu Jia, Wang Xianbin, et al. A survey on wireless security: Technical challenges, recent advances, and future trends[J]. Proceedings of the IEEE, 2016, 104(9): 1727-1765

[2] Jiang Yixin, Lin Chuang, Shen Xuemin, et al. Mutual authentication and key exchange protocols for roaming services in wireless mobile networks[J]. IEEE Trans on Wireless Communications, 2006, 5(9): 2569-2577

[3] Cao Chunjie, Yang Chao, Ma Jianfeng, et al. An authentication protocol for station roaming in WLAN mesh[J]. Journal of Computer Research and Development, 2009, 46(7): 1102-1109 (in Chinese)(曹春杰, 杨超, 马建峰, 等. WLAN Mesh漫游接入认证协议[J]. 计算机研究与发展, 2009, 46(7): 1102-1109)

[4] Wang Liangmin, Jiang Shunrong, Guo Yuanbo. Composable secure authentication protocol for mobile sensors roaming in the Internet of things[J]. Scientia Sinica: Informationis, 2012, 42(7): 815-830 (in Chinese)(王良民, 姜顺荣, 郭渊博. 物联网中移动Sensor节点漫游的组合安全认证协议[J].中国科学: 信息科学, 2012, 42(7): 815-830)

[5] Mun H, Han K, Lee Y S, et al. Enhanced secure anonymous authentication scheme for roaming service in global mobility networks[J]. Mathematical and Computer Modelling, 2012, 55(1/2): 214-222

[6] Shin S, Yeh H, Kim K. An efficient secure authentication scheme with user anonymity for roaming user in ubiquitous networks[J]. Peer-to-Peer Networking and Applications, 2015, 8(4): 674-683

[7] Yang Guomin, Huang Qiong, Wong D S, et al. Universal authentication protocols for anonymous wireless communi-cations[J]. IEEE Trans on Wireless Communications, 2010, 9(1): 168-174

[8] He Daojing, Chen Chun, Chan S, et al. Secure and efficient handover authentication based on bilinear pairing functions[J]. IEEE Trans on Wireless Communications, 2012, 11(1): 48-53

[9] Jo H J, Paik J H, Lee D H. Efficient privacy-preserving authentication in wireless mobile networks[J]. IEEE Trans on Mobile Computing, 2014, 13(7): 1469-1481

[10] Tsai J L, Lo N W. Provably secure anonymous authenti-cation with batch verification for mobile roaming services[J]. Ad Hoc Networks, 2016, 44: 19-31

[11] Zhou Yanwei, Yang Bo. Provable secure authentication protocol with direct anonymity for mobile nodes roaming service in Internet of things[J]. Journal of Software, 2015, 26(9): 2436-2450 (in Chinese)(周彦伟, 杨波. 物联网移动节点直接匿名漫游认证协议[J]. 软件学报, 2015, 26(9): 2436-2450)

[12] Zhou Yanwei, Yang Bo, Zhang Wenzheng. Secure and efficient roaming authentication protocol with controllable anonymity for heterogeneous wireless network[J]. Journal of Software, 2016, 27(2): 451-465 (in Chinese)(周彦伟, 杨波, 张文政. 安全高效的异构无线网络可控匿名漫游认证协议[J]. 软件学报, 2016, 27(2): 451-465)

[13] Zhou Yanwei, Yang Bo, Zhang Wenzheng. Controllable and anonymous roaming protocol for heterogeneous wireless network[J]. Acta Electronica Sinica, 2016, 44(5): 1117-1123 (in Chinese)(周彦伟, 杨波, 张文政. 异构无线网络可控匿名漫游认证协议[J]. 电子学报, 2016, 44(5): 1117-1123)

[14] Hu Zhihua, Liu Xiaojun. A roaming authentication protocol based on non-linear pair in IoT[J]. Journal of Sichuan University: Engineering Science Edition, 2016, 48(1): 85-90 (in Chinese)(胡志华, 刘小俊. 物联网中基于非线性对的漫游认证协议研究[J]. 四川大学学报: 工程科学版, 2016, 48(1): 85-90)

[15] Barreto P S L M, Libert B, McCullagh N, et al. Efficient and provably-secure identity-based signatures and signcryp-tion from bilinear maps[G] //LNCS 3788: Proc of ASIACRYPT 2005. Berlin: Springer, 2005: 515-532

[16] Canetti R, Krawczyk H. Analysis of key-exchange protocols and their use for building secure channels[G] //LNCS 2045: Advances in Cryptology — EUROCRYPT 2001. Berlin: Springer, 2001: 453-474

[17] Cao Xuefei, Kou Weidong, Dang Lanjun, et al. IMBAS: Identity-based multi-user broadcast authentication in wireless sensor networks[J]. Computer Communications, 2008, 31(4): 659-667

[18] Nehéz M, Olejár D, Demetrian M. On emergence of dominating cliques in random graphs[EB/OL]. 2008 [2016-09-01]. https://arxiv.org/abs/0805.2105

[19] Boneh D, Franklin M. Identity-based encryption from the weil pairing[G] //LNCS 2139: Proc of CRYPTO 2001. Berlin: Springer, 2001: 213-229

[20] Chen Liqun, Cheng Zhaohui, Smart N. Identity-based key agreement protocols from pairings[J]. International Journal of Information Security, 2007, 6(4): 213-241

[21] Chen Ming. Escrowable identity-based authenticated key agreement in the standard model[J]. Acta Electronica Sinica, 2015, 43(10): 1954-1962 (in Chinese)(陈明. 标准模型下可托管的基于身份认证密钥协商[J]. 电子学报, 2015, 43(10): 1954-1962)

[22] LaMacchia B, Lauter K, Mityagin A. Stronger security of authenticated key exchange[G] //LNCS 4784: Proc of the Int Conf on Provable Security (ProvSec 2007). Berlin: Springer, 2007: 1-16

[23]Krawczyk H. HMQV: A high-performance secure Diffie-Hellman protocol[G] //LNCS 3621: Advances in Cryptology — CRYPTO 2005. Berlin: Springer, 2005: 546-566

[24] Lynn B, Shacham H, Steiner M, et al. PBC Library[CP/OL]. [2016-12-20]. http://crypto.stanford.edu/pbc/

[25] Fiore D, Gennaro R. Making the Diffie-Hellman protocol identity-based[G] //LNCS 5985: Proc of Cryptographers’ Track at the RSA Conf. Berlin: Springer, 2010: 165-178

[26] Cheng Qingfeng, Ma Chuangui. Ephemeral key compromise attack on the IB-KA protocol[OL]. [2016-12-20]. http://eprint.iacr.org/2009/568

[27] Schnoor C P. Efficient signature generation for smart card[J]. Journal of Cryptology, 1991, 4(3): 161-174

[28] He Daojing, Chan S, Guizani M. Handover authentication for mobile networks: Security and efficiency aspects[J]. IEEE Network, 2015, 29(3): 96-103

Strongly Secure Anonymous Implicit Authentication and Key Agreement for Roaming Service

Chen Ming

( College of Mathematics and Computer Science , Yichun University , Yichun , Jiangxi 336000) ( State Key Laboratory of Trusted Computing and Information Assurance ( Institute of Software , Chinese Academy of Sciences ), Beijing 100190)

Abstract The existing two-party authentication and key agreement protocols for roaming service are provably secure in the CK model, and do not resist the attack of ephemeral secrets reveal. Based on elliptic curve cryptography and identity-based cryptosystem, we propose an anonymous two-party authentication and key agreement scheme for roaming service. The new scheme, based on the Schnorr signature, achieves mutual implicit authentication by a well designed “challenge-response” signature which is similar to the one in the HMQV protocol. We extend the ID-BJM model, a widely used security model for analyzing identity-based authenticated key agreement protocols, to simulate two-party authentication and key agreement schemes for roaming service. Furthermore, we demonstrate that the new scheme is eCK secure under the extended ID-BJM model, and that the security of the new scheme can be reduced to solve (by a polynomial-time adversary) computational Diffie- Hellman problems on an elliptic curve over finite fields. Comparative analysis shows that the new scheme has stronger security, achieves resistant to ephemeral secrets reveal, needs fewer cryptography libraries, and has lower computing, communication and storage overheads. The new scheme can be used to provide secure roaming authentication for resource constrained mobile terminals in global mobility networks, Internet of things or ubiquitous networks.

Key words authenticated key agreement; mobile roaming service; identity-based cryptosystem; implicit authentication; computational Diffie-Hellman problem; eCK model

收稿日期: 2016-06-28;

修回日期: 2017-07-04

基金项目: 国家自然科学基金项目(61662083);江西省自然科学基金项目(2014ZBAB207022);江西省教育厅科学技术研究项目(GJJ151040,GJJ151037)

This work was supported by the National Natural Science Foundation of China (61662083), the Natural Science Foundation of Jiangxi Province of China (2014ZBAB207022), and the Science & Technology Research Project of Jiangxi Provincial Education Department (GJJ151040, GJJ151037).

中图法分类号 TP309

Chen Ming , born in 1978. PhD. Member of the CCF. Lecturer of Yichun University. His main research interests include information security, security protocol and formal methods.