基于多关键字的Top-k布尔可搜索加密方案

郭斯栩1,2 何 申1 粟 栗1 张 星1 周福才2 张鑫月1

1(中国移动通信有限公司研究院安全技术研究所 北京 100053)2(东北大学软件学院 沈阳 110819)

摘 要 针对在云存储服务中可搜索加密技术的研究,解决了现存3个问题:1)传统可搜索加密方法大多数只支持单关键字搜索,并且在安全索引过大时,搜索时间代价过大;2)现有方案大多使用倒排索引进行快速搜索,然而倒排索引并不支持动态关键字更新;3)现有方案大多数无法针对某些按需用户,根据关键字的重要性对搜索文件进行安全高效的top-k排序.提出了一种基于多关键字的top-k布尔可搜索加密方案(top-k boolean searchable encryption scheme based on multiple keywords, TBSE).该方案利用Goldwasser-Micalli与2DNF这2种加密算法构建了一种支持动态更新的安全索引;利用集合论与布尔搜索的相关知识构建了关键字交集索引与交集搜索令牌,以实现对多关键字的布尔搜索;利用TF-IDF加权技术与安全协处理器构造分数索引,进而能够对文件进行top-k排序.安全性分析表明:该方案保证了在已知密文模型与已知背景模型下的安全性.通过实验证明:该方案提升了对多关键字布尔搜索的效率以及索引存储的效率.

关键词 布尔搜索;多关键字;top-k;可搜索加密;动态更新

现阶段,越来越多的用户和企业选择将自己的数据存储及业务计算外包到云服务器中,并由其代为存储和计算,以节省数据存储开销和系统维护开支.为了保证云端数据的机密性,人们首先考虑到对数据进行加密.然而,加密之后的数据,也丧失了数据原有的特性.经过大量的研究之后,可搜索加密(searchable encrypion)[1-5]技术应运而生.可搜索加密是指对于诸如文件、数据表等信息,在加密之后通过使用关键词的手段对密文进行搜索.最早的可搜索加密[1]这一概念是由Goldreich和Ostrovsky提出的.传统的可搜索加密方案包含客户端与服务器2个实体以及2个阶段:数据初始化阶段和搜索阶段.在数据初始化阶段,客户端对每一个关键字生成倒排索引,同时对索引加密生成加密索引,并将加密后的文件集合与加密索引上传至服务器;在搜索阶段,当用户发起搜索请求时,客户端向服务器发送待搜索关键字的搜索令牌.该令牌利用密码学知识将关键字封装,且无法泄露任何关键信息.当服务器获得令牌后,利用数学运算等方式将加密索引解开,返回符合搜索条件的文件.现如今,可搜索加密的重要性从其广泛的应用领域中显而易见,其中许多工作正在进行中.文献[6]中提出可搜索加密正在探索物联网设备和智能电表;文献[7]中提出可搜索加密技术被应用于云环境中的电子医疗保健系统中;文献[8]中讨论:当与区块链技术结合使用时,可搜索加密也会对安全交易产生深远的影响.随着同态加密的出现,在基因组分析中也正在探索使用可搜索加密来安全地分析和搜索人类DNA序列[9].

同时,为了保证从大数据中高效安全地提取重要信息,满足用户需求,我们考虑针对一些特殊的关键字对每一个文件进行排名,top-k排名搜索[10-15] (top-k ranking search)技术应运而生.Fagin[10]首先提出了top-k排名搜索这一概念,目的是解决针对大数据的文件检索.由于很多场景对文件等数据的排名有特定的要求,top-k排名搜索一经提出便备受关注,在搜索引擎、电子商务、移动App等诸多领域得到了广泛的研究与应用.用户通过对关键字不同属性的权值设定来反映其自身偏好,而云服务器则根据用户提供的权值信息作为排名依据进行计算,并返回符合用户需求的前top-k个数据.top-k排名搜索能够帮助用户从大量数据中精确找到自己所关心的信息,因此研究top-k排名搜索具有非常实际和广泛的应用价值.

然而,当前的top-k排名算法大多针对明文数据,这无法确保在云服务器上保证数据的安全性,因此top-k排名与可搜索加密机制的结合也势在必行.但现存的可搜索加密方案大多不支持top-k排名搜索;在构建可搜索加密方案时,通常需要考虑隐私性、效率与查询有效性[16]这3个因素,尽管这些因素同等重要,但大多数现有方案无法在它们之间保持平衡;同样地,现阶段的可搜索加密方案大多只支持对单关键字的搜索,无法对多关键字进行高效的布尔搜索.因此,这些方案缺乏可用性,无法部署到真正的云服务器上.

针对上述所提到的问题,本文提出一种基于多关键字的top-k布尔可搜索加密方案(top-k boolean searchable encryption scheme based on multiple keywords, TBSE).其能够满足用户的日常需求,在对多关键字进行安全高效的布尔搜索的同时,对文件进行高效的top-k排序.TBSE首先利用数学中集合论的知识,对多关键字进行高效的布尔搜索;然后构建正向文件索引,利用安全协处理器对搜索后的文件进行top-k排名.另外,现存的可搜索加密方案所使用的倒排索引大多不支持动态更新,在增加或删除关键字时,倒排索引需要重新构建.这不仅仅降低了关键字更新的效率,每次重构索引也会泄露更多文件信息.TBSE利用Goldwasser-Micalli与2DNF这2种加密算法构建关键字索引,能够对索引进行动态的更新,同时利用搜索令牌的巧妙构造,大大提高了搜索效率与top-k排名效率.通过安全性分析,证明该方案满足自适应安全.

