一种轻量级基于证书的认证密钥协商方案①

2021-01-22 05:43光笑黎张露露刘继增
计算机系统应用 2021年1期
关键词:公钥密钥椭圆

光笑黎,张露露,刘继增

(长安大学 信息工程学院,西安 710064)

随着新一代蜂窝网络通信技术(5G)的快速发展,将5G 通信技术应用于日常生活中是目前的发展趋势[1].针对5G 车联网环境下的终端用户与用户之间安全连接的需求,认证密钥协商是建立用户间安全连接的关键.虽然5G 技术可以显著地提高消息的传输效率,但许多现有的认证方案是基于复杂的双线性对运算,计算时间太长,不适合时延敏感的5G 网络,为了构建适用于5G 通信环境的实时认证密钥协商协议,需要尽可能地减少密钥协商时间.

基于公钥基础设施的认证密钥协商[2]中,用户的公、私钥是通过数字证书发放,通信效率低,计算量大,同时证书的存储和管理开销也大.为了避免公钥证书的使用,Shamir 等人[3]引入基于身份的密码体制概念,基于身份的密码体制中,用已知的身份信息作为公钥,来避免使用公钥证书,虽然简化了传统公钥密码系统中公钥的管理,但是存在密钥托管问题,为了克服以上问题,Alriyami 等人[4]提出基于无证书的公钥密码体制,用来解决密钥托管问题,避免公钥证书的使用,但可信的密钥生成中心生成的部分私钥需要通过安全信道传给用户[5-7],建立安全信道开销较大,不适用于5G 车联网环境.基于证书的公钥体制中[8-12],每个用户生成一个公/私钥对,并将公钥发送给受信任的证书颁发机构(TA)用来请求证书,然后将证书发送给它的所有者.在基于证书的公钥密码体制中,因为TA 不知道用户私钥,解决了密钥托管问题;因为证书不需要保持私密,也没有密钥分发问题,不需要建立安全信道,更适用于5G 环境.

本文给出了一个基于证书的认证密钥协议的构造,并定义了CB-AKA 协议的安全模型,克服了通信环境中存在着数据泄露、会话密钥泄漏、重放、中间人攻击、公钥替换攻击和模拟攻击,缺乏匿名性和不可追踪性等安全和隐私问题.为了更好的适用于5G 通信环境,采用无双线性对的认证方法,保证计算代价和通信代价.在密钥协商时,用匿名[13,14]保证用户数据的隐私,同时用轻量级的算法[15-17]保证用户之间安全快速的传输数据,实现用户之间的安全接入.

1 背景知识

1.1 双线性对

令 G,GT是素数阶p的两个循环群组,g为 G的生成元.假设e:G× G→GT为双线性映射,则其满足下列性质:

双线性:e(ga,hb)=e(g,h)ab,g,h∈G,a,b∈Zp.

非退化性:e(g,h)≠1.

可计算性:对任意g,h∈G,存在一个有效的算法

计算e(g,h).

1.2 椭圆曲线

Millier[18]首次提出了椭圆曲线密码体制的概念,Fp被 假设为具有大素数q的 有限域.椭圆曲线E定义为y2=x3+ax+bmodq,其中a,b∈Fp并 且Δ=4a3+27b2≠0.在点加法P+Q=R的操作下,通过椭圆曲线E生成加法群 G,并且标量乘法运算表示为kP=P+P+···+P(ktimes).

1.3 椭圆曲线群上困难问题假设

椭圆曲线离散对数问题(ECDLP):给出(P,xP)∈G,ECDL 问题要去找一个整数x.

椭圆曲线计算性Diffie-Hellman 问题(ECCDHP):给出(P,xP,yP)∈G,ECCDH 问题要计算xyP∈G.

1.4 网络模型

基于证书下AKA 协议的网络模型如图1所示.其中,参与者有3 种类型:用户Ui,服务器S和证书权威中心TA.

图1 网络模型

证书权威中心TA:TA 的任务是生成系统参数,根据Ui和S的公钥生成证书.

用户Ui:Ui是一个移动用户,从TA 获得证书,并使用证书来对S证明自己的身份.经过S认证,可以访问S提供的移动服务.

服务器S:S是一个移动服务提供商,也从TA 获得它的私钥,并使用它来显示其身份的资格.S验证Ui的有效性后,根据Ui的请求提供相应的移动服务.

1.5 安全属性

作为一种AKA 协议,基于证书的AKA 协议应满足以下安全特性.

(1)相互认证:方案应提供相互认证,即,服务器S对用户Ui进 行身份验证,用户Ui对 服务器S进行身份验证.

(2)会话密钥协议:在方案的互认证阶段结束时,用户Ui与服务器S共享一个会话密钥进行消息加密.

(3)用户匿名性:方案不应泄露用户身份信息,以保证用户隐私,敌手无法从交换的消息中获得用户的真实身份和行为.

(4)不可追踪性:方案应保证对手无法从交换的消息中追踪到用户,为用户提供更大的安全性.

