软件学报  2016, Vol. 27 Issue (6): 1432-1450   PDF    
支持策略隐藏的加密云存储访问控制机制
雷蕾1,2,3, 蔡权伟1,2, 荆继武1,2, 林璟锵1,2, 王展1,2, 陈波4     
1. 中国科学院 信息工程研究所, 北京 100093 ;
2. 中国科学院 数据与通信保护研究教育中心, 北京 100093 ;
3. 中国科学院大学, 北京 100049 ;
4. College of Information Sciences and Technology, The Pennsylvania State University, University Park, USA
摘要: 使用密码技术对云存储数据实施机密性保护和访问控制,是当前云计算安全研究的重要内容.选择加密(selective encryption)技术根据访问控制策略产生密钥推导图来分发密钥,在保证云存储数据机密性和细粒度访问控制的前提下,具有简化文件存储加密、系统密钥量少的优势.然而,已有选择加密方案需要完全或部分地公开访问控制策略,以用于密钥推导;该信息反映了用户/文件之间的授权访问关系,泄露了用户隐私.基于现有的研究工作,提出一种访问控制策略隐藏机制,在支持加密云存储数据的细粒度访问控制和高效密钥分发的前提下,能更好地隐藏访问控制策略信息,而且在密钥获取计算速度上有明显优势.
关键词: 云存储     访问控制     策略隐藏     选择加密     密钥分发    
Enforcing Access Controls on Encrypted Cloud Storage with Policy Hiding
LEI Lei1,2,3, CAI Quan-Wei1,2, JING Ji-Wu1,2, LIN Jing-Qiang1,2, WANG Zhan1,2, CHEN Bo4     
1. Institute of Information Engineering, The Chinese Academy of Sciences, Beijing 100093, China ;
2. Data Assurance and Communication Security Research Center, The Chinese Academy of Sciences, Beijing 100093, China ;
3. University of Chinese Academy of Sciences, Beijing 100049, China ;
4. College of Information Sciences and Technology, The Pennsylvania State University, University Park, USA
Foundation item: National Program on Key Basic Research Project of China (973) (014CB340603); National High-Tech R & D Program of China (863) (2013AA01A214); Strategy Pilot Project of Chinese Academy of Sciences (XDA06010702)
Abstract: Enforcing access controls on cloud storage by cryptography is an important topic of cloud security. Based on access control policies, selective encryption builds key derivation graphs to distribute symmetric keys among users. Selective encryption can ensure the confidentiality and fine-grained access control of cloud storage data, while simplifying data encryption procedure and reducing the total number of keys. However, the existing selective encryption solutions have to fully or at least partially disclose the access control policies. This policy information unfortunately, is usually related to the authorization relation between users and files, leading to privacy leakage. This work significantly improves the existing policy-hiding schemes (of selective encryption) with much less privacy leakage and much faster key derivation, while supporting fine-grained access control on encrypted cloud storage.
Key words: cloud storage     access control     policy hiding     selective encryption     key distribution    

云存储是当前最为常见、最受欢迎的云计算服务.目前,众多大型云服务提供商(cloud service provider)都提供云存储服务,例如亚马逊的S3[1]、苹果的iCloud[2]、百度的百度云[3]、微软的Windows Azure[4]、金山的金山云[5]等.通过使用云存储网络服务,用户不需要维护自己的存储设备,即可以随时随地访问自己的私有数据.艾媒咨询2014年12月发布的《中国个人云存储行业及用户行为研究报告》显示,61.9%的中国网民使用过云存储产品[6].

云存储服务以其使用方便、费用低廉等特点得到了广泛使用,然而一系列相关安全事件的发生引起了人们对云存储数据安全的高度关注,特别是数据机密性和有效访问控制.例如,2014年发生的苹果iCloud泄密门事件导致女星隐私照片泄露[7].

密码算法是实现云存储数据机密性的重要技术.选择加密(selective encryption)[8, 9]是一种适用于云存储服务的访问控制机制,具有细粒度访问控制、密钥管理计算开销小、密钥分发效率高等特点.选择加密采用不同的对称密钥加密不同的文件,其中,具有相同访问用户集合的文件采用同一对称密钥加密.共享用户一般只需保存一个对称密钥作为用户密钥.选择加密根据访问控制策略生成的密钥推导图进行密钥分发.密钥推导图一般由若干顶点和若干有向边组成.每条有向边连接两个顶点,表示出发顶点的顶点密钥可推出终端顶点的顶点密钥.数据拥有者将每个共享用户和每个文件的访问用户集合视为密钥推导图中的一个顶点,利用访问用户集合的包含关系生成密钥推导图(详见第1.1节).为将密钥推导图中的密钥推导关系转变为用于密钥分发的公开信息,数据拥有者首先为每个密钥分配一个标签,之后为每条有向边生成一个对应的令牌.一般,令牌包括3个部分:密文、密文的解密密钥的标签(后简称解密标签)和解密密文后可获取的密钥的标签(后简称获取标签).为让共享用户快速找到获取目标密钥的令牌路径,数据拥有者还将生成一个用户密钥标签列表和文件解密密钥标签列表.最后数据拥有者将用户密钥标签列表、文件解密密钥标签列表和令牌列表作为公开信息存储在云存储服务器,使共享用户可根据其用户密钥和公开信息推导出其访问权限范围内的文件的解密密钥.

然而,由于选择加密机制的公开信息可被各方获取,攻击者可轻易利用公开信息恢复出密钥推导图,从而得到数据拥有者的访问控制策略.这也成了选择加密尚未解决的问题,即需公开访问控制策略才能实现对加密数据的访问控制.

访问控制策略反映了用户/文件之间的关系,公开该信息会导致敏感信息泄露、带来安全隐患.例如,数据拥有者将文件共享给某一用户,表示二者之间有业务往来,具有明显的隐私信息.更进一步地,如果数据拥有者是单位管理员,根据公开的访问控制策略,攻击者可大致推断出单位的员工总数、了解各员工的数据访问权限,进而可推断各员工在单位中的地位和单位组织架构等.此外,根据公开的访问控制策略信息,攻击者还可推断文件的重要性程度,从而选择攻击最重要的文件,使攻击效益最高.另外,采用相同密钥加密的文件将对应同一解密密钥标签,攻击者可据此推断出那些文件具有同一属性,泄露文件的权限信息.

在不影响对加密数据访问控制的前提下,文献[10]提出了一个旨在隐藏访问控制策略的选择加密方案——本文称其为PCSP方案.该方案工作原理是:在得到密钥推导图后,PCSP方案运用标号设定算法[11]将顶点的可达性信息标记为权限区间,之后将顶点的权限区间通过加密的方式隐藏在公开信息中(详见第1.2节).其效果相当于隐藏了选择加密初始方案令牌中的获取标签.PCSP方案存在如下问题:(1) 该方案并未有效实现策略隐藏.若数据拥有者是单位管理员,攻击者仍可根据公开信息获取部分访问控制策略,可大致推断出单位的员工总数、部分员工的数据访问权限.(2) 该方案并未解决采用相同密钥加密的文件对应同一解密密钥标签问题.

(3) 该方案的密钥推导效率低.

