王静宇,周雪娟
(内蒙古科技大学信息工程学院,内蒙古包头014010)
近年来,大数据技术发展迅速,对社会生活的影响与日俱增。但大数据技术在带来诸多便利的同时,也暴露出诸多安全隐私问题,目前解决该问题的关键是安全高效的数据加/解密。对此,文献[1]提出了属性基加密(Attribute Based Encryption,ABE)方案,其中心思想是系统根据用户的角色或身份,给其分配不同的一组属性集从而保证用户拥有不同的访问权限。根据访问策略所在位置的不同,属性基加密方案可分为密钥策略属性基加密(KP-ABE)[2]和密文策略属性基加密(CPABE)[3]。属性的频繁撤销不仅会导致系统计算负担过重,而且会引起数据安全问题。如何应对大数据访问控制中属性撤销带来的负面影响成为当下最受关注的研究热点之一。
在CP-ABE 方案中,密文与特定的访问策略相关联,用户私钥则与一组属性有关,即数据拥有者可以任意指定哪些数据可被哪些特定的用户查看。比起KP-ABE 系统,CP-ABE 则更适合处理生活中大部分的数据安全问题。该方案最早由文献[3]提出,但是缺少属性撤销功能。文献[4-5]提出给每个属性加上一个有效期,由授权中心定期更新属性的最新版本,但该方案缺乏实时更新性,系统安全性较低。文献[6]提出利用非完全可信的第三方服务器进行用户属性撤销,但是要求第三方服务器时刻在线,因此撤销不够灵活且对系统要求过高。文献[7]提出了一种支持属性直接撤销的方案,该方案无法抵抗合谋攻击,安全性较低。文献[8-10]提出的方案均为用户级撤销,缺乏细粒度的属性级撤销。文献[11]提出一种使用单一授权机构管理所有用户属性、并为所有用户颁发解密密文的密钥,虽有第三方服务器帮助进行加解密操作,但是单一的授权中心容易降低系统安全性与运行效率。文献[12]提出了首个多权限访问控制系统,但是该系统的中央授权机构拥有的主密钥能够解密所有密文,削弱了系统的安全性,同时撤销问题仍未得到解决。文献[13-14]提出使用多个授权机构产生用户秘钥,解决了秘钥托管和属性撤销问题,但仍然没有解决系统计算量过大的缺陷。
针对上述问题,本文借鉴文献[15]提出的属性撤销思想,在改进文献[16]中算法的基础上,提出一种灵活的属性撤销方案,采用安全两方计算协议以及多个属性授权中心进行细粒度属性撤销、密钥托管以及用户级撤销,以提高系统安全性能及属性撤销效率。
定义1映射e:G0×G0→G1,其中G0和G1是阶为q的乘法循环群。g为乘法循环群的生成元。满足以下性质:
2)非退化性:∃g∈G0,使e(g·g)≠1。
3)可计算性:存在有效的方法计算e(g·g)。
定义2设由系统中所有属性组成的集合为P,且P={P1,P2,…,Pn},同时访问结构意为包含在P中的非空集合。若A是单调的访问结构,当∀B,且B∈A,B⊆C时,则C∈A。
定义3Shamir 提出采用拉格朗日多项式插值的门限秘密共享方案。该方案将秘密s无规律分成k份,其中任意不少于t(1≤t≤k)份可以通过拉格朗日插值重构出s,但任意少于t-1 份的分割数据都不能重构出s。同时,为每个分割出来的秘密分配节点(x1,y1),(x2,y2),…,(xk,yk),则其中t个节点可以确定出唯一的由秘密共享中心生成阶为t-1 的多项式y=f(x)。
1)秘密分割
(1)秘密分享中心分发一组被分割的秘密s给每一位参与者qi(1≤i≤t),且随机选择k-1 个系数a1,a2,…,ak-1,定义随机多项式f(x)=ak-1xk-1+ak-2xk-2+…+a1x+a0。
(2)随机选择t个非零且不重叠的元素x1,x2,…,xt,且公开xi,得出yi=f(xi)(1≤i≤t),因此有t个(xi,yi),但保留yi。
2)秘密重构
采用拉格朗日重构的思想,将t个参加者所拥有的多项式节点(xi,yi)(1≤i≤t)作为输入,输出多项式其中a0=s,即可重构秘密s。
定义4[17]在一个安全系数普遍较低的分布式网络环境中,参与者A 与B 在协同计算后得到某函数p(x1,x2)的值,其中x1和x2分别是两个参与者的秘值。最终参与者A 与B 均可根据协议得到自己预期的结果值,但是不知道除自身外的任何信息,亦不能根据中间信息推导出其他信息,该协议保证了参与者个人隐私以及系统的安全。
本文方案主要由5 类实体构成,分别为:数据拥有者(Data Owner,DO),云存储服务器(Cloud Service Provider,CSP),密钥生成中心(Key Generation Center,KGC),属性授权中心(Attribute Authorization Center,AAC),数据使用者(Data User,DU)。
本文算法由以下几个主要函数构成:
1)Setup():KGC 利用安全参数初始化运算获得系统的公钥PK,私钥SK。CSP 产生DU 的各种参数值。
2)Data Encrypt(PK,m,Τ):DO 使用公钥PK、明文信息m,以及访问控制策略Τ进行数据加密,生成密文CT 并将其发送给CSP。
3)Data KeyGen(PK,MK,ϕu,Uij):首先,多个AACi计算生成Uij,并将最后结果发给CSP,之后,CSP 与KGC 使用安全两方计算协议计算后生成用户私钥SKu。
4)Data Decrypt(SKu,CT):合法用户DU 使用自己私钥SKu解密密文CT,当所拥有的一组属性集ϕu∈Τ时,即可解出明文m。
5)Revocation():此阶段进行用户级撤销和属性级撤销。删除DU 的参数进行用户级撤销。更改属性版本秘钥以及用户秘钥进行属性级撤销。
下面给出支持撤销的CP-ABE 方案在选择明文攻击(Indistinguishablity under Chosen Plaintext Attack,IND-CPA)下的安全模型,以及攻击者A 与挑战者B 之间的攻击游戏流程。
准备阶段:攻击者A 向挑战者B 挑战访问控制策略T*以及用户撤销列表Rx。
初始化:挑战者B 运行Setup(),输出主密钥MK,公钥PK,且发送PK 给攻击者A,留存MK。
挑战:攻击者A 向挑战者B 提交两个等长的消息ma,mb。B 随机选取P∈{a,b},并运行KeyGen(PK,MK,ϕu,Uij)算法,将得到的密文返回给攻击者A。
阶段2:同阶段1,A 继续向B 发送询问报文。
猜测:A 猜测数值p*,若p*∈{a,b}且p*=p,则敌手赢。同时A 获得游戏成功的优势定义为:
若在某个概率多项时间内敌手赢得游戏的优势可以被忽略,则称本文方案满足IND-CPA 安全。
本文方案在CP-ABE 的基础上,结合安全两方计算协议与多属性授权中心,解决用户级撤销及属性级撤销。方案流程如图1所示。
图1 支持属性撤销的CP-ABE 方案流程Fig.1 CP-ABE solution process that supports attribute revocation
方案具体步骤如下:
1)用户秘钥生成。各个属性授权中心生成对应属性的属性版本秘钥Uij,并将其交由CSP,CSP 与KGC 用各自的参数进行安全两方计算,将生成的结果交由DU,DU 即可得到自身用户秘钥SKu。
2)属性级撤销。KGC 将随机选取的重加密参数Φ发送给除DO 外的各个实体,以此来更新各自实体的相关参数。每个AACi更新和被撤销属性相关的属性版本秘钥Uij,CSP 更新和被撤销属性相关的密文CT,KGC 与CSP 进行安全两方计算,更新与被撤销属性相关的用户的秘钥SKu。
3)用户级撤销。CSP 给每一位合法用户DU 分配唯一身份值UIDi及唯一秘值rt。并将其存入用户列表Rx中,若进行用户级撤销时,CSP 将用户的身份值移出用户列表,并删除唯一秘值,该用户将不能再访问加密数据。
该方案包含的主要函数如下:
1)Setup()
H:{0,1}*→G1是一个哈希函数,用来将字符串属性映射到G1的随机元素上。CSP 随机选择,设h=gβ,则CSP 的公钥pkc=h,私钥为mkc=β。密钥生成中心KGC 随机选择,则KGC 的公钥为pkk=e(g,g)α,私钥为mkk=gα。则系统公钥PK={G1,g,h=gβ,e(g,g)α},主密钥为MK={α,β}。
CSP 为每个用户分配唯一身份值UIDi,并添加进用户列表Rx中,根据其身份或者角色分配一组属性集ϕu,以及唯一随机秘值。KGC 为每个AACi分配唯一随机值。
2)Data Encrypt(PK,m,T)
该算法由DO 操作,首先,使用访问结构和访问树表示DO 制定的访问控制策略,访问结构中的属性作为叶子节点,门限逻辑运算符作为中间节点,且树的根节点为R,以此来构建访问控制树Τ。该算法采用自上而下的方式从根节点R开始为树Τ中所有节点x(包括非叶子节点和叶子节点)产生一个阶为dx的多项式qx,nx为非叶子节点阈值,且多项式的阶dx和节点阈值nx之间的关系为dx=nx-1。随机选取,设置根节点多项式为qR(0)=s,同时计算m·e(g,g)αs,C=hs。针对其它节点,设置多项式为qx(0)=qp(x)(index(x)),index(x)的值表示其父节点p(x)的第index(x)个左孩子节点。
在树Τ中,设J 为所有和叶子节点相联系的属性的集合,计算每个叶子节点j∈J 所对应的和。密文CT 则为:
3)Data KeyGen(PK,MK,ϕu,Uij)
(1)属性版本密钥生成
该算法由AAC 运行。每个AACi管理若干个不同属性,每个属性仅由一个AACi管理。每个AACi给其所管理的每个属性各随机选取任意值故属性版本密钥为。并将其发送给CSP。
(2)用户密钥生成
该算法由CSP 和KGC 同时运行得出。CSP 将参数(rt,β)作为输入,KGC 将参数α作为输入,CSP与KGC 二者之间进行安全两方计算协议[17],输出x=(α+rt)β,将计算结果发送给KGC[18]。KGC 随机选择,将计算的结果发送给CSP。当CSP 接收到后,计算,之后将B发送给KGC。
KGC 在接收到B后,计算用户的部分密钥SKk=。CSP 将用户的一组属性集ϕu以及属性版本密钥作为输入,输出用户部分私钥:
用户分别接收到来自KGC 和CSP 的部分密钥后,合并生成用户自己的用户密钥:
4)Data Decrypt(SKu,CT)
该算法由DU 执行,当用户获得加密数据后,采用递归的算法对数据进行解密。过程如下:
(1)若j为访问控制树T 的叶子节点,用户的一组实体属性集ϕu∈Τ,且ϕui∈ϕu时,解密公式如下:
当ϕui∉ϕu,则为⊥。
(2)若j为访问控制树Τ的非叶子节点,设为大小为kx的每个节点z的孩子节点集合,当Fz≠⊥,则进行如下递归计算:
当ϕu∈Τ,则调用访问控制树Τ的根节点R,并进行如下计算:
(3)当用户属性集ϕu∈Τ,即Τ(ϕu)=1,则可解密被加密的数据。
5)Revocation()
主要包含以下4 个阶段:
(1)用户级撤销
当用户整体从系统中撤销时,CSP 将其唯一身份值uidi从用户列表Rx中删除,并删除唯一秘密值rt。在该系统中,任意用户均可下载密文,但是只有存在于用户列表中的合法用户才可获得相关秘钥,进一步解密密文。保证了系统的安全性。
(2)属性级撤销
KGC 随机选取一个重加密参数Φ,并将其分配给每个AACi,CSP,以及和撤销属性相关的用户DU。接收到重加密参数的实体更新其参数,使其保证参数的最新性。
每个AACi更新其所管理的对应的撤销属性的秘参则撤销属性更新后的版本密钥为
(3)用户密钥更新
AACi更新相关的撤销属性的最新版本秘钥,并将结果发送给CSP,随之,CSP 与KGC 进行安全两方计算得出用户的最新秘钥。最新版本的秘钥为:
(4)密文更新
CSP 接收到KGC 的更新参数后,迅速更新密文的相关组件,确保密文的安全性。
本方案中多属性授权中心可分为两个模块,即由多个属性授权中心AACi联合产生的属性版本密钥,以及云服务器和密钥生成中心联合生成的用户密钥。当撤销某个用户或者某个用户的属性时,任意属性授权中心都无法获得用户的属性版本密钥,且用户密钥是由两个实体通过安全两方协议共同产生,双方均无法获取对方的部分密钥,故无法解密密文。同理,当合法用户加入到系统中时,属性授权中心会根据用户的一组属性集生成最新的属性版本密钥,因此确保了数据的向前向后安全性。
证明:在本文的方案中,只有当DU 的ϕu∈T,才能计算出e(g,g)αs。当有若干个不同权限的用户串谋攻击,由云服务器分配给每个用户一个唯一随机秘值rt,则产生不同的DU 秘钥部分组件,故合谋攻击不能获得用户秘钥。本方案可满足抗合谋攻击。
在随机预言机模型下基于DBDH[19](判定双线性Diffie-Hellman 问题)困难假设进行安全性证明:
一个概率多项式时间算法Q以优势为ε求解DBDH 问题。
定理1假设DBDH 成立,则敌手就无法在多项式时间内求解DBDH 问题,其中可忽略优势ε即可证明该方案的安全性。
准备阶段:敌手A 选择访问控制树Τ*及用户撤销列表。
初始化:B 运行Setup()算法。
2)对每个属性ϕj,都有
挑战:敌手A 向挑战者B 提交两个等长的消息ma,mb。B 随机选取P∈{a,b},并运行KeyGen()算法。
阶段2:同阶段1,A 继续向B 发送秘钥询问报文。
猜测:敌手A 输出猜测p*∈{0,1}。
1)若p*=p,则z=e(g,g)abc,即DBDH 成立。表明敌手A 可获得有效密文且优势为Pr=[p*=p|z=e(g,g)abc]=1/2+ε。
2)若p*≠p,则表明敌手A 无法获得有效的密文,z=e(g,g)θ,其优势为:
综上所述,若没有敌手在多项式时间内选择访问控制树Τ*击败该方案,则证明该方案有较高的安全性。
本文中提出的方案与其他方案在秘钥托管、抗合谋、撤销机制等方面作出分析比较。从表1 中可以得出结论:本文方案在系统安全等功能方面考虑得比较全面,基本问题得到解决。
表1 各方案功能实现分析比较Table 1 Analysis and comparison of function realization of each scheme
当进行用户级撤销时,仅由CSP 将用户唯一身份值UIDi从用户列表Rx中删除,并删除唯一秘密值rt,故用户级撤销的计算复杂度为O(1)。当进行属性级撤销时,被撤销的属性需更新最新的版本秘钥,故属性级撤销所需的计算复杂度为O(6n)。
本文方案中采用的安全两方计算协议所需计算复杂度为O(5n),属性版本秘钥由各个属性授权中心产生,故计算复杂度为O(n),故生成用户秘钥所需计算复杂度为O(6n)。
由此可以看出本文方案在解密花费以及撤销花费中,将部分计算任务交由CSP 进行,极大地降低了系统计算复杂度。各方案效率的对比结果如表2所示。
表2 效率分析比较Table 2 Analysis and comparison of efficiency
在表2 中,te为指数运算所需的花费,tp为双线性对运算所需的花费,p为在中元素的大小。
本文提出一种支持属性撤销的CP-ABE 方案,通过安全两方计算协议,生成并更新用户秘钥,从而实现细粒度级的用户级和属性级撤销,同时引进多个属性授权中心,在撤销某用户或某用户属性时,任意属性授权中心都无法获得用户的属性版本密钥。实验结果表明,该方案能有效降低撤销操作的计算复杂度,并增强了系统安全性。未来研究将继续优化细粒度撤销所需的计算开销,以进一步降低系统的计算复杂度。