1.本发明涉及密码学领域中数据代理重加密的技术,特别涉及一种身份加密体制中支持跨信任域且具备抗合谋攻击能力的代理重加密的方法。
背景技术:
2.随着云计算技术的广泛应用,基于云存储的数据共享技术越来越受到欢迎。云中心具备更高的计算性能和存储空间,能够为资源受限的本地设备提供数据存储的服务能力,并且能够在需要的时候将存储的数据发送给其他数据请求者,减轻本地设备的负担。然而大部分云服务提供商并非完全可信,可能会泄露数据拥有者存储的数据。为解决该问题,代理重加密技术应运而生,数据加密后存储在云中心,当其他用户被授权访问该数据时,云中心可以使用转换密钥,将初始密文转换为数据请求者可解密的密文,既解决了明文存储的泄露问题,也避免了一对多共享时数据拥有者需要对同一份数据分别多次加密上传的问题。
3.基于身份的加密体制(identity-based encryption,ibe)中,用户的身份标识即为用户公钥,而私钥则由私钥生成中心(private key generator,pkg)根据身份标识产生,能够避免公钥基础设施(public key infrastructure,pki)中复杂的证书管理。基于身份代理重加密技术将ibe技术和代理重加密技术相结合,在基于云存储的数据共享应用中取得了良好的效果。
4.然而,传统的基于身份代理重加密算法不支持跨信任域的密文转换。在边缘计算和物联网等应用场景中,由于系统规模庞大,组织结构复杂,数据拥有者和请求者可能会来自不同的信任域,即密钥是由不同的pkg根据各自的系统参数产生的,传统的基于身份代理重加密算法无法将一个信任域中密钥加密生成的数据密文转换为另一个信任域中密钥能够解密的密文。
5.另外,传统的基于身份代理重加密算法不具备抵御合谋攻击的能力,在这些算法中,数据拥有者利用自身私钥以及选取的随机参数生成转换密钥,发送给云存储中心,而随机参数可以被数据请求者使用自身私钥从重加密密文中解密获得,一旦云存储中心与数据请求者合谋,即可利用转换密钥和随机参数计算出数据拥有者的私钥信息,造成数据泄露的风险。
技术实现要素:
6.为解决上述问题,本发明公开了一种跨信任域的基于身份代理重加密方法,根据数据拥有者和请求者所在信任域的公共安全参数、数据请求者的身份标识以及数据拥有者的私钥,基于离散对数计算困难问题构造代理重加密的转换密钥,当数据请求者请求另一个信任域中的数据拥有者拥有的数据时,存储中心会使用转换密钥将初始数据密文转换为数据请求者可用自身私钥解密的密文,同时算法可以保证存储中心和数据请求者无法合谋计算出数据拥有者的私钥。
7.为了实现跨信任域和抗合谋攻击的目的,本发明提出的跨信任域基于身份代理重加密方法包括了六个阶段的算法:系统初始化算法、用户密钥生成算法、初始密文生成算法、转换密钥生成算法、重加密密文生成算法以及重加密密文解密算法。这六个阶段算法的定义分别为:
8.s1.系统初始化算法setup(n)
→
(paramsi,αi):由n个ibe信任域中的每个私钥生成中心pkgi(i∈{1,2,3
…
n})执行初始化,输出系统参数paramsi以及系统私钥αi,系统参数paramsi公开,系统私钥αi由pkgi秘密保存。
9.s2.用户密钥生成算法keygen(paramsi,αi,id)
→
sk
id
:用户所在信任域的私钥生成中心pkgi执行此算法。输入用户身份标识id,系统参数paramsi以及系统私钥αi,生成用户私钥sk
id
,将用户私钥通过安全信道发送给用户。
10.s3.初始密文生成算法encrypt(paramsi,sk
id
,m)
→
c:数据拥有者执行此算法。输入所在信任域的系统参数paramsi、用户私钥sk
id
、消息明文m,输出初始密文c。
11.s4.转换密钥生成算法rekeygen(paramsi,paramsj,id,sk
id
,id
′
)
→
rk
id-id
′
:数据拥有者执行此算法,输入数据拥有者和数据请求者所在信任域的系统参数paramsi以及paramsj,数据拥有者的身份标识id以及私钥sk
id
以及数据请求者的身份标识id
′
,输出代理重加密转换密钥rk
id-id
′
。
12.s5.重加密密文生成算法r ncrypt(c,rk
id-id
′
)
→c′
:云存储中心执行此算法,输入初始密文c以及代理重加密转换密钥rk
id-id
′
,输出重加密密文c
′
。
13.s6.重加密密文解密算法decrypt(paramsj,c
′
,sk
id
′
)
→
m:数据请求者执行此算法,输入所在信任域j的系统参数paramsj,重加密密文c
′
以及数据请求者的用户私钥sk
id
′
,输出消息明文m。
14.进一步地,s1阶段系统初始化算法包括以下步骤:
15.s11.选取两个阶为大素数p的循环群g1与g2,g1的一个生成元g,双线性映射以及选取哈希函数h:{0,1}
*
→
g1。
16.s12.各个信任域的pkgi分别随机选取αi∈z
p
,作为系统私钥,生成作为系统公钥。
17.s13.pkgi将系统参数公开,而αi作为系统私钥秘密保存。
18.进一步地,s2阶段用户密钥生成算法包括以下步骤:
19.s21.处于信任域i的用户向所属的pkgi发送自己的身份标识id,请求用户私钥。
20.s22.pkgi在接收到用户发来的身份标识id后,根据系统参数paramsi中的哈希函数h计算出用户对应的公钥pk
id
=h(id),根据系统私钥αi生成用户私钥通过安全信道将用户私钥sk
id
返回给用户。
21.进一步地,s3阶段初始密文生成算法包括以下步骤:
22.s31.数据拥有者选取随机数r∈z
p
,根据安全参数paramsi以及自己私钥sk
id
进行如下计算:
23.c1=gr[0024][0025][0026]
s32.数据拥有者将c1、c2组合出初始密文c=(c1,c2),发送给云存储中心进行保存。
[0027]
进一步地,s4阶段转换密钥生成算法包括以下步骤:
[0028]
s41.数据拥有者根据数据请求者的身份标识id
′
、请求者所在信任域j的安全参数paramsj中的哈希函数h,计算出数据请求者的公钥pk
id
′
=h(id
′
)。
[0029]
s42.数据拥有者选取随机数x∈z
p
以及y∈z
p
,根据自身的私钥sk
id
以及所在信任域i安全参数paramsi中系统公钥pki,数据请求者所在信任域j安全参数paramsj中系统公钥pkj,进行如下计算:
[0030][0031]
rk2=gy[0032][0033]
s43.数据拥有者组合出代理重加密转换密钥rk
id-id
′
=(rk1,rk2,rk3),发送给云存储中心。
[0034]
进一步地,s5阶段重加密密文生成算法包括以下步骤:
[0035]
s51.云存储中心根据数据拥有者所保存的初始密文c=(c1,c2),数据拥有者所发送的代理重加密转换密钥rk
id-id
′
=(rk1,rk2,rk3),进行如下计算:
[0036]c′1=c1[0037][0038][0039]
s52.云存储中心组合出重加密密文c
′
=(c
′1,c
′2,c
′3),发送给数据请求者。
[0040]
进一步地,s6阶段重加密密文解密算法包括以下步骤:
[0041]
s61.数据拥有者根据c
′1得到c1的值,根据自己的私钥sk
id
′
、以及所在信任域j安全参数paramsj,根据如下计算获得随机数x的值:
[0042][0043]
s62.数据拥有者根据c1和x,所在信任域j安全参数paramsj计算出并根据c
′3进行如下计算获得数据明文m的值:
[0044][0045]
本发明的有益效果:
[0046]
1、基于数据拥有者私钥、数据请求者身份标识以及双方所在信任域公共参数构造
了转换密钥,能够将一个信任域中数据拥有者加密的数据密文转换为另一个信任域中数据请求者可解密的密文。
[0047]
2、同时,本发明可以抵御云存储中心和数据请求者的合谋攻击,云存储中心从转换密钥中获取到有关数据拥有者私钥sk
id
的值为而数据请求者能够解密获得随机参数x的值,因此云存储中心和数据请求者可以合谋计算出的值。但基于离散对数问题,已知以及系统公钥pki,计算数据拥有者私钥sk
id
是个困难问题,因此能有效防止数据请求者与云存储中心合谋计算出数据拥有者的私钥。
附图说明
[0048]
图1是本发明所涉及跨信任域基于身份代理重加密方法的系统架构图;
[0049]
图2是本发明所涉及跨信任域基于身份代理重加密方法的时序图。
具体实施方式
[0050]
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。需要说明的是,下面描述中使用的词语“前”、“后”、“左”、“右”、“上”和“下”指的是附图中的方向,词语“内”和“外”分别指的是朝向或远离特定部件几何中心的方向。
[0051]
如图1-2,本实施例的一种跨信任域的基于身份代理重加密方法,
[0052]
包括以下步骤:
[0053]
s1.系统初始化算法:选取两个阶为大素数p的循环群g1与g2,g1的一个生成元g,双线性映射以及选取哈希函数h:{0,1}
*
→
g1。系统中负责各个区域的pkgi分别随机选取αi∈z
p
,作为系统私钥秘密保存,构成不同的信任域。同时生成作为系统公钥,将系统参数进行公开。
[0054]
s2.用户密钥生成算法:用户加入该数据存储共享平台时,需要在系统中注册身份,可以使用个人邮箱账号,如xxxx@xxx.com作为用户独一无二的身份标识。管理用户所在区域的pkgi在接收到用户发来的身份标识id后,会为用户生成私钥,具体计算过程如下:首先使用系统公共参数中的哈希函数h计算出用户对应的公钥pk
id
=h(id),根据系统私钥αi生成用户私钥通过安全信道将用户私钥sk
id
返回给用户。
[0055]
s3.初始密文生成算法:处于信任域i的用户是一位数据生产者,他会将拥有的数据上传至存储共享平台的云中心,分享给所需要的数据请求者。为了防止云中心非法泄露数据,该用户会将数据加密上传,对该数据记为m的加密过程如下:选取随机数r∈z
p
,使用所在信任域i安全参数paramsi中的生成元g,计算出数据密文的第一部分c1=gr。使用自己私钥sk
id
以及生成元g计算出中间值根据中间值d,数据明文m,安全参数paramsi中系统公钥pki以及所选取的随机数r,计算出数据密文的第二部分将c1、c2组合出初始密文c=(c1,c2),发送给云存储中心进行保存。
[0056]
s4.转换密钥生成算法:处于信任域j的用户想要获得数据拥有者存放在云存储中
心中的数据,会向云存储中心发起数据请求。云存储中心收到数据请求之后,分析出数据请求者的身份标识id
′
以及所请求数据的拥有者身份标识id,将请求者身份标识以及所在信任域信息发送给对应的数据拥有者。
[0057]
数据拥有者如果允许该请求者访问数据,则选取随机数x∈z
p
以及y∈z
p
,根据随机数x、初始密文c中的c1、自身的私钥sk
id
,以及所在信任域安全参数paramsi中系统公钥pki计算出第一部分转换密钥根据数据请求者的身份标识id
′
计算出数据请求者的公钥pk
id
′
=h(id
′
),根据数据请求者所在信任域j的安全参数paramsj中系统公钥pkj、生成元g,以及随机数y计算出剩余两部分转换密钥:rk2=gy,数据拥有者组合出完整的代理重加密转换密钥rk
id-id
′
=(rk1,rk2,rk3),发送给云存储中心。
[0058]
s5.重加密密文生成算法:云存储中心根据数据拥有者所保存的初始密文c=(c1,c2),以及数据拥有者所发送的代理重加密转换密钥rk
id-id
′
=(rk1,rk2,rk3)计算重加密密文c
′
,c
′
由(c
′1,c
′2,c
′3)三部分组成,其中:
[0059]c′1值等于初始密文的第一部分c1,即c
′1=c1。c
′2由转换密钥rk
id-id
′
中的rk2、rk3组成,即云存储中心利用rk1以及初始密文中c1计算出然后根据表达式计算c
′3。由于c2的值为因此因此由双线性映射性质知双线性映射性质知根据c1=gr,可以推出因此因此
[0060]
云存储中心组合出重加密密文c
′
=(c
′1,c
′2,c
′3),发送给数据请求者。
[0061]
s6.重加密密文解密算法:数据请求者在接收到云存储中心回复的重加密密文后c
′
,根据自己的私钥sk
id
′
以及c
′
中c
′2的第一项c
′2[1]=gy,计算出中间值由于因此而对于c
′2中的第二项代入可以推出c
′2[2]=x
·
因此数据请求者可以使用c
′2[2]以及计算出的中间值a,通过计算出随机数x的值。
[0062]
之后数据拥有者根据c
′1=c1和x,所在信任域j安全参数paramsj,计算中间值根据c
′3和中间值b,通过计算出数据明文m的值。
[0063]
上述方法中,在重加密密文生成算法s5中,云存储中心中可从转换密钥中获取到有关数据拥有者私钥sk
id
的值为的值为而在重加密密文解密算法s6中,
数据请求者能够解密获得随机参数x的值,因此云存储中心和数据请求者可以合谋计算出的值。但基于离散对数问题,已知以及系统公钥pki,计算数据拥有者私钥sk
id
是个困难问题,因此能有效防止数据请求者与云存储中心合谋计算出数据拥有者的私钥,也即该方法可有效抵御云存储中心和数据请求者的合谋攻击。
[0064]
以上所述实施例仅以具体描述表达了本发明的实施方式,但不能理解为对发明专利范围的限制。对于本领域的普通技术人员来说,在不脱离本发明构思的情况下,可以对本发明创造的技术方案进行修改或改进,这些都属于本发明的包含范围。
[0065]
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。
转载请注明原文地址:https://tc.8miu.com/read-2060.html