CN111680062B - 一种安全多目标数据对象查询方法及存储介质 - Google Patents
一种安全多目标数据对象查询方法及存储介质 Download PDFInfo
- Publication number
- CN111680062B CN111680062B CN202010410538.5A CN202010410538A CN111680062B CN 111680062 B CN111680062 B CN 111680062B CN 202010410538 A CN202010410538 A CN 202010410538A CN 111680062 B CN111680062 B CN 111680062B
- Authority
- CN
- China
- Prior art keywords
- data object
- encrypted data
- target
- data
- encrypted
- 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
Images
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/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/2453—Query optimisation
-
- 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
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种安全多目标数据对象查询方法及存储介质,所述方法包括获取明文数据集;对所述明文数据集中的各个明文数据对象进行第一加密,得到第一加密数据对象集;对所述明文数据集中的各个明文数据对象进行第二加密,得到第二加密数据对象集;构建映射,具有映射关系的第一加密数据对象和第二加密数据对象指向相同的明文数据对;对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集;根据所述映射得到所述目标第一加密数据对象集对应的目标第二加密数据对象集;对所述目标第二加密数据对象集进行解密,得到目标明文数据对象集。本发明查询过程处于全密状态,显著提升了查询安全性。
Description
技术领域
本发明涉及数据查询领域,尤其涉及一种安全多目标数据对象查询方法及存储介质。
背景技术
在数据对象集中根据预设的多目标查询算法查询目标数据对象,是数据对象查询领域的常见问题,而这种数据对象查询通常是基于明文进行查询的,很少考虑到用户敏感数据的安全性。
由于安全性问题的突出,越来越多的数据库对用户的敏感数据进行加密以保证其安全性。尤其是当用户将数据库上传到云端服务器存储时,可能会受到好奇(或恶意)的服务器管理员对用户敏感数据的非法访问与窃取,因此,以数据密文的形式保存数据可以有效提升数据安全性。
然而,现有技术无法将多目标查询方法与密文比较相结合,缺少这方面的研究,从而导致了基于密文进行多目标查询难以实现。
发明内容
为了解决现有技术中基于密文进行多目标查询难以实现的问题,兼顾多目标查询和数据安全需求,本发明实施例提供一种安全多目标数据对象查询方法及存储介质。
一种安全多目标数据对象查询方法,所述方法包括:
获取明文数据集,所述明文数据集中包括至少一个明文数据对象,每个所述明文数据对象包括至少一个维度的属性数据;
对所述明文数据集中的各个明文数据对象进行第一加密,得到所述明文数据对象对应的第一加密数据对象,得到第一加密数据对象集;对所述明文数据集中的各个明文数据对象进行第二加密,得到所述明文数据对应的第二加密数据对象,得到第二加密数据对象集;
构建第一加密数据对象集和所述第二加密数据对象集的映射,具有映射关系的第一加密数据对象和第二加密数据对象指向相同的明文数据对;
对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集;
根据所述映射得到所述目标第一加密数据对象集对应的目标第二加密数据对象集;
对所述目标第二加密数据对象集进行解密,得到目标明文数据对象集。
优选的,所述对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集,包括:
基于所述第一加密数据对象集得到N个第一加密数据对象子集,其中,第i(i≤N)个第一加密数据对象子集中的第一加密数据对象满足下述要求:所述第一加密数据对象中第i(i≤N)个属性对应的属性数据的值大于所述第一加密数据对象中其它属性对应的属性数据的值;
对所述N个所述第一加密数据对象子集中的第一加密数据对象进行排序,所述排序满足下述要求:第i(i≤N)个第一加密数据对象子集按照标志维度中的属性数据的取值降序的顺序排列其中的第一数据对象,所述标志维度为第i(i≤N)个维度;
对每一个排序后的第一加密数据对象子集构建其对应的索引;
基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集。
优选的,所述对每一个排序后的第一加密数据对象子集构建其对应的索引,包括:
使用B+树构建索引,将每一个排序后的第一加密数据对象子集内的数据对象按照其标志维度的属性数据的值从小到大的顺序将其对应的第一加密数据对象从左到右存入B+树的叶子节点中;
对叶子节点中的值建立双向的指针链接。
优选的,所述基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集,包括:
初始化目标第一加密数据对象集为空集;
设定当前分区标识i和与所述当前分区标识对应的当前分区对象集,将所述当前分区对象集初始化为空集,将所述当前分区标识初始化为1;
根据所述当前分区标识和所述第一加密数据对象集得到当前加密对象集,所述当前加密对象集中的数据对象均满足下述条件:被所述第一加密数据对象集命中,并且其具备的属性数据命中当前分区标识i对应的目标数据,所述目标数据为这样一种数据:提取所述第一加密数据对象集中全部数据对象的全部属性数据得到数据集,对所述数据集去除取值相同的数据后进行降序排列得到数据排序结果,所述数据排序结果中的第i个数据即为当前分区标识i对应的目标数据;
对所述当前加密对象集进行多目标数据对象查询,查询结果存储在当前分区对象集,将所述当前分区对象集合并入所述目标第一加密数据对象集;
判断查询停止条件是否被满足,若否,则分区标识i自增一,清空所述当前分区对象集,返回执行步骤:根据所述当前分区标识和所述第一加密数据对象集得到当前加密对象集,所述当前加密对象集中的数据对象均满足下述条件:被所述第一加密数据对象集命中,并且其具备的属性数据命中当前分区标识i对应的目标数据,所述目标数据为这样一种数据:提取所述第一加密数据对象集中全部数据对象的全部属性数据得到数据集,对所述数据集去除取值相同的数据后进行降序排列得到数据排序结果,所述数据排序结果中的第i个数据即为当前分区标识i对应的目标数据。
优选的,为某个第一加密数据对象子集更新其访问标记的方法为:
获取各个第一加密数据对象子集的最大标记值maxi和最小标记值mini,所述最大标记值为所述第一加密数据对象子集对应的B+树索引的最右值指向的第一加密数据对象的各个属性数据中的最大值;所述最小标记值为所述第一加密数据对象子集对应的B+树索引的最右值指向的第一加密数据对象的各个属性数据中的最小值;
将各个最大标记值maxi的最大值确定为最大参考标记值mx,将各个最大标记值mini的最大值确定为最大参考标记值mn;
对于某个第一加密数据对象子集,若其对应的最大标记值maxi小于最大参考标记值mn,则所述第一加密数据对象子集的访问标记被更新为false。
优选的,所述从满足预设条件的目标第一加密数据对象子集中提取具备的属性数据命中目标数据的第一加密数据对象,构成当前加密对象集,包括:
对于各个满足预设条件的目标第一加密数据对象子集,执行下述步骤:
初始化待选集合为空集;
循环执行下述步骤:若所述目标第一加密数据对象子集的最大标记值maxi等于最大参考标记值mx,将其对应的B+树索引的最右值指向的第一加密数据对象确定为标记对象,将所述标记对象加入所述待选集合;根据所述第一加密数据对象子集的索引寻找所述标记对象的左节点,将其更新为新的标记对象,将目标第一加密数据对象子集的最大标记值maxi更新为所述标记对象各个属性数据中的最大值;
将待选集合合并入当前加密对象集。
优选的,所述对所述当前加密对象集进行多目标数据对象查询,包括:
使用块嵌套环算法实现多目标查询。
优选的,基于所述多目标查询产生的目标第一加密数据对象集中的第一加密数据对象均满足这样的条件:
目标第一加密数据对象集中的第一加密数据对象均不会被所述目标第一加密数据对象集中的其它第一加密数据对象控制;控制的含义为:若一个数据对象A控制另一个数据对象B,当且仅当,数据对象A的任何属性数据的值都大于等于数据对象B的相应的属性数据的值,并且数据对象A的属性数据不能全部等于数据对象B的相应的属性数据的值。
优选的,所述查询停止条件可以根据实际需要进行设置,包括:
所述目标第一加密数据对象集中元素数量达到预设阈值;
或,
分区标识i达到预设阈值。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如一种安全多目标数据对象查询方法。
本发明提供了一种安全多目标数据对象查询方法及存储介质,对传统的多目标数据查询算法进行了优化,通过设计索引和基于索引,通过分区的方式进行多目标数据查询提升了多目标数据查询的速度,并且设计了密文比较大小的操作,再此基础上实现了密文状态的多目标数据查询,并且可以通过密文状态的多目标数据查询到结果,得到相应的明文结果,查询过程处于全密状态,显著提升了查询安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供一种安全多目标数据对象查询方法流程图;
图2是本发明提供的对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集流程图;
图3是本发明提供的各个第一加密数据对象子集示意图;
图4是本发明提供的基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了解决现有技术中基于密文进行多目标查询难以实现的问题,兼顾多目标查询和数据安全需求,本发明实施例提供一种安全多目标数据对象查询方法。
如图1所示,其示出了一种安全多目标数据对象查询方法,所述方法包括:
S101.获取明文数据集,所述明文数据集中包括至少一个明文数据对象,每个所述明文数据对象包括至少一个维度的属性数据。
S102.对所述明文数据集中的各个明文数据对象进行第一加密,得到所述明文数据对象对应的第一加密数据对象,得到第一加密数据对象集;对所述明文数据集中的各个明文数据对象进行第二加密,得到所述明文数据对应的第二加密数据对象,得到第二加密数据对象集。
本发明实施例中,所述第一加密和所述第二加密基于不同的加密密钥,本发明实施例将其命名为k和k′,所述第一加密和第二加密均可以为对称分组加密,所述第一加密和所述第二加密可以使用相同或不同的加密算法,所述对称分组加密包括但不限于AES或国密SM4。
在一个可行的实施例中,所述第一加密为国密SM4,所述对所述明文数据集中的各个明文数据对象进行第一加密,得到所述明文数据对象对应的第一加密数据对象,包括:对明文数据对象中各个维度的属性数据均进行加密,得到所述明文数据对象对应的第一加密数据对象。
假设b1b2…bn是数据m的二进制表示,数据m是明文数据对象的其中一个属性数据,则对于每个i,其中i∈[n],计算其对应的密文ui=F(k,(i,b1b2…bi-1||0n-i))+bi(mod3),最后明文数据对象加密后得到的第一加密对象可以被表示为(u1,u2,…,un)。其中,函数F(k,x)为SM4加密算法,k为密钥,x为需要加密的值。
S103.构建第一加密数据对象集和所述第二加密数据对象集的映射,具有映射关系的第一加密数据对象和第二加密数据对象指向相同的明文数据对象。
S104.对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集。
具体地,所述对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集,如图2所示,包括:
S1041.基于所述第一加密数据对象集得到N个第一加密数据对象子集,其中,第i(i≤N)个第一加密数据对象子集中的第一加密数据对象满足下述要求:所述第一加密数据对象中第i(i≤N)个属性对应的属性数据的值大于所述第一加密数据对象中其它属性对应的属性数据的值。
显然,N表征第一加密数据对象集中各个第一加密数据对象的维度,i(i≤N)从1开始取值到N。
如图3所示,显然,第一个第一加密数据对象子集(第一分区)中第1个属性数据均大于其它属性数据,第二个第一加密数据对象子集(第二分区)中第2个属性数据均大于其它属性数据,以此类推。
由于所述第一加密数据对象集中的属性数据是密文数据,因此对第一加密数据对象的属性数据的比较为密文比较,密文比较方法与生成密文用加密方法一一对应,在加密方法确定后密文比较方法随之被确定,本发明实施例不做赘述。
在第一加密数据对象的属性数据可以进行密文比较的基础上,本发明实施例公开第一加密数据对象的比较方法:
设两个第一加密数据对象的密文数据为ct1=(u1,u2…un)和ct2=u′1,u′2,…,u′n),设i为第一个ui≠u′i对应的下标值,如果不存在,则输出第一参考值;如果存在,当u′i=ui+1(mod3)输出第二参考值,否则输出第一参考值。其中,当输出值为第二参考值时,ct1小于ct2;当输出值为第一参考值时,ct1大于等于ct2。
S1042.对所述N个所述第一加密数据对象子集中的第一加密数据对象进行排序,所述排序满足下述要求:第i(i≤N)个第一加密数据对象子集按照标志维度中的属性数据的取值降序的顺序排列其中的第一数据对象,所述标志维度为第i(i≤N)个维度。
如图3所示,第一个第一加密数据对象子集(第一分区)中的第一属性对应的属性数据取值从0.9开始降序排列值0.1。
S1043.对每一个排序后的第一加密数据对象子集构建其对应的索引。
在一个可行的实施例中,可以使用B+树构建索引,将每一个排序后的第一加密数据对象子集内的数据对象按照其标志维度的属性数据的值从小到大的顺序将其对应的第一加密数据对象从左到右存入B+树的叶子节点中。
在一个优选的实施例中,为了便于对索引进行动态编辑,可以对叶子节点中的值建立双向的指针链接。
S1044.基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集。
具体地,所述基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集,如图4所示,包括:
S10441.初始化目标第一加密数据对象集为空集。
S10442.设定当前分区标识i和与所述当前分区标识对应的当前分区对象集,将所述当前分区对象集初始化为空集,将所述当前分区标识初始化为1。
S10443.根据所述当前分区标识和所述第一加密数据对象集得到当前加密对象集,所述当前加密对象集中的数据对象均满足下述条件:被所述第一加密数据对象集命中,并且其具备的属性数据命中当前分区标识i对应的目标数据,所述目标数据为这样一种数据:提取所述第一加密数据对象集中全部数据对象的全部属性数据得到数据集,对所述数据集去除取值相同的数据后进行降序排列得到数据排序结果,所述数据排序结果中的第i个数据即为当前分区标识i对应的目标数据。
如图3所示,对于当前分区标识为1时,目标数据即为0.9,则属性数据命中0.9的第一加密数据对象均被选入当前加密对象集。对于当前分区标识为2时,目标数据即为0.8,则属性数据命中0.8的第一加密数据对象均被选入当前加密对象集。
具体地,所述根据所述当前分区标识和所述第一加密数据对象集得到当前加密对象集,包括:遍历各个第一加密数据对象子集,从满足预设条件的目标第一加密数据对象子集中提取具备的属性数据命中目标数据的第一加密数据对象,构成当前加密对象集。
具体地,所述满足预设条件的目标第一加密数据对象子集为访问标记为true的第一加密数据对象子集,若所述访问标记为false,则表征所述第一加密数据对象子集不存在可以被纳入当前分区对象集的第一加密数据对象。
具体地,为某个第一加密数据对象子集更新其访问标记的方法为:
(1)获取各个第一加密数据对象子集的最大标记值maxi和最小标记值mini,所述最大标记值为所述第一加密数据对象子集对应的B+树索引的最右值指向的第一加密数据对象的各个属性数据中的最大值;所述最小标记值为所述第一加密数据对象子集对应的B+树索引的最右值指向的第一加密数据对象的各个属性数据中的最小值;
(2)将各个最大标记值maxi的最大值确定为最大参考标记值mx,将各个最大标记值mini的最大值确定为最大参考标记值mn。
(3)对于某个第一加密数据对象子集,若其对应的最大标记值maxi小于最大参考标记值mn,则所述第一加密数据对象子集的访问标记被更新为false。
具体地,所述从满足预设条件的目标第一加密数据对象子集中提取具备的属性数据命中目标数据的第一加密数据对象,构成当前加密对象集,包括:
对于各个满足预设条件的目标第一加密数据对象子集,执行下述步骤:
S10.初始化待选集合为空集;
S20.循环执行下述步骤:若所述目标第一加密数据对象子集的最大标记值maxi等于最大参考标记值mx,将其对应的B+树索引的最右值指向的第一加密数据对象确定为标记对象,将所述标记对象加入所述待选集合;根据所述第一加密数据对象子集的索引寻找所述标记对象的左节点,将其更新为新的标记对象,将目标第一加密数据对象子集的最大标记值maxi更新为所述标记对象各个属性数据中的最大值。
S30.将待选集合合并入当前加密对象集。
进一步地,本发明实施例中当前加密对象集参与到步骤S10444之后,各个第一加密数据对象子集删除其命中当前加密对象集的第一加密数据对象,相应的,其索引也进行更新;以便于在下一次当前加密对象集的获取时不必考虑上一循环中已经参与过的第一加密数据对象。
S10444.对所述当前加密对象集进行多目标数据对象查询,查询结果存储在当前分区对象集,将所述当前分区对象集合并入所述目标第一加密数据对象集。
具体地,现有技术中通常使用块嵌套环算法(block-nested-loops算法)实现多目标查询,本发明实施例也可以使用块嵌套环算法来进行多目标数据对象查询,多目标查询属于现有技术,本发明实施例不做赘言。基于所述多目标查询产生的目标第一加密数据对象集中的第一加密数据对象均满足这样的条件:
目标第一加密数据对象集中的第一加密数据对象均不会被所述目标第一加密数据对象集中的其它第一加密数据对象控制。控制的含义为:若一个数据对象A控制另一个数据对象B,当且仅当,数据对象A的任何属性数据的值都大于等于数据对象B的相应的属性数据的值,并且数据对象A的属性数据不能全部等于数据对象B的相应的属性数据的值。
S10445.判断查询停止条件是否被满足,若否,则分区标识i自增一,清空所述当前分区对象集,返回执行步骤S10443。
具体地,所述查询停止条件可以根据实际需要进行设置,其包括但不限于以下几种:
(1)所述目标第一加密数据对象集中元素数量达到预设阈值。
(2)分区标识i达到预设阈值。
S105.根据所述映射得到所述目标第一加密数据对象集对应的目标第二加密数据对象集。
S106.对所述目标第二加密数据对象集进行解密,得到目标明文数据对象集。
所述对所述目标第二加密数据对象集进行解密,得到目标明文数据对象集,具体为根据密钥k′,采用与第二加密方法对应的方法对目标加密数据对象集中各个元素进行解密,得到目标明文数据对象集。
本发明实施例提供一种安全多目标数据对象查询方法,对传统的多目标数据查询算法进行了优化,通过设计索引和基于索引,通过分区的方式进行多目标数据查询提升了多目标数据查询的速度,并且设计了密文比较大小的操作,再此基础上实现了密文状态的多目标数据查询,并且可以通过密文状态的多目标数据查询到结果,得到相应的明文结果,查询过程处于全密状态,显著提升了查询安全性。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可以存储有多条指令。所述指令可以适于由处理器加载并执行本发明实施例所述的一种安全多目标数据对象查询方法,所述方法至少包括下述步骤:
一种安全多目标数据对象查询方法,所述方法包括:
获取明文数据集,所述明文数据集中包括至少一个明文数据对象,每个所述明文数据对象包括至少一个维度的属性数据;
对所述明文数据集中的各个明文数据对象进行第一加密,得到所述明文数据对象对应的第一加密数据对象,得到第一加密数据对象集;对所述明文数据集中的各个明文数据对象进行第二加密,得到所述明文数据对应的第二加密数据对象,得到第二加密数据对象集;
构建第一加密数据对象集和所述第二加密数据对象集的映射,具有映射关系的第一加密数据对象和第二加密数据对象指向相同的明文数据对;
对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集;
根据所述映射得到所述目标第一加密数据对象集对应的目标第二加密数据对象集;
对所述目标第二加密数据对象集进行解密,得到目标明文数据对象集。
优选的,所述对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集,包括:
基于所述第一加密数据对象集得到N个第一加密数据对象子集,其中,第i(i≤N)个第一加密数据对象子集中的第一加密数据对象满足下述要求:所述第一加密数据对象中第i(i≤N)个属性对应的属性数据的值大于所述第一加密数据对象中其它属性对应的属性数据的值;
对所述N个所述第一加密数据对象子集中的第一加密数据对象进行排序,所述排序满足下述要求:第i(i≤N)个第一加密数据对象子集按照标志维度中的属性数据的取值降序的顺序排列其中的第一数据对象,所述标志维度为第i(i≤N)个维度;
对每一个排序后的第一加密数据对象子集构建其对应的索引;
基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集。
优选的,所述对每一个排序后的第一加密数据对象子集构建其对应的索引,包括:
使用B+树构建索引,将每一个排序后的第一加密数据对象子集内的数据对象按照其标志维度的属性数据的值从小到大的顺序将其对应的第一加密数据对象从左到右存入B+树的叶子节点中;
对叶子节点中的值建立双向的指针链接。
优选的,所述基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集,包括:
初始化目标第一加密数据对象集为空集;
设定当前分区标识i和与所述当前分区标识对应的当前分区对象集,将所述当前分区对象集初始化为空集,将所述当前分区标识初始化为1;
根据所述当前分区标识和所述第一加密数据对象集得到当前加密对象集,所述当前加密对象集中的数据对象均满足下述条件:被所述第一加密数据对象集命中,并且其具备的属性数据命中当前分区标识i对应的目标数据,所述目标数据为这样一种数据:提取所述第一加密数据对象集中全部数据对象的全部属性数据得到数据集,对所述数据集去除取值相同的数据后进行降序排列得到数据排序结果,所述数据排序结果中的第i个数据即为当前分区标识i对应的目标数据;
对所述当前加密对象集进行多目标数据对象查询,查询结果存储在当前分区对象集,将所述当前分区对象集合并入所述目标第一加密数据对象集;
判断查询停止条件是否被满足,若否,则分区标识i自增一,清空所述当前分区对象集,返回执行步骤:根据所述当前分区标识和所述第一加密数据对象集得到当前加密对象集,所述当前加密对象集中的数据对象均满足下述条件:被所述第一加密数据对象集命中,并且其具备的属性数据命中当前分区标识i对应的目标数据,所述目标数据为这样一种数据:提取所述第一加密数据对象集中全部数据对象的全部属性数据得到数据集,对所述数据集去除取值相同的数据后进行降序排列得到数据排序结果,所述数据排序结果中的第i个数据即为当前分区标识i对应的目标数据。
优选的,为某个第一加密数据对象子集更新其访问标记的方法为:
获取各个第一加密数据对象子集的最大标记值maxi和最小标记值mini,所述最大标记值为所述第一加密数据对象子集对应的B+树索引的最右值指向的第一加密数据对象的各个属性数据中的最大值;所述最小标记值为所述第一加密数据对象子集对应的B+树索引的最右值指向的第一加密数据对象的各个属性数据中的最小值;
将各个最大标记值maxi的最大值确定为最大参考标记值mx,将各个最大标记值mini的最大值确定为最大参考标记值mn;
对于某个第一加密数据对象子集,若其对应的最大标记值maxi小于最大参考标记值mn,则所述第一加密数据对象子集的访问标记被更新为false。
优选的,所述从满足预设条件的目标第一加密数据对象子集中提取具备的属性数据命中目标数据的第一加密数据对象,构成当前加密对象集,包括:
对于各个满足预设条件的目标第一加密数据对象子集,执行下述步骤:
初始化待选集合为空集;
循环执行下述步骤:若所述目标第一加密数据对象子集的最大标记值maxi等于最大参考标记值mx,将其对应的B+树索引的最右值指向的第一加密数据对象确定为标记对象,将所述标记对象加入所述待选集合;根据所述第一加密数据对象子集的索引寻找所述标记对象的左节点,将其更新为新的标记对象,将目标第一加密数据对象子集的最大标记值maxi更新为所述标记对象各个属性数据中的最大值;
将待选集合合并入当前加密对象集。
优选的,所述对所述当前加密对象集进行多目标数据对象查询,包括:
使用块嵌套环算法实现多目标查询。
优选的,基于所述多目标查询产生的目标第一加密数据对象集中的第一加密数据对象均满足这样的条件:
目标第一加密数据对象集中的第一加密数据对象均不会被所述目标第一加密数据对象集中的其它第一加密数据对象控制;控制的含义为:若一个数据对象A控制另一个数据对象B,当且仅当,数据对象A的任何属性数据的值都大于等于数据对象B的相应的属性数据的值,并且数据对象A的属性数据不能全部等于数据对象B的相应的属性数据的值。
优选的,所述查询停止条件可以根据实际需要进行设置,包括:
所述目标第一加密数据对象集中元素数量达到预设阈值;
或,
分区标识i达到预设阈值。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种安全多目标数据对象查询方法,其特征在于,所述方法包括:
获取明文数据集,所述明文数据集中包括至少一个明文数据对象,每个所述明文数据对象包括至少一个维度的属性数据;
对所述明文数据集中的各个明文数据对象进行第一加密,得到所述明文数据对象对应的第一加密数据对象,得到第一加密数据对象集;
对所述明文数据集中的各个明文数据对象进行第二加密,得到所述明文数据对应的第二加密数据对象,得到第二加密数据对象集;
构建第一加密数据对象集和所述第二加密数据对象集的映射,具有映射关系的第一加密数据对象和第二加密数据对象指向相同的明文数据对象;
对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集;
根据所述映射得到所述目标第一加密数据对象集对应的目标第二加密数据对象集;
对所述目标第二加密数据对象集进行解密,得到目标明文数据对象集;
所述对所述第一加密数据对象集进行多目标数据对象查询,得到目标第一加密数据对象集,包括:
基于所述第一加密数据对象集得到N个第一加密数据对象子集,其中,第i(i≤N)个第一加密数据对象子集中的第一加密数据对象满足下述要求:所述第一加密数据对象中第i(i≤N)个属性对应的属性数据的值大于所述第一加密数据对象中其它属性对应的属性数据的值;第i个第一加密数据对象子集对应第i分区;对所述N个所述第一加密数据对象子集中的第一加密数据对象进行排序,所述排序满足下述要求:第i(i≤N)个第一加密数据对象子集按照标志维度中的属性数据的取值降序的顺序排列其中的第一数据对象,所述标志维度为第i(i≤N)个维度;对每一个排序后的第一加密数据对象子集构建其对应的索引;基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集;
所述基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集,包括:初始化目标第一加密数据对象集为空集;设定当前分区标识i和与所述当前分区标识对应的当前分区对象集,将所述当前分区对象集初始化为空集,将所述当前分区标识初始化为1;根据所述当前分区标识和所述第一加密数据对象集得到当前加密对象集,所述当前加密对象集中的数据对象均满足下述条件:被所述第一加密数据对象集命中,并且其具备的属性数据命中当前分区标识i对应的目标数据,所述目标数据为这样一种数据:提取所述第一加密数据对象集中全部数据对象的全部属性数据得到数据集,对所述数据集去除取值相同的数据后进行降序排列得到数据排序结果,所述数据排序结果中的第i个数据即为当前分区标识i对应的目标数据;对所述当前加密对象集进行多目标数据对象查询,查询结果存储在当前分区对象集,将所述当前分区对象集合并入所述目标第一加密数据对象集。
2.根据权利要求1所述的方法,其特征在于,所述对每一个排序后的第一加密数据对象子集构建其对应的索引,包括:使用B+树构建索引,将每一个排序后的第一加密数据对象子集内的数据对象按照顺序将其对应的第一加密数据对象存入B+树中;对B+树叶子节点中的值建立双向的指针链接。
3.根据权利要求2所述的方法,其特征在于,所述基于所述索引进行多目标数据对象查询,得到目标第一加密数据对象集,还包括:判断查询停止条件是否被满足,若否,则分区标识i自增一,清空所述当前分区对象集,返回执行步骤:根据所述当前分区标识和所述第一加密数据对象集得到当前加密对象集,所述当前加密对象集中的数据对象均满足下述条件:被所述第一加密数据对象集命中,并且其具备的属性数据命中当前分区标识i对应的目标数据,所述目标数据为这样一种数据:提取所述第一加密数据对象集中全部数据对象的全部属性数据得到数据集,对所述数据集去除取值相同的数据后进行降序排列得到数据排序结果,所述数据排序结果中的第i个数据即为当前分区标识i对应的目标数据。
4.根据权利要求3所述的方法,其特征在于,为某个第一加密数据对象子集更新其访问标记的方法为:获取各个第一加密数据对象子集的最大标记值maxi和最小标记值mini,所述最大标记值maxi为所述第一加密数据对象子集对应的B+树索引的最右值指向的第一加密数据对象的各个属性数据中的最大值;所述最小标记值为所述第一加密数据对象子集对应的B+树索引的最右值指向的第一加密数据对象的各个属性数据中的最小值;将各个最大标记值maxi的最大值确定为第一最大参考标记值mx,将各个最小标记值mini的最大值确定为第二最大参考标记值mn;对于某个第一加密数据对象子集,若其对应的最大标记值maxi小于第二最大参考标记值mn,则所述第一加密数据对象子集的访问标记被更新为false。
5.根据权利要求4所述的方法,其特征在于,还包括:对于各个满足预设条件的目标第一加密数据对象子集,执行下述步骤:初始化待选集合为空集;循环执行下述步骤:若所述目标第一加密数据对象子集的最大标记值maxi等于第一最大参考标记值mx,将其对应的B+树索引的最右值指向的第一加密数据对象确定为标记对象,将所述标记对象加入所述待选集合;根据所述第一加密数据对象子集的索引寻找所述标记对象的左节点,将其更新为新的标记对象,将目标第一加密数据对象子集的最大标记值maxi更新为所述标记对象各个属性数据中的最大值;将待选集合合并入当前加密对象集。
6.根据权利要求5所述的方法,其特征在于,所述对所述当前加密对象集进行多目标数据对象查询,包括:使用块嵌套循环算法实现多目标查询。
7.根据权利要求6所述的方法,其特征在于:基于所述多目标查询产生的目标第一加密数据对象集中的第一加密数据对象均满足这样的条件:目标第一加密数据对象集中的第一加密数据对象均不会被所述目标第一加密数据对象集中的其它第一加密数据对象控制;控制的含义为:若一个数据对象A控制另一个数据对象B,当且仅当,数据对象A的任何属性数据的值都大于等于数据对象B的相应的属性数据的值,并且数据对象A的属性数据不能全部等于数据对象B的相应的属性数据的值。
8.根据权利要求7所述的方法,其特征在于:所述查询停止条件根据实际需要进行设置,包括:所述目标第一加密数据对象集中元素数量达到预设阈值;或,分区标识i达到预设阈值。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-8任意一项所述的一种安全多目标数据对象查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010410538.5A CN111680062B (zh) | 2020-05-15 | 2020-05-15 | 一种安全多目标数据对象查询方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010410538.5A CN111680062B (zh) | 2020-05-15 | 2020-05-15 | 一种安全多目标数据对象查询方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111680062A CN111680062A (zh) | 2020-09-18 |
CN111680062B true CN111680062B (zh) | 2021-05-25 |
Family
ID=72452418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010410538.5A Active CN111680062B (zh) | 2020-05-15 | 2020-05-15 | 一种安全多目标数据对象查询方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111680062B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112836239A (zh) * | 2021-02-19 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 保护隐私的双方协同确定目标对象数据的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104704493A (zh) * | 2012-08-15 | 2015-06-10 | 维萨国际服务协会 | 可搜索的经加密的数据 |
CN105637520A (zh) * | 2013-10-14 | 2016-06-01 | 飞索科技有限公司 | 数据库中为加密字段生成索引的方法和装置 |
CN106127075A (zh) * | 2016-06-27 | 2016-11-16 | 湖南大学 | 一种云存储环境下基于隐私保护的可搜索加密方法 |
WO2018154581A1 (en) * | 2017-02-22 | 2018-08-30 | Kindite Ltd. | Encrypting data records and processing encrypted records without exposing plaintext |
CN108471417A (zh) * | 2018-03-28 | 2018-08-31 | 湖南大学 | 一种云环境下基于层次属性的关键字查询方法 |
CN109672525A (zh) * | 2018-12-14 | 2019-04-23 | 华中科技大学 | 一种具有高效前向索引的可搜索公钥加密方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436208B (zh) * | 2008-12-09 | 2011-05-11 | 北京交通大学 | 一种密文数据库隐私保护查询方法 |
CN104917723B (zh) * | 2014-03-11 | 2019-04-23 | 中国电信股份有限公司 | 用于实现加密文件安全共享的方法、装置和系统 |
CN106850187B (zh) * | 2017-01-13 | 2018-02-06 | 温州大学瓯江学院 | 一种隐私字符信息加密查询方法及系统 |
US10541983B1 (en) * | 2017-07-19 | 2020-01-21 | Amazon Technologies, Inc. | Secure storage and searching of information maintained on search systems |
CN107819650B (zh) * | 2017-11-28 | 2020-03-17 | 中共中央办公厅电子科技学院 | 数据安全测试方法及装置 |
CN108171071B (zh) * | 2017-12-01 | 2020-02-07 | 吉林省外国企业服务有限公司 | 一种面向云计算的多关键字可排序密文检索方法 |
CN110674524A (zh) * | 2019-09-30 | 2020-01-10 | 北京安信天行科技有限公司 | 一种混合密文索引方法及系统 |
-
2020
- 2020-05-15 CN CN202010410538.5A patent/CN111680062B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104704493A (zh) * | 2012-08-15 | 2015-06-10 | 维萨国际服务协会 | 可搜索的经加密的数据 |
CN105637520A (zh) * | 2013-10-14 | 2016-06-01 | 飞索科技有限公司 | 数据库中为加密字段生成索引的方法和装置 |
CN106127075A (zh) * | 2016-06-27 | 2016-11-16 | 湖南大学 | 一种云存储环境下基于隐私保护的可搜索加密方法 |
WO2018154581A1 (en) * | 2017-02-22 | 2018-08-30 | Kindite Ltd. | Encrypting data records and processing encrypted records without exposing plaintext |
CN108471417A (zh) * | 2018-03-28 | 2018-08-31 | 湖南大学 | 一种云环境下基于层次属性的关键字查询方法 |
CN109672525A (zh) * | 2018-12-14 | 2019-04-23 | 华中科技大学 | 一种具有高效前向索引的可搜索公钥加密方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111680062A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fu et al. | Toward efficient multi-keyword fuzzy search over encrypted outsourced data with accuracy improvement | |
Lu et al. | Enabling search over encrypted multimedia databases | |
EP3096245B1 (en) | Retrievable cryptograph processing system and retrievable cryptograph processing method | |
EP3012754A1 (en) | Searchable symmetric encryption processing system | |
CN107431617A (zh) | 用于使用生物识别数据的多阶层密码学密钥产生的系统及方法 | |
Awad et al. | Chaotic searchable encryption for mobile cloud storage | |
CN109657107B (zh) | 一种基于第三方应用的终端匹配方法和装置 | |
CN104951680A (zh) | 一种生物特征信息处理方法、保存方法及装置 | |
JP6038427B1 (ja) | 暗号化装置、暗号化方法、暗号化プログラム及び保管装置 | |
CN110457915A (zh) | 高效且具有前后向安全性的可搜索对称加密方法及系统 | |
Moia et al. | Similarity digest search: A survey and comparative analysis of strategies to perform known file filtering using approximate matching | |
CN111680062B (zh) | 一种安全多目标数据对象查询方法及存储介质 | |
Handa et al. | A cluster based multi-keyword search on outsourced encrypted cloud data | |
Guo et al. | A provably secure and efficient range query scheme for outsourced encrypted uncertain data from cloud-based Internet of Things systems | |
CN106874379B (zh) | 一种面向密文云存储的多维区间检索方法与系统 | |
CN117421771A (zh) | 一种面向结构化数据的可搜索加密方法、装置及电子设备 | |
CN115495792B (zh) | 一种具有隐私保护的模糊关键词可搜索加密方法和系统 | |
CN115292737A (zh) | 一种多关键词模糊搜索加密方法、系统及电子设备 | |
JP5983333B2 (ja) | 検索処理方法、データ生成方法及び情報処理装置 | |
CN115455463A (zh) | 一种基于同态加密的隐匿sql查询方法 | |
Handa et al. | An efficient approach for secure information retrieval on cloud | |
Pang et al. | Privacy-preserving noisy keyword search in cloud computing | |
Handa et al. | Keyword binning-based efficient search on encrypted cloud data | |
Manasrah et al. | A privacy-preserving multi-keyword search approach in cloud computing | |
Aritomo et al. | A privacy-preserving similarity search scheme over encrypted word embeddings |
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 |