其他分享
首页 > 其他分享> > 《这是我最近对IBE的全部理解》(话很多版

《这是我最近对IBE的全部理解》(话很多版

作者:互联网

IBE

历史发展

自1984年shamir提出了可以用身份作为公钥来的IBE思想之后,十多年间没有出现比较好的实用的IBE方案,直到2001年数学上取得了突破,发现了椭圆曲线双线性群上的双线性配对运算e,之后各类利用双线对的方案层出不穷,获得了极大的发展,今天根据历史发展顺序介绍5种IBE方案(实际为3种)。

① 2001年,Boneh,Franklin根据ElGamal的思想结合weil对,提出了一种基础简单的IBE方案但是和ElGamal一样不抗CCA2,和一种改进后,加入了“循环验证”的IBE方案,CCA2安全。

② 2004年,Boneh,Boyen提出新的更高效的IBE方案,首先它采用了概率性的私钥生成,其次它在加密阶段的配对运算是固定的\(e(g_1,g_2)^t\),不随用户身份ID变化\(e(Q_{id},P_{pub})^t\),因此可以提前完成,不需要在加密阶段做配对运算,只需要在解密阶段做,这更类似于用身份去做“密钥封装”,而不是使用身份直接进行加解密。这是一个大的技术方法的提升,并且给出了该方案如何扩展成HIBE方案,但是该HIBE方案是低效的,公钥PK长度和加密出来的密文C长度和身份层级有关。

2005年,Waters根据Boneh,Boyen的方案,在由身份ID去构造对应群元素\(Q_{id}\)时采用不同的方法(B将id视为整数来使用,W将id视为01比特序列来使用。),仅一点改进,将方案变成了完全安全的。完全安全和选择id安全有何不同。选择id安全,表明仍然可能会泄露系统中某一用户的信息(可能是系统中某一用户,也可能是无意义ID),但不是敌手想要攻击的那个用户(ID),泄露的这个ID的相关信息一般来说是对敌手没有意义的。也就是说敌手的攻击通常不会成功,但是也并不是一无所获,这些在每次攻击过程中泄露出去的其他信息就是风险所在,它就不是完全安全的。而完全安全就是说,系统滴水不漏,既不会泄露敌手想要攻击的ID的信息,也不会泄露出任何人的信息。

③ 2004年时,Boneh,Boyen还提出一种高效IBE,与以上两种IBE的模式都不同。

2001 Boneh,F 基本方案


非常简洁明了的一个类似ElGamal的加密方案(ElGamal \((rP,M\oplus rP_{pub})\)),由于这里的M时01比特序列不是群元素,所以采用的模二加而不是乘法。这样设计就和普通的ElGamal一样面临CCA2敌手的攻击,容易恢复出M。

这里的举世无双创新点在于利用e得到的加密组件\(g_{id}=e(Q_{id},P_{pub})^r\) ,它具有良好的性质,但是对比曾经的加密组件\(rP_{pub}\)有什么不同呢?

首先e带来的突破性作用是,曾经对于\(g^a,g^b\)这样子的东西我们只能够做出指数上的加法得到\(g^{a+b}\),想要得到\(g^{ab}\)需要已知一个a或者b才行,这往往是不知道的。而e的出现虽然仍然不能计算\(g^{ab}\),但是它良好性质提供了指数上乘法的构造方式,\(e(g^a,g^b)=e(g,g^{ab})=e(g,g)^{ab}\)。原本只能在元素上做乘法,指数上做加法的运算模式非常单一,e解开了这个束缚,现在不再需要知道a或者b仅仅通过,\(g^a,g^b\) 就能得到\(g^{ab}\)的形式,虽然在e中。

现在再来看,有了e的ElGamal得到了什么样的改变。加密组件是一个一般需要至少有两种计算方式的东西。比如说\(rP_{pub}=rsP=r*sP=s*rP\),根据不同的计算方(加密方知道r不知道s,解密方知道s不知道r)掌握的信息不同,可以从不同的方向去计算出来的组件。在老ElGamal中用户的私钥是s,而现在s是msk系统主密钥,用户也不知道s,仅知道自己的\(sQ_{id}\),那么此时是:加密方知道r不知道s,解密方不知道r也不知道s,但是知道\(sQ_{id}\),知道\(rP\),需要构建出\(srP\)的问题,很显然e就能够完成这个功能,故得到新的e形式加密组件\(e(Q_{id},P_{pub})^r\)。

\(e(Q_{id},P_{pub})^r=e(Q_{id},sP)^r=e(Q_{id},rP)^s=e(sQ_{id},rP)=e(d_{id},rP)=e(d_{id},U)\)

直观上看,老ElGalmal的安全核心s直接在加密一线作战,没有受到任何保护,而新方案的安全核心s则受到了一个层\(sQ_{id}\)的保护,没有完全“暴露”在外。

这就是2001年weil配对发现后给密码设计带来的突破性进展。

2001 Boneh ,F改进方案


改进的方案和原方案在由id生成密钥的阶段都是确定性的算法,生成方式简单明了\(d_{id}=sQ_{id}\),对于\(Q_{id}\)它是多少P并不清楚,也不需要清楚,它类似于后续方案中的g2和Q的作用,但是它是随id变化的,因此在每次加密过程中都要运算一次配对运算e,这是低效的。

改进方案解决了前一方案的,CCA2不安全问题,改进方案通过添加了一个解密后对M的验证,形成一个互相影响的循环,来达到抗CCA2的目的,因为如果M被恶意修改成M*M',那么它是无法通过验证的。

改进方案中r不再是随机产生的随机值,而是通过M哈希得到,\(r=H(M,\sigma)\) 这里哈希需要加入随机值σ,不然方案将会是确定性加密。而后很自然的用加密组件加密σ,用σ加密消息M,后续我们可以解密出σ,而后解密出消息M,而后进行验证M是否被恶意篡改。

思考:这里用加密组件去加密σ的方式(简单直接),来把σ“承诺”出来,是否可以使用其他方式给出σ呢?

承诺的方式一般有:放离散对数上,放单项哈希H中,加密承诺。承诺就是这个东西可以给你用,但是你不能知道它具体是多少,不能看见,显然e多样化了我们的使用方式。

2004 Boneh,B \(e(g_1,g_2)^t\)方案



这个方案是Waters2005方案的前身,这里给出的是HIBE的形式,当这里j=1的时候,是普通的IBE,该方案和Waters的IBE可以说是一摸一样,只是\(Q_{id}\)的构造方法不一样,该方案将ID视为整数值\(Q_{id}=g_1^{id}h\),waters将ID视为01比特序列\(Q_{id}=u^{'}\prod u_i\) 。而正是因为这两个方案都提出了具体的自己如何去构造\(Q_{id}\)的方式,所以都没有使用哈希,都是在无随机谕言模型下的。

该方案虽然给出了HIBE,但是因为其密文长度和公钥长度过长,实际是不可使用的。

对于该方案相较于2001年的方案有何提升将在waters方案下说明。

2005 Waters 完全安全\(e(g_1,g_2)^t\)方案


首先这里不用纠结对应公钥是什么!

两个方案的加密组件都是\(e(g_1,g_2)^t\),这一对加密组件的优化是对2001年方案的巨大改进,由每次都会变动的\(e(P_{pub},Q_{id})\)变成了固定的\(e(g_1,g_2)\),\(e(g_1,g_2)\)可以被提前计算,可以当作是系统参数之一,故加密不再需要配对运算。这里\(g_1=g^s\)相当于\(P_{pub}=sP\),未知是多少P的\(Q_{id}\)相当于这里的未知是g的几次方的\(g_2\),曾经用于解密的与身份相关的私钥\(d_{id}=sQ_{id}\)换成了现在的与用户身份无关的\(msk=g_2^s\)。

理解为曾经的msk=s,还不是群元素,比私钥“低一级”,现在msk升一级,与私钥同级,和身份元素乘在一起,而不再是作用在身份元素上。现在msk升为与私钥同级,所以msk就可以直接起到之前私钥(与身份相关联)的加密作用了,代替身份(私钥)进行加密,而身份则被除掉。

两个方案都将密钥生成改进成了概率性密钥生成,\(d_{id}=(g_2^{s}Q_{id}^r,g^r)\),因为是概率算法所以给出了随机值的承诺\(g^r\)供运算使用。\(C= (e(g_1,g_2)^tM,g^t,Q_{id}^t)\),因为要把身份除掉所以给出了带随机值身份组件\(Q_{id}^t\)供运算使用。

这种做法有点类似于用ID去封装了加密组件。

2004 Boneh,B的 (x,y) 双msk方案


这一篇,和前面的都不同,似乎是全新的方法(暂时看不出联系),它很高效。

它的加密组件是非常优美简单的\(e(g,g)^t\)(忽略我在描述方案的图片中对于加密随机值用了t,s,α,文章中统一用t),这优化了我在之前方案中能不能让\(g_2=g_1\)疑问(很显然在之前的方案中是不行的),那么它不仅同样在加密阶段0配对运算,并且解密仅需做一次配对运算,而不是两次。

这是因为从直观上讲,因为这里只有g,消除身份信息这一步发生在e的括号内。这就是为什么在设计私钥时\(K=g^{1/(id+x+ry)},d_{id}=(r,K)\)指数上为倒数形式,因为后续通过构建我们只能构建出正形式,来消除身份。

关于此方案的两点迷思:

它首先把身份当作整数,这是否会导致问题呢?

其次它将身份考虑为和msk一个层级,整数层级,而没有做成群元素,这是合理的吗?其他四个方案不管是使用哈希还是自己的构造方法都将id做成了对应群元素,该方案看起来简单高效但似乎不会那么容易?否则Waters为什么2005年没有改进该方案而选择了另一方案。

标签:方案,加密,IBE,理解,最近,组件,id,身份
来源: https://www.cnblogs.com/qs3c/p/16099091.html