云存储环境下基于CP-ASBE数据加密机制

2016-11-07 02:00杨晓晖丁文卿
关键词:谓词密文解密

杨晓晖,丁文卿

(河北大学 计算机科学与技术学院,河北 保定 071002)



云存储环境下基于CP-ASBE数据加密机制

杨晓晖,丁文卿

(河北大学 计算机科学与技术学院,河北 保定071002)

针对基于属性集合加密机制依赖一个授权中心进行密钥计算,容易成为系统安全瓶颈问题,提出基于多个属性授权机构的属性集合加密机制,提高密钥的安全性.授权中心由多个属性授权机构(attribute authority,AA)构成,每个AA负责管理部分属性集合,完整的密钥计算需要多个AA的参与,提高攻击难度.将该机制应用于云环境,对文件加密、密钥计算及文件解密进行分析,设计云存储环境下行之有效的数据加密机制,并对该机制的安全性及时间开销进行分析,实验表明该方法是可行的.

云存储;CP-ASBE;加密机制

基于属性的加密(attribute-based encryption,ABE)[1]是以属性为公钥,将密文和用户私钥与属性关联,当且仅当用户的属性集合与密文的属性集合中相同属性的个数达到门限要求时,用户能够解密密文.将基于属性的加密机制应用在云存储环境,依赖可信第三方来计算密钥,并进行分发,可以很好地解决外包数据的安全问题.由于密钥由可信第三方计算,因此可信第三方容易成为攻击对象,传统的可信第三方都是基于一个授权中心,若该授权中心受到攻击会造成密钥泄露甚至系统瘫痪,不利于用户的隐私保护.

多授权机构基于属性加密最早由Chase[2]提出,由一个中央授权机构CA(central authority)管理各个属性授权机构,CA拥有系统的主密钥和用户私钥,一旦其受到攻击会造成密钥泄露,不利于数据安全.之后,Lin[3]和Chase[4]等又各自提出了无CA的方案.Lewko等[5]提出了一种新的多授权机构属性加密方案,该方案中CA仅参与初始化阶段,此后不参与任何计算,提高了安全性.Taeho等[6]提出了一种匿名优势控制方案,实现云端数据的匿名访问控制以及用户身份保护.Yang等[7]提出了一种基于属性的多授权机构访问控制方案,由CA为授权机构和用户分发各自的身份标识.关志涛等[8]提出面向云存储的基于属性加密的多授权中心访问控制方案,设计多授权中心的属性加密方案.李谢华等[9]提出基于MA-ABE的云存储访问控制方法,将解密秘钥的生成与CA分离,由数据拥有者和授权机构分别生成并进行分发.

以上研究都是针对简单集合的研究,对密文规则复杂的云存储环境不能很好地支持.基于属性集合加密(ciphertext-policy attribute-set based encryption,CP-ASBE)由Bobba等[10]提出,可以支持较复杂的密文策略.CP-ASBE是对基于属性加密机制的改进,可以实现用户属性的多值分配,更适合于用户属性复杂的云存储环境.Wan等[11]将CP-ASBE应用到云环境,采用多授权中心的方法,由上级授权中心管理下级授权中心,但是密钥还是由一个授权中心计算.本文将基于属性集合的加密方法应用到云存储中,采用多CA、多AA方法,将密钥计算分配给多个AA,设计符合云环境特点的数据加密机制,提高安全性.

1 CP-ASBE简介

1.1密钥结构

在传统基于属性加密机制中,用户密钥逻辑上可以认为是一组和属性对应的元素集合.而在CP-ASBE中,密钥结构是一个基于递归集合的属性集合,即集合中的元素既可以代表一个集合也可以代表单个属性.定义depth,为密钥结构的深度,用来限制递归次数.用唯一的标签标识密钥结构中的集合.由于用户属性被设计成递归的集合,该机制可以支持多值分配.例如,{学院:计算机科学与技术,角色:硕士研究生,{课程号:101,角色:助教},{课程号:525,角色:研究生}}是一个深度为2的密钥结构,代表一个计算机科学与技术学院的研究生是课程号为101的助教,并且选修了课程525.从该结构中可以看到相同属性可分配多个值.