本文致力于研究更安全更高效的支持访问控制策略隐藏的新方案.在新方案中,我们为每个令牌分配一个标签,不再为密钥分配标签.令牌标签将采用本文提出的一种特殊的计算方法计算得到(详见第3.1节).通过引入令牌标签既实现了访问控制策略的隐藏,又实现了目标密钥的快速获取.此外,本文还通过引入加密区间和文件序列号,有效地隐藏了文件的权限信息.攻击者将不能从公开信息中获取访问控制策略的相关信息.本文主要贡献是:(1) 在文献[10]的基础上,本文提出了一种新的加密云存储访问控制方案.在实现针对加密数据的细粒度访问控制的前提下,新方案可有效支持访问控制策略的隐藏.(2) 与PCSP方案相比,本文提出的新方案能够实现高效的密钥分发.

本文第1节介绍背景工作并指出其存在的问题.第2节给出本文方案的服务模型和安全假设.第3节介绍本文方案的主要思想、具体算法并给出实例.第4节分析本文方案的安全性和性能.第5节介绍加密云存储访问控制的相关研究进展.第6节为总结.

1 背景和存在问题 1.1 选择加密

选择加密[8, 9]的基本模型是:数据拥有者将文件f采用对称加密算法加密后存储在云存储服务器上,然后通过对称密钥的分发来实现用户群之间的共享和访问控制,即某用户uf有访问权限,则数据拥有者通过密钥分发机制将f的解密密钥分发给用户u.在本文中,每一个共享用户只拥有一个对称密钥作为其用户密钥.

访问控制策略即数据拥有者对每个共享用户的授权信息.访问控制策略的定义如下:

定义1(访问控制策略). 令UF分别为系统中的用户集合和文件集合,uf分别代表一个用户和一个文件.令pu,f表示云数据拥有者允许用户u访问文件f的授权,P为授权p的集合.则定义于UF之上的访问控制策略为ACPU,F,P.

为了实现对加密数据的访问控制,最简单的方法是将密钥直接分发给每一个有权限的用户,但是这将给数据拥有者带来繁重的密钥管理负担.选择加密采用对称密钥推导图的形式进行密钥分发,可有效减轻数据拥有者的密钥管理负担.选择加密方案生成用于实现访问控制的公开信息的主要步骤如下:

(1) 输入ACP,生成密钥推导图.生成步骤如下:

· 创建顶点.将每个共享用户和每个文件的访问用户集合视为密钥推导图中的一个顶点.本文称密钥推导图中代表共享用户的顶点为用户顶点,代表文件访问用户集合的顶点为文件顶点.用户顶点密钥与用户密钥相同,用户顶点的访问用户集合只含有其所代表的用户.文件顶点密钥与文件解密密钥相同,文件顶点的访问用户集合等于文件的访问用户集合.

· 生成有向边.当顶点vj的访问用户集合包含另一顶点vi的访问用户集合时,则生成一条由vi指向vj的有向边eávi,vj.有向边eávi,vj表示出发顶点vi的密钥可推出终端顶点vj的密钥,本文称vivj的父顶点.

· 去除多余的有向边.由于每一条有向边对应一个令牌,删除多余的有向边将可有效减少令牌的数量.设顶点vi拥有多个父顶点.先按照顶点的访问用户集合中的用户个数对父顶点进行排序,数量大者排前序.若用户个数相同,文件顶点排前序,用户顶点排后序.之后从排序第二的父顶点开始,检查其访问用户集合是否包含一个已检查的顶点(排序第一的父顶点默认已检查)的访问用户集合中没有的用户,如果不包含则删除当前检查的父顶点指向vi的有向边,有则保留.

· 插入中间顶点,进一步减少有向边的数量.设m个子顶点共享n个父顶点,则连接这些顶点需mxn条有向边.通过插入一个访问用户集合为n个父顶点的访问用户集合并集的中间顶点,则只需生成n条由父顶点指向中间顶点和m条由中间顶点指向子顶点的有向边,即连接这些顶点只需生成m+n条边.

(2) 生成密钥标签.在得到密钥推导图后,数据拥有者为每个密钥生成一个标签,并按照表 1生成标签列表,其中,lu代表用户u的用户密钥标签,lf代表文件f的解密密钥标签.

Table 1 Label format 表 1 标签格式

(3) 生成令牌.对于密钥推导图中的每一条有向边eávi,vj,按照表 2生成令牌,其中设vivj 的密钥分别为kikj,kikj的标签分别为lilj.

在得到用户密钥标签列表、文件解密密钥标签列表和令牌列表后,数据拥有者将这些列表作为公开信息存储在云存储服务器.

Table 2 Token format 表 2 令牌格式

例1(选择加密应用举例——根据访问控制策略生成用于实现访问控制的公开信息):设数据拥有者定义的访问控制策略见表 3.表 4为由表 3得到的文件访问用户集合列表.

Table 3 An ACP instance 表 3 访问控制策略实例

Table 4 Access user sets of files 表 4 文件的访问用户集合

设用户${u_1},{u_2},{u_3},{u_4},{u_5},{u_6}$的用户密钥分别为${k_1},{k_2},{k_3},{k_4},{k_5},{k_6},$文件的解密密钥分别为${k_7},{k_8},{k_9},{k_9},{k_{10}},{k_{11}},,{k_{12}}.$f3f4具有相同的访问用户集合,因而二者均采用密钥k9加密.根据表 3,生成的密钥推导图如图 1所示.在图 1中,${v_1} - {v_6}$为用户顶点,${v_7} - {v_{12}}$为文件顶点.设密钥${k_1} - {k_{12}}$的标签分别为${l_1} - {l_{12}}$.按表 1生成的标签列表见表 5.按表 2生成的令牌列表见表 6.最后数据拥有者将表 5表 6存储于云存储服务器.

Fig. 1 Key derivation graph 图 1 密钥推导图

Table 5 Label list 表 5 标签列表

例2(共享用户获取目标密钥举例):设用户u1需要解密文件f2.用户u1获取目标密钥步骤如下:

(1) 查询表 5,找到用户密钥的公开标签为l1,文件f2的解密密钥标签为l8.

(2) 查询表 6,找到获取目标密钥的令牌路径,见表 7.

Table 6 Token list 表 6 令牌列表

Table 7 Derivation path for the target key 表 7 获取目标密钥的令牌路径

按照路径排序,首先利用用户密钥解密第1个令牌得到密钥k7,再利用k7解密第2个令牌得到目标密钥k8.

由于选择加密需要将用户密钥标签列表、文件解密密钥标签列表和令牌的解密标签和获取标签作为公开信息,攻击者将可轻易根据这些公开信息得到密钥推导图和访问控制策略.访问控制策略的公开将带来严重的安全威胁.若数据拥有者是单位管理员,攻击者可根据公开的访问控制策略大致推断出单位的员工总数、各员工的数据访问权限、各员工在单位中的地位、单位组织架构和文件的重要性程度.例如攻击者可根据表 5表 6轻易得到访问控制策略表 3.如果数据拥有者是单位管理员,攻击者可根据表 3推断出该单位有6名员工,各员工的数据访问权限见表 8.由表 8可知,u2的访问权限最大,在组织中具有较高的地位.

Table 8 User access privileges 表 8 员工的数据访问权限

