ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-04-05 09:31:18  阅读:208  来源: 互联网

标签:方案 加密 IBE 理解 最近 组件 id 身份


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有