1.2访问结构

访问结构T是全集{P1,P2,…,Pn}的一个非空子集,T⊆2{P1,P2,…,Pn}{∅}.T代表一个属性判断条件:在T中的属性集合称为授权集,不在T中的属性集合称为非授权集.采用访问树来描述访问结构.树的每个叶节点代表一个属性或属性集合,非叶节点代表一个带有阈值的门限方案.设节点n的门限值为dn,1≤dn≤numn,其中numn是节点n的子节点个数,节点n的门限方案代表密钥结构中的属性至少满足dn个子节点该密钥结构才满足该节点n.当dn=1时,代表or门,当dn=numn时,代表and门.对节点n的子节点从1到numn排序,函数index(n)返回节点n的序号.若n是叶子节点,调用att(n)返回其属性.

在访问结构树中加入转换节点,转换节点的加入使CP-ASBE机制可以支持属性的复合使用.设T是一个访问结构树,r是其根节点,Tn是以n为根节点的T的子树,其中φ(φ1,…,φi,…,φn)是一个密钥结构,i是密钥结构中属性集合的唯一标签.

判断一个密钥结构是否满足访问结构树过程如下:对访问结构T调用函数f(T,φ)该函数的作用是判断密钥结构φ是否满足访问结构T,函数的返回值是一个标签集合S,只要该标签集非空,那么密钥结构就满足访问结构T,该过程是一个递归的过程.如果n是叶子节点,若att(n)∈φ,则返回标签i;如果n是一个非叶子节点,则对n的所有孩子节点n’评估f(Tn’,φ);最终返回标签集合Sn.至少存在1个标签子集满足其中的所有标签可对应的孩子节点的个数和转换节点的个数大于等于节点n的门限值,则密钥结构满足访问结构树Tn,其中转换节点满足该转换节点是n的孩子节点并且其标签集合不为空.属性的复合使用是指在密钥结构中属于不同属性集合的属性可以复合来满足一个访问结构树中的叶节点.例如属于属性集合i中的属性可以和属于属性集合j中的属性结合来满足T中的一个叶节点.转换节点的作用就是将属于不同属性集合的属性的标签转换为转换节点规定的标签.

2 云存储环境下基于CP-ASBE数据加密机制

2.1安全性假设

1)云服务提供商是不完全可信的,即是有可能对用户存储的数据进行窥探的,因此云端数据加密存储,解密密钥由授权中心分发.

2)授权中心是半可信的,即授权中心不会主动泄露密钥等信息,但可能会受到外部攻击,导致密钥泄露.

2.2总体设计

本文提出的方案如图1所示.Owner为数据拥有者,负责加密数据并向云端存储;CS(Cloud service)是云服务提供商,负责存储数据;CAsetup是参数初始化授权中心,负责验证Owner身份并初始化CP-ASBE参数;CA是中央授权机构,负责产生密钥计算时需要的随机数,并且对AA计算出的密钥的密文等信息进行整合;AA是属性授权机构,负责计算属性对应的密钥.下面对数据的存储,解密以及密钥请求过程进行描述,过程中涉及到的算法将在下节介绍.

2.2.1数据存储过程

1)Owner向CS提出存储数据请求;

2)CS验证该请求是否合法;

3)CS验证通过后Owner采用对称加密算法加密要存储的数据,加密密钥为M,得到密文CT0;

4)Owner向授权机构请求CP-ASBE初始化参数,CAsetup对Owner身份进行验证;

5)CAsetup验证通过后,调用Setup算法,将初始化参数用Owner的公钥加密后传送给Owner;

6)Owner构造访问结构树,收到初始化参数后调用Encryptpt(PK,M,T)算法加密密钥M,得到密文CT1,将CT0与CT1封装为密文CT发送至CS;

7)Owner对访问结构树进行处理,处理规则将在下节描述.将处理后的访问结构树T’发送给CA;

