CN106951411B - 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法 - Google Patents

一种云计算中保护数据隐私的快速多关键词语义排序搜索方法 Download PDF

Info

Publication number
CN106951411B
CN106951411B CN201710181664.6A CN201710181664A CN106951411B CN 106951411 B CN106951411 B CN 106951411B CN 201710181664 A CN201710181664 A CN 201710181664A CN 106951411 B CN106951411 B CN 106951411B
Authority
CN
China
Prior art keywords
vector
document
cloud server
sid
owned cloud
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710181664.6A
Other languages
English (en)
Other versions
CN106951411A (zh
Inventor
杨旸
刘佳
叶少珍
蔡圣暐
杨书略
邹剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou University
Original Assignee
Fuzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuzhou University filed Critical Fuzhou University
Priority to CN201710181664.6A priority Critical patent/CN106951411B/zh
Publication of CN106951411A publication Critical patent/CN106951411A/zh
Application granted granted Critical
Publication of CN106951411B publication Critical patent/CN106951411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,将域加权评分的概念引入文档的评分当中,对标题、摘要等不同域中的关键词赋予不同的权重加以区分;对检索关键词进行语义拓展,计算语义相似度,将语义相似度、域加权评分和相关度分数三者结合,设计了一种三因子排序方法,云服务器能够对搜索结果进行精确的排序并返回给搜索用户;针对可搜索加密方案查询效率不高的缺陷,设计了一种向量分块标记匹配算法,将向量空间模型创建的文档向量分块,生成维数较小的标记向量。本发明可以提高查询效率、降低索引创建时间,并实现语义的密文关键词搜索。

Description

一种云计算中保护数据隐私的快速多关键词语义排序搜索 方法
技术领域
本发明涉及云计算领域,特别是一种云计算中保护数据隐私的快速多关键词语义排序搜索方法。
背景技术
随着云计算技术的飞速发展,敏感数据越来越多的存储到云中,如电子邮件、个人健康记录、私人视频和照片、公司财务数据和政府文件等。云服务器提供了高质量的数据存储服务,将数据存储到云中,可以减少用户的数据存储和维护开销。但是数据拥有者和云服务器不在同一个信任域中会使外包数据处于危险之中,为了保护用户的隐私安全,将数据加密后再存储到云服务器是一种常见的解决方法。然而数据经过加密后不再具有原有的特性,当用户需要某些数据时,无法直接在密文中分辨出所需要的数据,在数据量很小的情况下,可以将所有的密文数据下载至本地,解密后在明文中搜索自己想要的数据。然而随着云端数据规模的急剧增长,这种浪费了大量时间开销与带宽功耗的做法显然已经不能满足用户的实际需求,因此,如何在大量密文中搜索到需要的文档成为了一个难题。
在Song等提出通过密钥流加密数据并实现可搜索加密方案后,Wang等提出了单关键词排序搜索方案,通过保序加密对文档的tf-idf(词频-逆文档频率)进行加密,实现对搜索结果的精确排序。Cao等提出了多关键词排序可搜索加密方案,引入了向量空间模型和安全KNN(secure k-nearest neighbor)方法,通过矩阵对索引向量进行加密,并对索引向量和搜索向量计算内积相似度来实现了多关键词的排序搜索。Li等提出了支持布尔查询的可搜索加密方案,将执行“或”、“与”、“非”查询词的权重设置为三组正数递增序列ai,bj,ck,并且序列间满足超递增,即∑ai<b1,∑ai+∑bj<c1,接着将执行“非”查询词的权重ck置换成对应的相反数-ck,则相关度分数大于0的文档即为满足布尔查询的相关文档。但是上述方案没有考虑到文档向量的高度稀疏性,一篇文档中往往只会出现少量的关键词,因此文档向量中会出现大量的0,在检索时,云服务器无法知道哪些是相关文档,因而要对所有的文档进行相似度分数的计算和排序,浪费了大量的时间,降低了方案的查询效率。
用户输入的搜索请求经常会出现拼写错误或格式不匹配的情况,以上方案并不能满足用户的实际需求。因此,Li等实现了关键词的模糊搜索方案,用通配符的方法构造关键词模糊集合,并以编辑距离作为相似度度量标准。Liu等提出了节省存储空间的模糊搜索方案,通过字典来构造模糊集,但是搜索的精确度有所降低。Chai等人首次提出了“半诚实且好奇”的云服务器模型,服务器提供商为了节省计算量和带宽资源,可能仅仅执行了部分搜索操作并返回部分搜索结果,因此,文章提出了基于查找树索引结构的可验证的可搜索加密方案。Wang等利用通配符和索引树,实现了高效的模糊搜索方案。Chuah等为了提高搜索效率,实现了基于BedTree的多关键词模糊搜索方案。Wang等将局部敏感哈希和安全KNN方法(secure k-nearest neighbor)结合,实现了一种新的多关键词模糊搜索方案。Wang等人在关键词模糊搜索的基础上,通过构造符号索引树,提出了可验证的关键词模糊搜索方案。但是以上的模糊搜索方案仅仅考虑了关键词字符上的相似,并没有考虑到关键词语义上的相似。因此,Fu等对文档关键词进行同义词拓展,通过计算内积的方式,实现了支持同义词查询的多关键词排序搜索方案。Xia等为文档集创建倒排索引,利用语义库扩展查询关键词,并且通过一对多保序加密函数对相关度分数进行加密,实现了多关键词语义排序搜索方案。然而,这些语义模糊搜索方案没有将语义相似度参与到文档的评分中,并且忽略了不同域中的关键词的权重差异。
针对目前的密文关键词搜索方案中,查询效率低、索引创建时间长、排序结果不精确等问题,本发明提出了一种可以提高查询效率、降低索引创建时间,并实现语义的密文关键词搜索方案。
发明内容
有鉴于此,本发明的目的是提出一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,可以提高查询效率、降低索引创建时间,并实现语义的密文关键词搜索。
本发明采用以下方案实现:一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,包括数据拥有者、授权用户、私有云服务器以及公有云服务器,具体包括以下步骤:
步骤S1:数据拥有者从明文文档集合F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn);
步骤S2:数据拥有者随机产生一个(n+2)比特的向量S和两个(n+2)×(n+2)维的可逆矩阵{M1,M2},密钥SK由四元组{S,M1,M2,u}组成,u是一个正整数并且u|n;接着,数据拥有者生成一个加密文档的密钥sk,将密钥SK、sk发送给授权用户;
步骤S3:创建索引:数据拥有者为每篇文档fi生成文档向量
Figure BDA0001253734210000031
若文档fi中包含关键词wj,则令
Figure BDA0001253734210000032
否则令
Figure BDA0001253734210000033
接着将文档向量
Figure BDA0001253734210000034
分u块,得到文档标记向量bi=(bb1,bb2,…,bbu)与ei=(bi,sidi),然后计算关键词wj在文档fi中的词频权重wft,f、逆文档频率idft和域加权得分Zij后,将
Figure BDA0001253734210000035
中1的值置为Zij·(wft,f×idft);接着对
Figure BDA0001253734210000036
进行维度扩展,其中第(n+1)位设置成一个随机数ε,第(n+2)位设置成1,那么
Figure BDA0001253734210000037
表示为
Figure BDA0001253734210000038
采用安全KNN算法加密文档向量
Figure BDA0001253734210000039
得到
Figure BDA00012537342100000310
Ii=(sidi,Vi);其中,
Figure BDA00012537342100000311
为向量
Figure BDA00012537342100000312
的***向量;最后,数据拥有者将E=(e1,e2,···,em)发送给私有云服务器,将索引集合
Figure BDA00012537342100000313
上传给公有云服务器;
步骤S4:数据拥有者使用对称加密算法对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给公有云服务器;
步骤S5:构建陷门:当授权用户搜索时,首先输入η个搜索关键词Γ=(q1,q2,…,qs,…,qη),接着进行语义扩展,计算原单词qs和拓展词之间的语义相似度并排序,选取最相关的前σ个拓展词作为最终拓展词,得到语义拓展集合Q=(q1,q2,…,qη1,…,δσ)及其对应的语义相似度分数SC=(sc1,sc2,…,scη,scη+1,…,scη+σ);根据语义扩展集Q创建查询向量
Figure BDA0001253734210000041
若wj∈Q,则令
Figure BDA0001253734210000042
否则
Figure BDA0001253734210000043
Figure BDA0001253734210000044
分为u块,得到查询标记向量接着将查询向量
Figure BDA0001253734210000046
中的1置为对应的语义相似度分数scj,然后将扩展成(n+1)维且第(n+1)位设置为1,用大于0的随机数r对
Figure BDA0001253734210000048
缩放,并扩展成(n+2)维,第(n+2)位设置成η+σ,因此
Figure BDA0001253734210000049
表示为
Figure BDA00012537342100000410
采用安全KNN算法加密查询向量
Figure BDA00012537342100000411
得到陷门最后,授权用户将查询标记向量
Figure BDA00012537342100000413
发给私有云服务器,将陷门TQ上传到公有云服务器;
步骤S6:私有云服务器接收到授权用户发送的查询标记向量
Figure BDA00012537342100000414
后,将其和文档标记向量bi=(bb1,bb2,…,bbu)进行匹配,得到可能包含搜索关键词的候选索引标识符集合SID=(···,sidi,···,sidj,···,sidz,···);
私有云服务器将SID上传给公有云服务器,公有云服务器根据索引的标识符sidi找到对应的安全索引Ii,将对应的Vi和陷门TQ计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户;
步骤S7:授权用户使用数据拥有者分发的密钥sk,对返回的top-k篇密文进行解密,获得所需的明文文档集。
进一步地,还包括分别对文档向量和查询向量进行分块,生成维数较小的文档标记向量和查询标记向量,通过文档标记向量和查询标记向量的匹配,快速过滤掉大量无关文档。
进一步地,对文档向量进行分块具体包括以下步骤:
步骤S11:文档向量分为u块,若某个块全为0,则标记值bbs=0,否则bbs=1,得到文档标记向量bi=(bb1,bb2,…,bbu);
步骤S12:遍历所有文档,得到文档标记向量集合B=(b1,b2,...,bm)。
进一步地,通过文档标记向量和查询标记向量的匹配具体包括以下步骤:
步骤S21:私有云服务器接收到授权用户发送的查询标记向量后,依次用
Figure BDA0001253734210000053
中每一位1去匹配ei中对应的块,即块的标记值bbs是否为0;
步骤S22:块的标记值bbs若为0,则说明该文档对应的块没有搜索的关键词,如果为1则将对应的索引标识符sidi记录下来,得到可能包含搜索关键词的候选索引标识符集合SID=(···,sidi,···,sidj,···,sidz,···);
步骤S23:私有云服务器将SID上传给公有云服务器,公有云服务器根据索引的标识符sidi找到对应的安全索引Ii,将对应的Vi和陷门TQ计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户。
进一步地,还包括将文档向量分段,将每一段分别与维度减小的矩阵相乘,具体包括以下步骤:
步骤S31:数据拥有者随机产生一个(n+2)比特的向量S和两个(n+2)×(n+2)维的可逆矩阵{M1,M2},密钥SK由四元组{S,M1,M2,u}组成,u是一个正整数并且u|n;
步骤S32:数据拥有者在构建索引时,根据安全KNN算法将文档向量***成
Figure BDA0001253734210000055
后,将
Figure BDA0001253734210000057
分别分成h段,得到
Figure BDA0001253734210000059
Figure BDA00012537342100000510
然后使用密钥SK进行加密,得到和对应的索引Ii=(sidi,Vi);最后,数据拥有者将E=(e1,e2,···,em)发送给私有云服务器,将索引集合上传给公有云服务器;
步骤S33:授权用户在生成陷门时也采用步骤S32中构建索引时类似的操作,得到陷门
Figure BDA0001253734210000063
最后,授权用户将查询标记向量
Figure BDA0001253734210000064
发给私有云服务器,将陷门TQ上传到公有云服务器;
步骤S34:公有云服务器在计算相关度分数时,采用的公式如下:
Figure BDA0001253734210000065
进一步地,所述排序采用三因子排序方法,对处于文档不同域中的关键词赋予不同的权重,将语义相似度、域加权评分和相关度分数三者结合,具体包括以下步骤:
步骤S41:计算语义相似度:采用基于信息内容的Resnik算法;
步骤S42:计算域加权评分:给定一系列文档,假定每篇文档有l个域,其对应的权重系数分别是g1,…gl∈[0,1],他们满足:
Figure BDA0001253734210000066
令si为查询和文档的第i个域的匹配得分,其中1和0分别表示是否匹配,于是,域加权评分定义为:
Figure BDA0001253734210000067
步骤S43:计算相关度分数:基于tf-idf权值计算方法以及tf的亚线性尺度变换方法计算相关度分数。
与现有技术相比,本发明有以下有益效果:
1、本发明能够实现高效的查询效率:本发明针对可搜索加密方案效率不高的缺陷,设计了一种向量分块标记匹配算法,分别对文档向量和查询向量进行分块,生成维数较小的文档标记向量和查询标记向量。通过文档标记向量和查询标记向量的匹配,快速过滤掉大量无关文档,减少了计算文档相似度分数和排序的时间,提高了检索的效率。
2、本发明能够减少索引创建时间:可搜索加密方案创建的文档向量的维度通常很大,所以方案构建索引的时间主要花费在文档向量和矩阵的相乘上。本发明设计了一种向量分段加密算法,将文档向量分段,将每一段分别与维度大大减小的矩阵相乘,这使得此方案的索引构建时间大大减少。
3、本发明能够精确返回排序结果:本发明首次将域加权评分的概念引入文档的评分当中,对处于文档不同域中的关键词赋予不同的权重,解决了现有方案中未考虑关键词位置信息的缺陷,同时实现了语义模糊检索。本发明将语义相似度、域加权评分和相关度分数三者结合,设计了一种三因子排序方法,云服务器能够对搜索结果进行精确的排序并返回给搜索用户。
附图说明
图1为本发明实施例的***框架图。
图2为本实施例索引的创建过程。
图3为本发明实施例中陷门的构建过程。
图4为本发明实施例中当文档数量m=10,关键词数n=100,标记向量维度u=10时,向量分块标记算法的过程。
图5为本发明实施例中当文档数量m=10时,文档标记向量与查询标记向量匹配算法的过程。
图6为本发明实施例中向量分段加密算法的主要过程。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
图1为本发明实施例的***框架,包含四个实体:数据拥有者,授权用户,私有云服务器和公有云服务器。本实施例的索引和陷门加密采用安全KNN算法加密(可以参考Wong WK,Cheung W L,Kao B,et al.Secure kNN computation on encrypted databases//Proceedings of the ACM Sigmod International Conference on Management ofData.New York,USA,2009:139-152.)。本实施例的基本流程如下:
(1)Setup:数据拥有者从明文文档集合F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn)。
(2)KeyGen(n):数据拥有者随机产生一个(n+2)比特的向量S和两个(n+2)×(n+2)维的可逆矩阵{M1,M2},密钥SK由四元组{S,M1,M2,u}组成,u是一个正整数并且u|n。接着,数据拥有者生成一个加密文档的密钥sk,将密钥SK、sk发送给授权用户。
(3)BuildIndex(F,W,SK):图2为本实施例索引的创建过程,基于向量空间模型,数据拥有者为每篇文档fi生成文档向量
Figure BDA0001253734210000081
若文档fi中包含关键词wj,则
Figure BDA0001253734210000082
否则接着将文档向量
Figure BDA0001253734210000084
分u块,得到文档标记向量bi=(bb1,bb2,…,bbu),ei=(bi,sidi)。然后计算关键词wj在文档fi中的词频权重wft,f、逆文档频率idft和域加权得分Zij后,将
Figure BDA0001253734210000085
中1的值置为(Zij·(wft,f×idft))。接着对
Figure BDA0001253734210000086
进行维度扩展,其中第(n+1)位设置成一个随机数ε,第(n+2)位设置成1,那么
Figure BDA0001253734210000087
表示为
Figure BDA0001253734210000088
采用安全KNN算法加密文档向量得到Ii=(sidi,Vi)。最后,数据拥有者将E=(e1,e2,···,em)发送给私有云服务器,将索引集合
Figure BDA00012537342100000811
上传给公有云服务器。
(4)Encrypt(F,sk):数据拥有者使用对称加密算法对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给公有云服务器。
(5)Trapdoor(Γ,SK):图3为本发明实施例中陷门的构建过程,当授权用户搜索时,首先输入η个搜索关键词Γ=(q1,q2,…,qs,…,qη)。接着进行语义扩展,计算原单词qs和拓展词之间的语义相似度并排序,选取最相关的前σ个拓展词作为最终拓展词,得到语义拓展集合Q=(q1,q2,…,qη1,…,δσ)及其对应的语义相似度分数SC=(sc1,sc2,…,scη,scη+1,…,scη+σ)。根据语义扩展集Q创建查询向量若wj∈Q,则将
Figure BDA0001253734210000092
否则
Figure BDA0001253734210000093
Figure BDA0001253734210000094
分为u块,得到查询标记向量
Figure BDA0001253734210000095
接着将向量
Figure BDA0001253734210000096
中的1置为对应的语义相似度分数scj,然后将扩展成(n+1)维且(n+1)位设置为1,用大于0的随机数r对
Figure BDA0001253734210000098
缩放,并扩展成(n+2)维,第(n+2)位设置成(η+σ),因此表示为
Figure BDA00012537342100000910
采用安全KNN算法加密查询向量
Figure BDA00012537342100000911
得到陷门
Figure BDA00012537342100000912
最后,授权用户将查询标记向量
Figure BDA00012537342100000913
发给私有云服务器,将陷门TQ上传到公有云服务器。
(6)Query
Figure BDA00012537342100000914
私有云服务器接收到授权用户发送的查询标记向量后,将其和文档标记向量bi=(bb1,bb2,…,bbu)进行匹配,得到可能包含搜索关键词的候选索引标识符集合SID=(···,sidi,···,sidj,···,sidz,···)。
私有云服务器将SID上传给公有云服务器,公有云服务器根据索引的标识符sidi找到对应的安全索引Ii,将对应的Vi和陷门TQ计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户。
(7)Decrypt(C,sk):授权用户使用数据拥有者分发的密钥sk,对返回的top-k篇密文进行解密,获得所需的明文文档集。
较佳的,本实施例还采用了向量分块标记匹配算法,具体如下:
可搜索加密方案创建的字典集一般很大,这使得MRSE方案(Cao N,Wang C,Li M,et al.Privacy-preserving multi-keyword ranked search over encrypted clouddata.IEEE Transactions on Parallel and Distributed Systems,2014,25(1):829-837)中创建的文档向量的维度通常很大。在检索时,云服务器无法知道哪些是相关文档,因而要对所有文档进行相似度分数的计算和排序,浪费了大量的时间。
本实施例分别对文档向量和查询向量进行分块,生成维数较小的文档标记向量和查询标记向量。通过文档标记向量和查询标记向量的匹配,快速过滤掉大量无关文档,减少了计算文档相似度分数和排序的时间,提高了检索的效率。
(1)向量分块标记算法:
文档向量
Figure BDA0001253734210000105
分为u块,若某个块全为0,则标记值bbs=0,否则bbs=1,得到文档标记向量bi=(bb1,bb2,…,bbu);
遍历所有文档,得到文档标记向量集合B=(b1,b2,...,bm)。
图4表示当文档数量m=10,关键词数n=100,标记向量维度u=10时,向量分块标记算法的过程。
关键词数n=100,则文档向量
Figure BDA0001253734210000101
的维数为100维。将
Figure BDA0001253734210000102
分为u=10块,每一块有10个元素,若10个元素全为0,则将此块标记为bbs=0,10个元素中只要有一个元素为1,此块的标记就为1,得到文档标记向量b1=(1,0,0,0,0,1,0,0,1,0);
将10个文档依次按此操作得到文档标记向量b1到b10
(2)查询标记向量和文档标记向量的匹配算法:
私有云服务器接收到授权用户发送的查询标记向量
Figure BDA0001253734210000103
后,依次用
Figure BDA0001253734210000104
中每一位1去匹配ei中对应的块,即块的标记值bbs是否为0;
块的标记值bbs若为0,则说明该文档对应的块没有搜索的关键词,如果为1则将对应的索引标识符sidi记录下来,得到可能包含搜索关键词的候选索引标识符集合SID=(···,sidi,···,sidj,···,sidz,···);
私有云服务器将SID上传给公有云服务器,公有云服务器根据索引的标识符sidi找到对应的安全索引Ii,将对应的Vi和陷门TQ计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户。
图5表示当文档数量m=10时,文档标记向量与查询标记向量匹配算法的过程。
当查询关键词的标记向量为
Figure BDA0001253734210000111
时,将
Figure BDA0001253734210000112
中的第二位1同10篇文档标记向量对应位置的值比较,得到b3所对应的文档可能包含查询的关键词,记录其索引的标识符sid3
依次将
Figure BDA0001253734210000113
中的1与10篇文档的标记向量对应位置的值比较得到候选的索引标识符的集合SID=(sid3,sid8,sid5);
私有云服务器将候选索引标识符集合SID发送给公有云服务器,进行相似度分数的计算及排序操作。
较佳的,本实施例还采用了向量分段加密算法,具体如下:
MRSE方案(Cao N,Wang C,Li M,et al.Privacy-preserving multi-keywordranked search over encrypted cloud data.IEEE Transactions on Parallel andDistributed Systems,2014,25(1):829-837)创建的文档向量的维度通常很大,所以方案构建索引的时间主要花费在文档向量和矩阵的相乘上。本实施例将文档向量分段,将每一段分别与维度大大减小的矩阵相乘,这使得此方案的索引构建时间大大减少。
图6为向量分段加密算法的主要过程,步骤如下:
1)数据拥有者随机产生一个(n+2)比特的向量S和两个(n+2)×(n+2)维的可逆矩阵{M1,M2},密钥SK由四元组{S,M1,M2,u}组成,u是一个正整数并且u|n。
2)数据拥有者在构建索引时,根据安全KNN算法将文档向量
Figure BDA0001253734210000121
***成
Figure BDA0001253734210000123
后,将
Figure BDA0001253734210000124
Figure BDA0001253734210000125
分别分成h段,得到
Figure BDA0001253734210000126
然后使用密钥SK进行加密,得到
Figure BDA0001253734210000127
Figure BDA0001253734210000128
和对应的索引Ii=(sidi,Vi)。最后,数据拥有者将E=(e1,e2,···,em)发送给私有云服务器,将索引集合
Figure BDA00012537342100001212
上传给公有云服务器。
3)授权用户在生成陷门时也采用构建索引时类似的操作,得到陷门
Figure BDA0001253734210000129
最后,授权用户将查询标记向量
Figure BDA00012537342100001210
发给私有云服务器,将陷门TQ上传到公有云服务器。
4)公有云服务器在计算相关度分数时,采用的公式如下:
较佳的,本实施例还采用了三因子排序方法。具体如下:
本实施例实现了语义模糊检索,当授权用户希望搜索到查询关键词语义相关的文档,或者由于各种原因无法输入准确的关键词时,也可以匹配到语义相关的文档并返回给授权用户,满足用户的搜索需求。
本实施例首次将域加权评分的概念引入文档的评分当中,对处于文档不同域中的关键词赋予不同的权重,将语义相似度、域加权评分和相关度分数三者结合,提出了一种三因子排序方法,使得排序结果更加精确。
(1)语义相似度
本实施例采用基于信息内容的Resnik算法(可以参考Resnik P.UsingInformation Content to Evaluate Semantic Similarity in a Taxonomy.//Proceedings of the 14th International Joint Conference on ArtificialIntelligence.Montreal,Canada,1995:448-453.)计算语义相似度,步骤如下:
1)采用Resnik算法计算两个概念c1和c2相似度,计算公式如下:
sim(c1,c2)=-log p(lso(c1,c2))=IC(lso(c1,c2))
其中lso(c1,c2)表示概念c1和c2在WordNet is-a树中最深层的公共父节点。
p(c)是WordNet语料库中出现概念c的名词的概率,其计算方法如下:
Figure BDA0001253734210000131
其中,N表示WordNet语料库中名词的个数,freq(c)表示语料库中包含概念c的单词个数,其计算公式如下:
Figure BDA0001253734210000132
其中,words(c)表示包含概念c的单词集合。
2)Resnik算法计算两个单词w1和w2相似度,计算公式如下:
Figure BDA0001253734210000133
其中,s(w1)和s(w2)分别表示单词w1和w2包含的概念集合,一个单词可能包含若干个概念。
(2)域加权评分
本实施例首次将域加权评分(可以参考Manning C D,Raghavan P,SchützeH.Introduction to information retrieval.Cambridge:Cambridge University Press,2008.)的概念引入文档的评分当中,给定一系列文档,假定每篇文档有l个域,其对应的权重系数分别是g1,…gl∈[0,1],它们满足:
Figure BDA0001253734210000141
令si为查询和文档的第i个域的匹配得分(1和0分别表示是否匹配),于是,域加权评分方法可以定义为:
Figure BDA0001253734210000142
(3)相关度分数
基于tf-idf权值计算方法,并参考tf的亚线性尺度变换方法(可以参考Jin L I,Chen X.Efficient multi-user keyword search over encrypted data in cloudcomputing.Computing&Informatics,2013,32(4):723-738),步骤如下:
1)计算词频权重wft,f
2)计算逆文档频率idft
Figure BDA0001253734210000144
本实施例将语义相似度、域加权评分和相关度分数三者结合,设计一种三因子排序方法,使得排序结果更加精确。公有云服务器上文档得分的计算公式如下:
Figure BDA0001253734210000145
其中,Zij、(wft,f×idft)和scj分别为文档fi中关键词wj的域加权评分、相关度分数和语义相似度。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (6)