本文的优势在于,从功能性的角度考虑,相比于传统可搜索加密方案,TBSE方案能够在支持布尔搜索的同时,对搜索后的文件进行top-k排名;相比于文献[17]中的方案,该方案支持对多关键字进行布尔搜索;相比于文献[17-19]中的方案,本方案支持对索引的动态更新.从性能的角度考虑,首先考虑到对关键字的搜索效率,由于TBSE方案独特的索引构造,其搜索效率与索引长度无关,只与关键字个数成线性关系,因此相比于文献[18-19]中的方案,本方案提升了布尔搜索的效率.关于索引存储效率,文献[18]中方案的索引存储空间与关键字个数成线性关系,文献[19]中方案在此基础上做出了改进,其索引存储空间与关键字个数成亚线性关系,而本方案由于索引结构为向量形式,其索引存储空间只与向量长度有关,而与关键字个数无关.因此,本方案的索引存储效率为一个常数级,当关键字个数较多时,其索引存储效率将会大大提升.

1 相关知识

1.1 Goldwasser-Micalli公钥加密方案

Goldwasser-Micalli(GM)公钥加密方案是第1个在标准密码假设下可证明安全的概率公钥加密方案,由Gen,Enc,Dec三个算法组成.

1) Gen.密钥生成算法.选择公钥pk=(n,m),其中n=p×qp,q为2个大的奇素数,同时选择m满足雅各比符号选择私钥sk=(p,q).选择R∈作为随机数集合.

2) Enc.加密算法.将明文M转换成二进制数字xi∈{0,1},利用公钥pk以及一个随机数ri∈R,对于每一个比特xi,计算进而得到密文集C={c1,c2,…,ck}.

3) Dec.解密算法.对于密文ci∈C,利用私钥sk,对密文中的每一个比特ci解密,得到明文xi

(1)

由于GM加密是使用概率算法执行的,所以给定的明文在每次加密时可能产生非常不同的密文,这具有显著的优点.

1.2 2DNF同态加密方案

2DNF加密方案[20]满足同态机制,其具有加法同态性质,这与Paillier[21]加密方案相似.具体地说,2DNF加密方案由Gen,Enc,Dec三个算法组成.

1) Gen.密钥生成算法.给定一个安全参数l.首先选择2个l-bit的奇素数q1,q2,计算N=q1×q2.生成N阶双线性群G,令g,uG的2个生成元,然后计算h=uq2Gq1阶子群的随机生成元.最后输出私钥sk=q1和公钥pk=(N,G,GT,g,h).

2) Enc.加密算法.假设消息空间由集合{0,1,…,T}中的整数组成且T<q2,那么,对于具有公钥pk的消息m,我们从{0,1,…,N-1}中选择一个随机数r,并通过计算解密来得到密文.

3) Dec.解密算法.要用私钥K=q1解密密文C,注意到为了得到相应的明文m,需要计算Cq1基于的离散对数.当0≤mT时,其解密的时间效率为

2DNF加密方案有加法同态的特性,即:给定密文E(a1),E(a2),那么a1+a2的密文可以被计算.同时,方案中的解密时间是消息空间m大小的多项式时间,因此,2DNF密码方案显然可以有效地适用于短消息.

1.3 逆向文本频率TF-IDF

TF-IDF[22]是一种信息检索的常用技术,主要用于对文件中常用关键字进行加权.在信息检索领域常用 TF-IDF作为统计方法,用以评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度,因此用这项技术进行top-k排名搜索来说再合适不过了.在该技术中,不仅仅只关注字词出现的频率,因为例如“的”、“the”这些词汇在文章中经常出现,但意义却并不大.因此,TF-IDF 技术的字词的重要性不仅仅随着它在文件中出现的次数成正比增加,同时会随着它在语料库中出现的频率成反比下降.

1.4 布尔搜索与集合论

在进行布尔搜索的过程中,首先要对生成的逻辑检索式进行析取操作,得到一个标准的关键字连接式δ1δ2∨…∨δ,其中,对于任意一个δi来说,δi=ωi,1ωi,2∧…∧ωi,q,对于集合的交集来说,只需要将二者包含的相同内容找到即可,对于集合的并集来说,需要找到集合的交集,并用二者的和减掉交集,这样做,无疑浪费了大量的时间用在求和与减法操作上.

在集合论知识体系中,有一种将并集操作转化为交集操作的内容,例如,有3个集合DB(ω1),DB(ω2),DB(ω3),关系如图1所示:

Fig. 1 Collection relationship diagram
图1 集合关系示意图

对于3个集合的并集操作来说,推导过程[19]

DB(ω1)∪DB(ω2)∪DB(ω3)=
(id1,id2,id3,id4)↔(id1)+(id3)+(id2,id4)=
DB(ω1)-(DB(ω1)∩DB(ω2))-(DB(ω1)∩
DB(ω3))+DB(ω2)-(DB(ω2)∩
DB(ω3))+DB(ω3)=(id1,id3,id4)-
(id3)-(id4)+(id3)-∅+(id2,id4).

(2)

至此,就完成了用交集操作替换并集操作的推导过程.

2 TBSE方案

本节将描述TBSE方案的模型、形式化定义以及存在的安全威胁.

2.1 方案模型

TBSE方案包括3个实体,分别是数据拥有者、云服务器和安全协处理器(secure coprocessor, SCP)如图2所示:

Fig. 2 The architecture of TBSE scheme
图2 TBSE方案的体系架构