8)CA收到处理后的访问结构树后,将T’中涉及到的属性集合分配给AA,并将AA的公钥发送给Owner即将对应属性的加密公钥发送给Owner;

图1 云存储环境下基于CP-ASBE数据加密机制Fig.1 CP-ASBE based data encryption for cloud storage

9)Owner将属性的分配规则以及该属性在访问结构树中应满足的条件用对应的公钥加密,发送给CA,CA将该密文发送至相应AA.

2.2.2密钥请求过程

1)当有数据共享者User请求访问数据时,CS首先验证其请求是否合法,通过验证后将密文发送给User并向CA申请解密密钥;

2)CA产生该用户的唯一随机数,将该随机数发送给需要进行计算任务的AA.AA通过KeyGen(MK,Au)算法得到属性对应的密钥,将该密钥同访问结构中属性应满足的条件用User的公钥加密后发送给CA;

3)CA对密钥的密文以及条件的密文和T’进行整合,发送给User.

2.2.3数据解密过程

1)User首先对收到的密文用自己的私钥解密,得到解密密钥并恢复出访问结构树T;

2)User调用Decrypt(CT,SK)算法解密数据.

3 算法描述

3.1参数初始化(Setup)

设G1、G2是2个阶为素数q的群,设g是G1的生成元,双线性映射e:G1×G1→G2,H(i)是Hash函数把表示属性的任意长度的字符串i转换成G1中的元素.

随机选择α,βj∈Zp,其中j=1,…,depth,Zp是在modp加法下的群{0,1,…,p-1},p是一个大素数,考虑2层的密钥结构,depth=2,则系统公钥

PK=(G1,g,h1=gβ1,h2=gβ2,f1=g1/β1,f2=g1/β2,e(g,g)α).

系统主密钥

MK=(β1,β2,gα).

将PK,H(i)发送给Owner,H(i)表示属性i转换成G1中的元素的函数.

3.2访问结构树处理

Owner构建访问结构树T,数据加密之后对访问结构树处理,首先对叶节点中的表达式进行定义.

定义1谓词表达式:由客体、谓词以及条件组成,其中客体为属性名;谓词是用于描述或判定客体性质、特征或者客体之间关系的词项,例如大于、等于、小于等;条件指客体应该满足的条件.

定义2策略表达式:将谓词表达式用逻辑联结词联结,联结起来的式子称为策略表达式.逻辑联结词指否定、析取、合取等.

例如图2a中Balance>10,Balance是客体,>是谓词,10是客体Balance需要满足的条件.

访问结构树处理步骤如下.

1) 对谓词表达式进行编号,包括2部分:谓词表达式所在叶节点的编号和谓词表达式在策略表达式中的编号.访问结构树叶节点按照从左至右的顺序进行编号;策略表达式中谓词表达式按照从左至右的顺序编号.

2) 将谓词表达式用相应AA的公钥加密用其编号标识.

3) 去掉叶节点中策略表达式的谓词及条件仅保留客体及联结词.

将带有叶节点编号的并且谓词表达式中仅有客体及联结词的访问结构树T’以及用AA公钥加密的谓词表达式作为处理后的访问结构树.访问结构树处理示例如图2所示.

a.访问结构树T;b.访问结构树T';c.谓词表达式加密.图2 访问结构树处理Fig.2 Transformation of access tree

3.3数据加密(Encryptpt(PK,M,T))

用CP-ASBE算法加密对称密钥M,得到密文CT1,数据包CT1中的内容如下式所示:

3.4密钥计算(KeyGen(MK,Au))

设用户u的属性集合为Au,其密钥结构中表示为Au={Au0,Au1,…,Aum},Au0表示单个属性组成的集合,Au1到Aum是深度为 2 的属性子集.设Aui={ai,1,…,ai,ni},ai,j表示属性子集Aui中第j个属性,ni表示Aui中属性的个数.

