基于身份的密码体制是什么?

网络安全中基于身份的密码体制可以进行哪些领域的研究?
关注者
241
被浏览
91,964
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

0 矫情一小下

手机刷知乎,看到这个问题的第一反应是邀请我师弟来回答,不过又想了想,基于身份的密码体制这个题目看起来可以很简单的回答,但是要都答全了可是有点难度。所以最后还是爬起来用电脑好好回答一下吧,嗯…

===============================分割线==================================

1 什么叫做基于身份的密码体制

公钥密码体制(Public Key Cryptosystem)想必大家都已经很清楚了,在公钥密码体制中,有两个密钥:公钥和私钥。其中,公钥是可以公开给任何人的,任何人只要获得了公钥,就可以使用公钥对消息进行加密,随后可以通过公开信道将加密后的密文发送给接受者。只有拥有公钥所对应私钥的接受者才能够正确地解密密文,恢复出明文信息。典型的公钥加密体制有我们很熟悉的RSA体制,ElGamal体制,以及具有很高安全性的Cramer-Shoup体制。

公钥加密体制虽然很好,但是也有很多潜在的问题。一个最大的问题就是,每个人的公钥都是无意义的一串类似随机数的东西,在加密的时候,加密者怎么知道一个公钥就是接受者的公钥呢?如果加密过程中公钥使用错误,密文就不能被正确的接收者所解密。同时,这很可能就将信息透露给了错误的用户,甚至透露给恶意用户。实际上,现实生活中确实存在这样的攻击方法:恶意用户欺骗加密者,将接收者的公钥替换为自己的公钥并告知加密者,同时加密者无法得知收到的公钥是否为接收者的。

解决这个问题的方法是引入一个可信第三方(有点类似于证书里面的CA)。第三方维护一个大的表格,表格中存放各个用户的身份,以及其所对应的公钥信息。这样一来,加密者可以在加密之前首先向可信第三方进行公钥查询,这就可以正确进行加密了。这种解决方法虽然好,但是也有一个问题:当用户数量过多,这个表格的维护就变得很困难。首先,大量加密者都可能请求公钥查询,频繁的公钥检索可能会使得可信第三方服务能力下降,甚至可能遭受拒绝服务攻击(Deny of Service,DoS)。其次,即使不进行DoS攻击,可信第三方本身也需要极佳的计算和网络通信能力,才有可能负担得起如此大规模用户的服务请求。这在网络通信还不是很好的情况下尚且可以忍受,但在现今社会,这种人人有网的时代,每个人都拥有一个公钥的话,可以想象公钥的总数量将是一个多么庞大的数字!这对于可信第三方的存储能力,查询能力等等都带来了巨大的挑战。

那么,有没有一种可能,可以让公钥就是用户的身份呢?所谓身份,就是指一串跟用户相关的有意义的数字,比如身份证号,姓名,邮箱地址等等。加密者在加密的过程中,不需要使用一堆无意义的数字组作为公钥了,而是使用接收者的身份进行加密。举个例子,比如我的邮箱是footman_900217@126.com(这真是我邮箱…),有人想给我发送加密密文的话,就用footman_900217@126.com作为公钥进行加密。这样一来,加密者就不需要像可信第三方询问接收者的公钥了,这为公钥信息的管理提供了极大的便利。1984年,Shamir(没错,就是RSA加密体制中的那个S)[1]提出了身份基密码体制的思想(Identity-Based Cryptosystem),并且构造了身份基签名体制(Identity-Based Signature,IBS)。即,签名体制中的公钥是用户的身份,验证签名时,验证者使用签名者的身份作为公钥进行验证。

===============================分割线==================================

2 身份基加密体制的定义以及构造

虽然已经提出了安全的IBS体制,但是如何构造身份基加密体制(Identity-Based Encryption,IBE)成为了困扰理论界的难题。为何构造IBE如此重要呢?因为几乎所有可用的体制都可以通过加密体制转化而来(实际上,我们可以基于任意一个安全的IBE体制,构造安全的IBS体制,同样也可以构造安全的身份基签密体制(Identity-Based SignCrypt),很多其他的安全协议也需要通过加密体制作为原型函数构造)。

研究者们大概用了20年的时间才成功构造了IBE。2001年,Boneh和Franklin[2,3]正式给出IBE的定义,安全模型,并应用双线性对(Bilinear Map)构造了一个安全的IBE方案。在此我不太想阐述方案,因为涉及到了一定的数学知识。安全模型我也不准备详细阐述,因为这需要一定的密码学知识。我只阐述IBE的定义。为了不引起歧义,并尊重Boneh的成果,我使用英文原文[2]进行描述。

An identity-based encryption scheme is specified by four randomized algorithms: Setup, Extract, Encrypt, Decrypt:

\textbf{Setup}: takes a security parameter k and returns params (system parameters) and master\text{-}key. The system parameters include a description of a nite message space \mathcal{M}, and a description of a finite ciphertext space \mathcal{C}. Intuitively, the system parameters will be publicly known, while the master\text{-}key will be known only to the "Private Key Generator" (PKG).