1.2 访问控制策略的隐藏方案与不足

为应对上述挑战,Vimercati等人在文献[10]中给出了一种用于实现访问控制策略隐藏的方案(本文称其为PCSP方案).在利用初始方案获取密钥推导图后,PCSP方案首先利用标号设定算法[11]将密钥推导图中各顶点的可达性信息(即一个顶点通过图中的有向边或路径可达到的顶点集,例如图 4中的v2,其可到达顶点为v7,v8,v9,v10,v11)标记为权限区间,之后将权限区间隐藏在公开信息中.PCSP方案主要步骤如下:

(1) 运用选择加密初始方案[8, 9]得到密钥推导图,为所有密钥生成标签.

(2) 运用标号设定算法[11]为密钥推导图中各顶点标记权限区间,可分为以下5步:

· 为密钥推导图添加一个根顶点vT,从根顶点vT出发遍历图中所有顶点得到深度优先生成树ST.

· 为每个顶点分配一个编号,从ST最右上角顶点出发,依次为ST上各顶点分配一个编号,同时标记顶点通过ST上的有向边或路径到达的顶点信息为权限区间.一个顶点可拥有多个权限区间.若一个顶点的权限区间为[n1,n2]p,表示该顶点可到达编号属于[n1,n2]p的任意顶点(PCSP方案中假定顶点可到达本身).例如,图 3中的顶点v7,其权限区间为[1, 2]p,表示其可达到的顶点为其自身(自身编号为2)和v8(编号为1).

· 去掉T并删除从vT出发的有向边,标记顶点通过不在ST上的有向边或路径到达的顶点信息为权限区间.例如图 4中的有向边$e\left\langle {{v_2},{v_7}} \right\rangle $,表明v2可通过$e\left\langle {{v_2},{v_7}} \right\rangle $到达顶点v7,因而可将顶点v7的权限区间标记到顶点v2的权限区间上,如图 4所示.

· 标记有向边的权限区间.每条有向边的权限区间等于其终端顶点的权限区间.例如图 5中的有向边$e\left\langle {{v_2},{v_7}} \right\rangle $的权限区间为[1, 2]p,也即是顶点v7的权限区间.

· 去除权限重叠的权限区间.如果一个顶点可通过多条路径到达另一顶点时,仅需保存其中最短的路径信息即可.当两条路径长度相同时,只需随意保存其中一条路径信息.

(3) 生成文件解密密钥标签列表、顶点密钥标签编号列表(顶点密钥标签编号等于顶点编号.例如图 3中的顶点v7编号为2,则顶点密钥标签l7的编号为2)和令牌列表.对于密钥推导图中的每一条有向边$e\left\langle {{v_2},{v_7}} \right\rangle $,按照表 9格式生成令牌,其中设vivj的密钥分别为kikj,kikj的标签分别为lilj,$e\left\langle {{v_i},{v_j}} \right\rangle $的权限区间为[n1,n2]p.表 9中的令牌号由数据拥有者随机生成,保证每个令牌的令牌号不同即可,其作用是区分具有相同解密标签的令牌.${E_{{k_i}}}\{ {l_j},{k_j} \oplus h({k_i},{k_j}),{[{n_1},{n_2}]_P}\} $表示用密钥ki加密$\{ {l_j},{k_j} \oplus h({k_i},{k_j}),{[{n_1},{n_2}]_P}\} $后得到的密文.

Table 9 Token format of PCSP 表 9 PCSP方案令牌格式

例3(PCSP方案应用举例——根据访问控制策略生成用于实现访问控制的公开信息):设访问控制策略与表 3相同.经过步骤(1)后,可得到密钥推导图(如图 1所示).步骤(2)的执行过程如图 2~图 5所示,图 2是为图 1添加根顶点vT后,从vT出发,遍历图 1上所有顶点得到的深度优先生成树ST,图中有向实线表示在ST上的有向边,有向虚线表示不在ST上的有向边.有向边上的编号代表将该有向边添加至深度优先生成树上的序号.对图 2中的各顶点编号并标记权限区间后,得到的密钥推导图如图 3所示.之后,去掉vT,并删除从vT出发的有向边,标记顶点通过不在ST上的有向边或路径到达的顶点信息为权限区间,如图 4所示.最后,标记各有向边的权限区间,并删除顶点权限区间后,可得到图 5.由于本例中没有权限重叠的权限区间,因而不需要执行去除权限重叠的权限区间操作.执行步骤(3),生成的文件解密密钥标签列表、密钥标签编号列表和令牌分别见表 10~表 12.最后,数据拥有者将表 10~表 12存储于云服务器.

Fig. 2 ST(depth-first spanning tree) of key derivation graph 图 2 密钥推导图的深度优先生成树

Fig. 3 Marking reachability of ST as vertex 图 3 标记深度优先生成树上有向边的可达性信息

Fig. 4 Marking reachability of key derivation graph 图 4 标记整个密钥推导图的可达性信息为顶点权限区间

Fig. 5 Marking directed edge privilege intervals 图 5 标记有向边的权限区间

例4(共享用户获取目标密钥举例):设用户u2需要解密文件f3.PCSP方案假设用户密钥和用户密钥标签同时分发给共享用户(例如,可设用户密钥标签为密钥的hash值).故用户u2已知其用户密钥标签为l2.用户u2获取目标密钥步骤如下:

(1) 查询表 10,找到文件f3的解密密钥标签为l9.

Table 10 Decryption label list 表 10 文件解密标签列表

(2) 查询表 11,找到标签l9编号为4.

Table 11 Number list 表 11 标签编号列表

(3) 解密以l2为解密标签的令牌,直至找到权限区间包含编号4的令牌或目标令牌(即解密令牌后得到标签为l9).

· 利用用户密钥k2解密表 12中令牌号为2的令牌密文,得到$\{ {l_7},{k_7} \oplus h({k_2},{l_7}),{[1,2]_P}\} ,$其权限区间不包含4,继续解密以l2为解密标签的令牌.

Table 12 Token list 表 12 令牌列表

· 利用用户密钥k2解密表 12中令牌号为3的令牌密文,得到${E_{{k_2}}}\{ {l_{10}},{k_{10}} \oplus h({k_2},{l_{10}}),{[4,6]_P}\} ,$其权限区间包含编号4,标签为l10,说明以l10为解密标签的令牌中,含有帮助获取目标密钥的令牌.利用k2l10解密${k_{10}} \oplus h({k_2},{l_{10}})$得到密钥k10.

(4) 解密表 12中以l10为解密标签的令牌,直至找到权限区间包含编号4的令牌或目标令牌.

利用密钥k10解密表 12中令牌号为12的令牌密文,得到$\{ {l_9},{k_9} \oplus h({k_{10}},{l_9}),{[4,4]_P}\} .$标签为l9,说明该令牌为目标令牌.利用k10l9解密${k_9} \oplus h({k_{10}},{l_9})$得到目标密钥k9.

PCSP方案在支持策略隐藏方面有所改进,然而其并未很好地解决该问题.存在以下问题:

(1) 访问控制策略的泄露.PCSP方案并未有效地隐藏访问控制策略,攻击者仍可根据公开信息获取部分访问控制策略.若数据拥有者是单位管理员,攻击者仍可推断出单位的员工总数、员工的部分数据访问权限.例如,攻击者仍可根据顶点标号分配方法和表 10~表 12推出密钥推导图的深度优先生成树上的有向边.另可推出员工总数为6人,u1的访问权限为f1f2,u2除能${f_3},{f_4},{f_5},{f_6}$访问文件外,至少还能访问f1,f2中的一个文件.u3至少能访问${f_1},{f_2},{f_3},{f_4},{f_5},{f_6}$中的两个文件.u4至少能访问${f_1},{f_2},{f_3},{f_4},{f_5},{f_6}$中的一个文件.u5除能访问文件f7外,至少还能访问中的一个文件,u6至少拥有两个文件的访问权限.

(2) 密钥推导效率低.共享用户不能快速获取推导目标密钥的令牌路径,需要解密许多不相关的令牌,具体可见例4.

(3) 文件权限信息的泄露.由于采用相同密钥加密的文件将对应同一解密密钥标签,攻击者可据此推断出那些文件具有同一属性.例如,在表 10中,f3f4的解密密钥标签相同,说明二者能够被相同的用户群所访问.

2 服务模型和安全假设 2.1 服务模型

本文方案使用了与文献[12, 13]相同的服务模型,包括数据拥有者、共享用户和云服务器3个主体,如图 6所示.数据拥有者将加密文件和用于实现访问控制的公开信息存储于云服务器.数据拥有者不需要始终在线,在数据上传存储到云服务器之后即可处于离线状态.数据用户可随时将存储于云服务器的加密文件和公开信息下载至本地.云服务器始终在线,随时为数据拥有者和用户提供数据下载和上传服务.

Fig. 6 Service model 图 6 服务模型

2.2 安全假设

本文方案使用在云计算安全研究中广泛使用的可信且好奇(honest-but-curious)假设[8, 9, 12],即云服务器可信地执行数据拥有者的指令,但是会尝试获取存储数据的各种相关信息.本文假定云服务器对存储数据的明文和数据拥有者的访问控制策略、共享用户的数据访问权限和文件重要性程度(假定文件访问用户集合越小重要性程度越高)更感兴趣.此外,一些恶意用户希望能够访问不在其权限访问内的文件并尽可能多的获取其自身以外的访问控制策略.

另外,方案还基于如下假设:

(1) 所使用的密码算法是安全的;

(2) 共享用户能够保存好自己的密钥;

(3) 存在安全的带外信道用于数据拥有者与共享用户之间的对称密钥共享(例如,使用SSL/TLS等).

3 我们的方案

PCSP方案面临的文件权限信息的泄露问题,其原因在于采用同一密钥加密的文件对应相同的公开标签.一种简单的解决办法是让每个文件对应不同的解密标签,然而这将导致在生成密钥推导图时将每个文件的访问用户集合视为一个不同的顶点,从而引入多余的有向边.为避免引入多余的有向边,同时又能提示每个文件的解密密钥信息,本文将引入文件序列号、加密区间和新的权限区间概念.文件序列号是每个文件在系统中的唯一标识,用于提示文件的解密密钥信息.本文将为每个文件分配一个独一无二的序列号.顶点的加密区间用于标记用该顶点的密钥加密的文件的序列号.若一个顶点的加密区间为[s1-s2]e,表示共享用户可用该顶点的密钥解密文件序列号位于[s1-s2]e区间内的文件.在本文方案中,顶点的权限区间标记该顶点密钥可推导出的密钥所加密的文件的序列号.若一个顶点的权限区间为[s1-s2]p,表示共享用户可用该顶点的密钥推出文件序列号位于区间[s1-s2]p内的文件的解密密钥(本文的方案中假定顶点密钥不能推出自身).例如,在图 10中,顶点v9的密钥用于加密文件f3f4,可为f3f4分配连续文件序列号3和4,同时将顶点v9加密区间标记为[3, 4],而顶点v9没有子节点,即顶点v9的密钥不能推出其他任何密钥,因而其权限区间为空.通过引入文件序列号、加密区间和新的权限区间概念,在没有引入多余的有向边的前提下,实现了文件权限信息的隐藏,使攻击者不能再从公开信息中推出哪些文件采用同一密钥加密,具有同一属性.

PCSP方案存在的访问控制策略泄露问题,其原因在于:

(1) 需要将各令牌的解密密钥标签作为公开信息,攻击者可通过比对令牌列表和文件的解密密钥标签列表,推出哪些标签是用户密钥标签或中间顶点密钥标签.

(2) 需要公布标签的编号值,这使攻击者可据此推出密钥推导图的深度优先搜索生成树上的所有有向边.

此外,PCSP方案存在的密钥推导效率低问题,其原因在于只有解密一个令牌,并获取其隐藏的权限区间后,共享用户才能判断该令牌是否属于获取目标密钥的令牌路径.本文提出了一种新的令牌格式和标签算法可同时解决上述两大问题.在本文方案中,将为每个令牌分配一个经过特殊计算的标签,不再为密钥分配标签.

3.1 令牌格式和令牌标签计算方法

设密钥推导图中一个顶点v0包含有n个子顶点,分别为${v_1},{v_2},...,{v_n}.{v_0},{v_1},{v_2},...,{v_n}$的顶点密钥分别为 ${k_0},{k_1},{k_2},...,{k_n}.{v_1},{v_2},...,{v_n}$设的加密区间和权限区间见表 13.

Table 13 Encryption intervals and priviledge intervals of descendant vertices 表 13 子顶点加密区间和权限区间

设顶点v0的加密区间为[s01-s02]e,按表 14格式标记顶点v0的加密区间和权限区间.在表 14中,v0的权限区间数量等于其子顶点个数,v0的每个权限区间标记一个子顶点的加密区间和权限区间.当一个共享用户获取v0的加密区间和权限区间后,可清楚知道该顶点的子顶点个数和各子顶点的权限信息.

Table 14 Encryption intervals and priviledge intervals of ancestor vertices 表 14 父顶点的加密区间和权限区间

父顶点v0指向各子顶点的有向边$e\left\langle {v0,v1} \right\rangle ,e\left\langle {v0,v2} \right\rangle , \ldots e\left\langle {v0,vn} \right\rangle ,$所对应令牌见表 15.

Table 15 Label format 表 15 令牌格式

表 15中的标签按照以下方式计算:

${l_{0,1}} = hash({k_0},{[{s_{11}} - {s_{12}},{y_{11}} - {y_{12}},{y_{13}} - {y_{14}},...,{y_{1(2{m_1} - 1)}} - {y_{1(2{m_1})}}]_{{p_1}}})$

${l_{0,2}} = hash({k_0},{[{s_{21}} - {s_{22}},{y_{21}} - {y_{22}},{y_{23}} - {y_{24}},...,{y_{2(2{m_2} - 1)}} - {y_{2(2{m_2})}}]_{{p_2}}})$

${l_{0,n}} = hash({k_0},{[{s_{n1}} - {s_{n2}},{y_{n1}} - {y_{n2}},{y_{n3}} - {y_{n4}},...,{y_{n(2{m_n} - 1)}} - {y_{n(2{m_n})}}]_{{p_n}}})$

