一种轻量级动态广播代理重新加密及云数据共享方法转让专利

申请号 : CN202210099679.9

文献号 : CN114338229B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董晓蕾曹珍富沈佳辰胡慧丹

申请人 : 华东师范大学

摘要 :

本发明公开了一种轻量级动态广播代理重新加密及云数据共享方法,其特点是采用将数据所有者的密文转换为数据用户的密文的轻量级动态广播代理重加密方法,代理可以将共享列表从S更新为L,委托人只为一组被委托人设置广播重加密密钥,利用云计算将代理重新加密嵌入到云环境中,能够实现高效共享外包加密数据,该方法主要包括:系统初始化、用户密钥生成、加密阶段、重加密密钥生成、重加密和用户解密等步骤。本发明与现有技术相比具有数据所有者可以动态地更改一组数据用户,并且他/她不为一组新的数据用户更新重加密密钥,代理可以使用原始重新加密密钥为数据所有者授权的新数据用户组生成新的重新加密密文,为云用户带来了方便。

权利要求 :

1.一种轻量级动态广播代理重新加密及其云数据共享的方法,其特征在于重新加密及云数据共享包括以下几个步骤:

1)系统初始化

由委托人执行初始化算法生成系统的公开参数;

2)委托人/被委托人公私钥对生成

通过执行密钥生成算法为每个用户(委托人/被委托人)生成一对公私钥对,当系统输入公共参数和用户身份时,系统输出公钥,密钥和公共值;

3)密文生成

通过加密算法为委托人生成密文,当系统输入公共参数和来自明文空间的消息,以及被委托人的公钥时,系统输出密文;

4)重加密密钥生成

通过执行重加密密钥生成算法生成重加密密钥,当系统输入委托人的身份和一组被委托人集合时,系统输出重新加密密钥,将委托人的密文传输到被委托人的密文;

5)重加密密文生成

通过执行重加密算法生成重加密密文,将委托人的密文传输到被委托人的密文,当系统输入公共参数、密文,以及重新加密密钥和关于被授权者的公钥集,系统输出重新加密密文或错误;

6)数据解密

对于密文,委托人执行解密算法,解密密文从而获得消息,当系统输入公共参数、密文,以及被委托人的私钥,系统输出消息;对于重加密密文,被委托人执行解密算法,解密密文从而获得消息,当系统输入公共参数、密文,以及被被委托人的私钥,系统输出消息;

所述初始化算法生成系统的公开参数的具体操作为:委托人生成一个双线性群e:G×G→GT,选择一个生成元 以及一个有限域 然后,选择一个随机数 并计算i=1,2,…,n,n+2,…,2n; 接着,选择随机值r,t1,t2, 并计算 最后输出公开参数Par={Par1,Par2,Par3},式中:G和GT是两个素数阶q的乘法群循环群;t=t1+r tt2; Par2={gi}i=1,2,…,n,n+2,…,2n;Par3={vj,g ,g}j=1,2,…,n;

所述密钥生成算法为每个用户生成一对公私钥对的具体操作为:对于拥有身份被委托人i而言,委托人选择一个来自有限域的随机值xi作为私钥,并计算公钥 式中:g1为公开值;对于拥有身份被委托人i而言,被委托人选择一个来自有限域的随机值xi作为私钥,并计算公钥 以及公开值 所述公开值为系统中所有的用户均可获得的数据,所述用户包括:委托人、被委托人、代理商,以及云服务器都是可以获得;

所述加密算法为委托人生成密文的具体操作为:委托人计算密文c={c1,c2},其中:式中:明文m来自明文空间M,委托人通过计算e

(g1,gn)可得到e(g,gn+1);

所述重加密算法生成重加密密钥的具体操作为:委托人计算重加密密钥rk={r′,rj}j=1,2,…,n;并将重加密密钥rk通过安全信道传输给代理商,同时将秘密值r和kj通过安全信道传输给云服务器;所述代理商利用重加密密钥rk将委托人的密文转换为被委托人的密文;所述云服务器利用秘密值r和kj来减少被委托人在恢复明文时的计算代价;式中:n+1‑j

rj=t·r·kj+t·α ;r,t1,t2,kj均为委托人在初始化阶段生成的随机值,α来自于有限域

所述重加密算法生成重加密密文的具体操作为:对于初始的用户集合S,生成对于的重加密密文,代理商计算重加密密文c′={c′1,c′2},式中:c′1=c2·r′和 c2是加密算法为委托人生成的部分密文,即 其中:明文m来自明文空间M;

