刘海峰 高月月
(陕西科技大学 陕西 西安 710012)
云计算自出现以来就受到了广泛的关注,并且发展极为快速,随着云计算的发展逐渐深入,对云计算的安全性方面也提出了更高的要求。为了增强云计算的安全性,密文的检索方案、可验证的数据审计和身份认证等相继提出。云存储是云计算重要的一部分,随着云存储的发展,很多的企业用户都将大量的数据直接外包在云存储服务器中。为了保护数据的安全性,必须采用有效的加密方案来实现云存储中细粒度的访问控制。CP-ABE在基于密文策略的属性加密中,用户的密钥与属性集有关,密文与访问结构有关。只有用户的属性集满足访问策略的时候,用户才能够解密密文。CP-ABE能够实现灵活的访问控制,已经被广泛地运用在云存储系统中的访问控制。访问策略是容易泄露的,并且会泄露敏感信息;用户可以具有不同权限的属性,但是数据所有者制定能够访问敏感数据的多个权限。拥有多权限的属性加密用户能够有不同权限下的不同属性,所以更加适合云存储系统的访问控制。因此,本文提出了一种基于多权限属性的加密方案,以实现云存储系统中的细粒度访问控制,从而实现访问策略的隐私保护,该方案具有灵活性、实用性和安全性。
定义1双线性映射。设G和G1是p>2k(素数)阶的乘法群,g为G的生成元,那么满足以下三个性质的映射e:G×G→G1为双线性映射。
双线性性:存在∀a,b∈Zp,∀u,v,u1,u2,v1,v2,g,h∈G,那么有e(ga,hb)=e(gb,ha)=e(g,h)ab,e(u1×u2,v)=e(u1,v)e(u2,v),e(u,v1×v2)=e(u,v1)e(u,v2)。
非退化性:∃u,v∈G,使得e(u,v)≠1,其中1是G1的单位元。
可计算性:∀u,v∈G,存在一个高效的多项式时间算法计算e(u,v)。
定义2访问结构。设Ω={L1,L2,…,Ln},|Ω|=n代表系统所有的属性集,而且每个属性Li的取值集合是Fi={vi1,vi2,…,vini},其中ni是Fi的阶。用户的属性列表为w={l1=v1t1,l2=v2t2,…,lj=vjtj},其中vjtj∈Fj,j是w的阶。使用树型结构构建访问结构FW,而且FW的内部节点代表关系,分别为“与”门和“或”门,而所有的叶子节点代表属性。
定义3线性秘密共享方案。如果在参与者集合P上的一个秘密共享方案满足以下2个条件,那么就称其为Zp上的线性秘密共享方案:
1) 每个实体的秘密份额构成Zp上的一个向量;
2) 对于每个秘密共享方案,存在一个生成矩阵B(l×n),对于矩阵B中的每一行i=1,2,…,l,映射ρ(i):{1,2,…l}→P把B的每一行映射到参与者ρ(i),考虑向量v=(s,r2,r3,…,rn)T,s∈Zp是共享秘钥,r2,r3,…,rn随机选择用来隐藏s,Bv是l个秘密份额形成的向量,其中λi=(Bv)i表示参与者ρ(i)所持有的秘密份额。
参与者的匿名性可以由一个单向匿名密钥方案来实现。假设Alice(IDa)和Bob(IDb)是一个密钥生成中心的用户,他们的主密钥都是s。Alice想对Bob保持匿名性,那么需要进行以下步骤:
2) Bob用他的密钥dB计算会话密钥KA,B=e(PA,dB)=e(QA,QB)srA,其中di=H(IDi)s∈G1是用户的私有密钥,i∈{A,B},H:{0,1}*→G1是强抗冲突散列函数。
1.3.1系统模型
在云环境中一共有四个实体,分别是数据所有者、云存储的服务器、属性权限和数据用户。
1) 数据所有者:在将数据外包到云存储系统之前,数据的所有者根据在密文上强制执行的访问策略对其进行加密,并负责定义访问策略和模糊策略。一旦撤销了一个用户的属性,所有者必须更新包含所有已撤销属性的部分密文组件。
2) 云存储服务器:云存储服务器是属于数据所有者的共享文件,并且为用户提供访问服务。假设云存储服务器是诚实的,那么云存储服务器不仅应该隐藏数据,还应该隐藏密文中的访问策略。
3) 属性权限:属性权限受信任并且独立管理其各自的属性集。同时,为每个合法用户生成密钥,当一个用户被撤销时,权限将为未撤销的用户生成更新的密钥。
4) 数据用户:权限为每个数据用户生成相关的私钥。因此,只有私钥满足访问控制策略的用户才能够获得数据,而且任何合法的用户都可以在云存储服务器中下载任何的密文。
1.3.2安全性要求
本文对云存储系统中的访问控制方案有如下三个最基本的要求:
1) 数据的安全性:在云存储系统中,只有满足访问策略的授权用户才能够解密密文获得数据,但是被撤销的用户是不能解密密文的。
2) 抗共谋:云存储中的所有属性加密方案都需要抗共谋。抗共谋的意义是不同的用户通过自己的私钥组合来获取不同的密文信息和访问策略。
3) 策略隐私:数据外包在云存储系统中时,所有的云服务器和没有授权的用户无法获得任何有关密文的信息和访问结构。
在多权限的属性集加密访问控制中,如果有较多的用户满足同一数据的访问结构,那么会同时获得相同的访问权限。但是用户的需求也正随着云计算的发展而改变,对权限的要求也变得多种多样,因此对权限的划分应该更加细粒度化。图1为本文系统方案模型。
图1 系统方案模型
本文提出的多权限多属性的访问控制研究主要包括以下四个阶段:
1) Setup:授权中心运行随机算法,为每个属性权限输出相应的公私钥,输出系统的公钥和主密钥。
2) KeyGen:分别运行Attribute Key Generation(AKG)和Central Key Generation(CKG)。AKG是属性权限运行随机算法;CKG是授权中心运行一个随机算法,然后输入用户的GID和主密钥,最后输出用户的私钥。
3) EncSig:数据所有者进行加密和签名。
4) DecVer:用户进行两项工作:解密和验证。
为了证明本文方案的安全性,采用的是属性集攻击模型,原型是身份安全模型。攻击模型在攻击者A和攻击者C之间进行,具体步骤如下:
Challenge:攻击者A提交两个等长的消息M0和M1。挑战者C给出一个随机掷币b∈{0,1},计算在属性集AC作用下的密文Mb,发送给攻击者A。
More Queries:攻击者A根据上述的限制进行私钥多次询问。
Guess:攻击者输出一个关于b的猜测b′。如果b=b′,则攻击者A攻击成功。
本文方案中有N个权限{P1,P2,…,PN},且每个权限Pj对应一组属性Lj,j=1,2,…,N。首先,每个权限Pj随机选择一个数βj∈Zp,对于每一个属性x∈Lj,Pj选择一个随机数vx∈Zp用于实现属性撤销。然后,计算公钥为gβj,其中βj是Pj的部分秘密密钥,用户可以使用gβj来混淆属性,βj包含在公钥PK[j]中。
为了抵抗共谋攻击,当为用户GID创建一个秘密密钥时,每个Aj使用全局用户身份GID来计算gαxvxH(GID)yx。如果两个具有不同GID和GID′的用户试图通过合并他们的密钥来进行共谋攻击,那么在解密的过程中就会出现一些e(g,g)μie(H(GID),gμi),从而防止共谋攻击的发生。
设G1和G2是阶为p的两个循环群,g是G1的生成元。e:G1×G1→G2是一个双线性映射,还使用一个强抗碰撞散列函数H:{0,1}→G1,本文基于多权限的属性集加密访问控制方案中隐藏了策略,包括以下五个步骤。
1) 系统初始化。具有一组属性Lj的每一个权限Pj(j∈N)运行AASetup算法,每个属性都没有相交的集合(Li∩Lj=∅,i≠j)。
SK[j]=({αx,yx,vx}x∈Lj,βj)
(1)
通过权限计算{e(g,g)αxvx,gyx}x∈Lj,公共权限密钥Aj(j∈N)是:
PK[j]=({P1,x=e(g,g)αxvx,gyx}x∈Lj,gβj)
(2)
2) 生成密钥。用户在访问数据的时候,请求密钥中心分发密钥,验证用户的身份之后,每个权限运行KenGen算法,权限Aj(j∈N)给用户属性集Ij,GID和相应的私钥Kj,GID。
Kj,GID=({D1,x=gαxvxH(GID)yx,
D2,x=H(x)βj}x∈Ij,GID)
(3)
αx,yx,vx,βj∈SK[j],用户的私钥是在安全通道中传输的。
3) 加密。数据所有者将数据存储在云系统中,然后对数据MSG的内容进行加密,定义相关属性的访问策略T,最后数据所有者使用加密算法对密文再次进行加密。
为了实现访问策略的隐私保护,数据所有者使用sy来替换访问策略中的属性λy。将访问策略T转换为LSSS访问矩阵Mm×h,其中Mi是M的第i行。
数据所有者通过下列算法加密数据MSG。
(2) 计算μi=Mi·v。
(4) 计算μi=Mi·ω。
(6) 计算密文:
C0=MSGe(g,g)s,h0=ga
C1,i=e(g,g)μie(g,g)vρ(i)αρ(i),∀i∈[m]
C2,i=gσi,∀i∈[m]
C3,i=gyρ(i)σigμi,∀i∈[m]
(4)
(7) 密文CT外包在云存储系统中。
CT=(C0,{C1,i,C2,i,C3,i}∀i∈[m],h0,(M,ρ))
(5)
(1) 对于i∈R′,计算:
e(g,g)μie(H(GID),gμi)
(6)
(2) 获得明文。
(7)
5) 用户撤销。用户GID′的属性集φj,GID′支持撤销权限Pj,为了防止被撤销属性的用户解密密文,拥有属性集φj,GID′的未撤销属性的用户将改变他们存储的数据,用户撤销过程主要有两个阶段:
(2) 未撤销用户的密钥更新。当用户收到更新后的密钥UKj,运行SKU算法更新私钥。
(8)
密钥UKj与已撤销的用户GID′相关联,因此,非撤销的用户与撤销的用户能够区分,被撤销的用户无法接受更新之后的密钥UKj。
本文方案与其他学者研究之间的对比如表1所示。
表1 方案比对
将本文方案与RSN方案的加密解密和再加密的计算过程进行仿真,图2为本文在Windows 7系统CoreTM i5- 4647在4 GB内存中实现加密、解密和密文再加密的时间对比。
(a)
(b)
(c)图2 方案对比结果
假设从授权中心获得10个属性,在每次实验中取得的结果是20次的平均值,结果对比如图2所示。可以看出,本文方案在加密解密时间上和RSN的方案相差不多,但是本文在密文再加密的时间上却远远比RSN方案少,因此总体上具有一定的优势,计算效率也更高。
本文研究了云存储系统中多权限的属性集加密访问控制方案的改进,提出了一个安全的分散属性加密方案,用于设计一个具有策略隐私的访问控制方案。本文的访问控制方案还支持数据的隐私保护,采用的是更加灵活的线性秘密共享方案,同时还支持对多权限的属性加密方案的用户撤销,从而降低了用户撤销的时间成本和计算成本。最后通过实验验证了本文方案的可行性。