CN115757676A - 模糊可搜索加密方法、装置及电子设备 - Google Patents

模糊可搜索加密方法、装置及电子设备 Download PDF

Info

Publication number
CN115757676A
CN115757676A CN202211262289.5A CN202211262289A CN115757676A CN 115757676 A CN115757676 A CN 115757676A CN 202211262289 A CN202211262289 A CN 202211262289A CN 115757676 A CN115757676 A CN 115757676A
Authority
CN
China
Prior art keywords
retrieval
document
fuzzy
cloud server
search
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.)
Pending
Application number
CN202211262289.5A
Other languages
English (en)
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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN202211262289.5A priority Critical patent/CN115757676A/zh
Publication of CN115757676A publication Critical patent/CN115757676A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种模糊可搜索加密方法、装置及电子设备,该方法包括:私有云服务器接收数据使用者发送的索引密钥和包括检索关键词的查询请求;根据检索关键词构建检索模糊词集并根据索引密钥计算得到对应的陷门集;向公有云服务器发送包括陷门集的搜索请求;接收公有云服务器返回的多个检索文档标识及其对应的排序分数;多个检索文档标识由公有云服务器根据私有云服务器构建并上传的基于布隆过滤器分组的搜索树检索陷门集并匹配获得,排序分数由公有云服务器根据私有云服务器发送的加密相关度分数和加密查询值计算得到;根据排序分数对多个检索文档标识排序形成搜索结果返回给数据使用者。从而使检索效率提高,搜索结果更加符合数据使用者的需求。

Description