pkj为被委托人的公钥;rj为委托人生成的部分重加密密钥;当用户集合S发生改变时,将数据共享列表S更改为新的数据共享列表L=S‑R+A,其中用户撤销列表R和用户添加列表A,代理商为新的用户集合生成对于的重加密密文,代理商计算重加密密文c′={c′1,c′2},式中:c′1=c2·r′; 则例N是初始用户集合的指标集合,N‑K+K′是更新后的用户集合的指标集合;

所述委托人执行解密算法的具体操作为:委托人通过计算 恢复明文;所述被委托人执行解密算法的具体操作为:被委托人借助云服务器计算:式中:pvi和pvj(i,j∈

N,j≠i)是在密钥生成算法为每个用户生成一对公私钥对中产生的公开值;然后被委托人通过计算 恢复明文,使得被委托人仅仅需要承担少量的计算开销就能恢复明文;

对于更新后的用户集合,云服务器计算:

然后被委托人计算

2.根据权利要求1所述轻量级动态广播代理重新加密及其云数据共享的方法,其特征在于所述步骤6)的执行解密算法中当系统的用户发生更新时需进行用户列表更新和代理商重加密数据,并按下述算法为新的用户生成公私钥对并获取重新加密密文:a、密钥生成算法

通过执行密钥生成算法为每个用户生成一对公私钥对,当系统输入公共参数和用户身份时,系统输出公钥,密钥和公共值;

b、重加密算法

通过执行重加密算法生成重加密密文,将委托人的密文转换为留下的被委托人以及新的被委托人的密文,当系统输入公共参数、密文,以及重新加密密钥和关于被授权者的公钥集时,系统输出重新加密密文或错误。

3.根据权利要求1所述轻量级动态广播代理重新加密及其云数据共享的方法,其特征在于所述系统为轻量级动态广播代理重新加密系统。

说明书 :

一种轻量级动态广播代理重新加密及云数据共享方法

技术领域

[0001] 本发明涉及数据加密技术领域,尤其是一种轻量级动态广播代理重新加密及在云数据共享方法。

背景技术

[0002] 云计算因其有效性和灵活性而成为处理数据的流行解决方案。然而,在云计算中存在数据隐私和安全挑战。一个简单的解决方案是使用加密技术来解决这些问题,数据所有者将加密数据上传到云服务器,而不是敏感消息。当数据所有者将加密数据存储在云服务器中时,他/她希望在特定场景中与其朋友共享数据。例如,一个研究机构的数据所有者Alice使用公开密钥想要与他的同事分别共享数据。然而,上述示例中使用的加密技术存在大量潜在缺陷。数据所有者Alice需要从云服务器下载加密数据,并使用其密钥对其进行解密,然后使用公钥对数据进行重新加密,分别为她想要共享的每个同事。很明显,Alice必须承担大量计算开销,因为数据所有者Alice需要为每个数据用户设置密文。在这样的过程中,Alice的计算开销随着数据用户的数量线性增长。
[0003] 因此,需要设计一种能够高效共享外包加密数据的新机制。代理重新加密的概念是处理上述问题的一种潜在的研究方法。因为将代理重新加密嵌入到云环境中利用了云计算的优势,其中代理(例如,云服务器)可以将数据所有者的密文转换为数据用户的密文,而无需向代理透露下划线敏感消息。也就是说,代理而不是数据所有者承担重新加密计算的计算成本。代理重新加密是处理上述在云环境中共享数据中描述的加密缺陷的有效解决方案。显然,代理重加密(PRE)也是一个低效的解决方案,因为数据所有者Alice需要为每个数据用户设置重新加密。因此,PRE中的委托人将承担为组中的$n$被委托人生成$n$重新加密密钥的计算开销。广播代理重加密(BPRE)的概念被提出来解决代理重加密中委托人的繁重计算问题,其中委托人只为一组被委托人设置广播重加密密钥。
[0004] 尽管重新加密密钥的沉重计算开销由广播代理重加密解决,但广播代理重加密在动态云设置中不适用,因为在设置阶段将设置最大的被授权者数量。特别是,新用户在任何时候都不能加入系统。在这种情况下,代理重加密只需从共享列表中删除用户,即可方便地撤销个人的解密权。但添加新的授权用户效率低下,因为数据所有者需要为新的数据用户设置新的重新加密密钥。显然,新重新加密密钥的数量等于新被授权者的总大小。同时,BPRE在撤销时仍然存在重新加密密钥更新问题。BPRE要求被授权方在每次撤销时立即生成新的广播重新加密密钥。
[0005] 现有技术的重新加密密钥的沉重计算开销由广播代理重加密解决,但BPRE在动态云设置中不适用,因为在设置阶段将设置最大的被授权者数量。特别是,新用户在任何时候都不能加入系统。在这种情况下,代理重加密只需从共享列表中删除用户,即可方便地撤销个人的解密权。但添加新的授权用户效率低下,因为数据所有者需要为新的数据用户设置新的重新加密密钥。显然,新重新加密密钥的数量等于新被授权者的总大小。同时,代理重加密在撤销时仍然存在重新加密密钥更新问题。广播代理重加密要求被授权方在每次撤销时立即生成新的广播重新加密密钥。尽管现有的代理重加密和广播代理重加密方案实际上可以解决云数据共享中使用的加密原语的缺点,但它们不适合解决动态云环境中的重新加密密钥更新问题。