对于图2所示的方案模型而言,TBSE方案首先执行图2中虚线所表示的离线传输阶段.数据拥有者将加密文件及加密关键字索引传送至云服务器,并将加密分数索引及top-k排名中的k值传送至SCP.接下来方案执行在线传输阶段,包括4个步骤:

1) 数据拥有者将搜索令牌传送至云服务器,发出搜索请求;

2) 云服务器执行搜索后,将搜索后的结果与搜索令牌传送至SCP;

3) SCP对搜索结果执行top-k排名后,将前k个加密文件传送至云服务器;

4) 云服务器将排名后的前k个加密文件传送至数据拥有者,整个TBSE方案执行完毕.

在TBSE方案中,安全协处理器被认为是一个代理的小型服务器,它驻留在云服务器提供的隔离执行环境中,被认为是可信的.数据拥有者首先将文件加密,并上传到服务器.云服务器被认为是诚实且好奇(curious but honest)的.下面对3个实体在本方案中的功能进行详细介绍:

1) 数据拥有者.负责生成整个搜索方法中要使用到的密钥及利用对称加密算法生成加密文件,即负责初始化的部分;他要对自己的文件集合生成对应的关键字集合,并根据二者生成倒排索引;他要对已经生成的倒排索引进行处理,加密后上传至云服务器,即要负责关键字索引生成;由于要实现布尔搜索,该索引包括单关键字索引及交集索引2部分;为了实现top-k排名,他需要为每一个文件生成正向的分数索引;同时对于每一个待搜索的关键字,数据拥有者需要为其生成关键字所对应的令牌,并将其传送给数据拥有者;同时,当搜索结果返回时,他需要对数据进行解密,并得到搜索到的文件.

2) 云服务器.主要接收数据拥有者传送的加密索引;接受可信赖用户的搜索请求及相应的搜索令牌,并进行搜索操作;同时它还接受数据拥有者发出的搜索请求,并接收安全协处理器排名好的top-k个文件集.

3) 安全协处理器.主要负责接收加密的分数索引,同时接收云服务器传递的加密的字符串,对关键字进行搜索及 top-k 排名,并返回相应文档标签至云服务器.

2.2 形式化定义

TBSE方案共包含7个算法,分别是密钥生成算法、关键字索引生成算法、加密分数索引生成算法、令牌生成算法、搜索算法、top-k算法以及索引更新算法,TBSE方案所示:

(KeyGen,IndexGen,ScoreIndexGen,
TrapdoorGen,Search,Top_k,IndexUpdate).

每个算法的具体描述为:

1) 密钥生成算法KSY,KDN,KGMKeyGen(λ)为概率性算法,运行于数据拥有者.输入安全参数λ,输出对称加密密钥KSY,2DNF加密密钥KDN=(pkDN,skDN)以及GM加密密钥KGM=(pkGM,skGM).

2) 关键字索引生成算法EIDIndexGen(pkDN,pkGM,V,W,R)为概率性算法,运行于数据拥有者.输入密钥pkDN,pkGM,随机正交向量集V,关键字集合W以及随机数集合R,输出关键字加密索引EID.

3) 加密分数索引生成算法EIDScoreScoreIndexGen(pkDN,D,V,W,R)为概率性算法,运行于数据拥有者.输入密钥pkDN,随机正交向量集V,文档集合D,关键字集合W以及随机数集合R,输出加密分数索引EIDScore,用于对搜索后的文件进行top-k排名.

4) 令牌生成算法τwqTrapdoorGen(KDN,W,V)为确定性算法,运行于数据拥有者.输入密钥pkDN,随机正交向量集V以及关键字集合W,输出关键字的搜索令牌τwq.

5) 搜索算法ϑwqSearch(EID,τwq)为确定性算法,运行于云服务器.输入加密的安全索引EID,搜索令牌τwq,输出每一个搜索关键字所对应的加密字符串ϑwq.

6) top-k算法DkTop_kwq,skGM,k,EIDScore,τwq)为确定性算法,运行于SCP.输入加密字符串ϑwq,密钥skGM,搜索令牌τwq,加密分数索引EIDScore与可选数字k,输出top-k个文档集合Dk.

7) 索引更新算法EID′←IndexUpdate(EID,w′)为概率性算法,运行于数据拥有者.输入为加密索引EID与待更新的关键字w′,输出为新的加密索引EID.

2.3 安全威胁

根据文献[17,22],本文方案考虑2种模型安全威胁,即已知明文模型和已知背景模型.本方案认为数据拥有者和SCP是完全可信的实体,而云服务器是“诚实且好奇的”,它会“诚实地”根据算法的指定协议存储数据拥有者全部的数据文档,但对存储的数据“感到好奇”,即云服务器想通过推断或分析加密数据和搜索令牌来获取数据拥有者的数据信息.

1) 已知密文模型.在已知密文模型中,假设云服务器仅能获取数据拥有者上传的加密文档集C、加密的索引EID、搜索令牌τwq和云服务器掌握的部分明文索引IDi其加密形式无法通过各索引之间及令牌之间的关系获取到其他信息.由于SCP被认为是完全可信的,则不考虑加密分数索引的信息以及整个top-k排名过程.因此在已知密文模型下,安全威胁表示为同时,由于本方案支持关键字索引的动态更新,因此需要考虑到索引更新前后的前向安全问题,即云服务器无法从更新前的索引EID得到更新后的索引EID′的相关信息.

