一种云存储中支持数据共享的分层访问控制系统及方法转让专利

申请号 : CN201810091589.9

文献号 : CN108111540B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈晓峰邱震尧张志为陶晓玲王勇

申请人 : 西安电子科技大学

摘要 :

本发明属于通过一个平台保护数据存取访问的技术领域,公开了一种云存储中支持数据共享的分层访问控制系统及方法,包括:可信授权中心生成系统秘密信息和公共信息,并向用户公开系统公共信息;可信授权中心根据用户群组等级结构,基于密钥聚合方法生成每个用户群组的密钥并分发给所有对应用户;用户利用任意目标用户群组的系统公共信息对拟分享的数据进行加密,并上传存储至云服务器中;合法用户获取云服务器中存储的密文数据,利用用户群组密钥对数据进行解密;当需要撤销某个用户的访问权限时,可信授权中心和云服务器进行系统更新和重新加密过程。本发明面向云存储环境实现了公钥密码体制下支持灵活数据安全共享且无需密钥推导过程的分层访问控制。

权利要求 :

1.一种云存储中支持数据共享的分层访问控制方法,其特征在于,所述云存储中支持数据共享的分层访问控制方法包括:可信授权中心生成系统秘密信息和公共信息,并向用户公开系统公共信息;可信授权中心根据用户群组等级结构,基于密钥聚合方法生成每个用户群组的密钥并分发给所有对应用户;用户利用任意目标用户群组的系统公共信息对拟分享的数据进行加密,并上传存储至云服务器中;合法用户获取云服务器中存储的密文数据,利用用户群组密钥对数据进行解密;当需要撤销某个用户的访问权限时,可信授权中心和云服务器进行系统更新和重新加密过程;

所述云存储中支持数据共享的分层访问控制方法包括以下步骤:

(1)可信授权中心运行系统建立算法Setup(1λ,G),输入安全参数1λ和用户群组等级结构G,生成不对外公开的随机数α、不对外公开的表示n个用户群组的系统参数{γi}、n个用户群组的身份{idi}、公共矩阵M和系统公共参数param,并公开用户群组身份{idi}、公共矩阵M和系统公共参数param;

(2)可信授权中心为系统中每一个用户群组生成并分发密钥,运行密钥生成算法KeyGen(G,param,i,γi),输入用户群组等级结构G、系统公共参数param、拟分发密钥的用户群组序号i及其对应的系统参数γi,生成用户群组i的密钥Ki,并分发给用户群组i中的所有用户;

(3)任意用户拟向目标用户群组k分享文件DataFile时,采用混合加密的方法,随机生成一个对称加密密钥DEK,并将文件用对称加密算法加密为{DataFile}DEK,运行加密算法Encrypt(param,DEK,k,idk),输入系统公共参数param、拟分享文件的对称加密密钥DEK、目标用户群组序号k及其身份idk,得到密文CDEK,并将密文头部(k,CDEK)和密文主体{DataFile}DEK上传存储至云服务器中;

(4)用户群组i中的用户u从云服务器中获取目标用户群组为k的密文头部(k,CDEK)和密文主体{DataFile}DEK,运行解密算法Decrypt(G,M,param,i,Ki,(k,CDEK)),输入用户群组等级结构G、公共矩阵M、系统公共参数param、用户u所在群组的序号i和及其对应的密钥Ki以及密文头部(k,CDEK),若用户群组k为用户群组i及其下属群组,则可解密得到对称密钥DEK,进而采用对称密码算法解密得到DataFile,否则无法解密;

(5)当需要将用户群组l中的某一用户v移出该群组时,即该用户不再拥有群组l及其下属用户群组的等级访问权限,可信授权中心运行更新算法Update(α,{γi},param,l)更新撤销用户所在群组l及其所有下属用户群组的密钥,输入不公开的随机数α、表示n个用户群组的不公开参数{γi}、系统公共参数param和拟撤销用户v所在群组序号l,生成新的公共矩阵M′以及用户群组l及其所有下属用户群组 新的系统参数{γq′}不向任何人公开、新的身份{idq′}、新的密钥{Kq′}和每个用户群组的重新加密令牌{TKq},公开新的M′和{idq′},向用户群组l及其所有下属用户群组中的用户分发新的{Kq′},并将重新加密令牌(q,TKq)发送给云服务器;