(5)前向保密:如果一个或多个参与者的私钥被泄漏,对手在泄漏之前建立的会话密钥时必须具有微不足道的优势.这种安全属性可以扩展到以下2 种类型:(1)完全正向保密:即使对手拥有所有参与者的私钥,也必须保持正向保密;(2)部分前向保密:即使对手拥有一些但不是所有参与者的私钥,也必须保持前向保密.

(6)已知会话密钥攻击抵抗:在已知给定协议中生成的会话密钥的情况下,对手无法计算另一个安全会话密钥.

(7)中间人攻击的抵抗:攻击者不能冒充合法用户欺骗云服务器,也不能冒充服务器欺骗合法用户.

(8)重放攻击抵抗:对手无法对协议发起攻击,重放旧消息.

(9)TA 前向保密:即使对手拥有TA 的主密钥,也必须保护前向保密.

2 本文方案

2.1 建立

所有系统参数由证书权威(TA)生成.这一阶段的工作步骤如下:

(1)TA 随机选取两个大素数p和q,选取由方程y2=x3+ax+bmodq定义的非奇异椭圆曲线E,其中a,b∈Fp.

(2)输入一个安全参数k,TA 选取一组素数阶q和生成器P的椭圆曲线点的群G.

(3)TA 选择随机数s∈作为系统主密钥,并对其保密,然后计算系统公钥Ppub=sP.

(4)TA 选择哈希函数:H:{0,1}∗→

(5)TA 公布系统参数{p,q,G,P,Ppub,H},并对系统主密钥s保密.

2.2 用户注册

用户Ui向TA 注册以获得证书.图2为用户注册.

(1)用户密钥产生:随机选择整数xi,ki∈,xi作为秘密值,计算pki=xiP,pidi=H(IDi,ki).然后,Ui通过不安全通道将pki和静态匿名身份pidi发送给TA.

(2)证书生成:TA 随机选择一个整数ri,bi∈,计算Ri=riP,Bi=biP,pidi′=pidi⊕H(Bi,biPpub),Certi=ri+sH(pidi′,pki,Ri).

图2 用户注册

2.3 服务器注册阶段

服务器S向TA 注册以获得证书.图3为服务器注册.

图3 服务器注册

(1)服务器密钥产生:随机选择整数xj∈,xj作为秘密值,计算pkj=xjP.然后,S通过不安全通道将pki发送给TA.

(2)证书生成:TA 随机选择一个整数rj∈,计算Rj=rjP,Certj=rj+sH(IDj,pkj,Rj).

2.4 相互认证和密钥协议阶段

用户Ui和服务器S分别执行以下操作,实现相互认证,最终生成公共会话密钥.图4为Ui和S认证密钥协商.

(1)Ui选择ai∈RZ∗q并计算Ai=aiP,Wi=Rj+H(IDj,pkj,Rj)Ppub+pkj,Authi−j=(ski+Certi+ai)Wi,PIDi=pidi′⊕H(Ai,Authi−j),Mi=H(pidi′,PIDi,Authi−j,Ai,T1),Trans1={PIDi,Ai,Mi,T1}.Ui发送Trans1 到S.

(2)收到Ui消息后,S读取当前时间T2并检查|T2−T1|≤ΔT.如果该值有效,则S计算Wj=pki+Ri+H(pidi′,pki,Ri)Ppub,Authj−i=(Wj+Ai)(skj+Certj),pidi′=PIDi⊕H(Ai,Authj−i),并检查Mi?=H(pidi′,PIDi,Authj−i,Ai,Ti),如果不相等,则终止该进程.否则,选择随机数aj∈RZ∗q,读取当前时间T3并计算Aj=ajP,A′j=ajAi,Keyj=H(A′j,Ai,Aj),pidj=IDj⊕H(Aj,Authj−i),Mj=H(pidi′,pidj,Authj−i,Aj,T3).并设置Trans2={pidj,Mj,Aj,T3}.S发送Trans2到Ui.

(3)收到S的消息后,Ui读取当前时间T4并检查|T4−T3|≤ΔT.如果该值有效,则计算IDj=pidj⊕H(Aj,Authi−j),并检查Mj?=H(pidi′,pidj,Authj−i,Aj,T3),如果不相等,则终止该值.否则,Ui计算A′i=aiAj,Keyi=H(A′i,Ai,Aj).

图4 Ui和S 认证密钥协商

3 协议分析

3.1 协议正确性分析

由协议可知,要验证Mi=Mj需要先验证Authi=Authj.由Keyi,Keyj计算式可知,只需证明A′i=A′j=aiajP,即可得到Keyi=Keyj.

因为A′i=A′j=aiajP,所以得到Keyi=Keyj.因此,这验证了该协议的正确性.

3.2 协议安全性分析

本文在1.5 节中,给出了认证,密钥协商,用户匿名等方面的安全性需求.下面将分析1.5 节的安全性需求.

(1)相互认证:没有多项式对手有能力成功伪造合法的登录或响应消息,参与者可以通过验证接收到的消息是否有效来对彼此进行身份验证,因此,该协议可以实现相互认证.

