基于身份的密码体制的研究综述*
张方国,陈晓峰
中山大学信息科学与技术学院
广东省信息安全技术重点实验室, 广州510275
E-mail: isszhfg@mail.sysu.edu.cn
摘要:近年来,基于身份的密码体制成为当前密码研究领域的一个热点。在本文中,我们给出了基于身份的密码体制的一个研究综述,从基于身份的密码体制的基本想法,到基于身份的密码方案的构造,特别是基于身份的加密方案的构造,以及基于身份的加密方案的推广和应用都分别给出了一个较为详细的介绍。
关键词:基于身份的密码体制,公钥证书,双线性对
An overview on the identity-based cryptosystems
Fangguo Zhang, Xiaofeng Chen
School of Information Science and Technology, Sun Yat-sen University
Guangdong key laboratory of information security technology
Guangzhou 510275
Abstract:In recent years, identity-based cryptosystems become one of the hot topics in the progress of cryptographic research. In this paper, we give an overview on the study of identity-based cryptosystems, which includes a detailed description about the basic idea of identity-based cryptosystems, the construction of identity-based cryptosystems, especially the construction of identity-based encryption schemes, and the generalization and applications of identity-based cryptosystems.
Key words: identity-based cryptosystem, public key certificate, bilinear pairing * 本文得到国家自然科学基金项目(No.60773202, No. 60633030, No.60503006),国家973计划项目(2006CB303104)和广州市科技计划项目(No. 2008J1-C231-2)资助。
2 中国密码学发展报告2008
1.引言
1976年,美国密码学家Diffie和Hellman [1] 提出了公钥密码体制的思想,这是密码学上一个重要的里程碑。公钥密码体制不仅具有加密的功能,同时还有认证的功能。在公钥体制架构下,用户Alice无论是向另一个用户Bob传送加密信息,还是在收到用户Bob发来的某个签名-消息对后验证签名,都需要使用Bob的公钥来完成。在此,很关键的一点是用户Alice必须对用户Bob的公钥进行认证,即确认他所使用的公钥的确是用户Bob的公钥。在传统的公钥体制架构下,公钥与私钥对的产生是符合一定规则的,并不是任何信息都可以用作公钥和私钥信息的,其形式是一些看起来随机的数字信息,与用户的身份没有任何联系。在使用某个用户的公钥进行加密或验证签名时,一定要确认所使用的公钥的确属于那个宣称拥有它的用户。这需要一个可信赖的第三方CA(Certificate Authority),又称证书机构,向系统中的各个用户发行公钥证书。公钥证书上CA的签名可把用户的身份和他的公钥紧密地联系起来。在这种架构下,CA机构是一个重要部门,负责用户公钥证书生命周期的每一个环节:生成、签发、存储、维护、更新、撤销等。我们把这种需要证书的密码体制称为基于证书的公钥密码体制(PKI)。
第一个公钥密码系统RSA的合作发明者之一Shamir在1984年提出了基于身份的密码学(IBC)的思想 [2],其最初的动机就是为了简化传统的PKI公钥体系架构中CA对各用户证书的管理,其基本的想法就是将用户的身份与其公钥以最自然的方式捆绑在一起:用户的身份信息即为用户的公钥。在基于身份的公钥体制的架构下,当一个用户使用另一个用户的公钥时,只需知道该用户的身份信息,而无需再去获取和验证该用户的公钥证书。如果公钥不需要分发,那么支持公钥密码学所必需的大部分设施就会变得多余了。例如,如果一个用户的公钥在一些标准格式里是他的身份,如一个电子邮件地址,那么一个信息发送者仅仅需要这个用户的电子邮件地址来发给这个用户一个加密的信息,不需要其他的机制来分发公钥。
在提出IBC概念的同时,Shamir提出了一个采用RSA算法的基于身份的签名算法(IBS)。但是基于身份的加密算法(IBE)长时期内都未能找到有效的解决方法。2000年,三位日本密码学家Sakai、Ohgishi和Kasahara [3]提出了使用椭圆曲线上的对(pairing)来设计基于身份的密码系统的思路。2001年,Boneh和Franklin [4],Sakai、Ohgishi和Kasahara[5]以及Cocks[6]分别独立地提出了三个基于身份的加密算法。前两个都是采用椭圆曲线上的Weil对来实现的。而Cocks的方案是基于二次剩余问题(QRP),尽管这个方案的加/解密速度在理论上很快,但是有一个严重的消息扩展,也就是它的密文的比特长度是明文的很
基于身份的密码体制的研究综述 3
多倍。由于Boneh和Franklin提出的IBE方案的效率较好,并且给出了严格的安全性证明,所以引起了学术界极大的反响。
基于身份的密码体制是个非常吸引人的研究方向,并且具有非常广阔的应用前景。近几年,基于身份的密码体制的研究已经成为当前密码研究领域的一个热点。在本文中,我们综述这个领域的研究情况。文章结构安排如下:在第二节中,我们首先分析了基于身份的密码体制,特别是基于身份的加密的优缺点;第三节讨论了基于身份的签名;第四节介绍了基于身份的加密体制的几个实现方案;在第五节中,我们讨论了基于身份的加密体制的几个变形和应用;第六节介绍了基于身份的其他密码方案;第七节是展望和结束语。
2.基于身份的密码体制的优缺点
在基于身份的密码体制中,用户的公钥可以是任意具体的比特串,用户私钥是通过一个可信的第三方来生成的,我们把这个可信的第三方称为私钥生成中心(PKG)。具体地讲,如果私钥生成中心的公私钥对是(PPKG, SPKG),并且一个用户的公钥身份字符串是ID,那么此PKG生成这个用户的私钥SID作为一个SPKG和ID的函数。为了处理撤销密钥的可能性,私钥生成中心通常包括日期(或者一些其他的时间段)作为用户ID的一部分,以便于用户私钥自然地到期不能使用;PKG发布新的定期的私钥仅适用于当前合法的用户。在基于身份的加密(IBE)的情况下,加密和解密通常如下进行:
加密:发送者使用(PPKG, ID, M)来计算密文C。 解密:接收者使用(SID, C)来回复消息M。 对于基于身份的签名(IBS),算法如下:
签名:签名者使用(SID, M)来计算消息M的签名Sig; 验证:验证者使用(PPKG, ID, M)来验证Sig。
在这些算法里,IBE中的发送者(或IBS中的验证者)不需要向IBE的接收者(或IBS的签名者)去获取一个单独的公钥,只需要拥有PKG的系统参数(包括PKG的公钥)就可以了。获取PKG的系统参数是一件比较简单的事情,一般情况下,我们可以把PKG的系统参数广播,甚至可以把它嵌入到一个应用软件或用户设备中。与传统的公钥体制相比,基于身份的密码体制通过消除分发用户公钥(和证书)的必要性,能够使得密钥管理系统需要更少的设施。
基于身份的密码体制与基于PKI的密码体制都是公钥密码体制。下面我们分析一下基于身份的密码体制相对于传统的公钥密码体制所具有的优缺点。就像我们第三节要讲的,基于身份的签名与传统的公钥签名之间的不同并不是非常的明显,所以我们主要从加密的
4 中国密码学发展报告2008
角度来考虑基于身份的密码体制的优点。为此,我们首先分别看一下基于PKI的公钥加密和基于身份的公钥加密的基本思想。在传统的公钥加密方案中,Bob建立一个公私钥对(PBob, SBob)之后,Alice使用PBob来计算消息M的密文C,并且Bob使用SBob来恢复M。但是,很显然,这样的方案面临密钥真实性这个问题,即Alice如何相信他所拥有的PBob就是Bob的公钥,而不是一个冒名顶替人的呢?PKI本质的目的就是要解决这个密钥真实性问题。一个PKI包括一个“证书授权机构”(CA),他公布自己的公钥PCA,并且实现以下几个功能:首先,CA注册Bob并且收集关于他的信息,包括他的公钥PBob。如果条件满足,CA就会用自己的私钥SCA来签署这些信息,从而生成一个关于Bob的公钥证书。接下来,CA可以使用某种“设施”向用户如Alice来分发Bob的公钥和他的证书,用户必须得到并且验证了Bob的证书才能发送一个加密的信息给Bob。又因为Bob的公钥最终有可能失效(例如他的私钥丢失了),CA也可以通过配置设施向用户包括Alice发布一个“证书状态”的消息,以便于用户可以检验Bob的证书是否被撤销。有关PKI的详细讨论,可以参见文献[7]。在一个IBE方案中,CA被一个“私钥生成中心”(PKG)所取代,此PKG生成发布他的公钥PPKG,并且实现一些类似的功能。像CA一样,PKG注册Bob并且收集关于他的身份的信息IDBob。如果条件满足,PKG使用他的私钥SPKG来对IDBob进行签名,因此生成一个关于Bob的基于身份的解密密钥SBob。因为这是Bob仅有的密码,PKG必须通过一个安全的信道把SBob发送给Bob。PKG不需要配置设施向用户如Alice分配Bob的公钥,而是假定Alice知道PPKG和Bob的身份信息。而且,Alice并不需要得到和验证一个关于Bob的证书。PKG通过在Bob的ID中嵌入足够长的时间区间来实现在这个区间以后Bob的证书撤销,并且在每一个时间区间的开始生成一个新的私钥给Bob;当Alice在加密信息的时候需要在Bob的ID中加入当前的时间。
我们将基于身份的密码体制所具有的优点罗列如下:
第一,不需要公钥证书,用户的公钥就是可以唯一识别其身份的信息。这样,加密者或签名验证者可以预先不需要知道接收者其他额外的信息。
第二,不需要证书机构,只需要一个向各用户服务的私钥生成中心(PKG)。用户提交自己的身份公钥给PKG,PKG计算并颁发用户的私钥。
第三,基于身份的公钥系统是一个天然的密钥托管中心,必要时中心可以恢复用户的私钥,以监听用户的通信内容(然而,从用户的隐私性这个角度讲,这个优点也是基于身份的密码体制的一个缺点)。
第四,因为PKG并不需要处理第三方的请求,IBE降低了支持加密的花费和设施。 第五,密钥撤销简单。像前面提到的,只要PKG在Bob的ID中嵌入足够长的时间区
基于身份的密码体制的研究综述 5
间来实现在这个区间以后Bob证书撤销,并且在每一个时间区间的开始生成一个新的私钥给Bob即可。
第六,可以提供前向安全性。用一个基于身份的密码系统去构造非交互式前向安全密码系统的一般方法是:用户自己扮演PKG的角色,不过他的主密钥和对应的公钥要从CA那里得到认可;每一阶段的公钥就类似于基于身份的体制中的用户身份信息,所对应的私钥就是从密钥提取中得到的。
基于身份的密码系统也有一些缺点,主要有:
(1)密钥托管是一个缺点。PKG可以有能力来解密任何一个用户的信息或伪造任何一个用户的签名,但遗憾的是,从基于身份的密码体制的基本前提来看,这个缺点是无法避免的。尽管有一些方法可以把托管的弊端的风险最小化,例如使用门限密码让多个实体来共同参与私钥的生成。从隐私的角度来看,托管这一观点是很不安全的。关于基于身份的密码体制的密钥管理,文献[8]给出了一个综述。
(2)当用户多的时候,私钥的生成就会变成PKG昂贵的计算。如果当前的日期加入到客户的公钥ID里面,那么PKG每天都要为每一个客户生成一个私钥。而CA每天只需要发布一个证书撤销列表(CRT)更新,并且CRT更新可能只需要较少的计算,因为它里面仅需要包括当天吊销证书的用户。
3.基于身份的签名(容易)
Shamir在提出基于身份的密码体制思想的同时,利用RSA签名给出了第一个基于身份的签名构造。之后有很多的基于身份的签名方案提出[9]~[15],有的是用双线性对构造,有的是不需要双线性对的;有的是在随机预言模型下可证明安全的[12],有的是在标准模型下可证明安全的[16]。同时许多基于身份的具有特殊性质的签名也被提出,如基于身份的盲签名[17], [18]、代理签名[18]、环签名[17], [19]、不可否认签名等[19]~[24]。尽管一些具体的IBS方案(例如,Guillou-Quisquater方案[10])十分有效,但是一般的IBS方案与传统的公钥签名方案(PKS)相比并没有非常明显的优点。这是因为传统的公钥签名(基于PKI的)本身就可以实现基于身份的签名功能:一个PKS签名者可以简单地把他的信息发布给第三方进而证明自己,也就是发送他的公钥和证书连带着他的签名给验证者。因为一个IBS签名与一个PKS签名、PKS公钥和PKS证书的组合相比只是使用很少的比特,所以一些IBS方案也许有一些带宽的优势。但是情况也不总是这样的,当PKS签名和证书使用短签名的时候,例如BLS签名[25]或ZSS签名[26]等,签名总长度并不长于大多数的IBS。IBE极大地简化了加密密钥的管理,但是在签名方面并不见得比传统PKI要好。