对于攻击者而言,由于其不能获取顶点v0的密钥和权限区间,因而其从表 15中将得不到任何有意义的信息.对于具有访问权限的共享用户而言,由于其能够获取v0的顶点密钥和权限区间,因而可根据令牌的标签快速获取得到目标密钥令牌路径.例如,一个共享用户u1(其已获取顶点v0的密钥和权限区间)需解密序列号为s22的文件.由于s22包含在v0的第2个权限区间${[{s_{21}} - {s_{22}},{y_{21}} - {y_{22}},{y_{23}} - {y_{24}},...,{y_{2(2{m_2} - 1)}} - {y_{2(2{m_2})}}]_{{p_2}}}$内,u1将利用k0和第2个权限区间计算hash值:$hash({k_0},{[{s_{21}} - {s_{22}},{y_{21}} - {y_{22}},{y_{23}} - {y_{24}},...,{y_{2(2{m_2} - 1)}} - {y_{2(2{m_2})}}]_{{p_2}}}).$之后从表 15中找到标签值为$hash({k_0},{[{s_{21}} - {s_{22}},{y_{21}} - {y_{22}},{y_{23}} - {y_{24}},...,{y_{2(2{m_2} - 1)}} - {y_{2(2{m_2})}}]_{{p_2}}})$的令牌.之后用k0解密这个令牌,得到${k_2},{[{s_{21}} - {s_{22}}]_e},{[{y_{21}} - {y_{22}}]_{{p_1}}},{[{y_{23}} - {y_{24}}]_{{p_2}}},...,{[{y_{2(2{m_2} - 1)}} - {y_{2(2{m_2})}}]_{{p_{{m_2}}}}},$说明密钥k2即为目标密钥.

由于用户顶点处于密钥推导图的最上层,因而需要考虑如何将用户顶点的权限区间信息(本文假定用户密钥不用于加密任何文件,因而用户顶点的加密区间为空)分发给共享用户.一种简单的方法是在分发用户密钥时一同将权限区间信息分发给用户,然而这将使共享用户需要保存用户密钥以外的数据,这将增加共享用户的管理负担.本文将为用户生成用于传递用户顶点权限区间信息的令牌,使系统中的用户仅需保存一个密钥即可根据公开信息推出其权限访问内所有文件的密钥.

设共享用户u1的用户密钥为k1,密钥推导图中代表其的用户顶点为v1,v1的权限区间为${[{y_{11}} - {y_{12}}]_{{p_1}}},{[{y_{13}} - {y_{14}}]_{{p_2}}},...,{[{y_{1(2m - 1)}} - {y_{1(2m)}}]_{{p_m}}}.$为用户传递权限区间信息的令牌按照表 16格式生成.

Table 16 Token containing the priviledge intervals of user vertex 表 16 传递用户顶点权限区间的令牌格式

3.2 具体算法

算法中用到的各项参数见表 17.

Table 17 System parameters 表 17 参数说明

具体算法如图 7所示.算法分为4个步骤:

Fig. 7 Our algorithm 图 7 本文算法

(1) 初始化;

(2) 生成密钥推导图;

(3) 标记密钥推导图上顶点的加密区间和权限区间;

(4) 分配文件序列号,生成文件序列号列表和令牌列表.下面详细介绍算法的每个步骤.

(1) 初始化.

· 为每个访问用户集合创建一个顶点.顶点v是一个结构,包含9个成员:顶点属性v.attribute、顶点访问用户集合v.aug、顶点加密区间v.einterval、顶点权限区间v.pinterval、顶点密钥v.k、顶点密钥加密的文件集合v.filegroup、顶点密钥加密的文件数量v.filenumber、顶点序号v.orderv.reachability(值为0时表示顶点不包含子顶点).

在本文方案中,将每个共享用户视为一个只包含自身的访问用户集合(称为共享用户的访问用户集合).在输入访问控制策略后,算法首先生成访问用户集合的集合AUG(包含所有共享用户和文件的访问用户集合,当文件的访问用户集合只有一个共享用户时,将其视为与共享用户访问用户集合不同的集合).之后为每个访问用户集合aug创建一个顶点v.若aug为共享用户的访问用户集合,则令v.attribute=0,若为文件的访问用户集合,则令v.attribute=1.令v.aug=aug,v.k等于访问用户集合为aug的用户的密钥/文件的加密密钥.v.filegroup是利用v.k加密的文件的集合.v.filenumber等于v.filegroup中的文件数量.

· 为每个文件创建一个序列号变量f.sn.

(2) 生成密钥推导图.可利用选择加密初始方案,得到密钥推导图.设得到的密钥推导图为G(V,Edge),其中,V为初始化过程中创建的顶点和插入的中间顶点的集合,Edge为密钥推导图中有向边的集合.其中,插入的中间顶点的顶点属性v.attribute设定为2.e代表一条有向边.e是一个结构,包含4个成员:出发顶点e.svertex、终端顶点v.fvertex、有向边序号e.order和有向边属性e.attribute(默认e.attribute初值为0.当有向边位于深度优先生成树上时,将该值设为1).

(3) 标记密钥推导图上顶点的加密区间和权限区间(算法细节如图 8所示).

Fig. 8 Step 3 图 8 步骤3

· 生成深度优先生成树,并设定顶点的顶点序号值v.orderv.reachability和有向边序号值e.order.添加根顶点vTvT指向用户顶点的有向边(二者不分配顶点序号和有向边序号),从根顶点vT出发遍历图中所有顶点得到深度优先生成树$ST(V \cup {v_T},STEdge),$,STEdge表示ST上有向边的集合.在此过程中,算法已设定顶点的顶点序号v.orderv.reachability和有向边的有向边序号e.order.其中顶点序号表示将顶点添加至$ST(V \cup {v_T},STEdge)$上的序号.有向边序号表示将有向边添加至$ST(V \cup {v_T},STEdge)$上的序号.若顶点没有子顶点,将其v.reachability值设为0.例如,在图 10中,设根顶点vT从顶点v1开始搜索,沿着有向边一直搜索至顶点v8.v8没有子顶点,将其添加至深度优先生成树上,并设定${v_8}.order = 1,v.reachability = 1.$之后,算法返回至顶点v7,v7除顶点v8外没有其他子顶点,则将其添加至深度优先生成树上,并设定${v_7}.order = 2.$同时设定有向边$e\langle {v_7},{v_8}\rangle .order = 1.$

· 删除根顶点vTvT指向用户顶点的有向边,标记各顶点的加密区间.后续工作已不再需要用到根顶点vT及其指向用户顶点的有向边,因而可删除vT和这些有向边.按照顶点序号值从小到大依次标记顶点的加密区间.

· 将属于STEdge的有向边的可达性信息标记为顶点的权限区间信息.

· 将属于集合Edge/STEdge的有向边的可达性信息标记为顶点的权限区间信息.

(4) 为文件分配序列号,生成文件序列号列表和令牌列表(算法细节如图 9所示).生成各有向边对应令牌的方法为:利用有向边出发顶点的顶点密钥加密终端顶点的顶点密钥、加密区间和权限区间得到令牌密文,利用第3.1节中的标签计算方法得到令牌标签.之后,生成向用户传递其权限区间信息的公开令牌.利用用户密钥加密用户顶点的权限区间得到令牌密文.计算用户密钥的hash值作为令牌标签.

