童 潜,何 亨,聂 雷,张攀峰
1.武汉科技大学 计算机科学与技术学院,武汉 430065
2.湖北省智能信息处理与实时工业系统重点实验室,武汉 430065
3.桂林理工大学 信息科学与工程学院,广西 桂林 541004
云存储作为一种新兴的数据存储解决方案,为个人和企业的数据存储提供了一种快捷和高效的选择。随着云存储的广泛应用,而云服务商是半可信的[1],如何实现云环境中数据的隐私性和细粒度访问控制成为了一个重要的问题。由Sahai 和Waters 于2005 年所提出的属性基加密(attribute-based encryption,ABE)[2]非常适合解决上述问题。ABE可分为两种形式:密钥策略属性基加密(key-policy ABE,KP-ABE)和密文策略属性基加密(ciphertext-policy ABE,CP-ABE)。Goyal等人[3]于2006 年提出了第一个KP-ABE,在KP-ABE 中访问策略被嵌入密钥,属性集合被嵌入密文,这很适合日志加密管理和付费视频网站等,但不能保障数据分享者(data sharer,DS)对数据访问权限的绝对控制。为解决此问题,Bethencourt等人[4]于2007年提出了第一个CP-ABE,在CP-ABE中访问策略被嵌入密文,属性集合被嵌入密钥,支持DS直接控制数据的访问权限,但存在合谋攻击等安全性问题。此外,加解密时大量的复杂计算使得ABE的效率并不高。随后大量提高现有ABE安全性和效率的算法被提出,如文献[5-8]等。其中文献[6]是线性秘密分享方案(linear secret sharing scheme,LSSS)的典型,其指出访问策略可用LSSS正确表达,且在达到d-parallel BDHE 安全的前提下比树型的访问控制结构效率更高。为了防止用户密钥泄露,文献[9-12]实现了可追溯和撤销的CP-ABE。密钥分发也是一个重要的研究方向,单授权机构系统可能存在单点瓶颈和安全问题,Wu等人[13]构建了具有多授权机构的CP-ABE。虽然在一般的访问控制中都需应对合谋攻击,但在一些场景中又需要允许拥有不同属性的用户协作以获得密钥,Xue等人[14]提出了一种允许用户协同访问的ABE,其将未授权的协作视为合谋。
由于物联网和移动设备的蓬勃发展,非PC 端对数据的细粒度访问控制同样具有巨大需求,但沉重的加解密计算严重阻碍了ABE 的广泛应用。Green 等人[5]于2011年首次提出将ABE中解密的大部分计算转移到云服务器上进行,此思想适用于诚实但好奇的云环境。为了验证云服务器是否诚实地完成计算任务,文献[15-18]提出了可验证的解密计算转移方案,其中Ning等人[17]的方案还支持在某时间段内限制用户的访问次数。以上方案虽然减少了用户在解密阶段的计算开销,但用户在加密阶段的计算开销仍然很大。Ma等人[19]提出了一种加解密计算都转移至云服务器的计算转移方案,但随后被Xiong 等人[20]证明其加密计算转移并不安全。Li 等人[21]提出了半可信云环境中加解密计算转移都安全的方案。此方案使用了虚拟属性的思想,采用树型访问结构,其用户端的加解密效率较高,但云端的加解密效率并不高,且在处理访问结构具有层次关系的大量数据时计算开销依旧很大。使用层次化的思想对访问结构进行优化也是一个提高效率和节省存储开销的重要方向。Li等人[22]结合了CP-ABE和层次化的基于身份的加密(hierarchical ID-based encryption,HIBE)[23],提出了树型访问结构的层次化属性基加密方案。此方案较为实用,但对访问控制的描述不够充分且效率并不高。Wang等人[24]实现了层次化的CP-ABE,该方案组合多个数据具有层次关系的访问结构,取得了较好的效果,但加解密效率有待进一步提升。Li等人[25]在文献[24]的基础上,在效率没有明显降低的前提下对其功能进行了扩展,使得其能够更加适用于具有大量分层组织结构的机构或公司。He 等人[26]对文献[24]的访问结构进行了一定的优化,使得其加解密效率没有降低的同时私钥的生成时间有所降低,私钥存储空间也有所降低。但文献[22-26]的加解密计算全部由用户完成,并不适用于计算能力受限的设备。
总体而言,当前仍然缺少一种云环境中在云端和用户端都高效且安全,同时能够适用于计算能力受限设备的轻量级数据访问控制方案。针对现有研究存在的问题,本文的贡献如下:结合层次化和虚拟属性的思想,提出了一种云环境中层次化的轻量级访问控制方案(hierarchical lightweight access control scheme in cloud environment,HLAC)。在HLAC 中,设计了一种基于LSSS 的层次化计算转移的CP-ABE 算法(HLAC-CPABE)。该算法对具有层次关系的LSSS 访问结构进行整合优化,从而对相关的多份数据仅需加密一次,存储一份密文,然后根据属性满足访问结构的情况可以解密部分或全部密文,大幅降低了加解密运算和密文存储开销;同时引入了虚拟属性和双密钥使得大部分耗时的加解密计算工作被安全地转移至云服务器,且云端和用户端的效率都较高。HLAC 基于HLAC-CP-ABE 实现,能够对云环境中的大量密文数据高效地完成细粒度的访问控制,且用户端计算开销显著降低,与此同时,在整个执行过程中能够保证数据机密性并可以抵抗任意多个用户的串谋攻击。
设G0和G1是两个以素数p为阶的乘法循环群,g是G0的一个生成元,当映射:e:G0×G0→G1满足如下条件时,e是一个双线性映射:(1)双线性,∀a,b∈Z*p,∀u,v∈G0可得e(ua,vb)=e(u,v)ab;(2)非退化性,e(g,g)≠1;(3)可计算性,∀a,b∈Z*p,∀u,v∈G0可在多项式时间内计算出e(ua,vb)。
LSSS[6]定义如下:对于系统属性全集为U的秘密共享方案Π,若它满足以下两个条件,则它是线性的:(1)每个属性都可以用Zp(p为素数)中的一个向量表示;(2)秘密共享方案Π 中存在一个l×n的矩阵M,令Mi表示M的第i行(i=1,2,…,l),函数ρ(i)表示Mi所对应的属性。取列向量v=(s,r2,r3,…,rn)T∈Znp,其中s为被分享的秘密,r2,r3,…,rn为随机选取。由Π 可知λi=(Mv)i是s的l个子秘密。
决策性q-parallel BDHE(decisionalq-parallel bilinear Diffie-Hellman exponent)假设[5]定义如下:令G0和G1是阶为素数p,生成元为g的双线性群,同时随机选择β,s,b1,b2,…,bq∈Zp。若敌手仅获得:
对称加密主要由如下三个多项式时间函数构成:
(1)SKE.KeyGen(1k)→PT:密钥生成函数以安全参数k为输入,输出对称密钥集PT。
(2)SKE.Enc(PT,Data)→Enc-Data:对称加密函数以PT和数据明文集Data为输入,使用PT中的每个对称密钥分别加密Data中的每个明文,输出数据密文集Enc-Data。
(3)SKE.Dec(PT,Enc-Data)→Data:对称解密函数以PT和Enc-Data为输入,使用PT中的每个对称密钥分别解密Enc-Data中的每个密文,输出数据明文集Data。
HLAC涉及五个实体,分别为:授权机构(authorized agency,AA)、云存储服务器(cloud storage servers,CSS)、云计算服务器(cloud computing servers,CCS)、数据分享者(data sharer,DS)和数据请求者(data requester,DR)。
HLAC 的系统框架如图1 所示,首先,AA 执行初始化操作生成对外公开的系统公钥PK和不对外公开的系统主密钥MK;DS 生成对称密钥集PT并使用对称加密算法(如AES)加密其需要分享的数据集Data,得到数据密文集Enc-Data后将其上传至CSS保存;然后,DS 先通过HLAC-CP-ABE 算法加密对称密钥集PT得到中间密文集CTDS,再由CCS 加密得到最终密文集CT,并将CT上传至CSS保存;当DR有数据请求需要时,CCS和DR分别从AA处获得和该DR属性有关的计算转移密钥CTK和用户请求者密钥DRK,然后CCS先对从CSS 处下载的密文集CT进行HLAC-CP-ABE算法解密操作得到中间明文集PTCT,再由DR 最终解得对称密钥集PT′。根据DR 的属性,DR 可以解得部分或全部对称密钥集PT,从而可以在CCS处下载数据密文集Enc-Data后通过执行对称解密算法得到部分或全部Data。方案具体实现过程见2.3节。
HLAC 中各实体的安全性假设如下:AA 是完全可信的,AA与DR间存在安全通道用以传输密钥。AA的具体部署可以采用多AA分布式的方式,相关研究如文献[13]等,此问题不在本文讨论范围。CSS和CCS都是半可信的,这意味着云服务器会坚定不移地执行用户(用户包括DS 和DR)的请求,但可能试图获取用户数据。此外,DR 可能是不诚实的,DR 间存在串谋以试图解密不属于他们的。
2.2.1 算法思想
ABE算法对于计算能力有限的设备而言并不轻松,且计算开销会随着访问结构复杂度增加而增加,这一问题严重阻碍了ABE在移动设备上的广泛应用;此外,数据的访问结构可能存在层次关系。以电子病历为例,病历一般可分为两部分数据:具有敏感性的个人信息,如住址和电话等;不具有敏感性的病情分析与诊断等,这部分可用于医学研究。其中主治医师可以访问到所有数据,而其他医学研究人员只被允许访问到非敏感的数据。若不利用多个数据的访问结构具有层次关系这一特性,则需要对每份数据分别加密,这会产生较大的加密计算和密文存储开销。
基于上述问题,结合了层次化和虚拟属性的思想,在HLAC中设计了如图2所示的访问结构A=Apol∧Attvir,并基于A设计了HLAC-CP-ABE 算法,其中Apol为DS所定义的访问策略对应的层次化访问结构,Attvir为引入的虚拟属性,每个DR都具有一个Attvir。
Attvir不代表任何具体的属性,由本算法自动生成,且Attvir对于DR和DS而言都是透明。设DR的属性集合为S′ ,则实际参与本算法计算的属性集合S=S′⋃{Attvir}。在加密过程中,DS只需进行与虚拟属性Attvir相关的少量计算,大部分计算开销可转移至CCS。虚拟属性Attvir有关的具体操作过程见2.2.2 小节。在解密过程中,DR也只需要进行少量计算,大部分计算开销也可转移至CCS。上述过程不会造成任何数据泄露。
同时,对层次化访问结构Apol按如下方式来整合生成,如图3所示。两份数据Data_1和Data_2的树型访问结构为A-1 和A-2,A-1 和A-2 具有层次关系,在HLACCP-ABE中其被整合为Apol。DS使用Apol对Data_1和Data_2只需进行一次加密,存储一份密文。属性集合为{Psychiatrist,Researcher}的DR-1满足部分Apol,解得明文Data_1;属性集合为{Psychiatrist,Professor,Attending Doctor}的DR-2满足整个Apol,解得所有明文Data_1和Data_2;属性集合为{Psychiatrist,Associate Professor}的DR-3完全不满足Apol,故解密失败。
HLAC-CP-ABE 将原本需要用户执行的大量计算安全地转移到了CCS,并对访问结构进行优化从而显著提高了方案的整体计算效率,降低了用户的计算开销,同时密文存储开销也有所减少。
2.2.2 HLAC-CP-ABE设计
对于系统属性全集为U的HLAC-CP-ABE算法,其主要由如下六个多项式时间函数构成:
(1)Setup(1k,U)→(PK,MK):系统初始化函数以安全参数k和系统中的属性全集U为输入,输出系统公钥PK和系统主密钥MK。
(2)KeyGen(PK,MK,S)→(CTK,DRK):密钥生成函数以系统公钥PK,系统主密钥MK和用户属性集合S为输入,输出和S相关的密钥SK。SK由计算转移密钥CTK和数据请求者密钥DRK组成。
(4)Enc.CT(CTDS,PK)→CT:计算转移加密函数以DS加密函数处理得到的中间密文集CTDS和系统公钥PK为输入,输出最终密文集CT。
HLAC 具体实现过程如图4 所示,该过程包括如下9个步骤:
(1)AA执行Setup()生成系统公钥PK和系统主密钥MK(考虑到简洁性,图4 及以下过程均省略PK和MK的使用描述)。
(2)DS 通过SKE.KeyGen() 生成对称加密密钥集PT={m1,m2,…,mn}。
(3)DS将需要分享的数据集Data={Data1,Data2,…,Datan},使用PT执行SKE.Enc()加密后得到密文数据集Enc-Data={Enc-Data1,Enc-Data2,…,Enc-Datan},并将Enc-Data上传至CSS保存。
(4)DS 指定访问策略,使用计算开销较小的Enc.DS()对PT进行初次加密得到中间密文CTDS,并将其发送至CCS。
(5)CCS将CTDS经过计算转移加密Enc.CT()后得到最终密文集CT,并将CT上传至CSS保存。
(6)当DR对某个数据有访问需要时,先通过AA执行KeyGen()获得与自身属性相关的密钥SK,SK由计算转移密钥CTK和数据请求者密钥DRK组成,然后向CSS 发起数据请求,CSS 将该数据的CT发送至CCS,同时AA将相应的CTK发送至CCS。
(7)CCS 得到CT和CTK后执行计算转移解密Dec.CT()获得中间明文集PTCT,并将PTCT发送至DR。
(8)DR 使用DRK对PTCT进行计算开销极小的Dec.DR()操作后得到最终的对称密钥集PT′。若DR的属性完全不满足DS 指定的访问策略,则解密失败得PT′=⊥;若DR的属性满足DS指定的部分访问策略,则解得部分PT,即PT′={…,mj,…},j∈(1,n);若DR 的属性完全满足DS 指定的访问策略,则解得整个PT,即
PT′=PT={m1,m2,…,mn}。
(9)DR从CSS处得到相应的Enc-Data后,使用PT′执行SKE.Dec()解密获得对应的数据明文集Data′。
在HLAC 中,AA、CSS、CCS 和DR 的安全性在2.1节中已给出说明,本节通过挑战者C 与敌手A 的选择明文攻击(chosen plaintext attack,CPA)博弈游戏描述安全模型,以证实属性不满足访问控制条件的用户无法获得与明文相关的任何信息。在本节中挑战者C 为AA,敌手A 为恶意DR、CSS或CCS。
Init:敌手A 将挑战的访问策略(M*,ρ*)发送给挑战者C 。
Setup:挑战者C 执行Setup()算法,并将公共密钥PK发送给敌手A ,主密钥MK保留。
Phase 1:在该阶段,允许敌手A 向挑战者C 申请获得与属性集合Atts(Atts⊆{S1,S2,…,Sq1})相关的密钥SK={CTK,DRK}(该属性集合Atts不满足Init 阶段的访问策略),且该申请可以重复提交有限次,敌手A 每次申请后挑战者C 通过求得SK,并将其返回至敌手A。
Challenge:敌手A 提交两个等长的数据明文m0和m1,挑战者C 随机选择b∈{0,1}并使用访问策略(M*,ρ*)加密mb,最后将密文CT*返回至敌手A。
Phase 2:该阶段与Phase 1 类似,敌手A可以继续用不同的属性集合向挑战者C 发起密钥申请。
定义1 若不存在多项式时间算法以不可忽略的优势攻破上述安全模型,那么认为本文方案是选择性安全的。
本节基于2.4节给出的安全模型证明定理1。
定理1 若决策性q-Parallel BDHE 假设在群G0和G1中成立,那么不存在敌手能以大小为l*×n*(l*,n*≤q)的挑战访问策略(M*,ρ*)在多项式时间内选择性地攻破本方案。
证明 假设存在敌手A 在本文的选择性安全游戏中有不可忽略的优势AdvA=ε,那么可以构建挑战者C以不可忽略的优势AdvC解决决策性q-Parallel BDHE问题。
Init:挑 战 者C 以 挑 战 元 组(y,T) 为 输 入,T∈{e(g,g)βq+1s,R},敌手A 选择一个访问策略(M*,ρ*)。
Phase 1:挑战者C 回应敌手A 的密钥申请,其中
Phase 2:与Phase 1 类似,敌手A可继续提交密钥申请,限制条件与Phase 1相同。
Guess:敌手A 给出猜测值b′∈{0,1},若b′=b,则挑战者C 输出0,代表T=e(g,g)βq+1s;若b′≠b,则挑战者C 输出1,代表T=R,R∈G1。当T=e(g,g)βq+1s时挑战者C 可以输出一个有效的仿真,由2.4节的安全模型能得到敌手A 的优势为:
在数据存储和计算转移加解密过程中CSS 和CCS能够知晓用户的中间密文数据并可能试图解密获得明文,此外DR间可能存在串谋问题。
对于CSS:在HLAC中CSS的主要作用是存储真实数据集Data经过对称加密后的密文集Enc-Data和存储对称密钥集PT经过HLAC-CP-ABE 加密后的密文集CT。常用的对称加密算法普遍认为是安全的,从3.1 节可知HLAC 是CPA 安全的,CSS 无法从CT中得到任何有效信息,只有当DR 的属性满足DS 加密时设定的访问策略时才能解得明文集PT。
对于CCS:在HLAC中CCS的主要作用是将中间密文集CTDS二次加密Enc.CT()得到最终密文集CT以及将密文集CT初次解密Dec.CT() 得到中间明文集PTCT。CCS执行Enc.CT()时其只有CTDS和公钥PK的信息,涉及私密性的v,(r1,r2,…,rl-1)和rvir由DS随机选择;λvir和(λ1,λ2,…,λl-1) 由DS 计算;核心组件C*j,Cj,Cvir,Dvir的计算也在DS 处进行;且与虚拟属性Attvir有关的rvir和λvir不会发送给CCS,因此CCS无法根据CTDS反推出mj,j∈(1,n)。初次解密Dec.CT()时CCS 通过计算转移密钥CTK解得PTCT,若CCS 想解得明文集PT,那么必须先通过数据请求者密钥DRK求得到Φ=e(g,g)αsj然后才能由C*j/Φ解得mj,但DRK只有AA 和满足访问策略的DR 知晓且AA 是完全可信的,故只有该DR 可以解得mj,若DR 的属性完全不满足其请求数据的访问策略,则PTCT=⊥从而PT′=⊥;若满足部分访问策略则解得部分PT;若完全满足则解得完整的PT。
对于串谋攻击:若DRw与DRu想通过组合它们的属性Sw和Su伪造合法属性S,那么必须使K、L、Kvir完全一致。但KeyGen()时AA 随机选择t,δ∈Zp,对于DRw与DRu而言tw≠tu,δw≠δu,从而Kw≠Ku,Lw≠Lu,Kvirw≠Kviru;若DR 想自我计算密钥,那么必须获得主密钥MK=gα,但MK由AA 创建保管,并不对外公布,所以DR 无法自我有效计算。综上可知HLAC 可以有效防止串谋攻击。
总的计算开销由CCS 计算开销和用户计算开销组成。由表1可知当属性数量固定时,四种方案的各计算开销大多与访问结构层次数n正相关,但由于LDSS并未考虑到访问结构可能具有层次,其加解密的理论总开销大于FH、EFH 和HLAC。具体而言,随着n的增加,LDSS方案的加密总开销增量为((2|Apol|+3)EG0+EG1)Δn,其他三种方案都为(EG0+EG1)Δn。但在FH和EFH中所有的加解密操作都由用户执行,故用户设备的计算能力越弱,计算的总时间越长。当n固定时,用户承担的计算量与属性成正比,但在LDSS 和HLAC 中用户都只需执行少量计算,大部分计算都转移至CCS处进行,故即使用户设备的计算能力较弱,但总的计算时间仍然较短。以加密操作为例,LDSS和HLAC方案的DS加密开销分别为3nEG0+nEG1和(3+n)EG0+nEG1,而FH和EFH的DS 加密开销分别达到了(2|Apol|+n)EG0+(2|AT|+n)EG1和(2|Apol|+|AT|+n)EG0+(2|AT|+n)EG1,这远大于其他两种方案,且此开销随着属性数量和n的增加而增加。由表2 可知LDSS 较其他三种方案,CT存储开销存在较大差异。这是由于LDSS 未考虑到访问结构可能具有层次,访问结构每增加一层,相应的CT需要再存储一次,当属性数量固定时,LDSS比其他三种方案多O(n)次LG0的存储开销,且该存储开销增量随着属性数量的增加而增加。
表1 理论计算开销对比Table 1 Comparison of theoretical calculation cost
表2 理论存储开销对比Table 2 Comparison of theoretical storage cost
实验仿真PC 配置为Windows 10,Intel Xeon E3-1220V2 @3.1 GHz,8 GB RAM;移动端配置为Android 4.1,Qualcomm Snapdragon APQ8064 @1.5 GHz,2 GB RAM。实验算法基于Java Pairing-Based Cryptography library(JPBC-1.2.1)[27]和libfenc ABE library[28]编写,并使用基于512 位有限域上的超奇异曲线y2=x3+x的160 位Type A 椭圆曲线群,所有的实验结果为30 次实验的平均值,表3为各设备中的基础运算和存储开销。
表3 基础运算和存储开销Table 3 Cost of basic calculation and storage cost
图5为四种方案在不同情况下的加解密开销对比,图5(a)、图5(b)访问结构层次固定为2,图5(c)、图5(d)属性数量固定为30。从图5(a)可知,各方案的加解密总开销都随着属性数量的增加而增加(加密总开销为CCS 加密开销与DS 加密开销之和,解密总开销为CCS解密开销与DR 解密开销之和)。但LDSS 和HLAC 都将大部分计算转移到了CCS进行,计算能力有限的移动设备只需执行少量计算,FH 和EFH 中所有加解密计算都由移动设备执行,故随着属性数量的增长,FH和EFH的加解密总开销大幅增加,LDSS 和HLAC 加解密总开销小幅增加。此外HLAC 的访问策略基于LSSS 构建,加密时较LDSS 少了(|Apol|+1)EG0的计算开销,解密时较LDSS少了2|Apol|PG0的计算开销,故HLAC较LDSS所需加解密总时间更短。当属性数量为30时,HLAC加密总开销仅为1 342 ms,解密总开销仅为486 ms。由图5(b)可知,用户加解密时LDSS 和HLAC 方案的计算开销都不随属性数量的变化而变化,且相差不大。这是因为在LDSS和HLAC中用户加解密时都只需要执行常数次Gi(i∈{0,1})上的幂运算,但在FH 和EFH 中,所有的计算都由用户完成,故FH和EFH的用户加解密开销远大于其他两种方案。由图5(c)可知,FH、EFH和HLAC的加解密总开销随着访问结构层次的增加而小幅增加,但LDSS并未考虑访问结构具有层次的问题,访问结构层次每增加一层,CCS加密开销增加了2|Apol|EG0,CCS解密开销增加了|Apol|EG1+(2|Apol|+1)PG0,故其加解密总开销随着访问结构层次的增加而大幅增加,且在访问结构层次为6 时其加密总开销已经超过FH 和EFH,达到了10 056 ms。由图5(d)可知,随着访问结构层次的增加,LDSS 的用户加解密开销大幅增加,这是因为在LDSS 中用户需要进行冗余的计算,访问结构层次每增加一层,DS加密开销增加了3EG0+EG1,DR解密开销增加了|Ao|EG1,当访问结构层次为8 时其用户加密和解密开销分别达到了3 976 ms 和3 812 ms,而HLAC 仅为795 ms和98 ms。虽然FH、EFH和HLAC的用户加解密开销都随着访问结构层数的增加而缓慢增加,但由于HLAC 的用户只需要承担少部分计算任务,而FH 和EFH的用户承担了全部计算任务,故FH和EFH的用户加解密开销远大于HLAC。
各方案密文存储开销随属性数量和访问结构层次的变化如图6 所示,图6(a)访问结构层次固定为2,图6(b)属性数量固定为30。由图6(a)可知,各方案密文存储开销都与属性数量成正比,在LDSS中存储开销随属性数量变化的增量为4| ΔApol|LG0,其增长系数为4,而FH、EFH和HLAC的增量都为2| ΔApol|LG0,增长系数都为2,故LDSS的增幅较大,每增加5个属性,其密文增加8 KB 左右,此项数据FH、EFH 和HLAC 都仅为4 KB 左右。由图6(b)可知,各方案密文存储开销都与访问结构层次数成正比,但LDSS未考虑访问结构具有层次的问题,其需要存储冗余的密文,每增加一层访问结构,密文增加了(2|Apol|+3)LG0+LG1,达到了22.5 KB 左右,而FH、EFH和HLAC对具有层次的访问结构进行了优化,每增加一层访问结构,密文都仅增加了1 KB左右。
综上可知HLAC 的加解密开销和密文存储开销在属性数量和访问结构层次增加时都具有一定优势,并且在云端和用户端都具有较高的效率。
本文提出了一种适用于计算能力受限设备的层次化轻量级访问控制方案HLAC,HLAC 基于HLAC-CPABE实现。HLAC引入了虚拟属性和双密钥,使得用户在加密和解密阶段都只需要执行少量计算,大部分计算被安全地转移至云端执行;且HLAC对具有层次关系的多个LSSS 访问结构进行整合优化,避免了冗余的加解密计算和密文存储,更进一步提高了效率。此外,本文基于决策性q-Parallel BDHE假设对HLAC进行了选择明文攻击的安全性证明,同时机密性分析表明HLAC能够保证数据机密性并可以有效抵抗串谋攻击。最后,性能评估显示HLAC 在用户设备计算能力有限和访问结构具有层次时,云端和用户端都具有较高的计算效率,且显著降低了用户端的计算开销,同时密文存储开销也较小。因此HLAC 尤其适用于当前移动互联网环境中基于云存储的大量数据安全访问的场景。