2) 已知背景模型.在已知背景模型中,云服务器能够获取比已知密文模型更多的数据信息,比如关键字索引之间、搜索令牌之间相关的信息或者数据集之间的统计信息等.因此,云服务器具有更强的攻击能力.云服务器可以根据已知的令牌信息,并借助一些统计信息来推断,分析上传的加密索引,搜索令牌和搜索结果等来确定搜索中的某些关键词的明文信息.

3 TBSE方案详细设计

本节主要介绍TBSE方案的详细设计.TBSE方案需要解决3个问题:1)能够高效地实现对多关键字的布尔搜索;2)能够对搜索后的文件进行有效的top-k排序;3)能够对构建的关键字安全索引进行动态更新.根据第2节形式化定义,下面对TBSE方案的7个算法分别进行详细描述.

3.1 密钥生成算法

密钥生成算法KSY,KDN,KGMKeyGen(λ)在数据拥有者端实现.TBSE方案在加密文件时利用传统对称加密方式(如AES)的方式加密文件,输入安全参数λ,生成文件加密密钥KSY.本方案在构造加密索引与搜索令牌的过程依赖于GM加密与2DNF加密,输入安全参数λ,生成2个加密方案的公私钥KDN=(skDN,pkDN),KGM=(skGM,pkGM).根据相关知识,pkDN=(N,G,GT,g,h),skDN=q1;pkGM=(n,m),skGM=p.

3.2 关键字索引生成算法

关键字索引生成算法EIDIndexGen(pkDN,pkGM,V,W,R)实现于数据拥有者端.为了实现布尔搜索,利用预备知识中集合论的相关知识,本方案所构建的关键字加密索引包含2个部分:对单关键字的加密索引SEID与关键字之间交集的加密索引inEID.

3.2.1 单关键字加密索引生成

首先,数据拥有者为每一个关键字wi∈W生成一个长度为|D|的二进制索引串biwi,即当文件dj∈D中包含关键字wibiwi的第j位记为1,否则记为0.每一条biwi被存放在一个字典的数据结构中,记为biD(wi),大小为|W|,biD(wi)构造如图3所示:

Fig. 3 Construction of binary dictionary
图3 二进制字典构造结构

对字典中的每一个元素,使用GM加密生成Gi=EncGM(pkGM,bID(wi)).定义V是一个互相正交的向量集, vi∈V为每一个关键字所对应的随机向量,r∈R为一个随机数,vr∈V为一个随机向量.对每一个关键字wi使用2DNF加密生成Di=EncDN(pkDN,wi).利用上述步骤,生成关键字集W所对应的单关键字加密索引向量SEID,其构造:

(3)

3.2.2 关键字交集加密索引生成

根据集合论相关知识,数据拥有者首先为每一个关键字wi∈W与其后面的关键字wj∈W做交集,生成(|W||D|)个交集倒排索引inIDi.与单关键字加密索引生成类似,根据每一个关键字的交集倒排索引生成长度为|D|的二进制索引串inbIDi,并将其依次存放于一个字典中.将每一个字典放入一个Multi-map结构MMb(wi)中.MMb(wi)的每一个元素,采用与生成单关键字加密索引类似的方法生成加密索引.使用GM加密生成inGiinGj=EncGM(pkGM,inbIDi).对进行交集操作的关键字之间做“⊕”异或操作,使用2DNF加密生成inDiinDj=EncDN(pkDN,wiwj).其余操作与生成单关键字加密索引类似.数据拥有者将每一个关键字对应的交集加密索引向量放入字典inD(wi)中,其构造:


(inDiinDj))+vr·r.

(4)

综上所述,关键字交集索引inEID生成完毕.

3.3 加密分数索引生成算法

加密分数索引生成算法EIDScoreScoreIndex-Gen(pkDN,D,V,W,R)实现于数据拥有者端.分数索引为正向索引,即每一个文件dj对应一串索引,这与关键字索引不同.数据拥有者首先计算关键字wi在文件中的“词频”(TF)与“逆向文本频率”(IDF)对dj构建分数索引,以方便之后对文件进行top-k排序,记关键字wi在文件dj中的个数为c.计算文件的TF-IDF值后,存放在字典sD(dj)中.其算法为

(5)

同加密关键字索引方法类似,数据拥有者利用2DNF加密与随机向量对sD(dj)中的每一串分数索引加密,生成Di.同时取出计算关键字加密索引时已经生成的vi,利用字典中TF-IDF值以及计算好的生成加密分数索引EIDScore.加密分数索引:

(6)

3.4 令牌生成算法

令牌生成算法τwqTrapdoorGen(KDN,W,V)实现于数据拥有者端,以便于实现搜索与top-k排序操作.TBSE方案为实现布尔搜索,每一个关键字wq对应的令牌τwq=(wq,inτwq)包含2个部分:单关键字令牌wq与关键字之间交集令牌inτwq.

3.4.1 单关键字令牌生成

对于每一个关键字wq,首先生成其单关键字令牌wq.数据拥有者对每一个关键字wq∈W,首先取出2DNF加密的私钥skDN=q1与关键字做除法运算,生成接下来取出公钥pkDN中的参数g计算为关键字wq对应的随机向量.单关键字令牌wq的构造为

(7)

3.4.2 关键字交集令牌生成

数据拥有者为每一个关键字生成交集搜索令牌,交集搜索令牌inτwq由2部分构成,由于最后一个关键字无需再和其他关键字做交集,因此,前q-1个关键字与最后一个(第q个)关键字生成的搜索令牌结构是有区别的.对于前q-1个关键字集合Wq-1,对其中的每一个关键字wq∈Wq-1与其后面的关键字wi∈Wq-1,与生成单关键字令牌相似地生成为关键字wq对应的随机向量,其构造:

(8)

将每一个inτbiwqbiwi整合在一起,生成wq所对应的交集搜索令牌inτwq.对于最后一个关键字wq,无需与其他关键字做交集,只需要得到其单关键字搜索令牌wq即可.将2部分令牌合并得到τwq,其结构:

τw1=(w1,inτbiw1biw2,…,inτbiw1biwq),
τw2=(w2,inτbiw2biw3,…,inτbiw2biwq),

τwq-1=(wq-1,inτbiwq-1biwq),
τwq=wq.

3.5 搜索算法

搜索算法ϑwqSearch(EID,τwq)实现于云服务器端.数据拥有者将待搜索的关键字集W′与搜索请求Query发送至云服务器,关键字个数为|W′|.云服务器首先遍历前(|W′|-1)个关键字的搜索令牌.对每一个令牌τwq=(wq,inτwq),首先取出SEID进行搜索,得到sϑwq,其推导过程:





(gq1·g-q1Gwq)=Gwq

(9)

wq∈W时,云服务器得到的参数sϑwq即为wq所对应的GM加密的二进制索引串Gwq.将搜索到的每一个sϑwq放入字典Ds ϑ(wq)中,其结构如图4所示:

Fig. 4 Construction of single keyword search result
图4 单关键字搜索结果构造结构

云服务器取出inτwqinEID进行搜索,分别从字典inD(wi)中取出每个关键字对应的索引向量,其方法同对SEID的搜索方法类似,得到的参数inϑwqinϑwi为对wq与其后面关键字wi所对应的GM加密的二进制索引串inGqinGi.将搜索到的每一个参数inϑwqinϑwi放入Multimap MMinϑ(wq)中.其结构如图5所示:

Fig. 5 Construction of multi-keywords search result
图5 关键字交集搜索结果构造结构

对于最后一个关键字wq,只需要取出其单关键字令牌wqSEID进行搜索,得到sϑwq=Gwq.sϑwq放入字典Ds ϑ(wq)中,搜索过程执行完毕.

3.6 top-k算法

top-k算法DkTop_kwq,skGM,k,EIDScore,wq)实现于安全协处理器(SCP)端,用于对文档进行排序并返回top-k个文件集Dk.云服务器在搜索算法执行完毕后,发送ϑwq至SCP.SCP首先用skGM分别对sϑwqinτwq解密,得到每一个关键字wq的二进制索引串biwq,以及wq与其后面的每一个关键字wi的交集二进制索引串inbiwqinbiwi.对于执行布尔搜索的全部关键字W′,首先对执行“并”操作的全部关键字andW进行操作:

(10)

得到andbi.这里的“∑”表示逐比特相加.andbi与执行“交”操作全部关键字inW的inbiwqinbiwi进行操作:

(11)

得到对执行布尔搜索得到的全部文件集的二进制索引串biD′,进而得到搜索到的全部文件集D′.

SCP利用分数索引实现top-k排序操作,使用单关键字搜索令牌wqEIDScore解密.得到存储dj的排名分数字典sD(dj).SCP根据数据拥有者提供的可选数字ksD(dj)中的所有文件的分数进行排序,返回前k个文档集Dk至云服务器,整个top-k算法执行完毕.

3.7 索引更新算法

索引更新算法EID′←IndexUpdate(EID,w′)实现于数据拥有者端.TBSE方案实现了对关键字集合W更新的同时,对关键字加密索引EID进行动态更新,大大提升了关键字索引更新的效率.索引更新算法包括对单关键字加密索引SEID与关键字交集加密索引inEID的更新.

SEID更新基于正交向量组的增加与删除.其中,对于被替换的关键字wu,删除其子索引sYwu=vu·Gu·Du.对于添加的关键字添加其子索引单关键字索引更新算法为

(12)

数据拥有者对交集加密索引更新.对于被替换的关键字wu,遍历inEID,首先删除字典iIDD(wi)中wu对应的元素.接下来依次遍历iIDD(wi)中关键字w1,w2,…,wu-1对应的元素,并删除其子索引inYwi=vi·(GiGu)·(DiDu).最后,对于添加的关键字将其插入W头部,这样只需要对W中其余的全部关键字做交集操作并生成将其放入字典iIDD(wi)中.这样,新的关键字交集加密索引inEID′生成完毕.将其与SEID′合并, EID′=(SEID′,inEID′)更新完毕.

4 安全性与性能分析

本节首先对TBSE方案进行安全性分析及性能分析,再从性能和功能2个角度与之前已有方案进行对比,最后对搜索效率及索引存储效率进行效率测试.

4.1 安全性分析

1) 已知密文模型中的安全性

在已知密文模型中,攻击者可以通过已知的密文建立线性方程,来计算加密索引和搜索令牌的真实值.考虑到加密索引,云服务器对于加密索引EID中的2部分SEIDinEID均为已知的,但对其中每一个关键字对应的子索引的值未知.使用随机向量vi∈V,随机数r∈R与GM,2DNF这2种加密算法分别对SEIDinEID加密,从而构成一个线性方程组:

(13)

