CN114996305B - 数据查询方法、装置、电子设备、存储介质及程序产品 - Google Patents
数据查询方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114996305B CN114996305B CN202210924274.4A CN202210924274A CN114996305B CN 114996305 B CN114996305 B CN 114996305B CN 202210924274 A CN202210924274 A CN 202210924274A CN 114996305 B CN114996305 B CN 114996305B
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- target
- storage system
- function
- 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 94
- 238000013500 data storage Methods 0.000 claims abstract description 204
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000013507 mapping Methods 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 214
- 230000009471 action Effects 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 108010052322 limitin Proteins 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/24—Querying
- G06F16/248—Presentation of query results
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及数据处理领域,提供一种数据查询方法、装置、电子设备、存储介质及程序产品。数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征。方法包括:第一系统向数据存储系统发送包括:m‑1个加密后的目标数据标识的数据查询请求;第一系统接收来自数据存储系统的数据查询结果;数据查询结果包括:数据存储系统通过至少一个第一函数,以及,m‑1个加密后的目标数据标识得到的至少一个加密后的初始数据;根据至少一个加密后的初始数据,获取加密后的目标数据;对加密后的目标数据进行解密,得到目标数据。本申请提高了数据查询效率。
Description
技术领域
本申请涉及数据处理技术,尤其涉及一种数据查询方法、装置、电子设备、存储介质及程序产品。
背景技术
目前,跨机构的数据查询是一种普遍的需求。例如,公司B拥有公司A进行一项业务所依赖的目标数据,那么公司A便需要从公司B查询获取该目标数据。以该目标数据为用户甲对应的数据为例,则公司A需要根据该用户甲的身份信息,从公司B获取该目标数据。然而,这样会导致公司B知晓用户甲与公司A存在业务关系,进而导致了“用户甲与公司A存在业务关系”的信息被泄露。
因此,相关技术提出了一种实现数据查询的同时,保障用户相关信息不被泄露的方法。然而,现有的该数据查询方法存在数据传输量大,数据查询效率较低的问题。
发明内容
本申请提供一种数据查询方法、装置、电子设备、存储介质及程序产品,以提高数据查询效率。
第一方面,本申请提供一种数据查询方法,数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;所述方法应用于第一系统,所述方法包括:
对目标数据标识进行加密,得到m-1个加密后的目标数据标识;
向数据存储系统发送数据查询请求,所述数据查询请求包括:所述m-1个加密后的目标数据标识;
接收来自所述数据存储系统的数据查询结果;所述数据查询结果包括:所述数据存储系统通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识得到的至少一个加密后的初始数据;
根据所述至少一个加密后的初始数据,获取加密后的目标数据;
对所述加密后的目标数据进行解密,得到所述目标数据。
可选的,同一组的m个数据标识与标签的映射关系通过一个第二函数表征,在所述向数据存储系统发送数据查询请求之后、且接收来自所述数据存储系统的数据查询结果之前,所述方法还包括:
接收来自所述数据存储系统的查询反馈信息;所述查询反馈信息包括:t个加密后的第一标签,以及,预设的目标标签,所述t个加密后的第一标签为所述数据存储系统通过t个第二函数,以及,所述m-1个加密后的目标数据标识得到的;
若根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统存储有目标数据,则向所述数据存储系统发送数据获取指令,所述数据获取指令用于指示所述数据存储系统返回所述数据查询结果。
可选的,所述根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统存储有目标数据,包括:
对所述t个加密后的第一标签进行解密,得到t个第一标签;
若t个所述第一标签中存在与所述目标标签相同的第一标签,则确定所述数据存储系统存储有目标数据。
可选的,所述数据获取指令包括:目标第二函数的标识;所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数;所述数据查询结果包括:一个加密后的初始数据;该加密后的初始数据为所述数据存储系统通过与所述目标第二函数的标识相同的第一函数,以及,所述m-1个加密后的目标数据标识得到的;
所述根据所述至少一个加密后的初始数据,获取加密后的目标数据,包括:
将该加密后的初始数据,作为加密后的目标数据。
可选的,所述方法还包括:
若根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统未存储所述目标数据,则向候选数据存储系统发送所述数据查询请求。
可选的,所述数据查询结果包括:预设的目标标签、t个加密后的第一标签、t个加密后的初始数据,以及,各加密后的初始数据对应的第一函数的标识;所述t个加密后的初始数据为所述数据存储系统通过t个第一函数,以及,所述加密后的目标数据标识得到的;所述t个加密后的第一标签为所述数据存储系统通过t个第二函数,以及,所述加密后的目标数据标识得到的;
所述根据所述至少一个加密后的初始数据,获取加密后的目标数据,包括:
根据目标第二函数的标识,以及,所述各加密后的初始数据对应的第一函数的标识,从所述t个加密后的初始数据中,获取加密后的目标数据;所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数。
可选的,所述目标数据标识为数字,所述对目标数据标识进行加密,得到m-1个加密后的目标数据标识,包括:
按照i从小到大的取值,依次计算所述目标数据标识的i次方,得到所述目标数据标识对应的m-1个初始值;所述i为大于0,且小于所述m的整数;
对所述m-1个初始值中的每个初始值进行加密,得到m-1个加密后的目标数据标识。
可选的,在所述获取所述目标数据之后,所述方法还包括:
基于所述目标数据执行目标业务。
第二方面,本申请提供一种数据查询方法,所述方法应用于数据存储系统,所述数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;所述方法包括:
接收来自第一系统的数据查询请求,所述数据查询请求包括:所述m-1个加密后的目标数据标识;
通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果,所述数据查询结果包括:至少一个加密后的初始数据;
将所述数据查询结果发送至所述第一系统。
可选的,同一组的m个数据标识与标签的映射关系通过一个第二函数表征,在所述接收来自第一系统的数据查询请求之后、且将所述数据查询结果发送至所述第一系统之前,所述方法还包括:
通过t个第二函数,以及,所述m-1个加密后的目标数据标识,得到所述各第二函数对应的加密后的第一标签;
向所述第一系统发送查询反馈信息;所述查询反馈信息包括:t个加密后的第一标签,以及,预设的目标标签,以使所述第一系统根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统是否存储有目标数据;
接收所述第一系统在确定所述数据存储系统存储有所述目标数据时,发送的数据获取指令;所述数据获取指令用于指示所述数据存储系统返回所述数据查询结果。
可选的,所述数据获取指令包括:目标第二函数的标识;所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数;
所述通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果包括:
根据所述目标第二函数的标识,确定出一个第一函数;该第一函数的标识与所述目标第二函数的标识相同;
根据该第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果,所述数据查询结果包括:一个加密后的初始数据。
可选的,在所述接收来自第一系统的数据查询请求之后、且将所述数据查询结果发送至所述第一系统之前,所述方法还包括:
通过t个第二函数,以及,所述m-1个加密后的目标数据标识,得到所述各第二函数对应的加密后的第一标签;
通过t个第一函数,以及,所述m-1个加密后的目标数据标识,得到各所述第一函数对应的加密后的初始数据;
所述数据查询结果包括:预设的目标标签、t个加密后的第一标签、t个加密后的初始数据,以及,各加密后的初始数据对应的第一函数的标识。
第三方面,本申请提供一种数据查询装置,数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;所述装置应用于第一系统,所述装置包括:
第一处理模块,用于对目标数据标识进行加密,得到m-1个加密后的目标数据标识;
发送模块,用于向数据存储系统发送数据查询请求,所述数据查询请求包括:所述m-1个加密后的目标数据标识;
接收模块,用于接收来自所述数据存储系统的数据查询结果;所述数据查询结果包括:所述数据存储系统通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识得到的至少一个加密后的初始数据;
第二处理模块,用于根据所述至少一个加密后的初始数据,获取加密后的目标数据;对所述加密后的目标数据进行解密,得到所述目标数据。
第四方面,本申请提供一种数据查询装置,所述装置应用于数据存储系统,所述数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;所述装置包括:
接收模块,用于接收来自第一系统的数据查询请求,所述数据查询请求包括:所述m-1个加密后的目标数据标识;
处理模块,用于通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果,所述数据查询结果包括:至少一个加密后的初始数据;
发送模块,用于将所述数据查询结果发送至所述第一系统。
第五方面,本申请提供一种电子设备,包括:至少一个处理器、存储器、接收器、发送器;
所述接收器和所述发送器均耦合至所述处理器,所述处理器控制所述接收器的接收动作,所述处理器控制所述发送器的发送动作;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行第一方面或第二方面任一项所述的方法。
第六方面,本申请提供一种系统,所述系统用于执行如第一方面任一项所述的方法。
第七方面,本申请提供一种系统,所述系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;
所述系统用于执行如第二方面任一项所述的方法。
第八方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机执行指令,当所述计算机执行指令被处理器执行时,实现第一方面任一项所述的方法。
第九方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法。
本申请提供的数据查询方法、装置、电子设备、存储介质及程序产品,通过第一系统在向数据存储系统发送m-1个加密后的目标数据标识之后,数据存储系统可以基于该m-1个加密后的目标数据标识,以及,至少一个第一函数,得到至少一个加密后的初始数据,并发送给第一系统。因此,数据存储系统存储有t组数据,也就是说第一函数的个数最多是t个,因此加密后的初始数据最多也是t个。也就是说,通过上述方法,数据存储系统向第一系统反馈的数据查询结果中,最多包括了t个加密后的初始数据。相较于现有技术中,数据存储系统反馈给第一系统的数据量等于数据库存储的所有的数据个数,本申请降低了数据传输量,进而提高了数据传输效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一种数据查询场景示意图;
图2为本申请提供的一种数据查询方法的流程示意图;
图3为本申请提供的一种数据存储系统根据至少一个第一函数获取数据查询结果的方法流程示意图;
图4为本申请提供的另一种数据查询方法的流程示意图;
图5为本申请提供的一种数据查询装置300的结构示意图;
图6为本申请提供的一种数据查询装置400的结构示意图;
图7为本申请提供的一种电子设备结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的技术方案中,所涉及的金融数据或用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
以公司A需要进行目标业务,且该目标业务的运行需要目标数据为例。若公司A未存储该目标数据,而公司B拥有该目标数据,则公司A需要从公司B查询获取该目标数据。也就是说,公司B可以作为数据提供方,公司A是作为数据查询方。
图1为一种数据查询场景示意图。如图1所示,数据查询方的第一系统可以通过数据提供方的数据存储系统提供的数据查询接口,查询目标数据。以该目标数据为用户甲的相关信息为例,则第一系统需要根据用户甲的身份信息,从数据存储系统处获取该用户甲的相关信息。然后,这样会导致该数据提供方知晓该用户甲与该数据查询方存在业务关系,进而可能导致“用户甲与该数据查询方存在业务关系”的信息被泄露。
因此,在实现数据查询的同时,保障用户的相关信息不被泄露是一个亟待解决的技术问题。
下面首先介绍现有常见的一种能够实现隐匿查询的数据查询方法:
示例性的,以公司A为数据查询方,需要查询数据提供方公司B拥有的DATAa为例,假定该公司B的数据库存储有数据集:{(ID1,DATA1),...,(IDn,DATAn)}。其中,IDn是数据标识,DATAn是数据本身。
步骤1、公司A的第一系统生成一个随机数x,并计算v=IDa+Epub(x,PKB)。其中,PKB为公司B持有的公钥。IDa为DATAa对应的数据标识。Epub()代表一种公钥加密方法。
然后,第一系统可以将该v发送给公司B的数据存储系统。
步骤2、公司B的数据存储系统接收v,然后执行下面n个计算:
x1=Dpri(v-ID1,sk);
...;
x_n=Dpri(v-IDn,sk);
其中,Dpri()代表一种私钥解密方法。sk为PKB公钥对应的私钥。
步骤3、公司B的数据存储系统利用上述{x1,...,xn}为加密的key,执行下面n个加密操作:
c1=Esyc(DATA1,x1);
...;
cn=Esyc(DATAn,xn);
其中,Esyc(data,key)代表一种对称加密方法,其中key为加密的密钥。
步骤4、公司B的数据存储系统将上述{c1,...,cn}发送给公司A的第一系统;
步骤5、公司A的第一系统接收该{c1,...,cn},并对各项进行解密,以获取DATAa。
因为在上面的{x1,...,xn}中,只有当n等于a时,v-IDn的值恰好等于x,因此,公司A的第一系统仅能正确解密ca,并获得DATAa。
通过上述方法,公司A的第一系统可以查询到数据DATAa,且从公司B数据存储系统的角度,该数据存储系统无法知晓第一系统所查询的是哪个数据。
然而,在现有的实现方案中,数据存储系统与第一系统之间数据的传输量非常大的,尤其是在数据提供方的数据库是一个海量数据库的时候,进而导致第一系统从该数据存储系统查询数据的效率较低。
示例性的,假定数据提供方的数据库中有十亿(109)个数据,若数据查询方当前需要查询一万(104)条目标数据,则数据查询方的第一系统需要向数据提供方的数据存储系统发送104个数据。
如前述步骤4中所示,数据存储系统需要向第一系统发送n个数据。也就是说,在该示例中,数据存储系统需要向第一系统发送104*109=1013个数据,该数据量非常巨大,将导致第一系统从该数据存储系统查询数据的效率较低。
考虑到现有的数据查询方法存在效率较低的问题是数据存储系统与第一系统之间的数据传输量较大导致的,因此,本申请提供的了一种减少数据传输量的方法,以提高数据查询效率。
应理解,本申请对上述第一系统和数据存储系统具体包括的设备种类以及数量等并不进行限定。上述第一系统和数据存储系统可以包括任意一种具有处理功能以及数据收发功能的终端、或者服务器等电子设备。
在本申请提供的数据查询方法中,该数据存储系统可以存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征。其中,该t和m均为大于1的整数。可选的,上述t组数据可以存储在该数据存储系统的数据库中。以数据库中存储有n个数据为例,则该t与m的乘积等于n。
下面结合具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请提供的一种数据查询方法的流程示意图。如图2所示,该方法包括以下步骤:
S101、第一系统对目标数据标识进行加密,得到m-1个加密后的目标数据标识。
示例性的,上述目标数据标识例如可以为用户的手机号码,或者,用户的身份证号码等。
应理解,本申请对该第一系统如何获取目标数据标识并不进行限定。示例性的,该第一系统可以接收用户输入的目标数据标识。可选的,该第一系统例如可以通过应用程序接口(Application Programming Interface,API),或者,图形用户界面(Graphical UserInterface,GUI)接收用户输入的目标数据标识。或者,该第一系统还可以接收来自目标业务服务器的数据获取指令。其中,该数据获取指令可以包括上述目标数据标识。
作为一种可能的实现方式,该第一系统例如可以通过加法同态加密算法、减法同态加密算法、乘法同态加密算法、全同态加密算法等,对该目标数据标识进行加密。以第一系统通过加法同态加密算法对目标数据进行加密为例,本申请对第一系统具体使用哪种加法同态加密算法对该目标数据标识进行加密并不进行限定。示例性的,该加法同态加密算法例如可以为下述任意一项:Paillier加密算法、基于椭圆曲线(Elliptic CurvesCryptography,ECC)的elgamal加法同态加密算法,以及,一种能够同时支持加法同态加密和一次乘同态加密的BGN(一种同态加密算法名称)算法。
S102、第一系统向数据存储系统发送数据查询请求。
其中,该数据查询请求包括m-1个加密后的目标数据标识。
应理解,本申请对第一系统与数据存储系统之间的通信方式并不进行限定。可选的,第一系统与数据存储系统之间可以是无线通信,也可以是有线通信。以第一系统与数据存储系统之间为无线通信为例,示例性的,该无线通信方式例如可以为WiFi,或者,第五代移动通信技术(5th Generation Mobile Communication Technology,5G)等无线通信方式。
相应的,数据存储系统可以接收该来自第一系统的数据查询请求。
S103、数据存储系统通过至少一个第一函数,以及,m-1个加密后的目标数据标识,得到数据查询结果。
其中,该数据查询结果包括:至少一个加密后的初始数据。
以数据存储系统通过t个第一函数,以及,m-1个加密后的目标数据标识,得到数据查询结果为例,针对任一第一函数,数据存储系统可以将m-1个加密后的目标数据标识带入该第一函数进行计算,得到基于该第一函数得到的加密后的初始数据。参照该方式,数据存储系统可以获取t个加密后的初始数据。数据存储系统可以将该t个加密后的初始数据加入数据查询结果。
在一些实施例中,该数据查询结果还可以包括各加密后的初始数据对应的第一函数的标识。该第一函数的标识可以用于表示加密后的初始数据是数据存储系统基于哪个第一函数获取的。
S104、数据存储系统将数据查询结果发送至第一系统。
相应的,第一系统可以接收来自数据存储系统的数据查询结果。
S105、第一系统根据至少一个加密后的初始数据,获取加密后的目标数据。
可选的,以上述数据查询结果中包括一个加密后的初始数据为例,则第一系统可以将该加密后的初始数据作为加密后的目标数据。
或者,以上述数据查询结果中包括多个加密后的初始数据为例,可选的,第一系统可以先确定加密后的目标数据对应的第一函数的标识,然后根据该第一函数的标识,从该多个加密后的初始数据的中获取加密后的目标数据。
S106、第一系统对加密后的目标数据进行解密,得到目标数据。
应理解,本申请对第一系统如何对加密后的目标数据进行解密并不进行限定。示例性的,以步骤S101中,第一系统使用加法同态加密算法对目标数据标识进行加密为例,则第一系统可以使用该加法同态加密算法对应的解密算法,对该加密后的目标数据进行解密,以得到目标数据。
在本实施例中,第一系统在向数据存储系统发送m-1个加密后的目标数据标识之后,数据存储系统可以基于该m-1个加密后的目标数据标识,以及,至少一个第一函数,得到至少一个加密后的初始数据,并发送给第一系统。因此,数据存储系统存储有t组数据,也就是说第一函数的个数最多是t个,因此加密后的初始数据最多也是t个。也就是说,通过上述方法,数据存储系统向第一系统反馈的数据查询结果中,最多包括了t个加密后的初始数据。相较于现有技术中,数据存储系统反馈给第一系统的数据量等于数据库存储的所有的数据个数,本申请降低了数据传输量,进而提高了数据传输效率。
以该目标数据为执行目标业务所需的数据基础为例,第一系统在获取上述目标数据之后,作为一种可能的实现方式,第一系统可以基于该目标数据执行目标业务。在该实现方式下,因为通过上述方法提高了数据查询的效率,进而提高了第一系统基于获取到的目标数据执行目标业务的效率。
在一些实施例中,如图1所示,第一系统还可以将该目标数据发送至目标业务服务器,以使该目标业务服务器可以基于上述目标数据执行目标业务。
在一些实施例中,该第一系统获取上述目标数据之后,还可以输出至目标终端,以使用户可以通过该目标终端查看该目标数据。可选的,该目标终端可以属于该第一系统,或者,该目标终端也可以为不属于该第一系统,且能够与该第一系统进行通信的终端设备。
下面以目标数据标识为数字为例,对第一系统如何对目标数据标识进行加密,得到m-1个加密后的目标数据标识进行详细说明:
作为一种可能的实现方式,第一系统可以先按照i从小到大的取值,依次计算目标数据标识的i次方,得到目标数据标识对应的m-1个初始值。其中,该i为大于0,且小于m的整数。在一些实施例中,第一系统也可以同时计算目标数据标识对应的各次方的取值。此处所说的各次方也就是上述1至(m-1)次方。
在获取上述目标数据标识对应的m-1个初始值之后,第一系统可以对m-1个初始值中的每个初始值进行加密,得到m-1个加密后的目标数据标识。示例性的,第一系统可以通过加法同态加密算法,对该m-1个初始值中的每个初始值进行加密,进而得到m-1个加密后的目标数据标识。
以目标数据标识为IDa为例,也就是说,该初始加密结果可以包括m-1个初始值。该m-1个初始值分别为:IDa、IDa2,…,IDam-1。示例性的,第一系统对该m-1个初始值中的每个初始值进行加密,得到的m-1个加密后的目标数据标识例如可以如下所示:E[IDa]、E[IDa2],...,E[IDam-1]。其中,E[]表示一种加密算法,例如上述加法同态加密算法。
在本实施例中,通过计算目标数据标识的i次方,得到目标数据标识对应的m-1个初始值,进而得到m-1个加密后的目标数据标识,使得数据存储系统可以基于该m-1个加密后的目标数据标识,以及,第一函数,得到至少一个加密后的目标数据。还可以使得数据存储系统能够根据该m-1个加密后的目标数据标识,以及,第二函数,得到t个第一标签。通过上述方法,实现了从数据查询系统中查询目标数据。
以同一组的m个数据标识与标签的映射关系通过一个第二函数表征为例,下面对数据存储系统如何通过至少一个第一函数,以及,m-1个加密后的目标数据标识,得到数据查询结果,并发送给第一系统,进行详细说明:
图3为本申请提供的一种数据存储系统根据至少一个第一函数获取数据查询结果的方法流程示意图。作为一种可能的实现方式,如图3所示,数据存储系统在接收来自第一系统的数据查询请求之后、且将数据查询结果发送至第一系统之前,第一系统或数据存储系统还可以执行以下步骤:
S201、数据存储系统通过t个第二函数,以及,m-1个加密后的目标数据标识,得到各第二函数对应的加密后的第一标签。
可选的,上述t个第二函数中的任一第二函数可以包括m-1个变量,数据存储系统可以m-1个加密后的目标数据标识,代入该第二函数,作为该第二函数的m-1个变量的取值,然后计算该第二函数,得到该第二函数对应的加密后的第一标签。因此,通过上述t个第二函数,数据存储系统可以获取t个加密后的第一标签。
示例性的,上述t个第二函数中的任一第二函数可以为一个m-1阶多项式。以m-1个加密后的目标数据标识为E[IDa]、E[IDa2],...,E[IDam-1]为例,该m-1阶多项式例如可以如下公式(1)所示:
数据存储系统可以将上述m-1个加密后的目标数据标识,代入该公式(1)。其中,表示该第二函数的取值,也就是该第二函数对应的加密后的第一标签。,…,为
常数。其中,表示:限定在小于q的范围之内,q为质数。
S202、数据存储系统向第一系统发送查询反馈信息。
其中,该查询反馈信息可以包括:t个加密后的第一标签,以及,预设的目标标签。示例性的,该预设的目标标签可以是数据存储系统预先生成并存储在该数据存储系统中。应理解,本申请对该数据存储系统如何生成该预设的目标标签并不进行限定。可选的,数据存储系统例如可以在群域上生成一个随机数,作为预设的目标标签。
此外,应理解,本申请对该查询反馈信息是否还包括其他内容并不进行限定。在一些实施例中,该查询反馈信息还可以包括t个加密后的第一标签中各“加密后的第一标签”的标识。“加密后的第一标签”的标识可以用于表示该加密后的第一标签是数据存储系统使用基于哪个第二函数得到的。
相应的,第一系统可以接收来自数据存储系统的查询反馈信息。
S203、第一系统根据t个加密后的第一标签,以及,目标标签,确定数据存储系统是否存储有目标数据。
在一些实施例中,第一系统在接收到查询反馈信息之后,可以对该查询反馈信息中的t个加密后的第一标签进行解密,得到t个第一标签。应理解,本申请对第一系统解密各加密后的第一标签所使用的解密方法并不进行限定。
然后,第一系统可以确定解密得到的该t个第一标签中是否存在与该目标标签相同的第一标签。
若t个第一标签中存在与该目标标签相同的第一标签,说明目标数据标识在“与该目标标签相同的第一标签对应的第二函数所表征的”m个数据标识中。因此,第一系统可以确定数据存储系统存储有目标数据。
若该t个第一标签中不存在与该目标标签相同的第一标签,说明目标数据标识不在任一第二函数所表征的m个数据标识中。因此,第一系统可以确定数据存储系统未存储有目标数据。
在一些实施例中,第一系统还可以在每次从数据存储系统获取到目标数据之后,记录该目标数据对应的目标数据标识所对应的第二函数。在该实现方式下,第一系统在接收到查询反馈信息之后,可以先对该目标数据标识所对应的第二函数的加密后的第一标签进行解密,得到基于该第二函数得到的第一标签。然后验证该第一标签是否等于目标标签。若该第一标签等于目标标签,则第一系统可以确定数据存储系统存储有目标数据。若该第一标签不等于目标标签,可选的,第一系统可以继续解密其他第二函数对应的加密后的第一标签,得到其他第二函数对应的第一标签,并继续进行验证。
若第一系统确定数据存储系统存储有目标数据,可选的,第一系统可以向数据存储系统发送数据获取指令,也就是执行步骤S204。
若第一系统确定数据存储系统未存储有目标数据,可选的,第一系统可以执行步骤S205,以从其他数据存储系统获取目标数据。
S204、第一系统向数据存储系统发送数据获取指令。
其中,该数据获取指令用于指示数据存储系统返回数据查询结果。
相应的,数据存储系统可以接收“第一系统在确定数据存储系统存储有目标数据时”发送的数据获取指令。
作为一种可能的实现方式,该数据获取指令可以包括:目标第二函数的标识。其中,该目标第二函数为与目标标签相同的第一标签对应的第二函数。
在该实现方式下,可选的,上述步骤S103可以包括以下步骤:
数据存储系统可以先根据目标第二函数的标识,确定出一个第一函数。其中,确定出的该第一函数的标识与目标第二函数的标识相同。例如,数据存储系统可以根据各第一函数的标识,从该各第一函数的标识中确定与目标第二函数的标识相同的第一函数的标识,进而确定出一个第一函数。
然后,数据存储系统可以根据确定出的该第一函数,以及,m-1个加密后的目标数据标识,得到数据查询结果。可选的,数据存储系统根据该第一函数,以及,m-1个加密后的目标数据标识,得到数据查询结果的具体实现方式可以参照前述实施例所述的方法,在此不再赘述。
数据存储系统通过该第一函数,以及,m-1个加密后的目标数据标识,可以得到一个加密后的初始数据。因此,在该实现方式下,该数据查询结果可以包括:一个加密后的初始数据。在该实现方式下,可选的,前述步骤S105可以包括:第一系统可以将该加密后的初始数据,作为加密后的目标数据。
在本实现方式中,通过数据获取指令包括的目标第二函数的标识,数据存储系统向该第一系统反馈的数据查询结果中可以仅包括一个加密后的初始数据,进一步减少了数据传输量,进而进一步提高了数据查询效率。
作为另一种可能的实现方式,上述数据获取指令也可以不包括目标第二函数的标识,只是用于指示数据存储系统返回数据查询结果。在该实现方式下,数据存储系统可以在接收到该数据获取指令之后,通过t个第一函数,以及,前述m-1个加密后的目标数据标识,得到t个加密后的初始数据。在该实现方式下,上述数据查询结果中可以包括t个加密后的初始数据。然后,第一系统可以从该t个加密后的初始数据中,确定加密后的目标数据。
S205、第一系统向候选数据存储系统发送数据查询请求。
在第一系统确定数据存储系统未存储目标数据时,第一系统可以向候选数据存储系统发送前述数据查询请求。然后,第一系统可以与该候选数据存储系统执行本申请任一实施例所述的数据查询方法,以获取目标数据。
可选的,上述候选数据存储系统可以为任意一种数据存储系统,本申请对此并不进行限定。
在本实施例中,数据存储系统可以通过t个第二函数和m-1个加密后的目标数据标识,得到t个第一标签,并发送给第一系统。第一系统可以基于该第一标签,以及,目标标签确定该数据存储系统中是否存储有目标数据,并在确定该数据存储系统中存储有目标数据时,将数据存储系统发送数据获取指令,以使数据存储系统可以执行前述步骤S103。通过上述方法,提高了数据存储系统执行数据查询结果的准确性,提高了传输的数据的可用性,进而进一步提高了数据传输的效率。
作为另一种可能的实现方式,数据存储系统在接收来自第一系统的数据查询请求之后、且将数据查询结果发送至第一系统之前,还可以通过t个第二函数,以及,m-1个加密后的目标数据标识,得到各第二函数对应的加密后的第一标签。以及,通过t个第一函数,以及,m-1个加密后的目标数据标识,得到各第一函数对应的加密后的初始数据。数据存储系统执行上述操作的具体实现方式可以参照前述实施例所述的方法,在此不再赘述。
在该实现方式下,该数据查询结果可以包括:预设的目标标签、t个加密后的第一标签、t个加密后的初始数据,以及,各加密后的初始数据对应的第一函数的标识。
在该实现方式下,可选的,前述步骤S105可以包括以下步骤:第一系统可以根据目标第二函数的标识,以及,各加密后的初始数据对应的第一函数的标识,从t个加密后的初始数据中,获取加密后的目标数据。
如前述所说,该目标第二函数为与目标标签相同的第一标签对应的第二函数。可选的,数据存储系统确定该目标第二函数的具体实现方式也可以参照前述实施例所述的方法,在此不再赘述。
可选的,第一系统在确定上述目标第二函数的标识之后,可以从t个加密后的初始数据对应的第一函数的标识中,确定与该目标第二函数的标识相同的第一函数的标识。然后,第一系统可以将该第一函数对应的加密后的初始数据作为加密后的目标数据。
在本实施例中,数据查询系统可以在接收到第一系统的数据查询请求之后、便开始根据t个第一函数来计算t个加密后的初始数据,以及,根据t个第二函数来计算t个第一标签,并添加至数据查询结果发送至第一系统。通过上述方法,提高了数据查询系统开始执行数据查询的效率,相较于现有技术而言,减少了数据传输量,提高了数据传输效率。
以数据存储系统的数据库中存储有n个数据、该n个数据可以分为t组,其中每组包括m个数据为例,图4为本申请提供的另一种数据查询方法的流程示意图。如图4所示,该方法包括以下步骤:
步骤1、第一系统对目标数据标识进行加密,得到m-1个加密后的目标数据标识。
以目标数据标识为IDa,目标数据为DATAa为例,第一系统可以先按照i从小到大的取值,依次计算IDa的i次方,得到IDa对应的m-1个初始值。通过加法同态加密算法对IDa的i次方进行加密,可以得到:E[IDa],E[IDa2],...,E[IDam-1],m-1个加密后的目标数据标识。
第一系统还可以有公私钥对:[PKA, skA],其中PK为公钥,sk为私钥。第一系统可以生成第一系统的公私钥对。其中公钥将会公开,其他系统可以使用此公钥进行加密。私钥由第一系统保存,可以用于解密任意其他系统使用该公钥加密的数据。
步骤2、第一系统将m-1个加密后的目标数据标识发送给数据存储系统。
步骤3、数据存储系统通过t个第二函数,以及,m-1个加密后的目标数据标识,得到各第二函数对应的加密后的第一标签;通过t个第一函数,以及,m-1个加密后的目标数据标识,得到各第一函数对应的加密后的初始数据。
对于t个第二函数中的任一第二函数,示例性的,该第二函数可以前述公式(1)所示,在此不再赘述。
对于t个第一函数中的任一第一函数,示例性的,该第一函数可以如下公式(2)所示:
数据存储系统经过t个第二函数,则可以到t个加密后的第一标签:{E[f(IDa)](1),…,E[f(IDa)](t)}。其中,上标(t)表示这是第t个第二函数对应的标识,也就是“加密后的第一标签”的标识。
数据存储系统经过t个第一函数,则可以到t个加密后的初始数据:{E[F(IDa)](1),…,E[F(IDa)](t)}。其中,上标(t)表示这是第t个第一函数对应的标识,也就是“加密后的初始数据”的标识。
数据存储系统可以将{r、E[f(IDa)](1)、E[F(IDa)](1),...,,E[f(IDa)](t)、E[F(IDa)](t)}作为数据查询结果。
其中,r为预设的目标标签,r可以是数据存储系统在群域Zq上生成的随机数r。其中q为质数,且q大于所有的IDi所表征的整数值。
以t组数据中的任意一组数据为例,f(x)为m-1阶多项式,该多项式满足下述条件:
f(ID1)=r mod q;
...;
f(IDm)=r mod q;
也就是说,在Zq域上的多项式f(x)可以对应m个点:{(ID1,r),(ID2,r),...,(IDm,r)}。
可选的,可以使用拉格朗日插值法求出f(x)。假定求解出的多项式f(x)=b0+b1*x+...+bm-1*xm-1 mod q。其中,bi都是在群域Zq上的数据。
仍然以t组数据中的任意一组数据为例,F(x)为m-1阶多项式,该多项式满足下述条件:
F(ID1)=DATA1 mod q;
...;
F(IDm)=DATAm mod q;
同样可以用拉格朗日插值法求出F(x)。假定求解出的多项式F(x)=c0+c1*x+...+cm-1*xm-1 mod q。其中,ci都是在群域Zq上的数据。
步骤4、数据存储系统将数据查询结果发送给第一系统。
步骤5、第一系统根据数据查询结果获取目标数据。
第一系统在接收到上述数据查询结果之后,以第一个第二函数,以及,第一个第一函数为例,第一系统可以执行以下步骤:
步骤51、计算D[E[f(IDa)](1)] = f(IDa)(1);其中,D[]加法同态加密算法E[]对应的解密算法。
步骤52、判断f(IDa)(1)是否等于r。
若f(IDa)(1)等于r,则第一系统继续计算:D[E[F(IDa)](1)]=F(IDa)(1) = DATAa。这里DATAa即为第一系统需要查询的目标数据。
若f(IDa)(1)不等于r,则第一系统针对第二个第二函数继续执行步骤51-步骤52。
步骤53、如果t个第二函数中均不存在f(IDa)(1)等于r,则说明第一系统需要查询的目标数据不在数据存储系统的数据库中。则第一系统可以向其他数据存储系统获取目标数据。
下面通过一个具体示例,详细说明本申请相较于现有技术能够达到减少的数据传输量:
假设数据存储系统的数据库中,有十亿(109)个数据,第一系统现在需要查询一万(104)条客户信息:
在现有的数据查询方法中,需要传输的数据量如下:
通过本申请提供的数据查询方法,需要传输的数据量如下:
具体地,假定m=105,t=n/m=109/105=104,则通过本申请提供的数据查询方法所需总的数据传输量约为:109+108个数据。该数据传输量相较于现有的数据查询方法所需的数据传输量压缩比达到约:104。
因此,通过本申请提供的数据查询方法,减少了数据传输量,提高了数据查询效率。
图5为本申请提供的一种数据查询装置300的结构示意图。该装置300可以应用于第一系统。如图5所示,该装置300包括:第一处理模块301、发送模块302、接收模块303,以及,第二处理模块304。其中,
第一处理模块301,用于对目标数据标识进行加密,得到m-1个加密后的目标数据标识。
发送模块302,用于向数据存储系统发送数据查询请求。其中,所述数据查询请求包括:所述m-1个加密后的目标数据标识。
接收模块303,用于接收来自所述数据存储系统的数据查询结果。其中,所述数据查询结果包括:所述数据存储系统通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识得到的至少一个加密后的初始数据。
第二处理模块304,用于根据所述至少一个加密后的初始数据,获取加密后的目标数据;对所述加密后的目标数据进行解密,得到所述目标数据。
可选的,同一组的m个数据标识与标签的映射关系通过一个第二函数表征。在该实现方式下,接收模块303,还用于在所述向数据存储系统发送数据查询请求之后、且接收来自所述数据存储系统的数据查询结果之前,接收来自所述数据存储系统的查询反馈信息。发送模块302,还用于在根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统存储有目标数据时,向所述数据存储系统发送数据获取指令。
其中,所述查询反馈信息包括:t个加密后的第一标签,以及,预设的目标标签,所述t个加密后的第一标签为所述数据存储系统通过t个第二函数,以及,所述m-1个加密后的目标数据标识得到的。所述数据获取指令用于指示所述数据存储系统返回所述数据查询结果。
可选的,第二处理模块304,还用于对所述t个加密后的第一标签进行解密,得到t个第一标签;在t个所述第一标签中存在与所述目标标签相同的第一标签时,确定所述数据存储系统存储有目标数据。
可选的,所述数据获取指令包括:目标第二函数的标识;所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数;所述数据查询结果包括:一个加密后的初始数据;该加密后的初始数据为所述数据存储系统通过与所述目标第二函数的标识相同的第一函数,以及,所述m-1个加密后的目标数据标识得到的。在该实现方式下,第二处理模块304,具体用于将该加密后的初始数据,作为加密后的目标数据。
可选的,发送模块302,还用于在根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统未存储所述目标数据时,向候选数据存储系统发送所述数据查询请求。
可选的,所述数据查询结果包括:预设的目标标签、t个加密后的第一标签、t个加密后的初始数据,以及,各加密后的初始数据对应的第一函数的标识;所述t个加密后的初始数据为所述数据存储系统通过t个第一函数,以及,所述加密后的目标数据标识得到的;所述t个加密后的第一标签为所述数据存储系统通过t个第二函数,以及,所述加密后的目标数据标识得到的。
在该实现方式下,第二处理模块304,具体用于根据目标第二函数的标识,以及,所述各加密后的初始数据对应的第一函数的标识,从所述t个加密后的初始数据中,获取加密后的目标数据。其中,所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数。
可选的,所述目标数据标识为数字。第一处理模块301,具体用于按照i从小到大的取值,依次计算所述目标数据标识的i次方,得到所述目标数据标识对应的m-1个初始值;对所述m-1个初始值中的每个初始值进行加密,得到m-1个加密后的目标数据标识。其中,所述i为大于0,且小于所述m的整数。
可选的,第二处理模块304,还用于在所述获取所述目标数据之后,基于所述目标数据执行目标业务。
本申请提供的数据查询装置300,用于执行前述第一系统所执行的数据查询方法实施例,其实现原理与技术效果类似,对此不再赘述。
图6为本申请提供的一种数据查询装置400的结构示意图。该装置400可以应用于数据存储系统存储。如图6所示,该装置400包括:接收模块401、处理模块402,以及,发送模块403。其中,
接收模块401,用于接收来自第一系统的数据查询请求。其中,所述数据查询请求包括:所述m-1个加密后的目标数据标识。
处理模块402,用于通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果。其中,所述数据查询结果包括:至少一个加密后的初始数据。
发送模块403,用于将所述数据查询结果发送至所述第一系统。
可选的,同一组的m个数据标识与标签的映射关系通过一个第二函数表征。处理模块402,还用于在所述接收来自第一系统的数据查询请求之后、且将所述数据查询结果发送至所述第一系统之前,通过t个第二函数,以及,所述m-1个加密后的目标数据标识,得到所述各第二函数对应的加密后的第一标签。发送模块403,还用于向所述第一系统发送查询反馈信息。其中,所述查询反馈信息包括:t个加密后的第一标签,以及,预设的目标标签,以使所述第一系统根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统是否存储有目标数据。接收模块401,还用于接收所述第一系统在确定所述数据存储系统存储有所述目标数据时,发送的数据获取指令。其中,所述数据获取指令用于指示所述数据存储系统返回所述数据查询结果。
可选的,所述数据获取指令包括:目标第二函数的标识;所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数。处理模块402,具体用于根据所述目标第二函数的标识,确定出一个第一函数;根据该第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果。其中,该第一函数的标识与所述目标第二函数的标识相同;所述数据查询结果包括:一个加密后的初始数据。
可选的,处理模块402,还用于在所述接收来自第一系统的数据查询请求之后、且将所述数据查询结果发送至所述第一系统之前,通过t个第二函数,以及,所述m-1个加密后的目标数据标识,得到所述各第二函数对应的加密后的第一标签;通过t个第一函数,以及,所述m-1个加密后的目标数据标识,得到各所述第一函数对应的加密后的初始数据。其中,所述数据查询结果包括:预设的目标标签、t个加密后的第一标签、t个加密后的初始数据,以及,各加密后的初始数据对应的第一函数的标识。
本申请提供的数据查询装置,用于执行前述数据查询方法实施例,其实现原理与技术效果类似,对此不再赘述。
图7为本申请提供的一种电子设备结构示意图。如图7所示,该电子设备500可以包括:至少一个处理器501、存储器502、接收器505,以及,发送器504。其中,
接收器505和发送器504均耦合至处理器501。该处理器501控制接收器505的接收动作,处理器501控制发送器504的发送动作。
存储器502,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器502可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器501用于执行存储器502存储的计算机执行指令,以实现前述方法实施例所描述的通信方法。其中,处理器501可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,该电子设备500还可以包括通信接口503。在具体实现上,如果通信接口503、存储器502和处理器501独立实现,则通信接口503、存储器502和处理器501可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口503、存储器502和处理器501集成在一块芯片上实现,则通信接口503、存储器502和处理器501可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备实施上述的各种实施方式提供的数据查询方法。
本申请还提供一种系统,该系统可以用于执行如前述第一系统执行的任一实施例所述的方法。
本申请还提供另一种系统,该系统可以存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征。其中t和m均为大于1的整数。该系统可以用于执行如前述数据存储系统执行的任一实施例所述的方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (16)
1.一种数据查询方法,其特征在于,数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;所述方法应用于第一系统,所述方法包括:
对目标数据标识进行加密,得到m-1个加密后的目标数据标识;
向数据存储系统发送数据查询请求,所述数据查询请求包括:所述m-1个加密后的目标数据标识;
接收来自所述数据存储系统的数据查询结果;所述数据查询结果包括:所述数据存储系统通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识得到的至少一个加密后的初始数据;
根据所述至少一个加密后的初始数据,获取加密后的目标数据;
对所述加密后的目标数据进行解密,得到所述目标数据;
同一组的m个数据标识与标签的映射关系通过一个第二函数表征,在所述向数据存储系统发送数据查询请求之后、且接收来自所述数据存储系统的数据查询结果之前,所述方法还包括:
接收来自所述数据存储系统的查询反馈信息;所述查询反馈信息包括:t个加密后的第一标签,以及,预设的目标标签,所述t个加密后的第一标签为所述数据存储系统通过t个第二函数,以及,所述m-1个加密后的目标数据标识得到的;
若根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统存储有目标数据,则向所述数据存储系统发送数据获取指令,所述数据获取指令用于指示所述数据存储系统返回所述数据查询结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统存储有目标数据,包括:
对所述t个加密后的第一标签进行解密,得到t个第一标签;
若t个所述第一标签中存在与所述目标标签相同的第一标签,则确定所述数据存储系统存储有目标数据。
3.根据权利要求2所述的方法,其特征在于,所述数据获取指令包括:目标第二函数的标识;所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数;所述数据查询结果包括:一个加密后的初始数据;该加密后的初始数据为所述数据存储系统通过与所述目标第二函数的标识相同的第一函数,以及,所述m-1个加密后的目标数据标识得到的;
所述根据所述至少一个加密后的初始数据,获取加密后的目标数据,包括:
将该加密后的初始数据,作为加密后的目标数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统未存储所述目标数据,则向候选数据存储系统发送所述数据查询请求。
5.根据权利要求1所述的方法,其特征在于,所述数据查询结果包括:预设的目标标签、t个加密后的第一标签、t个加密后的初始数据,以及,各加密后的初始数据对应的第一函数的标识;所述t个加密后的初始数据为所述数据存储系统通过t个第一函数,以及,所述加密后的目标数据标识得到的;所述t个加密后的第一标签为所述数据存储系统通过t个第二函数,以及,所述加密后的目标数据标识得到的;
所述根据所述至少一个加密后的初始数据,获取加密后的目标数据,包括:
根据目标第二函数的标识,以及,所述各加密后的初始数据对应的第一函数的标识,从所述t个加密后的初始数据中,获取加密后的目标数据;所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述目标数据标识为数字,所述对目标数据标识进行加密,得到m-1个加密后的目标数据标识,包括:
按照i从小到大的取值,依次计算所述目标数据标识的i次方,得到所述目标数据标识对应的m-1个初始值;所述i为大于0,且小于所述m的整数;
对所述m-1个初始值中的每个初始值进行加密,得到m-1个加密后的目标数据标识。
7.根据权利要求1-5任一项所述的方法,其特征在于,在所述获取所述目标数据之后,所述方法还包括:
基于所述目标数据执行目标业务。
8.一种数据查询方法,其特征在于,所述方法应用于数据存储系统,所述数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;所述方法包括:
接收来自第一系统的数据查询请求,所述数据查询请求包括:所述m-1个加密后的目标数据标识;
通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果,所述数据查询结果包括:至少一个加密后的初始数据;
将所述数据查询结果发送至所述第一系统;
同一组的m个数据标识与标签的映射关系通过一个第二函数表征,在所述接收来自第一系统的数据查询请求之后、且将所述数据查询结果发送至所述第一系统之前,所述方法还包括:
通过t个第二函数,以及,所述m-1个加密后的目标数据标识,得到所述各第二函数对应的加密后的第一标签;
向所述第一系统发送查询反馈信息;所述查询反馈信息包括:t个加密后的第一标签,以及,预设的目标标签,以使所述第一系统根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统是否存储有目标数据;
接收所述第一系统在确定所述数据存储系统存储有所述目标数据时,发送的数据获取指令;所述数据获取指令用于指示所述数据存储系统返回所述数据查询结果。
9.根据权利要求8所述的方法,其特征在于,所述数据获取指令包括:目标第二函数的标识;所述目标第二函数为与所述目标标签相同的第一标签对应的第二函数;
所述通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果包括:
根据所述目标第二函数的标识,确定出一个第一函数;该第一函数的标识与所述目标第二函数的标识相同;
根据该第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果,所述数据查询结果包括:一个加密后的初始数据。
10.根据权利要求8所述的方法,其特征在于,在所述接收来自第一系统的数据查询请求之后、且将所述数据查询结果发送至所述第一系统之前,所述方法还包括:
通过t个第二函数,以及,所述m-1个加密后的目标数据标识,得到所述各第二函数对应的加密后的第一标签;
通过t个第一函数,以及,所述m-1个加密后的目标数据标识,得到各所述第一函数对应的加密后的初始数据;
所述数据查询结果包括:预设的目标标签、t个加密后的第一标签、t个加密后的初始数据,以及,各加密后的初始数据对应的第一函数的标识。
11.一种数据查询装置,其特征在于,数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;所述装置应用于第一系统,所述装置包括:
第一处理模块,用于对目标数据标识进行加密,得到m-1个加密后的目标数据标识;
发送模块,用于向数据存储系统发送数据查询请求,所述数据查询请求包括:所述m-1个加密后的目标数据标识;
接收模块,用于接收来自所述数据存储系统的数据查询结果;所述数据查询结果包括:所述数据存储系统通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识得到的至少一个加密后的初始数据;
第二处理模块,用于根据所述至少一个加密后的初始数据,获取加密后的目标数据;对所述加密后的目标数据进行解密,得到所述目标数据;
同一组的m个数据标识与标签的映射关系通过一个第二函数表征,接收模块,还用于在所述向数据存储系统发送数据查询请求之后、且接收来自所述数据存储系统的数据查询结果之前,接收来自所述数据存储系统的查询反馈信息,所述查询反馈信息包括:t个加密后的第一标签,以及,预设的目标标签,所述t个加密后的第一标签为所述数据存储系统通过t个第二函数,以及,所述m-1个加密后的目标数据标识得到的;发送模块,还用于在根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统存储有目标数据时,向所述数据存储系统发送数据获取指令,所述数据获取指令用于指示所述数据存储系统返回所述数据查询结果。
12.一种数据查询装置,其特征在于,所述装置应用于数据存储系统,所述数据存储系统存储有t组数据,每组包括m个数据,同一组的m个数据与标识的映射关系通过一个第一函数表征,所述t和m均为大于1的整数;所述装置包括:
接收模块,用于接收来自第一系统的数据查询请求,所述数据查询请求包括:所述m-1个加密后的目标数据标识;
处理模块,用于通过至少一个第一函数,以及,所述m-1个加密后的目标数据标识,得到数据查询结果,所述数据查询结果包括:至少一个加密后的初始数据;
发送模块,用于将所述数据查询结果发送至所述第一系统;
同一组的m个数据标识与标签的映射关系通过一个第二函数表征;处理模块,还用于在所述接收来自第一系统的数据查询请求之后、且将所述数据查询结果发送至所述第一系统之前,通过t个第二函数,以及,所述m-1个加密后的目标数据标识,得到所述各第二函数对应的加密后的第一标签;发送模块,还用于向所述第一系统发送查询反馈信息;其中,所述查询反馈信息包括:t个加密后的第一标签,以及,预设的目标标签,以使所述第一系统根据所述t个加密后的第一标签,以及,所述目标标签,确定所述数据存储系统是否存储有目标数据;接收模块,还用于接收所述第一系统在确定所述数据存储系统存储有所述目标数据时,发送的数据获取指令;其中,所述数据获取指令用于指示所述数据存储系统返回所述数据查询结果。
13.一种电子设备,其特征在于,包括:至少一个处理器、存储器、接收器、发送器;
所述接收器和所述发送器均耦合至所述处理器,所述处理器控制所述接收器的接收动作,所述处理器控制所述发送器的发送动作;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行权利要求1-10任一项所述的方法。
14.一种系统,其特征在于,所述系统用于执行如权利要求1-7任一项所述的方法。
15.一种系统,其特征在于,所述系统用于执行如权利要求8-10任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机执行指令,当所述计算机执行指令被处理器执行时,实现权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210924274.4A CN114996305B (zh) | 2022-08-03 | 2022-08-03 | 数据查询方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210924274.4A CN114996305B (zh) | 2022-08-03 | 2022-08-03 | 数据查询方法、装置、电子设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114996305A CN114996305A (zh) | 2022-09-02 |
CN114996305B true CN114996305B (zh) | 2022-11-01 |
Family
ID=83021671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210924274.4A Active CN114996305B (zh) | 2022-08-03 | 2022-08-03 | 数据查询方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114996305B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10872166B2 (en) * | 2018-09-12 | 2020-12-22 | Netz Forecasts Ltd. | Systems and methods for secure prediction using an encrypted query executed based on encrypted data |
CN109299619B (zh) * | 2018-10-09 | 2020-12-25 | 北京腾云天下科技有限公司 | 数据查询方法、计算设备以及系统 |
CN109299149B (zh) * | 2018-10-09 | 2020-07-14 | 北京腾云天下科技有限公司 | 数据查询方法、计算设备以及系统 |
US11102187B2 (en) * | 2019-02-20 | 2021-08-24 | Aetna Inc. | Systems and methods for managing workflow transactions including protected personal data in regulated computing environments |
WO2021037708A1 (en) * | 2019-08-26 | 2021-03-04 | Koninklijke Philips N.V. | Restricted fully private conjunctive database query for protection of user privacy and identity |
WO2021087494A1 (en) * | 2019-11-03 | 2021-05-06 | Valimail Inc. | Centralized secure distribution of messages and device updates |
CN112733180A (zh) * | 2021-04-06 | 2021-04-30 | 北京神州泰岳智能数据技术有限公司 | 数据查询方法、装置和电子设备 |
CN113239046A (zh) * | 2021-05-20 | 2021-08-10 | 平安科技(深圳)有限公司 | 数据查询方法、系统、计算机设备及存储介质 |
-
2022
- 2022-08-03 CN CN202210924274.4A patent/CN114996305B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114996305A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150249918A1 (en) | Establishing communication between devices | |
CN115186145B (zh) | 一种隐私关键词查询方法、装置及系统 | |
CN109299149B (zh) | 数据查询方法、计算设备以及系统 | |
US10374797B2 (en) | Public-key encryption system | |
NL2013944B1 (en) | Public-key encryption system. | |
CN115688167B (zh) | 匿踪查询方法、装置和系统及存储介质 | |
CN111062052B (zh) | 一种数据查询的方法和系统 | |
CN115580396B (zh) | 匿踪查询系统及匿踪查询方法 | |
CN112823503B (zh) | 一种数据访问方法、数据访问装置及移动终端 | |
CN116502254B (zh) | 可查得统计的匿踪查询方法及装置 | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
CN115905238A (zh) | 隐匿查询方法、装置、电子设备和存储介质 | |
CN113569259A (zh) | 一种数据共享方法、系统、设备及计算机可读存储介质 | |
CN111934854A (zh) | 数据确定方法和装置、存储介质及电子装置 | |
CN114996305B (zh) | 数据查询方法、装置、电子设备、存储介质及程序产品 | |
CN116305300B (zh) | 公平隐私集合求交方法 | |
CN117371011A (zh) | 数据隐匿查询方法、电子设备和可读存储介质 | |
US20210152332A1 (en) | Apparatus for adding data to blockchain, data verification apparatus, and data verification method | |
CN114969805B (zh) | 服务查询方法、装置、电子设备及存储介质 | |
CN115098545A (zh) | 针对业务对象的查询方法及装置 | |
CN112769744B (zh) | 一种数据发送方法和装置 | |
CN111414597A (zh) | 一种获取设备指纹的方法、装置及设备指纹服务器 | |
CN115174136B (zh) | 数据获取和数据传送方法、终端、服务器及存储介质 | |
WO2023077445A1 (zh) | 股权激励系统中的数据处理的方法和装置 | |
CN116244307A (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 |