APP下载

普适环境中基于一次性公钥的匿名认证方案

2012-08-10罗长远霍士伟邢洪智

通信学报 2012年2期
关键词:匿名性私钥公钥

罗长远,霍士伟,邢洪智

(1. 信息工程大学 电子技术学院,河南 郑州 450004;2. 西安通信学院,陕西 西安 710106)

1 引言

普适计算是一种开放的网络环境,用户可以随时随地获得服务。开放性和无所不在性使普适环境相对于传统网络更容易受到各种恶意攻击。为了保证普适环境的安全,需要实施加密、访问控制等安全措施。其中认证是各种安全措施的基础,对构建安全的普适环境具有重要意义[1]。

普适环境中存在大量不可见的设备(如传感器),它们不停地搜集用户的身份、位置等敏感信息,用户的敏感信息随时有被泄露的可能。所以,普适环境下用户的隐私保护被提到了重要的高度[2]。在认证中,同样需要考虑用户隐私保护的问题。现有的认证机制需要用户提供身份信息,这会造成用户身份信息泄露,使用户的会话和位置被恶意实体跟踪。为了保护用户隐私,普适环境下的认证方案在实现安全认证的基础上要满足以下要求[2]:1) 用户匿名性,在认证过程中,服务方和外部用户都无法确定用户的真实身份;2) 无关联性,服务方和外部用户都无法确定不同的会话来自相同的用户。另外由于普适环境下用户一般使用计算能力有限的便携设备,因此认证方案要满足用户端计算量小的要求[3]。

文献[4]提出了一种普适环境中的匿名认证和密钥协商方案,该方案需要证书的支持,证书管理开销较大。文献[5]基于椭圆曲线上的离散对数问题提出了一种普适环境中的匿名认证和密钥协商方案,具有较小的计算开销。文献[4,5]中方案只能实现对外部用户匿名,而服务方可以确定用户身份,无法满足用户的强匿名需求,即用户希望在认证过程中,外部用户和服务方都无法确定自己的身份,从而更好地保护隐私。文献[2]利用盲签名技术设计了一种新的普适环境中的匿名认证方案,方案可以满足强匿名要求。文献[6]在文献[2]方案的基础上增加了抵御拒绝服务攻击的功能。文献[7]指出文献[2]方案存在安全缺陷,非法用户可以假冒合法用户通过认证,并对方案进行了改进,使方案可以避免假冒攻击。

上述基于盲签名的匿名认证方案在认证过程中保证了用户的身份无法被外部用户和服务方获得,有效保护了用户隐私。但是由于盲签名的不可追踪性,当合法用户进行恶意活动时,服务方仍然无法确定用户的身份,给犯罪分子带来可乘之机[8]。针对盲签名的缺点,研究者提出了一次性公钥的思想[8]。在一次性公钥中,可信中心只需给用户生成一次私钥,用户每次签名时可以生成不同的公钥,使得用户的每次签名之间不存在关联性,从而保证了用户身份匿名性和会话无关联性。此外,在必要时签名验证者可以向可信中心递交签名者的一次性公钥,可信中心可以揭示签名者身份,防止签名者进行恶意活动。文献[9]提出了基于身份的一次性公钥及签名算法,但是该算法是可伪造的,非法用户利用合法用户的一次性公钥可以伪造签名。文献[10]提出了一种新的基于身份的一次性公钥及签名算法,并证明了算法的安全性。上述基于身份的一次性公钥及签名算法需要多次双线性对运算,一次性公钥长度较长,这会造成较大的计算开销和通信开销,不适合在资源受限的普适环境下应用。并且上述算法都存在密钥托管问题,可信中心的主密钥如果被恶意实体获得,恶意实体就可以计算出合法用户的签名私钥,从而可以冒充合法用户。所以方案中的系统主密钥成为安全瓶颈。本文提出了一种新的基于身份的一次性公钥及签名算法,在保证安全性的基础上,通过对算法优化,减少了双线性对运算次数和一次性公钥长度,并且不存在密钥托管问题。基于该算法设计了普适环境中的匿名认证方案,在提供强匿名性的同时,能够防止用户进行恶意活动。

2 基于身份的一次性公钥及签名算法

2.1 算法设计

本算法基于双线性对运算实现,包括以下算法。

1) 系统初始化

可信中心TC选择椭圆曲线上满足双线性对要求e、G1、G2、q,G1的生成元为P。随机选择s∈作为系统主密钥,系统公钥为Ppub=sP。定义安全的散列函数:H1:{0,1}*×G1→和H2:{0,1}*→。TC妥善保管s,公开系统参数{G1, G2, e, q, P, Ppub,H1, H2}。

2) 用户私钥生成

假设用户A的身份标识为AID,随机选择作为秘密数,计算R1=xAP,然后将R1和IDA发送给TC,TC可以通过零知识证明方法确认A具有与R1对应的秘密数xA。TC对用户身份和R1鉴定后,按如下步骤计算用户A的部分私钥:

① 随机选择rA∈,计算R2=rAP,RA=R1+R2;

② 令c=H1(IDA,RA),计算部分私钥dA=rA+sc。

TC保存(IDA,c, RA),用作以后确认A的身份。将RA和dA通过安全信道发送给A。A计算sA=xA+dA作为完整私钥,通过检验sAP=RA+H1( IDA,RA)Ppub是否成立来验证私钥的正确性,验证通过后A妥善保存(sA,RA)。

3) 一次性公钥生成

4) 签名

用户A对消息m∈{0,1}*签名时,随机选择y∈,计算Y=yP,计算h=H(m, Y ),计算2z=y+asAh,签名为<z, Y>,A将签名<z, Y>和消息m发送给验证者B。

5) 验证

B首先验证一次性公钥的合法性,验证等式

是否成立,若成立则确定发送方确实在可信中心进行了注册。

因为

若等式成立,则说明AP含有系统主密钥,因此发送方在可信中心进行过注册。

然后B验证签名,计算h=H2(m, Y),验证等式

是否成立。若成立,则验证通过,否则拒绝。

2.2 算法安全性分析

1) 算法可保证发送方匿名

首先,用户A的一次性公钥和签名中不包含身份信息。其次,用户A的一次性公钥(PA, UA,VA)都经过了随机数a的处理,a不同则一次性公钥不同,因此用户B无法获得A的真实身份,并且A的不同活动之间不存在任何联系。

2) 算法可保证匿名用户的可追踪性

如果用户A执行了非法的操作,验证者B通过和可信中心合作,可以揭示用户A的真实身份。用户B只需要将UA,VA发送给TC,TC就可以揭示A的身份。因为TC保存了A的相关信息(IDA,c, RA),TC通过验证

是否成立来揭示用户A的身份。事实上,e( UA,cP)=e( aRA,cP)=e( acP, RA)=e( VA,RA)。因此,该算法既保证了用户A的匿名性,也可以防止用户A进行恶意的活动。

3) 算法可抵御伪造攻击

① 合法用户A无法伪造虚假的一次性公钥和签名来欺骗用户B

首先,对消息m的签名z无法伪造。因为,通过验证等式(1),B确定PA中含有系统主密钥s,通过验证等式(2),可以确定z含有主密钥s,因此z是利用合法的私钥生成的,z不可伪造。其次,PA无法伪造,由于z是利用合法的私钥生成的,如果PA是伪造的,则等式(2)无法验证通过。同样AU和AV无法伪造,由于PA是按照正确的步骤生成的,如果UA和VA是伪造的,则无法通过等式(1)的验证。

其次,A企图消灭进行恶意活动的证据,即躲开式(3)的检查是不可行的。假设A选择a, b∈(a≠b),计算PA=aRA+bcPpub,UA′=aRA,VA′=bcP作为一次性公钥,此时可以通过式(1)验证且式(3)无法成立。但是,A无法生成相应的签名私钥a( xA+rA)+bsc 对m进行签名,因此无法通过式(2)验证。因此,A无法伪造虚假的一次性公钥和签名来进行恶意活动。

② 非法用户C无法伪造虚假的一次性公钥和有效的签名

其次,C无法利用合法用户A的公开信息(PA, UA,VA)和对消息m的签名<z, Y>进行伪造。C如果选择b∈,计算PC=bPA,UC=bUA,VC=bVA,将(PC, UC,VC)作为自己的一次性公钥。虽然(PC, UC,VC)可以通过式(1)验证,但是C无法计算出相应的签名私钥basA生成正确的签名。因为通过PA=asAP获得asA面临解决椭圆曲线群上的离散对数问题,而通过z=y+asAh获得asA首先要获得y,y没有公开传送,要通过Y=yP获得y同样面临解决椭圆曲线群上的离散对数问题。因此C无法生成正确签名通过式(2)验证。

在算法中,用户A的完整私钥为sA=xA+dA,其中,dA是TC为用户产生的部分私钥,xA是用户自己选择的秘密数构成另一部分私钥。xA是保密的,其他用户包括TC都无法获得xA。即使获得TC的主密钥,由于无法获得xA,仍无法得到用户

4) 算法无密钥托管A的完整私钥,因此本算法不存在密钥托管问题。

表1 算法效率比较

2.3 算法效率分析

以下将对算法的计算开销和通信开销进行分析,并与文献[9,10]中的算法进行比较,如表1所示。考虑的运算包括双线性对运算(P)、1G上的点乘运算(Pm)、1G上的点加运算(Pa)、2G上的点乘运算(Gm)和映射到椭圆曲线上点的散列运算(MtP),相对于这些运算,其他运算可以忽略不计[10]。

由表1中数据可以看出,本算法具有更小的计算开销,同时本算法的一次性公钥和签名长度较短,因此通信开销较小,所以本算法具有更高的执行效率,更适合在普适环境中应用。

3 普适环境中基于一次性公钥的匿名认证方案

3.1 方案设计

系统包括3类实体:可信中心(TC)、用户(A)和服务提供者(SP)。TC负责为系统中的合法用户签发基于身份的私钥,并在服务提供者出示用户恶意活动证据的情况下,揭示用户的身份。服务提供者在为用户提供服务前,要对用户进行认证,确认用户的合法性,即用户拥有TC签发的私钥。同时用户也要确认服务提供者是合法的。在认证过程中要满足以下要求。首先,服务提供者和其他实体都无法确定用户的真实身份,充分保护用户的隐私。另外,当用户进行恶意活动时,服务提供者通过和TC合作可以揭示用户身份。本方案的安全性基于以下假设,TC是诚实可信的,即TC不会发送虚假的信息,不会利用掌握的用户密钥信息实施假冒攻击,不会随意向其他实体揭露用户的真实身份,除非合法的SP提供了某用户的恶意活动证据。

方案利用第2节中的一次性公钥及签名算法结合散列链认证技术来实现匿名认证。散列链认证技术可以减少签名次数,提高认证效率。方案中用户只需要在首次访问服务时执行一次性公钥及签名算法,在之后访问服务时利用散列链作为认证凭证。方案包括4个阶段:系统建立、私钥生成、认证和恶意用户身份恢复。

1) 系统建立

TC按照2.1节中描述的方法产生系统参数,选定系统公私钥对(s, Ppub),定义安全的散列函数:H1:{0,1}*×G1→,H2:{0,1}*→,H3:G1→{0,1}*,H4:{0,1}*→{0,1}*。并公布系统参数{G1, G2, e, q,P, Ppub,H1, H2,H3,H4}。

2) 私钥生成

私钥生成方法同2.1节中描述方法相同。用户A的身份标识为IDA,经过与TC交互A获得的完整私钥为sA=xA+dA,其中,dA=rA+sc( c=H1( IDA,RA))是TC为用户A生成的部分私钥,xA是用户A选择的秘密数,RA是TC为用户A生成的辅助参数。A妥善保存(sA,RA),TC保存了与用户A身份相关的信息(IDA,c, RA)。SP的长期私钥为sP∈,SP的公钥为PKP=sPP,SP妥善保存sP,将PKP向全网公开。

3) 认证

当用户A第一次要求SP提供服务时,通过以下步骤向SP证明自己是合法用户。

step1 用户A随机选择x∈{0,1}*,计算C0=H4(x),Ci=(C0),1≤i≤n ,A安全的保存所有的散列值,散列值的计算可以利用空闲时间离线完成。用户A随机选择a∈,计算PA=asAP,UA=aRA,VA=acP( c=H1( IDA,RA)),得到一次性公钥WA=(PA, UA,VA)。A获取当前时间戳TA,随机选择yA∈,计算YA=yAP,YA′=yAPKP,h=H2(Cn, TA, YA),计算签名z=yA+asAh。A计算k=H3( YA)并保存k,加密Cn得σ=Cn⊕k,向SP发送消息<TA, WA,YA′,z,σ>。

step2 SP收到消息后,检查时戳TA的新鲜性,若TA新鲜,则按照2.1节中方法验证一次性公钥WA是否合法。验证通过后,SP计算YA=,计算k=H3( YA),解密Cn=σ⊕k,验证签名zP=YA+H2(Cn, TA, YA)PA是否成立。验证通过后,则确认A为合法用户。SP将Cn保存到一个列表L中。SP选择yP∈,计算YP=yPP,计算会话密钥kAP=H3(yPYA),获取当前时间戳TP,向A发送消息<TP,Ek( YP, TP, TA)>,E为对称加密算法。

step3 A收到消息后,检查时戳TP的新鲜性,若新鲜,则利用k解密Ek(YP, TP, TA)并核对TP和TA是否一致。若一致,则通过对SP的认证,然后计算kAP=H3(yAYP),并把kAP作为之后通信的会话密钥。

当用户再次要求SP提供服务时,可以利用保存的散列值Ci,0≤i<n作为认证凭证,不需要构造一次性公钥及签名,SP仅需要进行简单的散列运算就可以实现对用户A的认证,利用散列链进行认证可以减少认证的计算开销和通信开销。以用户A的第2次认证为例,具体过程如下。

step1 A随机选择yA∈,计算YA=yAP,YA′=yAPKP,计算k=H3( YA)并保存k,对Cn-1加密得z=Cn-1⊕k ,向SP发送消息<YA′,z>。

step2 SP收到消息后,计算YA=,k=H3( YA),解密Cn-1=z⊕k ,计算H4(Cn-1),查找列表L中是否存在H4(Cn-1),若存在则证明当前用户为已通过认证的合法用户,将列表L中的Cn替换为Cn-1。SP选择yP∈,计算YP=yPP,计算会话密钥kAP=H3(yPYA),获取当前时间戳TP,向A发送消息<TP,Ek( YP, TP, YA′)>,E为对称加密算法。

step3 A收到消息后,检查时戳TP的新鲜性,若新鲜,则利用k解密Ek( YP, TP, YA′ )并核对TP和YA′,若一致,则通过对SP的认证,然后计算kAP=H3(yAYP),并把kAP作为之后通信的会话密钥。

4) 恶意用户身份恢复

如果用户A在访问SP服务的过程中,进行了恶意操作,SP将A的恶意操作证据和A的一次性公钥WA=(PA, UA,VA)发送给TC。TC首先验证SP提供的证据属实,然后利用保存的信息(IDA,c, RA)验证e( UA,cP)=e( VA,RA)是否成立,若成立则证明进行恶意操作的用户为A。

3.2 方案安全性分析

1) 双向认证

本方案可以实现用户A和服务提供者SP之间的双向认证。SP可以确定当前请求访问服务的用户A是合法的。在A首次访问服务时,SP通过验证A的一次性公钥及对nC和AT的签名完成对A的认证。由2.2节中分析可知一次性公钥及签名算法是安全的,同时签名中包含了时间戳可以保证签名的新鲜性,所以SP对用户A的认证是安全的。在用户之后访问服务时,SP通过散列链来认证用户A。以第2次认证过程为例,SP通过验证H4(Cn-1)是否等于Cn来认证用户,由于Cn已经通过SP的认证,根据散列函数的单向计算特性,只有已通过认证的合法用户A才能出示正确的Cn-1。用户A也可以确定当前的服务提供者SP是合法的,A通过解密Ek(YP, TP, TA)并核对TP和TA完成对SP的认证,因为只有合法的SP才能利用私钥由Y′A计算出YA,进而计算出正确的密钥k。

2) 用户匿名性

在认证过程中,其他用户和SP都无法确定用户A的真实身份。用户A首次认证时,利用一次性公钥及对nC和AT的签名作为认证信息,根据一次公钥的匿名特性,其他用户和SP都无法根据认证信息确定用户A的真实身份。在之后的认证过程中,A利用Ci(0≤i<n)作为认证凭证,同样不会泄露A的身份。

3) 无关联性

对于外部用户,本方案具有完善的无关联性。A提供的一次性公钥都经过随机数的处理,具有随机性,外部用户无法根据一次性公钥将不同的会话联系起来。虽然同一个散列链中的Ci(0≤i≤n)存在关联性,但是本方案对Ci(0≤i≤n)进行了加密处理,外部用户无法得到Ci(0≤i≤n)的明文,因此外部用户同样无法根据Ci(0≤i≤n)将不同的会话联系起来。对于SP,本方案具有部分无关联性。由于SP可以解密获得Ci(0≤i≤n)的明文,SP可以将利用同一个散列链认证的n个会话联系起来。由于不同散列链之间不存在联系,对于采用不同散列链认证的会话,SP无法将其联系起来。

4) 安全的会话密钥建立

方案中用户和SP可以建立安全的会话密钥kAP。会话密钥是由双方选择的密钥协商参数yA和yP共同决定的,并且公开发送的YA′和加密传送的YP不会导致yA和yP的泄露,因此协商的密钥满足已知会话密钥安全、前向安全性和密钥控制安全。

5) 用户身份可追踪性

