一种基于分层授权机构的权重属性基加密方法与流程

文档序号:16062824发布日期:2018-11-24 12:22阅读:250来源:国知局
本发明涉及云环境及密码学
技术领域
,尤其涉及一种基于分层授权机构的权重属性基加密方法。
背景技术
随着云存储系统的大规模部署,大量敏感数据被外包到云存储服务器。然而数据的外包存储模式也带来了一些安全方面的问题,例如,云服务器为获得一定的利益或者出于好奇,可以在用户未授权的情况下,把用户或企业的隐私数据泄露给第三方。因此,属性基加密(attribute-basedencryption,简称abe)成为近年来研究的热点。早期的abe方案大多针对单个的授权机构,所有的用户私钥由唯一的授权机构分发,这大大增加了授权机构的负担。而且在现有的云环境的场景下,早期的加密方案可能面临效率低下的情况。一旦服务器被攻破,将会给用户带来不可避免的损失,同时早期的加密方法也不适用于当前的分布式计算环境。如果用户的解密密钥通过多个授权机构来分发,这样带来的损失可能会少一些。在实际应用中,多授权机构更能快捷高效的处理用户属性和管理用户的私钥。传统abe机制中的授权机构和属性结构大多未分层,所有的属性享有相同的安全级别,只支持属性的单一赋值。这样的属性结构给灵活的细粒度访问带来困难。同时,不同的授权机构所管理的属性集也是同等重要的,而在现实系统中,不同属性的重要性是不相同的。因此,设计一种基于分层授权机构的权重属性基加密方法具有重要的意义。技术实现要素:本发明提供一种基于分层授权机构的权重属性基加密方法,通过引入授权机构的分层和属性权重,使得加密系统在云存储环境下具有更好的灵活性,可以实现更细粒度的访问控制,提高存储数据的安全性。为了达到上述目的,本发明提供一种基于分层授权机构的权重属性基加密方法,包含以下步骤:步骤s1、中央授权机构ca初始化时,生成系统公钥和系统主密钥;步骤s2、不同层级的代表属性授权机构aa授权,生成对应层级的代表属性授权机构aa的主密钥;步骤s3、中央授权机构ca和代表属性授权机构aa为用户分发用户系统私钥和用户私钥,二者组合生成用户的总密钥;其中,aa泛指不同层级的aa;步骤s4、数据所有者通过在线加密和离线加密两个阶段来加密数据文件,生成密文上传到云服务器存储;步骤s5、用户向云服务器发送访问请求,获得存储在云服务器中的密文数据;步骤s6、用户对从云服务器获得的密文数据解密,得到数据所有者要共享的明文数据。所述的步骤s1中,生成系统公钥和系统主密钥的方法包含:中央授权机构ca在初始化阶段随机选择g作为生成元,一双线性群g0,其阶为素数p,且满足双线性映射e:g0×g0→g1;所有代表属性授权机构aa和用户身份的标识都是由ca统一分发;通过aa来检验用户是否合法,用户的标识具有很高的安全性;aid={p(aa),index(aa)},p(aa)∈zp表示该aa的上级授权中心的随机序号,index(aa)∈zp表示ca为该aa分发的随机序号;随机选择zp中的前|γ*|个元素,即有1,2,...,|γ*|(modp),然后随机选择l1,l2,令最后从zp中随机选择参数α,y,{β1,β2}∈zp,h∈g0,输出系统公钥为:pk={g0,gt,g,l1,l2,d1,d2,e(g,g)α},系统主密钥为:mk={l1,l2,gα};其中,g1是一双线性群;aid表示aa的标识符;zp为有限域;γ*为属性权重的分割集,|γ*|为分割集的元素个数;l1,l2,d1,d2,e(g,g)α为系统公钥组件;l1,l2,gα为系统主密钥组件。所述的步骤s2中,生成对应层级的代表属性授权机构aa的主密钥的方法包含:步骤s2.1、上级aa授权:每个aa都有一个全局标识符aid,用来表明身份的唯一性;随机选择参数c,属性集合a={a0,a1,...,an},第一层属性为a0,ai={(λi,1),...,(λi,ωi)}(1≤i≤n)是分割后的属性集;ca在初始化aa时,a由随机选取的参数λ∈zp来表示,用λi∈zp表示ai∈a,λi,j∈zp表示ai,j∈ai,0≤i≤n,0≤j≤n;上级aa的主密钥为:其中,n为aa分的层数,λi为属性集ai中的属性,ωi为属性λi对应的最大权值,λi,j为有限域zp中的随机元素,ai,j为属性集ai中的元素;分别为上级aa的主密钥组件;β1和β2为有限域zp中的随机参数,h为哈希函数;步骤s2.2、下级aa授权:上级的授权机构在验证下级的授权机构的身份合法之后,才能允许其进入系统,从而对其授权;用a表示上级aa的属性集合,用a′表示下级aa的属性集合,满足通过aak来分发aak+1的主密钥;同上,aak随机选取λ′∈zp代表a′,λ′i∈zp代表a′i∈a',λ′i,j∈zp,a′i,j∈a′i,0≤i≤n,1≤j≤n;则aak+1的主密钥为:其中k,ki,j,di分别是aak中的对应项;aak表示用户授权链上的第k个aa,aak+1表示用户授权链上的第k+1个aa;λ′,λ′i,λ′i,j均为有限域zp中的随机元素,a′i,j为属性集a′i中的元素;分别为aak+1的主密钥组件。所述的步骤s3中,ca和aa分发用户系统私钥和用户私钥,二者组合形成用户的总密钥,生成用户的总密钥的方法包含:步骤s3.1、生成用户系统私钥:ca会为临时加入系统的用户生成系统私钥,并发送证书;把系统主密钥mk和用户的身份标识符u输入到系统后,ca随机选取zu∈zp;根据公式(3)计算用户系统公钥并输出:计算用户系统私钥:其中,zu,α,y均为有限域zp中的随机元素;h是一双线性群g0中的元素;步骤s3.2、生成用户私钥:ca为每个aa分配一个唯一的标识符aid,且发送一个验证码给aa,用来验证用户证书的合法性;aa先验证用户的身份标识符u是否合法,然后接受用户询问私钥的请求;当用户的属性集为s时,属性权重的分割集是s′;ca把用户系统私钥sku传送给每层aa;每个aa都会获取用户提交的证书certificate(u),同时也会收到ca发送的验证码,用户证书是否合法就是通过验证码来进行验证;从最下层的aa开始,用户验证通过后,判别用户的属性是否存在于最下层的aa中,若存在,为用户分发合法的用户私钥,否则,移交上一层的aa,以此类推;若用户被系统的第l层的某授权中心直接管理,则该用户的所有属性由授权链上的k个授权机构中心共同管理;设用户在第k≤k个aak上的属性集合为ak={a1k,a2k,...,ank};授权机构先随机生成一个标识符,用c来表示;r′为aak随机选择的参数,输出用户在aak上的用户私钥为:其中,均为有限域中的随机元素,分别表示用户私钥的组件;n为aa分的层数;因此,用户的总密钥为:其中,sku为用户系统私钥,为用户私钥。所述的步骤s4中,加密方法包含:步骤s4.1、离线加密:输入主公钥pk、属性机构公钥mj和访问树λ,用kx来表示节点x的门限值,树中每个节点x对应一个多项式qx;从根节点r开始,满足关系式dx=kx-1;若x是叶子节点,则满足dx=0;选择随机数s∈zp,令qr(0)=s,其它的节点x设置值为:qx(0)=qparent(index(x));任选一多项式qx,其阶是dx;用y表示所有叶子节点的集合,y′表示属性权重的分割集,attr(x)表示x∈y的属性,计算中间密文:it=(c0,c1,c2,m,λ)其中,qr(0)表示根节点对应的多项式,qx(0)表示叶子节点对应的多项式,qparent表示访问树中父节点对应的多项式;e(g,g)为一双线性映射;为中间密文组件;步骤s4.2、在线加密:输入中间密文it、明文消息m和用户的属性集s={x1,x2,...,xk};根据公式(7)计算,输出完整的密文:ct=(it,c)其中,c为密文组件;ia为参与加密的aa集合。所述的步骤s6中,解密密文数据得到明文数据的方法包含:用户从云服务器得到加密的密文后,解密密文;如果用户的属性满足访问树λ的结构,即则从集合k′={s′∩y′}中选取t个元素解密密文,得到明文;否则就返回⊥;调用decrypt(mkk+1,sk,ct)→m,对于访问树中的任意节点x,执行递归算法后得到一个集合sx;当用户的属性集合与该层授权机构中的密文的访问结构匹配时,从根节点开始执行递归函数;否则就返回null值;对任意节点x:若满足令i=attr(x),计算:其中,⊥表示解密失败,null值表示用户的属性集合与该层授权机构中的密文的访问结构不匹配;s′表示用户属性集s所对应的属性权重分割集;y′表示叶子节点的集合y所对应的属性权重分割集;v是指集合{s′∩y′}中的元素,t为门限值;若则此算法无解,返回⊥;当且仅当用户的属性集与访问树λ相符时,通过拉格朗日中值定理,计算公式(9),然后计算公式(10),最后计算公式(11),如下:输出明文:其中,表示aa用于生成用户私钥的属性,i表示访问树中节点x所对应的属性。本发明与现有技术相比具有以下优点:基于分层授权机构的权重属性基加密方法,将授权机构之间分层和属性权重引入到加密方案中,使得授权机构之间具有层次关系,不同属性具有不同的重要性。同时,权重因素的引入,使得该方案在云存储环境下具有更好的灵活性,可以实现更细粒度的访问控制。通过执行在线/离线的加密机制,提高了存储数据的安全性。附图说明图1为本发明的方法流程图。具体实施方式以下根据图1具体说明本发明的较佳实施例。如图1所示,本发明提供一种基于分层授权机构的权重属性基加密方法,包含以下步骤:步骤s1、中央授权机构ca初始化时,生成系统公钥和系统主密钥;步骤s2、不同层级的代表属性授权机构aa授权,生成对应层级的代表属性授权机构aa的主密钥;步骤s3、中央授权机构ca和代表属性授权机构aa为用户分发用户系统私钥和用户私钥,二者组合生成用户的总密钥;其中,aa泛指不同层级的aa;步骤s4、数据所有者通过在线加密和离线加密两个阶段来加密数据文件,生成密文上传到云服务器存储;步骤s5、用户向云服务器发送访问请求,获得存储在云服务器中的密文数据;步骤s6、用户对从云服务器获得的密文数据解密,得到数据所有者要共享的明文数据,并进行相关后续操作。进一步,所述的步骤s1中,生成系统公钥和系统主密钥的方法包含:中央授权机构(centralauthority,简称ca)在初始化阶段随机选择g作为生成元,一双线性群g0,其阶为素数p,且满足双线性映射e:g0×g0→g1;所有代表属性授权机构(attributeauthority,简称aa)和用户身份的标识都是由ca统一分发;通过aa来检验用户是否合法,用户的标识具有很高的安全性;aid={p(aa),index(aa)},p(aa)∈zp表示该aa的上级授权中心的随机序号,index(aa)∈zp表示ca为该aa分发的随机序号;随机选择zp中的前|γ*|个元素,即有1,2,...,|γ*|(modp),然后随机选择l1,l2,令最后从zp中随机选择参数α,y,{β1,β2}∈zp,h∈g0,输出系统公钥为:pk={g0,gt,g,l1,l2,d1,d2,e(g,g)α},系统主密钥为:mk={l1,l2,gα};其中,g1是一双线性群;aid表示aa的标识符;zp为有限域;γ*为属性权重的分割集,|γ*|为分割集的元素个数;l1,l2,d1,d2,e(g,g)α为系统公钥组件;l1,l2,gα为系统主密钥组件。所述的步骤s2中,生成对应层级的代表属性授权机构aa的主密钥的方法包含:步骤s2.1、上级aa授权:每个aa都有一个全局标识符aid,用来表明身份的唯一性;随机选择参数c,属性集合a={a0,a1,...,an},第一层属性为a0,ai={(λi,1),...,(λi,ωi)}(1≤i≤n)是分割后的属性集;ca在初始化aa时,a由随机选取的参数λ∈zp来表示,用λi∈zp表示ai∈a,λi,j∈zp表示ai,j∈ai,0≤i≤n,0≤j≤n;上级aa的主密钥为:其中,n为aa分的层数,λi为属性集ai中的属性,ωi为属性λi对应的最大权值,λi,j为有限域zp中的随机元素,ai,j为属性集ai中的元素;分别为上级aa的主密钥组件;β1和β2为有限域zp中的随机参数,h为哈希函数;步骤s2.2、下级aa授权:上级的授权机构在验证下级的授权机构的身份合法之后,才能允许其进入系统,从而对其授权;用a表示上级aa的属性集合,用a′表示下级aa的属性集合,满足通过aak来分发aak+1的主密钥;同上,aak随机选取λ′∈zp代表a′,λ′i∈zp代表a′i∈a',λ′i,j∈zp,a′i,j∈a′i,0≤i≤n,1≤j≤n;则aak+1的主密钥为:其中k,ki,j,di分别是aak中的对应项;aak表示用户授权链上的第k个aa,aak+1表示用户授权链上的第k+1个aa;λ′,λ′i,λ′i,j均为有限域zp中的随机元素,a′i,j为属性集a′i中的元素;分别为aak+1的主密钥组件。所述的步骤s3中,ca和aa分发用户系统私钥和用户私钥,二者组合形成用户的总密钥,生成用户的总密钥的方法包含:步骤s3.1、生成用户系统私钥:ca会为临时加入系统的用户生成系统私钥,并发送证书;把系统主密钥mk和用户的身份标识符u输入到系统后,ca随机选取zu∈zp;根据公式(3)计算用户系统公钥并输出:计算用户系统私钥:其中,zu,α,y均为有限域zp中的随机元素;h是一双线性群g0中的元素;步骤s3.2、生成用户私钥:ca为每个aa分配一个唯一的标识符aid,且发送一个验证码给aa,用来验证用户证书的合法性;aa先验证用户的身份标识符u是否合法,然后接受用户询问私钥的请求;当用户的属性集为s时,属性权重的分割集是s′;ca把用户系统私钥sku传送给每层aa;每个aa都会获取用户提交的证书certificate(u),同时也会收到ca发送的验证码,用户证书是否合法就是通过验证码来进行验证;从最下层的aa开始,用户验证通过后,判别用户的属性是否存在于最下层的aa中,若不存在,那么移交上一层的aa,以此类推;确认存在后为用户分发合法的用户私钥;若用户被系统的第l层的某授权中心直接管理,则该用户的所有属性由授权链上的k个授权机构中心共同管理;设用户在第k≤k个aak上的属性集合为ak={a1k,a2k,...,ank};授权机构先随机生成一个标识符,用c来表示;r′为aak随机选择的参数,输出用户在aak上的用户私钥为:其中,均为有限域中的随机元素,分别表示用户私钥的组件;n为aa分的层数;因此,用户的总密钥为:其中,sku为用户系统私钥,为用户私钥。所述的步骤s4中,加密方法包含:步骤s4.1、离线加密:输入主公钥pk、属性机构公钥mj和访问树λ,用kx来表示节点x的门限值,树中每个节点x对应一个多项式qx;从根节点r开始,满足关系式dx=kx-1;若x是叶子节点,则满足dx=0;选择随机数s∈zp,令qr(0)=s,其它的节点x设置值为:qx(0)=qparent(index(x));任选一多项式qx,其阶是dx;用y表示所有叶子节点的集合,y′表示属性权重的分割集,attr(x)表示x∈y的属性,计算中间密文:it=(c0,c1,c2,m,λ)其中,qr(0)表示根节点对应的多项式,qx(0)表示叶子节点对应的多项式,qparent表示访问树中父节点对应的多项式;e(g,g)为一双线性映射;为中间密文组件;步骤s4.2、在线加密:输入中间密文it、明文消息m和用户的属性集s={x1,x2,...,xk};根据公式(7)计算,输出完整的密文:ct=(it,c)其中,c为密文组件;ia为参与加密的aa集合。所述的步骤s6中,解密密文数据得到明文数据的方法包含:用户从云服务器得到加密的密文后,解密密文;如果用户拥有的属性满足访问树λ的结构,即则从集合k′={s′∩y′}中选取t个元素解密密文,得到明文;否则就返回⊥;调用decrypt(mkk+1,sk,ct)→m,对于访问树中的任意节点x,执行递归算法后得到一个集合sx;当用户的属性集合与该层授权机构中的密文的访问结构匹配时,从根节点开始执行递归函数;否则就返回null值;对任意节点x:若满足令i=attr(x),计算:其中,⊥表示解密失败,null值表示用户的属性集合与该层授权机构中的密文的访问结构不匹配;s′表示用户属性集s所对应的属性权重分割集;y′表示叶子节点的集合y所对应的属性权重分割集;v是指集合{s′∩y′}中的元素,t为门限值;若则此算法无解,返回⊥;当且仅当用户的属性集与访问树λ相符时,通过拉格朗日中值定理,计算公式(9),然后计算公式(10),最后计算公式(11),如下:输出明文:其中,表示aa用于生成用户私钥的属性,i表示访问树中节点x所对应的属性。下面用一个实例来阐述本方法。n是访问策略中的属性数,tp表示g0的配对操作,te1表示g0的指数操作,te2表示g1的指数操作。表1相关方案的对比分析方案数据加密数据解密多机构属性权重分层chasem,etal.2nte1+te2+tp3te2+tp√××huangqinlong,etal.(2n+1)te1+te2+tptp√×√本发明nte2te2√√√从表1可知,chasem等人的方案考虑到用多授权机构来减轻中央授权机构管理和分发私钥的压力,但是在该方案中,没有考虑授权机构之间分层和属性权重的问题,不能实现更细粒度的访问控制。huangqinlong等人的方案虽然引入分层的方式解决了多个授权机构之间的层次关系,但是在该方案中,不同层次的授权机构所管理的属性集是同等重要的,同时各个属性在系统中的地位是平等的。在本发明中通过引入分层来解决多个授权机构之间的层次关系,引入属性权重来区分不同属性的重要性,使得实际系统更加安全和灵活。加密开销方面,从表1可知,huangqinlong等人的方案加密开销较大。由于本发明的加密阶段分为在线和离线两个过程,大部分繁冗的计算过程都放在离线阶段,大大减小了加密阶段的计算开销。从表1中可知,本发明的加密开销大大小于其他三个方案。解密开销方面,chasem等人的方案开销较大,经历了三次指数操作和一次配对操作。huangqinlong等人的方案运行部分解密算法,该方案需要一次配对操作才可恢复明文。本发明在解密时,仅仅需要执行一次指数操作。总体而言,本发明相对较优,在功能和性能方面均有所改善,更加适用于云环境。尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1