(2)会话密钥协商:根据2.4 节中表示的协议,所有的参与者都可以计算出相同的值A′i=A′j=aiajP,和共同的会话密钥Keyi=Keyj.因此,AKA 协议可以实现会话密钥协商.

(3)用户匿名性:在本方案中,用户的身份用户Ui不在消息<Trans1,Trans2>中传输.此外,根据用户的PIDi=pidi′⊕H(Ai,Authi−j),没有Authi−j无法确定pidi′.因此,不可能知道用户的身份.因此,该方案提供了用户匿名性.

(4)不可追踪性:在本方案中,参与者Ui和S需要分别选择随机数ai,aj,才能计算Ai=aiP,Aj=ajP.此外,时间戳在提议的协议中是动态的.因此,该方案为用户提供了不可跟踪性.

(5)前向保密:假设对手窃取智能卡,截取消息Ai=aiP,Aj=ajP,为了得到的值Keyi=H(A′i,Ai,Aj),对手必须计算A′i=A′j=aiajP,即,它必须解决ECCDH问题.由于ECCDH 假设是难以解决的,该协议提供了完美的前向保密.

(6)已知会话密钥攻击的抵抗性:根据该方案中描述的协议,每个会话中的会话密钥Keyi=H(A′i,Ai,Aj)(A′i=aiAj)不同,ai为随机数.因此,即使一个会话密钥被泄露,它也不能影响其他会话密钥的隐私.

(7)中间人攻击的抵抗性:假设敌手知道IDi,IDj,其目标是伪造有效的消息<Trans1,Trans2>.要伪造一个有效的Trans1,随机选择一个数a′i∈RZ∗q,计算但是,对于敌手,没有Mi=H(pidi′,PIDi,Authi−j,Ai,T1)是很难计算Trans1的.同样,没有Mj就很难伪造Trans2.从上面的分析中,知道该方案提供了相互的身份验证,并且攻击者无法成功地模拟用户或应用服务器.因此,该协议可以抵抗中间人攻击.

(8)抗重放攻击:根据方案中描述的协议,将时间戳{T1,T2,T3,T4}添 加到认证过程中.由于{T1,T2,T3,T4}的新鲜度,参与者(例如,Ui和S)可以通过验证重放攻击.

3.3 安全属性比较和效率分析

本节与以前基于证书的AKA 协议进行安全属性和计算成本方面的比较.

(1)安全属性比较

R1:相互认证,R2:会话密钥协商,R3:用户匿名性,R4:不可追踪性,R5:前向保密,R6:已知会话密钥攻击的抵抗性,R7:中间人攻击的抵抗性,R8:抗重放攻击,R9:抗公钥替换攻击,R10:解决密钥托管问题,R11:不建立安全信道.不同方法的安全属性比较如表1.

(2)计算代价比较

选择一个带生成器p的群G,其中是一个160 位素数q,p是从超奇异椭圆曲线E(Fp):y2=x3+ax+bmodp中选取的一个点(p是一个512 位素数).

本文使用MIRACL Crypto SDK 测试了上述操作,并在2.53 GHz、i7 CPU 和4 GB 内存的64 位Windows 10操作系统上运行实验.表2列出了这些操作的平均运行时间.对于计算成本分析,表2给出了一些基本操作的执行时间.表3给出了文献[9-12]和本文提出的方案计算代价比较.

表1 安全属性比较

表2 基本操作的执行时间

表3 该方案与其他方案用户计算代价比较

对于认证密钥协商过程中的计算代价,文献[9]需要运行1 个模乘运算和2 个双线性对运算,所以总的运行时间为13.1496 ms.文献[10]需要运行1 个模乘运算和2 个双线性对运算,总的运行时间为13.1496 ms.文献[11] 需要运行7 个模乘运算,总的运行时间为9.9414 ms.文献[12]需要运行8 个模乘运算和1 个双线性对运算,所以总的运行时间为21.6708 ms.本文提出的方案需要运行4 个模乘运算,总的运行时间为5.6808 ms.

图5清楚的展示出计算代价的比较结果,从图中直观得到本文方案计算代价明显优于其他方案.

图5 用户计算代价比较

4 总结

为了克服注册时密钥托管,安全信道建立代价高等问题,几个基于证书认证密钥协商方案已经被提出.但是,这些方案大多采用昂贵的双线性对运算,在计算和通信开销方面性能不理想.本文提出了一个采用椭圆曲线的基于证书的认证密钥协商协议.安全性分析表明,该协议在随机预言机模型下是安全的,能够满足基于证书的认证密钥协商协议下的安全需求.性能分析结果表明,该协议具有较低的计算代价.本文提出的协议对各种类型的攻击具有强大的弹性,这也使它适合广泛的应用程序使用,以在不同级别上维护安全性.在本文的基础上,可进一步研究用户、雾节点、云服务器三方认证密钥协商方案.

猜你喜欢
公钥密钥椭圆
幻中邂逅之金色密钥
幻中邂逅之金色密钥
b=c的椭圆与圆
巧用点在椭圆内解题
神奇的公钥密码
Android密钥库简析
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
椭圆的三类切点弦的包络
极限思想在椭圆问题中的应用