CA调用T(Au)判断该用户的密钥结构是否满足Owner的访问结构树T,如果不满足则返回该结果,如果满足则为该用户计算解密密钥.

CA为用户选择唯一的随机数r∈Zp,为密钥结构中的每个属性子集Aui∈Au选择m个不同的随机数,ri∈Zp,i=1,…,m,对于集合Au0的随机数,令r0=r,AA为所管理的Aui中的每个属性ai,j选择不相同的随机数ri,j∈Zp,i=1,…,m,j=1,…,ni,为用户u计算密钥为

SK=(Au,D=g(α+r)/β1,Di,j=gri·H(ai,j)ri,j,

Ei=g(r+ri)/β2(i=1,…,m),

其中D由CA随机选择一个负载较轻的AA计算,由CA将随机数r、ri发送给对应AA.

3.5解密算法(Decrypt(CT,SK))

用户u得到密文CT和相应解密密钥之后执行解密算法,首先解密CT1.为访问结构树中节点解密定义算法DecryptNode(CT1,SK,x,i),其中CT1是对称密钥的密文,SK是得到的解密密钥,x代表访问结构树中节点,i是用户密钥结构中属性集合的标签.用集合Sx代表满足访问节点x的密钥结构中属性集合的标签集合.

如果x是叶子节点DecryptNode(CT1,SK,x,i),定义为:

如果att(x)∉Aui,其中Aui∈Au,则DecryptNode(CT1,SK,x,i)=⊥.

如果att(x)=ai,j∈Aui∈Au,则有

e(gri·H(ai,j)ri,j,gqx(0)/e(gri,j,H(att(x)qx(0))=

e(g,g)ri·qx(0).

当x是非叶节点时,DecryptNode(CT1,SK,x,i)作如下递归计算:

1)设Bx是由节点x的任意dx个子节点组成的集合,令z∈Bx,判断Sz是否为空,即是否存在属性集合Aui满足节点z,如果没有属性集合满足则返回⊥.

2)对Bx中的每个节点z,以及满足节点z的属性集合标签i调用DecryptNode(CT1,SK,x,i),并将其结果存入Fz.

4)计算Fx.

解密时对访问结构树的根节点r调用函数DecryptNode(CT1,SK,x,i),如果i=0,即AU0满足访问结构树,则Fr=e(g,g)r·qx(0)=e(g,g)r·s;如果i≠0,则Fr=e(g,g)ri·qx(0)=e(g,g)ri·s,计算

如果i=0,那么F=Fr.

计算对称密钥M.

利用得到的对称密钥M解密CT0,得到数据的明文.

4 安全性分析

4.1整体分析

授权中心由3部分组成,CAsetup产生初始化参数但是不进行存储,因此对攻击之前已经加入系统的文件,攻击者得不到对应的初始化参数,进而不能得到其解密密钥.CA中存储的访问结构树仅包含属性名,攻击者得不到具体的属性,无法计算H(ai,j)的值,因此无法计算解密密钥.假设一个文件加密属性集合由m个AA管理,攻击者要得到完整密钥需要攻破m个AA,相对于仅有一个授权中心的可信第三方,该机制安全性较高.

4.2抵抗用户合谋攻击

用户合谋攻击指在单个用户属性不能满足访问结构,但是多个用户的属性结合可以满足访问结构树的情况下,用户合谋解密文件.该机制中在计算解密密钥时,CA为用户产生唯一的随机数r,每个用户的随机数都不相同,在解密时由于r不同,不能计算出e(g,g)r·s,不能恢复出明文.

4.3抵抗选择明文攻击

与原CP-ASBE算法相比,该机制改进了访问结构以及密钥计算方式,数据加密与解密同原算法相同,密钥计算时只是将不同属性交由不同AA计算,实际的计算方法同原方法还是相同的,因此改进后该机制安全性并未降低,同原算法一样,能够抵抗选择明文攻击(chosen-plaintext attacks,CPA).

5 性能分析

