CN112580087B - 加密数据搜索方法及装置、存储介质、电子设备 - Google Patents
加密数据搜索方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN112580087B CN112580087B CN201910940096.2A CN201910940096A CN112580087B CN 112580087 B CN112580087 B CN 112580087B CN 201910940096 A CN201910940096 A CN 201910940096A CN 112580087 B CN112580087 B CN 112580087B
- Authority
- CN
- China
- Prior art keywords
- index
- character
- trapdoor
- list
- prime number
- 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 95
- 239000013598 vector Substances 0.000 claims abstract description 291
- 238000013507 mapping Methods 0.000 claims description 110
- 239000011159 matrix material Substances 0.000 claims description 42
- 238000010276 construction Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Classifications
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种加密数据搜索方法及装置、电子设备、存储介质,涉及信息检索技术领域。所述加密数据搜索方法包括:接收一查询陷门,查询陷门根据查询向量确定,查询向量根据搜索关键词、质数列表和预设字符列表确定;在本地存储的各索引陷门中,选取与查询陷门匹配的目标索引陷门,索引陷门根据对应的索引向量确定,索引向量根据从对应的数据文件中提取的索引关键词、质数列表和预设字符列表确定;将目标索引陷门对应的加密数据作为查询陷门对应的搜索结果,目标索引陷门对应的加密数据是目标索引陷门对应的数据文件的加密数据。本公开可以提高加密数据搜索的准确性,降低计算的复杂度。
Description
技术领域
本公开涉及信息检索技术领域,具体而言,涉及一种加密数据搜索方法、加密数据搜索装置、电子设备以及计算机可读存储介质。
背景技术
随着云计算的发展,越来越多的用户可以将自己的数据存储在云服务器中享受方便、快捷的服务。但是云计算在为用户提供便利的同时,也产生了许多安全问题。为了确保用户隐私数据的安全性,通常在用户将数据文件存储在云服务器之前对文件进行加密,从而达到隐私保护的目的。然而这对密文数据的信息检索带来了极大的挑战,特别是在非可信的环境下,如何对加密数据提供高效安全的搜索方案,这一问题引起了人们的普遍关注。
对于用户的搜索请求,通常存在模糊搜索的情况,因此,传统的精确搜索方案具有较大的局限性。现有的针对加密数据的关键词模糊搜索方案,主要是通过构造搜索关键词的查询陷门对索引陷门进行匹配,如果匹配,即返回相关数据。
现有的模糊搜索在构建索引向量和查询向量时使用了局部敏感哈希函数,而局部敏感哈希函数具有不确定性,导致搜索结果出现多搜或少搜的问题,即搜索结果的准确性较低。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种加密数据搜索方法、加密数据搜索装置、电子设备以及计算机可读存储介质,进而在一定程度上克服由于相关技术的限制和缺陷而导致的,加密数据搜索准确性较低的问题。
根据本公开的第一方面,提供一种加密数据搜索方法,应用于服务器,包括:
接收一查询陷门,所述查询陷门根据查询向量确定,所述查询向量根据搜索关键词、质数列表和预设字符列表确定;
在本地存储的各索引陷门中,选取与所述查询陷门匹配的目标索引陷门,所述索引陷门根据对应的索引向量确定,所述索引向量根据从对应的数据文件中提取的索引关键词、所述质数列表和所述预设字符列表确定;
将目标索引陷门对应的加密数据作为所述查询陷门对应的搜索结果,所述目标索引陷门对应的加密数据是所述目标索引陷门对应的数据文件的加密数据。
在本公开的一种示例性实施例中,所述查询向量的维度和每个索引向量的维度均与所述预设字符列表中字符的数量相等。
在本公开的一种示例性实施例中,针对每个索引陷门,判断该索引陷门是否与所述查询陷门匹配的方法,包括:
在该索引陷门与所述查询陷门的乘积是整数时,确定该索引陷门与所述查询陷门匹配;
在该索引陷门与所述查询陷门的乘积不是整数时,确定该索引陷门与所述查询陷门不匹配。
在本公开的一种示例性实施例中,所述目标索引陷门对应的加密数据的确定方法,包括:
根据索引陷门和加密数据之间的映射矩阵,确定所述目标索引陷门在所述映射矩阵中对应的映射向量;
根据所述映射向量,确定所述目标索引陷门对应的加密数据。
在本公开的一种示例性实施例中,所述根据所述映射向量,确定所述目标索引陷门对应的加密数据,包括:
若所述目标索引陷门的数量为多个,对多个目标索引陷门对应的映射向量进行逻辑运算,得到目标映射向量;
根据所述目标映射向量,确定所述目标索引陷门对应的加密数据。
根据本公开的第二方面,提供一种加密数据搜索方法,应用于第一终端设备,包括:
从数据文件中提取索引关键词,根据所述索引关键词、质数列表以及预设字符列表,确定索引向量;
根据所述索引向量,构建索引陷门;
将所述数据文件的加密数据及所述加密数据对应的所述索引陷门上传至服务器,以使所述服务器在接收到查询陷门后,选取与所述查询陷门匹配的目标索引陷门,并将所述目标索引陷门对应的加密数据作为搜索结果;
其中,所述查询陷门根据查询向量确定,所述查询向量是根据搜索关键词、所述质数和所述预设字符列表确定的。
在本公开的一种示例性实施例中,所述根据所述索引关键词、质数列表以及预设字符列表,确定索引向量,包括:
将所述索引关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述索引关键词中每个字符对应的质数;
针对所述索引关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将所述预设字符列表中其他字符的值设置为0;
根据所述预设字符列表中各字符的值,构建所述索引向量。
在本公开的一种示例性实施例中,所述加密数据搜索方法还包括:
若所述索引关键词中任一字符的数量为多个,将该字符对应的质数均更新为所有该字符对应的质数的乘积。
在本公开的一种示例性实施例中,所述加密数据搜索方法还包括:
建立所述索引陷门和所述加密数据之间的映射矩阵;
将所述映射矩阵发送至所述服务器,以使所述服务器根据所述目标索引陷门和所述映射矩阵确定搜索结果。
根据本公开的第三方面,提供一种加密数据搜索方法,应用于第二终端设备,包括:
获取搜索关键词,根据所述搜索关键词、质数列表和预设字符列表确定查询向量;
根据所述查询向量,构建查询陷门;
将所述查询陷门发送至服务器,以使所述服务器选取与所述查询陷门匹配的目标索引陷门,并将所述目标索引陷门对应的加密数据发送至所述第二终端设备;
其中,所述目标索引陷门根据对应的索引向量确定,所述索引向量根据从数据文件中提取的索引关键词、所述质数列表和所述预设字符列表确定,所述目标索引陷门对应的加密数据是所述数据文件的加密数据。
在本公开的一种示例性实施例中,所述根据所述搜索关键词、质数列表和预设字符列表确定查询向量,包括:
将所述搜索关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述搜索关键词中每个字符对应的质数;
针对所述搜索关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值设置为该字符对应的质数,将所述预设字符列表中其他字符的值设置为1;
根据所述预设字符列表中各字符的值,构建所述查询向量。
在本公开的一种示例性实施例中,所述加密数据搜索方法还包括:
若所述搜索关键词中任一字符的数量为多个,将该字符对应的质数均更新为所有该字符对应的质数的乘积。
在本公开的一种示例性实施例中,所述加密数据搜索方法还包括:
若所述搜索关键词中包含模糊字符,针对所述搜索关键词中的每个字符,将该字符对应的质数更新为该字符对应的质数与所述模糊字符对应的质数的乘积。
根据本公开的第四方面,提供一种加密数据搜索装置,应用于服务器,包括:
查询陷门接收模块,用于接收一查询陷门,所述查询陷门根据查询向量确定,所述查询向量根据搜索关键词、质数列表和预设字符列表确定;
索引陷门选取模块,用于在本地存储的各索引陷门中,选取与所述查询陷门匹配的目标索引陷门,所述索引陷门根据对应的索引向量确定,所述索引向根据从对应的数据文件中提取的索引关键词、所述质数列表和所述预设字符列表确定;
搜索结果确定模块,用于将所述目标索引陷门对应的加密数据作为所述查询陷门对应的搜索结果,所述目标索引陷门对应的加密数据是所述目标索引陷门对应的数据文件的加密数据。
在本公开的一种示例性实施例中,所述查询向量的维度和每个索引向量的维度均与所述预设字符列表中字符的数量相等。
在本公开的一种示例性实施例中,索引陷门选取模块,包括:
确定匹配单元,用于针对每个索引陷门,在该索引陷门与所述查询陷门的乘积是整数时,确定该索引陷门与所述查询陷门匹配;
确定不匹配单元,用于针对每个索引陷门,在该索引陷门与所述查询陷门的乘积不是整数时,确定该索引陷门与所述查询陷门不匹配。
在本公开的一种示例性实施例中,所述搜索结果确定模块,包括:
映射向量确定单元,用于根据索引陷门和加密数据之间的映射矩阵,确定所述目标索引陷门在所述映射矩阵中对应的映射向量;
加密数据确定单元,用于根据所述映射向量,确定所述目标索引陷门对应的加密数据。
在本公开的一种示例性实施例中,所述加密数据确定单元,具体用于若所述目标索引陷门的数量为多个,对多个目标索引陷门对应的映射向量进行逻辑运算,得到目标映射向量;根据所述目标映射向量,确定所述目标索引陷门对应的加密数据。
根据本公开的第五方面,提供一种加密数据搜索装置,应用于第一终端设备,包括:
索引向量确定模块,用于从数据文件中提取索引关键词,根据所述索引关键词、质数列表以及预设字符列表,确定索引向量;
索引陷门构建模块,用于根据所述索引向量,构建索引陷门;
加密数据及索引陷门上传模块,用于将所述数据文件的加密数据以及所述加密数据对应的所述索引陷门上传至服务器,以使所述服务器在接收到查询陷门后,选取与所述查询陷门匹配的目标索引陷门,并将所述目标索引陷门对应的加密数据作为搜索结果;
其中,所述查询陷门根据查询向量确定,所述查询向量是根据搜索关键词、所述质数和所述预设字符列表确定的。
在本公开的一种示例性实施例中,所述索引向量确定模块,包括:
索引字符映射单元,用于将所述索引关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述索引关键词中每个字符对应的质数;
字符值设置单元,用于针对所述索引关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将所述预设字符列表中其他字符的值设置为0;
索引向量构建单元,用于根据所述预设字符列表中各字符的值,构建所述索引向量。
在本公开的一种示例性实施例中,所述加密数据搜索装置,还包括:
质数更新单元,用于若所述索引关键词中任一字符的数量为多个,将该字符对应的质数均更新为所有该字符对应的质数的乘积。
在本公开的一种示例性实施例中,所述加密数据搜索装置,还包括:
映射矩阵建立模块,用于建立所述索引陷门和所述加密数据之间的映射矩阵;
映射矩阵发送模块,用于将所述映射矩阵发送至所述服务器,以使所述服务器根据所述目标索引陷门和所述映射矩阵确定搜索结果。
根据本公开的第六方面,提供一种加密数据搜索装置,应用于第二终端设备,所述装置包括:
查询向量确定模块,用于获取搜索关键词,根据所述搜索关键词、质数列表和预设字符列表确定查询向量;
查询陷门构建模块,用于根据所述查询向量,构建查询陷门;
查询陷门发送模块,用于将所述查询陷门发送至服务器,以使所述服务器选取与所述查询陷门匹配的目标索引陷门,并将所述目标索引陷门对应的加密数据发送至所述第二终端设备;
其中,所述目标索引陷门根据对应的索引向量确定,所述索引向量根据从数据文件中提取的索引关键词、所述质数列表和所述预设字符列表确定,所述目标索引陷门对应的加密数据是所述数据文件的加密数据。
在本公开的一种示例性实施例中,所述查询向量确定模块,包括:
搜索字符映射单元,用于将所述搜索关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述搜索关键词中每个字符对应的质数;
字符值确定单元,用于针对所述搜索关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值设置为该字符对应的质数,将所述预设字符列表中其他字符的值设置为1;
查询向量构建单元,用于根据所述预设字符列表中各字符的值,构建所述查询向量。
根据本公开的第七方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本公开的第八方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开的一示例实施方式所提供的加密数据搜索方法中,一方面,由于查询向量和索引向量是根据质数列表确定的,而质数是不可除的,因此,根据该原理可以对查询向量和索引向量进行精确匹配,提高搜索的准确性,避免多搜或少搜的问题。另一方面,由于局部敏感哈希函数是比较复杂的,本公开根据质数列表构建索引向量和查询向量,可以避免通过局部敏感哈希函数构建索引向量和查询向量,减小了计算的复杂度,降低了性能的开销。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例的一种加密数据搜索方法及装置的示例性系统架构的示意图;
图2(a)示出了构建关键词向量的一种示意图;
图2(b)示出了构建关键词向量的又一种示意图;
图3(a)示出了通过布隆过滤器构建索引向量的一种示意图;
图3(b)示出了通过布隆过滤器构建查询向量的一种示意图;
图4示出了索引向量和查询向量相乘的示意图;
图5示出了根据本公开的一个实施例的加密数据搜索方法的流程图;
图6示出了根据本公开的一个实施例的加密数据搜索方法的流程图;
图7示出了根据本公开的一个实施例的加密数据搜索方法的流程图;
图8示出了根据本公开的一个实施例的加密数据搜索方法的交互流程图;
图9示出了根据本公开的一个实施例的索引向量构建方法的流程图;
图10示出了根据本公开的索引关键词中字符与预设字符列表中字符的映射结果示意图;
图11示出了根据本公开的索引关键词中字符与预设字符列表中字符的映射结果示意图;
图12示出了根据本公开的索引关键词中字符与预设字符列表中字符的映射结果示意图;
图13示出了根据本公开的索引陷门和加密数据的映射矩阵示意图;
图14示出了根据本公开的一个实施例的查询向量构建方法的流程图;
图15示出了根据本公开的搜索关键词中字符与预设字符列表中字符的映射结果示意图;
图16示出了根据本公开的搜索关键词中字符与预设字符列表中字符的映射结果示意图;
图17示出了根据本公开的搜索关键词中字符与预设字符列表中字符的映射结果示意图;
图18示出了根据本公开的索引向量和查询向量相乘的示意图;
图19示出了根据本公开的一个实施例的加密数据搜索装置的结构示意图;
图20示出了根据本公开的一个实施例的加密数据搜索装置的结构示意图;
图21示出了根据本公开的一个实施例的加密数据搜索装置的结构示意图;
图22示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的一种加密数据搜索方法及装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的,根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
本公开实施例所提供的加密数据搜索方法一般由服务器105执行,相应地,加密数据搜索装置一般设置于服务器105中。但本领域技术人员容易理解的是,本公开实施例所提供的加密数据搜索方法也可以由终端设备101、102、103执行,相应地,加密数据搜索装置也可以设置于终端设备101、102、103中,本示例性实施例中对此不做特殊限定。举例而言,在一种示例性实施例中,可以是用户通过终端设备101、102、103将加密数据和索引向量上传至服务器105,该用户通过终端设备101、102、103将查询向量上传至服务器105,或者其他用户通过终端设备将查询向量上传至服务器105,服务器105通过本公开实施例所提供的加密数据搜索方法对加密数据进行搜索,并将得到的搜索结果发送给终端设备101、102、103,或者发送给其他用户使用的终端设备等。
以下对本公开实施例的技术方案进行详细阐述:
用户通过服务器存储数据时,为了提高数据存储的安全性,可以将数据进行加密之后存储至服务器。服务器在对本地存储的加密数据进行搜索时,可以根据索引陷门和查询陷门确定搜索结果。通常情况下,索引陷门和查询陷门是不同的用户构建的,当然,在某些情况下,也可以是同一个用户构建,在此以不同用户为例进行说明。假设第一用户是数据拥有者,第一用户提取文档D中的关键词,根据所提取的索引关键词构建索引陷门,并且将文档D加密之后的加密数据及索引陷门存储至服务器。假设第二用户是数据使用者,第二用户根据搜索关键词构建查询陷门,将查询陷门发送至服务器,服务器可以根据查询陷门搜索加密数据。具体包括以下步骤:
(1)构建关键词向量,索引关键词和搜索关键词均按以下方式构建关键词向量。
首先,针对任一关键词,将该关键词转换成一个2字符集合,该集合包含了所有出现在关键词中的相邻的2字符。例如,关键词“network”的2字符集合为{ne,et,tw,wo,or,rk},可以使用26×26bit长度的向量来表示一个2字符集合,向量中的某一个元素代表着26个字母的两两排列组合的一种可能。如果向量中某一个元素被置为1,表示该元素所代表的2字符出现在了该向量所代表的关键词中。通过这种方式,即使一个关键词被拼错成多种不同的形式,但将其表示为向量后,错误的向量与原始正确的向量之间非常接近,甚至相同。例如,将“nwtwork”,“nvtwork”,“netwoyk”分别映射到3个向量后,3个向量对比原始“network”所映射的向量,有两个不同的向量元素。参见图2,将“hello”和“helko”分别映射到2个向量后,2个向量(向量的长度均为26×26)中有两个不同的向量元素,其他向量元素均相同。
(2)通过布隆过滤器构建索引向量和查询向量。
选择多个独立的局部敏感哈希函数,将步骤(1)中索引关键词构建的向量,通过局部敏感哈希函数插入到布隆过滤器中,即可得到索引向量。将步骤(1)中搜索关键词构建的向量,通过局部敏感哈希函数插入到布隆过滤器中,即可得到查询向量。其中,局部敏感哈希函数可以将两个相似的输入,以高概率散列到相同的输出中,通过局部敏感哈希函数构建基于布隆过滤器的每个文件的索引向量是实现模糊搜索的关键。
参见图3,可以看出,若用户使用错误的关键词“helko”进行搜索,错误的关键词“helko”与正确关键词“hello”可以散列到相同的输出中,这样,在搜索过程中也可以找到匹配项,图3中的h1和h2表示不同的哈希函数。参见图4,图4示出了索引向量和查询向量相乘的示意图,在进行匹配时,索引向量和查询向量相乘结果值越大,说明匹配度越高。
(3)构建索引向量和查询向量的加密模型。
为了保证数据的安全性,可以对索引向量和查询向量进行加密,加密过程包括以下步骤:
1)第一用户可以生成一个随机安全参数m,m用于保障检索的安全性,输出密钥SK(M1,M2,S),其中,M1和M2是m阶可逆矩阵,S是一个包含m个元素的向量,并且该向量由0、1元素构成。
2)将步骤(2)中的索引向量I按照如下规则拆分成2个向量{I′,I″}。如果S向量中的元素Sj为1,则对于每一个属于I的元素ij,设置i′j=i″j=ij;否则i′=ij/2+r,i″=ij/2-r,r是一个任意的随机数。然后使用M1,M2矩阵对ii,i″加密,加密结果为将 作为索引陷门。
3)类似地,将查询向量Q按照如下规则拆分成2个向量{Q′,Q‘’}。如果S向量中的sj元素为0,则对于每一个属于Q的元素qj,设置q′j=q″j=qj;否则q′j=qj/2+r′,q″j=qj/2-r′,r′是另一个任意的随机数。然后使用M1,M2矩阵对Q′,Q″加密,加密结果为 将/>作为查询陷门。
4)Search(EncSK(Q),EncSK(ID)):输出作为查询向量Q对文档D的搜索结果,该结果等价于I′T*Q′+I″T*Q″=IT*Q。这样,索引陷门和查询陷门的乘积就等价于索引向量和查询向量的乘积。
然而,上述方法在构建索引向量和查询向量的过程中导致以下问题:
(1)由于在构建索引向量和查询向量的过程中使用了局部敏感哈希函数,而局部敏感哈希函数比较复杂,因此,增加了算法的复杂度,增加了性能的开销。
(2)由于局部敏感哈希函数不是确定性的,而是概率性的,这样就有一定概率让原本很相似的数据映射成不同的两个哈希值,导致搜索结果数据的减少,影响检索结果的精确性。
(3)同样地,局部敏感哈希函数也会让原本不相似的数据映射成同一哈希值,这样在搜索时就会搜索出原本不应该出现的数据,导致搜索结果数据的增加。
(4)在构建关键词向量时,会导致不同的关键词构建成相同的关键词向量,例如,关键词abab和关键词aba,对应的关键词向量都为{ab,ba},这样就会导致不同的关键词映射为相同的哈希值,进而导致误搜的问题。
可见,通过上述方法对加密数据进行搜索时,搜索的准确性较低。为了解决该问题,本公开实施例提供了一种加密数据搜索方法、加密数据搜索装置、电子设备以及计算机可读存储介质,以提高加密数据搜索的准确性。
参见图5,图5示出了根据本公开的一个实施例的加密数据搜索方法的流程图,应用于服务器,包括以下步骤:
步骤S510,接收一查询陷门,查询陷门根据查询向量确定,查询向量根据搜索关键词、质数列表和预设字符列表确定。
步骤S520,在本地存储的各索引陷门中,选取与查询陷门匹配的目标索引陷门,索引陷门根据对应的索引向量确定,索引向量根据从对应的数据文件中提取的索引关键词、质数列表和预设字符列表确定。
步骤S530,将目标索引陷门对应的加密数据作为查询陷门对应的搜索结果,目标索引陷门对应的加密数据是目标索引陷门对应的数据文件的加密数据。
本公开实施例的加密数据搜索方法,一方面,由于查询向量和索引向量是根据质数列表确定的,而质数是不可除的,因此,根据该原理可以对查询向量和索引向量进行精确匹配,提高搜索的准确性,避免多搜或少搜的问题。另一方面,由于局部敏感哈希函数是比较复杂的,本公开根据质数列表构建索引向量和查询向量,可以避免通过局部敏感哈希函数构建索引向量和查询向量,减小了计算的复杂度,降低了性能的开销。
参见图6,图6示出了根据本公开的一个实施例的加密数据搜索方法的流程图,应用于第一终端设备,包括以下步骤:
步骤S610,从数据文件中提取索引关键词,根据索引关键词、质数列表以及预设字符列表,确定索引向量。
步骤S620,根据索引向量,构建索引陷门。
步骤S630,将数据文件的加密数据以及加密数据对应的索引陷门上传至服务器,以使服务器在接收到查询陷门后,选取与查询陷门匹配的目标索引陷门,并将目标索引陷门对应的加密数据作为搜索结果。
其中,查询陷门根据查询向量确定,查询向量根据搜索关键词、质数和预设字符列表确定。
本公开实施例的加密数据搜索方法,第一终端设备根据索引关键词构建索引向量时,可以将质数映射在向量中,而质数是不可除的,因此,根据该原理可以使服务器对查询向量和索引向量进行精确匹配,提高搜索的准确性,避免多搜或少搜的问题。并且,由于局部敏感哈希函数是比较复杂的,第一终端设备可以避免通过局部敏感哈希函数构建索引向量,减小了计算的复杂度,降低了性能的开销。
参见图7,图7示出了根据本公开的一个实施例的加密数据搜索方法的流程图,应用于第二终端设备,包括以下步骤:
步骤S710,获取搜索关键词,根据搜索关键词、质数列表和预设字符列表确定查询向量。
步骤S720,根据查询向量,构建查询陷门。
步骤S730,将查询陷门发送至服务器,以使服务器选取与查询陷门匹配的目标索引陷门,并将目标索引陷门对应的加密数据发送至第二终端设备;
其中,目标索引陷门根据对应的索引向量确定,索引向量根据从数据文件中提取的索引关键词、质数列表和预设字符列表确定,目标索引陷门对应的加密数据是该数据文件的加密数据。
本公开实施例的加密数据搜索方法,第二终端设备根据搜索关键词构建查询向量时,可以将质数映射在向量中,而质数是不可除的,因此,根据该原理可以使服务器对查询向量和索引向量进行精确匹配,提高搜索的准确性,避免多搜或少搜的问题。并且,由于局部敏感哈希函数是比较复杂的,第二终端设备可以避免通过局部敏感哈希函数构建查询向量,减小了计算的复杂度,降低了性能的开销。
参见图8,图8示出了根据本公开的一个实施例的加密数据搜索方法的交互流程图,包括以下步骤:
步骤S810,第一终端设备从数据文件中提取索引关键词,根据索引关键词、质数列表以及预设字符列表,确定索引向量。
本公开实施例中,第一终端设备指数据拥有者所使用的终端设备,可以是图1所示的便携式计算机、智能手机或平板电脑等。数据拥有者希望将本地存储的数据文件存储至服务器(例如,云服务器或其他服务器等)中时,为了提高安全性,可以对数据文件进行加密,而加密数据是不能直接搜索的。因此,可以先从数据文件中提取索引关键词,根据索引关键词构建索引向量,之后再对索引向量进行加密,得到索引陷门,该索引陷门可以用于对数据文件的加密数据进行搜索。可见,索引陷门和加密数据是对应的,若从数据文件中提取的索引关键词的数量为多个,那么,加密数据将对应多个索引陷门。
其中,索引向量的确定方法可参见图9,包括以下步骤:
步骤S910,将索引关键词中每个字符依次与质数列表中的每个质数一一映射,得到索引关键词中每个字符对应的质数。
需要说明的是,索引关键词中的字符可以是中文字符、英文字符或其他字符。但是,无论是中文字符或其他字符,均可以转换为同一种字符,例如,均可以转换为英文字符等,在此以英文字符为例进行说明。其中,质数列表中的数值全部为质数,质数列表的确定方法具体为:可以选取多个质数3、5、7、11、13、17、19…等,对选取的质数进行排序,当然,质数的顺序可以是随意的,在此不做限制。例如,若从小到大进行排序,得到的质数列表为3、5、7、11、13、17、19…,本公开对质数列表中质数的数量也不做限制。
本公开实施例中,将索引关键词中每个字符依次与质数列表中的每个质数一一映射,指的是按照索引关键词中字符的顺序以及质数列表中质数的顺序进行一一映射。例如,若质数列表为3、5、7、11、13、17、19…,对于索引关键词“key”,进行映射之后,“k”、“e”、“y”对应的质数依次为3、5、7。对于索引关键词“world”,进行映射之后,“w”、“o”、“r”、“l”、“d”对应的质数依次为3、5、7、11、13。
若索引关键词中任一字符的数量为多个,将该字符对应的质数均更新为所有该字符对应的质数的乘积。例如,对于索引关键词“hello”,进行映射之后,“h”对应的质数为3,“e”对应的质数为5,第一个“l”对应的质数为7,第二个“l”对应的质数为11,“o”对应的质数为13。由于存在两个相同的字符“l”,那么,可以将第一个“l”和第二个“l”对应的质数均更新为7×11。
步骤S920,针对索引关键词中的每个字符,将预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将预设字符列表中其他字符的值设置为0。
如前所述,若索引关键词中的字符为英文字符,或转换后为英文字符,那么,预设字符列表即为英文字符列表。而英文字符的数量为26个,可以对26个英文字符进行排序,得到预设字符列表。预设字符列表中的英文字符可以是英文字符的顺序,也可以是其他顺序,在此不做限定。当然,为了提高安全性,预设字符列表中的英文字符可以不具有一定规律。
预设字符列表设置好之后,针对索引关键词中的每个字符,将预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将预设字符列表中其他字符的值设置为0。例如,对于索引关键词“key”,预设字符列表中字符“k”、“e”、“y”的值依次为1/3、1/5、1/7,其他字符的值均为0,可参见图10。对于索引关键词“world”,预设字符列表中字符“w”、“o”、“r”、“l”、“d”的值依次为1/3、1/5、1/7、1/11、1/13,其他字符的值均为0,可参见图11。对于索引关键词“hello”,预设字符列表中字符“h”、“e”、“l”、“o”的值依次为1/3、1/5、1/77、1/13,其他字符的值均为0,可参见图12。
步骤S930,根据预设字符列表中各字符的值,构建索引向量。
在得到预设字符列表中各字符的值之后,将预设字符列表中各字符的值表示为向量的形式,即可得到索引向量。可以理解的是,索引向量的维度与预设字符列表中字符的数量相等。若预设字符列表是英文字符列表,那么,索引向量是26维的向量,索引向量的元素是26个字符的值。
步骤S820,根据索引向量,构建索引陷门。
需要说明的是,本步骤中,构建索引陷门的方法与前述构建索引向量的加密模型的方法相同,在此不再赘述。
步骤S830,将数据文件的加密数据以及加密数据对应的索引陷门上传至服务器。
在构建索引陷门之后,第一终端设备可以将索引陷门上传至服务器,并且将数据文件的加密数据上传至服务器,当然,两者可以同时上传,也可以先后上传。第一终端还可以建立索引陷门和加密数据之间的映射矩阵,将映射矩阵发送至服务器,以使服务器根据在接收到查询陷门后,选取与查询陷门匹配的目标索引陷门,并根据目标索引陷门和映射矩阵确定搜索结果。索引陷门和加密数据之间的映射矩阵可参见图13,例如,索引陷门1对应的加密数据为D1、D3、D4,那么,在映射矩阵中对应的映射向量为{1,0,1,1}。本公开采用倒排索引的方法,将每个索引陷门关联到与之对应的加密数据,从而得到映射矩阵。其中,服务器根据目标索引陷门和映射矩阵确定搜索结果的方法将在下文进行详细介绍。
对于服务器,除了接收第一终端设备上传的加密数据和索引陷门之外,也可以接收其他终端设备上传的加密数据和索引陷门,不同终端设备上传加密数据和索引陷门的时间可以是不同的。并且服务器接收加密数据和索引陷门之后可以将加密数据和索引陷门存储至本地。
步骤S840,第二终端设备获取搜索关键词,根据搜索关键词、质数列表和预设字符列表确定查询向量。
本公开实施例中,第二终端设备指数据使用者所使用的终端设备,数据使用者和数据拥有者可以是同一用户,也可以是不同用户。也就是说,第二终端设备和第一终端设备可以是同一个终端设备,也可以是不同的终端设备。
搜索关键词是根据数据使用者要查询的数据确定的,第二终端设备可以从本地文件中获取搜索关键词,也可以直接从提供的用户界面中获取用户输入的关键词等。在获取搜索关键词后,可以根据搜索关键词构建查询向量,查询向量的构建方法可参见图14,包括以下步骤:
步骤S1410,将搜索关键词中每个字符依次与质数列表中的每个质数一一映射,得到搜索关键词中每个字符对应的质数。
本步骤与步骤S910相同,若搜索关键词中任一字符的数量为多个,将该字符对应的质数均更新为所有该字符对应的质数的乘积。具体可参见步骤S910中的描述即可,在此不再赘述。
另外,本公开可以进行模糊搜索,若搜索关键词中包含模糊字符,针对搜索关键词中的每个字符,将该字符对应的质数更新为该字符对应的质数与模糊字符对应的质数的乘积。其中,模糊字符指的是未知的字符。例如,对于搜索关键词“hel*o”,“h”、“e”、“l”、“*”、“o”对应的质数依次为3、5、7、11、13。由于存在模糊字符“*”,且“*”对应的质数为11,那么,搜索关键词“hel*o”中字符“h”、“e”、“l”、“o”对应的质数依次为3×11、5×11、7×11、13×11。对于搜索关键词“holl*”,“h”、“o”、“l”、“l”、“*”对应的质数依次为3、5、7、11、13,由于存在相同的字符“l”,两个“l”对应的质数更新为7×11。并且,存在模糊字符“*”,“*”对应的质数为13,那么,搜索关键词“holl*”中字符“h”、“o”、“l”对应的质数依次为3×13、5×13、7×11×13。
步骤S1420,针对搜索关键词中的每个字符,将预设字符列表中与该字符相同的字符的值设置为该字符对应的质数,将预设字符列表中其他字符的值设置为1。
与S920类似,可以根据搜索关键词中的每个字符对应的质数,确定预设字符列表中相同字符的值。与S920不同的是,在此,直接将搜索关键词中的每个字符对应的质数,作为预设字符列表中对应相同字符的值,并且,预设字符列表中其他字符的值设置为1。例如,对于搜索关键词“hello”,预设字符列表中字符“h”、“e”、“l”、“o”的值依次为3、5、77、13,其他字符的值均为1,可参见图15。对于搜索关键词“hel*o”,预设字符列表中字符“h”、“e”、“l”、“o”的值依次为3×11、5×11、7×11、13×11,其他字符的值均为1,可参见图16。搜索关键词“holl*”,预设字符列表中字符“h”、“o”、“l”的值依次为3×13、5×13、7×11×13,可参见图17。
步骤S1430,根据预设字符列表中各字符的值,构建查询向量。
本步骤与步骤S930类似,可以根据预设字符列表中各字符的值,构建查询向量,并且,查询向量的维度也与预设字符列表中字符的数量相等。可见,查询向量和上述索引向量的维度是相同的。
步骤S850,根据查询向量,构建查询陷门。
需要说明的是,本步骤中,构建查询陷门的方法与前述构建查询向量的加密模型的方法相同,在此不再赘述。
步骤S860,第二终端设备将查询陷门发送至服务器。
第二终端设备构建查询陷门之后,可以将查询陷门发送至服务器,以使服务器根据该查询陷门进行搜索。
步骤S870,服务器在本地存储的各索引陷门中,选取与查询陷门匹配的目标索引陷门,将目标索引陷门对应的加密数据作为查询陷门对应的搜索结果。
如前所述,服务器本地存储的各索引陷门可以是多个终端设备发送的索引陷门。由于查询陷门和索引陷门均是根据质数列表确定的,质数列表中的质数是不可除的,那么,针对每个索引陷门,判断该索引陷门是否与查询陷门匹配的方法,可以包括:在该索引陷门与查询陷门的乘积是整数时,确定该索引陷门与查询陷门匹配;在该索引陷门与查询陷门的乘积不是整数时,确定该索引陷门与查询陷门不匹配。其中,索引陷门与查询陷门的乘积等价于索引向量与查询向量对应的转置向量的内积,索引向量与查询向量对应的转置向量的内积可参见图18。
在确定与查询陷门匹配的目标索引陷门后,可以将目标索引陷门对应的加密数据作为搜索结果,而目标索引陷门对应的加密数据的确定方法,包括以下步骤:
首先,根据索引陷门和加密数据之间的映射矩阵,确定目标索引陷门在映射矩阵中对应的映射向量。在步骤S830中,第一终端设备可以将建立的索引陷门和加密数据之间的映射矩阵发送给服务器,其他终端设备也可以将建立的映射矩阵发送给服务器。服务器在确定搜索结果时,可以根据本地存储的一个或多个映射矩阵,确定目标索引陷门在映射矩阵中对应的映射向量。之后,可以根据映射向量确定目标索引陷门对应的加密数据。
例如,图13中,若目标索引陷门为索引陷门1,索引陷门1在映射矩阵中对应的映射向量为{1,0,1,1}。根据映射向量{1,0,1,1},确定对应的加密数据为D1、D3、D4。即目标索引陷门对应的加密数据是D1、D3、D4。
本公开实施例中,若目标索引陷门的数量为多个,还可以对多个目标索引陷门对应的映射向量进行逻辑运算,得到目标映射向量。根据目标映射向量,确定目标索引陷门对应的加密数据。
例如,针对图13,若搜索关键词1的查询陷门与索引陷门1匹配,搜索关键词2的查询陷门与索引陷门2匹配,那么,目标索引陷门为索引陷门1和索引陷门2。索引陷门1和索引陷门2在映射矩阵中对应的映射向量分别为{1,0,1,1}和{0,0,1,1}。如果搜索关键词1和搜索关键词2是“与”操作,即搜索结果中包含搜索关键词1和搜索关键词2,那么,可以将{1,0,1,1}和{0,0,1,1}进行逻辑“与”运算,得到目标映射向量{0,0,1,1},对应的搜索结果即为D3和D4。如果搜索关键词1和搜索关键词2是“或”操作,即搜索结果中包含搜索关键词1或搜索关键词2,那么,可以将{1,0,1,1}和{0,0,1,1}进行逻辑“或”运算,得到目标映射向量{1,0,1,1},对应的搜索结果即为D1、D3和D4。这样,用户可以根据自己的搜索需求选择相应的方法。
步骤S880,将搜索结果发送至第二终端设备。
本公开实施例中,由于搜索结果是加密数据,服务器将加密数据发送至第二终端设备后,第二终端设备可以通过相对应的解密方法对搜索结果进行解密。第二终端设备可以直接从第一终端设备获取解密方法,也可以从服务器中获取解密方法,当然,解密方法还可以是预先约定的等等。
本公开实施例的加密数据搜索方法中,由于查询向量和索引向量是根据质数列表确定的,而质数是不可除的,因此,根据该原理可以对查询向量和索引向量进行精确匹配,提高搜索的准确性,避免多搜或少搜的问题。通过索引陷门和加密数据的映射矩阵确定搜索结果,可以加快搜索速度,提升用户体验。并且,由于局部敏感哈希函数是比较复杂的,本公开根据质数列表构建索引向量和查询向量,可以避免通过局部敏感哈希函数构建索引向量和查询向量,减小了计算的复杂度,降低了性能的开销。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施方式中,还提供了一种加密数据搜索装置1900,应用于服务器,参考图19所示,包括:
查询陷门接收模块1910,用于接收一查询陷门,查询陷门根据查询向量确定,查询向量根据搜索关键词、质数列表和预设字符列表确定;
索引陷门选取模块1920,用于在本地存储的各索引陷门中,选取与查询陷门匹配的目标索引陷门,索引陷门根据对应的索引向量确定,索引向根据从对应的数据文件中提取的索引关键词、质数列表和预设字符列表确定;
搜索结果确定模块1930,用于将目标索引陷门对应的加密数据作为查询陷门对应的搜索结果,目标索引陷门对应的加密数据是目标索引陷门对应的数据文件的加密数据。
在本公开的一种示例性实施例中,查询向量的维度和每个索引向量的维度均与预设字符列表中字符的数量相等。
在本公开的一种示例性实施例中,索引陷门选取模块,包括:
确定匹配单元,用于针对每个索引陷门,在该索引陷门与查询陷门的乘积是整数时,确定该索引陷门与查询陷门匹配;
确定不匹配单元,用于针对每个索引陷门,在该索引陷门与查询陷门的乘积不是整数时,确定该索引陷门与查询陷门不匹配。
在本公开的一种示例性实施例中,搜索结果确定模块,包括:
映射向量确定单元,用于根据索引陷门和加密数据之间的映射矩阵,确定目标索引陷门在映射矩阵中对应的映射向量;
加密数据确定单元,用于根据映射向量,确定目标索引陷门对应的加密数据。
在本公开的一种示例性实施例中,加密数据确定单元,具体用于若目标索引陷门的数量为多个,对多个目标索引陷门对应的映射向量进行逻辑运算,得到目标映射向量;根据目标映射向量,确定目标索引陷门对应的加密数据。
本示例实施方式中,还提供了一种加密数据搜索装置2000,应用于第一终端设备,参考图20所示,包括:
索引向量确定模块2010,用于从数据文件中提取索引关键词,根据索引关键词、质数列表以及预设字符列表,确定索引向量;
索引陷门构建模块2020,用于根据索引向量,构建索引陷门;
加密数据及索引陷门上传模块2030,用于将数据文件的加密数据以及加密数据对应的索引陷门上传至服务器,以使服务器在接收到查询陷门后,选取与查询陷门匹配的目标索引陷门,并将目标索引陷门对应的加密数据作为搜索结果;
其中,查询陷门根据查询向量确定,查询向量是根据搜索关键词、质数和预设字符列表确定的。
在本公开的一种示例性实施例中,索引向量确定模块,包括:
索引字符映射单元,用于将索引关键词中每个字符依次与质数列表中的每个质数一一映射,得到索引关键词中每个字符对应的质数;
字符值设置单元,用于针对索引关键词中的每个字符,将预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将预设字符列表中其他字符的值设置为0;
索引向量构建单元,用于根据预设字符列表中各字符的值,构建索引向量。
在本公开的一种示例性实施例中,加密数据搜索装置,还包括:
质数更新单元,用于若索引关键词中任一字符的数量为多个,将该字符对应的质数均更新为所有该字符对应的质数的乘积。
在本公开的一种示例性实施例中,加密数据搜索装置,还包括:
映射矩阵建立模块,用于建立索引陷门和加密数据之间的映射矩阵;
映射矩阵发送模块,用于将映射矩阵发送至服务器,以使服务器根据目标索引陷门和映射矩阵确定搜索结果。
本示例实施方式中,还提供了一种加密数据搜索装置2100,应用于第一终端设备,参考图21所示,包括:
查询向量确定模块2110,用于获取搜索关键词,根据搜索关键词、质数列表和预设字符列表确定查询向量;
查询陷门构建模块2120,用于根据查询向量,构建查询陷门;
查询陷门发送模块2130,用于将查询陷门发送至服务器,以使服务器选取与查询陷门匹配的目标索引陷门,并将目标索引陷门对应的加密数据发送至第二终端设备;
其中,目标索引陷门根据对应的索引向量确定,索引向量根据从数据文件中提取的索引关键词、质数列表和预设字符列表确定,目标索引陷门对应的加密数据是数据文件的加密数据。
在本公开的一种示例性实施例中,查询向量确定模块,包括:
搜索字符映射单元,用于将搜索关键词中每个字符依次与质数列表中的每个质数一一映射,得到搜索关键词中每个字符对应的质数;
字符值确定单元,用于针对搜索关键词中的每个字符,将预设字符列表中与该字符相同的字符的值设置为该字符对应的质数,将预设字符列表中其他字符的值设置为1;
查询向量构建单元,用于根据预设字符列表中各字符的值,构建查询向量。
上述加密数据搜索装置中各模块或单元的具体细节已经在对应的加密数据搜索方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行本示例实施方式中的加密数据搜索方法的全部或者部分步骤。
图22示出了用于实现本公开实施例的电子设备的计算机系统的结构示意图。需要说明的是,图22示出的电子设备的计算机系统2200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图22所示,计算机系统2200包括中央处理单元(CPU)2201,其可以根据存储在只读存储器(ROM)2202中的程序或者从存储部分2208加载到随机访问存储器(RAM)2203中的程序而执行各种适当的动作和处理。在RAM 2203中,还存储有系统操作所需的各种程序和数据。CPU 2201、ROM 2202以及RAM 2203通过总线2204彼此相连。输入/输出(I/O)接口2205也连接至总线2204。
以下部件连接至I/O接口2205:包括键盘、鼠标等的输入部分2206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分2207;包括硬盘等的存储部分2208;以及包括诸如局域网(LAN)卡、调制解调器等的网络接口卡的通信部分2209。通信部分2209经由诸如因特网的网络执行通信处理。驱动器2210也根据需要连接至I/O接口2205。可拆卸介质2211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2210上,以便于从其上读出的计算机程序根据需要被安装入存储部分2208。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分2209从网络上被下载和安装,和/或从可拆卸介质2211被安装。在该计算机程序被中央处理单元(CPU)2201执行时,执行本申请的装置中限定的各种功能。
在本公开的示例性实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
需要说明的是,本公开所示的计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频等等,或者上述的任意合适的组合。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (16)
1.一种加密数据搜索方法,其特征在于,应用于服务器,所述方法包括:
接收一查询陷门,所述查询陷门根据查询向量确定,所述查询向量根据搜索关键词、质数列表和预设字符列表确定;
在本地存储的各索引陷门中,选取与所述查询陷门匹配的目标索引陷门,所述索引陷门根据对应的索引向量确定,所述索引向量根据从对应的数据文件中提取的索引关键词、所述质数列表和所述预设字符列表确定;
将目标索引陷门对应的加密数据作为所述查询陷门对应的搜索结果,所述目标索引陷门对应的加密数据是所述目标索引陷门对应的数据文件的加密数据;
其中,确定所述查询向量的过程包括:将所述搜索关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述搜索关键词中每个字符对应的质数;针对所述搜索关键词中的每个字符,将所述预设字符列表中与该所述字符相同的字符的值设置为该字符对应的质数,将所述预设字符列表中其他字符的值设置为1;根据所述预设字符列表中各字符的值,构建所述查询向量;
确定所述索引向量的过程包括:将所述索引关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述索引关键词中每个字符对应的质数;针对所述索引关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将所述预设字符列表中其他字符的值设置为0;根据所述预设字符列表中各字符的值,构建所述索引向量。
2.根据权利要求1所述的方法,其特征在于,所述查询向量的维度和每个索引向量的维度均与所述预设字符列表中字符的数量相等。
3.根据权利要求2所述的方法,其特征在于,针对每个索引陷门,判断该索引陷门是否与所述查询陷门匹配的方法,包括:
在该索引陷门与所述查询陷门的乘积是整数时,确定该索引陷门与所述查询陷门匹配;
在该索引陷门与所述查询陷门的乘积不是整数时,确定该索引陷门与所述查询陷门不匹配。
4.根据权利要求1所述的方法,其特征在于,所述目标索引陷门对应的加密数据的确定方法,包括:
根据索引陷门和加密数据之间的映射矩阵,确定所述目标索引陷门在所述映射矩阵中对应的映射向量;
根据所述映射向量,确定所述目标索引陷门对应的加密数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述映射向量,确定所述目标索引陷门对应的加密数据,包括:
若所述目标索引陷门的数量为多个,对多个目标索引陷门对应的映射向量进行逻辑运算,得到目标映射向量;
根据所述目标映射向量,确定所述目标索引陷门对应的加密数据。
6.一种加密数据搜索方法,其特征在于,应用于第一终端设备,所述方法包括:
从数据文件中提取索引关键词,根据所述索引关键词、质数列表以及预设字符列表,确定索引向量;
根据所述索引向量,构建索引陷门;
将所述数据文件的加密数据及所述加密数据对应的所述索引陷门上传至服务器,以使所述服务器在接收到查询陷门后,选取与所述查询陷门匹配的目标索引陷门,并将所述目标索引陷门对应的加密数据作为搜索结果;
其中,所述查询陷门根据查询向量确定,所述查询向量根据搜索关键词、所述质数和所述预设字符列表确定;
确定所述查询向量的过程包括:将所述搜索关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述搜索关键词中每个字符对应的质数;针对所述搜索关键词中的每个字符,将所述预设字符列表中与该所述字符相同的字符的值设置为该字符对应的质数,将所述预设字符列表中其他字符的值设置为1;根据所述预设字符列表中各字符的值,构建所述查询向量;
确定所述索引向量的过程包括:将所述索引关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述索引关键词中每个字符对应的质数;针对所述索引关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将所述预设字符列表中其他字符的值设置为0;根据所述预设字符列表中各字符的值,构建所述索引向量。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述索引关键词中任一字符的数量为多个,将该字符对应的质数均更新为所有该字符对应的质数的乘积。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
建立所述索引陷门和所述加密数据之间的映射矩阵;
将所述映射矩阵发送至所述服务器,以使所述服务器根据所述目标索引陷门和所述映射矩阵确定搜索结果。
9.一种加密数据搜索方法,其特征在于,应用于第二终端设备,所述方法包括:
获取搜索关键词,根据所述搜索关键词、质数列表和预设字符列表确定查询向量;
根据所述查询向量,构建查询陷门;
将所述查询陷门发送至服务器,以使所述服务器选取与所述查询陷门匹配的目标索引陷门,并将所述目标索引陷门对应的加密数据发送至所述第二终端设备;
其中,所述目标索引陷门根据对应的索引向量确定,所述索引向量根据从数据文件中提取的索引关键词、所述质数列表和所述预设字符列表确定,所述目标索引陷门对应的加密数据是所述数据文件的加密数据;
确定所述查询向量的过程包括:将所述搜索关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述搜索关键词中每个字符对应的质数;针对所述搜索关键词中的每个字符,将所述预设字符列表中与该所述字符相同的字符的值设置为该字符对应的质数,将所述预设字符列表中其他字符的值设置为1;根据所述预设字符列表中各字符的值,构建所述查询向量;
确定所述索引向量的过程包括:将所述索引关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述索引关键词中每个字符对应的质数;针对所述索引关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将所述预设字符列表中其他字符的值设置为0;根据所述预设字符列表中各字符的值,构建所述索引向量。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若所述搜索关键词中任一字符的数量为多个,将该字符对应的质数均更新为所有该字符对应的质数的乘积。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若所述搜索关键词中包含模糊字符,针对所述搜索关键词中的每个字符,将该字符对应的质数更新为该字符对应的质数与所述模糊字符对应的质数的乘积。
12.一种加密数据搜索装置,其特征在于,应用于服务器,所述装置包括:
查询陷门接收模块,用于接收一查询陷门,所述查询陷门根据查询向量确定,所述查询向量根据搜索关键词、质数列表和预设字符列表确定;
索引陷门选取模块,用于在本地存储的各索引陷门中,选取与所述查询陷门匹配的目标索引陷门,所述索引陷门根据对应的索引向量确定,所述索引向根据从对应的数据文件中提取的索引关键词、所述质数列表和所述预设字符列表确定;
搜索结果确定模块,用于将所述目标索引陷门对应的加密数据作为所述查询陷门对应的搜索结果,所述目标索引陷门对应的加密数据是所述目标索引陷门对应的数据文件的加密数据;
其中,确定所述查询向量的过程包括:将所述搜索关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述搜索关键词中每个字符对应的质数;针对所述搜索关键词中的每个字符,将所述预设字符列表中与该所述字符相同的字符的值设置为该字符对应的质数,将所述预设字符列表中其他字符的值设置为1;根据所述预设字符列表中各字符的值,构建所述查询向量;
确定所述索引向量的过程包括:将所述索引关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述索引关键词中每个字符对应的质数;针对所述索引关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将所述预设字符列表中其他字符的值设置为0;根据所述预设字符列表中各字符的值,构建所述索引向量。
13.一种加密数据搜索装置,其特征在于,应用于第一终端设备,所述装置包括:
索引向量确定模块,用于从数据文件中提取索引关键词,根据所述索引关键词、质数列表以及预设字符列表,确定索引向量;
索引陷门构建模块,用于根据所述索引向量,构建索引陷门;
加密数据及索引陷门上传模块,用于将所述数据文件的加密数据以及所述加密数据对应的所述索引陷门上传至服务器,以使所述服务器在接收到查询陷门后,选取与所述查询陷门匹配的目标索引陷门,并将所述目标索引陷门对应的加密数据作为搜索结果;
其中,所述查询陷门根据查询向量确定,所述查询向量是根据搜索关键词、所述质数和所述预设字符列表确定的;
确定所述查询向量的过程包括:将所述搜索关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述搜索关键词中每个字符对应的质数;针对所述搜索关键词中的每个字符,将所述预设字符列表中与该所述字符相同的字符的值设置为该字符对应的质数,将所述预设字符列表中其他字符的值设置为1;根据所述预设字符列表中各字符的值,构建所述查询向量;
确定所述索引向量的过程包括:将所述索引关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述索引关键词中每个字符对应的质数;针对所述索引关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将所述预设字符列表中其他字符的值设置为0;根据所述预设字符列表中各字符的值,构建所述索引向量。
14.一种加密数据搜索装置,其特征在于,应用于第二终端设备,所述装置包括:
查询向量确定模块,用于获取搜索关键词,根据所述搜索关键词、质数列表和预设字符列表确定查询向量;
查询陷门构建模块,用于根据所述查询向量,构建查询陷门;
查询陷门发送模块,用于将所述查询陷门发送至服务器,以使所述服务器选取与所述查询陷门匹配的目标索引陷门,并将所述目标索引陷门对应的加密数据发送至所述第二终端设备;
其中,所述目标索引陷门根据对应的索引向量确定,所述索引向量根据从数据文件中提取的索引关键词、所述质数列表和所述预设字符列表确定,所述目标索引陷门对应的加密数据是所述数据文件的加密数据;
确定所述查询向量的过程包括:将所述搜索关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述搜索关键词中每个字符对应的质数;针对所述搜索关键词中的每个字符,将所述预设字符列表中与该所述字符相同的字符的值设置为该字符对应的质数,将所述预设字符列表中其他字符的值设置为1;根据所述预设字符列表中各字符的值,构建所述查询向量;
确定所述索引向量的过程包括:将所述索引关键词中每个字符依次与所述质数列表中的每个质数一一映射,得到所述索引关键词中每个字符对应的质数;针对所述索引关键词中的每个字符,将所述预设字符列表中与该字符相同的字符的值,设置为该字符对应的质数的倒数,将所述预设字符列表中其他字符的值设置为0;根据所述预设字符列表中各字符的值,构建所述索引向量。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~11任一项所述的方法。
16.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910940096.2A CN112580087B (zh) | 2019-09-30 | 2019-09-30 | 加密数据搜索方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910940096.2A CN112580087B (zh) | 2019-09-30 | 2019-09-30 | 加密数据搜索方法及装置、存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112580087A CN112580087A (zh) | 2021-03-30 |
CN112580087B true CN112580087B (zh) | 2024-04-05 |
Family
ID=75116188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910940096.2A Active CN112580087B (zh) | 2019-09-30 | 2019-09-30 | 加密数据搜索方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112580087B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115292737B (zh) * | 2022-10-08 | 2022-12-09 | 成都泛联智存科技有限公司 | 一种多关键词模糊搜索加密方法、系统及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593196A (zh) * | 2008-05-30 | 2009-12-02 | 日电(中国)有限公司 | 用于快速密文检索的方法、装置和系统 |
CN106776904A (zh) * | 2016-11-30 | 2017-05-31 | 中南大学 | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 |
CN108228849A (zh) * | 2018-01-10 | 2018-06-29 | 浙江理工大学 | 云网络中基于类别分组索引的密文排序搜索方法 |
CN108256031A (zh) * | 2018-01-11 | 2018-07-06 | 北京理工大学 | 一种支持隐私保护的多源加密图像检索方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9646166B2 (en) * | 2013-08-05 | 2017-05-09 | International Business Machines Corporation | Masking query data access pattern in encrypted data |
-
2019
- 2019-09-30 CN CN201910940096.2A patent/CN112580087B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593196A (zh) * | 2008-05-30 | 2009-12-02 | 日电(中国)有限公司 | 用于快速密文检索的方法、装置和系统 |
CN106776904A (zh) * | 2016-11-30 | 2017-05-31 | 中南大学 | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 |
CN108228849A (zh) * | 2018-01-10 | 2018-06-29 | 浙江理工大学 | 云网络中基于类别分组索引的密文排序搜索方法 |
CN108256031A (zh) * | 2018-01-11 | 2018-07-06 | 北京理工大学 | 一种支持隐私保护的多源加密图像检索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112580087A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590214B (zh) | 搜索关键词的推荐方法、装置及电子设备 | |
EP3168771B1 (en) | Poly-logarythmic range queries on encrypted data | |
CN111400504B (zh) | 企业关键人的识别方法和装置 | |
CN111026788B (zh) | 一种混合云中基于同态加密的多关键词密文排序检索方法 | |
CN108038128B (zh) | 一种加密文件的检索方法、系统、终端设备及存储介质 | |
CN109829320B (zh) | 一种信息的处理方法和装置 | |
CN110096655A (zh) | 搜索结果的排序方法、装置、设备及存储介质 | |
WO2018070932A1 (en) | System and method for querying an encrypted database for documents satisfying an expressive keyword access structure | |
CN115017107A (zh) | 基于保护隐私的数据检索方法、装置、计算机设备及介质 | |
AU2022203199A1 (en) | Digital signature method, signature information authentication method, and relevant electronic devices | |
CN115757676A (zh) | 模糊可搜索加密方法、装置及电子设备 | |
CN112580087B (zh) | 加密数据搜索方法及装置、存储介质、电子设备 | |
JPWO2018116826A1 (ja) | メッセージ送信システム、通信端末、サーバ装置、メッセージ送信方法、およびプログラム | |
US20230113896A1 (en) | System for Restrictive Discovery of Private Data Feature Intersection | |
JP2022517882A (ja) | ターゲティングおよびその他の設定を改善するためのコンテンツプロバイダの推薦 | |
CN112463749A (zh) | 文件分享方法、装置、介质及电子设备 | |
US11133926B2 (en) | Attribute-based key management system | |
CN116644146A (zh) | 一种文档搜索方法、装置、系统、电子设备及存储介质 | |
CN110765238A (zh) | 数据加密查询方法及装置 | |
CN110851794A (zh) | 媒体文件上链方法和装置、存储介质及电子装置 | |
JP6143462B2 (ja) | 画像検索装置、画像検索方法、検索元画像提供装置、検索元画像提供方法、及びプログラム | |
CN115858914A (zh) | 一种匿踪查询方法、装置、系统、终端设备及存储介质 | |
CN115203391A (zh) | 一种信息检索方法、装置、计算机设备及存储介质 | |
CN115563377A (zh) | 企业的确定方法、装置、存储介质及电子设备 | |
CN109995518A (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 |