云服务器对涉及到的每个用户群组即用户群组l及其所有下属用户群组 中的每个密文数据分别运行重新加密算法ReEncrypt((q,CDEK),TKq),输入密文头部(q,CDEK)及其对应的重新加密令牌TKq,生成新的密文头部(q,CDEK′)并在云服务器中进行更新。

2.如权利要求1所述的云存储中支持数据共享的分层访问控制方法,其特征在于,所述(1)中系统建立算法具体过程如下:Setup(1λ,G)→(α,{γi},{idi},M,param):G=(V,E)为表示用户群组等级结构的有向无环图,其中V={SCi}1≤i≤n为表示系统中n个用户群组的顶点集,E为表示用户群组之间偏序关系的有向边集;

随机选择阶为素数p的双线性循环群 其中2λ≤p≤2λ+1,在群 中选择生成元g,在p阶素域 中选择随机数α不对外公开,对于i=1,...,n,n+2,...,2n,计算 设置系统公共参数为param=(g,g1,...,gn,gn+2,...,g2n);

在p阶素域 中为系统中的n个用户群组选择n个随机数{γi}1≤i≤n,不对任何人公开,设置每个用户群组i的身份为 设置公共矩阵为:其中,若 则令 则 否则,令ti,k=0。

3.如权利要求1所述的云存储中支持数据共享的分层访问控制方法,其特征在于,所述(2)中密钥生成算法具体过程如下:KeyGen(G,param,i,γi)→Ki:对于图G中包含SCi及其所有子孙节点的用户群组集合,所有j使得 令 计算 为用户群组i的私钥。

4.如权利要求1所述的云存储中支持数据共享的分层访问控制方法,其特征在于,所述(3)中加密算法具体过程如下:Encrypt(param,m,k,idk)→(k,Cm):对于目标用户群组为k的任意消息 在p阶素域 中选择随机数t,计算密文为

5.如权利要求1所述的云存储中支持数据共享的分层访问控制方法,其特征在于,所述(4)中解密算法具体过程如下:Decrypt(G,M,param,i,Ki,(k,Cm))→md:若图G中 则用户群组i中的用户无法使用密钥Ki对密文Cm进行解密,返回⊥;

若图G中 则用户群组i中的用户可使用密钥Ki解密出明文:

其中 可从公共矩阵M中取得,返回md。

6.如权利要求1所述的云存储中支持数据共享的分层访问控制方法,其特征在于,所述(5)中更新算法具体过程如下:在p阶素域 中为拟

更新的用户群组l及其所有下属用户群组分别选择新的随机数 不对任何人公开,更新用户群组l及其下属用户群组的身份为 更新公共矩阵M中与相关的元素生成新的公共矩阵M′,重新计算用户群组l及其下属用户群组的私钥 其中 生成重新加密令 牌

7.如权利要求1所述的云存储中支持数据共享的分层访问控制方法,其特征在于,所述(5)中重新加密算法具体过程如下:ReEncrypt((q,Cm),TKq)→(q,Cm′):使用重新加密令牌 将拟更新用户群组q的所有密文 中的 更新为

得到新的密文

8.一种如权利要求1所述云存储中支持数据共享的分层访问控制方法的云存储中支持数据共享的分层访问控制系统,其特征在于,所述云存储中支持数据共享的分层访问控制系统包括:可信授权中心模块,与分层用户群组模块和云服务器模块连接,用于生成系统信息和分层用户群组模块中所有用户群组的密钥,并可生成重新加密令牌,用于云服务器模块进行数据重新加密;

