«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (11): 181-186, 193  DOI: 10.19678/j.issn.1000-3428.0056432
0

引用本文  

曹素珍, 杜霞玲, 杨小东, 等. 可验证混合存储属性基多关键字密文检索方案[J]. 计算机工程, 2020, 46(11), 181-186, 193. DOI: 10.19678/j.issn.1000-3428.0056432.
CAO Suzhen, DU Xialing, YANG Xiaodong, et al. Attribute-Based Multi-Keyword Ciphertext Retrieval Scheme Using Verifiable Hybrid Storage[J]. Computer Engineering, 2020, 46(11), 181-186, 193. DOI: 10.19678/j.issn.1000-3428.0056432.

基金项目

国家自然科学基金(61562077, 61662071, 61662069)

作者简介

曹素珍(1976-), 女, 副教授, 主研方向为公钥密码学、软件安全;
杜霞玲, 硕士研究生;
杨小东, 副教授、博士;
刘雪艳, 副教授;
汪锐, 硕士研究生

文章历史

收稿日期:2019-10-28
修回日期:2019-12-20
可验证混合存储属性基多关键字密文检索方案
曹素珍a , 杜霞玲a , 杨小东a , 刘雪艳b , 汪锐a     
a. 西北师范大学 计算机科学与工程学院, 兰州 730070;
b. 西北师范大学 数学与统计学院, 兰州 730070
摘要:属性基可搜索加密技术能同时满足细粒度访问控制和密文数据的检索需求。利用区块链防篡改、去中心化等优势,提出一种混合存储属性基多关键字密文检索方案。采用公钥密码算法对属性钥加密,确保分配给用户的属性钥可在公开信道安全传输,运用用户版本号与用户属性钥的生成绑定方式实现用户撤销功能,以防止用户对数据的越权访问。结合区块链的技术优势,将密文索引和密文数据分别存储于区块链和云服务器,实现对搜索结果正确性的验证和数据隐私性的保护。在随机预言模型下基于HDH、MDDH及CDH等困难性问题的仿真结果证明了该方案的安全性和高效性。
关键词属性基加密    区块链    多关键字    用户撤销    公开信道    
Attribute-Based Multi-Keyword Ciphertext Retrieval Scheme Using Verifiable Hybrid Storage
CAO Suzhena , DU Xialinga , YANG Xiaodonga , LIU Xueyanb , WANG Ruia     
a. School of Computer Science and Engineering, Northwest Normal University, Lanzhou 730070, China;
b. College of Mathematics and Statistics, Northwest Normal University, Lanzhou 730070, China
Abstract: Attribute-based searchable encryption technology can simultaneously meet the requirements of fine-grained access control and ciphertext data retrieval.This paper proposes a multi-keyword ciphertext retrieval scheme based on hybrid storage attributes using the anti-tampering and de-centralization features of blockchain.The scheme uses a public key encryption algorithm to encrypt the attribute key, ensuring that the attribute key assigned to the user can be securely transmitted on the public channel.The user revocation function is implemented by binding the user version number to the generation of the user attribute key to prevent the user from having unauthorized access to the data.Combining the technical advantages of blockchain, the ciphertext index and the ciphertext data are respectively stored in the blockchain and the cloud server to realize the verification of the correctness of the search results and the protection of data privacy.Simulation results based on difficult problems such as HDH, MDDH and CDH under the random prediction model prove the safety and efficiency of the scheme.
Key words: attribute-based encryption    blockchain    multi-keyword    user revocation    public channel    
0 概述

2000年, SONG等人[1]给出可搜索加密的概念, 即加密方建立关键字安全索引并与数据密文存储到云服务器平台, 用户可通过陷门查询包含关键字的密文数据, 实现对密文数据的直接操作, 但采用对称密钥加密数据, 需专门的安全信道传输对称密钥。文献[2]改进了SONG等人的工作, 采用解密方的公钥加密数据, 无需专门的安全信道传输密钥。文献[3]在云环境下提出了支持多服务器多关键字的可搜索加密方案, 多个服务器共同配合用户一次性提交的多个关键字搜索请求, 提高了密文检索的效率。文献[4]提出了支持搜索结果验证的公钥可搜索加密方案, 虽然该方案指出满足多用户请求的云存储环境, 但公钥密码体制中每一对公私钥是对应的, 公钥加密的数据仅由其对应的私钥才可解密, 无法真正实现多用户间的数据共享。