发明内容

[0006] 本发明的目的是针对现有技术的不足而提供的一种轻量级动态广播代理重新加密及云数据共享方法,采用将数据所有者的密文转换为数据用户的密文的轻量级动态广播代理重加密(LD‑BPRE)方法,代理可以将共享列表从S更新为L,而无需更改重新加密密钥,有效解决了代理重加密中委托人的繁重计算问题,其中委托人只为一组被委托人设置广播重加密密钥。利用云计算将代理重新加密嵌入到云环境中,能够实现高效共享外包加密数据,将数据所有者的密文转换为数据用户的密文,而无需向代理透露下划线敏感消息,代理而不是数据所有者承担重新加密计算的计算成本,解决了动态云环境中的重新加密密钥更新问题,数据所有者可以动态地更改一组数据用户,并且他/她不为一组新的数据用户更新重加密密钥,代理可以使用原始重新加密密钥为数据所有者授权的新数据用户组生成新的重新加密密文,为云用户带来了方便。
[0007] 实现本发明目的的具体技术方案是:一种轻量级动态广播代理重新加密及云数据共享的方法,其特点是该方法包含四个实体,即委托者、代理、一组接收者(被委托者)和云服务器。其中,代理和云服务器(由委托人设计)是两个不同的半可信第三方,它们不能相互勾结,轻量级动态广播代理重新加密系统中的委托人需要将加密消息外包给代理,并通过安全通道与相应的代理共享重新加密密钥,代理允许使用委托人提供的重新加密密钥设置重新加密密文。如果委托人需要动态更新一组被委托人,他/她需要将数据共享列表S更改为新的数据共享列表L=S‑R+A,其中用户撤销列表R和用户添加列表A。在收到更新的数据共享列表L=S‑R+A后,代理可以通过原始重新加密密钥将委托人的密文传输到$L$中的被委托人密文。在LD‑BPRE方案中,云服务器可以传输重新加密密文以转换重新加密密文,这样被授权方只承担较低的计算成本来获取消息。轻量级动态广播代理重新加密的方法具体包括以下几个步骤:
[0008] 1)系统初始化:通过执行系统初始化算法生成系统的公开参数,输入安全参数到初始华算法,它生成系统的公开参数,所述初始化算法由委托人执行生成整个系统的公开参数,并以这些公开参数将作为密钥生成算法、加密算法、重加密密钥生成算法、重加密算法,以及解密算法的输入。
[0009] 2)委托人/被委托人公私钥对生成:通过执行密钥生成算法为每个用户(委托人/被委托人)生成一对公私钥对,系统输入公共参数和用户身份时,系统输出公钥,密钥和公共值,所述密钥生成算法可以由一个可信的第三方密钥生成中心执行这个算法来为系统的用户生成相应的公私钥对,也可以由用户执行,为自己生成公私钥对,使轻量级动态广播代理重新加密的方案成为无证书的方案。
[0010] 3)密文生成:通过加密算法为委托人生成密文,系统输入公共参数和来自明文空间的消息,以及被委托人的公钥,系统输出密文,所述加密算法由委托人来执行生成密文。
[0011] 4)重加密密钥生成:通过执行重加密算法生成重加密密钥,系统输入委托人的身份,和一组被委托人集合时,系统输出重新加密密钥,所述重新加密密钥可将委托人的密文传输到被委托人的密文;所述重加密密钥生成算法由委托人执行生成所有的重加密密钥,并通过安全信道传输为代理商,重加密密钥将用于生成重加密密文。
[0012] 5重加密密文生成:通过执行重加密算法生成重加密密文,将委托人的密文传输到被委托人的密文,系统输入公共参数、密文,以及重新加密密钥和关于被授权者的公钥集,系统输出重新加密密文或错误,所述重加密算法由代理商来执行生成重加密密文,将委托人的密文转换为被委托人的密文。
[0013] 6)数据解密:通过执行解密算法来恢复明文,系统输入公共参数、密文,以及相应的私钥,系统输出消息;对于密文,委托人执行解密算法,从而获得消息;系统输入公共参数、密文,以及委托人的私钥,它输出消息对于密文;对于重加密密文,被委托人执行解密算法,从而获得消息,系统输入公共参数、密文,以及委托人的私钥,系统输出消息对于密文。
[0014] 如果系统的用户发生改变,委托人将更新数据分享列表并将新的列表发生给代理商,他/她需要将数据共享列表S更改为新的数据共享列表L=S‑R+A,其中用户撤销列表R和用户添加列表A。在收到更新的数据共享列表L=S‑R+A后,代理商需要重新执行重加密密文生成算法为新的用户集生成相应的重加密密文。在此过程中密钥生成中心需要执行密钥生成算法为新的用户生成公私钥对,即当系统的用户发生改变时,需要执行以下的算法:
[0015] a)密钥生成算法:通过执行此算法为每个用户生成一对公私钥对,系统输入公共参数和用户身份时,系统输出公钥、密钥和公共值,所述密钥生成算法可以由一个可信的第三方密钥生成中心来执行这个算法来为系统的新的用户生成相应的公私钥对,也可以由新的用户执行,为自己生成公私钥,可以使得此方案成为无证书的方案。
[0016] b)重加密算法:通过执行重加密算法生成重加密密文,将委托人的密文转换为留下的被委托人以及新的被委托人的密文,系统输入公共参数、密文,以及重新加密密钥和关于被授权者的公钥集,系统输出重新加密密文或错误,所述重加密算法由代理商来执行生成重加密密文,此算法可以将委托人的密文转换为留下的被委托人以及新的被委托人的密文。
[0017] 本发明与现有技术相比具有较好的解决了动态云环境中的重新加密密钥更新问题,即数据所有者可以动态地更改一组数据用户,并且他/她不为一组新的数据用户更新重加密密钥,代理可以使用原始重新加密密钥为数据所有者授权的新数据用户组生成新的重新加密密文,操作简便,效率高,为云用户带来了方便。

