1. 兰州理工大学 计算机与通信学院, 兰州 730050;
2. 庄浪县教育局, 庄浪 744600
收稿日期:2017-08-10
基金项目:国家自然科学基金资助项目(61562059,61461027)
作者简介:曹来成(1965-), 男, 副教授。E-mail:caolch@lut.cn
摘要:为了保护云存储环境下用户数据的隐私,该文提出一种基于属性加密(ciphertext-policy attribute based encryption,CP-ABE)的用户隐私保护云存储(user privacy-preserving cloud storage,UPCS)方案。首先,数据所有者为不同的文件设置不同的访问权限属性;其次,可信第三方使用CP-ABE方案将访问属性嵌入到密文中,只有当用户的属性满足密文的访问属性,才能解密相应密文;最后,为减少数据所有者和用户的计算时间开销,在索引生成和文件解密阶段,将部分操作授权给分布式代理服务器。结果表明:该方案可以有效地保证用户数据和关键词的隐私以及减少数据所有者和用户的计算时间开销。
关键词:可搜索加密分布式代理服务器属性基加密隐私保护云存储
User privacy-preserving cloud storage scheme on CP-ABE
CAO Laicheng1, LIU Yufei1, DONG Xiaoye2, GUO Xian1
1.School of Computer and Communication, Lanzhou University of Technology, Lanzhou 730050, China;
2.Education Bureau of Zhuanglang County, Zhuanglang 744600, China
Abstract: A ciphertext-policy attribute based encryption (CP-ABE) user privacy-preserving cloud storage (UPCS) scheme was developed to protect user privacy in cloud storage environments. The data owner sets different access right attributes on different data files. The CP-ABE scheme has the trusted third-party embed the access right attributes into a ciphertext wich can be decrypted only when the user's attributes satisfy the access attributes of the ciphertext. The computational times of the data owner and users are reduced by authorizing some data owner and user operations to a distributed proxy server. Tests show that this scheme can effectively guarantee the user data and keyword privacy and reduce the data owner and user computational times.
Key words: searchable encryptiondistributed proxy serverattribute based encryptionprivacy-preservingcloud storage
近年来云计算的快速发展[1-3],吸引着越来越多的用户将大量应用和数据部署到云平台中。但是由于云上数据脱离了用户的物理控制,非法用户可以尝试通过非法访问数据来试图获取数据所包含的信息,这将造成数据信息和用户隐私的泄露[4-6]。为了保证数据的隐私和机密性,用户选择对数据进行加密,将文件以密文形式存储在云服务器中,但是用户很难在大量密文文件中进行搜索操作。因此,可搜索加密技术已经成为近几年的研究热点。
Pitchai等[7]提出了基于数据文件共享的可搜索(searchable encrypted data file sharing, SEDFS)云存储方案,该方案在加密过程中为每个数据分配一个关键字,若关键字匹配则接受用户的搜索。Chen等[8]提出了基于辅助服务器的公钥加密关键字搜索(server-aided public key encryption with keyword search, SA-PEKS)方案,解决了用户在与云服务器数据互通时离线关键字猜测攻击问题。但是以上可搜索加密方案都是局限于单用户环境,而云存储环境下存在大量用户,数据可以被多个用户进行查询,解除关键词密文只能被唯一用户正确查询的限制,使得关键词密文可以被多个用户共享检索,提高检索效率,特别适合网络迅猛发展下的各种应用。
Curtmola等[9]和Bao等[10]提出适用于多用户环境的可搜索加密方案,方案中多个用户共享对称密钥,存在隐私泄露的风险。随后又有一些新的能支持多用户搜索的加密系统被提出[11],但是仍然无法对用户的访问权限进行管理。
为了解决用户访问权限控制的问题,研究者们发现可以采用访问控制技术对数据进行保护。文[12]利用密文策略的属性基加密技术实现了云上数据的多用户访问权限管理,通过基于属性加密(ciphertext-policy attribute-based encryption, CP-ABE)方法[13],数据所有者可以利用自定义的访问策略对用户进行管理,只有用户的属性满足访问策略的要求,用户才能对云上数据进行合法访问。但是方案并不能做到对云上密文数据进行搜索。
文[14-16]提出了一个具有访问控制的隐藏关键词可搜索加密方案,数据所有者一方面生成所有用户的搜索私钥和关键词集合的索引,另一方面要加密数据文件,数据所有者需要承受很大的计算开销。用户搜索数据文件时需自己生成关键词陷门,还需解密搜索到下载的密文,用户也需要承受很大的计算开销。本文提出一种基于属性加密的用户隐私保护云存储(user privacy-preserving cloud storage,UPCS)方案,实现了针对关键字的精确可搜索加密。数据所有者只需用Hash函数计算数据文件、关键词和多用户多属性权限控制列表的消息认证码(message authentication code, MAC),将它们上传至可信第三方。当可信第三方完成数据文件的完整性认证后,用它的强计算能力生成所有用户的搜索私钥和关键词索引,并对数据所有者的数据进行加密,以此减少数据所有者的计算开销。用户只需将查询关键词的MAC上传给某一可达代理服务器,由该代理服务器生成关键词陷门,而查询下载的密文先由代理服务器预解密,再由用户用自己的访问控制属性密钥解密。
1 UPCS方案模型UPCS方案包括5个实体,如图 1所示。
图 1 UPCS方案模型 |
图选项 |
1) 用户(user)。拥有自己的访问权限属性和与这些属性相关联的可信第三方分发的私钥,能使用私钥和关键词生成搜索陷门,向云服务器发送搜索请求。若用户访问权限属性符合访问控制要求,用户可下载所搜索的文件,并在某一可达代理服务器的帮助下对文件进行解密。
2) 数据所有者(owner)。为搜索文件设置多用户多属性权限控制列表,使用Hash函数计算数据文件、关键词和多用户多属性权限控制列表的MAC值,并上传数据文件、关键词和多用户多属性权限控制列表和其MAC值至可信第三方。
3) 可信第三方(trusted third-party, TTP)。负责系统参数和密钥的生成。验证数据所有者上传数据的完整性,生成关键词索引,对数据文件进行加密。
4) 云服务器(cloud service providers, CSPs)。提供数据存储服务,根据用户的检索请求返回相应的加密数据,但是也会在通信过程中试图窃取用户的隐私。
5) 分布式代理服务器(distributed proxy server)。帮助数据所有者生成关键词陷门,帮助用户预解密搜索文件。
2 双线性映射设p和q是素数,G0和GT分别是阶为p和q的乘法循环群,称映射e:G0×G0→GT为一个双线性对,且映射e满足下述性质:
1) 双线性。
对于任意a, b∈Zp和x, y∈G0,都有
$e\left( {{x^a},{y^b}} \right) = e{\left( {x,y} \right)^{ab}}.$ |
$e\left( {{x_1}{x_2},y} \right) = e\left( {{x_1},y} \right)e\left( {{x_2},y} \right).$ |
$e\left( {x,{y_1}{y_2}} \right) = e\left( {x,{y_1}} \right)e\left( {x,{y_2}} \right).$ |
存在x, y∈G0,使得e(x, y)≠lGT。其中lGT代表GT群的单位元。
3) 可计算性。
存在有效的多项式时间算法对任意的x, y∈G0,计算e(x, y)的值。
3 UPCS方案由于数据所有者也是用户,用{Ui|i=0, 1, 2, …, r}表示r+1个用户,其中U0为数据所有者,所有用户权限控制属性列表如表 1所示。其中用户Ui(i=0, 1, 2, …, r)有ji个属性。
表 1 用户权限控制属性列表
用户 | 权限控制属性 | |||
U0 | R01 | R02 | … | R0j0 |
U1 | R11 | R12 | … | R1j1 |
U2 | R21 | R22 | … | R2j2 |
… | … | … | … | … |
Ur | Rr1 | Rr2 | … | Rrjr |
表选项
例如,U0为数据所有者,他为上传于云中的所持有数据设置搜索属性R01为“外科医生”,说明U0为外科医生;R02设置为“维护”,即具有数据维护的权限;R03设置为“胃切开术”,即此数据为患者的胃切开术手术数据,……,R0j0设置为“2017年二季度”,即手术时间为2017年二季度;设置R11为“胃镜医生”,即U1为胃镜医生;R12设置为“胃镜检查”,即该医生为患者做过胃镜检查,……,R1j1设置为“2017年5月”,即胃镜检查时间为2017年5月份;设置R21为“外科护士”,即U2为外科护士;R22设置为“胃切开术护理”,即该外科护士为患者做过胃切开术护理,……,R2j2设置为“2017年5月”,即护理时间为2017年5月份;设置Rr1为“麻醉师”,即Ur为麻醉医生;Rr2设置为“胃切开术麻醉”,即该麻醉医生为患者做过胃切开术麻醉,……,Rrj2设置为“2017年5月”,即麻醉时间为2017年5月份。
首先可信第三方生成主密钥(master key)Kma和公开参数(public parameter)Ppu。选择群G0、大素数P,生成元g和随机元素μ, m0, m1, m2, …, mr∈ZP, 计算
$\begin{array}{*{20}{c}}{l = e{{\left( {g,g} \right)}^\mu },}\\{{M_i} = {g^{{m_i}}}.}\end{array}$ | (1) |
图 2 UPCS方案步骤 |
图选项 |
步骤1??数据所有者上传数据Do至可信第三方。
数据所有者为搜索文件设置多用户多属性访问权限控制列表(见表 1)。用TU表示多用户多属性访问权限控制列表,用F表示数据文件,用W={w1, w2, …, wn}表示关键词集合,H(x)表示Hash函数,例如SHA1和MD5。
(1) 计算消息认证码Hmac。
Hmac=H(F‖TU‖W),其中‖表示数据的级联操作。
(2) 数据所有者上传Do=F‖TU‖W‖Hmac至可信第三方。
步骤2??可信第三方利用Hmac验证数据所有者的数据(F‖TU‖W)的完整性。
步骤3??可信第三方生成用户Ui (i=0, 1, 2, …, r)的权限控制属性集RUi={Rij|i=0, 1, 2, …, r; j=1, 2, …, ji}的属性密钥KUi={kij|i=0, 1, 2, …, r; j=1, 2, …, ji}。
(1) 可信第三方随机选择a∈Zp, 计算
${a_{ij}} = \frac{{a{R_{ij}}}}{{\sum\limits_{j = 1}^{{j_i}} {{R_{ij}}} }}\;\;\;\left( {i = 0,1,2, \cdots ,r} \right).$ | (2) |
$\begin{array}{*{20}{c}}{{k_{ij}} = M_i^{{a_{ij}}}}\\{\left( {i = 0,1,2, \cdots ,r;j = 1,2, \cdots ,{j_i}} \right).}\end{array}$ | (3) |
${K_{{U_i}}} = \left\{ {{k_{ij}}\left| {{k_{ij}} = M_i^{{a_{ij}}};i,j = 0,1,2, \cdots ,r} \right.} \right\}.$ | (4) |
表 2 用户属性密钥
用户 | 属性密钥 | 属性密钥的组成 | |||
U0 | KU0 | k01 | k02 | … | k0j0 |
U1 | KU1 | k11 | k12 | … | k1j1 |
U2 | KU2 | k21 | k22 | … | k2j2 |
… | … | … | … | … | … |
Ur | KUr | kr1 | kr2 | … | krjr |
表选项
步骤4??可信第三方生成用户Ui (i=0, 1, 2, …, r)的陷门验证参数PUi。
(1) 可信第三方选择随机数π, φi, θ∈Zp,计算
$b = {g^{\mu - {\rm{ \mathsf{ π} }}}},b' = \theta ,{d_i} = {g^{{\rm{ \mathsf{ π} }}m_i^{ - 1}}},{P_{{U_i}}} = {\varphi _i}\theta .$ | (5) |
步骤5??可信第三方将用户Ui的明文数据文件F加密为密文CF,生成关键词集合W={w1, w2, …, wn }的索引I(W)。
(1) 可信第三方使用步骤3中的随机数a,计算
$\delta = {g^a},C = F{l^a}.$ | (6) |
(2) 随机选取元素ω∈Zp,计算
$X = {g^\omega },Y = e{\left( {H\left( W \right),{g^{\omega {P_{{U_i}}}}}} \right)^{1/b'}},$ | (7) |
$I\left( W \right) = \left( {X,Y} \right).$ | (8) |
步骤6??文件搜索。
(1) 用户Ui (i=0, 1, 2, …, r)生成关键词集合W={w1, w2, …, wn}的MAC值H(W)。
(2) 用户Ui发送H(W)至某一可达代理服务器。
(3) 代理服务器随机选取元素ρ∈ZP,生成W的陷门DW。
$\begin{array}{*{20}{c}}{{D_{W1}} = \rho ,{D_{W2}} = H{{\left( W \right)}^{\rho /b'}},}\\{{D_W} = \left( {{D_{W1}},{D_{W2}}} \right).}\end{array}$ | (9) |
(5) CSPs验证e(DW2, XPUi)=YDW1是否成立。若成立,CSPs发送密文CF至某一可达代理服务器,并执行式(6)。
等式成立的证明:
$\begin{array}{*{20}{c}}{e\left( {{D_{W2}},{X^{{P_{{U_i}}}}}} \right) = e\left( {H{{\left( W \right)}^{\rho /b'}},{{\left( {{g^\omega }} \right)}^{{\varphi _i}\theta }}} \right) = }\\{e{{\left( {H\left( W \right),g} \right)}^{\left( {\rho /b'} \right)\omega {\varphi _i}\theta }} = e{{\left( {H\left( W \right),g} \right)}^{\omega {\varphi _i}\theta \rho /b'}}}\end{array}$ |
$\begin{array}{*{20}{c}}{{Y^{{D_{W1}}}} = {{\left( {e{{\left( {H\left( W \right),{g^{\omega {P_{{U_i}}}}}} \right)}^{1/b'}}} \right)}^\rho } = }\\{{{\left( {e{{\left( {H\left( W \right),{g^{\omega {\varphi _i}\theta }}} \right)}^{1/b'}}} \right)}^\rho } = e{{\left( {H\left( W \right),g} \right)}^{\omega {\varphi _i}\theta \rho /b'}}.}\end{array}$ |
(6) CSPs向可信第三方请求用户Ui的di。
(7) 可信第三方直接发送di至某一可达代理服务器。
步骤7??用户Ui (i=0, 1, 2, …, r)使用他自己的属性密钥KUi解密密文C得到明文F。
(1) 代理服务器预解密密文C。
$\frac{C}{{e\left( {\delta ,b} \right)}} = {F_1}.$ | (10) |
(3) 用户Ui计算
$E = \prod\limits_{j = 1}^{{j_i}} {e\left( {{k_{ij}},{d_i}} \right)} .$ | (11) |
$\frac{{{F_1}}}{E} = F.$ | (12) |
$\sum\limits_{j = 1}^{{j_i}} {{a_{ij}}} = \sum\limits_{j = 1}^{{j_i}} {\left( {\frac{{a{R_{ij}}}}{{\sum\limits_{j = 1}^{{j_i}} {{R_{ij}}} }}} \right)} = \frac{{a\sum\limits_{j = 1}^{{j_i}} {{R_{ij}}} }}{{\sum\limits_{j = 1}^{{j_i}} {{R_{ij}}} }} = a.$ |
$\begin{array}{*{20}{c}}{E = \prod\limits_{j = 1}^{{j_i}} {e\left( {{k_{ij}},{d_i}} \right)} = \prod\limits_{j = 1}^{{j_i}} {e\left( {M_i^{{a_{ij}}},{g^{\pi m_i^{ - 1}}}} \right)} = }\\{\prod\limits_{j = 1}^{{j_i}} {e\left( {{g^{{m_i}{a_{ij}}}},{g^{\pi m_i^{ - 1}}}} \right)} = \prod\limits_{j = 1}^{{j_i}} {e{{\left( {g,g} \right)}^{{m_i}{a_{ij}}\pi m_i^{ - 1}}}} = }\\{\prod\limits_{j = 1}^{{j_i}} {e{{\left( {g,g} \right)}^{\pi {a_{ij}}}}} = e{{\left( {g,g} \right)}^{{\rm{ \mathsf{ π} }}\sum\limits_{j = 1}^{{j_i}} {{a_{ij}}} }} = e{{\left( {g,g} \right)}^{\pi a}}.}\end{array}$ |
$\begin{array}{*{20}{c}}{\frac{{{F_1}}}{E} = \frac{C}{{e\left( {\delta ,b} \right)E}} = \frac{C}{{e\left( {\delta ,b} \right)e{{\left( {g,g} \right)}^{\pi a}}}} = }\\{\frac{C}{{e\left( {{g^a},{g^{\mu - \pi }}} \right)e{{\left( {g,g} \right)}^{\pi a}}}} = \frac{C}{{e{{\left( {g,g} \right)}^{a\left( {\mu - \pi } \right)}}e{{\left( {g,g} \right)}^{\pi a}}}} = }\\{\frac{C}{{e{{\left( {g,g} \right)}^{a\left( {\mu - \pi } \right) + \pi a}}}} = \frac{C}{{e{{\left( {g,g} \right)}^{\mu a}}}} = \frac{{F{l^a}}}{{e{{\left( {g,g} \right)}^{\mu a}}}} = }\\{\frac{{F{{\left( {e{{\left( {g,g} \right)}^\mu }} \right)}^a}}}{{e{{\left( {g,g} \right)}^{\mu a}}}} = \frac{{Fe{{\left( {g,g} \right)}^{\mu a}}}}{{e{{\left( {g,g} \right)}^{\mu a}}}} = F.}\end{array}$ |
4.2 查询过程的隐私性根据UPCS方案式(1)和(2),用户Ui (i=0, 1, 2, …, r)搜索数据时,关键词索引的生成是在某一可达代理服务器的帮助下完成的,在此过程中,用户Ui首先计算关键词集合W的MAC值H(W),然后将其发送给该代理服务器,而H(W)为单向Hash函数,非授权用户和代理服务器不能从H(W)的值计算出关键词集合W。
4.3 抗合谋攻击如果非授权用户和代理服务器获得部分用户的部分属性密钥,不妨假设非授权用户和代理服务器获得用户Uz的部分属性密钥{kzz1, kzz2, …, kzzt}, 其中:z∈{0, 1, 2, …, r}, {z1, z2, …, zt}?{1, 2, …, jz}。用户Ul的部分属性密钥{kll1, kll2, …, kllv}, 其中:l∈{0, 1, 2, …, r}, {l1, l2, …, lv}?{1, 2, …, jl }。
根据式(11),因为
$\begin{array}{*{20}{c}}{\prod\limits_{j = {z_1}}^{{z_t}} {e\left( {{k_{zj}},{d_z}} \right)} = \prod\limits_{j = {z_1}}^{{z_t}} {e\left( {M_z^{{a_{zj}}},{g^{\pi m_z^{ - 1}}}} \right)} = }\\{\prod\limits_{j = {z_1}}^{{z_t}} {e\left( {{g^{{m_z}{a_{zj}}}},{g^{\pi m_z^{ - 1}}}} \right)} = \prod\limits_{j = {z_1}}^{{z_t}} {e{{\left( {g,g} \right)}^{{m_z}{a_{zj}}\pi m_z^{ - 1}}}} = }\\{\prod\limits_{j = {z_1}}^{{z_t}} {e{{\left( {g,g} \right)}^{\pi {a_{zj}}}}} = e{{\left( {g,g} \right)}^{{\rm{ \mathsf{ π} }}\sum\limits_{j = {z_1}}^{{z_t}} {{a_{zj}}} }}.}\end{array}$ |
$\prod\limits_{j = {l_1}}^{{l_v}} {e\left( {{k_{lj}},{d_l}} \right)} = e{\left( {g,g} \right)^{{\rm{ \mathsf{ π} }}\sum\limits_{j = {l_1}}^{{l_v}} {{a_{lj}}} }}.$ |
$\begin{array}{*{20}{c}}{E' = \prod\limits_{j = {z_1}}^{{z_t}} {e\left( {{k_{zj}},{d_z}} \right)} \cdots \prod\limits_{j = {l_1}}^{{l_v}} {e\left( {{k_{lj}},{d_l}} \right)} = }\\{e{{\left( {g,g} \right)}^{{\rm{ \mathsf{ π} }}\sum\limits_{j = {z_1}}^{{z_t}} {{a_{zj}}} }} \cdots e{{\left( {g,g} \right)}^{{\rm{ \mathsf{ π} }}\sum\limits_{j = {l_1}}^{{l_v}} {{a_{lj}}} }} = }\\{e{{\left( {g,g} \right)}^{\pi \left( {\sum\limits_{j = {z_1}}^{{z_t}} {{a_{zj}}} + \cdots + \sum\limits_{j = {l_1}}^{{l_v}} {{a_{lj}}} } \right)}}.}\end{array}$ |
$\sum\limits_{j = {z_1}}^{{z_t}} {{a_{zj}}} + \cdots + \sum\limits_{j = {l_1}}^{{l_v}} {{a_{lj}}} \ne a.$ |
$\begin{array}{*{20}{c}}{E' = e{{\left( {g,g} \right)}^{\pi \left( {\sum\limits_{j = {z_1}}^{{z_t}} {{a_{zj}}} + \cdots + \sum\limits_{j = {l_1}}^{{l_v}} {{a_{lj}}} } \right)}} \ne }\\{e{{\left( {g,g} \right)}^{\pi a}} = E.}\end{array}$ |
4.4 抗单点瓶颈性UPCS方案引入分布式代理服务器,克服了集中式管理会导致中心代理服务器资源紧张与响应瓶颈的缺陷,具有抗单点代理服务器瓶颈的优点。
5 方案分析与实验验证5.1 方案分析由于主要计算时间花费在Hash运算、指数运算和双线性对映射运算,设一次Hash运算的时间为Th,一次指数运算的时间为Te,一次双线性对映射的计算时间为Tb,令j0+j1+…+jt=τ。根据UPCS方案的步骤1至步骤5,关键词索引的生成、用户属性密钥的产生和数据所有者的数据的加密交由可信第三方来完成,这三阶段数据所有者的计算时间复杂度皆为Ο(0),而文[14]在这三阶段计算时间复杂度各为Ο(2Te)、Ο(τTe)和Ο(Te+Tb),文[16]在这三阶段计算时间复杂度各为Ο(3Te)、Ο(τTe)和Ο(2Te+Tb)。根据UPCS方案的步骤6至步骤7,用户搜索数据时,只需生成关键词W的MAC值H(W),而生成W的陷门DW交于某一可达代理服务器完成,因此,r个用户生成关键词陷门和解密密文的计算时间复杂度各为Ο(rTh)和Ο(rTb),而文[14]在这两阶段计算时间复杂度各为Ο(r(Th+Te))和Ο(r(j0+j1+…+jr)Tb)=Ο(rτTb),文[16]在这两阶段计算时间复杂度各为Ο((r+1)Th+rTe)和Ο(rτTb),表 3列举出了文[14]、文[16]和UPCS方案的计算性能的比较。
表 3 计算时间对比
方案 | 数据所有者的计算时间 | 用户的计算时间 | ||||
关键词索引 | 属性密钥 | 数据加密 | 关键词陷门 | 密文解密 | ||
文[14] | Ο(2Te) | Ο(τTe) | Ο(Te+Tb) | Ο(r(Th+Te)) | Ο(rτTb) | |
文[16] | Ο(3Te) | Ο(τTe) | Ο(2Te+Tb) | Ο((r+1)Th+rTe) | Ο(rτTb) | |
UPCS | Ο(0) | Ο(0) | Ο(0) | Ο(rTh) | Ο(rTb) |
表选项
文[14]中方案的总计算时间为:
$\begin{array}{*{20}{c}}{O\left( {2{T_{\rm{e}}}} \right) + O\left( {\tau {T_{\rm{e}}}} \right) + O\left( {{T_{\rm{e}}} + {T_{\rm{b}}}} \right) + }\\{O\left( {r\left( {{T_{\rm{h}}} + {T_{\rm{e}}}} \right)} \right) + O\left( {r\tau {T_{\rm{b}}}} \right) = }\\{O\left( {\left( {3 + \tau + r} \right){T_{\rm{e}}} + r{T_{\rm{h}}} + \left( {1 + r\tau } \right){T_{\rm{b}}}} \right).}\end{array}$ |
$\begin{array}{*{20}{c}}{O\left( {3{T_{\rm{e}}}} \right) + O\left( {\tau {T_{\rm{e}}}} \right) + O\left( {2{T_{\rm{e}}} + {T_{\rm{b}}}} \right) + }\\{O\left( {\left( {r + 1} \right){T_{\rm{h}}} + r{T_{\rm{e}}}} \right) + O\left( {r\tau {T_{\rm{b}}}} \right) = }\\{O\left( {\left( {5 + \tau + r} \right){T_{\rm{e}}} + \left( {r + 1} \right){T_{\rm{h}}} + \left( {1 + r\tau } \right){T_{\rm{b}}}} \right).}\end{array}$ |
$\begin{array}{*{20}{c}}{O\left( 0 \right) + O\left( 0 \right) + O\left( 0 \right) + O\left( {r{T_{\rm{h}}}} \right) + O\left( {r{T_{\rm{b}}}} \right) = }\\{O\left( {r{T_{\rm{h}}} + r{T_{\rm{b}}}} \right).}\end{array}$ |
$\begin{array}{*{20}{c}}{O\left( {r{T_{\rm{h}}} + r{T_{\rm{b}}}} \right) < O\left( {\left( {3 + \tau + r} \right){T_{\rm{e}}} + } \right.}\\{\left. {r{T_{\rm{h}}} + \left( {1 + r\tau } \right){T_{\rm{b}}}} \right),}\\{O\left( {r{T_{\rm{h}}} + r{T_{\rm{b}}}} \right) < O\left( {\left( {5 + \tau + r} \right){T_{\rm{e}}} + } \right.}\\{\left. {\left( {r + 1} \right){T_{\rm{h}}} + \left( {1 + r\tau } \right){T_{\rm{b}}}} \right).}\end{array}$ |
5.2 实验验证下面设计实验对以上分析进行验证,实验代码基于双线性对的pbc-0.4.7-vc库[17]进行编写。实验环境为Intel Xeon E312xx服务器处理器,2.60 GHz CPU主频,8 GB内存,运行Windows Server2008 R2 Enterprise操作系统。
设置方案中用户数为50,当关键词数分别为5、10、15、20、25、30时,用户的权限控制属性的平均数为5时,图 3展示了UPCS方案和文[14]及文[16]中方案的数据所有者计算时间的对比,可以看出UPCS方案的计算时间要小于文[14]及文[16]中方案的计算时间。当用户的权限控制属性的平均数分别设置为2、4、6、8、10和12,当关键词数为6时,图 4展示了UPCS方案和文[14]及文[16]中方案的用户计算时间的对比,可以看出UPCS方案的计算时间也要小于文[14]及文[16]中方案的计算时间。
图 3 数据所有者的计算时间对比 |
图选项 |
图 4 用户计算时间比较 |
图选项 |
6 结论在本文中,针对用户端计算性能不强的现状,将数据所有者的大部分操作交给具有较强计算能力的可信第三方完成,同时引入分布式代理服务器,让用户在代理服务的帮助下完成部分操作,大大缓解了用户端的计算压力,减少了时间开销,而且保护了数据文件和关键字的隐私,能抵抗合谋攻击,具有较高的执行效率。下一步工作是在本方案的基础上针对关键字的模糊搜索、关联关键字搜索等方面进行研究。
参考文献
[1] | FU Z J, REN K, SHU J G, et al. Enabling personalized search over encrypted outsourced data with efficiency improvement[J]. IEEE Transactions on Parallel and Distributed Systems, 2017, 27(9): 2546–2559. |
[2] | HUANG J Y. Patent portfolio analysis of the cloud computing industry[J]. Journal of Engineering and Technology Management, 2016, 39: 45–64. DOI:10.1016/j.jengtecman.2016.01.002 |
[3] | 崔勇, 宋健, 缪葱葱, 等. 移动云计算研究进展与趋势[J]. 计算机学报, 2017, 40(2): 273–295. CUI Y, SONG J, MIAO C C, et al. Mobile cloud computing research progress and trends[J]. Chinese Journal of Computers, 2017, 40(2): 273–295. DOI:10.11897/SP.J.1016.2017.00273(in Chinese) |
[4] | CHANG V, RAMACHANDRAN M. Towards achieving data security with the cloud computing adoption framework[J]. IEEE Transactions on Services Computing, 2016, 9(1): 138–151. DOI:10.1109/TSC.2015.2491281 |
[5] | 杨旸, 杨书略, 柯闽. 加密云数据下基于Simhash的模糊排序搜索方案[J]. 计算机学报, 2017, 40(2): 431–444. YANG Y, YANG S L, KE M. Ranked fuzzy keyword search based on Simhash over encrypted cloud data[J]. Chinese Journal of Computers, 2017, 40(2): 431–444. DOI:10.11897/SP.J.1016.2017.00431(in Chinese) |
[6] | CAO L C, HE W W, GUO X, et al. A scheme for verification on data integrity in mobile multicloud computing environment[J]. Mathematical Problems in Engineering, 2016, 2016: 9267608. |
[7] | PITCHAI R, JAYASHRI S, RAJA J. Searchable encrypted data file sharing method using public cloud service for secure storage in cloud computing[J]. Wireless Personal Communications, 2016, 90(2): 947–960. DOI:10.1007/s11277-016-3273-1 |
[8] | CHEN R M, MU Y, YANG G M, et al. Server-aided public key encryption with keyword search[J]. IEEE Transactions on Information Forensics and Security, 2016, 11(12): 2833–2842. DOI:10.1109/TIFS.2016.2599293 |
[9] | CURTMOLA R, GARAY J, KAMARA S, et al. Searchable symmetric encryption: Improved definitions and efficient constructions[C]//Proceedings of the 13th ACM Conference on Computer and Communications Security. New York, USA: Association for Computing Machinery, 2006: 79-88. |
[10] | BAO F, DENG R H, DING X H, et al. Private query on encrypted data in multi-user settings[C]//Proceedings of the 4th International Conference on Information Security Practice and Experience. Sydney, Australia: Springer Verlag, 2008: 71-85. |
[11] | LIU Q, TAN C C, WU J, et al. Cooperative private searching in clouds[J]. Journal of Parallel and Distributed Computing, 2012, 72(8): 1019–1031. DOI:10.1016/j.jpdc.2012.04.012 |
[12] | SOOKHAK M, YU F R, KHAN M K, et al. Attribute-based data access control in mobile cloud computing:Taxonomy and open issues[J]. Future Generation Computer Systems, 2017, 72: 273–287. DOI:10.1016/j.future.2016.08.018 |
[13] | RIAL A. Blind attribute-based encryption and oblivious transfer with fine-grained access control[J]. Designs, Codes and Cryptography, 2016, 81(2): 179–223. DOI:10.1007/s10623-015-0134-y |
[14] | 王光波, 王建华. 基于属性加密的云存储方案研究[J]. 电子与信息学报, 2016, 38(11): 2931–2939. WANG G B, WANG J H. Research on cloud storage scheme with attribute-based encryption[J]. Journal of Electronics & Information Technology, 2016, 38(11): 2931–2939. (in Chinese) |
[15] | SUN W H, YU S C, LOU W J, et al. Protecting your right:Verifiable attribute-based keyword search with fine-grained owner-enforced search authorization in the cloud[J]. IEEE Transactions on Parallel and Distributed Systems, 2016, 27(4): 1187–1198. DOI:10.1109/TPDS.2014.2355202 |
[16] | WANG S P, ZHANG X X, ZHANG Y L. Efficiently multi-user searchable encryption scheme with attribute revocation and grant for cloud storage[J]. PLoS One, 2016, 11(11): e0167157. DOI:10.1371/journal.pone.0167157 |
[17] | CHENG M. The pairing-based cryptography library[CP/OL]. [2017-08-10]. https://crypto.stanford.edu/pbc/download.html. |