杨小东 李 婷 麻婷春 陈桂兰 王彩芬②
①(西北师范大学计算机科学与工程学院 兰州 730070)
②(深圳技术大学大数据与互联网学院 深圳 518118)
云存储具有较高的存储效率和较低的存储成本,给个人和企业提供了便利的存储服务[1]。然而,云存储安全策略还未形成标准、规范的体系结构,导致云端数据面临隐私泄露、数据损坏等安全问题[2]。基于密文策略的属性加密方案(Ciphertext-Policy Attribute-Based Encryption, CP-ABE)[3]确保了云端数据的机密性和完整性,并且支持灵活、细粒度的访问控制,提高了云端数据的安全性。为了保护用户隐私,节省密文存储开销,国内外学者从策略隐藏、密文长度恒定等方面对CP-ABE方案进行了研究和拓展。
传统的CP-ABE方案[4,5]通常以明文的形式公布访问策略,任何获得密文的人(包括云服务提供商)都可以推断出密文的部分秘密信息,导致解密用户面临私密信息泄露的风险。为解决此问题,文献[6,7]提出了带有部分隐藏策略的CP-ABE方案,隐藏访问策略中的属性值以保护私密信息,但面临离线字典攻击的安全问题。文献[8,9]将属性分为属性名和属性值两部分,采用隐藏属性值的思想设计了支持部分策略隐藏的CP-ABE方案。尽管这些方案在某种程度上能够保护策略隐私,但存在部分属性信息泄露的问题。针对使用部分隐藏策略的CP-ABE方案引起的安全性和隐私问题,一系列可完全隐藏访问策略的CP-ABE方案[10-13]相继被提出,确保了数据的完整性和私密性。但文献[10-13]使用隐藏的访问策略加密数据,使得解密者需要执行若干配对操作来解密密文,存在计算开销较大的问题。此外,上述方案均没有考虑密文长度这一重要技术指标,都存在密文长度随属性个数正向增长的问题。
为了降低密文存储开销,Emura等人[14]提出了一种密文长度恒定的CP-ABE方案,但该方案的访问结构单一。Herranz等人[15]采用多项式重构的思想,构造了一种密文长度恒定的CP-ABE方案;Ge等人[16]提出了选择明文攻击下可证安全且密文长度恒定的CP-ABE方案。然而,文献[15,16]加密和解密涉及的配对运算较多,存在计算开销大的问题。Zhang等人[17]基于多值通配符的AND门访问策略,提出了一种密文长度恒定的CP-ABE方案,有效地提升了计算效率,但安全性较低。文献[18-21]构造了一种策略隐藏且密文长度恒定的属性加密方案,确保了用户隐私信息的安全,并且节省了密文存储开销。然而,随着云存储中加密文件数量的增多,已有的同类方案[22,23]未能同时支持云端数据的公开审计、关键词搜索,这已成为云存储中一个重要且具有挑战性的问题。
针对上述问题,本文设计了一种支持策略隐藏且密文长度恒定的可搜索属性加密方案。该方案基于可搜索加密机制,实现了密文长度的恒定。将访问策略隐藏在密文和关键词中,确保了数据的隐私性。采用数据公开审计的思想,实现了云端数据的完整性验证。相比于现有的同类方案,本文方案不仅从加密、解密和搜索3方面提升了计算效率,而且大大降低了云端数据的存储成本。通过对相关领域的文献搜索,本文方案是第1个同时具备策略隐藏、密文长度恒定、关键词搜索和公开审计的属性加密方案。
设 G1和GT分别是两个阶为素数p 的乘法循环群,其中 g 为G1的一个生成元,e:G1×G1→GT是满足以下条件的双线性映射[24]。
(2) 非退化性:e (g,g)/=1;
(3) 可计算性:对于群 G1中的任意两个元素g1,g2, 存在一个有效算法计算e (g1,g2)。
决策性q-BDHE(q -Decisional Bilinear Diffie-Hellman Exponent)问题:假设 T 为群GT中的一个随机数,给定 yg,α.q=(g1,g2,···,gq,gq+1,···,g2q,gr),其中 α,r ∈, gi=gαi,区 分(g,yg,α,q,e(gq+1,gr))和(g,yg,α,q,T)。
定义1决策性q-BDHE假设。如果攻击者在多项式时间内无法以不可忽略的优势区分元组(g,yg,α,q,e(gq+1,gr)) 和(g,yg,α,q,T) ,则 表 明G1和GT上的q-BDHE问题是困难的[20]。
定义2CDH假设。如果攻击者在多项式时间内无法以不可忽略的优势计算出 gxy,则表明G1上的CDH问题是困难的[25]。
本文方案的系统模型如图1所示,包含数据拥有者(Data Owner, DO)、云服务提供商(Cloud Service Provider, CSP)、属性权威中心(Attribute Authority Center, AAC)、访问用户(Accessing Users, AU)和第三方审计者(Third-Party Auditors,TPA)5个实体。各实体的功能介绍如下:
图1 系统模型
(1) DO:根据数据文件和关键词生成对应的关键词索引,并将数据文件和索引加密后上传至CSP。
(2) CSP:存储数据拥有者上传的密文数据,并处理访问用户的搜索请求。
(3) AAC:负责生成系统公共参数和系统中各个实体的私钥。
(4) AU:向云服务提供商发送密文的搜索请求,并解密云服务提供商返回的密文数据文件。
(5) TPA:负责验证云端数据的完整性,并将审计结果返回给数据拥有者。H0,H1,H2,H3,{Ai,j,Yi,j}1≤i≤n,1≤j≤ni,秘密保存主密钥m sk=(a,b,ai,j)。
(2) 密钥生成(K eyGen): AAC收到用户发送的属性列表 L={L1,L2,···,Lu}后,按照以下步骤生成 L对应的私钥。
(a) 随机选取 s k,α,β ∈Zp, 计算τi=(g·H3(sk))-ai,j,X =φα和 K =g(a+β)/b。对任意属性a tti, AAC随机选 择 λi∈Zp,计(算s ki,1=gβ-λi||ai,j,)得 到 私 钥SKL,即 S KL=sk,K,{τi,ski,1}1≤i≤n。
(b) 随机选取 sskF∈Zp作为任意数据文件块F(1 ≤F ≤m)的 签名私钥,通过安全信道将s skF发送给用户。计算p k=gsskF,并将p k作为公钥。
(3) 数据文件加密( E ncrypt): DO在访问策略W下对数据文件M 执行如下的加密操作。
(b) 将密文数据 CT 划分为m 块,即CT=(CT1,CT2,···,CTm)。
(c)为每个密文数据块 CTj计算标签δj=(H2(j)gCTj)sskF。
(d) 输出文件M的密文CT=(C1,C2,C3)和相应的标签δj,将其发送给CSP。
(1) 系统建立(S etup(k) ) :输入安全参数k ,令G1和GT为阶为素数p 的乘法循环群,g 为G1的生成元, e:G1×G1→GT是一个双线性映射。假定U ={att1,att2,···,attn} 为 系 统 属 性 集,Si={vi,1,vi,2,···,vi,j}表 示属性a tti的取值集合。AAC按照如下步骤生成系统参数 PP和 主密钥m sk。
(a) 选择哈希函数H0:×{0,1}log2n×{0,1}log2m→, H1:{0,1}∗→G1, H3:Zp→G1和一个带密钥 的 哈 希 函 数 Hk:{0,1}∗→Zp。 随 机 选 取a,b,c ∈Zp,计算φ =e(g,g)a,γ =gb和p k=gc。
(b) 对任意属性 atti(a tt ∈U),随机选取xi,j∈Zp, 计算ai,j=H0(a||xi,j), Ai,j=g-ai,j和 Yi,j=e(g,g)ai,j, 其中i ,j ∈(1,2,···,(n), “| |”表示连接符。
(c)公开系统参数PP=G1,GT,e,p,g,φ,γ,pk,
定理1如果q-BDHE假设成立,则没有任何多项式敌手A 能够以不可忽略的优势攻破本文方案。
证明:假设在多项式时间t内,存在一个敌手A 以不可忽略的优势εA攻破本文方案,则可以构建一个挑战者 B 以不可忽略的优势εB解决q-BDHE问题。给定q-BDHE挑战元组 (g,yg,α,q,T),其中yg,α.q=(g1,g2,···,gq,gq+1,···,g2q,gs), T ∈GT, B 和A进行如下的模拟游戏。
询问阶段2:重复询问阶段1的工作,但不能继续询问明文消息M0和M1。
定理2如果CDH假设成立,则本文提出的方案满足索引不可区分性。
询问阶段1:F 选择属性集合L={L1,L2,···,Lu}发送给C ,向 C发起如下的哈希询问和陷门询问。
(1) OH0(ai,j) 询问:C 输入属性a tti向F 发起H0询 问,C 维护初始列表LH0=[atti,a,ai,j],先在列表 LH0中查询a tti是否存在,如果存在,则将对应值返回给 C;否则,为属性a tti随机选择xi′,j∈ZP,令ai′,j=H0(a||xi′,j), 其 中a ∈ZP,并在列表LH0中添加( atti,a,ai′,j) ,将ai′,j返回给F 。
(2) OH3(sk)询 问:F 输入属性a tti向 C 发起H3询问, C维护初始列表LH3=[atti,ai,j,sk,τi],先查询sk 是 否存在于列表L3。如果存在,则C 将对应值返回给F ;否则,C 随机选取s k′∈ZP,对于每个属性atti, 随机选择xi′,j∈ZP, 计算τi=(g·H3(sk′))-ai′,j,将其添加至列表LH3并 发送给 F。
询问阶段2:重复询问阶段1,但 F 不能继续询问关键词集合k w1和k w2或 者k w1和k w2的子集。
本节从计算开销和存储开销两个方面将本文方案与支持关键词搜索的属性加密方案[20,26,27]进行比较。为便于表述,用 na表示系统中属性总个数,nω表 示包含在访问控制策略中的属性个数,nd表示解密时所需要的属性个数,ns表示搜索时所需属性个数, nk表 示密钥中的属性个数,| G1|和| GT|分别表示群 G1和 GT中的元素长度,| Zp|表 示Zp中元素长度 ,指数运算和对数运算分别用Te和Tp表示。
5.1.1 计算成本
在表1中,文献[20]的解密开销,文献[26]的加密开销、关键词搜索开销以及文献[27]的加密开销、解密开销和关键词搜索开销均与属性个数呈线性增长关系。本文方案具有密文长度恒定,加密开销、解密开销和关键词搜索开销均与属性个数无关,具有较小的计算量。因此,本文方案具有更高的计算效率。
5.1.2 存储成本
在属性加密方案中,属性权威中心承担主密钥的存储开销,数据拥有者和访问用户分别用来存储公钥和私钥,云服务提供商的存储开销主要源于密文。由表2可知,本文方案与文献[20,26,27]的属性权威中心、数据拥有者和访问用户的存储开销相当。文献[26,27]密文存储开销与访问策略中的属性个数呈正相关关系,未实现密文长度恒定。虽然文献[20]方案的密文长度恒定,但该方案将密文分为密文头和中间密文两部分,存储开销高于本文方案。因此,本文方案具有较低的存储开销。
表1 计算开销对比
以Intel(R) Core(TM) i5-2400 @ 3.10 GHz的处理器、4 GB的内存、Windows10 X64专业版的操作系统以及jpbc-2.0.0密码库为实验环境,将本文方案与已有的支持关键词搜索的属性加密方案[26,27]进行搜索开销、加密开销和解密开销比较。在相同设备条件下进行多次实验,得到图2比较结果。
图2(a)表明,在数据文件搜索阶段,文献[26,27]的搜索时间与访问策略中属性个数呈正相关关系。由于本文方案实现了关键词索引的长度恒定,所以搜索时间不会随属性个数的增加而线性增长,始终保持在0.023 s左右。因此,本文方案具有较高的搜索效率。
由图2(b)所示,当属性数量为10~30时,文献[26]和本文方案加密时间接近。随着属性数量的增加,文献[26]花费的加密时间缓慢增长;而本文方案的密文长度恒定,加密时间和属性数量无关,加密时间始终保持在0.02 s左右;文献[27]的加密开销一直高于本文方案。综上所述,本文方案具有较低的加密开销。
由图2(c)可知,访问策略中的属性数量为10时,本文方案与文献[27]的解密开销相当。但随着属性数量的增加,文献[27]的解密时间增幅较大,和属性数量呈正相关关系。本文方案中采用密文长度恒定技术,解密时间保持在0.2 s左右。因此,用户需要负担较小的解密花费。
如图2(d)所示,假设属性数量为5,本文方案与同类方案[26,27]在存储开销上相比具有明显优势。影响存储开销最关键的因素是密文的大小,所以图2显示了本文方案与文献[26,27]的密文尺寸,文献[26]和文献[27]密文大小分别为1536 bit和2432 bit,而本文方案密文长度恒定,仅需要花费384 bit来存储密文。
表2 存储开销对比
图2 计算和存储开销对比
针对现有方案面临的存储开销随属性数量正向增长、用户隐私泄露及数据可用性较低等安全性问题,本文面向云存储提出一种支持策略隐藏且密文长度恒定的可搜索属性加密方案。该方案在支持关键词搜索的前提下,实现了密文长度恒定,降低了云服务提供商的存储开销。通过对密文数据和关键词中的访问策略进行隐藏,提高了数据安全性。引入公开审计功能,确保了数据的完整性。分析结果表明:该方案在实现数据隐私性和完整性的同时,降低了云服务提供商的存储成本,提高了计算性能,在云存储环境中具有更好的应用性。然而,该方案仅满足CPA安全,下一步将对满足选择密文安全的属性加密方案进行探究。