其中,考虑到vi,vr,r均为随机的,则方程式左侧有(|W||D|)个未知数,方程式右侧有|D|个未知数.根据式(13)所示,此方程组包含|W|个方程式.根据行列式的性质可知,当未知数的数量大于行列式的数量时,此方程组无解,则根据方程组无法得到通过GM以及2DNF加密后的数据,也就无法获得加密索引的真实值.同理,通过搜索令牌也得不到有关关键字数据和加密后数据的真实值,本方案对索引及令牌采用的加密机制能够保证数据的隐私性.

由于方案支持索引动态更新,需考虑到攻击者能否从更新前的索引EID得到更新后索引EID′的相关信息,即考虑方案的前向安全性.云服务器对索引更新前后均为已知.首先,联立索引SEIDSEID′,考虑到vi,vr,r均为随机的,而更新前后的关键字wu均采用GM,2DNF这2种加密算法将其加密,这两种加密算法均含有随机数,因此可以得到一个(2×|W|)的矩阵,其全部由随机数构成.由于|W|的值远大于2,可以认为该矩阵满秩,因此可以证明向量索引SEIDSEID′之间线性无关.同理,也可证明更新前后关键字交集索引inEIDinEID′这2个矩阵之间线性无关.因此,可以认为云服务器无法通过更新前的索引得到更新后索引的相关信息,能够保证方案的前向安全性.

2) 已知背景模型中的安全性

根据文献[17]中的证明可知,在已知背景模型中,云服务器能够通过分析词频分布图,寻求加密索引与搜索令牌之间的内在联系来挖掘泄露文档的隐私,进而推断关键字信息.本方案在索引构建的过程中,对于单关键字索引SEID,将对每一个加密后的子索引向量相加,使其成为单个向量的形式,并引入随机数与随机向量,确保了加密后的单关键字索引与关键字所对应的倒排索引是毫无关联的.同样地,对于关键字交集索引inEID中的每一个向量,其每一条索引都采用2种加密方式,并将加密的数据相乘,同样引入了随机数与随机向量,因此无法得到多条关键字交集索引之间的关联.同理,攻击者也无法通过分析搜索令牌之间的关系得到搜索结果.同时,由于2DNF与GM加密中均引入了随机数,也就是说,即使多次重复一样的搜索,云服务器收到的索引和令牌也是不一样的,这有效地抵抗了统计分析攻击,防止了搜索模式泄露.因此,本文方案在已知背景模型中是安全的.

4.2 性能分析与方案对比

本节对TBSE方案与之前的相关可搜索加密方案进行对比,并对方案功能及性能2方面进行分析.

TBSE方案同其他方案的对比数据如表1所示,其中M表示MRSE方案[17]与OXT方案[19]生成的倒排索引的最长索引的长度.#DB(w)表示MRSE,OXT,IBE方案[18]生成的倒排索引的长度,strg表示索引的存储空间.其中,从方案实现功能的角度,相比于IBE,TBSE方案支持对多关键字的布尔搜索.与MRSE方案和OXT方案相比,TBSE方案可以对搜索后得到的文件进行top-k排序.相比于MRSE,OXT,IBE,TBSE方案支持对关键字索引的动态更新.

Table 1 Function and Performance Comparison Between TBSE and Other Schemes
表1 TBSE同各方案的功能对比及性能对比

方案布尔搜索top-k动态更新搜索效率索引存储效率MRSE×√×O(|'|2||)Ostrg∑w∈#DB(w) OXT√××O(|'|2M)Ostrg∑w∈#DB(w) +∑w∈strg∑v∈co(w)#DB(w)∩DB(v) IBE√××O(|'|2M)Ostrg∑w∈#DB(w) +∑w∈strg∑v∈co(w)Tw,v>p#DB(w)∩DB(v) TBSE√√√O(|'|2)O(strg(#SEID)+strg(|-1|#inEID))

注:“√”表示支持该功能,“×”表示不支持该功能.

从方案性能的角度,首先分析方案的时间复杂度.假定待搜索的关键字集合为W={w1,w2,…,wq}.首先取出每一个关键字的单关键字搜索令牌与单关键字索引做乘法及幂运算,其搜索效率为O(|W|).接下来依次取出关键字w1,w2,…,wq-1的交集搜索令牌inτwq并与交集索引inEID做乘法及幂运算,其搜索效率为O(|W|2).则TBSE搜索算法的时间效率为O(|W|2).相比于同样支持布尔搜索的MRSE与OXT,TBSE提高了搜索算法的效率.其搜索算法时间复杂度低于IBE,主要是因为该算法只支持对单关键字的搜索.