实验环境为Intel(R)Core(TM)i5,CPU主频为3.20 GHz,内存8 GB,VMware Workstation虚拟机上的Ubuntu系统,实验代码是基于cpabe-0.11库的改进,使用PBC库,版本为0.5.11,对称密钥长度为256位,访问结构树高度为2,密钥结构的depth为2.对于相同的数据重复进行100次实验,取时间的平均值.

参数初始化:CAsetup产生双线性组,选择随机数,进行幂计算,幂计算的数量和密钥结构的depth有关,产生参数PK、MK,其时间复杂度为O(1),如图3所示.

文件加密:Owner使用对称加密算法加密数据,其复杂性和选择的加密算法以及需要加密的文件大小有关.使用CP-ASBE算法加密对称密钥,其时间复杂度和访问结构树中叶子节点数量以及转换节点个数相关,对叶子节点需要进行两次幂运算,对转换节点进行一次幂计算,因此其时间复杂度为O(2|Y|+|X|).由文献[11]可知,访问结构树中转换节点的数量对文件加密和解密的影响不大,因此仅考虑访问结构树中叶子节点的数量对文件加密开销的影响,如图4所示.

图3 参数初始化时间开销Fig.3 Setup Operation

图4 文件加密时间与访问结构树叶节点个数关系Fig.4 Relationship between encryption time and the number of leaf nodes of the access tree

密钥计算:该算法的时间复杂度和密钥结构中属性的数量和属性集合的数量有关,设密钥结构中属性的数量为N,密钥结构中属性集合的数量为M,对密钥结构中的属性需要进行两次幂计算,对属性集合进行一次幂计算,因此该算法的时间复杂度为O(2N+M).假定有10个AA,属性平均分配给AA,图5是在密钥结构中属性数量固定的情况下(属性数量为50),密钥计算时间与密钥结构中属性集合数量的关系,图 6是在密钥结构中属性集合固定(属性集合个数为1),密钥计算时间与密钥结构中属性数量的关系.

图5 密钥生成时间与密钥结构中属性集合数量关系Fig.5 Relationship between key generation time and the number of attribute sets in the key structure

图6 密钥生成时间与密钥结构中属性数量关系Fig.6 Relationship between key generation time and the number of attributes in the key structure

文件解密:用户首先用自己的私钥对访问结构树和CP-ASBE的解密密钥进行解密,然后用得到的解密密钥对对称密钥进行解密,最后用对称密钥对文件解密,由于非对称加密和对称加密算法的时间复杂度和选择的算法以及文件大小有关,因此仅讨论CP-ASBE加密算法的时间复杂度.该算法包括对访问结构树中叶子节点的计算和对转换节点的计算,在最坏情况下,密钥结构中的每一个属性都需要参加计算,访问结构树中的转换节点也都需要参加计算,则其时间复杂度为O(N+|X|).仅考虑参加解密的属性个数对文件解密开销的影响,如图7所示.

图7 解密时间与属性数量关系Fig.7 Relationship between decryption time and the number of attributes

6 结束语

针对基于属性集合加密仅依赖一个授权中心,容易成为

安全瓶颈问题,采用多个属性授权机构,将解密密钥的计算分配给m个AA,使攻击者要得到完整解密密钥需要攻击m个AA,提高了基于属性集合加密的安全性.并将该机制应用于云存储环境,对文件加解密及密钥计算流程进行分析,并给出安全证明及实验分析,该机制有利于云存储环境下用户数据的保护.

[1]SAHAI A,WATERS B.Fuzzy Identity Based Encryption[J].Lecture Notes in Computer Science,2004,3494:457--473.DOI:10.1007/11426639_27.

[2]CHASE M.Multi-authority attribute based encryption[Z].The 4th Theory of Cryptograpthy Conference,Berlin Heidelberg,2007.DOI:10.1007/978-3-540-70936-7_28.

[3]LIN H,CAO Z,LIANG X,et al.Secure threshold multi-authority attribute based encryption without a central authority[J].Information Sciences,2010,180(13):2618-2632.DOI:10.1016/j.ins.2010.03.004.