1.一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,其特征在于:包括数据拥有者、授权用户、私有云服务器以及公有云服务器,具体包括以下步骤:
步骤S1:数据拥有者从明文文档集合F=(f1,f2,…,fm)中抽取关键词,得到关键词集合W=(w1,w2,…,wn);
步骤S2:数据拥有者随机产生一个(n+2)比特的向量S和两个(n+2)×(n+2)维的可逆矩阵{M1,M2},密钥SK由四元组{S,M1,M2,u}组成,u是一个正整数并且u|n;接着,数据拥有者生成一个加密文档的密钥sk,将密钥SK、sk发送给授权用户;
步骤S3:创建索引:数据拥有者为每篇文档fi生成文档向量
Figure FDA0002111106770000011
若文档fi中包含关键词wj,则令
Figure FDA0002111106770000012
否则令
Figure FDA0002111106770000013
接着将文档向量
Figure FDA0002111106770000014
分u块,得到文档标记向量bi=(bb1,bb2,…,bbu)与ei=(bi,sidi),然后计算关键词wj在文档fi中的词频权重wft,f、逆文档频率idft和域加权得分Zij后,将
Figure FDA0002111106770000015
中1的值置为Zij·(wft,f×idft);接着对进行维度扩展,其中第(n+1)位设置成一个随机数ε,第(n+2)位设置成1,那么
Figure FDA0002111106770000017
表示为
Figure FDA0002111106770000018
sidi表示的含义为索引标识符;
采用安全KNN算法加密文档向量
Figure FDA0002111106770000019
得到Ii=(sidi,Vi);其中,
Figure FDA00021111067700000111
为向量
Figure FDA00021111067700000112
的***向量;最后,数据拥有者将E=(e1,e2,…,em)发送给私有云服务器,将索引集合
Figure FDA00021111067700000113
上传给公有云服务器;
步骤S4:数据拥有者使用对称加密算法对文档集合F=(f1,f2,…,fm)进行加密,得到密文集合C=(c1,c2,…,cm)并上传给公有云服务器;
步骤S5:构建陷门:当授权用户搜索时,首先输入η个搜索关键词Γ=(q1,q2,…,qs,…,qη),接着进行语义扩展,计算原单词qs和拓展词之间的语义相似度并排序,选取最相关的前σ个拓展词作为最终拓展词,得到语义拓展集合Q=(q1,q2,…,qη1,…,δσ)及其对应的语义相似度分数SC=(sc1,sc2,…,scη,scη+1,…,scη+σ);根据语义扩展集Q创建查询向量
Figure FDA0002111106770000021
若wj∈Q,则令
Figure FDA0002111106770000022
否则
Figure FDA0002111106770000023
Figure FDA0002111106770000024
分为u块,得到查询标记向量
Figure FDA0002111106770000025
接着将查询向量
Figure FDA0002111106770000026
中的1置为对应的语义相似度分数scj,然后将
Figure FDA0002111106770000027
扩展成(n+1)维且第(n+1)位设置为1,用大于0的随机数r对缩放,并扩展成(n+2)维,第(n+2)位设置成η+σ,因此
Figure FDA0002111106770000029
表示为
Figure FDA00021111067700000210
采用安全KNN算法加密查询向量
Figure FDA00021111067700000211
得到陷门
Figure FDA00021111067700000212
最后,授权用户将查询标记向量
Figure FDA00021111067700000213
发给私有云服务器,将陷门TQ上传到公有云服务器;其中,
Figure FDA00021111067700000214
表示查询向量
Figure FDA00021111067700000215
***后的一个向量,
Figure FDA00021111067700000216
表示查询向量***后的另一个向量;
步骤S6:私有云服务器接收到授权用户发送的查询标记向量
Figure FDA00021111067700000218
后,将其和文档标记向量bi=(bb1,bb2,…,bbu)进行匹配,得到可能包含搜索关键词的候选索引标识符集合SID=(…,sidi,…,sidj,…,sidz,…);
私有云服务器将SID上传给公有云服务器,公有云服务器根据索引的标识符sidi找到对应的安全索引Ii,将对应的Vi和陷门TQ计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户;
步骤S7:授权用户使用数据拥有者分发的密钥sk,对返回的top-k篇密文进行解密,获得所需的明文文档集。
2.根据权利要求1所述的一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,其特征在于:还包括分别对文档向量和查询向量进行分块,生成维数较小的文档标记向量和查询标记向量,通过文档标记向量和查询标记向量的匹配,快速过滤掉大量无关文档。
3.根据权利要求2所述的一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,其特征在于:对文档向量进行分块具体包括以下步骤:
步骤S11:文档向量
Figure FDA00021111067700000219
分为u块,若某个块全为0,则标记值bbs=0,否则bbs=1,得到文档标记向量bi=(bb1,bb2,…,bbu);
步骤S12:遍历所有文档,得到文档标记向量集合B=(b1,b2,...,bm)。
4.根据权利要求2所述的一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,其特征在于:通过文档标记向量和查询标记向量的匹配具体包括以下步骤:
步骤S21:私有云服务器接收到授权用户发送的查询标记向量
Figure FDA0002111106770000031
后,依次用
Figure FDA0002111106770000032
中每一位1去匹配ei中对应的块,即块的标记值bbs是否为0;
步骤S22:块的标记值bbs若为0,则说明该块对应的文档没有搜索的关键词,如果为1则将对应的索引标识符sidi记录下来,得到可能包含搜索关键词的候选索引标识符集合SID=(…,sidi,…,sidj,…,sidz,…);
步骤S23:私有云服务器将SID上传给公有云服务器,公有云服务器根据索引的标识符sidi找到对应的安全索引Ii,将对应的Vi和陷门TQ计算文档的相似度分数,将所有分数排序后,返回前k篇文档给用户。
5.根据权利要求1所述的一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,其特征在于:还包括将文档向量分段,将每一段分别与维度减小的矩阵相乘,具体包括以下步骤:
步骤S31:数据拥有者随机产生一个(n+2)比特的向量S和两个(n+2)×(n+2)维的可逆矩阵{M1,M2},密钥SK由四元组{S,M1,M2,u}组成,u是一个正整数并且u|n;
步骤S32:数据拥有者在构建索引时,根据安全KNN算法将文档向量
Figure FDA0002111106770000033
***成
Figure FDA0002111106770000034
Figure FDA0002111106770000035
后,将
Figure FDA0002111106770000037
分别分成h段,得到
Figure FDA0002111106770000038
然后使用密钥SK进行加密,得到
Figure FDA0002111106770000039
和对应的索引Ii=(sidi,Vi);最后,数据拥有者将E=(e1,e2,…,em)发送给私有云服务器,将索引集合
Figure FDA00021111067700000310
上传给公有云服务器;其中,矩阵M1h,M2h均表示维度为((n+2)/h)×((n+2)/h)的可逆矩阵;
步骤S33:授权用户在生成陷门时也采用步骤S32中构建索引时类似的操作,得到陷门
Figure FDA00021111067700000311
最后,授权用户将查询标记向量
Figure FDA00021111067700000312
发给私有云服务器,将陷门TQ上传到公有云服务器;
步骤S34:公有云服务器在计算相关度分数时,采用的公式如下:
Figure FDA0002111106770000041
6.根据权利要求1所述的一种云计算中保护数据隐私的快速多关键词语义排序搜索方法,其特征在于:所述排序采用三因子排序方法,对处于文档不同域中的关键词赋予不同的权重,将语义相似度、域加权评分和相关度分数三者结合,具体包括以下步骤:
步骤S41:计算语义相似度:采用基于信息内容的Resnik算法;
步骤S42:计算域加权评分:给定一系列文档,假定每篇文档有l个域,其对应的权重系数分别是g1,…gl∈[0,1],他们满足:
Figure FDA0002111106770000042
令si为查询和文档的第i个域的匹配得分,其中1和0分别表示是否匹配,于是,域加权评分定义为:
Figure FDA0002111106770000043
步骤S43:计算相关度分数:基于tf-idf权值计算方法以及tf的亚线性尺度变换方法计算相关度分数。
CN201710181664.6A 2017-03-24 2017-03-24 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法 Active CN106951411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710181664.6A CN106951411B (zh) 2017-03-24 2017-03-24 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710181664.6A CN106951411B (zh) 2017-03-24 2017-03-24 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法