Fig. 9 Step 4 图 9 步骤4

例5(本文方案应用举例——根据访问控制策略生成用于实现访问控制的公开信息):设访问控制策略与表 3相同.经过步骤(1)和步骤(2)后,可得到密钥推导图(如图 1所示).步骤(3)首先利用深度优先搜索算法得到图的深度优先生成树ST,如图 2所示.

图 10 标记顶点的加密区间 图 11 标记深度优先生成树的可达性信息为顶点权限区间

之后删除根顶点vTvT指向用户顶点的有向边,标记顶点的加密区间,如图 10所示.接着将STEdge内的有向边的可达性信息标记为顶点的权限区间信息,如图 11所示.然后,将集合Edge/STEdge内的有向边的可达性信息标记为顶点的权限区间信息,如图 12所示.最后,为文件分配序列号,生成文件序列号列表和令牌列表.算法生成的文件序列号列表和令牌列表见表 18表 19.

Fig. 10 Marking vertex encryption intervals 图 10 标记顶点的加密区间

Fig. 11 Marking reachability of ST as vertex privilege intervals 图 11 标记深度优先生成树的可达性信息为顶点权限区间

Fig. 12 Marking reachability of key derivation graph as vertex privilege intervals 图 12 标记整个密钥推导图的可达性信息为顶点权限区间

Table 18 SN list 表 18 文件序列号列表

Table 19 Token list 表 19 令牌列表

例6(共享用户获取目标密钥举例):设用户u2需要解密文件f3.u2获取目标密钥的步骤如下:

(1) 计算个人密钥的hash值hash(k2),从表 19中找到标签值为hash(k2)的令牌,解密${E_{{k_2}}}\{ {[1 - 2]_p},{[3 - 6]_p}\} $得到自己的权限区间为${[1 - 2]_p},{[3 - 6]_p}.$

(2) 查询表 18,找到文件f3的文件序列号为3.序列号3包含于第2个权限区间,故计算hash值hash(k2,[3, 4, 5, 6]p).

(3) 找到标签值为hash(k2,[3, 4, 5, 6]p)的令牌,解密${E_{{k_2}}}\{ k{}_{10},{[5 - 5]_e},{[3 - 4]_p},{[6 - 6]_p}\} $得到$k{}_{10},{[5 - 5]_e},{[3 - 4]_p},$序列号3包含于第1个权限区间,故计算hash值$hash({k_{10}},{[3 - 4]_p}).$

找到标签值为hash(k10,[3, 4]p)的令牌,解密${E_{{k_{10}}}}\{ k{}_9,{[3 - 4]_e}\} $得到$k{}_9,{[3 - 4]_e}.$序列号3包含于该点的加密区间,说明密钥k9即为目标密钥.

4 安全性和性能分析 4.1 安全性分析

定理1. 文件、文件顶点和中间顶点密钥、加密区间和权限区间的机密性等价于所采用的对称加密算法和hash算法的安全性.

证明:设系统中文件集合为F,文件序列号集合为SN,令牌集合为T,采用的对称加密算法为E,采用的hash算法为hash.对于敌手而言,文件序列号相当于文件的一个编号.敌手不能从公开的SN中获取文件、文件顶点和中间顶点密钥、加密区间和权限区间的任何机密性信息.当一个用户获取其权限范围内一个文件的解密密钥,设其所需解密的令牌路径为令牌集合T等于系统中所有用户的令牌路径的并集.$\forall f \in F$,设f 的加密密钥为kf,对应密文为${E_{{k_f}}}\{ f\} ,$其文件序列号为n.具有f访问权限的共享用户u获取文件加密密钥kf的令牌路径可写为表 20.

Table 20 Derivation path for the target key 表 20 获取目标密钥的令牌路径

其中,设:

${y_{01}} \leqslant {y_{11}} \leqslant {y_{21}} \leqslant ...{y_{(n - 2)1}} \leqslant {y_{(n - 1)1}} \leqslant {s_{n1}} \leqslant n \leqslant {s_{n2}} \leqslant {y_{(n - 1)2}} \leqslant {y_{(n - 2)2}}... \leqslant {y_{22}} \leqslant {y_{12}} \leqslant {y_{02}},$

${k_n} = {k_f}.$

表 20可知,只要hash算法和对称加密算法是安全的,敌手将不能从令牌路径中获取文件、文件顶点和中间顶点密钥、加密区间和权限区间信息.由于fF任取,令牌集合T于系统中所有用户的令牌路径的并集,因而,敌手将不能从令牌集合T中获取任何文件、文件顶点和中间顶点密钥、加密区间和权限区间信息.文件、文件顶点和中间顶点密钥、加密区间和权限区间的机密性等价于所采用的对称加密算法和hash算法的安全性.

本文假定采用的对称加密算法和hash算法是安全的.本文方案具有以下安全特性:

(1) 文件的机密性保护.在本方案中,数据拥有者需要分发给共享用户的文件均采用对称加密算法加密后再上传云端.由定理1可知,云服务器和攻击者将不能获取存储文件的明文信息,实现了有效的文件机密性保护.

(2) 细粒度的访问控制.本方案将具有相同访问用户集合的文件采用同一密钥加密,将具有不同访问用户集合的文件采用不同的密钥加密,具有合适的加密粒度.本文采用文献[9]中的方法生成密钥推导图,密钥推导图等价于访问控制策略.确保了只有属于文件访问用户集合的用户才能从公开信息中推出相应文件的解密密钥,实现了有效地细粒度访问控制.

(3) 文件权限信息的隐藏.在本方案中,由于每个文件均拥有一个不同的文件序列号,因而云服务器和攻击者将不能根据文件序列号列表,判断哪些文件具有相同的访问用户集合,实现了文件权限信息的隐藏.

(4) 访问控制策略的隐藏.在本文方案中,即使攻击者与云服务器合谋,二者所获取信息也不会多于云服务器所获取的信息.因而本方案中仅需考虑云服务器意在获取数据拥有者访问控制策略的单独攻击和云服务器与少数恶意用户的合谋攻击.

· 抗云服务器单独攻击.在本文方案中,公开信息仅包括文件序列号列表和令牌列表.由定理1可知,文件、文件顶点和中间顶点密钥、加密区间和权限区间的机密性等价于所采用的对称加密算法和hash算法的安全性,而本文假定所采用的对称加密算法和hash算法是安全的,因而云服务器除了从公开信息中获取数据拥有者的文件总数外,并不能从公开信息中获取其他任何访问控制策略的相关信息.

· 抗云服务器与少数恶意共享用户的合谋攻击.当云服务器与少数恶意用户合谋攻击时,他们仅能解密恶意用户权限范围内的文件以及相应的令牌路径集合TE.根据定理1和本文假设,云服务器与少数恶意共享用户并不能解密其他令牌集合T-TE,因而也就不能获取他们权限范围外的加密区间、权限区间和密钥信息.对于云服务器和少数恶意共享用户而言,他们仅能获取涉及恶意用户自身的访问控制策略信息.当云服务器与多数恶意共享用户合谋时,他们可以获取他们权限访问外的文件的敏感程度信息.例如,若数据拥有者拥有n个文件,多数恶意共享用户可以访问其中的n-1个文件,据此,他们可推断剩余的一个文件敏感度较高.除此之外,云服务器和多数恶意用户合谋不能获取其他访问控制策略信息,例如共享用户的数量,其他共享用户的具体访问权限.在现实应用场景中,一般只会出现较少的恶意用户,因而,本文方案假定云服务器仅与少数恶意共享用户合谋是合理的.