分层用户群组模块,与可信授权中心模块和云服务器模块连接,用于将本地拟分享数据经过加密后存储到云上,并可获取云服务器模块中存储的密文数据,数据的管理任务递交给云服务器模块;

云服务器模块,与可信授权中心模块和分层用户群组模块连接,用于提供数据外包存储和密文数据重新加密服务,代替用户存储和管理数据。

9.一种应用权利要求1~7任意一项所述云存储中支持数据共享的分层访问控制方法的云存储服务系统。

说明书 :

一种云存储中支持数据共享的分层访问控制系统及方法

技术领域

[0001] 本发明属于通过一个平台保护数据存取访问的技术领域,尤其涉及一种云存储中支持数据共享的分层访问控制系统及方法。

背景技术

[0002] 目前,业内常用的现有技术是这样的:云计算是一种新的计算模式,它基于动态可伸缩的虚拟化技术,将计算作为一种资源,通过互联网向资源有限的用户提供按需的计算服务。随着网络空间中数据量的爆炸式增长,数据的存储问题变得愈发棘手。云存储服务作为云计算技术的延伸,提供了数据的外包存储解决方案。云服务提供商利用云存储服务器向用户提供数据存储资源与相关管理服务。用户通过支付一定的费用购买存储服务,并将相关数据在云服务器上进行外包存储。同机构或个人用户自己部署存储设备与管理软件的方式相比,这一外包存储模式具有成本较低、按需选择、管理方便、随处访问等优势。然而,用户的外包存储数据可能含有敏感信息,如政府的机密文件、企业的商业数据和个人的医疗信息等等,因此云存储模式在给用户带来便利的同时,也会对用户存储在云端的数据带来安全威胁。一旦用户将数据上传至云服务器,其只能以远程操作的方式对外包存储数据进行访问与处理。这样,用户很可能会丧失外包存储数据的自主控制权。另外,除了恶意的攻击者以外,云服务提供商也可能会受利益的驱使在半可信模式下工作,即云服务提供商严格执行协议的规定,但通过与用户的交互最大程度地获取用户的隐私信息。因此,用户应该对数据进行加密并以密文的形式存储在云服务器上以保证数据信息不被泄露给未经授权的用户,如何保证多个用户在云存储模式下进行数据的安全共享和访问控制成为了一个亟待解决的问题。现有的云存储数据安全共享与访问控制方案一般基于属性基加密(ABE)技术,即根据用户的身份为其分配一组特定的属性,并为具有不同访问权限要求的文件数据制定不同的访问控制策略,只有属性满足文件访问控制策略要求的用户才能对文件进行解密。然而,在一些常见的云存储现实应用场景下,如企业云、政务云等,用户是以层级结构的方式进行组织的,即不同用户分属于不同的用户组,而用户组之间具有等级关系,高等级用户具有访问其下属用户数据的权限,而低等级用户无法访问高等级用户的数据。针对分层场景下的数据访问控制问题首先提出了一种基于密码学的解决方案,将用户集合之间的层级结构描述为安全类之间的偏序集关系,利用数论中的若干定理基于对称密码体制给出了一种防止共谋的等级密钥管理方案,但该方案存在随着用户层次结构广度和深度的增大而密钥大小迅速增大的问题,不适合扩展到大规模复杂结构中。基于单向函数思想提出了一种树形结构下的分层访问控制实现方案,方案中不同的用户拥有单个固定大小的密钥。后来提出了一种外包数据的多用户安全访问控制方案,该方案面向的用户等级结构类型为树型,并且采用了基于单向函数的密钥推导方法,其不足之处是各个用户需要存储多个对称加密密钥。一种动态等级密钥管理方案将安全类之间的偏序关系表示为有向图的形式,通过对图中的节点和边都赋予特定的公开信息,利用哈希函数实现任意高等级类到其后代低等级类的密钥推导过程。目前的分层访问控制方法大多基于对称密码体制,用户通常只可能拥有自己和下属用户的对称密钥,因此无法使用除此之外其他用户的密钥对拟分享数据进行加密,以在云存储中向这些用户分享对方可解密的密文数据。
[0003] 综上所述,现有技术存在的问题是:在基于对称密码体制的分层访问控制方法中,用户通常无法向其他任意用户分享对方可解密的密文数据,不太适用于云存储数据安全共享场景。
[0004] 解决上述技术问题的难度和意义:如何运用并改进公钥密码体制下的密码学方法实现用户分层应用场景中的等级密钥管理是解决上述技术问题的难点,可实现在云存储环境下面向任意层级用户的灵活数据共享和无需密钥推导过程的分层访问控制。

发明内容

[0005] 针对现有技术存在的问题,本发明提供了一种云存储中支持数据共享的分层访问控制系统及方法。
[0006] 本发明是这样实现的,一种云存储中支持数据共享的分层访问控制方法,所述云存储中支持数据共享的分层访问控制方法包括:可信授权中心生成系统秘密信息和公共信息,并向用户公开系统公共信息;可信授权中心根据用户群组等级结构,基于密钥聚合方法生成每个用户群组的密钥并分发给所有对应用户;用户利用任意目标用户群组的系统公共信息对拟分享的数据进行加密,并上传存储至云服务器中;合法用户获取云服务器中存储的密文数据,利用用户群组密钥对数据进行解密;当需要撤销某个用户的访问权限时,可信授权中心和云服务器进行系统更新和重新加密过程。
[0007] 进一步,所述云存储中支持数据共享的分层访问控制方法包括以下步骤:
[0008] (1)可信授权中心运行系统建立算法Setup(1λ,G),输入安全参数1λ和用户群组等级结构G,生成不对外公开的随机数α、不对外公开的表示n个用户群组的系统参数{γi}、n个用户群组的身份{idi}、公共矩阵M和系统公共参数param,并公开用户群组身份{idi}、公共矩阵M和系统公共参数param;
[0009] (2)可信授权中心为系统中每一个用户群组生成并分发密钥,运行密钥生成算法KeyGen(G,param,i,γi),输入用户群组等级结构G、系统公共参数param、拟分发密钥的用户群组序号i及其对应的系统参数γi,生成用户群组i的密钥Ki,并分发给用户群组i中的所有用户;
[0010] (3)任意用户拟向目标用户群组k分享文件DataFile时,采用混合加密的方法,随机生成一个对称加密密钥DEK,并将文件用对称加密算法加密为{DataFile}DEK,运行加密算法Encrypt(param,DEK,k,idk),输入系统公共参数param、拟分享文件的对称加密密钥DEK、目标用户群组序号k及其身份idk,得到密文CDEK,并将密文头部(k,CDEK)和密文主体{DataFile}DEK上传存储至云服务器中;
[0011] (4)用户群组i中的用户u从云服务器中获取目标用户群组为k的密文头部(k,CDEK)和密文主体{DataFile}DEK,运行解密算法Decrypt(G,M,param,i,Ki,(k,CDEK)),输入用户群组等级结构G、公共矩阵M、系统公共参数param、用户u所在群组的序号i和及其对应的密钥Ki以及密文头部(k,CDEK),若用户群组k为用户群组i及其下属群组,则可解密得到对称密钥DEK,进而采用对称密码算法解密得到DataFile,否则无法解密;
[0012] (5)当需要将用户群组l中的某一用户v移出该群组时,即该用户不再拥有群组l及其下属用户群组的等级访问权限,可信授权中心运行更新算法Update(α,{γi},param,l)更新撤销用户所在群组l及其所有下属用户群组的密钥,输入不公开的随机数α、表示n个用户群组的不公开参数{γi}、系统公共参数param和拟撤销用户v所在群组序号l,生成新的公共矩阵M′以及用户群组l及其所有下属用户群组 新的系统参数{γq′}不向任何人公开、新的身份{idq′}、新的密钥{Kq′}和每个用户群组的重新加密令牌{TKq},公开新的M′和{idq′},向用户群组l及其所有下属用户群组中的用户分发新的{Kq′},并将重新加密令牌(q,TKq)发送给云服务器;
[0013] 云服务器对涉及到的每个用户群组即用户群组l及其所有下属用户群组中的每个密文数据分别运行重新加密算法ReEncrypt((q,CDEK),TKq),输入密文头部(q,CDEK)及其对应的重新加密令牌TKq,生成新的密文头部(q,CDEK′)并在云服务器中进行更新。
[0014] 进一步,所述(1)中系统建立算法具体过程如下:
[0015] Setup(1λ,G)→(α,{γi},{idi},M,param):G=(V,E)为表示用户群组等级结构的有向无环图,其中V={SCi}1≤i≤n为表示系统中n个用户群组的顶点集,E为表示用户群组之间偏序关系的有向边集;
[0016] 随机选择阶为素数p的双线性循环群 其中2λ≤p≤2λ+1,在群 中选择生成元g,在p阶素域 中选择随机数α不对外公开,对于i=1,...,n,n+2,...,2n,计算设置系统公共参数为param=(g,g1,...,gn,gn+2,...,g2n);
[0017] 在p阶素域 中为系统中的n个用户群组选择n个随机数{γi}1≤i≤n,不对任何人公开,设置每个用户群组i的身份为 设置公共矩阵为:
[0018]
[0019] 其中,若 则令 则 否则,令ti,k=0。
[0020] 进一步,所述(2)中密钥生成算法具体过程如下:
[0021] KeyGen(G,param,i,γi)→Ki:对于图G中包含SCi及其所有子孙节点的用户群组集合,所有j使得 令 计算 为用户群组i的私钥。
[0022] 进一步,所述(3)中加密算法具体过程如下:
[0023] Encrypt(param,m,k,idk)→(k,Cm):对于目标用户群组为k的任意消息在p阶素域 中选择随机数t,计算密文为
[0024] 进一步,所述(4)中解密算法具体过程如下:
[0025] Decrypt(G,M,param,i,Ki,(k,Cm))→md:若图G中 则用户群组i中的用户无法使用密钥Ki对密文Cm进行解密,返回⊥;
[0026] 若图G中 则用户群组i中的用户可使用密钥Ki解密出明文:
[0027]
[0028] 其中 可从公共矩阵M中取得,返回md。
[0029] 进一步,所述(5)中更新算法具体过程如下:
[0030] 在p阶素域中为拟更新的用户群组l及其所有下属用户群组分别选择新的随机数 不对任何人公开,更新用户群组l及其下属用户群组的身份为 更新公共矩阵M
中与 相关的元素生成新的公共矩阵M′,重新计算用户群组l及其下属用户群组的私钥 其中 生成重新加密令牌
[0031] 进一步,所述(5)中重新加密算法具体过程如下:
[0032] ReEncrypt((q,Cm),TKq)→(q,Cm′):使用重新加密令牌 将拟更新用户群组q的所有密文 中的 更新为 得到新的密文
[0033] 本发明的另一目的在于提供一种所述云存储中支持数据共享的分层访问控制方法的云存储中支持数据共享的分层访问控制系统,所述云存储中支持数据共享的分层访问控制系统包括:
[0034] 可信授权中心模块,与分层用户群组模块和云服务器模块连接,用于生成系统信息和分层用户群组模块中所有用户群组的密钥,并可生成重新加密令牌,用于云服务器模块进行数据重新加密;
[0035] 分层用户群组模块,与可信授权中心模块和云服务器模块连接,用于将本地拟分享数据经过加密后存储到云上,并可获取云服务器模块中存储的密文数据,数据的管理任务递交给云服务器模块;
[0036] 云服务器模块,与可信授权中心模块和分层用户群组模块连接,用于提供数据外包存储和密文数据重新加密服务,代替用户存储和管理数据。
[0037] 本发明的另一目的在于提供一种应用所述云存储中支持数据共享的分层访问控制方法的云存储服务系统。
[0038] 综上所述,本发明的优点及积极效果为:本发明基于密钥聚合方法实现了公钥密码体制下的分层访问控制,只需要向用户分发固定长度的单一密钥就可实现对自己所在用户群组和下属用户群组数据的解密。同时,用户可向任意等级的用户群组共享对方可解密的密文数据,而无需使用对方的密钥对拟分享数据进行加密,适合云存储数据安全共享场景。另外,本发明的解密过程无需密钥推导步骤,用户可直接使用所在用户群组的密钥对下属用户群组的密文数据进行解密。此外,本发明还支持局部密钥更新和云服务器委托重新加密,即在用户撤销的过程中,只需更新被撤销用户所在群组及其下属群组的密钥并委托云服务器对这些用户群组的数据进行重新加密,而不会影响其他用户群组。
[0039] 本发明实现的技术效果与现有技术的对比如表1所示。
[0040] 表1
[0041]