模糊可搜索加密方法、装置及电子设备
技术领域
本发明涉及信息安全技术领域,尤其涉及一种模糊可搜索加密方法、装置及电子设备。
背景技术
在密文存储条件下仍能支持模糊搜索是有必要的。目前实现模糊可搜索加密的方法有多种,如先利用直接构造、基于通配符构造或基于N元模型(N-gram)构造构建模糊词集,再构建树型字典树的方法;还有一种语义扩展算法,不仅可以返回完全匹配的数据,还可以返回与查询关键词语义相关的内容;还有一种基于通配符构造、基于拼音构造和基于改进拼音构造三种建立中文模糊关键词集的方法,通过改进的词频-逆文本频率指数(TermFrequency-Inverse Document Frequency,TF-IDF)准则,设计的一个支持排序的中文模糊可搜索加密方案。
然而,这些模糊可搜索加密方法的实践效果并不理想,存在模糊词集占用存储空间较大,检索效率不高,搜索结果排序结果不符合用户预期的问题。
发明内容
针对现有技术存在的问题,本发明提供一种模糊可搜索加密方法、装置及电子设备。
第一方面,本发明提供一种模糊可搜索加密方法,应用于私有云服务器,包括:
接收数据使用者发送的索引密钥和查询请求,所述查询请求中包括检索关键词;
根据所述检索关键词构建检索模糊词集,并根据所述索引密钥计算所述检索模糊词集中每个检索模糊词对应的陷门值,得到所述检索模糊词集对应的陷门集;
向公有云服务器发送搜索请求,所述搜索请求中包括所述陷门集;
接收所述公有云服务器返回的多个检索文档标识,以及每个检索文档标识对应的排序分数;其中,所述多个检索文档标识由所述公有云服务器根据所述私有云服务器构建并上传的基于布隆过滤器分组的搜索树检索所述陷门集并匹配获得,所述每个检索文档标识对应的排序分数由所述公有云服务器根据所述私有云服务器发送的每个检索文档标识对应的加密相关度分数和加密查询值计算得到,所述加密相关度分数为对所述检索关键词与检索文档之间的相关度分数进行加密得到,所述加密查询值为对检索文档的查询值进行加密得到;
根据所述排序分数对所述多个检索文档标识进行排序,形成搜索结果返回给所述数据使用者。
可选地,所述基于布隆过滤器分组的搜索树的构建方式包括:
对上传文档的模糊词集中每个模糊词计算相应的索引值;
将属于同一上传文档的多个索引值添加到所述同一上传文档对应的布隆过滤器中,并将所述布隆过滤器作为叶节点;
对相邻布隆过滤器进行或运算,产生新的布隆过滤器作为所述相邻布隆过滤器的父节点;
重复生成父节点的过程,直到生成根节点。
可选地,所述方法还包括:
计算不同的布隆过滤器之间的相似度,并根据所述相似度,对布隆过滤器进行排列分侧。
可选地,所述上传文档的模糊词集的生成方式包括:
接收上传文档的关键词集,所述上传文档的关键词集是数据拥有者利用Word分词工具提取后发送给所述私有云服务器的;
基于同义词典,构建所述上传文档的关键词集所对应的模糊词集。
可选地,所述排序分数通过以下公式确定:
Quality=Decsim*weightsim+Decq*weightq
其中,Quality表示所述排序分数,Decsim表示所述加密相关度分数,Decq表示所述加密查询值,weightsim、weightq分别表示所述加密相关度分数的权重和所述加密查询值的权重。
可选地,所述检索文档的查询值的确定方式包括:
初始化所有检索文档的查询值为1;
根据查询值更新规则对查询值进行更新;
所述查询值更新规则包括:
若确定目标检索文档被下载,则将所述目标检索文档的查询值加1;
若确定在预设时长内目标检索文档未被下载,则将所述目标检索文档的查询值减1。
第二方面,本发明还提供一种模糊可搜索加密装置,应用于私有云服务器,包括:
第一接收模块,用于接收数据使用者发送的索引密钥和查询请求,所述查询请求中包括检索关键词;
陷门模块,用于根据所述检索关键词构建检索模糊词集,并根据所述索引密钥计算所述检索模糊词集中每个检索模糊词对应的陷门值,得到所述检索模糊词集对应的陷门集;
发送模块,用于向公有云服务器发送搜索请求,所述搜索请求中包括所述陷门集;
第二接收模块,用于接收所述公有云服务器返回的多个检索文档标识,以及每个检索文档标识对应的排序分数;其中,所述多个检索文档标识由所述公有云服务器根据所述私有云服务器构建并上传的基于布隆过滤器分组的搜索树检索所述陷门集并匹配获得,所述每个检索文档标识对应的排序分数由所述公有云服务器根据所述私有云服务器发送的每个检索文档标识对应的加密相关度分数和加密查询值计算得到,所述加密相关度分数为对所述检索关键词与检索文档之间的相关度分数进行加密得到,所述加密查询值为对检索文档的查询值进行加密得到;
排序模块,用于根据所述排序分数对所述多个检索文档标识进行排序,形成搜索结果返回给所述数据使用者。
第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述第一方面所述的模糊可搜索加密方法。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述第一方面所述的模糊可搜索加密方法。
第五方面,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述模糊可搜索加密方法。
本发明提供的模糊可搜索加密方法、装置及电子设备,通过私有云服务器构建基于布隆过滤器分组的搜索树并上传公有云服务器,接收数据使用者的索引密钥和检索关键词,根据检索关键词构建检索模糊词集,根据索引密钥计算检索模糊词集中每个检索模糊词对应的陷门值,得到检索模糊词集对应的陷门集,公有云服务器根据基于布隆过滤器分组的搜索树检索陷门集并匹配获得多个检索文档标识,并根据加密相关度分数和加密查询值计算这多个检索文档的排序分数,再由私有云服务器根据排序分数对多个检索文档标识进行排序,形成搜索结果返回数据使用者,从而使得检索效率提高,并让搜索结果更加符合数据使用者的需求。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的模糊可搜索加密方法的流程示意图;
图2是本发明提供的基于布隆过滤器分组的搜索树的示意图;
图3是本发明提供的模糊可搜索加密系统的框架示意图;
图4是本发明提供的模糊可搜索加密装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着云服务技术的发展,极大提高了用户进行数据存储和访问的便利性,大量用户开始将个人数据上传到云端。然而,在用户享受着“云”带来的便利时,也面临着隐私数据泄露的问题。为避免数据泄露,用户一般会选择将数据加密上传,但这也使得云服务失去了一些仅在明文情况下可用的功能。
为了解决数据加密上传后的可用性问题,提出了可搜索加密的概念,其核心思想在于将数据中提取的关键词生成安全索引,检索时利用索引和数据的对应关系获取相关结果。只是目前的可搜索加密方案大部分都只支持精确搜索,无法处理用户输入拼写错误或检索关键词不明确的情况,返回结果与用户预期结果差异较大,因此,在密文存储条件下仍能支持模糊搜索是非常有必要的。
目前实现模糊可搜索加密的方法有多种,如先利用直接构造、基于通配符构造或基于N-gram构造构建模糊词集,再构建树型字典树的方法;一种语义扩展算法,不仅可以返回完全匹配的数据,还可以返回与查询关键词语义相关的内容;基于通配符构造、基于拼音构造和基于改进拼音构造三种建立中文模糊关键词集的方法,通过改进的TF-IDF准则,设计了一个支持排序的中文模糊可搜索加密方案。
然而,在提出的众多实现方法中,实践效果却并不理想。模糊词集占用存储空间较大,检索时效率不高。并且几乎所有模糊搜索方案在结果排序时因素单一,排序结果不佳,极端情况下,如果文本集合为同一类文本(比如全是包含“历史”关键词形成的文档集),文本特征统计效果就会变差,将会导致排序结果与用户心理预期差距较大。
针对这些问题,本发明提出了一种模糊可搜索加密方法、装置及电子设备,可以在保证隐私的前提下从多维度对结果进行排序,提高检索效率和准确性,排序结果更加符合用户预期。
图1为本发明提供的模糊可搜索加密方法的流程示意图,如图1所示,该方法应用于私有云服务器,包括以下步骤:
步骤100、接收数据使用者发送的索引密钥和查询请求,查询请求中包括检索关键词。
具体地,在数据拥有者需要将上传文档上传至公有云服务器的情况下,数据拥有者可以首先通过密钥生成函数生成文档密钥、哈希函数密钥和索引密钥。例如,通过输入安全参数λ,计算
Figure BDA0003891600890000061
Figure BDA0003891600890000062
生成文档密钥k1、哈希函数密钥k2、索引密钥sk。
其中,文档密钥用于对上传文档进行加解密,哈希函数密钥用于对布隆过滤器中使用的哈希函数进行认证,例如消息认证码(Message Authentication Code,MAC),索引密钥用于上传文档的模糊词和检索关键词的模糊词计算分别生成索引值和陷门值。
得到文档密钥、哈希函数密钥和索引密钥后,数据拥有者对上传文档进行加密并上传至公有云服务器,并提取上传文档的关键词,获得上传文档的关键词集。
数据拥有者可以通过安全信道将哈希函数密钥、索引密钥以及上传文档的关键词集发送给私有云服务器,将文档密钥和索引密钥共享给数据使用者。
在数据使用者需要检索下载数据拥有者上传至公有云服务器的文档的情况下,数据使用者可以向私有云服务器发送索引密钥和查询请求。其中,查询请求包括检索关键词,检索关键词为数据使用者在检索想要使用的文档时所输入的关键词。
步骤101、根据检索关键词构建检索模糊词集,并根据索引密钥计算检索模糊词集中每个检索模糊词对应的陷门值,得到检索模糊词集对应的陷门集。
具体地,私有云服务器接收到数据使用者发送的索引密钥和查询请求后,可以根据查询请求中的检索关键词构建检索模糊词集,构建检索模糊词集的方式不做限定,例如,可以是根据同义词典来构建的。
得到检索模糊词集后,私有云服务器可以根据索引密钥计算检索模糊词集中每个检索模糊词对应的陷门值,从而得到检索模糊词集对应的陷门集。计算陷门值的方式不做限定,例如,可以是用一个单向不可逆的伪随机函数来计算的。
此前,私有云服务器接收到数据拥有者发送的上传文档的关键词集后,可以根据上传文档的关键词集构建上传文档的模糊词集,构建上传文档的模糊词集的方式不做限定,例如,可以是根据同义词典来构建的。
得到上传文档的模糊词集后,私有云服务器可以根据索引密钥计算上传文档的模糊词集中每个模糊词对应的索引值,从而得到上传文档的模糊词集对应的索引集。计算索引值的方式不做限定,例如,可以是用一个单向不可逆的伪随机函数来计算的。
可以理解的是,私有云服务器构建检索模糊词集的方式和构建上传文档的模糊词集的方式应该是相同的;且根据相同的索引密钥计算陷门值和索引值,所用到的计算方式也应该是相同的。
步骤102、向公有云服务器发送搜索请求,搜索请求中包括陷门集。
具体地,私有云服务器得到陷门集后,可以向公有云服务器发送搜索请求,搜索请求中包括陷门集,使得公有云服务器在接收到包括陷门集的搜索请求后,可以根据基于布隆过滤器分组的搜索树检索陷门集来匹配出多个检索文档。
步骤103、接收公有云服务器返回的多个检索文档标识,以及每个检索文档标识对应的排序分数;其中,多个检索文档标识由公有云服务器根据私有云服务器构建并上传的基于布隆过滤器分组的搜索树检索陷门集并匹配获得,每个检索文档标识对应的排序分数由公有云服务器根据私有云服务器发送的每个检索文档标识对应的加密相关度分数和加密查询值计算得到,加密相关度分数为对检索关键词与检索文档之间的相关度分数进行加密得到,加密查询值为对检索文档的查询值进行加密得到。
具体地,公有云服务器根据基于布隆过滤器分组的搜索树检索陷门集匹配出多个检索文档后,可以向私有云服务器返回这多个检索文档的标识。私有云服务器接收到这多个检索文档的标识后,可以计算检索关键词和这多个检索文档的文档关键词之间的相关度分数,获取这多个检索文档的查询值。
计算检索关键词和这多个检索文档的文档关键词之间的相关度分数可以是根据TF-IDF算法计算的,其公式如下:
Sim=(1+ln Nf)*ln(1+n/nw)
其中,Sim表示相关度分数;Nf表示检索关键词在检索文档中出现的频率,为文档中检索关键词出现的次数与总关键词数之比;n为检索文档总数,nw为包含检索关键词w的检索文档数。
然后私有云服务器可以对相关度分数和查询值进行加密。
对相关度分数和查询值加密的方式可以是同态加密,其公式如下:
cipher=gm·rnmod n2
其中,cipher为加密后得到的值,n和g为公共参数,m为原文(即相关度分数或查询值),r为一个随机数,m和r小于n。
对相关度分数和查询值进行加密后,私有云服务器将加密相关度分数和加密查询值发送至公有云服务器。公有云服务器根据私有云服务器发送的每个检索文档标识对应的加密相关度分数和加密查询值,计算得到每个检索文档标识对应的排序分数,然后再返回给私有云服务器。
一种实施方式中,每个检索文档标识对应的排序分数可以通过以下公式确定:
Quality=Decsim*weightsim+Decq*weightq
其中,Quality表示排序分数,Decsim表示加密相关度分数,Decq表示加密查询值,weightsim、weightq分别表示加密相关度分数的权重和加密查询值的权重。加密相关度分数的权重和加密查询值的权重可以是预先设定好的。
步骤104、根据排序分数对多个检索文档标识进行排序,形成搜索结果返回给数据使用者。
具体地,私有云服务器接收到每个检索文档标识对应的排序分数后,可以对排序分数进行解密。
当对相关度分数和查询值加密的方式是同态加密的情况下,对排序分数进行解密的方式是同态解密,其公式如下:
Figure BDA0003891600890000101
其中,plain为解密后得到的值,λ和n为公共参数,c为密文(即根据加密相关度分数和加密查询值排序分数计算得到的排序分数),c小于n2,L为一个功能函数,即L(u)=(u-1)/u。
得到解密后的排序分数后,私有云服务器就可以按照解密后的排序分数对这多个检索文档标识进行排序(例如排序分数从大到小的顺序),从而形成搜索结果并返回给数据使用者。
本发明提供的模糊可搜索加密方法,通过私有云服务器构建基于布隆过滤器分组的搜索树并上传公有云服务器,接收数据使用者的索引密钥和检索关键词,根据检索关键词构建检索模糊词集,根据索引密钥计算检索模糊词集中每个检索模糊词对应的陷门值,得到检索模糊词集对应的陷门集,公有云服务器根据基于布隆过滤器分组的搜索树检索陷门集并匹配获得多个检索文档标识,并根据加密相关度分数和加密查询值计算这多个检索文档的排序分数,再由私有云服务器根据排序分数对多个检索文档标识进行排序,形成搜索结果返回数据使用者,从而使得检索效率提高,并让搜索结果更加符合数据使用者的需求。
可选地,基于布隆过滤器分组的搜索树的构建方式包括:
对上传文档的模糊词集中每个模糊词计算相应的索引值;
将属于同一上传文档的多个索引值添加到同一上传文档对应的布隆过滤器中,并将布隆过滤器作为叶节点;
对相邻布隆过滤器进行或运算,产生新的布隆过滤器作为相邻布隆过滤器的父节点;
重复生成父节点的过程,直到生成根节点。
具体地,私有云服务器接收到数据拥有者发送的上传文档的关键词集后,可以根据上传文档的关键词集构建上传文档的模糊词集,并根据索引密钥对上传文档的模糊词集中每个模糊词计算相应的索引值,从而得到上传文档的模糊词集对应的索引集。
一个上传文档对应一个关键词集,从而一个上传文档对应一个索引集。设置一个上传文档对应一个布隆过滤器。
图2为本发明提供的基于布隆过滤器分组的搜索树的示意图,如图2所示,将每个上传文档的索引集包括的多个索引值添加到该上传文档对应的布隆过滤器中,将每个上传文档对应的布隆过滤器作为叶节点。然后对相邻的布隆过滤器进行或运算,产生新的布隆过滤器作为相邻布隆过滤器的父节点。例如,f1为101100,f2为111100,则r1=f1|f2,为111100。
然后采用同样的方法处理其他的布隆过滤器,直到生成根节点,就构建了基于布隆过滤器分组的搜索树。
公有云服务器在接收到包括陷门集的搜索请求后,可以根据基于布隆过滤器分组的搜索树检索陷门集来匹配出多个检索文档,如图2所示,检索陷门集的过程可以是:当某一检索模糊词的陷门值映射到了布隆过滤器中的位置5(即第5位),结点r的位置5为1,则继续检查孩子结点。结点r1位置5不为1,不会再继续向下检索;结点r2位置5为1,则继续向下检索,最终找到结点f4,则结点f4对应的布隆过滤器所对应的上传文档为检索文档。
可选地,该方法还包括:
计算不同的布隆过滤器之间的相似度,并根据相似度,对布隆过滤器进行排列分侧。
具体地,在构建搜索树的过程中,可以计算不同的布隆过滤器之间的相似度,根据相似度,使得相似度较高的布隆过滤器尽量处于搜索树的同一侧。
一种实施方式中,可以采用余弦相似度来计算不同的布隆过滤器之间的相似度。
通过相似度的计算将布隆过滤器进行分组,可以让形式相近的布隆过滤器大部分位于搜索树的同一侧,在检索时可以对搜索树进行剪枝,提高实际检索时的效率。
可选地,上传文档的模糊词集的生成方式包括:
接收上传文档的关键词集,上传文档的关键词集是数据拥有者利用Word分词工具提取后发送给私有云服务器的;
基于同义词典,构建上传文档的关键词集所对应的模糊词集。
具体地,数据拥有者可以将上传文档的关键词集发送给私有云服务器,在生成上传文档的关键词集时,可以利用Word分词工具来完成中文文档的关键词提取。其中,Word分词工具为一种Java实现的分布式的中文分词组件。
然后,私有云服务器可以基于事先用语料库建立好的同义词典来构建上传文档的关键词集对应的模糊词集。
通过搜集的语料库建立好分词字典和同义词典,再利用Word分词工具完成中文文档的关键词提取和模糊词集构建,然后映射到布隆过滤器中,采用该方法的模糊词集构建时间以及存储空间远小于基于拼音构造模糊词集。同时,与基于通配符构造模糊词集相比,编辑距离越大,这一方法在构建时间和存储空间方面的改善越好。
可选地,检索文档的查询值的确定方式包括:
初始化所有检索文档的查询值为1;
根据查询值更新规则对查询值进行更新;
查询值更新规则包括:
若确定目标检索文档被下载,则将目标检索文档的查询值加1;
若确定在预设时长内目标检索文档未被下载,则将目标检索文档的查询值减1。
具体地,私有云服务器可以设定检索文档的查询值。首先初始化所有检索文档的查询值为1,然后根据查询值更新规则对查询值进行更新:当目标检索文档被数据使用者下载的时候,目标检索文档的查询值加1;定期检查每个检索文档的下载情况,如果预设的时长内目标检索文档没有被下载,则将目标检索文档的查询值减1;目标文档的查询值的最小值为1。
图3为本发明提供的模糊可搜索加密系统的框架示意图,如图3所示,该系统包含四个实体:数据拥有者、数据使用者、公有云服务器、私有云服务器,以下基于该系统介绍本发明提供的模糊可搜索加密方法的具体实施流程,包括:
步骤S1:初始化并生成密钥,包括如下步骤:
步骤S1-1:生成密钥。数据拥有者输入安全参数λ,计算
Figure BDA0003891600890000131
产生文档密钥k1、哈希函数密钥k2、索引密钥sk。
步骤S1-2:文档分词。利用Word分词工具,根据事先用语料库建立好的字典,提取文档D中的关键词集W={W1,W2,…,Wn}。
步骤S1-3:通过安全信道将{k1,k2,sk,W}发送给私有云服务器,同时将{k1,sk}共享给数据使用者。
步骤S2:构建模糊词集,包括如下步骤:
根据同义词典,为每个文档的关键词Wi生成模糊词集W′i={w1,w2,…wf}。
步骤S3:建立索引,包括如下步骤:
步骤S3-1:私有云服务器对模糊词集中每个关键词w′i∈W′(1≤i≤f)计算索引值
Figure BDA0003891600890000132
f()是一个单向不可逆的伪随机函数。
步骤S3-2:将计算得到的索引值添加到布隆过滤器中,根据生成步骤构建一棵基于布隆过滤器分组的搜索树IW。结点fi保存的是原始文档关键词信息,r1=f1|f2,r2=f3|f4,…,依次类推,可以得到最终的基于布隆过滤器分组的搜索树IW
步骤S3-3:将基于布隆过滤器分组的搜索树Iw上传到公有云服务器。
步骤S4:加密。利用对称加密算法将文档D加密,生成密文文档C,上传到公有云服务器。
步骤S5:生成陷门,包括如下步骤:
步骤S5-1:构建检索关键词模糊词集。私有云服务器接收到数据使用者发送的密钥以及查询请求,先用同样的方法构建检索关键词的模糊词集W′q
步骤S5-2:计算陷门。为模糊词集W′q中的每个关键词w′j∈W′q计算其陷门值
Figure BDA0003891600890000141
步骤S5-3:将最终产生的陷门集TW发送到公有云服务器,请求检索。
步骤S6:检索,包括如下步骤:
步骤S6-1:陷门匹配。公有云服务器在收到私有云服务器发来的检索请求后,用陷门值到基于布隆过滤器分组的搜索树中匹配,例如,检索关键词w′j陷门值映射到了布隆过滤器中的位置5,结点r位置5为1,则继续检查孩子结点;结点r1位置5不为1,不会再继续向下检索;结点r2位置5为1,继续向下检查,最终找到结点f4(节点f4位置5为1),得到结点对应文档信息。得到结点对应文档信息后返回给私有云服务器。
步骤S6-2:检索结果相关度计算。私有云服务器根据TF-IDF规则计算检索关键词和文档关键词的相关度分数Sim并同态加密得到Decsim,然后获取文档的查询值Q并同态加密得到Decq,发送至公有云服务器,公有云服务器计算得到排序值Quality。
该过程采用公式如下:
Sim=(1+ln Nf)*ln(1+n/nw)
Quality=Decsim*weightsim+Decq*weightq
同态加密:cipher=gm·rnmod n2
其中,Sim表示相关度分数;Nf表示检索关键词在检索文档中出现的频率,为文档中检索关键词出现的次数与总关键词数之比;n为检索文档总数,nw为包含检索关键词w的检索文档数。
Quality表示排序分数,Decsim表示加密相关度分数,Decq表示加密查询值,weightsim、weightq分别表示加密相关度分数的权重和加密查询值的权重。加密相关度分数的权重和加密查询值的权重可以是预先设定好的。
cipher为加密后得到的值,n和g为公共参数,m为原文(即相关度分数或查询值),r为一个随机数,m和r小于n。
计算完成后将文档标识对应的排序值返回给私有云服务器。
步骤S6-3:检索结果排序。私有云服务器同态解密排序值完成排序,返回前k个结果给数据使用者。
同态解密公式如下:
同态解密:
Figure BDA0003891600890000151
其中,plain为解密后得到的值,λ和n为公共参数,c为密文(即根据加密相关度分数和加密查询值排序分数计算得到的排序分数),c小于n2,L为一个功能函数,即L(u)=(u-1)/u。
步骤S7:解密下载,包括如下步骤:
步骤S7-1:下载文档。数据使用者根据需求从公有云服务器下载文档,同时将下载文档的标识反馈给私有云服务器,把本次查询中所下载文档的查询值加1。
步骤S7-2:解密文档。数据使用者利用文档密钥k1完成解密。
步骤S7-3:维护查询值。定期检查文档下载情况,若文档上次查询时间距当前时间超过阈值T,则将查询值减1。
综上所述,本实施例主要包括字典建立、同义模糊词集构建、基于布隆过滤器分组的搜索树生成以及密文下的模糊搜索等功能。通过提取文档中的关键词信息生成搜索树,再将文档加密上传;检索时会生成陷门并匹配,最终按相关度排序返回检索结果;同时,为了优化之后的排序结果,会记录数据使用者的文档下载情况。
下面对本发明提供的模糊可搜索加密装置进行描述,下文描述的模糊可搜索加密装置与上文描述的模糊可搜索加密方法可相互对应参照。
图4为本发明提供的模糊可搜索加密装置的结构示意图,如图4所示,该装置包括:
第一接收模块400,用于接收数据使用者发送的索引密钥和查询请求,查询请求中包括检索关键词;
陷门模块410,用于根据检索关键词构建检索模糊词集,并根据索引密钥计算检索模糊词集中每个检索模糊词对应的陷门值,得到检索模糊词集对应的陷门集;
发送模块420,用于向公有云服务器发送搜索请求,搜索请求中包括陷门集;
第二接收模块430,用于接收公有云服务器返回的多个检索文档标识,以及每个检索文档标识对应的排序分数;其中,多个检索文档标识由公有云服务器根据私有云服务器构建并上传的基于布隆过滤器分组的搜索树检索陷门集并匹配获得,每个检索文档标识对应的排序分数由公有云服务器根据私有云服务器发送的每个检索文档标识对应的加密相关度分数和加密查询值计算得到,加密相关度分数为对检索关键词与检索文档之间的相关度分数进行加密得到,加密查询值为对检索文档的查询值进行加密得到;
排序模块440,用于根据排序分数对多个检索文档标识进行排序,形成搜索结果返回给数据使用者。
可选地,基于布隆过滤器分组的搜索树的构建方式包括:
对上传文档的模糊词集中每个模糊词计算相应的索引值;
将属于同一上传文档的多个索引值添加到同一上传文档对应的布隆过滤器中,并将布隆过滤器作为叶节点;
对相邻布隆过滤器进行或运算,产生新的布隆过滤器作为相邻布隆过滤器的父节点;
重复生成父节点的过程,直到生成根节点。
可选地,该装置还包括计算模块,用于:
计算不同的布隆过滤器之间的相似度,并根据相似度,对布隆过滤器进行排列分侧。
可选地,上传文档的模糊词集的生成方式包括:
接收上传文档的关键词集,上传文档的关键词集是数据拥有者利用Word分词工具提取后发送给私有云服务器的;
基于同义词典,构建上传文档的关键词集所对应的模糊词集。
可选地,排序分数通过以下公式确定:
Quality=Decsim*weightsim+Decq*weightq
其中,Quality表示排序分数,Decsim表示加密相关度分数,Decq表示加密查询值,weightsim、weightq分别表示加密相关度分数的权重和加密查询值的权重。
可选地,检索文档的查询值的确定方式包括:
初始化所有检索文档的查询值为1;
根据查询值更新规则对查询值进行更新;
查询值更新规则包括:
若确定目标检索文档被下载,则将目标检索文档的查询值加1;
若确定在预设时长内目标检索文档未被下载,则将目标检索文档的查询值减1。
在此需要说明的是,本发明提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
图5为本发明提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行上述各实施例提供的任一所述模糊可搜索加密方法。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在此需要说明的是,本发明提供的电子设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各实施例提供的任一所述模糊可搜索加密方法。
在此需要说明的是,本发明提供的计算机程序产品,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的任一所述模糊可搜索加密方法。
在此需要说明的是,本发明提供的非暂态计算机可读存储介质,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种模糊可搜索加密方法,其特征在于,应用于私有云服务器,包括:
接收数据使用者发送的索引密钥和查询请求,所述查询请求中包括检索关键词;
根据所述检索关键词构建检索模糊词集,并根据所述索引密钥计算所述检索模糊词集中每个检索模糊词对应的陷门值,得到所述检索模糊词集对应的陷门集;
向公有云服务器发送搜索请求,所述搜索请求中包括所述陷门集;
接收所述公有云服务器返回的多个检索文档标识,以及每个检索文档标识对应的排序分数;其中,所述多个检索文档标识由所述公有云服务器根据所述私有云服务器构建并上传的基于布隆过滤器分组的搜索树检索所述陷门集并匹配获得,所述每个检索文档标识对应的排序分数由所述公有云服务器根据所述私有云服务器发送的每个检索文档标识对应的加密相关度分数和加密查询值计算得到,所述加密相关度分数为对所述检索关键词与检索文档之间的相关度分数进行加密得到,所述加密查询值为对检索文档的查询值进行加密得到;
根据所述排序分数对所述多个检索文档标识进行排序,形成搜索结果返回给所述数据使用者。
2.根据权利要求1所述的模糊可搜索加密方法,其特征在于,所述基于布隆过滤器分组的搜索树的构建方式包括:
对上传文档的模糊词集中每个模糊词计算相应的索引值;
将属于同一上传文档的多个索引值添加到所述同一上传文档对应的布隆过滤器中,并将所述布隆过滤器作为叶节点;
对相邻布隆过滤器进行或运算,产生新的布隆过滤器作为所述相邻布隆过滤器的父节点;
重复生成父节点的过程,直到生成根节点。
3.根据权利要求2所述的模糊可搜索加密方法,其特征在于,所述方法还包括:
计算不同的布隆过滤器之间的相似度,并根据所述相似度,对布隆过滤器进行排列分侧。
4.根据权利要求2所述的模糊可搜索加密方法,其特征在于,所述上传文档的模糊词集的生成方式包括:
接收上传文档的关键词集,所述上传文档的关键词集是数据拥有者利用Word分词工具提取后发送给所述私有云服务器的;
基于同义词典,构建所述上传文档的关键词集所对应的模糊词集。
5.根据权利要求1所述的模糊可搜索加密方法,其特征在于,所述排序分数通过以下公式确定:
Quality=Decsim*weightsim+Decq*weightq
其中,Quality表示所述排序分数,Decsim表示所述加密相关度分数,Decq表示所述加密查询值,weightsim、weightq分别表示所述加密相关度分数的权重和所述加密查询值的权重。
6.根据权利要求1或5所述的模糊可搜索加密方法,其特征在于,所述检索文档的查询值的确定方式包括:
初始化所有检索文档的查询值为1;
根据查询值更新规则对查询值进行更新;
所述查询值更新规则包括:
若确定目标检索文档被下载,则将所述目标检索文档的查询值加1;
若确定在预设时长内目标检索文档未被下载,则将所述目标检索文档的查询值减1。
7.一种模糊可搜索加密装置,其特征在于,应用于私有云服务器,包括:
第一接收模块,用于接收数据使用者发送的索引密钥和查询请求,所述查询请求中包括检索关键词;
陷门模块,用于根据所述检索关键词构建检索模糊词集,并根据所述索引密钥计算所述检索模糊词集中每个检索模糊词对应的陷门值,得到所述检索模糊词集对应的陷门集;
发送模块,用于向公有云服务器发送搜索请求,所述搜索请求中包括所述陷门集;
第二接收模块,用于接收所述公有云服务器返回的多个检索文档标识,以及每个检索文档标识对应的排序分数;其中,所述多个检索文档标识由所述公有云服务器根据所述私有云服务器构建并上传的基于布隆过滤器分组的搜索树检索所述陷门集并匹配获得,所述每个检索文档标识对应的排序分数由所述公有云服务器根据所述私有云服务器发送的每个检索文档标识对应的加密相关度分数和加密查询值计算得到,所述加密相关度分数为对所述检索关键词与检索文档之间的相关度分数进行加密得到,所述加密查询值为对检索文档的查询值进行加密得到;
排序模块,用于根据所述排序分数对所述多个检索文档标识进行排序,形成搜索结果返回给所述数据使用者。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述模糊可搜索加密方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述模糊可搜索加密方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述模糊可搜索加密方法。
CN202211262289.5A 2022-10-14 2022-10-14 模糊可搜索加密方法、装置及电子设备 Pending CN115757676A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211262289.5A CN115757676A (zh) 2022-10-14 2022-10-14 模糊可搜索加密方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211262289.5A CN115757676A (zh) 2022-10-14 2022-10-14 模糊可搜索加密方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN115757676A true CN115757676A (zh) 2023-03-07