由于一次性公钥在提供匿名性的同时具有可追踪性,当用户A进行恶意活动后,SP将A的一次性公钥提交给TC,TC利用保存的(IDA,c, RA)可以揭示用户A的身份。该特性可以有效防止用户进行非法操作。

将本方案与现有普适环境中的匿名认证方案进行安全性比较,结果如表2所示。其中,“Y”表示满足安全要求,“N”表示不满足,“P”表示部分满足(对服务提供者SP不满足)。由表2中数据可以看出,同文献[2,6,7]中方案相比,本方案在满足双向认证、用户匿名性等安全要求的同时,能够对恶意用户身份进行追踪,从而可以防止用户进行恶意活动。同文献[4,5]中方案相比,本方案具有更强的匿名性,而文献[4,5]中方案只能实现部分匿名性(对服务提供者SP不满足匿名性)。因此,本方案在安全性上优于其他方案。

表2 安全性比较

3.3 方案效率分析

本方案在认证过程中主要的计算开销来自于验证一次性公钥,需要3次双线性对运算,这些主要的运算由计算能力较强的服务提供者来完成,而用户只需要进行椭圆曲线上的点乘和点加运算,因此方案不会给用户端带来较大的计算开销,满足普适环境中用户端计算量小的要求。同时,本方案只需在用户首次认证时进行双线性对运算,在之后的访问中,只需要进行椭圆曲线上的点乘和点加运算,因此在多次访问过程中方案的平均计算开销较小。

4 结束语

为了保护用户隐私,普适环境下的认证方案需要满足用户匿名性要求。本文提出了一种基于身份的一次性公钥及签名算法,算法在保证安全性的基础上具有较小的计算和通信开销。基于该算法和散列链认证技术设计了一种普适环境中的匿名认证方案,在提供强匿名性的同时,可防止用户进行恶意活动。同现有普适环境中的匿名认证方案相比,本方案具有更好的安全性。

[1] YAO L, WANG L, KONG X W, et al. An inter-domain authentication scheme for pervasive computing environment[J]. Computers and Mathematics with Applications, 2010, 59(2):811-821.

[2] REN K, LOU W J, KIM K, et al. A novel privacy preserving authentication and access control scheme for pervasive computing environments[J]. IEEE Transactions on Vehicular Technology, 2006, 55(4):1373-1384.

[3] FORNE J, HINAREJOS F, MARIN A, et al. Pervasive authentication and authorization infrastructures for mobile users[J]. Computers &Security, 2010, 29(4):501-514.

[4] KANG M H, RYOU H B, CHOI W C. Design of anonymity-preserving user authentication and key agreement protocol for ubiquitous computing environments[A]. International Workshop on Internet and Network Economics[C]. Hong Kong, China, 2005.491-499.

[5] WANG R C, JUANG W S, WU C C, et al. A lightweight key agreement protocol with user anonymity in ubiquitous computing environments[A]. International Conference on Multimedia and Ubiquitous Engineering[C]. Seoul, Korea, 2007. 313-318.

[6] REN K, LOU W J. Privacy-enhanced, attack-resilient access control in pervasive computing environments with optional context authentication capability[J]. Mobile Networks and Applications, 2007,12(1):79-92.

[7] LI C T, HWANG M S, CHU Y P. Further improvement on a novel privacy preserving authentication and access control scheme for pervasive computing environments[J]. Computer Communications, 2008,31(18):4255-4258.

[8] 张秋璞, 郭宝安. 基于ID的一次性盲公钥[J]. 电子学报, 2003,31(5):669-771.ZHANG Q P, GUO B A. One-off blind public key based on ID[J].Acta Electronica Sinica, 2003, 31(5):669-771.

[9] 张胜, 徐国爱, 胡正名等. 一种基于身份一次性公钥的构造[J]. 电子与信息学报, 2006, 28(8):1412-1414.ZHANG S, XU G A, HU Z M, et al. Construction of the one-off public key based on identity[J].Journal of Electronics&Information Technology, 2006, 28(8):1412-1414.

[10] 刘宏伟, 谢维信, 喻建平等. 基于身份的公平不可否认协议[J]. 通信学报, 2009, 30(7):119-123.LIU H W, XIN W X, YU J P, et al. Fare non-repudiation protocol based on identity-based cryptography[J]. Journal on Communications,2009, 30(7):119-123.

猜你喜欢

匿名性私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
一种基于混沌的公钥加密方案
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案
基于群签名的高效可分割电子现金系统
P2X7 receptor antagonism in amyotrophic lateral sclerosis
去个体化心理分析