Publications (2)

Publication Number Publication Date
CN106951411A CN106951411A (zh) 2017-07-14
CN106951411B true CN106951411B (zh) 2019-10-15

Family

ID=59472824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710181664.6A Active CN106951411B (zh) 2017-03-24 2017-03-24 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法

Country Status (1)

Country Link
CN (1) CN106951411B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107734054A (zh) * 2017-11-06 2018-02-23 福州大学 安全云存储中的加密数据检索***
CN108390855A (zh) * 2018-01-11 2018-08-10 中国人民解放军战略支援部队信息工程大学 一种面向云存储的属性基关键词搜索加密***及方法
CN108549701A (zh) * 2018-04-17 2018-09-18 上海海事大学 云环境加密外包数据语义扩展搜索方法及***
CN108647529A (zh) * 2018-05-09 2018-10-12 上海海事大学 一种基于语义的多关键词排序搜索隐私保护***及方法
CN110555198B (zh) * 2018-05-31 2023-05-23 北京百度网讯科技有限公司 用于生成文章的方法、装置、设备和计算机可读存储介质
CN108959567B (zh) * 2018-07-04 2021-05-04 武汉大学 一种云环境下适用于大规模图像的安全检索方法
CN109165520B (zh) * 2018-07-16 2020-08-11 哈尔滨工业大学(深圳) 数据加密方法及其装置、数据加密检索***
CN109063509A (zh) * 2018-08-07 2018-12-21 上海海事大学 一种基于关键词语义排序的可搜索加密方法
CN110858251B (zh) * 2018-08-22 2020-07-21 阿里巴巴集团控股有限公司 数据查询方法和装置
CN109271485B (zh) * 2018-09-19 2022-03-08 南京邮电大学 一种支持语义的云环境加密文档排序检索方法
CN109376288B (zh) * 2018-09-28 2021-04-23 邦道科技有限公司 一种实现语义搜索的云计算平台及其均衡方法
CN109308264B (zh) * 2018-10-22 2021-11-16 北京天融信网络安全技术有限公司 数据脱敏效果的评价方法及相应设备和存储介质
CN109471964B (zh) * 2018-10-23 2021-10-01 三亚哈尔滨工程大学南海创新发展基地 一种基于同义词集的模糊多关键词可搜索加密方法
CN109815730B (zh) * 2018-12-29 2020-11-20 中国科学院软件研究所 一种支持skyline查询的可搜索加密方法与***
CN109766314A (zh) * 2019-01-07 2019-05-17 西安电子科技大学 基于概率陷门的密文数据多关键词搜索方法
CN109960757A (zh) * 2019-02-27 2019-07-02 北京搜狗科技发展有限公司 网页检索方法及装置
CN110175328B (zh) * 2019-05-16 2023-02-17 镇江市高等专科学校 一种基于关键词序列结构的文档相似度度量方法及***
CN110795544B (zh) * 2019-09-10 2023-07-21 腾讯科技(深圳)有限公司 内容搜索方法、装置、设备和存储介质
CN110727951B (zh) * 2019-10-14 2021-08-27 桂林电子科技大学 具有隐私保护的轻量级外包文件多关键词检索方法及***
CN111966778B (zh) * 2020-07-08 2022-07-29 南京邮电大学 一种基于关键词分组倒排索引的多关键词密文排序检索方法
CN112134872B (zh) * 2020-09-16 2022-07-26 江苏省未来网络创新研究院 一种具有多应用层云计算功能的网络***
CN112966018B (zh) * 2021-03-03 2022-04-01 北京邮电大学 基于混合云的模糊检索方法
CN113139106B (zh) * 2021-05-07 2022-03-15 杭州世平信息科技有限公司 一种保密检查的事件审核方法和装置
CN113987593B (zh) * 2021-12-28 2022-03-15 北京妙医佳健康科技集团有限公司 一种数据处理方法
CN115630154B (zh) * 2022-12-19 2023-05-05 竞速信息技术(廊坊)有限公司 一种面向大数据环境的动态摘要信息构建方法及***
CN117278216B (zh) * 2023-11-23 2024-02-13 三亚学院 一种基于云计算虚拟化与网络存储文件的加密***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023051A (zh) * 2014-05-22 2014-09-03 西安理工大学 云存储中多用户多个关键词可搜索的加密方法
CN104765848A (zh) * 2015-04-17 2015-07-08 中国人民解放军空军航空大学 混合云存储中支持结果高效排序的对称可搜索加密方法
CN105335510A (zh) * 2015-10-30 2016-02-17 成都博睿德科技有限公司 文本数据高效搜索方法
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023051A (zh) * 2014-05-22 2014-09-03 西安理工大学 云存储中多用户多个关键词可搜索的加密方法
CN104765848A (zh) * 2015-04-17 2015-07-08 中国人民解放军空军航空大学 混合云存储中支持结果高效排序的对称可搜索加密方法
CN105335510A (zh) * 2015-10-30 2016-02-17 成都博睿德科技有限公司 文本数据高效搜索方法
CN106407447A (zh) * 2016-09-30 2017-02-15 福州大学 一种加密云数据下基于Simhash的模糊排序搜索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Privacy-preserving multi-keyword ranked search over encrypted cloud data;Ning Cao et al.;《2011 Proceedings IEEE INFOCOM》;20110415;829-837 *
Two-Step-Ranking Secure Multi-Keyword Search over Encrypted Cloud Data;Jun Xu et al.;《2012 International Conference on Cloud and Service Computing》;20121124;124-130 *