Family

ID=85351474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211262289.5A Pending CN115757676A (zh) 2022-10-14 2022-10-14 模糊可搜索加密方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN115757676A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521743A (zh) * 2023-06-27 2023-08-01 北京中科江南信息技术股份有限公司 密文检索方法及装置、存储介质及电子设备
CN117375801A (zh) * 2023-12-08 2024-01-09 贵州大学 基于sm9的指定服务器可搜索加密方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521743A (zh) * 2023-06-27 2023-08-01 北京中科江南信息技术股份有限公司 密文检索方法及装置、存储介质及电子设备
CN117375801A (zh) * 2023-12-08 2024-01-09 贵州大学 基于sm9的指定服务器可搜索加密方法
CN117375801B (zh) * 2023-12-08 2024-03-26 贵州大学 基于sm9的指定服务器可搜索加密方法

Similar Documents

Publication Publication Date Title
CN108388807B (zh) 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
CN108712366B (zh) 云环境中支持词形词义模糊检索的可搜索加密方法及系统
Fu et al. Toward efficient multi-keyword fuzzy search over encrypted outsourced data with accuracy improvement
Fu et al. Enabling central keyword-based semantic extension search over encrypted outsourced data
CN106997384B (zh) 一种排序可验证的语义模糊可搜索加密方法
CN115757676A (zh) 模糊可搜索加密方法、装置及电子设备
CN111026788B (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN109992978B (zh) 信息的传输方法、装置及存储介质
Awad et al. Chaotic searchable encryption for mobile cloud storage
US20130159694A1 (en) Document processing method and system
CN115314295B (zh) 一种基于区块链的可搜索加密技术方法
CN110908959A (zh) 一种支持多关键字和结果排序的动态可搜索加密方法
CN109885650B (zh) 一种外包云环境隐私保护密文排序检索方法
CN109255244B (zh) 数据加密方法及其装置、数据加密检索系统
CN110727951B (zh) 具有隐私保护的轻量级外包文件多关键词检索方法及系统
Handa et al. A cluster based multi-keyword search on outsourced encrypted cloud data
CN110765469B (zh) 一种高效且健壮的动态可搜索对称加密方法及系统
CN113642038B (zh) 一种可搜索加密方法、装置、设备及存储介质
CN116628721B (zh) 一种数字对象的可搜索加密方法与系统
CN116644146A (zh) 一种文档搜索方法、装置、系统、电子设备及存储介质
CN112966086A (zh) 一种基于位置敏感哈希函数的可验证模糊搜索方法
CN116107967B (zh) 基于同态加密和树结构的多关键词密文搜索方法及系统
Zhao et al. Privacy-preserving personalized search over encrypted cloud data supporting multi-keyword ranking
CN108319659B (zh) 一种基于加密图像快速搜索的社交发现方法

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