附图说明

[0018] 图1为本发明流程图;
[0019] 图2为数据共享系统图。

具体实施方式

[0020] 参阅附图1~图2,按下述步骤实现轻量级动态广播代理重新加密及云数据共享:
[0021] 1)系统初始化
[0022] 委托人执行初始化算法生成系统的公开参数;
[0023] 2)委托人/被委托人公私钥对生成
[0024] 通过执行密钥生成算法为每个用户(委托人/被委托人)生成一对公私钥对,当系统输入公共参数和用户身份时,系统输出公钥,密钥和公共值;
[0025] 3)密文生成
[0026] 通过加密算法为委托人生成密文,当系统输入公共参数和来自明文空间的消息,以及被委托人的公钥时,系统输出密文;
[0027] 4)重加密密钥生成
[0028] 通过执行重加密密钥生成算法生成重加密密钥,当系统输入委托人的身份和一组被委托人集合时,系统输出重新加密密钥,将委托人的密文传输到被委托人的密文;
[0029] 5)重加密密文生成
[0030] 通过执行重加密算法生成重加密密文,将委托人的密文传输到被委托人的密文,当系统输入公共参数、密文,以及重新加密密钥和关于被授权者的公钥集,系统输出重新加密密文或错误;
[0031] 6)数据解密
[0032] 对于密文,委托人执行解密算法,解密密文从而获得消息,当系统输入公共参数、密文,以及被委托人的私钥,系统输出消息;对于重加密密文,被委托人执行解密算法,解密密文从而获得消息,当系统输入公共参数、密文,以及被被委托人的私钥,系统输出消息。
[0033] 为了解本发明实现的技术手段、技术特征以及技术效果,下面以具体实施方式和过程对本发明作进一步详细描述和说明。
[0034] 一、本发明所应用的数学理论说明:
[0035] 1.双线性映射
[0036] 设G为阶为素数p的乘法循环群,映射e:G×G‑→GT是一个线性映射,如果映射满足以下三个条件:
[0037] 双线性,对于所有的u,v∈G,a,b∈Zp,有e(u^a,v^b)=e(u,v)ab;
[0038] 非退化性,存在e(g,g)≠1,否则e(g,g)ab≡1;
[0039] 可计算性,对于所有的u,v,存在一个有效的算法计算e(u,v)。
[0040] 本发明中的双线性对e:G×G‑→GT是一个满足双线性性、非退化性和可计算性的映射,将阶位素数的乘法循环群上的两个元素的运算映射到乘法循环群GT中的一个元素。
[0041] 本发明主要由以下的几个算法构成,其实现过程如下所示:
[0042] 1)初始化算法:委托人执行初始化算法生成系统的公开参数.委托人生成一个双线性群e:G×G→GT,这里是G和GT两个素数阶q的乘法群,选择一个生成元g∈G,以及一个有限域 接下来,选择一个随机数 并计算 紧接着,选择随机值 并且计算 这里t=t1+t2.最后输出公开参数Par={Par1,
r t
Par2,Par3},这里 Par2={gi}i=12,…,n,n;2,…,2n,和Par3={vj,g ,g}j=12,…,n。
这写公开参数将作为以下算法的输入,是整个系统的用户,代理商,以及云服务器都可以获得的参数。
[0043] 2)密钥生成算法:在此用于通过执行密钥生成算法为自己生成公私钥对。委托人和被委托人生成公私钥对的方式不同,如下所示:对于拥有身份委托人i而言,委托人选择一个来自有限域的随机值xi作为私钥,并计算公钥 这里的是g1为公开值。对于拥有身份被委托人i而言,被委托人选择一个来自有限域的随机值xi作为私钥,并计算公钥以及公开值 这里用每个被委托人计算的公开值是需要公开的,即系统中所有的用户(委托人,被委托人,代理商,以及云服务器)都是可以获得。
[0044] 3)加密算法:委托人执行加密算法生成密文。委托人计算密文此c={c1,c2},这里这里明文m来自明文空间M,委托人可以通过计算e(g1,gn+1)得到e(g,gn+1),在此算法所有的公开参数都是来自初始化算法。
[0045] 4)重加密密钥生成算法:委托人通过执行从加密密钥生成重加密密钥,并且需要通过安全信道传输给代理商。同时在这个阶段,委托人还需要将一些秘密值通过安全信道传输给云服务器。委托人计算重加密密钥rk={r′,rj}j=1,2,…,n,这里 rj=n+1‑jt·r·kj+t·α ,并将重加密密钥rk传输给代理商,同时需要将秘密值r,kj传输给云服务器。代理商可以利用这些重加密密钥将委托人的密文转换为被委托人的密文,同时云服务器可以利用这些秘密值来减少被委托人在恢复明文时的计算代价。注意这里的随机值r,t,kj都是委托人在初始化阶段生成的。
[0046] 5)重加密密钥生算法:代理商执行重加密密文生成算法生成重加密密文。情况1:对于初始的用户集合S,生成对于的重加密密文,代理商计算重重加密密文c′={c′1,c′2},这里c′1=c2·r′和 情况2:当用户集合发生改变时,将数据共享列表S更改为新的数据共享列表L=S‑R+A,其中用户撤销列表R和用户添加列表A,代理商需要为新的用户集合生成对于的重加密密文。代理商计算冲重加密密文c′={c′1,c′2},这里c′1=c2·r′和 则例N是初始用户集合的指标集合,N‑K’+K是更新后的用户
集合的指标集合。
[0047] 6)解密算法:委托人和被委托人可以通过执行解密算法恢复明文。情况1:委托人执行此算法恢复明文,委托人需要计算 情况2:被委托人执行此算法恢复明文,在此过程中,被委托人需要借助云服务器的计算能力,使得被委托人仅仅需要承担少量的计算开销就能恢复明文,恢复过程如下所示的云服务器首先云服务器计算:
[0048] 以及而被委托人仅仅接着被委托人计算 对于更新后的用户集合时,云服务器计算以及 而
被委托人仅仅接着被委托人计算
[0049] 以上实施例只是对本发明做进一步说明,并非用以限制本发明专利,凡为本发明等效实施,均应包含于本发明专利的权利要求范围之内。