Also Published As

Publication number Publication date
CN106951411A (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
CN106951411B (zh) 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法
CN104765848B (zh) 混合云存储中支持结果高效排序的对称可搜索加密方法
CN106997384B (zh) 一种排序可验证的语义模糊可搜索加密方法
Chen et al. Collabseer: a search engine for collaboration discovery
Zhang et al. SE-PPFM: A searchable encryption scheme supporting privacy-preserving fuzzy multikeyword in cloud systems
Fu et al. Achieving effective cloud search services: multi-keyword ranked search over encrypted cloud data supporting synonym query
CN108647529A (zh) 一种基于语义的多关键词排序搜索隐私保护***及方法
CN109063509A (zh) 一种基于关键词语义排序的可搜索加密方法
Zhong et al. Efficient dynamic multi-keyword fuzzy search over encrypted cloud data
Xia et al. An efficient and privacy-preserving semantic multi-keyword ranked search over encrypted cloud data
CN108171071A (zh) 一种面向云计算的多关键字可排序密文检索方法
Liu et al. FSSE: An effective fuzzy semantic searchable encryption scheme over encrypted cloud data
CN109255244A (zh) 数据加密方法及其装置、数据加密检索***
Chen et al. Case-sse: Context-aware semantically extensible searchable symmetric encryption for encrypted cloud data
CN108549701A (zh) 云环境加密外包数据语义扩展搜索方法及***
Mittal et al. Privacy preserving synonym based fuzzy multi-keyword ranked search over encrypted cloud data
Van Zwol et al. Ranking entity facets based on user click feedback
CN109614521A (zh) 一种高效的隐私保护子图查询处理方法
Hu et al. Topical authority propagation on microblogs
CN108768651A (zh) 支持多维区间范围查询的可搜索公钥加密方法
Xia et al. A multi-keyword ranked search over encrypted cloud data supporting semantic extension
Raghavendra et al. Split keyword fuzzy and synonym search over encrypted cloud data
Er et al. Set of t-uples expansion by example
Onal et al. Utilizing word embeddings for result diversification in tweet search
Hassanpour et al. An adaptive meta-search engine considering the user’s field of interest

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant