一种云存储环境下支持用户动态撤销的属性基数据加密方法
技术领域
本发明属于云存储环境的数据加密技术领域,涉及一种云存储环境下支持用户动态撤销的属性基数据加密方法。
背景技术
随着云存储技术的发展,越来越多的用户选择使用云平台来存储和共享数据。用户使用云存储环境来存储和共享未加密数据时,存在消息和隐私泄露的安全隐患。为保证数据安全,用户将自己的隐私数据加密后存储在开放的云存储环境中。如何建立云存储环境下的密文访问控制以及已注册用户撤销后带来的数据的后向安全性问题是亟待解决的问题。例如,在实际云存储环境应用中,满足访问结构的用户在存储中心先注册,获得相关解密密钥才能读取加密文件。但是注册过的合法用户还可能动态地退出系统,因为他们拥有注册时获得的解密密钥信息,所以还能继续读取云存储中心的加密文件。为了防止上述注销用户非法读取的问题。
属性基机密机制(Attribute-Based Encryption,ABE)是由Sahai和Waters在基于身份的加密机制上提出的一种新的公钥加密机制,属性基加密机制可以实现对不同用户细粒度访问权限的控制和高效的信息分享,受到了学术界和工业界的青睐。目前ABE的研究主要分为由Goyal等人提出的基于密钥策略的属性基加密机制(key-policy attribute-based encryption,KP-ABE)和由Bethencourt等人提出的基于密文策略的属性基加密机制(ciphertext-policyattribute-based encryption,CP-ABE)。
在CP-ABE系统中,用户的密钥由属性集标识,密文和访问结构相关联。在数据加密前,数据拥有者明确的指定具有哪些属性的用户可以访问自己加密的数据。
现有云存储技术所采用的方法,仍然存在数据安全性隐患,主要是合法用户注销后依然能访问数据容易造成数据泄密的问题Hur等人提出了一个支持即时属性撤销的数据外包ABE方案,该方案通过可信的第三方来管理属性撤销列表。Wan等人通过采用分层域的方式为用户分发密钥,并实现了用户撤销。Yu等人提出了一种云存储环境下的CP-ABE方案,它通过使用代理重加密技术来提供一种新型的密钥撤销方法。这为之后如何在分布式存储系统中构造支持用户撤销的ABE方案提供了全新思路。不幸的是这种撤销方式必须重新计算相关访问结构的密文,且计算量与属性的个数成线性关系,对于移动智能终端用户而言计算成本太高。还有方法是通过在用户的私钥和密文中嵌入代理重加密技术,从而大大降低了昂贵的密钥更新带来的撤销开销。或者提出的用户撤销算法无法进行部分密钥的更新,已获取部分密钥的用户即使在注销后仍可解密共享数据,不能保证方案的后向安全性。
发明内容
本发明的目的是解决现有云存储数据技术中存在合法用户注销后依然能访问数据容易造成数据泄密的问题。
为此,本申请了提供了一种云存储环境下支持用户动态撤销的属性基数据加密方法,包括如下步骤:
步骤1、系统公开云存储中心、授权中心、数据拥有者和数据使用者均共用的全局公开参数param=(G,G1,e(·,·),g,p);
其中,G,G1是阶数为素数p的乘群,g为乘群G的生成元,e(·,·)为G×G映射到群G1上的双线性映射,满足①有e(ga,gb)=e(gb,ga)=e(g,g)ab,e(u1×u2,v)=e(u1,v)e(u2,v)(双线性特性);②v∈G,使得e(u,v)≠1,其中,1是G1的单位元(非退化性);③对于存在一个高效的多项式时间算法计算e(u,v);
步骤2、云存储中心公开全属性集Ω,|Ω|=n,同时生成部分密钥k,
步骤3、数据拥有者随机选择数γ作为其私钥,并计算其公钥pkD={gγ,g1 /γ};
步骤4、授权中心以属性集Ω,e以及随机数α为输入输出返回主密钥mk以及公钥pk;
步骤5、数据用户注册,获得访问数据权限;
步骤6、数据拥有者设置访问结构T,将要共享的数据m,进行加密,生成密文CT,并将密文CT输入到云存储中心;
步骤7、数据用户通过密钥访问数据;
步骤8、当有注册合法的数据用户注销时,云存储中心重新生成部分密钥k',并对数据拥有者存储数据重新加密得C0′,同时未注销的用户通过更新自己的私钥为sku′,继续解数据。
所述系统按照安全需求输入安全参数1λ,全局参数并公开param=(G,G1,e(·,·),g,p);其中,乘群G,G1的素数阶p≥2λ。
云存储中心公开全体属性集Ω={L1,L2,…,Ln},|Ω|=n,每个属性Li的取值集合为ni为Fi的阶。
数据拥有者随机选择数γ作为其私钥,该私钥需秘密并记作skD={γ}。
授权中心以属性集Ω,e,以及随机数α为输入,计算Y=e(g,g)α,并为云存储中心公开的每个属性的属性值选择数字化随机值计算然后授权中心秘密保护好密钥公开
所述数据用户注册获得访问数据权限包括如下步骤:
(1)、数据用户在云存储中心处进行注册,云存储中心返回部分密钥k,以及数据用户的属性集w给数据用户,其中,w={l1,l2,…,lm};
(2)、数据用户发送w={l1,l2,…,lm}给授权中心,申请属性关联密钥;授权中心检查然后随机选择为数据用户的唯一标识符,并为数据用户属性集w中的每个属性lj随机选取参数并计算D1=(gk)u,1≤i≤j≤n,1≤ti≤ni;用户的私钥表示为sku={D0,D1,{Di1,Di2}1≤i≤j}。
所述数据用户通过密钥访问数据需要以密文CT,私钥sku,属性集w为输入,判断属性集w是否与设置的访问结构T匹配,若匹配则成功解密,反之则解密失败。
所述存储数据密文CT中的分量C0更新为C'0通过如下公式:
未注销的有效用户自行动态地更新自己的私钥的公式如下:
本发明的有益效果:本发明提供的这种云存储环境下支持用户动态撤销的属性基数据加密方法,通过引入授权中心不仅分担了部分云存储中心的工作,而且可限制云存储中心,避免因为云存储中心的对数据的控制权利过大,而引发的数据安全问题;而且该云存储环境下支持用户动态撤销的属性基数据加密方法,能够在合法数据用户注销后,及时更新密钥,避免已注销的用户对数据的合法访问,造成的泄密问题,提高了数据的安全性,而且数据计算量、存储量、数据更新的传输量均大大减少,具有更高的安全性和更少的数据量。
以下将结合附图对本发明做进一步详细说明。
附图说明
图1是本方法中4个参与实体功能和关系示意图。
图2是新用户注册流程示意图。
图3是访问结构T结构的构建示意图。
图4是用户私钥的存储代理对比示意图。
图5是密文的计算代价对比示意图。
具体实施方式
为进一步阐述本发明达成预定目的所采取的技术手段及功效,以下结合附图及实施例对本发明的具体实施方式、结构特征及其功效,详细说明如下。
本方案包括四个实体:
(1)数据拥有者(Data owner,D),对共享数据进行加密且上载密文到云存储中心,并指定相应的访问结构T。
(2)云存储中心(Cloud storage provider,CSP),主要负责存储D共享数据的密文,并生成部分解密密钥为满足属性的注册用户发送该密钥。
(3)授权中心(Authority center,AC),负责为每个属性生成公开钥及密钥,并且生成合法注册用户的唯一标识符以及私钥。
(4)数据用户(User,U),从云存储中心获得解密部分密钥,并从授权中心获得私钥,从云存储中心下载密文,解密得到共享数据明文。
以下内容中,数据用户简称为U,数据拥有者简称D,云存储中心简称CSP,授权中心简称AC。
实施例1
为了解决现有云存储数据技术中存在合法用户注销后依然能访问数据容易造成数据泄密的问题,本实施例提供了一种如图1所示的云存储环境下支持用户动态撤销的属性基数据加密方法,首先由CSP生成的部分密钥结合AC为用户生成的唯一标识共同产生U的私钥;接着满足访问结构T的U用自己的私钥解密存储在云端加密数据。当有已注册合法用户注销时,CSP更新部分密钥并完成相关密文的更新,未注销的用户通过完成私钥sku的更新而继续解密云端数据,而注销过的用户则不可以正确解密,从而保护共享数据的机密性。具体参与方的功能如图1所示。
一种云存储环境下支持用户动态撤销的属性基数据加密方法,包括如下步骤:
步骤1、系统公开云存储中心、授权中心、数据拥有者和数据使用者均共用的全局公开参数param=(G,G1,e(·,·),g,p);
其中,G,G1是阶数为素数p的乘群,g为乘群G的生成元,e(·,·)为G×G映射到群G1上的双线性映射,满足①有e(ga,gb)=e(gb,ga)=e(g,g)ab,e(u1×u2,v)=e(u1,v)e(u2,v)(双线性特性);②v∈G,使得e(u,v)≠1,其中,1是G1的单位元(非退化性);③对于存在一个高效的多项式时间算法计算e(u,v);
步骤2、云存储中心公开全属性集Ω,|Ω|=n,同时生成部分密钥k,
步骤3、数据拥有者随机选择数γ作为其私钥,并计算其公钥pkD={gγ,g1 /γ}
步骤4、授权中心以属性集Ω,e以及随机数α为输入输出返回主密钥mk以及公钥pk;
步骤5、数据用户注册,获得访问数据权限;
步骤6、数据拥有者设置访问结构T,将要共享的数据m,进行加密,生成密文CT,并将密文CT输入到云存储中心;
步骤7、数据用户通过密钥访问数据;
步骤8、当有注册合法的数据用户注销时,云存储中心重新生成部分密钥k',并对数据拥有者存储数据重新加密得C0′,同时未注销的用户通过更新自己的私钥为sku′,继续解数据。
所述系统按照安全需求输入安全参数1λ,全局参数并公开param=(G,G1,e(·,·),g,p);其中,乘群G,G1的素数阶p≥2λ。
云存储中心公开全体属性集Ω={L1,L2,…,Ln},|Ω|=n,每个属性Li的取值集合为ni为Fi的阶。
数据拥有者随机选择数γ作为其私钥,该私钥需秘密并记作skD={γ}。
授权中心以属性集Ω,e,以及随机数α为输入,计算Y=e(g,g)α,并为云存储中心公开的每个属性的属性值选择数字化随机值计算然后授权中心秘密保护好密钥公开
所述数据用户注册获得访问数据权限包括如下步骤:
(1)、数据用户在云存储中心处进行注册,云存储中心返回部分密钥k,以及数据用户的属性集w给数据用户,其中,w={l1,l2,…,lm};
(2)、数据用户发送w=(l1,l2,…,lm)给授权中心,申请属性关联密钥;授权中心检查然后随机选择为数据用户的唯一标识符,并为数据用户属性集w中的每个属性lj随机选取参数并计算D1=(gk)u,1≤i≤j≤n,1≤ti≤ni;用户的私钥表示为sku={D0,D1,{Di1,Di2}1≤i≤j}。
所述数据用户通过密钥访问数据需要以密文CT,私钥sku,属性集w为输入,判断属性集w是否与设置的访问结构T匹配,若匹配则成功解密,反之则解密失败。
所述存储数据密文CT中的分量C0更新为C'0通过如下公式:
未注销的有效用户自行动态地更新自己的私钥的公式如下:
实施例2
用户注册算法
上述D在CSP注册:D在存储数据前先需用注册,CSP检验D身份ID的真实性,并为注册成功的D通过安全信道返回k。
用户U在CSP注册:用户U根据CSP的属性集Ω={L1,L2,…,Ln},产生自己的属性集其中且lj∈Ω,1≤j≤n,并提交身份ID和个人属性集w给CSP,CSP将部分密钥k通过安全信道返回给U。
加密算法
在上传共享数据之前,D以访问结构中的属性作为叶子节点,门限逻辑符(AND,OR)作为中间节点构建访问结构树T。然后D将明文m∈G1在指定的访问结构树T下进行加密。D随机选择赋值给访问结构的根节点且记根节点为已标记,所有的儿子节点未标记。下面递归为每个各级未标记的子节点进行标记。
如果一级中间节点为AND门,且其j个儿子节点为未标记,随机选择满足将si给所有的儿子节点赋值并记为已标记。如果一级中间节点为OR门,则该节点下的任意儿子节点赋值为s,并设置全部儿子节点为已标记。依此类推,逐层标记至叶子节点。图3给出一个实例,实际上本方案中共对n×ni个叶子节点均作了赋值和标记。
D根据每个叶子节点的属性对共享数据m加密,计算C0=mYks,C1=gγs得到密文D将CT通过公开信道上传存储在CSP。
解密算法
所有的云存储用户U从云存储中心CSP查询下载加密后的数据CT,并使用自己的私钥进行解密.对于任意的用户U,如果属性列表w满足访问结构T,那么用户可以通过如下计算进行解密:先计算 S=e(C1,D0),则可以得出
实施例3
利用实施例1与实施例2所示的云存储环境下支持用户动态撤销的属性基数据加密方法与已有的几种方案进行对比主要考虑用户的私钥长度、密文长度的存储代价以及用户私钥的计算代价和密文的计算代价。表1中n表示的是系统属性的个数,ni表示第i个属性的取值个数,|w|(|w|≤n)表示用户私钥的属性个数,|G|和|G1|分别表示G和G1中元素的长度,tm表示单位幂乘的计算代价,tp表示单位点乘的计算代价。具体比较结果如表1和表2。
表1存储开销比较
表2计算开销比较
实施例4
为了进一步进行对比,实验系统采用Matlab语言实现。
实验1用户私钥存储代价。假设系统总的属性个数为25,用户关联的属性个数是变化的。图4展示用户关联的属性个数变化时私钥存储代价变化情况,由于本文方案只需存储用户自身关联的属性私钥,故存储代价明显低于现有技术1和现有技术2。当系统的总属性个数增加时,现有技术1和现有技术2的私钥存储代价也会增加并且存储代价仍然高于本文方案。
实验2数据加密时间代价。数据加密是D的主要计算代价,在这里为了方便作图,假设不管n怎样变,总有得到tm=2.2260ms,tp=0.5390ms,实验结果显示加密时间代价随着系统属性个数的变化而变化但是本文方案的代价明显低于现有技术2,与现有技术1所提供的方案相当。
综上所述,该云存储环境下支持用户动态撤销的属性基数据加密方法,通过引入AC不仅分担了部分CSP的工作,而且可限制CSP,避免因为CSP的对数据的控制权利过大,而引发的数据安全问题;而且该云存储环境下支持用户动态撤销的属性基数据加密方法,能够在合法U注销后,及时更新密钥,避免已注销的用户对数据的合法访问,造成的泄密问题,提高了数据的安全性,而且数据计算量、存储量、数据更新的传输量均大大减少,具有更高的安全性和更少的数据量。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。