分析索引的存储效率.对于MRSE方案,其关键字索引的存储效率随关键字个数呈线性提升.OXT方案对MRSE方案进行了改进,主要表现在存储交集索引时,其存储效率与关键字数量呈亚线性提升.TBSE方案进一步提升了索引存储效率,由于其单关键字索引SEID为一个向量元素,其存储效率为O(strg(#SEID)).交集索引inEID为存储(|W|-1)个向量元素的字典,其存储效率为O(strg(|W-1|#inEID)).因此,TBSE的单关键字索引存储效率只与向量的长度有关,因此单关键字存储效率不会随着关键字个数的增加而增加,同时在存储交集索引时也会减少存储空间.当|W|很大时,这大大提高了索引的存储效率,其效率优于MRSE方案和OXT方案.对于IBE方案,由于其不支持布尔搜索,在这里不参与对索引存储效率的比较.

4.3 效率测试

通过实验的形式分别对方案中的索引存储大小,搜索效率及top-k排名效率进行测试,本文设计了一个C/S架构的TBSE方案原型系统,在Win10操作系统下通过Java语言实现.

首先对索引存储空间效率进行测试.实验结果如图6所示,横坐标为关键字个数,纵坐标为内存大小.可以发现,索引内存大小随着关键字个数的增加不会有非常明显的变化,这是因为我们利用向量的加法,将索引存储到一个向量中.

Fig. 6 Index storage efficiency
图6 索引存储效率

对关键字的搜索效率进行测试.首先对单关键字的搜索效率进行测试并与MRSE方案对比,如图7所示,其中横坐标为待搜索文件集的个数,纵坐标为搜索时间.通过实验我们可以清晰地得出结论,该方案在对单关键字进行搜索时,其时间复杂度不会随着文件集个数的增加而增加,永远保持一个常数,即O(|W|)的时间复杂度.当文件集个数越来越多时,TBSE在对单关键字的搜索效率的提升显著.

Fig. 7 Single keyword search efficiency
图7 单关键字搜索效率

对多关键字的布尔搜索效率测试,如图8所示.假定布尔搜索全部为求“交”操作,横坐标为待搜索的关键字个数,纵坐标为搜索耗时.通过实验结果我们可以得出结论,在对多关键字进行布尔搜索时,其搜索算法的时间复杂度为O(|W|2).相比于同样支持布尔搜索的OXT方案,本文方案提高了搜索算法的效率.而相比于MRSE方案,由于其不支持布尔搜索,只考虑对多关键字搜索时,其搜索效率为常数,不随搜索关键字个数增加而改变,因此只有当搜索关键字很少时,本方案相比MRSE方案在多关键字搜索上有优势.

Fig. 8 Multi-keywords boolean search efficiency
图8 多关键字布尔搜索效率

最后,对方案的top-k排名效率进行测试,如图9所示.尽管MRSE方案支持top-k,由于其搜索阶段包含top-k排名,因此不与其作比较.

Fig. 9 top-k rank efficiency
图9 top-k排名效率

5 总 结

针对先有的可搜索加密方案大多不支持对多关键字进行布尔搜索这一问题,本文提出了一种基于多关键字的top-k布尔可搜索加密方法,简称TBSE.该方案在传统的可搜索加密方案的基础上,通过GM加密算法及2DNF加密算法,生成了具有高搜索效率、高存储率的加密安全索引.在此基础上,利用集合论的相关性质,分别构建了单关键字加密索引及交集加密索引,从而实现了对多关键字的布尔搜索;利用TF-IDF技术构建正向分数索引,借助第三方实体SCP实现了对搜索后文件的top-k排名;同时,该方法能够对多关键字进行动态更新,提升了更新效率.之后通过安全性分析,证明了该算法能够对抗2种不同的安全威胁.最后对该方法进行了功能分析及性能分析,通过与其他可搜索加密方案进行对比,证明了TBSE方案的优越性.

参考文献

[1]Goldreich O, Ostrovsky R. Software protection and simulation on oblivious RAMs[J]. Journal of the ACM, 1996, 43(3): 431-473

[2]Boneh D, Crescenzo G D, Ostrovsky R, et al. Public key encryption with keyword search[C] //Proc of Int Conf on the Theory and Applications of Cryptographic Techniques. Berlin: Springer, 2004: 506-522

[3]Song Xiaodong, Wagner D, Perrig A. Practical techniques for searches on encrypted data[C] //Proc of IEEE Symp on Security & Privacy. Piscataway, NJ: IEEE, 2000: 44-55

[4]Park H A, Byun J W, Lee D H. Secure index search for groups[C] //Proc of the 2nd Int Conf on Trust, Privacy & Security in Digital Business. Piscataway, NJ: IEEE, 2005: 128-140

[5]Chang Yancheng, Mitzenmacher M. Privacy preserving keyword searches on remote encrypted data[C] //Proc of Applied Cryptography and Network Security. Berlin: Springer, 2005: 442-455

[6]Yang Lei, Zheng Qingji, Fan Xinxin. RSPP: A reliable, searchable and privacy-preserving e-healthcare system for cloud-assisted body area networks[C] //Proc of IEEE INFOCOM 2017-IEEE Conf on Computer Communications. Piscataway, NJ: IEEE, 2017: 1-9

[7]Hu Wen, Shafagh H, Hithnawi A. Talos: Encrypted query processing for the internet of things[C] //Proc of ACM Conf on Embedded Networked Sensor Systems. New York: ACM, 2015: 197-210

[8]Li Huige, Tian Hua, Zhang Feng, et al. Blockchain-based searchable symmetric encryption scheme[J]. Computers & Electrical Engineering, 2019, 73(1): 32-45

[9]Kim M, Lauter K. Private genome analysis through homomorphic encryption[J]. BMC Medical Informatics & Decision Making, 2015, 15(5): 1-12

[10]Fagin R. Combining fuzzy information from multiple systems[J]. Journal of Computer & System Sciences, 1996, 58(1): 777-780

[11]Fagin R, Lotem A, Naor M. Optimal aggregation algorithms for middleware[J]. Journal of Computer and System Sciences, 2001, 66(4): 614-656

[12]Marian A, Bruno N, Gravano L. Evaluating top-k queries over web-accessible databases[J]. ACM Transactions on Database Systems, 2004, 29(2): 319-362

[13]Ilyas I F, Beskales G, Soliman M A. A survey of top-k query processing techniques in relational database systems[J]. ACM Computing Surveys, 2008, 40(4): 42-58

[14]Bruno N, Chaudhuri S, Gravano L. Top-k selection queries over relational databases[J]. ACM Transactions on Database Systems, 2002, 37(2): 33-67

[15]Ilyas I F, Aref W G, Elmagarmid A K. Supporting top-k join queries in relational databases[J]. VLDB Journal, 2004, 13(3): 207-221

[16]Tahir S, Ruj S, Sajjad A, et al. Fuzzy keywords enabled ranked searchable encryption scheme for a public cloud environment[J]. Computer Communications, 2019, 133(1): 102-114

[17]Cao Ning, Wang Cong, Li Ming, et al. Privacy-preserving multi-keyword ranked search over encrypted cloud data[J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(1): 222-233

[18]Panda M, Nag A. Plain text encryption using AES, DES and SALSA20 by Java based bouncy castle API on windows and Linux[C] //Proc of Int Conf on Advances in Computing & Communication Engineering. Piscataway, NJ: IEEE, 2015: 541-548

[19]Kamara S, Moataz T. Boolean searchable symmetric encryption with worst-case sub-linear complexity[C] //Proc of Annual Int Conf on the Theory and Applications of Cryptographic Techniques. Berlin: Springer, 2017: 94-124

[20]Boneh D, Goh E, Nissim K. Evaluating 2-DNF formulas on ciphertexts[C] //Proc of Int Conf on Theory of Cryptography. Berlin: Springer, 2005: 325-341

[21]Paillier P. Public-key cryptosystems based on composite degree residuosity classes[C] //Proc of Advances in Cryptology—EUROCRYPT’99. Berlin: Springer, 1999: 223-238

[22]Xia Zhihua. A secure and dynamic multi-keyword ranked search scheme over encrypted cloud data[J]. IEEE Transactions on Parallel & Distributed Systems, 2016, 27(2): 340-352Guo Sixu, born in 1996. Master. His main research interests include cryptography and searchable encryption.

Top-k Boolean Searchable Encryption Scheme Based on Multiple Keywords

Guo Sixu1,2, He Shen1, Su Li1, Zhang Xing1, Zhou Fucai2, and Zhang Xinyue1

1(Institute of Security Technology, Research Institute of China Mobile Communications Co., Ltd, Beijing 100053)2(Software College, Northeastern University, Shenyang 110819)

Abstract In view of the searchable encryption technology in cloud storage services, this paper solves the following three problems:Firstly, most of the traditional searchable encryption methods only support single keyword search, and when the security index is too large, the search time cost is too high; Secondly, most of the existing schemes use inverted index for quick search, but inverted index does not support dynamic keyword update; Thirdly, most of the existing schemes can’t sort the search files efficiently according to the importance of keywords for some on-demand users. In this paper, a top-k boolean searchable encryption scheme based on multiple keywords (TBSE) is proposed. In the scheme, Goldwasser-Micalli and 2DNF encryption algorithms are used to construct a secure, index supporting dynamic update. Based on the set theory and boolean search, keyword intersection index and intersection search token are constructed to realize boolean search for multiple keywords. The top-k sorting is realized by fractional index constructed by using TF-IDF weighting technology and security coprocessor. The security analysis shows that the scheme can fully guarantee the security of the given ciphertext model and the known background model. The experiments prove that the scheme improves the efficiency of multi keywords Boolean search and index storage.

Key words boolean search; multi keywords; top-k; searchable encryption; dynamic update

(guosixu@chinamobile.com)

中图法分类号 TP309

收稿日期2020-08-11;修回日期:2021-02-04

基金项目辽宁省科技攻关项目(2013217004);中央高校基本科研业务费专项资金(N71704005);国家科技重大专项基金项目(2013ZX03002006)

This work was supported by the Key Scientific and Technological Projects in Liaoning Province (2013217004), the Fundamental Research Funds for the Central Universities (N71704005), and the National Science and Technology Major Project (2013ZX03002006).

通信作者周福才(fczhou@mail.neu.edu.cn)

DOI:10.7544/issn1000-1239.20200605

作者贡献声明:郭斯栩是本文研究工作的实验设计者和实验研究的执行人,完成数据分析、论文初稿的参与实验设计和试验结果分析;何申是项目的构思者及负责人,指导实验设计;粟栗、张星、周福才、张馨月负责本文实验数据分析及论文校对.

郭斯栩,1996年生.硕士.主要研究方向为密码学与可搜索加密.

He Shen, born in 1980. PhD, senior engineer. His main research interests include network security, Internet of things security, mobile Internet security, trusted computing. (heshen@chinamobile.com)

何 申,1980年生.博士,高级工程师.主要研究方向为网络安全、物联网安全、移动互联网安全、可信计算.

Su Li, born in 1981. PhD, professor level senior engineer. His main research interests include mobile communication network security and data security. (suli@chinamobile.com)

粟 栗,1981年生.博士,教授级高级工程师.主要研究方向为移动通信网络安全和数据安全.

Zhang Xing, born in 1980. Senior engineer. His main research interests include big data and data security. (zhangxingyjy@chinamobile.com)

张 星,1980年生.高级工程师.主要研究方向为大数据和数据安全.

Zhou Fucai, born in 1964. PhD, professor and PhD supervisor. Senior member of CCF. His main research interests include cryptography and network security, trusted computing, and critical technology in electronic commerce.

周福才,1964年生.博士,教授,博士生导师,CCF高级会员.主要研究方向为密码学和网络安全、可信计算和电子商务中的关键技术.

Zhang Xinyue, born in 1994. Master. Her main research interest is searchable encryption. (zhangxinyue@chinamobile.com)

张鑫月,1994年生.硕士.主要研究方向为可搜索加密.