\textbf{Extract}: Extract: takes as input params, master-key, and an arbitrary ID\in\{0,1\}^*, and returns a private key d. Here ID is an arbitrary string that will be used as a public key, and d is the corresponding private decryption key. The \textbf{Extract} algorithm extracts a private key from the given public key.

\textbf{Encrypt}: takes as input params, ID, and M\in\mathcal{M}, It returns a ciphertext C \in \mathcal{C}.

\textbf{Decrypt}: takes as input params, ID, C \in \mathcal{C}, and a private key d, It returns M \in \mathcal{M}.

从定义上我们也可以看出,IBE体制引入了一个新的实体,叫做PKG(Private Key Generator),这个PKG可以理解为公钥加密体制中的那个可信第三方。实际上,我用一个接收者的身份进行加密的话,我怎么确定谁能够解密呢?这个确定者就是PKG了。但是,与前面说到的可信第三方不同,PKG现在变成了私钥的产生者,而非公钥的管理者。这是IBE构造的一个比较核心的变化,如果我们用一个表格来描述的话,与一般的公钥体制相比,IBE中各个参与方的能力具有一定的变化:

Public Key Encryption Identity-Based Encryption

私钥产生 接收者 PKG

公钥管理 可信第三方 无

Boneh在他们的论文中也给出了一个可证明安全的IBE方案,具体构造有兴趣的朋友们可以参考[2,3]。

===============================分割线==================================

3 身份基加密体制的发展

3.1 高安全性的IBE方案

Boneh和Franklin构造的IBE虽然好,但是其安全性没有达到理想的状态。实际上,BF01方案只能在随机预言模型(Random Oracle Model)下证明安全,而理想的状态是能够在标准模型(Standard Model)下证明安全。因此,理论界开始尝试在标准模型下面构造IBE。

在2004年,Boneh和Boyen[4]提出了一个标准模型下可证明安全的IBE方案。然而,他们所用的攻击模型并非是全安全的攻击模型(Full/Adaptive Security Model),而是选择安全的攻击模型(Selective Security Model)。这里必须指出,选择安全攻击模型的提出者是Canetti等人[5]。同年,Boenh和Boyen[6]提出了一个全安全的IBE方案,但是其效率比较低,不适于实际使用。2005年,Waters[7]提出了第一个高效的全安全IBE方案,效率很高,唯一的缺点是需要比较多的公开常数(就是params)。2006年,Gentry[8]提出了一个特别高效的IBE方案,基本上解决了IBE中所涉及到的全部问题。至此,对于IBE构造的进一步研究基本上是基于这几个方案展开的。IBE剩下的问题基本上是纯密码学的问题了,如:如何构造安全性更紧的(Tightly Secure)IBE方案[9];如何构造函数隐藏的IBE方案(Functional-Private IBE)[10]等等。

3.2 IBE的扩展

IBE中有一个比较有趣的问题:从密文中,我们能否得到用户的身份信息呢?也就是说,只从密文中,我们能不能判断这个密文具体是给谁发送的呢?如果密文中不泄露有关接收者的任何身份信息,我们认为这种IBE为匿名IBE(Anonymous IBE, AIBE)。虽然没有直接证明,但是BF01方案是匿名的,Gentry06的方案也是匿名的。相反地,BB04方案,以及Waters05方案不是匿名的。AIBE的研究进一步可以扩展为关键字可搜索加密方案(Public Key Encryption with Keyword Search, PEKS)。因此,研究者研究AIBE的目的后面本质上变成了PEKS的研究,在此就不展开说了。

另一个IBE本身的问题是:身份虽然是一个有意义的字串,但是如果加密时候身份信息输入错误,也可能导致接收者解密失败。比如说,本来一个文件是要加密给Alice的,但是如果把身份错误地输入成了Aliec,那么Alice本身就不能解密信息了。那么,能不能构造一种方案,只要身份类似,就能正确解密呢?换句话说,只要身份中正确字符的个数超过了规定的阈值范围,就能够正确的解密。这种IBE方案称为模糊IBE(Fuzzy IBE, FIBE),这个概念由Sahai和Waters提出。值得注意的是,FIBE现在已经扩展为了更厉害的属性基加密方案(Attribute-Based Encryption),并且在云存储中得到了广泛的应用。

下一个问题是效率问题。现今的IBE方案基本都是基于双线性群(Bilinear Group),而双线性群的乘法和指数运算实际上是比较慢的。我曾经尝试过,如果在三星S2的手机上运行双线性群的指数运算,大概需要40ms的时间。那么,如果加密过程是在移动终端完成的,那么加密的时间就会非常的长。一种减少加密时间的方法叫做Online/Offline技术。这种技术的基本原理是,在设备空闲时,我们先在未给定接收者(也就是不知道接收用户身份)时把所有涉及到的乘法和指数运算算完,生成一个中间密文(intermediate ciphertext)。在给定接收者后,我们可以利用这个中间密文快速算出最终密文,计算过程不涉及指数运算和乘法运算。这样一来,加密的时间就会大大减少。这种IBE方案称为Online/Offline IBE(OO-IBE)。这个方案的提出者是中国学者Guo等人[12]。这种Online/Offline技术现在也被用在了ABE中[13]。