综上所述,本方案有效地实现了访问控制策略的隐藏.值得说明的是,本方案也面临与其他存储方案同样的问题——云服务器可以通过记录每个共享用户的存取记录,获取数据拥有者的访问控制策略,这可通过随机存取方法加以解决.

4.2 性能分析

本节首先给出本文方案的计算复杂度,并与PCSP方案进行比较;之后对两个方案的公开信息空间复杂度作分析和比较;最后,对两个方案中共享用户获取目标密钥需遍历的顶点数量和速度进行分析和比较.

(1) 计算复杂度

设系统中有N个共享用户,M个文件,密钥推导图由L个顶点和S条有向边构成.为密钥推导图添加根顶点后,得到深度优先生成树上共有X条有向边.在输入数据拥有者的访问控制策略后,本文方案和PCSP方案均采用文献[8, 9]的方法生成密钥推导图,其计算复杂度与文献[8, 9]方案相同,计算复杂度为O(NL2).此外,假定本文方案与PCSP方案均采用文献[27]中的方法获取密钥推导图的深度优先生成树,其计算复杂度为O(L+S).本文主要对得到深度优先生成树后各操作的计算复杂度进行分析.

本文方案首先为L个顶点分配加密区间,该步骤的计算复杂度为O(L).为顶点分配加密区间后,删除根顶点及根顶点指向用户顶点的有向边,并标记通过深度优先生成树上的有向边到达的顶点信息为权限区间,该步骤的计算复杂度为O(X-N).随后,标记顶点通过不在ST上的有向边或路径到达的顶点信息为权限区间,该步骤的计算复杂度为O(S-X+N).之后,为文件分配序列号,该步骤的计算复杂度为O(M).最后生成序列号列表和令牌列表的计算复杂度分别为O(M)和O(S+N).本文方案所有操作的计算复杂度为O(NL2+S+M+X).

PCSP方案首先为L+1个顶点添加顶点编号,该步骤的计算复杂度为O(X).对顶点进行编号后,标记顶点通过深度优先生成树上ST的有向边到达的顶点信息为权限区间,该步骤的计算复杂度为O(X).删除根顶点及根顶点指向用户顶点的有向边后,标记顶点通过不在ST上的有向边或路径到达的顶点信息为权限区间,该步骤的计算复杂度为O(S-X+N).随后,标记有向边的权限区间,该步骤的计算复杂度为O(S).

Table 21 Computational complexity comparison 表 21 公开信息具体操作计算复杂度比较

(1) 公开信息的空间复杂度比较

为了实现密钥分发,PCSP方案需要公布的信息是:文件解密标签列表、用户/文件标签对应编号列表和令牌列表.本文方案需要公布以下信息:文件序列号列表和令牌列表.设两个方案中的对称加密算法均采用AES算法,密钥长度为256bit.hash算法采用的是SHA-1,消息摘要长度为160bit,两个方案中的标签的位长均等于消息摘要长度.PCSP方案中的文件名、标签编号和令牌号和本文方案中的文件序列号的位长等于密钥长度.

在PCSP方案中,文件解密标签列表包含M行数据,其空间复杂度为O(M).标签编号列表包含L行数据,其空间复杂度为O(L).令牌列表包含行数据,在最坏的情况下,一个令牌中包含L/2个权限区间,每个权限区间的位长等于两个标签编号的长度,因此,令牌列表的空间复杂度为O(LS).

在本文方案中,文件序列号列表包含M行数据,其空间复杂度为O(M).令牌列表包含N+S条数据,在最坏的情况下,一个令牌中包含一个加密区间和M/2个权限区间,每个加密区间和权限区间的位长等于两个文件编号的长度,因此,令牌列表的空间复杂度为O(MS).

(2) 获取目标密钥遍历的顶点数量和密钥获取速度比较

设共享用户获取目标密钥速度的令牌路径长度为x,并假定令牌路径上各顶点均包含y个子顶点.本文假定查表运算、hash运算和解密令牌运算可在常数时间内完成.

在PCSP方案中,在最坏的情况下,共享用户需遍历xy个顶点.要解密以令牌路径上各顶点(目标文件顶点除外)为起始顶点的有向边所对应的令牌.为了获取目标密钥,共享用户需要进行(xy+2)次查表运算,xy次解密令牌运算、x次hash运算和x次异或运算,获取目标密钥的计算复杂度为O(xy).

在本文方案中,为了获取目标密钥,共享用户只需遍历x个顶点.共享用户只需进行(x+2)次查表运算,(x+1)次解密令牌运算、(x+1)次hash运算,获取目标密钥的计算复杂度为O(x).

5 相关工作

对于云存储用户而言,主要通过利用密钥分发实现对存储于云端数据的访问控制.本文按照密钥分发所采用的加密算法,将现有的云存储访问控制方案分为两大类:基于对称加密的方案和基于非对称加密的方案.

基于对称加密方案主要是选择加密.文献[8]首次将选择加密用于外存储环境的访问控制.米兰大学的研究人员在此方面做了一系列的研究工作[8, 9, 10, 14, 15].文献[14]实现了对用户读写权限的同时赋予.文献[16]提出了一种双头层结构,可实现访问控制策略的高效更新.

基于非对称加密的方案可分为单一加密策略和混合加密策略两种.单一加密策略主要包括基于属性的加密和基于代理重加密的两种.基于属性的加密(ABE)机制由Sahai和Waters在2005年的欧密会上提出[17],之后ABE发展为KP-ABE和CP-ABE两种.KP-ABE在2006年由Goyal等人提出[18],即用户私钥与访问控制结构相关联,密文与属性相关联.在该机制下,当密文属性集合满足用户的访问控制树时,用户便可以解密密文.CP-ABE在2007年由Bethencourt等人提出[19],在该机制下,用户私钥与属性相关联,密文与访问控制结构相关联,当用户私钥属性集合满足密文的访问控制树时,用户才能解密密文.匿名ABE首次由Kapadia等人[20]提出,主要是为了防止密文加密规则的泄露,用户每次解密都必须使用全部的属性私钥,不能仅选取部分私钥进行解密.文献[21]在减少匿名ABE的密文大小方面进行了研究.代理重加密的概念由Blaze等人在1998年的欧密会上提

