1. 引言
普适环境计算是继主机和桌面计算后出现的新计算模式,其目的是使计算机服务融入日常生活空间,形成一个“时时存在、处处存在而又不可见”的计算服务环境 [1] 。在普适环境中当向服务提供方申请服务时,它需要对申请者进行认证,以防止非法用户获取服务。同时申请者也需要对服务提供方进行认证,以防止假冒实体的攻击。为了更好的保护用户隐私,在普适环境下的认证除了提供安全认证和密钥建立服务之外,还要求 [2] [3] [4] :1) 满足用户匿名,即认证时,不能获得用户的真实身份;2) 满足无关联特性,即不能确定不同的会话来自同一用户。
文献 [5] 采用传统的公钥体制实现匿名认证,用户基于服务器的公钥加密身份实现匿名,用自己的私钥签名作为认证凭证。该方案涉及到较多的公钥操作,公钥证书管理复杂,不适合普适计算中的资源受限的设备。文献 [6] 应用基于身份的密码体制设计匿名认证方案,来避免公钥体制中管理证书问题,但方案中用户和服务器都需要多次的双线性对的运算,带来较大的计算量。文献 [7] 采用基于身份的签名算法对时间戳签名产生认证请求,该签名只有服务器方能够验证,所以对外部用户是匿名的,而且用户端不需要计算双线性对,比较适合普适计算环境。
以上匿名认证方案都有密钥托管方面的问题,密钥生成中心的主密钥如果泄露,攻击者通过计算合法用户的签名私钥,来假冒合法用户。针对该问题,本文基于无证书签名算法来设计匿名认证方案,该方案可满足用户匿名性和用户端计算量小的要求,同时不存在密钥托管问题。
2. 无证书签名算法
2.1. 算法设计
2003年Al-Ryami和K.G. Paterson提出了无证书公钥密码系统 [8] (certificateless public key cryptography, CL-PKC)的概念,通过密钥生成中心(Key Generation Center, KGC)为系统用户生成部分私钥。
(1) 系统建立
KGC输入系统安全参数k;获得满足双线性对要求的、
、
、
,
的生成元为
;随机选取
作为系统私钥;计算系统公钥
;选取安全哈希函数
和
;最后KGC公布系统参数
。
(2) 用户部分私钥产生
为用户
的惟一身份标识,用户
向KGC提交
,KGC验证
是否合法,若
合法,KGC为生成
的部分私钥
,其中
,并安全地将
传送给
。
(3) 秘密数产生
用户
随机选取
作为用户秘密数,并安全保存。
(4) 用户私钥产生
用户
计算
作为自己的私钥。
(5) 用户公钥产生
用户
计算
和
,将
作为自己的公钥。
(6) 签名
为了对
消息进行签名,
选择随机数
,计算
、
,
,
对
的签名为
,
向验证者发送
、
、
和
。
(7) 验证
验证者首先验证
是否成立;然后计算
,验证
是否成立。只有两者验证都通过时才接受签名。
由上述过程可知,对用户
,
是一个确定的常量。对于不同的
和
,只要是同一个签名人,验证结果必定相同,从而可以确定签名者的身份。即通过预计算
,收到
后计算
是否等于
,来确认
是否来自
。
2.2. 算法安全性分析
采用文献 [7] 中的方法来分析上述签名算法的安全性。
(1)若
对消息
的合法签名
,则Adv无法计算出
的私钥
。因为要从
中解得
就需要Adv从
求得
,这是ECDL问题。
(2)假设Adv可以伪造签名
,满足
。对于循环群
,
,
,则有
。因此任意
总有
满足:(a)
;(b)
。若(a)成立,Adv需要计算
使其满足等式:
,但是对于单向函数
,Adv无法获取符合条件的
,故(a)条件不成立;同理可证(b)条件不成立。
3. 匿名认证方案设计
3.1. 方案描述
KGC负责为合法用户生成部分私钥,服务器是普适环境中可以向用户提供某种服务的实体,合法用户在获得服务时必须首先通过服务器的认证。
(1) 系统建立
KGC依照2.1节中描述过程生成系统参数,选定公私钥对
,并对外发布系统参数
。
(2) 用户公私钥生成
用户公私钥的生成方法同2.1节中描述方法相同。
为用户U的身份标识,KGC生成用户部分私钥
,
,用户选取随机数
,计算出完整私钥
,用户公钥为
,其中
,
。
(3) 用户注册
在使用服务器的服务之前,用户U须先向服务器注册并成为服务器的合法用户。服务器S具有长期私钥
,相对应的公钥为
。在注册时,用户向服务器提供
和公钥
。服务器首先审核用户身份,审核通过后,通过验证
来确定用户的公钥是否合法。验证通过后,服务器为用户建立帐户
,其中
是用户帐户索引。注册过程中,用户会获得服务器公钥
、一个哈希函数
和消息认证算法
。
(4) 认证
当用户需要使用服务器提供的服务时,通过以下步骤进行双方向认证。
用户选择随机数
,获得当前时间戳
,计算
,
,
,计算临时身份
,用户将
发送给
,然后计算会话密钥
并保存
。
服务器收到消息后,需验证时戳
的新鲜性。若
是新鲜的,S计算
,
,
。S以
来索引用户列表,若用户存在,则认证通过。计算
、
,并向用户发送认证应答
。用户U收到
后,利用
验证认证应答的完整性。若验证通过,则通对服务器的认证,并在以后的通信中使用
作为会话密钥。
3.2. 方案安全性分析
(1) 双向认证
本方案可以实现用户和服务器之间的双向认证以及相互之间会话密钥协商。下面利用采用BAN逻辑对方案的认证安全性进行分析证明,由于双向认证在认证阶段实现,所以只需分析认证阶段协议。
为了便于BAN逻辑证明,需对原协议进行转化。按照BAN逻辑的描述规则,U和S之间的共享密钥
用
表示,U和S的公私钥分别为
、
、
和
。
消息转化:
消息1
:
可转化为
:
消息1中虽然没有密钥
,由于S可以利用私钥由
计算出
进而计算出
,并且
只能由S计算得到,所以
可以看作由S的公钥加密传送。由于
是U对
和
的签名,而
由
计算得到,所以
可以看作是对
和
的签名
。由于签名
只有S可以验证,所以
可以看作由S的公钥加密。因此,上述转化是合理的。
消息2
:
可转化为
:
消息2的转化中,将消息码认证算法
用对称加密算法代替,因为两者都由对称密钥控制,所以转化是合理的。
协议理想化:
消息1
:
消息2
:
初始化假设:
(1)
;(2)
(3)
;
(4)
;(5)
;(6)
由于
由
和
计算得出,
和
都是由U产生的参数,所以
是由U产生的,进而可得出假设(1)、(2)、(6)。由于S可以对U的签名
(临时身份)进行验证,可得假设(4)。由于S可以判断时戳
的新鲜性,可得假设(5)。假设(3)显然成立。
证明过程为:
由消息1得
(7)
由公式(7)、假设(3)和接收规则得
(8)
由公式(8)和接收规则可得
(9)
由公式(9)、假设(4)和消息含义规则得
(10)
由假设(5)和新鲜性规则得
(11)
由公式(10)、(11)和临时值验证规则得
(12)
由公式(12)和信仰规则得
(13)
由假设(6)、公式(13)和仲裁规则得
(14)
由消息2得
(15)
由公式(15)、假设(1)和消息含义规则得
(16)
由公式(16)、假设(2)和临值验证规则得
(17)
结论:由上述证明过程可知,认证阶段协议满足一级信仰:假设(1)和公式(14),二级信仰:公式(13)和公式(17),所以该方案可以实现安全的双向认证和密钥协商。
(2) 用户匿名性
在认证的过程中,除了服务器外其它用户均不能获取用户的真识身份。这是因为在整个认证过程中用户只是提供了签名矢量£ =
,而£中不含有用户的身份信息,并且£只能由服务器才能计算出用户帐户的索引,其它用户无法由签名矢量获取该用户身份。
(3) 非关联性
在认证过程中,用户每次对不同的时间戳签名作为认证信息,认证信息具有随机性,其它用户无法将不同的认证信息联系起来。
(4) 无密钥托管
在本方案中KGC只是为用户生成了部分私钥,要生成签名私钥还需获取用户选择的秘密参数。因此,当KGC被攻破导致主密钥泄露后,因没有用户秘密参数而无法生成用户的签名私钥,从而无法假冒合法用户获得服务。
同文献 [6] 和文献 [7] 中方案相比,本方案不存在密钥托管问题,具有更强的安全特性。
3.3. 方案效率分析
分析方案的计算开销,并同双线性对基础上实现方案的文献 [6] 和文献 [7] 中进行分析比较。由于注册协议只在新用户加入系统时运行,并且可以离线进行,所以在分析方案计算开销时只考虑认证阶段。在分析比较方案的计算开销时,忽略对称密钥操作和普通哈希操作,仅考虑双线性对运算(P)、映射到
上点的Map-to-Point杂凑函数运算(MtP)、
上点的数乘运算(gM)。方案的计算开销如表1所示。
Table 1. Comparison of computational overhead
表1. 计算开销比较
采用文献 [9] [10] [11] [12] 中方法可分别计算出用户端密码操作运行时间,若给定密码操作在服务器端运行时间为
,则用户端的运行时间为
,密码操作的运行时间如表2所示。
Table 2. Cipher operation runtime
表2. 密码操作运行时间
表3为根据上述假设来计算出的各方案运行时间。
由表3可以得出,本文所设计方案中用户端的计算开销较小,能够满足普适环境下用户计算量要求较小的需求。与文献 [6] 方案相比,本文所设计的方案中用户和服务器的计算开销大大减小。这是由于本文方案中用户不需要进行双线性对运算,并减少了服务器方双线性对的运算次数。本文方案同文献 [7] 方案具有相同的计算开销,但是本方案不存在密钥托管问题,具有更好的安全特性,因此本方案优于文献 [7] 方案。
4. 总结
利用无证书公钥设计了一种匿名认证方案,方案既能很好地满足了双向认证,又能实现用户匿名性,而且用户端计算量小,并且解决了现有方案中的密钥托管问题。通过分析,方案能够满足普适计算环境的高安全性要求。
基金项目
河南省科技攻关课题(No.222102210223),河南省科技研发计划联合基金项目(No.222103810044)。