当然了,IBE中还有很多其他的问题,如Revocable IBE(RIBE),Selective Opening Secure IBE,CCA2-secure IBE等等。在下方参考文献中的Related Work部分,对上面的内容都有大概的介绍,有兴趣的朋友们可以进一步了解和学习。

===============================分割线==================================

4 IBE的应用

Boneh和Franklin的论文[2,3]中已经详细写明了IBE的应用。既然题注关注IBE在Email中的应用,我也在此把Boneh和Franklin论文的一部分原文粘贴在此处。值得注意的是,Boneh最近有个刚完成的Project,就是Identity Based Encryption email system (IBE secure email)。Boneh的主页为

Dan Boneh

,感兴趣的朋友们可以关注一下。

Shamir's original motivation for identity-based encryption was to simplify certificate management in e-mail systems. When Alice sends mail to Bob at bob@hotmail.com, she simply encrypts her message using the public key string "bob@hotmail.com". There is no need for Alice to obtain Bob's public key certificate. When Bob receives the encrypted mail he contacts a third party, which we call the Private Key Generator (PKG). Bob authenticates himself to the PKG in the same way he would authenticate himself to a CA and obtains his private key from the PKG. Bob can then read his e-mail. Note that unlike the existing secure e-mail infrastructure, Alice can send encrypted mail to Bob even if Bob has not yet setup his public key certi cate. Also note that key escrow is inherent in identity-based e-mail systems: the PKG knows Bob's private key.

以上…

===============================分割线==================================

参考文献

[1] Shamir, A.: Identity-based cryptosystems and signature schemes. In: Blakely, G. R., Chaum, D. (eds.) CRYPTO 1984. LNCS, vol. 196, pp. 47-53. Springer, Berlin, Heidelberg (1985)

[2] Boneh, D., Franklin, M.: Identity-based encryption from the Weil pairing. In: Kilian J. (ed.) CRYPTO 2001. LNCS, vol. 2139, pp. 213-229. Springer, Berlin, Heidelberg (2001)

[3] Boneh, D., Franklin. M.: Identity-based encryption from the Weil pairing. In: Journal on Computing. Vol. 32(3), pp. 586-615. (2003)

[4] Boneh, D., Boyen, X.: E cient selective-ID secure identity-based encryption without random oracles. In: Cachin C., Camenisch, J. (eds.) EUROCRYPT 2004. LNCS, vol. 3027, pp. 223-238. Springer, Berlin, Heidelberg (2004)

[5] Canetti, R., Halevi, S., Katz, J.: A forward-secure public-key encryption scheme. In: Biham E. (ed.) EUROCRYPT 2003. LNCS, vol. 2656, pp. 255-271. Springer, Berlin, Heidelberg (2003)

[6] Boneh, D., Boyen, X.: Secure identity-based encryption without random oracles. In: Franklin M. (ed,) CRYPTO 2004. LNCS, vol. 3152, pp. 443-459. Springer, Berlin, Heidelberg (2004)

[7] Waters, B.: E cient identity-based encryption without random oracles. In: Cramer R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 114-127. Springer, Berlin, Heidelberg (2005)

[8] Gentry, C.: Practical identity-based encryption without random oracles. In: Vaudenay S. (ed.) EUROCRYPT 2006. LNCS, vol. 4004, pp. 445-464. Springer, Berlin, Heidelberg (2006)

[9] Chen, J., Wee, H.: Fully, (Almost) Tightly Secure IBE and Dual System Groups. In: Canetti, R. Garay, J.A. (eds.) CRYPTO 2013. LNCS, vol. 8043, pp. 435-460. Springer, Berlin, Heidelberg (2013)

[10] Boneh, D., Raghunathan, A., Segev, G.: Function-Private Identity-Based Encryption: Hiding the Function in Functional Encryption. In: Canetti, R. Garay, J.A. (eds.) CRYPTO 2013. LNCS, vol. 8043, pp. 461-478. Springer, Berlin, Heidelberg (2013)

[11] Sahai, A., Waters, B.: Fuzzy identity-based encryption. In: Cramer R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 457-473. Springer, Berlin, Heidelberg (2005)

[12] Guo, F., Mu Y., Chen Z.: Identity-based online/offline encryption. In: Tsudik, G. (ed.) FC 2008. LNCS, vol. 5143, pp. 247-261. Springer, Berlin, Heidelberg (2008)

[13] Hohenberger, S., Waters, B.: Online/o ine attribute-based encryption. Accepted in PKC 2014. In: Cryptology e-Print Archive 2014. Available at: eprint.iacr.org/2014/02.