[22].代理重加密即一个代理可以利用由Alice生成的代理重加密密钥,将由Alice公钥加密的密文直接转换为用Bob私钥可以解密的密文,且代理不能获得关于密文所对应明文的任何信息.ATENIESE等人第1次将单向代理重加密用于分布式存储系统的密钥管理[23].在该方案中,将加密文件的加密密钥用一个主公钥加密.数据拥有者根据所有拥有权限的用户的公钥,生成代理重加密密钥,并将代理重加密密钥发送给代理服务器.当用户需要相应数据时,只需向服务器发送请求,服务器将存储在其上的加密数据重加密为拥有权限用户可解密的密文.混合加密策略方案将多种加密策略结合起来用于实现访问控制.Yu等人在2010年的IEEE INFOCOM会议上提出了第1个能够同时实现细粒度、可升级和保证数据机密性的云计算数据访问控制方案[12].在该方案中,云服务器用于存储和代理重加密需要升级的加密数据,不获取任何关于明文的信息.该方案结合KP-ABE、代理重加密和延迟重加密等多种加密技术.此外,在2010年的ASIACCS会议上,Yu等人还提出了一种将CP-ABE与代理重加密结合的访问控制方案[24],该方案实现单个属性的细粒度撤销,但是效率偏低.文献[25]提出了一种将CP-ABE、盲解密和秘密共享结合的访问控制方案.文献[26]提出了一种细粒度、基于时间及时更新密文的访问控制方案.

6 总 结

云存储服务以其低成本、按需付费等特点得到了广泛的使用.在享受云存储带来的益处的同时,如何保证数据的机密性和用户隐私并实现有效地访问控制是进入云时代以来一个重要的研究课题.基于现有的研究工作,本文提出了一个新的访问控制策略隐藏机制,在保证云存储数据机密性和细粒度访问控制的前提下,有效地实现了访问控制策略的隐藏和密钥的高效分发.

参考文献
[1] http://aws.amazon.com/cn/s3/
[2] https://www.icloud.com/
[3] http://yun.baidu.com/?ref=ppzq
[4] http://www.windowsazure.cn/?fb=002
[5] http://www.ksyun.com/
[6] http://www.iimedia.cn/38351.html
[7] http://popcrush.com/apple-releases-statement-icloud-celeb-photo-hacks
[8] De Capitani di Vimercati S, Foresti S, Jajodia S, Paraboschi S, Samarati P. Over-Encryption: Management of access control evolution on outsourced data. In: Wolfgang K, ed. Proc. of the 33rd Int'l Conf. on Very Large Data Bases. Vienna: VLDB Endowment, 2007. 123-134.
[9] De Capitani di Vimercati S, Foresti S, Jajodia S, Paraboschi S, Samarati P. Encryption policies for regulating access to outsourced data. ACM Trans. on Database Systems, 2010, 35 (2) :12. [doi:10.1145/1735886.1735891]]
[10] De Capitani di Vimercati S,Foresti S, Jajodia S, Paraboschi S, Pelosi G, Samarati P. Preserving confidentiality of security policies in data outsourcing. In: AtluriV, ed. Proc. of the 7th ACM Workshop on Privacy in the Electronic Society. New York: ACM, 2008. 75-84. [doi:10.1145/1456403.1456417]
[11] Agrawal R, Borgida A, Jagadish HV. Efficient management of transitive relationships in large data and knowledge bases. In: Clifford J, ed. Proc. of the 1989 ACM SIGMOD Int'l Conf. on Management of data. New York: ACM, 1989. 253-262. [doi: 10. 1145/66926.66950]
[12] Yu SC, Wang C, Ren K, Lou WJ. Achieving secure, scalable, and fine-grained data access control in cloud computing. In: Mandyam G, ed. Piscataway: IEEE, 2010. 1-9. [doi:10.1109/INFCOM.2010.5462174]
[13] Wang Q, Wang C, Li J, Ren K, Lou WJ. Enabling public verifiability and data dynamics for storages security in cloud computing. In: Proc. of the 14th European Symp. on Research in Computer Security. Berlin, Heidelberg: Springer-Verlag, 2009. 355-370. [doi: 10.1007/978-3-642-04444-1_22]
[14] De Capitani di Vimercati S, Foresti S, Jajodia S, Livraga G, Paraboschi S, Samarati P. Enforcing dynamic write privileges in data outsourcing. Computers & Security, 2013,47-63. [doi:10.1016/j.cose.2013.01.008]
[15] Blundo C, Cimato S, De Capitani di Vimercati S, Santis AD, Foresti S, Paraboschi S, Samarati P. Managing key hierarchies for access control enforcement: Heuristic approaches. Computer & Security, 2010,29:533-547. [doi:10.1016/j.cose.2009.12.006]
[16] Jiang WY, Wang Z, Liu LM, Gao N. Towards efficient update of access control policy for cryptographic cloud storage. In: Proc. of the SeucreComm Workshop on Data Protection in Mobile and Pervasive Computing. 2014.
[17] Sahai A,Waters B. Fuzzy identity-based encryption. In: Cramer R, ed. Advances in Cryptology–EUROCRYPT 2005. Berlin, Heidelberg: Springer-Verlag, 2005. 457-473. [doi:10.1007/11426639_27]
[18] Goyal V, Pandey O, Sahai A, Waters B. Attribute-Based encryption for fine-grained access control of encrypted data. In: Juels A, ed. Proc. of the 13th ACM Conf. on Computer and Communications Security. New York: ACM, 2006. 89-98. [doi:10.1145/1180405.1180418]
[19] Bethencourt J, Sahai A, Waters B. Ciphertext-Policy attribute-based encryption. In: Shands D, ed. Proc. of the 2007 IEEE Symp. on Security and Privacy. Piscataway: IEEE, 2007. 321-334. [doi:10.1109/SP.2007.11]
[20] Kapadia A, Tsang PP, Smith SW. Attribute-Based publishing with hidden credentials and hidden policies. In: Proc. of the 14th Annual Network and Distributed System Security Symp. 2007. 179-192.
[21] Li XH, Gu D, Ren YL, Ding N, Yuan K. Efficient ciphertext-policy attribute based encryption with hidden policy. In: Yang X, ed. Proc. of the 5th Int'l Conf. Berlin, Heidelberg: Springer-Verlag, 2012. 146-159. [doi:10.1007/978-3-642-34883-9_12]
[22] Blaze M, Bleumer G, Strauss M. Divertible protocols and atomic proxy cryptography. In: Nyberg K, ed. Advances in Cryptology —EUROCRYPT'98. Berlin, Heidelberg: Springer-Verlag, 1998. 127-144. [doi:10.1007/BFb0054122]
[23] Ateniese G, Fu K, Gren M, Hohenberger S. Improved proxy re-encryption schemes with applications to secure distributed storage. ACM Trans. on Information and System Security, 2006,9(1):1-30. [doi:10.1145/1127345.1127346]
[24] Yu SC, Wang C, Ren K, Lou WJ. Attribute based data sharing with attribute revocation. In: Feng DG, ed. Proc. of the 5th ACM Symp. on Information, Computer and Communications Security. New York: ACM, 2010. 261-270. [doi:10.1145/1755688.1755720]
[25] Tang Y, Lee PPC, Lui JCS, Perlman R. Secure overlay cloud storage with access control and assured deletion. IEEE Trans. on Dependable and Secure Computing, 2012,9(6):903-916. [doi:10.1109/TDSC.2012.49]
[26] Liu Q, Wang GJ, Wu J. Time-Based proxy re-encryption scheme for secure data sharing in a cloud environment. Information Sciences, 2012,258(2014):355-370. [doi:10.1016/j.ins.2012.09.034]
[27] Weiss MA. Data Structures and Algorithm Analysis in C. Addison-Wesley, 1996.