附图说明

[0042] 图1是本发明实施例提供的云存储中支持数据共享的分层访问控制方法流程图。
[0043] 图2是本发明实施例提供的云存储中支持数据共享的分层访问控制系统结构示意图;
[0044] 图中:1、可信授权中心模块;2、分层用户群组模块;3、云服务器模块。
[0045] 图3是本发明实施例提供的云存储中支持数据共享的分层访问控制系统结构框图。

具体实施方式

[0046] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0047] 本发明基于密钥聚合方法实现了公钥密码体制下的分层访问控制,只需要向用户分发固定长度的单一密钥就可实现对自己所在用户群组和下属用户群组数据的解密。
[0048] 如图1所示,本发明实施例提供的云存储中支持数据共享的分层访问控制方法包括以下步骤:
[0049] S101:系统初始化:可信授权中心生成系统秘密信息和公共信息,并向用户公开系统公共信息;
[0050] S102:等级密钥分发:可信授权中心根据用户群组等级结构,基于密钥聚合方法生成每个用户群组的密钥并分发给所有对应用户;
[0051] S103:密文数据共享:用户利用任意目标用户群组的系统公共信息对拟分享的数据进行加密,并上传存储至云服务器中;
[0052] S104:数据解密:合法用户获取云服务器中存储的密文数据,利用用户群组密钥对数据进行解密;
[0053] S105:用户撤销:当需要撤销某个用户的访问权限时,可信授权中心和云服务器进行系统更新和重新加密过程。
[0054] 如图2所示,本发明实施例提供的云存储中支持数据共享的分层访问控制系统包括:可信授权中心模块1、分层用户群组模块2和云服务器模块3。
[0055] 可信授权中心模块1,与分层用户群组模块2和云服务器模块3连接,用于生成系统信息和分层用户群组模块2中所有用户群组的密钥,并可生成重新加密令牌,用于云服务器模块3进行数据重新加密;
[0056] 分层用户群组模块2,与可信授权中心模块1和云服务器模块3连接,用于将本地拟分享数据经过加密后存储到云上,并可获取云服务器模块3中存储的密文数据,数据的管理任务递交给云服务器模块3;
[0057] 云服务器模块3,与可信授权中心模块1和分层用户群组模块2连接,用于提供数据外包存储和密文数据重新加密服务,代替用户存储和管理数据。
[0058] 本发明假设云服务器是诚实但好奇的。也就是说,云服务器会诚实地执行协议指定的数据存储和重新加密等操作,但可能会尝试从存储在云服务器中的密文数据中分析并获取相关明文信息。
[0059] 本发明云存储中支持数据共享的分层访问控制方法主要实现以下目标:
[0060] 灵活数据共享。所有用户可选择分层用户群组中的任意用户群组作为目标群组,对拟分享的数据进行加密,生成并共享对方可解密的密文数据。
[0061] 安全性。对于云服务器中存储的密文数据,只有对应目标用户群组及其下属用户群组中的用户才可对该密文数据进行解密,而云服务器和其他用户无法获取数据明文信息。
[0062] 支持动态更新。当某用户群组中的某一用户退出该用户群组时,可信授权中心可对系统中涉及该用户群组及其下属用户群组的信息进行更新,并委托云服务器对所涉及用户群组的密文数据进行重新加密,以实现前向和后向安全性。
[0063] 在本发明实施例的系统中,其使用到的密码学原语为双线性对,具体描述如下:
[0064] 令 和 为两个阶为素数p的循环群, 为一个具有以下性质的映射关系:
[0065] 1)双线性:对于任意的 和 均有 成立;
[0066] 2)非退化性:存在 满足e(g,g)≠1;
[0067] 3)可计算性:存在有效的算法,使得对于任意的 均可计算e(g1,g2)。
[0068] 其中, 被称为一个双线性群。许多类型的椭圆曲线都满足双线性群的性质。
[0069] 本发明的分层访问控制方法
[0070] (1)系统初始化
[0071] 可信授权中心运行系统建立算法Setup(1λ,G),输入安全参数1λ和用户群组等级结构G,生成不对外公开的随机数α、不对外公开的表示n个用户群组的系统参数{γi}、n个用户群组的身份{idi}、公共矩阵M和系统公共参数param,并公开用户群组身份{idi}、公共矩阵M和系统公共参数param;
[0072] (2)等级密钥分发
[0073] 可信授权中心为系统中每一个用户群组生成并分发密钥,运行密钥生成算法KeyGen(G,param,i,γi),输入用户群组等级结构G、系统公共参数param、拟分发密钥的用户群组序号i及其对应的系统参数γi,生成用户群组i的密钥Ki,并分发给用户群组i中的所有用户;
[0074] (3)密文数据共享
[0075] 任意用户拟向目标用户群组k分享文件DataFile时,采用混合加密的方法,首先随机生成一个对称加密密钥DEK,并将文件用对称加密算法加密为{DataFile}DEK,然后运行加密算法Encrypt(param,DEK,k,idk),输入系统公共参数param、拟分享文件的对称加密密钥DEK、目标用户群组序号k及其身份idk,得到密文CDEK,并将密文头部(k,CDEK)和密文主体{DataFile}DEK上传存储至云服务器中;
[0076] (4)数据解密
[0077] 用户群组i中的用户u从云服务器中获取目标用户群组为k的密文头部(k,CDEK)和密文主体{DataFile}DEK,运行解密算法Decrypt(G,M,param,i,Ki,(k,CDEK)),输入用户群组等级结构G、公共矩阵M、系统公共参数param、用户u所在群组的序号i和及其对应的密钥Ki以及密文头部(k,CDEK),若用户群组k为用户群组i及其下属群组,则可解密得到对称密钥DEK,进而采用对称密码算法解密得到DataFile,否则无法解密;
[0078] (5)用户撤销
[0079] 由于在真实应用场景中,涉及用户群组等级结构的变化频率较低,例如新增用户群组、删除用户群组、添加等级关系和删除等级关系等,第一种情况考虑重新进行系统初始化及其后续步骤,后三种情况考虑更新用户群组等级结构G并进行相关用户群组的密钥更新和重新加密等过程即可。本发明主要考虑在用户群组中撤销某一用户访问权限这一更常发生的更新情况。
[0080] 当需要将用户群组l中的某一用户v移出该群组时,即该用户不再拥有群组l及其下属用户群组的等级访问权限,可信授权中心运行更新算法Update(α,{γi},param,l)更新撤销用户所在群组l及其所有下属用户群组的密钥,输入不公开的随机数α、表示n个用户群组的不公开参数{γi}、系统公共参数param和拟撤销用户v所在群组序号l,生成新的公共矩阵M′以及用户群组l及其所有下属用户群组 新的系统参数{γq′}不向任何人公开、新的身份{idq′}、新的密钥{Kq′}和每个用户群组的重新加密令牌{TKq},公开新的M′和{idq′},向用户群组l及其所有下属用户群组中的用户分发新的{Kq′},并将重新加密令牌(q,TKq)发送给云服务器;
[0081] 云服务器对涉及到的每个用户群组即用户群组l及其所有下属用户群组中的每个密文数据分别运行重新加密算法ReEncrypt((q,CDEK),TKq),输入密文头部(q,CDEK)及其对应的重新加密令牌TKq,生成新的密文头部(q,CDEK′)并在云服务器中进行更新。
[0082] 对本发明包含的算法进行详细说明
[0083] 本发明中的用户群组等级结构可以由一个偏序集 表示。这里,V={SC1,...,SCn}是用户群组集合。元素SCi表示为一个单独用户或者多个具有同等访问权限的用户组成的访问群组。二元关系 表示集合V中元素的等级关系。符号 意味着用户群组SCj中的用户可以访问用户群组SCi对应的数据。也就是说,用户群组SCj在访问等级上高于用户群组SCi。如果 且不存在SCk∈V使得 成立,则记为
[0084] 从图论的观点来看,任意一个偏序集 均可表示为一个有向图G=(V,E)。如果SCi,SCj∈V且满足 则在G中存在一个从SCj到SCi的边。在本发明的分层访问控制方法中,以有向无环图作为描述用户群组等级结构的参数。
[0085] 1)系统建立算法Setup(1λ,G)→(α,{γi},{idi},M,param):
[0086] G=(V,E)为表示用户群组等级结构的有向无环图,其中V={SCi}1≤i≤n为表示系统中n个用户群组的顶点集,E为表示用户群组之间偏序关系的有向边集;
[0087] 随机选择阶为素数p的双线性循环群 其中2λ≤p≤2λ+1,在群 中选择生成元g,在p阶素域 中选择随机数α不对外公开,对于i=1,...,n,n+2,...,2n,计算设置系统公共参数为param=(g,g1,...,gn,gn+2,...,g2n);
[0088] 在p阶素域 中为系统中的n个用户群组选择n个随机数{γi}1≤i≤n,不对任何人公开,设置每个用户群组i的身份为 设置公共矩阵为:
[0089]
[0090] 其中,若 则令 则 否则,令ti,k=0;
[0091] 2)密钥生成算法KeyGen(G,param,i,γi)→Ki:
[0092] 对于图G中包含SCi及其所有子孙节点的用户群组集合,即所有j使得令 计算 为用户群组i的私钥。
[0093] 3)加密算法Encrypt(param,m,k,idk)→(k,Cm):
[0094] 对于目标用户群组为k的任意消息 在p阶素域 中选择随机数t,计算密文为
[0095] 4)解密算法Decrypt(G,M,param,i,Ki,(k,Cm))→md:
[0096] 若图G中 则用户群组i中的用户无法使用密钥Ki对密文Cm进行解密,返回⊥;
[0097] 若图G中 则用户群组i中的用户可使用密钥Ki解密出明文:
[0098]
[0099] 其中 可从公共矩阵M中取得,返回md。
[0100] 5)更新算法
[0101] 在p阶素域 中为拟更新的用户群组l及其所有下属用户群组分别选择新的随机数 不对任何人公开,更新用户群组l及其下属用户群组的身份为更新公共矩阵M中与 相关的元素生成新的公共矩阵M′,重新
计算用户群组l及其下属用户群组的私钥 其中
生成重新加密令牌
[0102] 6)重新加密算法ReEncrypt((q,Cm),TKq)→(q,Cm′):
[0103] 使用重新加密令牌 将拟更新用户群组q的所有密文中的 更新为
得到新的密文
[0104] 正确性分析
[0105] 本发明中数据解密过程的正确性可由以下详细推导过程得出:
[0106] 对于目标用户群组为k的密文 若则用户群组i中的用户可使用公共矩阵M中的 以及群组密钥
解密出明文:
[0107]
[0108] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。