CN113157862B - 词组搜索方法、装置、云服务器、系统及存储介质 - Google Patents
词组搜索方法、装置、云服务器、系统及存储介质 Download PDFInfo
- Publication number
- CN113157862B CN113157862B CN202110394520.5A CN202110394520A CN113157862B CN 113157862 B CN113157862 B CN 113157862B CN 202110394520 A CN202110394520 A CN 202110394520A CN 113157862 B CN113157862 B CN 113157862B
- Authority
- CN
- China
- Prior art keywords
- file
- keyword
- phrase
- queried
- client
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012795 verification Methods 0.000 claims abstract description 42
- 239000013598 vector Substances 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种词组搜索方法,该方法通过采用两步的查询策略,首先找出包含查询词组中所有关键词的文件,用户可得到这些文件的标识,验证这些标识是否正确并为第二步查询生成查询陷门。接着确定查询词组中的关键词在这些文件中是否是按顺序排列的,也就是验证查找出来的文件是否是包含查询词组的,从而确定所有包含查询词组的文件都正确的返回了,可以实现对于结果的完全验证,从而提升搜索结果的精准度;另外,本申请中先求出所有包含查询词组中的所有关键词的文件,在此基础上再验证这些文件是否是包含词组的,不需对每个文件进行验证,提高了搜索效率。本申请还提供了一种词组搜索装置、设备、系统及一种可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及物联网技术领域,特别涉及一种词组搜索方法、装置、云服务器、系统及一种可读存储介质。
背景技术
IoT(物联网The Internet of Things)将各种各样的智能设备与互联网连接起来,实现人、机、物在任何时间和地点的关联。为了节省本地存储开销和管理成本,目前常常将把IoT设备产生的大量数据加密之后上传到云服务器上,通过云服务器实现数据的存储以及处理,在查看数据时,通过输入关键字,服务器对存储的数据进行相关检索后将该关键字对应的数据输出。
而在目前的数据检索过程中常常会出现搜索结果不正确或不完整的情况,比如在基于云的电子医疗领域中检索某个病患的某个生理特征信息时,可能会出现云服务器返回的数据中不包含该特征以及该生理特征下有些数据并未反馈至用户端,可能会造成医生的误诊,威胁病人的生命。
因此,如何保证云服务器中数据检索的精准度,是本领域技术人员急需解决的问题。
发明内容
本申请的目的是提供一种词组搜索方法,该方法可以稳定的保持长期准确词组搜索;本申请的另一目的是提供一种词组搜索装置、云服务器、系统及一种可读存储介质。
为解决上述技术问题,本申请提供一种词组搜索方法,包括:
云服务器接收到来自客户端的第一查询陷门后,确定所述第一查询陷门对应的待查询词组以及所述待查询词组中包含的各待查询关键字;
确定文档集中各文件中包含所有所述待查询关键字的文件,作为关键字文件;
将所述关键字文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端对所述初步查询结果进行有效性验证;
接收到所述客户端发送的第二查询陷门后,确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置,以确定所述关键字文件中是否包含所述待查询词组;其中,所述第二查询陷门在所述有效性验证通过后发送;
将包含所述待查询词组的关键字文件发送至所述客户端,以便所述客户端对接收到的关键字文件进行验证。
可选地,所述确定文档集中各文件中包含所有所述关键字的文件,包括:
根据倒排索引表确定文档集中各文件中包含所有所述关键字的文件;
其中,所述倒排索引表的创建方法包括:
扫描文档集提取出所有的关键词;
通过判断所述关键词在所述文档集中出现的文件,生成所述关键词的索引向量;
调用伪随机置换函数生成所述关键词对应的关键词陷门;
调用伪随机函数盲化所述索引向量,得到盲化索引向量;
调用对称加密算法加密所述盲化索引向量,作为标签;
加密所述文档集中的所有文件,生成密文集;
统计所述密文集对应的标签以及关键词陷门,生成加密的倒排索引表;
则相应地,将所述文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端对所述初步查询结果进行有效性验证,包括:将所述文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端通过对所述标签中包含的所有所述待查询关键词的索引向量执行与操作以实现有效性验证。
可选地,所述根据倒排索引表确定文档集中各文件中包含所有所述关键字的文件,包括:
根据所述查询陷门中的第一部分信息在倒排索引表中查找对应的行;
根据所述查询陷门中的第二部分信息对所述行进行解盲化处理,得到各关键词对应的索引向量;
对各所述关键词解盲化后的索引向量执行与操作,得到各待查询关键词与文件之间的存储关系;
根据所述存储关系确定包含所述待查询关键词的文件。
可选地,所述接收到所述客户端发送的第二查询陷门后,确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置,以确定所述关键字文件中是否包含所述待查询词组,包括:
根据查找表中记录的各关键字的位置信息确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置;
其中,所述查找表的生成方法包括:
扫描文档集中各文件的关键词;
提取各所述关键词在文件中出现所有的位置;
确定出现在各所述关键词前面的一个关键词,得到各关键词之间的位置关系;
计算所述位置以及所述位置关系对应的验证信息;
统计所述关键词对应的所述位置、所述位置关系以及所述验证信息,构成查找表。
可选地,在接收到所述客户端发送的第二查询陷门后,确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置,以确定所述关键字文件中是否包含所述待查询词组之后,还包括:
将所述关键字文件中不包含所述待查询词组的文件作为验证失败文件;
将所述验证失败文件中各关键词在文件中的所有位置以及标签发送至客户端,以便所述客户端验证所述验证失败文件中是否不包含所述待查询词组。
本申请还提供了一种词组搜索装置,应用于云服务器,包括:
接收单元,用于接收到来自客户端的第一查询陷门后,确定所述第一查询陷门对应的待查询词组以及所述待查询词组中包含的各待查询关键字;
第一查询单元,用于确定文档集中各文件中包含所有所述待查询关键字的文件,作为关键字文件;
第一反馈单元,用于将所述关键字文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端对所述初步查询结果进行有效性验证;
第二查询单元,用于接收到所述客户端发送的第二查询陷门后,确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置,以确定所述关键字文件中是否包含所述待查询词组;其中,所述第二查询陷门在所述有效性验证通过后发送;
第二反馈单元,用于将包含所述待查询词组的关键字文件发送至所述客户端,以便所述客户端对接收到的关键字文件进行验证。
本申请还提供了一种云服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述的词组搜索方法的步骤。
本申请还提供了一种词组搜索系统,包括:云服务器、以及与所述云服务器连接的客户端;
所述客户端用于接收所述云服务器的检索结果并对其进行结果验证。
可选地,所述客户端还用于:输入安全参数生成密钥集;根据所述密钥集中的密钥创建倒排索引表以及查找表。
本申请还提供了一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述词组搜索方法的步骤。
本申请所提供的词组搜索方法,通过采用两步的查询策略,首先找出包含查询词组中所有关键词的文件,用户可得到这些文件的标识,验证这些标识是否正确并为第二步查询生成查询陷门。接着确定查询词组中的关键词在这些文件中是否是按顺序排列的,也就是验证查找出来的文件是否是包含查询词组的,从而确定所有包含查询词组的文件都正确的返回了,可以实现对于结果的完全验证,从而提升搜索结果的精准度;另外,本申请中先求出所有包含查询词组中的所有关键词的文件,在此基础上再验证这些文件是否是包含词组的,不需对每个文件进行验证,提高了搜索效率
本申请还提供了一种词组搜索装置、云服务器、系统及一种可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种词组搜索方法的流程图;
图2为本申请实施例提供的一种词组搜索装置的结构框图;
图3为本申请实施例提供的一种云服务器的结构示意图。
具体实施方式
本申请的核心是提供一种词组搜索方法,该方法可以稳定的保持长期准确词组搜索;本申请的另一核心是提供一种词组搜索装置、云服务器、系统及一种可读存储介质。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,出于数据查看的需要,相对于关键词搜索方式,云服务器中为保证查找的精准度常常采用词组搜索的方式,其中词组搜索指指输入两个单词以上的词组(短语)提交搜索引擎查询,也叫短语搜索。在基于云的IoT数据上的词组搜索比多关键词搜索更有实际应用价值,且得到的结果更精确,本实施例中提出的搜索方式基于词组搜索方式,基于其他方式下的数据检索实现过程可以参照本实施例的介绍,在此不做限定。
请参考图1,图1为本实施例提供的词组搜索方法的流程图,该方法主要包括:
步骤s110、服务器接收到来自客户端的第一查询陷门后,确定第一查询陷门对应的待查询词组以及待查询词组中包含的各待查询关键字;
数据用户想查找包含词组的文件,在客户端上生成查询陷门作为第一查询陷门,其中陷门指密文,为一种搜索凭证,客户端将第一查询陷门发送给服务器,以便服务器响应该查询请求。该第一查询陷门的生成过程可以参照相关技术的介绍,在此不做限定。
而服务器接收到来自客户端的第一查询陷门后,确定第一查询陷门对应的待查询词组,待查询词组比如“信息”,并确定待查询词组中包含的各关键字,比如“信”和“息”。本申请中对先求出所有包含查询词组中的所有关键词的文件,在此基础上再验证这些文件是否是包含词组的,不需对每个文件进行验证,提高了搜索效率。
步骤s120、确定文档集中各文件中包含所有待查询关键字的文件,作为关键字文件;
确定文档集中各文件中包含所有关键字的文件,比如包含“信”和“息”的文件,在该步骤中对于两关键字的分布位置不做限定,只要文件中包含所有待查询关键字即可。
而本实施例中对于文件查询过程的具体实现不做限定,为提升查询速度,可以预先构建各关键词在文件中的位置查询表,根据该表进行关键词的检索。
具体地,确定文档集中各文件中包含所有关键字的文件的过程可以按照以下步骤来实现:
扫描文档集提取出所有的关键词;
通过判断关键词在文档集中出现的文件生成关键词的索引向量;
调用伪随机置换函数生成关键词对应的关键词陷门;
调用伪随机函数盲化索引向量,得到盲化索引向量;
调用对称加密算法加密盲化索引向量,作为标签;
加密文档集中的所有文件,生成密文集;
统计密文集对应的标签以及关键词陷门,生成加密的倒排索引表;
根据倒排索引表确定文档集中各文件中包含所有关键字的文件。
例如,(可以调用IoT设备)扫描整个文档集提取出所有的关键词构建关键词集。对每个关键词构建文件集F(wi)用来存储包含wi的文件;
令v(wi)(1≤i≤n)代表关键词wi的索引向量。如果Fj(1≤j≤N)在F(wi)中,那么令v(wi)[j]=1,否则的话令v(wi)[j]=0;Fj指示文件集合中第j个文件,n文档集中关键词个数、N文档集中文件个数
对每个关键词wi用伪随机置换函数生成关键词陷门关键词陷门用于指示关键词位置,调用伪随机函数盲化索引向量/>再调用对称加密算法加密索引向量生成标签/>并把其存储到倒排索引表中的最后一列;加密文件/>生成密文集,统计上述信息,得到加密的倒排索引表,作为位置查询表,一种加密的倒排索引表如下
表1所示。
表1加密的倒排索引表I
而根据倒排索引表确定文档集中各文件中包含所有关键字的文件的检索过程具体可以按照以下步骤来实现:
根据查询陷门中的第一部分信息在倒排索引表中查找对应的行;
根据查询陷门中的第二部分信息对行进行解盲化处理,得到各关键词对应的索引向量;
对各关键词解盲化后的索引向量执行与操作,得到各待查询关键词与文件之间的存储关系;
根据存储关系确定包含待查询关键词的文件。
例如,服务器在加密的倒排索引上执行查询操作,对于查询词组中的每一个查询关键词根据查询陷门中的第一部分信息/>在索引中找到与之对应的行信息用查询陷门中的第二部分信息/>来对这一行的索引向量/>解盲化:/>然后对所有关键词解盲化后的索引向量执行“and”操作:,/>得到所有查询关键词与文件之间的存储关系。如果说明文件Fj包含词组中的所有词,否则不包含。
本申请中先求出所有包含查询词组中的所有关键词的文件,在此基础上再验证这些文件是否是包含词组的,不需对每个文件进行验证,提高了搜索效率。
步骤s130、将关键字文件的文件标识以及标签作为初步查询结果反馈至客户端,以便客户端对初步查询结果进行有效性验证;
假设共有n′个文件满足要求,也就是包含这个查询词组,取出包含这些词的文件标识放入集合中,以及每个查询关键词对应的标签/>将其发送给用户。
用户接收到初步查询结果后,为保障搜索的准确率,对客户端反馈的初步查询结果进行有效性的验证,具体可以验证返回的文件标识对应的文件中是否包含所有的待查询关键字,本实施例中对于客户端具体实现的校验过程不做限定,为加深理解,本实施例中以上述中介绍的标签生成方式为例介绍一种用户校验方法。可以通过对标签中包含的所有待查询关键词的索引向量执行与操作以实现有效性验证。例如,首先检测返回的包含查询关键词的文件的标识。对每一个查询关键词用户解密其标签/>获得明文索引向量对所有查询关键词的索引向量执行“and”操作得到/>对于中的每个文件标识/>检测是否/>验证返回的文件是否正确,如果都是,则验证成功,不都是可以报错,输出搜索错误。
而若用户验证成功,为每个文件以及每个查询关键词/>计算/>组成元组/>并把其放入到元组/>中,最后得到接着为查询词组中每两个挨着的关键词/>和/>生成哈希密钥并把它放入元组/>则/>最后把所有的/>放入元组key中/>则第二查询陷门/>把第二查询陷门发送给服务器。
步骤s140、接收到客户端发送的第二查询陷门后,确定关键字文件中待查询关键字出现位置是否符合待查询词组中的各待查询关键字排列位置,以确定关键字文件中是否包含待查询词组;
在确定包含所有待查询关键字的所有文件后,根据第二步查询陷门执行第二步查询操作。第二步查询操作需要逐一验证得到的各文件中对于待查询关键字的排布是否符合待查询词组的排列,比如判断文件中的“信”关键字和“息”关键字是否相邻,且“信”在前,“息”在后,如果符合,则可以确定符合上述规则文件中包含待查询词组。
而为了提升关键字排列位置信息的查找速度,本实施例中介绍一种基于查找表的实现方法,具体地可以根据查找表中记录的各关键字的位置信息确定关键字文件中待查询关键字出现位置是否符合待查询词组中的各待查询关键字排列位置;而其中,查找表的生成方法包括以下步骤:
扫描文档集中各文件的关键词;
提取各关键词在文件中出现所有的位置;
确定出现在各关键词前面的一个关键词,得到各关键词之间的位置关系;
计算位置以及位置关系对应的验证信息;
统计关键词对应的位置、位置关系以及验证信息,构成查找表。
查找表的建立过程例如:为每个文件Fj构造一个大小为的查找表Tj,其中cj是此文件之不同关键词的个数,/>是此文件j中关键词出现的最多的次数;
对每个文件Fj提取出所有不同的关键词,构成集合然后对这个集合中的每个关键词wi计算/>为文件标识,并提取出其在此文件中出现的位置,构成集合/>ti,j为wi在文件Fj出现的次数。对wi的每个位置/>也就是第r次出现的位置,计算密文/>并计算一个验证标签来验证此位置/>以及文件密文Cj的正确性;用于验证服务器找到的关键词文件位置是否正确,返回的文件密文是否正确;
当关键词wi第r次出现的时候,假设它前面的关键词是wi′且wi′是第r′次出现,当前出现的位置便为加密此位置/>生成哈希函数H的密钥计算/>把/>存放在查找表Tj的第/>行的第r个位置处,也就是/>
对wi的所有位置计算来验证所有位置的正确性进一步确定关键词之间的位置关系,将其存储在第/>行的最后一列:
如果关键词wi在文件Fj中是第一个出现的词,那么它前面没有关键词,令其余/>个位置上填充上虚拟值。
而基于上述过程建立的查找表如下表2所示。
表2查找表T1
而基于上述查找表的记录的各关键字的位置信息确定关键字文件中待查询关键字出现位置是否符合待查询词组中的各待查询关键字排列位置的一种实现方式如下所示:
在第一步查询得到的每个文件对应的查找表/>中,从查询词组中的第一个关键词/>开始根据/>找到关键词对应的行信息/>把这一行中前/>个元素分别解析为/>计算/>接着把第二个关键词对应的行元素解析为/>验证是否存在一个/>等于/>若有的话取出/>并对其余的关键词依次执行上述操作,最后若每个关键词的验证等式都相等,则把这个文件的密文取出放入集合/>中,并把所有相关的放入到集合/>中;
如果发现文件不包含这个词组,那么就把每个关键词出现在文件中的所有位置和行信息最后一列的标签/>放入到集合/>中。
令包含词组的文件为
把发送给用户。
本实施例中对每个关键词在每个文件中出现的每个位置以及当前文件的密文生成一个标签,当一个文件包含查询词组时,只需对每个查询关键词组成词组时所在位置以及文件密文计算标签便可同时验证位置和文件的正确性,无需单独对文件进行验证,节省了计算开销,可以有效提高验证效率。
步骤s150、将包含待查询词组的关键字文件发送至客户端,以便客户端对接收到的关键字文件进行验证。
检索完成关键字文件中包含待查询词组的文件后,将该些文件反馈至客户端,而客户端为了进一步提升查询结果的精准度,可以首先检测查询关键词在文件中的位置来验证返回的所有文件都是包含查询词组的,若验证成功再对通过验证的包含查询词组的文件进行解密,并根据解密得到的明文文件进行数据处理。
而具体地,客户端检验过程本实施例中不做限定,可以通过查看返回的文件的标识是否都出现在了查询得到的/>中,是的话便解密每个关键词/>出现在此文件中的所有位置/>然后计算标签验证其是否与返回的标签/>相等。若相等则检测所有解密出来的位置是否是连续的,是的话说明返回的这些文件确实是包含词组的,本实施例中仅以上述检验过程为例进行介绍,其他检验过程均可参照本实施例的介绍,在此不再赘述。
而进一步地,为了提升搜索的准确率,在接收到客户端发送的第二查询陷门后,确定关键字文件中待查询关键字出现位置是否符合待查询词组中的各待查询关键字排列位置之后,还包括:
将关键字文件中不包含待查询词组的文件作为验证失败文件;
将验证失败文件中各关键词在文件中的所有位置以及标签发送至客户端,以便客户端验证验证失败文件中是否不包含待查询词组。
验证未返回的那些文件(文件标识出现在中,也就是包含词组中的各个关键词)是否都是确实不包含词组的,从而确定所有包含词组的文件都正确返回了,通过上述步骤可以避免在第二次检索(待查询词组在关键词文件中的检索)中目标文件的遗漏。
而本实施例中对于客户端相应进行的验证过程不做限定,一种实现方式如下:对每个查询关键词,解密它在每个文件中出现的所有位置,并对这些位置计算一个MAC值从而确定位置是否是正确的。若是,则最后检测所有查询关键词的所有位置中是否存在一个连续的位置序列,若没有的话则确定这些文件确实不包含查询词组。
本实施例中对每个关键词在每个文件中出现的所有位置生成一个标签,当一个文件不包含查询词组时,只需在每个查询关键词出现的所有位置都正确的基础上验证这些位置之间不存在一个连续的序列即可,无需对每个位置分别验证正确性,提高了验证效率。
为加深理解,以下介绍一种整体的实现步骤,其他基于本申请的实现方式均可参照下述介绍。
客户端(IoT设备)输入安全参数λ,输出密钥集K;客户端对明文文件加密并为其构建安全索引,把密文文件和安全索引上传到服务器;
客户端对查询词组生成查询陷门发送给服务器;
服务器端根据查询陷门在安全索引中找出包含查询关键词的文件,把相应的文件标识和标签发送给客户端;
客户端对查询词组以及服务器返回的文件标识生成相应的查询陷门,发送给服务器;
服务器端根据查询陷门在安全索引中找到包含查询词组的文件以及相应的标签,返回给数据用户;
客户端验证服务器返回的文件是否正确,若正确则进入解密阶段(由客户端数据用户执行),解密密文文件;否则拒绝接收文件。
需要说明的是,上述步骤中涉及到各种加密手段,比如伪随机函数加密,对称加密等,这些加密手段对应的密钥可以由数据拥有者来生成,以保障数据的安全性。具体地,可以按照以下步骤来实现:数据拥有者输入安全参数λ生成密钥集K={k1,k2,k3,k4},其中k1是伪随机函数的密钥,k2是伪随机置换函数π的密钥π把关键词置换为行数,k3是对称加密算法的密钥,用于生成标签tag用于验证用户信息是否完整,k4是MAC的密钥。本实施例中调用的加密手段不涉及复杂的密码学工具,计算成本低,效率高。
基于上述介绍,本实施例提供的词组搜索方法中,通过采用两步的查询策略,首先找出包含查询词组中所有关键词的文件,用户可得到这些文件的标识,验证这些标识是否正确并为第二步查询生成查询陷门。接着确定查询词组中的关键词在这些文件中是否是按顺序排列的,也就是验证查找出来的文件是否是包含查询词组的,从而确定所有包含查询词组的文件都正确的返回了,可以实现对于结果的完全验证,从而提升搜索结果的精准度;另外,本申请中先求出所有包含查询词组中的所有关键词的文件,在此基础上再验证这些文件是否是包含词组的,不需对每个文件进行验证,提高了搜索效率。
请参考图2,图2为本实施例提供的词组搜索装置的结构框图;主要包括:接收单元210、第一查询单元220、第一反馈单元230、第二查询单元240以及第二反馈单元250。本实施例提供的词组搜索装置可与上述词组搜索方法相互对照。
其中,接收单元210主要用于接收到来自客户端的第一查询陷门后,确定第一查询陷门对应的待查询词组以及待查询词组中包含的各待查询关键字;
第一查询单元220主要用于确定文档集中各文件中包含所有待查询关键字的文件,作为关键字文件;
第一反馈单元230主要用于将关键字文件的文件标识以及标签作为初步查询结果反馈至客户端,以便客户端对初步查询结果进行有效性验证;
第二查询单元240主要用于接收到客户端发送的第二查询陷门后,确定关键字文件中待查询关键字出现位置是否符合待查询词组中的各待查询关键字排列位置,以确定关键字文件中是否包含待查询词组;其中,第二查询陷门在有效性验证通过后发送;
第二反馈单元250主要用于将包含待查询词组的关键字文件发送至客户端,以便客户端对接收到的关键字文件进行验证。
本实施例提供一种云服务器,主要包括:存储器以及处理器。
其中,存储器用于存储程序;
处理器用于执行程序时实现如上述实施例介绍的词组搜索方法的步骤,具体可参照上述词组搜索方法的介绍。
请参考图3,为本实施例提供的云服务器的结构示意图,该云服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在云服务器301上执行存储介质330中的一系列指令操作。
云服务器301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面图1所描述的词组搜索方法中的步骤可以由本实施例介绍的云服务器的结构实现。
本实施例提供了一种词组搜索系统,该系统中主要包括云服务器、以及与云服务器连接的客户端;
其中云服务器可以参照上述实施例的介绍;
客户端主要用于接收云服务器的检索结果并对其进行结果验证,而文档集也可以由客户端并处理后发送至云服务器。
进一步地,客户端可以还用于:输入安全参数生成密钥集;根据密钥集中的密钥创建倒排索引表以及查找表。该步骤的实现过程可以参照词组搜索方法实施例的介绍,在此不再赘述。
本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述实施例介绍的词组搜索方法的步骤,具体可参照上述实施例中对词组搜索方法的介绍。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的词组搜索方法、装置、云服务器、系统及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (9)
1.一种词组搜索方法,其特征在于,包括:
云服务器接收到来自客户端的第一查询陷门后,确定所述第一查询陷门对应的待查询词组以及所述待查询词组中包含的各待查询关键字;
确定文档集中各文件中包含所有所述待查询关键字的文件,作为关键字文件;
将所述关键字文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端对所述初步查询结果进行有效性验证;
接收到所述客户端发送的第二查询陷门后,确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置,以确定所述关键字文件中是否包含所述待查询词组;其中,所述第二查询陷门在所述有效性验证通过后发送;
将包含所述待查询词组的关键字文件发送至所述客户端,以便所述客户端对接收到的关键字文件进行验证;
其中,所述确定文档集中各文件中包含所有所述关键字的文件,包括:
根据倒排索引表确定文档集中各文件中包含所有所述关键字的文件;
其中,所述倒排索引表的创建方法包括:
扫描文档集提取出所有的关键词;
通过判断所述关键词在所述文档集中出现的文件,生成所述关键词的索引向量;
调用伪随机置换函数生成所述关键词对应的关键词陷门;
调用伪随机函数盲化所述索引向量,得到盲化索引向量;
调用对称加密算法加密所述盲化索引向量,作为标签;
加密所述文档集中的所有文件,生成密文集;
统计所述密文集对应的标签以及关键词陷门,生成加密的倒排索引表;
则相应地,将所述文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端对所述初步查询结果进行有效性验证,包括:将所述文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端通过对所述标签中包含的所有所述待查询关键词的索引向量执行与操作以实现有效性验证。
2.如权利要求1所述的词组搜索方法,其特征在于,所述根据倒排索引表确定文档集中各文件中包含所有所述关键字的文件,包括:
根据所述查询陷门中的第一部分信息在倒排索引表中查找对应的行;
根据所述查询陷门中的第二部分信息对所述行进行解盲化处理,得到各关键词对应的索引向量;
对各所述关键词解盲化后的索引向量执行与操作,得到各待查询关键词与文件之间的存储关系;
根据所述存储关系确定包含所述待查询关键词的文件。
3.如权利要求1所述的词组搜索方法,其特征在于,接收到所述客户端发送的第二查询陷门后,确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置,以确定所述关键字文件中是否包含所述待查询词组,包括:
根据查找表中记录的各关键字的位置信息确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置;
其中,所述查找表的生成方法包括:
扫描文档集中各文件的关键词;
提取各所述关键词在文件中出现所有的位置;
确定出现在各所述关键词前面的一个关键词,得到各关键词之间的位置关系;
计算所述位置以及所述位置关系对应的验证信息;
统计所述关键词对应的所述位置、所述位置关系以及所述验证信息,构成查找表。
4.如权利要求1所述的词组搜索方法,其特征在于,在接收到所述客户端发送的第二查询陷门后,确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置,以确定所述关键字文件中是否包含所述待查询词组之后,还包括:
将所述关键字文件中不包含所述待查询词组的文件作为验证失败文件;
将所述验证失败文件中各关键词在文件中的所有位置以及标签发送至客户端,以便所述客户端验证所述验证失败文件中是否不包含所述待查询词组。
5.一种词组搜索装置,其特征在于,应用于云服务器,包括:
接收单元,用于接收到来自客户端的第一查询陷门后,确定所述第一查询陷门对应的待查询词组以及所述待查询词组中包含的各待查询关键字;
第一查询单元,用于确定文档集中各文件中包含所有所述待查询关键字的文件,作为关键字文件;
第一反馈单元,用于将所述关键字文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端对所述初步查询结果进行有效性验证;
第二查询单元,用于接收到所述客户端发送的第二查询陷门后,确定所述关键字文件中所述待查询关键字出现位置是否符合所述待查询词组中的各待查询关键字排列位置,以确定所述关键字文件中是否包含所述待查询词组;其中,所述第二查询陷门在所述有效性验证通过后发送;
第二反馈单元,用于将包含所述待查询词组的关键字文件发送至所述客户端,以便所述客户端对接收到的关键字文件进行验证;
其中,通过所述第一查询单元确定文档集中各文件中包含所有所述关键字的文件的过程,包括:
根据倒排索引表确定文档集中各文件中包含所有所述关键字的文件;
其中,所述倒排索引表的创建方法包括:
扫描文档集提取出所有的关键词;
通过判断所述关键词在所述文档集中出现的文件,生成所述关键词的索引向量;
调用伪随机置换函数生成所述关键词对应的关键词陷门;
调用伪随机函数盲化所述索引向量,得到盲化索引向量;
调用对称加密算法加密所述盲化索引向量,作为标签;
加密所述文档集中的所有文件,生成密文集;
统计所述密文集对应的标签以及关键词陷门,生成加密的倒排索引表;
则相应地,将所述文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端对所述初步查询结果进行有效性验证,包括:将所述文件的文件标识以及标签作为初步查询结果反馈至所述客户端,以便所述客户端通过对所述标签中包含的所有所述待查询关键词的索引向量执行与操作以实现有效性验证。
6.一种云服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的词组搜索方法的步骤。
7.一种词组搜索系统,其特征在于,包括:如权利要求6所示的云服务器、以及与所述云服务器连接的客户端;
所述客户端用于接收所述云服务器的检索结果并对其进行结果验证。
8.如权利要求7所述的词组搜索系统,其特征在于,所述客户端还用于:输入安全参数生成密钥集;根据所述密钥集中的密钥创建倒排索引表以及查找表。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至4任一项所述词组搜索方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110394520.5A CN113157862B (zh) | 2021-04-13 | 2021-04-13 | 词组搜索方法、装置、云服务器、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110394520.5A CN113157862B (zh) | 2021-04-13 | 2021-04-13 | 词组搜索方法、装置、云服务器、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157862A CN113157862A (zh) | 2021-07-23 |
CN113157862B true CN113157862B (zh) | 2024-03-22 |
Family
ID=76890056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110394520.5A Active CN113157862B (zh) | 2021-04-13 | 2021-04-13 | 词组搜索方法、装置、云服务器、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157862B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615692A (zh) * | 2015-01-23 | 2015-05-13 | 重庆邮电大学 | 一种支持动态更新及多关键字安全排序的可搜索加密方法 |
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
CN108156140A (zh) * | 2017-12-13 | 2018-06-12 | 西安电子科技大学 | 一种支持数值属性比较的多关键字可搜索加密方法 |
CN110851481A (zh) * | 2019-11-08 | 2020-02-28 | 青岛大学 | 一种可搜索加密方法、装置、设备及可读存储介质 |
CN112115227A (zh) * | 2020-08-14 | 2020-12-22 | 咪咕文化科技有限公司 | 数据的查询方法、装置、电子设备及存储介质 |
-
2021
- 2021-04-13 CN CN202110394520.5A patent/CN113157862B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615692A (zh) * | 2015-01-23 | 2015-05-13 | 重庆邮电大学 | 一种支持动态更新及多关键字安全排序的可搜索加密方法 |
CN105681280A (zh) * | 2015-12-29 | 2016-06-15 | 西安电子科技大学 | 一种云环境中基于中文的可搜索加密方法 |
CN108156140A (zh) * | 2017-12-13 | 2018-06-12 | 西安电子科技大学 | 一种支持数值属性比较的多关键字可搜索加密方法 |
CN110851481A (zh) * | 2019-11-08 | 2020-02-28 | 青岛大学 | 一种可搜索加密方法、装置、设备及可读存储介质 |
CN112115227A (zh) * | 2020-08-14 | 2020-12-22 | 咪咕文化科技有限公司 | 数据的查询方法、装置、电子设备及存储介质 |
Non-Patent Citations (6)
Title |
---|
刘文景 ; 江秀秀 ; 于佳 ; .云计算环境下基于布隆过滤器的可验证可搜索加密方案.青岛大学学报(自然科学版).2016,(02),全文. * |
加密云数据上支持可验证的 关键词排序搜索方案;葛新瑞,崔巍,郝蓉,于佳;《理论研究》;20190710;第2019(07)卷(第2019(07)期);82-89 * |
张曼 ; 咸鹤群 ; 张曙光 ; .加密数据库快速关键词查询技术.计算机工程与应用.2018,(13),全文. * |
张玉磊 ; 文龙 ; 王浩浩 ; 张永洁 ; 王彩芬 ; .多用户环境下无证书认证可搜索加密方案.电子与信息学报.(05),全文. * |
支持数据去重的可验证模糊多关键词搜索方案;魏国富, 葛新瑞,于佳;《密码学报》;20190630;第201906卷(第201906期);615-626 * |
杨旸 ; 杨书略 ; 蔡圣暐 ; 李光滟 ; .排序可验证的语义模糊可搜索加密方案.工程科学与技术.2017,(04),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113157862A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112788033B (zh) | 一种认证方法及认证系统 | |
EP3356988B1 (en) | Method and system for verifiable searchable symmetric encryption | |
EP3780543A1 (en) | Blockchain cross-chain authentication method and system, and server and readable storage medium | |
Sun et al. | Catch you if you lie to me: Efficient verifiable conjunctive keyword search over large dynamic encrypted cloud data | |
US6959394B1 (en) | Splitting knowledge of a password | |
CN106878017B (zh) | 用于网络身份认证的方法、用户终端、网站服务器和系统 | |
CN108833361B (zh) | 一种基于虚拟账号的身份认证方法及装置 | |
CN112182630B (zh) | 一种对称可搜索加密方法、装置、设备及介质 | |
CN108292341B (zh) | 用于核查目标装置中的应用的执行完整性的方法 | |
KR20130085491A (ko) | 인덱스 검증과 추적이 가능한 다자간 환경에서의 검색 가능 암호 시스템 및 방법 | |
CN111726369B (zh) | 一种身份认证方法、系统及服务器 | |
EP3121991A1 (en) | System and method of user authentication using digital signatures | |
CN108173648B (zh) | 基于私钥托管的数字安全处理方法、设备及存储介质 | |
CN111339570B (zh) | 一种云存储文件完整性的验证方法、装置、设备及介质 | |
CN110908959A (zh) | 一种支持多关键字和结果排序的动态可搜索加密方法 | |
CN111639357B (zh) | 一种加密网盘系统及其认证方法和装置 | |
CN114021164A (zh) | 基于区块链的征信系统隐私保护方法 | |
CN115412356A (zh) | 数据查询设备法、装置、计算机设备以及存储介质 | |
CN115473703A (zh) | 认证的基于身份的密文等值测试方法、装置、系统及介质 | |
US9288049B1 (en) | Cryptographically linking data and authentication identifiers without explicit storage of linkage | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
CN113836571B (zh) | 基于云和区块链的医疗数据拥有终端位置匹配方法及系统 | |
US9292671B1 (en) | Multi-server authentication using personalized proactivization | |
CN114021006A (zh) | 一种多维数据的安全查询方法及装置 | |
CN113157862B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |