一种在移动客户机-服务器环境下基于配对的高效远程用户认证和密钥协商协议摘要随着移动设备在性能和服务方面的持续评估,安全问题急剧增长。为了提供移动客户服务器环境下安全的通信,很多来自于配对的用户认证协议已经被提出。2009年,Goriparthi等人为客户-服务器环境提出了一种新的用户身份认证方案。2010年,吴等人证明Goriparthi等人的协议并不能在客户端和服务器之间提供相互认证和密钥协议。为了提高安全性,吴等人提出了一种改进协议并且证明该协议可以在随机的oracle模型中保证安全。基于吴等人的成果,Yoon等人提出了另外一种方案来提高性能。然而他们的方案仅仅是减少了一个作用在客户端和服务器端的哈希函数。在这篇论文中我们提出一种新的用户认证和密钥协商协议,用于移动客户-服务器环境下的双线性配对。性能分析表明我们的协议比吴等人的协议和Yoon等人的协议有更好的性能。我们的协议更加适合移动客户-服务器环境。安全性分析也证明我们提出的协议可以抵挡先前的攻击。1、引言随着移动网络的快速发展,手持设备(如pda和移动电话)在很多移动应用被广泛和流行使用,例如网上购物、网上银行和付费电视。因此基于不安全通信通道的安全远程用户身份验证的安全性成为确保公平交易的一个非常重要的事情。从而移动客户-服务器环境的远程用户认证和密钥协商协议已经被广泛研究。一般来说,远程客户端身份验证通常由传统的公开密匙加密实现[1,2]。但是由于移动设备的计算能力和电池容量有限,传统的模运算计算所需要的公共密钥密文是不适用于移动设备的。为了解决这个问题,椭圆曲线密码体制(ECC)(3、4)因为它较小的尺寸,较快的计算速度等显著的优点被采用。因此,基于ECC的身份验证协议比其他密码体制更适合移动设备。然而,像其他公开密钥加密算法一样,ECC也需要一个公钥设备(PKI)来维护用户的公钥证书。随着用户数量的增加,KPI需要很大的存储空间来存放用户的公钥和证书。此外,在这些协议中需要额外的计算量来核查其他证书。为了解决上述问题,Shamir[5]提出基于ID的公钥密码系统。与传统的公钥认证系统相比,基于ID的公钥系统可以简化证书管理。然而系统的缺点在于用户的私钥必须由密钥生成中心(KGC)产生。因为Shamir的安全系统是基于整数因子分解问题的,并不具有实用性。幸运的是Boneh和Franklin[6]在2001年从Weil配对定义的椭圆曲线中提出了一种实用的基于ID的加密协议。自那时起,双线性远程客户端身份认证协议被广泛的研究。2006年Das等人[7]提出了一种双线性的带有智能卡的远程客户端认证协议。然而,他们的协议遭受到了伪造攻击[8]。后来,两个基于Das等人协议的改进协议[9,10]被提出。之后,Fang和Huang提出的一种改进协议克服了之前提到的伪造攻击。然而,Giri和Srivastava[10]证明了Fang等人提出的改进协议在对抗另外一种伪造攻击(或者说离线攻击)时依旧是不安全的。Giri等人的改进是在智能卡上使用公钥加密算法。在2008年,Tseng[11]等人为带有智能卡的无线客户提出了一种安全可被证明的,高效的双线性客户机身份认证协议。2009年,Goriparthi等人[12]在Das等人的远程用户认证协议基础上也提出了另外一种高效的协议。然而这些协议[7、9、10、12]不提供客户端和服务器之间的双向认证和密钥协议。为了提高安全性,Wu和Tseng[13]提出了一种改良协议并且证明他们的协议在随机的oracle模型中是安全的。基于Wu等人的成果,Yoon和Yoo[14]为移动客户-服务器环境提出了另外一种用户认证和密钥协商协议来提高性能。然而他们的方案仅仅是减少了一个作用在客户端和服务器端的哈希函数。在这篇论文中我们提出一种新的用户认证和密钥协商协议,用于移动客户-服务器环境下的双线性配对。性能分析表明我们的协议比吴等人的协议和Yoon等人的协议有更好的性能。我们的协议更加适合移动客户-服务器环境。安全性分析也证明我们提出的协议可以抵挡先前的攻击。本文其余部分组合架构如下。第2部分描述了一些预备知识。在第三部分中我们提出了我们高效的双向认证和密钥协商协议。该协议的安全性分析在第四部分提出。第五部分,阐述了性能分析和一些实验结果。最终结论在第六部分给出。2、预备知识G1是椭圆曲线上的q阶加法循环群,G2是有限域上的q阶乘法循环群,双线性配对可表示为,具有如下一些性质:1)双线性其中2)非退化性3)可计算性对所有的,存在有效的多项式时间算法计算。Weil和Tate配对结合了超奇异椭圆曲线或者交换种类可以被修改来创建这样的可容许的配对。接下里的问题是假定在多项的时间里是难以解决的。定义一:(计算性Diffie–Hellman问题)。给定,很难计算定义二:(碰撞攻击设想K-CCA问题)。对于一个整数k和,给定和,去计算情况下的是很困难的。3、我们的协议我们提出的协议包括三个阶段:设置阶段、提取关键阶段以及用户认证和密钥协商阶段。我们描述如下:3.1设置阶段输入一个安全参数l,算法运行如下。1)选定一个G1是椭圆曲线上的q阶加法循环群,G2是有限域上的q阶乘法循环群,双线性配对可表示为。2)计算3)选择一个随机主键,并设置主公开密钥4)选择密钥哈希函数系统参数主键3.2关键提取阶段该算法使用系统参数,主键和用户的标识符ID作为输入,生成局部私钥。Schnorr的签名方案是一种基于离散对数问题的签名方案,他在对抗随机的oracle模型中的自适应性选择消息袭击中被证明是安全的。我们使用Schnorr的数字签名方案来生成部分私钥如下。1)选择随机数字计算和2)计算客户端的私钥3)传递和给为了去传递和私钥给客户端,需要用到两种方法,且每一种仅需要执行一次,一种是离线的方法,服务器储存身份和私钥,在一个智能卡里并返回他们给客户端另外一种是在线的方法。当客户端通过网络与服务器连接,服务器可能会用到https模式下的安全套接字层协议(SSL)来传递和私钥给客户端3.3用户认证和密钥协商协议阶段在这个阶段,低能耗的客户端C与服务器S通信。这个阶段如图1所示。详细的通信步骤描述如下:图11)客户端C随机选择一个整数计算和然后客户端C发送给服务器S。2)接收后服务器S计算然后S随机的选择一个整数并计算和最后,服务器S发送给客户端C。3)接收后,客户端C首先验证时候等于如果等于,C计算和一个共同的会话密钥然后C用来计算并且发送给服务器S。4)接收到之后,服务器S计算验证是否等于g。如果相等,服务器S计算一个共同的会话密钥这个协议是正确的因为:从而,客户端C和服务器S同意的会话密钥可以计算为:4、安全性分析在这一部分我们将要用随机的oracle模型来分析协议的安全性。在这种模型中,每一部分涉及的会话被看做一个oracle和一个可以通过指定的一些查询来访问oracle的敌对者。4.1安全性模型在本节,我们描述对手的能力和列举一种双向认证和密钥协商协议的安全性需求。下面的定义和安全需求,读者可以参考详情[18,19]。对手A是一个概率多项式时间机器。我们允许A通过访问如下所述的一系列oracle在提出的协议中潜在的控制所有的通信。需要注意的是我们表示参与者P的一个实例m为,其中。提取:在这个查询模型中,一个对手A可以得到与身份相一致的私钥。发送:对手A可以发送信息M给oracle的查询模型满足当接收到M,根据提出的协议,进行计算并给出答案。当对手A使得这个散列查询信息m,oracle返回一个随机数字r并记录在列表中,其中满足初值为空且显示:在这个查询序列中,如果oracle已经接收,对手A可以从oracle中得到一个会话密钥,否则,返回null给对手。损失:在这个查询模型中,对手A可以对客户端C发布一个查询,并取得他的私钥。测试:对手A发送一个简单的查询来测试oracle。收到这个查询之后,oracle翻转一个公平的硬币b。如果b=1,返回会话密钥。否则返回一个随机字符串。这个查询测试会话密钥的语义安全。一个没有身份验证对手的密钥协商性能可以进行发送,揭示,损坏和测试查询。注意对手的能力可是使得在可适应的选择信息攻击下进行有限的查询[18]。在执行协议p中,如果A要求一个简单的测试查询新的oracle,并且正确的猜出了在测试查询中被选中的b,那么我们说对手A赢了(打破P的AKE安全性的游戏)。认证密钥协议(AKA)的优势是两次赢得比赛的可能性为-1.(对手可能赢的概率为1/2.乘以2并减去一个简单的可缩放这种可能性)。我们通过表示AKA的优势。如果是极小的,协议P是AKA保护。在执行协议P时,我们说如果A可以伪造认证“V”,对手A就违反了客户端到服务器的身份验证。这意味着这种事件以及C2S的可能性和分隔开。类似的,如果A可以伪造用户认证的“Auth”,我们说对手A违反了服务器到客户端的身份验证。也意味着这种事件以及S2C的可能性和分隔开。如果和极其微小,我们说协议P是MA保护。4.2安全性分析这里我们说明所提出的协议可以实现客户端到服务器的认证,服务器到客户端的认证以及随机oracle模型下的密钥协商。安全定理组织如下:在定理1中,我们说明该协议提供的客户端到服务器的认证和服务器到客户端的认证。在定理2中,说明该协议提供的密钥协商。定理1:让S2C和C2S分别表示对手A可以分别违反服务器到客户端的身份验证和客户端到服务器的身份验证。使得和成为S2C和C2S的可能性,从而和是极其微小的,我们的方案是MA保护。论证,我们将展示如果一个对手违反了服务器到客户端的身份验证或者客户端到服务器端的身份验证,我们可以构造一个算法来分别解决CDH问题或者K-CAA问题。1)让S2C表示对手A可以违反服务器到客户端的身份验证,也就是某个oracle被接收,但是没有oracle与之匹配。让成为S2C的概率事件,且不可忽略;然后我们可以构造一个算法F来解决A的CDH问题。对于CDH问题的一个实例,F模拟系统的初始化算法来生成系统参数。和是被F控制的四个随机oracle.让和作为发送查询和散列查询,其中F满足,猜想A可以抵抗oracle违反服务器与客户端身份验证,并能与A相互作用如下。查询:F保存了一个向量的列表。当A基于查询oracle,F响应如下:如果在元组中在中,F返回,否则F随机选一个没有被F选过的整数,并把插入中,返回。查询:F保存了一个向量的列表。当A基于查询oracle,F响应如下:如果在中,则F返回h.否则,F选择一个随机的h,插入新的元组并插入中。F返回h。查询:F保存了一个向量的列表。当A基于查询oracle,F响应如下。如果在中,F返回h。否则F随机选择h,插入新元组并插入,F返回h。查询:F保存了一个向量的列表。当A基于查询oracle,F反应如下。如果在中,F返回h。否则F随机选择h,插入新元组中,插入。F返回h。查询:F保存了一个向量的列表。当A基于查询oracleExtract,F响应如下:如果基于在元组中,F返回。否则,F选择一个随机数字计算设置把和分别插入和中,返回。查询:如果,F返回,否则F取消游戏。查询:当对手A做出一个查询,F反应如下。如果,F设置并返回。否则F生成一个随机数字,计算,并返回。当对手A做出一个查询,F反应如下。如果oracle和oracle匹配,F取消游戏。否则F随机的选择一个整数,并计算和,其中F知道的值。最后服务器F返回。当对手A做出一个查询,F根据协议的描述做出响应,其中F知道客户端C的和的值。查询:当对手A做出一个查询,F响应如下。如果没有被接收或者,F返回,否则F检测,并且返回相配的h。A把选作挑战oracle的概率为。在这种情况下,A将不会做或者查询,所以F将不会中止。如果F可以在这个游戏中获胜,F必须以极大的概率完成了表单的相匹配的查询,因为是一个随机的oracle。从而F可以以概率在中找到相匹配的项,并输出作为CDH问题的一个解。所以如果对手以不可忽略的概率计算出了正确的会话密钥,那么S解决C