[4]CHASE M,CHOW S S M.Improving privacy and security in multi-authority attribute-based encryption[Z].The 16th Association for Computing Machinery lonference on Computer and Communications Security,Chicago,2009.DOI:10.1145/1653662.1653678.

[5]LEWKO A,WATERS B.Decentralizing attribute-based encryption[Z].Advances in Cryptology-EUROCRYPT,Berlin Heidelberg,2011.DOI:10.1007/978-3-642-20465-4_31.

[6]TAEHO J,LI X,WAN Z,et al.Privacy preserving cloud data access with multi-authorities[Z].Infernational Conference on Compufer Communicafions,Turin,2013.DOI:10.1109/INFCOM.2013.6567070.

[7]YANG K,JIA X.Expressive,efficient and revocable data access control for multi-authority cloud storage[J].IEEE Transactions on Parallel and Distributed Systems,2014,25(7):1735-1744.DOI:10.1109/TPDS.2013.253.

[8]关志涛,杨亭亭,徐茹枝,等.面向云存储的基于属性加密的多授权中心访问控制方案[J].通信学报,2015,36(6):142-1-142-11.DOI:10.11959/j.issn.1000-436x.2015142.

GUAN Z T,YANG T T,XU R Z,et al.Multi-authority attribute-based encryption access control model for cloud storage[J].Journal on Communications,2015,36(6):142-1-142-11.DOI:10.11959/j.issn.1000-436x.2015142.

[9]李谢华,张蒙蒙,刘鸿,等.基于MA-ABE的云存储访问控制方法[J].湖南大学学报,2015,42(10):133-140.DOI:10.16339/j.cnki.hdxbzkb.2015.10.022.

LI X H,ZHANG M M,LIU H,et al.Multi-authority ABE for access control in cloud storage[J].Journal of Hunan University(Natural Sciences),2015,42(10):133-140.DOI:10.16339/j.cnki.hdxbzkb.2015.10.022

[10]BOBBA R,KHURANA H,PRABHAKARAN M.Attribute-sets:a practically motivated enhancement to attribute-based encryption[Z].European Symposium on Research in Computer Security,Berlin Heidelberg,2009.DOI:10.1007/978-3-642-04444-1_36.

[11]WAN Z G,LIU J,ROBERT H D.HASBE:A hierarchical attribute-based solution for flexible and scalable access control in cloud computing[J].IEEE Transactions on Information Forensics and Security,2012,7(2):743-754.DOI:10.1109/TIFS.2011.2172209.

(责任编辑:孟素兰)

CP-ASBE based data encryption mechanism for cloud storage

YANG Xiaohui,DING Wenqing

(College of Computer Science and Technology,Hebei University,Baoding 071002,China)

Attribute set encryption mechanism relies on an authorization center to generate key,which may easily become a system security bottleneck problem.So an authorization set encryption mechanism based on multiple attribute authorized institution is proposed.It can improve the security of the secret key.The authorization center consists of many attribute authorized institutions.To increase attack difficulty,many AA participate the complete key calculation.Each AA is responsible for managing some of the attributes set.In this paper,file encryption,key calculation and file decryption have been analyzed in cloud environ- ment.Data encryption mechanism has been efficiently designed under the cloud storage environment.The safety and overhead problems in the mechanism are also considered.Experiments indicated that the proposed method is effective.

cloud storage;CP-ASBE;encryption mechanism

10.3969/j.issn.1000-1565.2016.04.015

2016-03-11

国家科技支撑计划项目(2013BAK07B04);河北省自然科学基金资助项目(F2014201152)

杨晓晖(1975—),男,河北邢台人,河北大学教授,博士,主要从事分布计算与信息安全等方向研究.

E-mail:yxh@hbu.edu.cn

TP391

A

1000-1565(2016)04-0424-08

猜你喜欢
谓词密文解密
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
被遮蔽的逻辑谓词
——论胡好对逻辑谓词的误读
党项语谓词前缀的分裂式
炫词解密
康德哲学中实在谓词难题的解决
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*