1、第9章 基于身份的公钥密码体制,9.1 公钥认证方法,1976年,Diffie和Hellman提出了公钥密码体制,解决了单钥密码体制中最难解决的两个问题:密钥分配和数字签名。在公钥密码体制中,每个用户拥有两个密钥:私钥和公钥,其中只有私钥由用户秘密保存,公钥可以由一个证书权威(certificate authority, CA)保存在一个公钥目录中。然而,公钥密码体制易受到“公钥替换”攻击,即攻击者用自己选定的假公钥替换一个公钥目录中真实的公钥。当一个用户用这个假公钥加密一个消息时,这个攻击者就可以正确地解密。因此,我们需要让用户的公钥以一种可验证和可信的方式与用户的身份信息关联起来。目前,认
2、证用户的公钥有三种方法:基于证书的方法、基于身份的方法和基于自证明的方法。事实上,我们可以根据公钥认证方法的不同,把公钥密码体制分为基于证书的公钥密码体制、基于身份的公钥密码体制和基于自证明的公钥密码体制 。,1 基于证书的公钥密码体制,每个用户的公钥都伴随一个公钥证书,这个公钥证书由CA签发。公钥证书是一个结构化的数据记录,它包括了用户的身份信息、公钥参数和CA的签名。任何人都可以通过验证证书的合法性(CA的签名)来认证公钥。如果一个用户信任CA,那么,在他验证了另一个用户的证书的有效性后,他就应该相信公钥的真实性。,基于证书的公钥密码体制缺点,使用任何公钥前都需要先验证公钥证书的合法性,增
3、加了用户的计算量; CA需要管理大量的证书,包括证书的撤销、存储和颁发。,2基于身份的公钥密码体制,为了简化密钥管理,Shamir于1984年首次提出了基于身份的密码体制(identity-based cryptography)的概念。在基于身份的密码体制中,用户的公钥可以根据用户的身份信息(姓名、身份证号码、电话号码、E-mail地址等)直接计算出来,用户的私钥则是由一个称为私钥生成中心(private key generator, PKG)的可信方生成。基于身份的密码体制取消了公钥证书,减少了公钥证书的存储和合法性验证。但是,基于身份的密码体制有一个致命的缺点,所有用户的私钥都由PKG生成
4、。PKG知道所有用户的私钥不可避免地引起密钥托管问题,因此,PKG可以容易地冒充任何用户,且不被发现。在一个基于身份的加密方案中,PKG可以解密任何密文,在一个基于身份的签名方案中,PKG可以伪造任何消息的签名。自1984年以来,相继提出了许多实用的基于身份的签名方案,但一个满意的基于身份的加密方案直到2001年才被找到。,3基于自证明的公钥密码体制,1991年,Girault提出了自证明公钥(self-certified public keys)的概念。在基于自证明的公钥密码体制中,用户的公钥是从CA对该用户的私钥与身份的签名中推导出来的,也就是说,CA和用户合作产生公钥,但CA并不知道用户
5、的私钥。用户的公钥不必有单独认证的证书,公钥的认证同接下来的一些密码协议(如密钥交换协议、签名、加密等)一起完成。比如说,认证签名者的公钥与验证此人的签名在一个验证方程式中完成,如果说通过了这个验证,那么公钥和签名将被同时验证。2003年,Al-Riyami和Paterson提出的无证书公钥密码体制(certificateless public key cryptography)在本质上与基于自证明的公钥密码体制是相同的。,基于自证明的公钥密码体制优点,由于不需要证书,降低了存储空间和通信成本; 由于不需要公钥验证,减少了计算量; 与基于证书的公钥密码体制相比,由于不需要维护公钥证书目录,基于
6、自证明的公钥密码体制更加高效。与基于身份的公钥密码体制相比,由于CA并不知道用户的私钥,基于自证明的公钥密码体制更加安全。,公钥密码体制三个信任标准,信任标准1:CA知道(或者可以轻松得到)用户的私钥,因而可以冒充用户,且不被发现。 信任标准2:CA不知道用户的私钥(或者不能轻松得到),但仍然可以产生一个假的证书冒充用户,且不被发现。 信任标准3:CA不知道用户的私钥(或者不能轻松得到),如果CA产生一个假的证书冒充用户,他将被发现。,9.2 基于身份的加密体制,双线性对,令G1为由P生成的循环加法群,阶为q,G2为具有相同阶q的循环乘法群,a、b是中的元素。假设G1和G2这两个群中的离散对数
7、问题都是困难问题。双线性对是指满足下列性质的一个映射: 双线性性:对所有P, QG1, 。 非退化性:存在P, QG1,使得。 可计算性:对所有的P, QG1,存在有效的算法计算。,相关难问题,(1)计算性Diffie-Hellman问题(Computational Diffie-Hellman Problem, CDHP)给定(P, aP, bP),计算abPG1,这里是未知的整数。 (2)判定性Diffie-Hellman问题(Decisional Diffie-Hellman Problem, DDHP)给定(P, aP, bP, cP),判断c = ab mod q是否成立,这里是未知
8、的整数。如果(P, aP, bP, cP)满足这个条件,我们称它为一个“Diffie-Hellman元组”。 (3)双线性Diffie-Hellman问题(Bilinear Diffie-Hellman Problem, BDHP)给定(P, aP, bP, cP),计算,这里是未知的整数。 (4)判定性双线性Diffie-Hellman问题(Decisional Bilinear Diffie-Hellman Problem, DBDHP)给定(P, aP, bP, cP)和hG2,判断是否成立,这里是未知的整数。 容易看出,在G1中的DDHP是容易的。已知(P, aP, bP, cP),判
9、断c = ab mod q是否成立等价与判断下式是否成立:,Boneh-Franklin加密体制,(1)系统建立设G1为由P生成的循环加法群,阶为q,G2为具有相同阶q的循环乘法群,:为一个双线性映射。明文空间为0,1n,密文空间为。定义两个安全的哈希函数:和:。PKG随机选择一个主密钥,计算Ppub=sP。PKG公开系统参数G1, G2, q, n, , P, Ppub, H1, H2,保密主密钥s。 (2)密钥提取给定一个用户的身份ID,PKG计算该用户的私钥SID=sQID并把此值安全地发送给该用户,其中QID =H1 (ID)为该用户的公钥。 (3)加密对于明文m0,1n,首先随机选取
10、一个整数,然后计算:则密文c =(U, V)。 (4)解密为了解密一个密文c =(U, V),计算:,9.3基于身份的签名体制,2002年,Hess提出了一个基于身份的签名方案,由四个算法组成:系统建立、密钥提取、签名和验证。,1系统建立设G1为由P生成的循环加法群,阶为q,G2为具有相同阶q的循环乘法群, : 为一个双线性映射。定义两个安全的哈希函数 : 和 : 。PKG随机选择一个主密钥 ,计算Ppub=sP。PKG公开系统参数G1, G2, q, , P, Ppub, H1, H2,保密主密钥s。 2密钥提取给定一个用户的身份ID,PKG计算该用户的私钥SID=sQID并把此值安全地发送
11、给该用户,其中QID=H1(ID)为该用户的公钥。 3签名对于消息m,首先随机选取一个整数,然后计算:则m的签名为(u, v)。 4验证对于消息签名对(m, (u, v),首先计算:然后验证:,9.4基于身份的密钥协商协议,1系统建立设G1为由P生成的循环加法群,阶为q,G2为具有相同阶q的循环乘法群,:为一个双线性映射。定义一个安全的哈希函数:和一个密钥导出函数V。PKG随机选择一个主密钥,计算Ppub=sP。PKG公开系统参数G1, G2, q, , P, Ppub, H1, V,保密主密钥s。 2密钥提取给定一个用户的身份ID,PKG计算该用户的私钥SID = sQID并把此值安全地发送
12、给该用户,其中QID=H1(ID)为该用户的公钥。在这里我们设用户A的身份为IDA,公钥为QA,私钥为SA,用户B的身份为IDB,公钥为QB,私钥为SB。,9.4基于身份的密钥协商协议,3密钥交换。如果用户A和B想协商出一个密钥,他们执行以下步骤: A随机选取,计算TA=aP,并将TA发送给B。 B随机选取,计算TB=bP,并将TB发送给A。 A计算 。 B计算 。 这样用户A和B就建立了一个共享密钥k = V(kA)= V(kB)。,9.5基于身份的签密体制,2003年,Libert和Quisquater提出了一个基于身份的签密方案,由四个算法组成:系统建立、密钥提取、签密和解签密。,1系统
13、建立 设G1为由P生成的循环加法群,阶为q,G2为具有相同阶q的循环乘法群,:为一个双线性映射。明文空间为0,1n,E和D分别表示一个对称密码体制(如AES)的加密和解密算法。定义三个安全的哈希函数:、:和:。PKG随机选择一个主密钥,计算Ppub=sP。PKG公开系统参数G1, G2, q, n, , P, Ppub, H1, H2, H3, E, D,保密主密钥s。 2密钥提取 给定一个用户的身份ID,PKG计算该用户的私钥SID=sQID并把此值安全地发送给该用户,其中QID=H1(ID)为该用户的公钥。在这里我们设发送者的身份为IDA,公钥为QA,私钥为SA,接收者的身份为IDB,公钥为QB,私钥为SB。 3签密 对于消息m,发送者执行以下步骤: 随机选择。 计算和。 计算和。 对消息m的签密密文为(c, r, S)。 4解签密 当收到签密密文(c, r, S)时,接收者执行以下步骤: 计算。 计算。 计算。 当且仅当r=H3(c, k1)成立时接受该密文。,安全性,Libert和Quisquater给出了方案在随机预言模型下的安全性证明。对于保密性,在DBDHP是困难的假设下,该方案对适应性选择密文攻击是安全的;对于不可伪造性,在CDHP是困难的假设下,该方案在适应性选择消息攻击下能够抵抗存在性伪造。,