2005年, SAHAI等人[5]给出了基于属性的加密方案,加密者用属性定义访问控制策略, 并在密文中嵌入该策略,只有属性满足访问控制策略的用户, 方可获得相应的数据, 开启了研究多用户数据共享的新研究领域。文献[6]结合属性加密技术与可搜索技术, 构造了基于属性的可搜索加密方案。文献[7-8]提出了可验证的属性基单关键字可搜索加密方案, 但都无法抵抗关键字猜测攻击。文献[9-10]提出了能够有效抵抗关键字猜测攻击的属性基可搜索方案, 但该方案未对检索结果进行验证。近年来, 新的支持可验证的多关键字搜索的属性基可搜索加密方案相继被提出[11-12], 但均未考虑属性钥失效的非法用户越权访问的问题。文献[13]提出了支持属性撤销的可搜索加密方案, 但该方案计算开销过大。文献[14]提出了密文策略的属性撤销可搜索加密方案, 但该方案的搜索时间与属性个数线性正相关。文献[15]在文献[13]的基础上改进了文献[14]的不足, 但该方案需要完全可信的第三方验证搜索结果的正确性。

鉴于区块链技术具有防篡改、公开验证、去中心化等特点[16]。文献[17]提出了基于区块链的单关键字可搜索加密方案。文献[18-19]基于区块链构造了可搜索加密方案, 但均不支持细粒度的用户访问。

本文提出一种混合存储属性基多关键字密文检索方案。通过将关键字索引与数据密文分别存储到区块链和云服务器上, 使数据检索空间缩小, 易于快速地在海量数据中查找所需数据,密钥加密后, 即可在公开信道传输。在此基础上,通过属性版本号撤销用户, 以防止属性变化身份失效的非法用户继续访问数据。

1 预备知识 1.1 符号说明

符号含义说明如表 1所示。

下载CSV 表 1 符号含义说明 Table 1 Description of symbol meaning
1.2 双线性映射

G1GT分别是两个阶为素数p的乘法循环群, 其中, gG1的一个生成元, 则双线性映射e:G1×G1GT满足以下3个性质:

1) 双线性:对于任意的a, b$\mathbb{Z}$p*, 有e(ga, gb)=e(g, g)ab

2) 非退化性:e(g, g)≠1。

3) 可计算性:对于群G1中的任意两个元素g1g2, 存在有效算法计算e(g1, g2)。

1.3 与门访问结构

在属性基密码体制中, 与门访问控制策略通常被定义为用户属性与访问控制结构之间的关联关系, 具体描述为:全局属性集合U={x1, x2, …, xn}, 访问控制结构At={At=1, At2, …, Atn}, 当且仅当xi=Ati, i∈[1, n]时, 称属性满足访问控制结构。

1.4 安全性理论假设

本文方案的安全性基于HDH问题、MDDH问题和CDH问题, 具体定义如下:

定义1(HDH问题)[20]  设G是阶为素数p, 生成元为g的循环群, H:G→{0, 1}l是一个哈希函数, 则G上的HDH问题指对于任意的a, b$\mathbb{Z}$P*, 给定参数H和(g, ga, gb, Z)∈(G)3×{0, 1}l, 判断Z=H(gab)是困难的, 其中l为哈希函数H输出的二进制长度。

定义2(MDDH问题)[21]  设G1GT是阶为素数p的乘法循环群, g是群的G1生成元。对于任意的a, b, c$\mathbb{Z}$P*, 给定(g, ga, e(g, g)b, e(g, g)ab, e(g, g)c)∈(G1)2×(GT)3, 判断e(g, g)ab=e(g, g)c是困难的。

定义3(CDH问题)[22]  设G是阶为素数p的乘法循环群, g是群的G生成元。对于任意的a, b, c$\mathbb{Z}$P*, 给定(g, ga, gb, gc)∈(G)4, 计算gabcG是困难的。

2 基本方案

本文方案包含的实体主要有以下5个部分:

1) 数据属主:用对称密钥加密文档, 并上传到云服务器, 提取关键字生成索引, 并上传到区块链。

2) 云服务器:只存储文档密文。

3) 授权机构:生成系统公共参数和主密钥。

4) 区块链:存储关键字索引信息, 生成下载数据令牌。

5) 数据用户:生成陷门值, 解密相应文件。其中, 云服务器是诚实但好奇的; 区块链是完全可信的存储设备, 方案中仅用于存储关键字索引。

具体的系统模型如图 1所示。

Download:
图 1 本文系统模型 Fig. 1 Model of the proposed system
3 具体方案

本文具体方案如下:

1) Setup(λ)→(GP, msk):授权机构执行, 输入安全参数λ。输出双线性映射参数(G, G, e, p, g), 其中, 素数p为乘法循环群GGT的阶, g为群G的生成元, e:G1×G1GT是双线性映射。定义哈希函数H0:{0, 1}λ$\mathbb{Z}$P*, H1:{0, 1}λ$\mathbb{Z}$P*, H2:G→{0, 1}λ, H3:{0, 1}2λ$\mathbb{Z}$P*, H4:GT→{0, 1}λ, H5:{0, 1}λ→{0, 1}λ, H6:{0, 1}*G。对于身份为IDui, 1≤im的用户, 其属性集Atts=(a1, a2, …, an)中的每一个1≤ain, 随机选取β$\mathbb{Z}$P*, 计算Ti=gβH0(ai)。随机选取φ$\mathbb{Z}$P*, 计算φ=e(g, g)φ。保密系统主密钥msk= < β, φ, ti, …, tn>。公开系统公共参数GP= < G, GT, e, p, g, gβ, φ, T1, …, Tn, H0, H1, H2, H3, H4, H5>。

2) KeyGen(msk, Atts, IDu)→(sk, rk):授权机构执行, 输入系统主密钥msk、用户属性集Atts及用户身份集IDu。对每一个属性ai∈Atts, 随机选取ri$\mathbb{Z}$P*, 令$r=\sum\limits_{i=1}^{n}{{{r}_{i}}}$, 计算K=gφ-r, Li=gri/βH0(ai)。对身份为IDui的用户, 随机选取v$\mathbb{Z}$P*, 计算FIDui=gvH1(IDui), F′=gv, F″i=LiH1(gvH1(IDui))。将属性密钥sk= < K, {Li}, F′, F″i>发送给用户; 将用户身份信息rk= < F′, {FIDi}>广播到区块链。

3) Enc(GP, D, IDd)→CT:数据属主执行, 输入文档集D=(d1, d2, …, dN)、文档标识符集IDd=(IDd1, IDd2, …, IDdN)、系统公共参数GP。首先, 对每一个文档di, i∈[1, N]用对称加密算法Enc(·)和对称密钥k加密, 即Ci=Enck(di)⊕H5(IDdi)。其次, 随机选取μ∈{0, 1}λ, 计算π=H2(μk), $\tilde C$1=gπ, $\tilde C$2=μH3(φπ), $\tilde C$3=kH4(μ), $\bar C = {\left( {\prod\limits_{i = 1}^n {{T_i}} } \right)^\pi }$。最后, 输出授权密文集CT=(At, {Ci}, $\tilde C$1, $\tilde C$2, $\tilde C$3, C), 并将其存储到云服务上。

4) Index(GP, IDd, W)→(InW):数据属主执行。随机选取s$\mathbb{Z}$P*, 计算δ=gs。若文档di, i∈[1, N]包含关键字(w1, w2, …, wm), 则令δj=gβsH5(wj), j∈[1, m]; 否则令δj=1。计算Ii=H5(IDdi), 令I=(Ii, …, IN), 计算R=H6($\tilde C$1$\tilde C$2$\tilde C$3C1‖, …, ‖CNC)π, 将索引信息InW=(δ, δj, I, R)广播到区块链上。

5) Trapdoor(W ′, sk)→Tk:用户执行, 输入属性钥sk及搜索关键字集W′。随机选择z$\mathbb{Z}$P*, 计算${\rm{t}}{{\rm{k}}_1} = \prod\limits_{i = 1}^\tau {{g^{az{H_5}\left( {{{w'}_i}} \right)}}} $, tk2=gz, K′=Kz, L′i=Liz, F′IDui=FIDuiz, 输出搜索陷门Tk=(tk1, tk2, K′, L′i, F′IDi)。

6) Search(InW, Tk)→I:区块链上的搜索者执行, 输入搜索陷门Tk和索引InW。首先, 搜索者通过式(1)检验陷门中用户身份与索引中用户身份是否相同; 然后, 通过式(2)检验陷门中关键字与索引中关键字是否相同; 若式(1)和式(2)同时成立, 则将I=(I1, I2, …, IN)返回给用户; 否则输出⊥。

$ e\left( {{F_{{\rm{ID}}{u_i}}}, {\rm{t}}{{\rm{k}}_2}} \right){\rm{ = }}e\left( {{{F'}_{{\rm{ID}}{u_i}}}, g} \right) $ (1)
$ e\left( {\prod\limits_{i = 1}^\tau {{g^{\beta z{H_5}\left( {{{w'}_i}} \right)}}} , {g^s}} \right) = e\left( {\prod\limits_{i = 1}^\tau {{g^{\beta s{H_5}\left( {{w_j}} \right)}}} , {g^z}} \right) $ (2)

7) Dow(GP, I)→CT:云服务执行。输入公共参数GP、索引I。云服务器计算式Enck(di)=CiH5(IDdi),并将所得结果Enck(di)返回给用户。

8) Verify(R, CT):用户输入CT和R, 计算式(3)验证搜索结果的正确性, 若等式成立转入步骤(9);否则, 输出⊥。

$ e\left( {{{\tilde C}_1}, {H_6}\left( {{{\tilde C}_1}\left\| {{{\tilde C}_2}} \right\|{{\tilde C}_3}\left\| {{C_i}} \right\|\bar C} \right)} \right) = e\left( {g, R} \right) $ (3)

9) Dec(CT)→(D):用户执行, 输入搜索密文Enck(di), 用户属性钥sk。首先, 身份为IDui用户通过计算H1(F′H1(IDui)), 恢复出Li=F″H1(F′H1(IDui))。若用户的属性满足访问结构, 则可通过式(4)计算得到E, 进而通过式(5)和式(6)计算得到对称密钥k, 解密出原始密文; 否则终止算法。

$ E = e\left( {{{\tilde C}_1}, K'} \right) \cdot e\left( {\prod\limits_{i = 1}^n {{L_i}, \bar C} } \right) = e{\left( {g, g} \right)^{\pi \varphi }} $ (4)
$ \mu = {\tilde C_1} \oplus {H_2}\left( E \right) $ (5)
$ k = {\tilde C_2} \oplus {H_3}\left( \mu \right) $ (6)

10) Rev(V):授权机构检测到用户属性改变时, 会更新用户版本号信息(i, v′, F′IDui), 并向全网广播。用旧版本号信息(i, v, FIDui)生成的私钥, 无法计算有效的私钥组件F″=bH1(gvH1(IDui)), 从而实现用户撤销。

4 安全性分析 4.1 抗用户合谋攻击

在用户的私钥中同时嵌入用户属性和用户版本号。因版本号的不同, 即使拥有相同属性集合的用户, 他们的私钥也不会相同。用户间私钥合谋生成搜索陷门, 该陷门也无法通过区块链上搜索者的验证, 用户间合谋也得不到额外信息, 本文方案满足抗用户间的合谋攻击。

4.2 私钥传输

定理1  若HDH问题是困难的, 则本文方案私钥的传输无需安全信道。

证明  根据HDH问题的定义:已知gvgH1(IDui), 在vH1(IDui)未知的前提下, 判断H1(gvH1(IDui))是否为群G中的元素是困难的。进而, 求解私钥组件Li=sk2H1(gvH1(IDui))是困难的, 因此私钥的传输无需安全信道。

4.3 对称密钥安全性

文档上传云服务器前, 先用传统的对称算法加密, 再用属性加密算法加密对称密钥。本文方案基于MDDH问题确保对称密钥的安全性。

定理2  若MDDH问题是困难的, 则本文方案在随机预言模型下对称密钥是安全的。

证明  挑战者B输入MDDH问题的实例(g, gπ, e(g, g)φ, Z)和群参数(g, p, e, G, GT), 目标是计算Z=e(g, g)πφ挑战者B和敌手A进行如下游戏模拟:

初始化:A提交挑战访问结构A*=ΛiIW*Ai给挑战者B, 运行系统建立算法, 将公共参数GP= < e, p, g, gβ, φ, T1, T2, …, Tn, H0, H1, H2, H3, G, GT>返回给A

1) H0询问:B维护一个初始为空的列表L0= < ai, h0>。AB请求属性ai的哈希H0值。B查询L0表。若aiL0, B将相应的hi=H0(ai)返回给A; 否则, B随机选取ci$\mathbb{Z}$P*, 计算h0=ci, 并将(ai, ci)该属性添加到L0

2) H1询问:B维护一个初始为空的列表L1= < IDui, h1>。AB请求身份IDui的哈希H1值。B查询L1表。若IDuiL1, B将相应的hi=H0(IDui)返回给A; 否则, B随机选取ci$\mathbb{Z}$P*, 令h1=ci, 并将(IDui, ci)添加到L1中, 然后发送h1给敌手A

3) H2询问:B维护一个初始为空的列表L2= < R2, h2>。AB询问R2∈{0, 1}2λH2值, B首先查找R2是否在表L2中, 若是, 则将相应的h2值返回给A; 否则随机选取d2$\mathbb{Z}$P*, 令h2=d2, 并添加到表L2中, 然后发送h2A

4) H3询问:B维护一个初始为空的列表L3= < R3, h3>。AB询问R3GTH3值, B首先查找R3是否在表L3中。若是, 则将相应的h3值返回给A; 否则随机选取d3∈{0, 1}λ, 令h3=d3, 并添加到表L3中, 然后发送h3A

5) H4询问:B维护一个初始为空的列表L4= < R4, h4>。AB询问R4∈{0, 1}λH4值, B首先查找R4是否在表L4中。若是, 则将对应的h4值返回A; 否则随机选取d4∈{0, 1}λ, 令h4=d4, 并添加到列表L4中, 然后返回h4A

询问阶段1:

1) 密钥询问:敌手A提交一个不满足挑战访问结构At*的属性集Atts给挑战者B, 对每一个属性ai∈Atts, B随机选取r′i$\mathbb{Z}$P*, 令$, 计算K*=gφ-r′, L*i=gr′i/βH0(ai)。对挑战身份IDu*, 随机选取v′$\mathbb{Z}$P*, 计算FIDui=gv′H1(IDu*), F′=gv, F″i=LiH1(gv′H0(IDu*), 将私钥sk*= < K*, {Li*}, {FIDui}, F′, F″i>发送给A

2) 解密询问:敌手A做访问结构At*下的解密询问, B应答如下:

(1) 若A的属性Atts满足访问结构At*, B以⊥应答; 否则, 转到步骤(2)。

(2) B从列表L2L3L4中, 分别选取 < R2, h2>、< R3, h3>及 < R4, h4>, 且同时满足R2=μk, $\tilde{C}$2=μh3, R3=φh2, $\tilde{C}$3=kh4R4=μ。若不满足, 则输出⊥; 否则输出π

3) 挑战:A提交对称密钥kB, B计算$\tilde{C}$2=μH3(Z), $\tilde{C}$3=kbH4(μ), $\bar{C}={{\left( \prod\limits_{i=1}^{n}{{{T}_{i}}} \right)}^{\pi }}$, $\tilde{C}$1=gπ, 其中, b∈{0, 1}, μ∈{0, 1}λ

询问阶段2:敌手A可以重复进行阶段1的询问。

猜测:A输出关于b的猜测b′∈{0, 1}, 若b=b′, 则B能判断出e(g, g)πφ=Z; 否则e(g, g)πφZ

证毕。

4.4 陷门的不可区分性

定理3  若CDH假设成立, 则本文方案满足陷门的不可区分性。

证明  假设存在一个多项式时间敌手A能够以不可忽略的优势εA攻破本文方案, 则挑战者B可以利用A以不可忽略的优势εB解决CDH问题。

初始化:AB提交要挑战的访问策略A*=ΛiIW*Ai, 其中IW*表示属性下标, 即属性索引值。

建立阶段:挑战者B运行系统建立算法, 输出公共参数GP。挑战者B通过抛掷硬币游戏选择ξ∈{0, 1}, 如果ξ=1, 则T=gabc; 否则, T为群G中的一个随机值。

询问阶段1:

敌手A选择任意属性集Atts*和身份IDu*, 进行密钥和陷门询问:

1) 密钥询问:B对于不满足挑战访问结构At*的属性ai∈Atts, 随机选取ri$\mathbb{Z}$P*, 令$r=\sum\limits_{i=1}^{n}{{{r}_{i}}}$, 计算K=gφ-r, Li=gri/βH0(ai)。对于挑战身份IDu*, 随机选取v′$\mathbb{Z}$P*, 计算FIDui=gv′H1(IDu*), F′=gv′, F″i=LiH1(gv′H0(IDu*), 将私钥sk*= < K, {Li}, {FIDui}, F′, F″i>发送给A

2) 陷门查询:当A询问关键字ωi, 1≤im的陷门时, B随机选择z′$\mathbb{Z}$P*, 计算tk1=$\prod\limits_{i=1}^{\tau }{{{g}^{a{z}'{{H}_{5}}\left( {{\omega }_{i}} \right)}}}$, tk2=gz′, K′=Kz′, L′i=Liz′, F′IDi=FIDiz′, 并将陷门Tωi= < tk1, tk2, K′, L′i, FIDui>发送给敌手A

3) 挑战阶段:敌手A向挑战者B提交长度相同的关键词(ω0, ω1), 挑战者B随机选择s′$\mathbb{Z}$p, 计算δ=gs′, δb=gβs′H5(wb), b∈[0, 1], Ii, 0=IDdi, 0b, Ii, 1=IDdi, 1b, 将关键字密文InW= < δ, δb, I1, I2>发送给敌手A

询问阶段2:敌手A可以重复进行阶段1的询问。

猜测:敌手A输出ξξ′∈{0, 1}的猜测。当ξ=ξ′时, 挑战者B输出1, 表示T=gabc; 否则输出0, 表示TG中的随机值, 挑战者解决困难问题的概率计算如下:

1) 当输出为1时, 表明敌手A得到关键字 < ω0, ω1>的有效密文。此时, 敌手A的优势为:εA=Pr[ξ′=ξ|T=gabc]=ε+1/2。

2) 当输出为0时, 表明T是群G中的一个随机值。此时, 敌手A的优势为:εA=Pr[ξ′=ξ|TGT]=1/2。

根据步骤1)和步骤2)得出挑战者B的优势为:

$ {{\varepsilon }_{B}}=\frac{1}{2}\Pr \left[ {\xi }'=\xi |T={{g}^{abc}} \right]+\frac{1}{2}\Pr \left[ {\xi }'=\xi |T\in G \right]-\frac{1}{2}=\frac{\varepsilon }{2} $

因此, 挑战者B能够以不可忽略的优势ε/2解决CDH问题。

5 性能分析

为更全面地阐述本文方案的性能, 从功能特性、计算开销以及实验仿真等方面对比分析本文方案与具有代表性的支持属性撤销可搜索加密[13-15]方案的优劣势。

5.1 功能特征对比

表 2可以看出, 相比于文献[13-15]方案, 本文方案在支持用户撤销的基础上, 加密了用户属性私钥, 可使其在公开信道传输; 同时, 将索引和密文分开存储, 易于提高检索效率。另外, 相比于文献[13]方案, 本文方案支持多个关键字同时检索, 易于快速检索所需数据。其中, √为支持, ×为不支持。

下载CSV 表 2 功能特征对比 Table 2 Comparison of functional feature
5.2 计算开销对比

通过理论数值分析, 对比本文方案与文献[13-15]方案。假设关键字个数对计算开销的影响相同, 仅考虑耗时长的指数运算和对数运算, 忽略哈希运算和异或运算, 对比结果如表 3所示。其中:|U|代表全局属性个数; |S|代表用户属性个数; |R|代表满足搜索要求的密文文件数; E代表群G上的指数运算; ET代表群GT上的指数运算; P代表对数运算。

下载CSV 表 3 计算开销对比 Table 3 Comparison of calculation overhead

表 3中系统建立、密钥生成、加密、陷门生成、搜索等开销可以看出, 本文方案和文献[15]方案均优于文献[13-14]方案; 另外, 本文方案的解密计算开销远远低于文献[14]方案, 为恒定值。与文献[15]方案相比, 本文方案系统建立开销与用户个数线性相关, 但本文方案的密钥生成、加密及陷门生成开销低于文献[15]方案, 搜索开销高于文献[15]方案, 但也为恒定值。

5.3 实验仿真

实验环境为:Intel CoreTM i5-2400 @ 3.10 GHz的处理器、4 GB的内存、Windows10 x64的操作系统, 调用jpbc-2.0.0库。设定关键字空间大小为1 000, 用户属性个数取10、20、30、40、50、60。数值模拟对比本文方案与文献[13-15]的加密和搜索阶段的时间开销。实验结果如图 2图 3所示。

Download:
图 2 加密时间与属性个数的关系 Fig. 2 Relationship of encryption time and attributes number
Download:
图 3 搜索时间与属性个数的关系 Fig. 3 Relationship of search time and attributes number

图 2可以看出, 文献[13-15]方案的加密时间开销, 随着属性个数的增加线性增长,而本文方案加密阶段采用耗时少的哈希函数运算、异或运算, 并对用户属性进行聚合, 使得加密时间恒定, 与属性个数无关。从图 3可以看出, 文献[13-14]方案的搜索时间与属性个数正相关, 而本文方案和文献[15]方案的搜索时间恒定, 与理论分析结果保持一致。

6 结束语

云服务器在属性基可搜索加密方案中执行关键字搜索、用户撤销等操作时, 存在搜索效率低、用户隐私泄露等问题。本文通过引入区块链技术, 将属性可搜索加密中的索引与密文文档分开存储, 同时对密钥进行加密, 使其在公开信道传输。此外, 在密钥中同时嵌入用户版本号和用户属性, 及时撤销由属性变化引起用户身份失效的非法用户, 防止隐私泄露。效率分析结果表明, 该方案搜索时间与属性个数无关。下一步将在区块链环境下, 通过隐藏访问策略实现属性基可验证的多关键字密文搜索。

参考文献
[1]
SONG D X, WAGNER D, PERRIG A.Practical techniques for searches on encrypted data[C]//Proceedings of 2000 IEEE Symposium on Security and Privacy.Berkeley, USA: [s.n.], 2000: 44-55.
[2]
DAN B, CRESCENZO G D, OSTROVSKY R, et al.Public key encryption with keyword search[C]//Proceedings of International Conference on Theory and Applications of Cryptographic Techniques.Berlin, Germany: Springer, 2004: 506-522.
[3]
HUANG Haiping, DU Jianpeng, DAI Hua, et al. Multi-sever multi-keyword searchable encryption scheme based on cloud storage[J]. Journal of Electronics and Information Technology, 2017, 39(2): 389-396. (in Chinese)
黄海平, 杜建澎, 戴华, 等. 一种基于云存储的多服务器多关键词可搜索加密方案[J]. 电子与信息学报, 2017, 39(2): 389-396.
[4]
MIAO Yinbin, MA Jianfeng. VKSE-MO:verifiable keyword search over encrypted data in multiowner settings[J]. SCIENCE CHINA Information Sciences, 2017, 60(12): 108-202.
[5]
SAHAI A, WATERS B.Fuzzy identity-based encryption[C]//Proceedings of International Conference on Theory and Applications of Cryptographic Techniques.Berlin, Germany: Springer, 2005: 457-473.
[6]
KAUSHIK K, VARADHARAJAN V.Multi-user attribute based searchable encryption[C]//Proceedings of the 14th IEEE International Conference on Mobile Data Management.Washington D.C., USA: IEEE Press, 2013: 200-207.
[7]
ZHENG Q J, XU S H, ATENIESE G.VABKS: verifiable attribute-based keyword search over outsourced encrypted data[C]//Proceedings of 2014 IEEE Conference on Computer Communications.Toronto, Canada: IEEE Press, 2014: 522-530.
[8]
SUN Wenhai, YU Shucheng, LOU Wenjing, 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
[9]
LIN Peng, JIANG Jie, CHEN Tieming. Application of keyword searchable encryption in cloud[J]. Journal of Communications, 2015, 36(S1): 259-265. (in Chinese)
林鹏, 江颉, 陈铁明. 云环境下关键词搜索加密算法研究[J]. 通信学报, 2015, 36(S1): 259-265.
[10]
SU Hang, ZHU Zhiqiang, SUN Lei. Research on searchable attribute based encryption with mobile cloud storage[J]. Application Research of Computers, 2017, 34(12): 3753-3757, 3766. (in Chinese)
苏航, 朱智强, 孙磊. 移动云存储中基于属性的搜索加密方案研究[J]. 计算机应用研究, 2017, 34(12): 3753-3757, 3766.
[11]
ZHONG Hong, CUI Jie. Efficient and verifiable muti-authority attribute based encryption scheme[J]. Journal of Software, 2018, 29(7): 2006-2017. (in Chinese)
仲红, 崔杰. 高效且可验证的多授权机构属性基加密方案[J]. 软件学报, 2018, 29(7): 2006-2017.
[12]
CAO Suzhen, DU Xialing, WANG Youchen. Multi-server verifiable attribute-based multi-keyword ranked retrieval scheme[J]. Computer Engineering, 2019, 46(3): 120-128. (in Chinese)
曹素珍, 杜霞玲, 王友琛. 多服务器可验证的属性基多关键字排序检索方案[J]. 计算机工程, 2019, 46(3): 120-128.
[13]
CHEN Yanli, YANG Huashan. CP-ABE based searchable encryption with attribute revocation[J]. Journal of Chongqing University of Posts and Telecommunications, 2016, 28(4): 545-554. (in Chinese)
陈燕俐, 杨华山. 可支持属性撤销的基于CP-ABE可搜索加密方案[J]. 重庆邮电大学学报, 2016, 28(4): 545-554.
[14]
WU Qiying, MA Jianfeng, SUN Hui, et al. Multi-keyword search over encrypted data with user revocation[J]. Journal of Communications, 2017, 38(8): 183-193. (in Chinese)
伍祈应, 马建峰, 孙辉, 等. 支持用户撤销的多关键字密文查询方案[J]. 通信学报, 2017, 38(8): 183-193.
[15]
SUN Jin, WANG Xiaojing. Verifiable multi-keyword search encryption scheme with attribute revocation[J]. Journal of Electronics and Information Technology, 2019, 41(1): 58-65. (in Chinese)
孙瑾, 王小静. 支持属性撤销的可验证多关键词搜索加密方案[J]. 电子与信息学报, 2019, 41(1): 58-65.
[16]
SHAO Qifeng, JIN Cheqing, ZHANG Zhao, et al. Blockchian:architecture and research progress[J]. Chinese Journal of Computers, 2018, 41(5): 969-987. (in Chinese)
邵奇峰, 金澈清, 张召, 等. 区块链技术:架构及进展[J]. 计算机学报, 2018, 41(5): 969-987.
[17]
LI Huige, TIAN Haibo, ZHANG Fangguo, et al. Block chain based searchable symmetric encryption scheme[J]. Computers and Electrical Engineering, 2018, 73: 32-45.
[18]
ZHANG Yinghui, HU Jiangang, et al. KSE:trustworthy keyword search over encrypted data with two-side[J]. IEEE Access, 2018, 6: 31077-31087. DOI:10.1109/ACCESS.2018.2844400
[19]
NIU Shufen, WANG Jinfeng, WANG Bobin, et al. Ciphertext sorting search scheme based on B+ tree index structure on blockchain[J]. Journal of Electronics and Information Technology, 2019, 41(10): 2409-2415. (in Chinese)
牛淑芬, 王金风, 王伯彬, 等. 区块链上基于B+树索引结构的密文排序搜索方案[J]. 电子与信息学报, 2019, 41(10): 2409-2415.
[20]
GUO Lifeng, LU Bo. Efficient proxy re-encryption with keyword search scheme[J]. Journal of Computer Research and Development, 2014, 51(6): 1221-1228. (in Chinese)
郭丽峰, 卢波. 有效的带关键字搜索的代理重加密方案[J]. 计算机研究与发展, 2014, 51(6): 1221-1228.
[21]
ZUO Cong SHAO Jun. CCA-secure ABE with outsourced decryption for fog computing[J]. Future Generation Computer Systems, 2018, 78: 730-738. DOI:10.1016/j.future.2016.10.028
[22]
HUANG Rufen, NONG Jiang, HUANG Zhenjie. An efficient certificateless blind signature scheme[J]. Computer Engineering, 2013, 39(2): 130-136. (in Chinese)
黄茹芬, 农强, 黄振杰. 一个高效的无证书盲签名方案[J]. 计算机工程, 2013, 39(2): 130-136.