CN115905710A - 一种匿踪查询系统、方法、装置、电子设备及存储介质 - Google Patents
一种匿踪查询系统、方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115905710A CN115905710A CN202211687531.3A CN202211687531A CN115905710A CN 115905710 A CN115905710 A CN 115905710A CN 202211687531 A CN202211687531 A CN 202211687531A CN 115905710 A CN115905710 A CN 115905710A
- Authority
- CN
- China
- Prior art keywords
- partition
- ciphertext
- data
- keyword
- query
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种匿踪查询系统、方法、装置、电子设备及存储介质,查询端获取密钥对及待查询关键词,利用公钥对待查询关键词进行加密,得到关键词密文;数据端根据关键词密文、公钥及预设分区数,计算得到第一计算结果;查询端利用私钥对第一计算结果进行解密,根据解密结果计算得到第二计算结果;数据端根据第二计算结果、关键词密文、公钥及预设分区数,计算得到分区编号密文;查询端利用私钥对分区编号密文进行解密得到分区编号明文;数据端针对每一个分区,根据公钥及关键词密文,确定该分区的查询结果密文;查询端获取分区编号明文对应的分区的查询结果密文,利用私钥解密得到查询结果明文。提高了隐私信息检索的安全性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种匿踪查询系统、方法、装置、电子设备及存储介质。
背景技术
相关技术中通常采用分桶的方式,即后端数据库的数据使用分桶规则划分到不同的桶中,当查询端想查询关键词信息时,就会使用该分桶规则计算出目标分桶的网络地址,然后和该分桶内的数据之间使用传统的不经意传输协议来隐匿查询意图。
虽然分桶的方法将整体计算量降了下来,但是数据端也知晓了查询端的查询目标分布在哪些桶内,因此数据端可以通过反推的方式得到查询端查询的数据的内容,导致隐私信息检索的安全性随之降低。
发明内容
本申请实施例的目的在于提供一种匿踪查询系统、方法、装置、电子设备及存储介质,以提高隐私信息检索的安全性。具体技术方案如下:
根据本申请实施例的第一方面,提供一种匿踪查询系统,所述系统包括:
数据端及查询端;
所述查询端,用于获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;利用所述公钥对所述待查询关键词进行加密,得到关键词密文;将所述关键词密文及所述公钥发送给所述数据端;
所述数据端,用于获取所述查询端发送的所述关键词密文及所述公钥;根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;将所述第一计算结果发送给所述查询端;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同;
所述查询端,还用于获取所述数据端发送的所述第一计算结果,利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;将所述第二计算结果发送给所述数据端;
所述数据端,还用于获取所述查询端发送的第二计算结果,根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;向所述查询端发送所述分区编号密文;
所述查询端,还用于获取所述数据端发送的所述分区编号密文,利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
所述数据端,还用于针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;将各所述分区的查询结果密文发送给所述查询端;
所述查询端,还用于获取所述分区编号明文所对应的分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
根据本申请实施例的第二方面,提供一种匿踪查询方法,应用于数据端,包括:
获取查询端发送的关键词密文及公钥,其中,所述关键词密文是所述查询端利用所述公钥对待查询关键词加密后得到的;
根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;将所述第一计算结果发送给所述查询端,以使所述查询端利用私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同,所述公钥及所述私钥属于所述查询端的同一密钥对;
获取所述查询端发送的第二计算结果,根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;
向所述查询端发送所述分区编号密文,以使所述查询端利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;
将各所述分区的查询结果密文发送给所述查询端,以使所述查询端按照所述分区编号明文获取到对应分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
可选的,所述方法还包括:
根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区;
针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中;
针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。
可选的,所述根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果,包括:
利用所述公钥对所述预设分区数进行加密,得到第一数据;
通过预设第一四则运算,对所述第一数据及所述关键词密文进行运算,得到第一计算结果;
所述根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,包括:
通过预设第二四则运算,对所述第二计算结果、所述第一数据、所述关键词密文进行运算,得到分区编号密文;其中,所述预设第一四则运算及所述第二四则运算通过所述预设分区算法拆分得到。
可选的,所述预设分区算法为除留余数法,所述根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区,包括:
针对每一个关键词,以所述预设分区数作为除数,通过除留余数法计算该关键词的余数;其中,该关键词的余数所对应的分区为该关键词所示的分区,分区与余数一一对应;
所述通过预设第一四则运算,对所述第一数据及所述关键词密文进行运算,得到第一计算结果,包括:
对所述关键词密文及所述第一数据进行除法运算,得到所述第一计算结果;
所述通过预设第二四则运算,对所述第二计算结果、所述第一数据、所述关键词密文进行运算,得到分区编号密文,包括:
对所述第一数据及所述第二计算结果进行乘法运算,得到第二数据;
对所述关键词密文及所述第二数据进行减法运算,得到分区编号密文。
可选的,所述针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,包括:
针对每一个分区,将所述关键词密文、所述公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文。
根据本申请实施例的第三方面,提供一种匿踪查询方法,应用于查询端,包括:
获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;利用所述公钥对所述待查询关键词进行加密,得到关键词密文;
将所述关键词密文及所述公钥发送给数据端,以使所述数据端根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;
获取所述数据端发送的所述第一计算结果,利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;
将所述第二计算结果发送给所述数据端,以使所述数据端根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,所述数据端针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,并向所述查询端发送各所述分区的查询结果密文;
获取所述数据端发送的所述分区编号密文,利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
获取所述分区编号明文所对应的分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
可选的,所述利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果,包括:
利用所述私钥对所述第一计算结果进行解密,得到第三数据;
通过预设数据算法,对所述第三数据进行运算,得到第二计算结果;其中,所述预设数据算法通过预设分区算法拆分得到,所述预设分区算法为所述数据端计算每个关键词所属的分区时所使用的算法。
可选的,所述预设分区算法为除留余数法,所述通过预设数据算法,对所述第三数据进行运算,得到第二计算结果,包括:
对所述第三数据进行向下取整运算,得到第二计算结果。
根据本申请实施例的第四方面,提供一种匿踪查询装置,应用于数据端,包括:
第一获取模块,用于获取查询端发送的关键词密文及公钥,其中,所述关键词密文是所述查询端利用所述公钥对待查询关键词加密后得到的;
第一计算结果获取模块,用于根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同;
第一发送模块,用于将所述第一计算结果发送给所述查询端,以使所述查询端利用私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;所述公钥及所述私钥属于所述查询端的同一密钥对;
第二获取模块,用于获取所述查询端发送的第二计算结果;
分区编号密文获取模块,用于根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;
第二发送模块,用于向所述查询端发送所述分区编号密文,以使所述查询端利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
确定模块,用于针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;
第三发送模块,用于将各所述分区的查询结果密文发送给所述查询端,以使所述查询端按照所述分区编号明文获取到对应分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
可选的,所述装置还包括:
关键词所属分区计算模块,用于根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区;
划分模块,用于针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中;
多项式函数建立模块,用于针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。
可选的,所述第一计算结果获取模块包括:
第一数据获取子模块,用于利用所述公钥对所述预设分区数进行加密,得到第一数据;
第一计算结果获取子模块,用于通过预设第一四则运算,对所述第一数据及所述关键词密文进行运算,得到第一计算结果;
所述分区编号密文获取模块包括:
分区编号密文获取子模块,用于通过预设第二四则运算,对所述第二计算结果、所述第一数据、所述关键词密文进行运算,得到分区编号密文;其中,所述预设第一四则运算及所述第二四则运算通过所述预设分区算法拆分得到。
可选的,所述预设分区算法为除留余数法,所述关键词所属分区计算模块包括:
余数计算子模块,用于针对每一个关键词,以所述预设分区数作为除数,通过除留余数法计算该关键词的余数;其中,该关键词的余数所对应的分区为该关键词所示的分区,分区与余数一一对应;
所述第一计算结果获取子模块具体用于:
对所述关键词密文及所述第一数据进行除法运算,得到所述第一计算结果;
所述分区编号密文获取子模块具体用于:
对所述第一数据及所述第二计算结果进行乘法运算,得到第二数据;
对所述关键词密文及所述第二数据进行减法运算,得到分区编号密文。
可选的,所述确定模块包括:
查询结果密文获取子模块,用于针对每一个分区,将所述关键词密文、所述公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文。
根据本申请实施例的第五方面,提供一种匿踪查询装置,应用于查询端,包括:
第一获取模块,用于获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;
关键词密文获取模块,用于利用所述公钥对所述待查询关键词进行加密,得到关键词密文;
第一发送模块,用于将所述关键词密文及所述公钥发送给数据端,以使所述数据端根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;
第二获取模块,用于获取所述数据端发送的所述第一计算结果;
第二计算结果获取模块,用于利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;
第二发送模块,用于将所述第二计算结果发送给所述数据端,以使所述数据端根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,所述数据端针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,并向所述查询端发送各所述分区的查询结果密文;
第三获取模块,用于获取所述数据端发送的所述分区编号密文;
分区编号明文获取模块,用于利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
第四获取模块,用于获取所述分区编号明文所对应的分区的查询结果密文;
查询结果明文获取模块,用于利用所述私钥解密得到查询结果明文。
可选的,所述第二计算结果获取模块包括:
第三数据获取子模块,用于利用所述私钥对所述第一计算结果进行解密,得到第三数据;
第二计算结果获取子模块,用于通过预设数据算法,对所述第三数据进行运算,得到第二计算结果;其中,所述预设数据算法通过预设分区算法拆分得到,所述预设分区算法为所述数据端计算每个关键词所属的分区时所使用的算法。
可选的,所述预设分区算法为除留余数法,所述第二计算结果获取子模块具体用于:
对所述第三数据进行向下取整运算,得到第二计算结果。
根据本申请实施例的第六方面,提供一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第二方面或第三方面中任一所述的方法。
根据本申请实施例的第七方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面或第三方面中任一所述的方法。
本申请实施例有益效果:
本申请实施例提供的一种匿踪查询系统、方法、装置、电子设备及存储介质,包括:数据端及查询端;查询端,用于获取密钥对及待查询关键词,密钥对包括公钥及私钥;利用公钥对待查询关键词进行加密,得到关键词密文;将关键词密文及公钥发送给数据端;数据端,用于获取查询端发送的关键词密文及公钥;根据关键词密文、公钥及预设分区数,计算得到第一计算结果;将第一计算结果发送给查询端;其中,数据端的数据库划分为多个分区,各所述分区中存储的数据不同;查询端,还用于获取数据端发送的第一计算结果,利用私钥对第一计算结果进行解密,并根据解密结果计算得到第二计算结果;将第二计算结果发送给数据端;数据端,还用于获取查询端发送的第二计算结果,根据第二计算结果、关键词密文、公钥及预设分区数,计算得到分区编号密文;向查询端发送分区编号密文;查询端,还用于获取数据端发送的分区编号密文,利用私钥对分区编号密文进行解密,得到分区编号明文;数据端,还用于针对每一个分区,根据公钥及关键词密文,确定该分区的查询结果密文;将各分区的查询结果密文发送给查询端;查询端,还用于获取分区编号明文所对应的分区的查询结果密文,并利用私钥解密得到查询结果明文。上述系统中,数据端需要在每个分区中均执行数据的查询,并返回每个分区的查询结果密文,查询端根据分区编号明文来找到对应分区的查询结果密文,并通过私钥解密得到查询结果明文,实现了数据的匿踪查询,并且数据端并不知道查询端实际解密的是哪个分区的数据,数据端很难反推出查询端的查询范围,提高了隐私信息检索的安全性。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1a为本申请实施例提供的应用于数据端的匿踪查询方法的第一种流程示意图;
图1b为全同态加解密过程的示意图;
图2为本申请实施例提供的应用于数据端的匿踪查询方法的第二种流程示意图;
图3为本申请实施例提供的应用于数据端的匿踪查询方法的第三种流程示意图;
图4为本申请实施例提供的应用于数据端的匿踪查询方法的第四种流程示意图;
图5为本申请实施例提供的应用于数据端的匿踪查询方法的第五种流程示意图;
图6为本申请实施例提供的应用于查询端的匿踪查询方法的一种流程示意图;
图7a为本申请实施例提供的匿踪查询系统的一种结构示意图;
图7b为本申请实施例提供的匿踪查询系统的另一种结构示意图;
图8为本申请实施例提供的应用于数据端的匿踪查询装置的一种结构示意图;
图9为本申请实施例提供的应用于查询端的匿踪查询装置的一种结构示意图;
图10为本申请实施例提供的应用于数据端的电子设备的一种结构示意图;
图11为本申请实施例提供的应用于查询端的电子设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
为了提高隐私信息检索的安全性,本申请实施例提供了一种匿踪查询系统、方法、装置、电子设备及存储介质。
首先,对本申请实施例提供的一种应用于数据端的匿踪查询方法进行详细说明,如图1a所示,包括以下步骤:
步骤S101,获取查询端发送的关键词密文及公钥,其中,所述关键词密文是所述查询端利用所述公钥对待查询关键词加密后得到的。
数据端中包括多个分区,每个分区中均存储关键词的查询结果,一个例子中,关键词及其查询结果可以为键值对数据,即关键词作为key,查询结果作为value组成的数据。匿踪查询是指查询端隐藏待查询对象的关键词,数据端为查询端提供匹配的查询结果却无法获知具体对应于哪个待查询对象。
查询端获取全同态加密密钥对的公钥及私钥,然后利用公钥对待查询关键词进行加密,得到关键词密文,并将关键词密文和公钥发送给数据端。其中,在待查询关键词为数据端的数据库中存在的关键词时,数据端才可以查询到正确结果,否则数据端查询不到正确结果,可以向查询端返回查询结果为空的消息。
同态加密是基于数学难题的计算复杂性理论的密码学技术,对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据(明文数据)得到的输出结果是一样的。利用同态加密技术可以实现让解密方只能获知最后的结果,而无法获得每一个密文的消息,可以提高信息的安全性,保证数据的私密性。本质上,同态加密是指这样一种加密函数:对明文进行环上的加法和乘法运算后再加密,与加密后对密文进行相应的运算相比,结果是等价的。以下进行举例说明,具有同态性质的加密函数是指两个明文a、b满足Dec(Enc(a)⊙Enc(b))=a⊕b的加密函数,其中Enc是加密运算,Dec是解密运算,⊙、⊕分别对应明文和密文域上的运算,当⊕代表加法时,称该加密为加同态加密:当⊕代表乘法时,称该加密为乘同态加密。而全同态加密是指同时满足加同态和乘同态性质,可以进行任意多次加和乘运算的加密函数,即Dec(Enc(x1)+Enc(x2))=x1+x2;Dec(Enc(x1)*Enc(x2))=x1*x2,称为全同态加密。全同态加密有多种实现方式,不同实现方式具体细节存在不同,但是大体都可以分为四个部分:密钥生成、同态运算、密文运算、解密运算。一个例子中,以Gentry方案为例说明过程,如图1b所示:
1.密钥生成:根据密钥生成算法KeyGen(λ)生成公钥pk和私钥sk,其中λ为安全参数;2.加密运算:通过加密算法Encrypt(pk,m)加密明文,其中pk为公钥,m为明文,输出密文c(密文数据)。需要注意的是加密算法是逐位加密,所以m需要分解成二进制数组[m1,m2……mt],1≤i≤t,同时mi∈{0,1},对每个mi进行加密计算,得到密文c=[c1,c2……ct];3.同态运算:将密文c、公钥pk还有计算函数f进行同态运算Evaluate(c,pk,f),对任意两个密文计算分解成为密文加和密文乘的运算,并将结果整理成c’(密文结果);4.解密运算:将计算结果c’进行解密Decrypt(sk,c’)。
密钥对包括公钥和私钥,公钥和私钥是通过一种算法得到的一个密钥对,将其中的一个向外界公开,称为公钥;另一个自己保留,称为私钥。公钥和私钥是成对的,它们互相解密(密钥指公钥或私钥,密钥对指公钥加私钥),公钥和私钥都可以加密和解密。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。例如,如果用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据,一个例子中,发送端使用私钥对需要传输的文本的摘要进行加密,得到的密文即为该次传输过程的签名,接收端拿到传输文本,需要确认该文本是否就是发送端发出的内容,中途是否曾经被篡改,因此拿自己持有的公钥对签名进行解密,得到了传输文本的摘要,然后使用与发送端同样的算法(相同计算函数)对传输文本进行计算得到摘要,再与解密得到的摘要做对比,发现二者完全一致(相等),则说明文本没有被篡改过。
步骤S102,根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果。
预设分区数为数据端预先对自身的数据库进行分区时所使用的分区数目,可以将其记为n,n的取值为大于2的整数。第一计算结果为计算待查询关键词所属分区时的中间数据结果。
步骤S103,将所述第一计算结果发送给所述查询端,以使所述查询端利用私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同,所述公钥及所述私钥属于所述查询端的同一密钥对。
第二计算结果为计算待查询关键词所属分区时的中间数据结果。查询端利用私钥对第一计算结果进行解密,根据解密结果计算得到第二计算结果并发送给数据端。所述私钥和公钥是成对的,属于所述查询端的同一密钥对,一个例子中,属于同一全同态加密密钥对。
步骤S104,获取所述查询端发送的第二计算结果,根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文。
本申请实施例中将待查询关键词所属的分区的计算过程分为三部分,先由数据端根据关键词密文、公钥及预设分区数,计算得到第一计算结果,并将第一计算结果发送给查询端。在由查询端利用私钥对第一计算结果进行解密,根据解密后的数据计算得到第二计算结果,并将第二计算结果发送给数据端。然后由数据端根据第二计算结果、关键词密文、公钥及预设分区数,计算得到分区编号密文。查询端与数据端均只负责一部分计算过程,(数据端无法获得私钥,因此无法反推查询端计算第二计算结果的过程),从而查询端与数据端均无法掌握整个处理过程,二者均无法仅凭借自身掌握的数据,来反推出对端的处理过程,从而可以提高隐私信息检索的安全性。
其中,分区编号指的是预设分区所对应的编号,每个分区唯一对应一个分区编号,一个例子中,第一个分区的分区编号可以为1,第二个分区的分区编号可以为2,以此类推;一个例子中,为了提高分区的保密性,可以针对每个分区随机生成分区编号,仅需保证各分区的分区编号不同即可。待查询关键词所属的分区会对应有一个编号,计算得到的分区编号密文即为加密后的分区编号(待查询关键词所属的分区对应的分区编号)。
步骤S105,向所述查询端发送所述分区编号密文,以使所述查询端利用所述私钥对所述分区编号密文进行解密,得到分区编号明文。
查询端获取到数据端发送的分区编号密文后,利用私钥对分区编号密文进行解密得到待查询关键词所属分区的分区编号明文,这里的分区编号明文指的就是未加密的分区编号(待查询关键词所属的分区对应的分区编号)。
步骤S106,针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文。
由于数据端不清楚待查询关键词属于哪个预设分区,因此针对每一个预设分区,均需要基于关键词密文和公钥来确定该预设分区的查询结果密文。
步骤S107,将各所述分区的查询结果密文发送给所述查询端,以使所述查询端按照所述分区编号明文获取到对应分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
根据步骤S105可知,查询端已经获取到了待查询关键词所属分区对应的分区编号明文,因此在收到数据端发送的各分区的查询结果密文后,便可以按照已经知晓的分区编号明文(待查询关键词所属分区对应的分区编号)获取到对应分区的查询结果密文,再利用私钥对该查询结果密文进行解密得到查询结果明文,即待查询关键词对应的查询结果。
在本申请实施例中,将待查询关键词所属的分区的计算过程分为三部分,查询端与数据端均只负责一部分计算过程,从而查询端与数据端均无法掌握整个处理过程,二者均无法仅凭借自身掌握的数据,来反推出对端的处理过程。数据端需要在每个分区中均执行数据的查询,并返回每个分区的查询结果密文,查询端根据分区编号明文来找到对应分区的查询结果密文,并通过私钥解密得到查询结果明文,实现了数据的匿踪查询,并且数据端并不知道查询端实际解密的是哪个分区的数据,数据端很难反推出查询端的查询范围,提高了隐私信息检索的安全性;此外,查询端也无法掌握数据端的整体计算过程,因此无法得知数据端的分区规则,从而提高了隐私信息检索的安全性。
参见图2,为本申请实施例提供的应用于数据端的匿踪查询方法的第二种流程示意图,包括以下步骤:
步骤S201,根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区。
预设分区数可以根据实际情况自定义设置,具体可以根据数据库中总数据量的大小及计算资源的计算能力来进行设置,本申请中不做具体限定。预设分区算法可以根据数据的分布特点采用与之对应的算法,例如可以基于关键词的哈希值对数据库进行分区,分别计算每个关键词所属的分区。具体的,可以基于哈希值通过除留余数法、直接定址法、随机法或折叠法等算法来实现关键词的分区。
步骤S202,针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中。
对于每一个关键词,根据其哈希值,将该关键词对应的结果数据划分到该关键词所属的分区中。对于给定的关键词,就可以根据哈希值将这些关键词对应的结果数据划分到不同的分区中。例如,数据端拥有键值对数据<k1,v1>,<k2,v2>…<kn,vn>,在使用预设分区算法后,这些键值对数据就被划分到n个不同的分区中。
步骤S203,针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。
数据端会对每个分区都生成关于关键词和结果数据之间的多项式函数关系式,其中,多项式函数以关键词为自变量、以结果数据为因变量。一个例子中,若关键词为x,则对应的结果数据为F(x)。
可以理解的是,并不是每次在查询之前数据端都需要进行分区,在数据端的数据库构建时,或需要更改预设分区算法时,才执行上述分区过程。
在本申请实施例中,数据端通过预设分区算法分别计算每个关键词所属的分区,针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中,针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。数据端使用数据分区的预处理方式,可以有效地降低计算量上的开销。例如数据端在构建多项式函数关系式时,可以多分区同时构建,提高计算效率,当数据库发生更新,也只需要重新计算该分区的多项式函数关系式,无需根据所有的多项式函数,有效地降低了数据更新时的计算量。
参见图3,为本申请实施例提供的应用于数据端的匿踪查询方法的第三种流程示意图,基于图1a中的步骤S102和步骤S104分别作了细化,包括以下步骤:
步骤S301,利用所述公钥对所述预设分区数进行加密,得到第一数据。
第一数据为加密后的预设分区数,表示为Enc(n),是数据端利用公钥对预设分区数进行加密得到的。
步骤S302,通过预设第一四则运算,对所述第一数据及所述关键词密文进行运算,得到第一计算结果。
用k表示待查询关键词,查询端用公钥pk对待查询关键词k进行加密,关键词密文即为Enc(k),将关键词密文Enc(k)和公钥pk发送给数据端,数据端按照预设第一四则运算,对第一数据Enc(n)及关键词密文Enc(k)进行运算,得到第一计算结果。
步骤S303,通过预设第二四则运算,对所述第二计算结果、所述第一数据、所述关键词密文进行运算,得到分区编号密文;其中,所述预设第一四则运算及所述第二四则运算通过所述预设分区算法拆分得到。
数据端将第一计算结果Enc(k/n)发送给查询端后,查询端利用私钥对第一计算结果Enc(k/n)进行解密,并根据解密结果计算得到第二计算结果,记作d,将第二计算结果d发送给数据端。数据端按照预设第二四则运算,对第二计算结果d、第一数据Enc(n)、关键词密文Enc(k)进行运算,得到分区编号密文。
其中,预设第一四则运算及预设第二四则运算,均与预设分区算法有关,可以通过预设分区算法拆分得到。通过预设第一四则运算、预设第二四则运算及查询端的运算,可以还原预设分区算法的计算过程。
在本申请实施例中,数据端通过预设第一四则运算得到了第一计算结果后,与查询端之间互相传输中间计算结果,最后通过预设第二四则运算得到了分区编号密文,实现了对分区编号密文的获取。
下面以预设分区算法为除留余数法为例,进行举例说明。参见图4,为本申请实施例提供的应用于数据端的匿踪查询方法的第四种流程示意图,基于图2中的步骤S201、图3中的步骤S302和S303分别作了细化,包括以下步骤:
步骤S401,针对每一个关键词,以所述预设分区数作为除数,通过除留余数法计算该关键词的余数;其中,该关键词的余数所对应的分区为该关键词所示的分区,分区与余数一一对应;
除留余数法是一种哈希算法,将关键词的哈希值作为被除数,将预设分区数作为除数,进行除法运算,得到该关键词的余数。一个例子中,在预设分区算法为除留余数法的情况下,预设分区算法可以表示为g(x)=k’mod n,其中k’表示关键词,n为预设分区数,可以得出k’-d*n=p,余数p就是关键词k’所对应的分区编号。
步骤S402,对所述关键词密文及所述第一数据进行除法运算,得到所述第一计算结果;
数据端对第一数据Enc(n)及关键词密文Enc(k)进行除法运算,Enc(k)/Enc(n)=Enc(k/n),即得到第一计算结果Enc(k/n)。
步骤S403,对所述第一数据及所述第二计算结果进行乘法运算,得到第二数据;
第一数据Enc(n)与第二计算结果d相乘,即得到第二数据Enc(n)*d,也可以为Enc(d*n)。
步骤S404,对所述关键词密文及所述第二数据进行减法运算,得到分区编号密文。
关键词密文Enc(k)与第二数据Enc(d*n)相减,Enc(k)-Enc(d*n)=Enc(k)-Enc(n)*d=Enc(p),即得到分区编号密文Enc(p)。
数据端将分区编号密文Enc(p)发送给查询端,查询端利用私钥sk对Enc(p)进行解密Dec(Enc(p)),得到待查询关键词对应的分区编号p。
在本申请实施例中,数据端通过除留余数法计算每一个关键词的余数,关键词的余数就是该关键词所对应的分区编号;对关键词密文及第二数据进行运算,得到了分区编号密文,将分区编号密文发送给查询端,查询端利用私钥进行解密,实现了对待查询关键词对应的分区编号的获取。
参见图5,为本申请实施例提供的应用于数据端的匿踪查询方法的第五种流程示意图,基于图1中的步骤S106作了细化,包括以下步骤:
步骤S501,针对每一个分区,将所述关键词密文、所述公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文。
分区的多项式函数是根据分区中的数据预先计算得到的。一个例子中,数据端拥有键值对数据<k1,v1>,<k2,v2>…<kn,vn>,在使用分区算法g(x)后,键值对数据被划分到n个不同的分区。对其中第i个分区来说,假设该分区有m条数据,给定多项式函数F(x)在ki1,ki2……kim上的函数值为F(ki1)=vi1,F(ki2)=vi2…F(kim)=vim,i的取值范围为1、2……n,利用插值法计算出F(x)=a0+a1x+a2x2+…+amxm多项式。插值法指的是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。
针对每一个分区,将关键词密文、公钥代入到该分区的多项式函数中进行运算,得到该分区的查询结果密文。一个例子中,查询端将待查询关键词k用公钥pk加密后计算得到关键词密文Enc(k),且k∈{k1,k2,k3……kn},将Enc(k)和公钥pk代入每个分区的F(x)进行计算,并转化为密文的加和乘的运算,例如F(x)=a0+a1x,那么可以转化为F(k)=v=a0+a1k=Dec(Enc(a0)+Enc(a1k))=Dec(Enc(a0)+Enc(k)*a1),需要计算出Enc(a0)+Enc(k)*a1,记为查询结果密文Enc(v)。
每个分区进行同态运算,并将所得的查询结果密文Enc(v)和该分区的分区编号q组成键值对信息发送给查询端,例如<q1,Enc(v1)>,<q2,Enc(v2)>……<qn,Enc(vn)>。
查询端用之前已经计算出的分区编号p和qi进行比较,如果p=qi,那么用私钥sk解密出Enc(vi)得到查询结果vi,反之,如果无法匹配则该次查询无结果。
在本申请实施例中,针对每一个分区,数据端将关键词密文、公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文,将每个分区的查询结果密文和对应的分区编号组成键值对发送给查询端,查询端利用已知晓的待查询关键词所属分区的分区编号,找到对应分区的查询结果密文进行解密,实现了对待查询关键词对应的查询结果的获取。
参见图6,为本申请实施例提供的应用于查询端的匿踪查询方法的第一种流程示意图,包括以下步骤:
步骤S601,获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;利用所述公钥对所述待查询关键词进行加密,得到关键词密文;
具体分析过程同上述,此处不再进行赘述。
步骤S602,将所述关键词密文及所述公钥发送给数据端,以使所述数据端根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;
具体分析过程同上述,此处不再进行赘述。
步骤S603,获取所述数据端发送的所述第一计算结果,利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;
具体分析过程同上述,此处不再进行赘述。
步骤S604,将所述第二计算结果发送给所述数据端,以使所述数据端根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,所述数据端针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,并向所述查询端发送各所述分区的查询结果密文;
具体分析过程同上述,此处不再进行赘述。
步骤S605,获取所述数据端发送的所述分区编号密文,利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
具体分析过程同上述,此处不再进行赘述。
步骤S606,获取所述分区编号明文所对应的分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
具体分析过程同上述,此处不再进行赘述。
在本申请实施例中,将待查询关键词所属的分区的计算过程分为三部分,查询端与数据端均只负责一部分计算过程,从而查询端与数据端均无法掌握整个处理过程,二者均无法仅凭借自身掌握的数据,来反推出对端的处理过程。数据端需要在每个分区中均执行数据的查询,并返回每个分区的查询结果密文,查询端根据分区编号明文来找到对应分区的查询结果密文,并通过私钥解密得到查询结果明文,实现了数据的匿踪查询,并且数据端并不知道查询端实际解密的是哪个分区的数据,数据端很难反推出查询端的查询范围,提高了隐私信息检索的安全性;此外,查询端也无法掌握数据端的整体计算过程,因此无法得知数据端的分区规则,从而提高了隐私信息检索的安全性。
在一种可能的实施方式中,所述利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果,包括:
利用所述私钥对所述第一计算结果进行解密,得到第三数据;
查询端利用私钥对第一计算结果Enc(k/n)进行解密,得到第三数据Dec(Enc(k/n))。
通过预设数据算法,对所述第三数据进行运算,得到第二计算结果;其中,所述预设数据算法通过预设分区算法拆分得到,所述预设分区算法为所述数据端计算每个关键词所属的分区时所使用的算法。
查询端对第三数据Dec(Enc(k/n))进行运算,得到第二计算结果d,将第二计算结果d发送给数据端。
在本申请实施例中,查询端利用私钥对第一计算结果进行解密,得到第三数据;通过预设数据算法,对第三数据进行运算,得到第二计算结果,将第二计算结果发送给数据端,便于数据端进行分区编号密文的获取。
在一种可能的实施方式中,所述预设分区算法为除留余数法,所述通过预设数据算法,对所述第三数据进行运算,得到第二计算结果,包括:
对所述第三数据进行向下取整运算,得到第二计算结果。
查询端对第三数据Dec(Enc(k/n))进行向下取整运算floor(Dec(Enc(k/n))),得到第二计算结果d。
在本申请实施例中,查询端对第三数据进行向下取整运算,实现了对第二计算结果的获取。
参见图7a,为本申请实施例提供的匿踪查询系统的一种结构示意图,包括:
数据端710及查询端720;
所述查询端720,用于获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;利用所述公钥对所述待查询关键词进行加密,得到关键词密文;将关键词密文及公钥发送给数据端710;
所述数据端710,用于获取所述查询端720发送的所述关键词密文及所述公钥;根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;将第一计算结果发送给查询端720;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同;
所述查询端720,还用于获取所述数据端710发送的所述第一计算结果,利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;将第二计算结果发送给数据端710;
所述数据端710,还用于获取所述查询端720发送的第二计算结果,根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;向查询端720发送分区编号密文;
所述查询端720,还用于获取所述数据端710发送的所述分区编号密文,利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
所述数据端710,还用于针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;将各所述分区的查询结果密文发送给查询端720;
所述查询端720,还用于获取所述分区编号明文所对应的分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
具体的,数据端与查询端之间的交互示意图如图7b所示。
1.数据端利用分区算法g(x)根据关键词对数据进行分区,分区数为n,对每个分区分别构建关键词和查询结果的多项式函数关系式F1(x),F2(x)……Fn(x);
2.查询端生成全同态加密密钥对(pk,sk);
3.查询端将待查询关键词k使用公钥pk加密计算得到关键词密文Enc(k),向数据端发送关键词密文Enc(k)及公钥pk;
4.数据端通过Enc(k)、公钥pk和分区数n计算得到第一计算结果Enc(k/n),向查询端发送第一计算结果Enc(k/n);
5.查询端用私钥sk对第一计算结果进行解密后并计算,得到第二计算结果d,向数据端发送第二计算结果d;
6.数据端将第二计算结果d、Enc(k)、公钥pk和分区数n代入g(x)计算得到分区编号密文Enc(p),向查询端发送分区编号密文Enc(p);
7.查询端用私钥sk对分区编号密文Enc(p)进行解密并计算得出分区编号p;
8.数据端对每个分区的多项式函数关系式F(x)使用公钥pk和Enc(k)计算得到查询结果密文Enc(v1),Enc(v2)……Enc(vn),向查询端发送每个分区的查询结果密文和对应的分区编号<q1,Enc(v1)>,<q2,Enc(v2)>……<qn,Enc(vn)>;
9.查询端:当p=qi时,用私钥sk对Enc(vi)进行解密计算得到vi,vi就是待查询关键词k所对应的查询结果,反之则该次查询无结果。
在本申请实施例中,将待查询关键词所属的分区的计算过程分为三部分,查询端与数据端均只负责一部分计算过程,从而查询端与数据端均无法掌握整个处理过程,二者均无法仅凭借自身掌握的数据,来反推出对端的处理过程。数据端需要在每个分区中均执行数据的查询,并返回每个分区的查询结果密文,查询端根据分区编号明文来找到对应分区的查询结果密文,并通过私钥解密得到查询结果明文,实现了数据的匿踪查询,并且数据端并不知道查询端实际解密的是哪个分区的数据,数据端很难反推出查询端的查询范围,提高了隐私信息检索的安全性;此外,查询端也无法掌握数据端的整体计算过程,因此无法得知数据端的分区规则,从而提高了隐私信息检索的安全性。
在一种可能的实施方式中,所述数据端,还用于根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区;针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中;针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。
在本申请实施例中,数据端通过预设分区算法分别计算每个关键词所属的分区,针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中,针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。数据端使用数据分区的预处理方式,可以有效地降低计算量上的开销。例如数据端在构建多项式函数关系式时,可以多分区同时构建,提高计算效率,当数据库发生更新,也只需要重新计算该分区的多项式函数关系式,无需根据所有的多项式函数,有效地降低了数据更新时的计算量。
在一种可能的实施方式中,所述数据端,具体用于针对每一个关键词,以所述预设分区数作为除数,通过除留余数法计算该关键词的余数;其中,该关键词的余数所对应的分区为该关键词所示的分区,分区与余数一一对应。
在本申请实施例中,数据端通过除留余数法计算每一个关键词的余数,关键词的余数就是该关键词所对应的分区编号,实现了对关键词对应的分区编号的获取。
在一种可能的实施方式中,所述数据端,具体用于利用所述公钥对所述预设分区数进行加密,得到第一数据;通过预设第一四则运算,对所述第一数据及所述关键词密文进行除法运算,得到第一计算结果;
所述查询端,具体用于利用所述私钥对所述第一计算结果进行解密,得到第三数据;通过预设数据算法,对所述第三数据进行向下取整运算,得到第二计算结果;其中,所述预设数据算法通过预设分区算法拆分得到,所述预设分区算法为除留余数法;
所述数据端,还具体用于通过预设第二四则运算,对所述第一数据及所述第二计算结果进行乘法运算,得到第二数据;对所述关键词密文及所述第二数据进行减法运算,得到分区编号密文;其中,所述预设第一四则运算及所述第二四则运算通过所述预设分区算法拆分得到。
在本申请实施例中,数据端通过预设第一四则运算得到了第一计算结果后,与查询端之间互相传输中间计算结果,最后通过预设第二四则运算得到了分区编号密文,实现了对分区编号密文的获取。
在一种可能的实施方式中,所述数据端,具体用于针对每一个分区,将所述关键词密文、所述公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文。
在本申请实施例中,针对每一个分区,数据端将关键词密文、公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文,将每个分区的查询结果密文和对应的分区编号组成键值对发送给查询端,查询端利用已知晓的待查询关键词所属分区的分区编号,找到对应分区的查询结果密文进行解密,实现了对待查询关键词对应的查询结果的获取。
参见图8,为本申请实施例提供的应用于数据端的匿踪查询装置的一种结构示意图,包括:
第一获取模块810,用于获取查询端发送的关键词密文及公钥,其中,所述关键词密文是所述查询端利用所述公钥对待查询关键词加密后得到的;
第一计算结果获取模块820,用于根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同;
第一发送模块830,用于将所述第一计算结果发送给所述查询端,以使所述查询端利用私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;所述公钥及所述私钥属于所述查询端的同一密钥对;
第二获取模块840,用于获取所述查询端发送的第二计算结果;
分区编号密文获取模块850,用于根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;
第二发送模块860,用于向所述查询端发送所述分区编号密文,以使所述查询端利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
确定模块870,用于针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;
第三发送模块880,用于将各所述分区的查询结果密文发送给所述查询端,以使所述查询端按照所述分区编号明文获取到对应分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
在本申请实施例中,将待查询关键词所属的分区的计算过程分为三部分,查询端与数据端均只负责一部分计算过程,从而查询端与数据端均无法掌握整个处理过程,二者均无法仅凭借自身掌握的数据,来反推出对端的处理过程。数据端需要在每个分区中均执行数据的查询,并返回每个分区的查询结果密文,查询端根据分区编号明文来找到对应分区的查询结果密文,并通过私钥解密得到查询结果明文,实现了数据的匿踪查询,并且数据端并不知道查询端实际解密的是哪个分区的数据,数据端很难反推出查询端的查询范围,提高了隐私信息检索的安全性;此外,查询端也无法掌握数据端的整体计算过程,因此无法得知数据端的分区规则,从而提高了隐私信息检索的安全性。
在一种可能的实施方式中,所述装置还包括:
关键词所属分区计算模块,用于根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区;
划分模块,用于针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中;
多项式函数建立模块,用于针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。
在本申请实施例中,数据端通过预设分区算法分别计算每个关键词所属的分区,针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中,针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。数据端使用数据分区的预处理方式,可以有效地降低计算量上的开销。例如数据端在构建多项式函数关系式时,可以多分区同时构建,提高计算效率,当数据库发生更新,也只需要重新计算该分区的多项式函数关系式,无需根据所有的多项式函数,有效地降低了数据更新时的计算量。
在一种可能的实施方式中,所述第一计算结果获取模块820包括:
第一数据获取子模块,用于利用所述公钥对所述预设分区数进行加密,得到第一数据;
第一计算结果获取子模块,用于通过预设第一四则运算,对所述第一数据及所述关键词密文进行运算,得到第一计算结果;
所述分区编号密文获取模块850包括:
分区编号密文获取子模块,用于通过预设第二四则运算,对所述第二计算结果、所述第一数据、所述关键词密文进行运算,得到分区编号密文;其中,所述预设第一四则运算及所述第二四则运算通过所述预设分区算法拆分得到。
在本申请实施例中,数据端通过预设第一四则运算得到了第一计算结果后,与查询端之间互相传输中间计算结果,最后通过预设第二四则运算得到了分区编号密文,实现了对分区编号密文的获取。
在一种可能的实施方式中,所述预设分区算法为除留余数法,所述关键词所属分区计算模块包括:
余数计算子模块,用于针对每一个关键词,以所述预设分区数作为除数,通过除留余数法计算该关键词的余数;其中,该关键词的余数所对应的分区为该关键词所示的分区,分区与余数一一对应;
所述第一计算结果获取子模块具体用于:
对所述关键词密文及所述第一数据进行除法运算,得到所述第一计算结果;
所述分区编号密文获取子模块具体用于:
对所述第一数据及所述第二计算结果进行乘法运算,得到第二数据;
对所述关键词密文及所述第二数据进行减法运算,得到分区编号密文。
在本申请实施例中,数据端通过除留余数法计算每一个关键词的余数,关键词的余数就是该关键词所对应的分区编号;对关键词密文及第二数据进行运算,得到了分区编号密文,将分区编号密文发送给查询端,查询端利用私钥进行解密,实现了对待查询关键词对应的分区编号的获取。
在一种可能的实施方式中,所述确定模块870包括:
查询结果密文获取子模块,用于针对每一个分区,将所述关键词密文、所述公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文。
在本申请实施例中,针对每一个分区,数据端将关键词密文、公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文,将每个分区的查询结果密文和对应的分区编号组成键值对发送给查询端,查询端利用已知晓的待查询关键词所属分区的分区编号,找到对应分区的查询结果密文进行解密,实现了对待查询关键词对应的查询结果的获取。
参见图9,为本申请实施例提供的应用于查询端的匿踪查询装置的一种结构示意图,包括:
第一获取模块9010,用于获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;
关键词密文获取模块9020,用于利用所述公钥对所述待查询关键词进行加密,得到关键词密文;
第一发送模块9030,用于将所述关键词密文及所述公钥发送给数据端,以使所述数据端根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;
第二获取模块9040,用于获取所述数据端发送的所述第一计算结果;
第二计算结果获取模块9050,用于利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;
第二发送模块9060,用于将所述第二计算结果发送给所述数据端,以使所述数据端根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,所述数据端针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,并向所述查询端发送各所述分区的查询结果密文;
第三获取模块9070,用于获取所述数据端发送的所述分区编号密文;
分区编号明文获取模块9080,用于利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
第四获取模块9090,用于获取所述分区编号明文所对应的分区的查询结果密文;
查询结果明文获取模块9100,用于利用所述私钥解密得到查询结果明文。
在本申请实施例中,将待查询关键词所属的分区的计算过程分为三部分,查询端与数据端均只负责一部分计算过程,从而查询端与数据端均无法掌握整个处理过程,二者均无法仅凭借自身掌握的数据,来反推出对端的处理过程。数据端需要在每个分区中均执行数据的查询,并返回每个分区的查询结果密文,查询端根据分区编号明文来找到对应分区的查询结果密文,并通过私钥解密得到查询结果明文,实现了数据的匿踪查询,并且数据端并不知道查询端实际解密的是哪个分区的数据,数据端很难反推出查询端的查询范围,提高了隐私信息检索的安全性;此外,查询端也无法掌握数据端的整体计算过程,因此无法得知数据端的分区规则,从而提高了隐私信息检索的安全性。
在一种可能的实施方式中,所述第二计算结果获取模块9050包括:
第三数据获取子模块,用于利用所述私钥对所述第一计算结果进行解密,得到第三数据;
第二计算结果获取子模块,用于通过预设数据算法,对所述第三数据进行运算,得到第二计算结果;其中,所述预设数据算法通过预设分区算法拆分得到,所述预设分区算法为所述数据端计算每个关键词所属的分区时所使用的算法。
在本申请实施例中,查询端利用私钥对第一计算结果进行解密,得到第三数据;通过预设数据算法,对第三数据进行运算,得到第二计算结果,将第二计算结果发送给数据端,便于数据端进行分区编号密文的获取。
在一种可能的实施方式中,所述预设分区算法为除留余数法,所述第二计算结果获取子模块具体用于:
对所述第三数据进行向下取整运算,得到第二计算结果。
在本申请实施例中,查询端对第三数据进行向下取整运算,实现了对第二计算结果的获取。
本申请实施例还提供了一种电子设备,如图10所示,包括:
存储器1001,用于存放计算机程序;
处理器1002,用于执行存储器1001上所存放的程序时,实现如下步骤:
获取查询端发送的关键词密文及公钥,其中,所述关键词密文是所述查询端利用所述公钥对待查询关键词加密后得到的;
根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;将所述第一计算结果发送给所述查询端,以使所述查询端利用私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同,所述公钥及所述私钥属于所述查询端的同一密钥对;
获取所述查询端发送的第二计算结果,根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;
向所述查询端发送所述分区编号密文,以使所述查询端利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;
将各所述分区的查询结果密文发送给所述查询端,以使所述查询端按照所述分区编号明文获取到对应分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
本申请实施例还提供了一种电子设备,如图11所示,包括:
存储器1101,用于存放计算机程序;
处理器1102,用于执行存储器1101上所存放的程序时,实现如下步骤:
获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;利用所述公钥对所述待查询关键词进行加密,得到关键词密文;
将所述关键词密文及所述公钥发送给数据端,以使所述数据端根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;
获取所述数据端发送的所述第一计算结果,利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;
将所述第二计算结果发送给所述数据端,以使所述数据端根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,所述数据端针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,并向所述查询端发送各所述分区的查询结果密文;
获取所述数据端发送的所述分区编号密文,利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
获取所述分区编号明文所对应的分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
并且上述电子设备还可以包括通信总线和/或通信接口,处理器、通信接口、存储器通过通信总线完成相互间的通信。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一匿踪查询方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一匿踪查询方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、装置、电子设备、存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (15)
1.一种匿踪查询系统,其特征在于,所述系统包括:
数据端及查询端;
所述查询端,用于获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;利用所述公钥对所述待查询关键词进行加密,得到关键词密文;将所述关键词密文及所述公钥发送给所述数据端;
所述数据端,用于获取所述查询端发送的所述关键词密文及所述公钥;根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;将所述第一计算结果发送给所述查询端;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同;
所述查询端,还用于获取所述数据端发送的所述第一计算结果,利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;将所述第二计算结果发送给所述数据端;
所述数据端,还用于获取所述查询端发送的第二计算结果,根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;向所述查询端发送所述分区编号密文;
所述查询端,还用于获取所述数据端发送的所述分区编号密文,利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
所述数据端,还用于针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;将各所述分区的查询结果密文发送给所述查询端;
所述查询端,还用于获取所述分区编号明文所对应的分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
2.一种匿踪查询方法,其特征在于,应用于数据端,所述方法包括:
获取查询端发送的关键词密文及公钥,其中,所述关键词密文是所述查询端利用所述公钥对待查询关键词加密后得到的;
根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;将所述第一计算结果发送给所述查询端,以使所述查询端利用私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同,所述公钥及所述私钥属于所述查询端的同一密钥对;
获取所述查询端发送的第二计算结果,根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;
向所述查询端发送所述分区编号密文,以使所述查询端利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;
将各所述分区的查询结果密文发送给所述查询端,以使所述查询端按照所述分区编号明文获取到对应分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区;
针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中;
针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果,包括:
利用所述公钥对所述预设分区数进行加密,得到第一数据;
通过预设第一四则运算,对所述第一数据及所述关键词密文进行运算,得到第一计算结果;
所述根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,包括:
通过预设第二四则运算,对所述第二计算结果、所述第一数据、所述关键词密文进行运算,得到分区编号密文;其中,所述预设第一四则运算及所述第二四则运算通过所述预设分区算法拆分得到。
5.根据权利要求4所述的方法,其特征在于,所述预设分区算法为除留余数法,所述根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区,包括:
针对每一个关键词,以所述预设分区数作为除数,通过除留余数法计算该关键词的余数;其中,该关键词的余数所对应的分区为该关键词所示的分区,分区与余数一一对应;
所述通过预设第一四则运算,对所述第一数据及所述关键词密文进行运算,得到第一计算结果,包括:
对所述关键词密文及所述第一数据进行除法运算,得到所述第一计算结果;
所述通过预设第二四则运算,对所述第二计算结果、所述第一数据、所述关键词密文进行运算,得到分区编号密文,包括:
对所述第一数据及所述第二计算结果进行乘法运算,得到第二数据;
对所述关键词密文及所述第二数据进行减法运算,得到分区编号密文。
6.根据权利要求3所述的方法,其特征在于,所述针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,包括:
针对每一个分区,将所述关键词密文、所述公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文。
7.一种匿踪查询方法,其特征在于,应用于查询端,所述方法包括:
获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;利用所述公钥对所述待查询关键词进行加密,得到关键词密文;
将所述关键词密文及所述公钥发送给数据端,以使所述数据端根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;
获取所述数据端发送的所述第一计算结果,利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;
将所述第二计算结果发送给所述数据端,以使所述数据端根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,所述数据端针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,并向所述查询端发送各所述分区的查询结果密文;
获取所述数据端发送的所述分区编号密文,利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
获取所述分区编号明文所对应的分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
8.根据权利要求7所述的方法,其特征在于,所述利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果,包括:
利用所述私钥对所述第一计算结果进行解密,得到第三数据;
通过预设数据算法,对所述第三数据进行运算,得到第二计算结果;其中,所述预设数据算法通过预设分区算法拆分得到,所述预设分区算法为所述数据端计算每个关键词所属的分区时所使用的算法。
9.根据权利要求8所述的方法,其特征在于,所述预设分区算法为除留余数法,所述通过预设数据算法,对所述第三数据进行运算,得到第二计算结果,包括:
对所述第三数据进行向下取整运算,得到第二计算结果。
10.一种匿踪查询装置,其特征在于,应用于数据端,所述装置包括:
第一获取模块,用于获取查询端发送的关键词密文及公钥,其中,所述关键词密文是所述查询端利用所述公钥对待查询关键词加密后得到的;
第一计算结果获取模块,用于根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;其中,所述数据端的数据库划分为多个分区,各所述分区中存储的数据不同;
第一发送模块,用于将所述第一计算结果发送给所述查询端,以使所述查询端利用私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;所述公钥及所述私钥属于所述查询端的同一密钥对;
第二获取模块,用于获取所述查询端发送的第二计算结果;
分区编号密文获取模块,用于根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文;
第二发送模块,用于向所述查询端发送所述分区编号密文,以使所述查询端利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
确定模块,用于针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文;
第三发送模块,用于将各所述分区的查询结果密文发送给所述查询端,以使所述查询端按照所述分区编号明文获取到对应分区的查询结果密文,并利用所述私钥解密得到查询结果明文。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
关键词所属分区计算模块,用于根据所述预设分区数,通过预设分区算法分别计算每个关键词所属的分区;
划分模块,用于针对每一个关键词,将该关键词的结果数据划分到该关键词所属的分区中;
多项式函数建立模块,用于针对每一个分区,建立该分区中的以关键词为自变量、以结果数据为因变量的多项式函数;
所述第一计算结果获取模块包括:
第一数据获取子模块,用于利用所述公钥对所述预设分区数进行加密,得到第一数据;
第一计算结果获取子模块,用于通过预设第一四则运算,对所述第一数据及所述关键词密文进行运算,得到第一计算结果;
所述分区编号密文获取模块包括:
分区编号密文获取子模块,用于通过预设第二四则运算,对所述第二计算结果、所述第一数据、所述关键词密文进行运算,得到分区编号密文;其中,所述预设第一四则运算及所述第二四则运算通过所述预设分区算法拆分得到;
所述预设分区算法为除留余数法,所述关键词所属分区计算模块包括:
余数计算子模块,用于针对每一个关键词,以所述预设分区数作为除数,通过除留余数法计算该关键词的余数;其中,该关键词的余数所对应的分区为该关键词所示的分区,分区与余数一一对应;
所述第一计算结果获取子模块具体用于:
对所述关键词密文及所述第一数据进行除法运算,得到所述第一计算结果;
所述分区编号密文获取子模块具体用于:
对所述第一数据及所述第二计算结果进行乘法运算,得到第二数据;
对所述关键词密文及所述第二数据进行减法运算,得到分区编号密文;
所述确定模块包括:
查询结果密文获取子模块,用于针对每一个分区,将所述关键词密文、所述公钥、该分区的多项式函数进行同态运算,得到该分区的查询结果密文。
12.一种匿踪查询装置,其特征在于,应用于查询端,所述装置包括:
第一获取模块,用于获取密钥对及待查询关键词,所述密钥对包括公钥及私钥;
关键词密文获取模块,用于利用所述公钥对所述待查询关键词进行加密,得到关键词密文;
第一发送模块,用于将所述关键词密文及所述公钥发送给数据端,以使所述数据端根据所述关键词密文、所述公钥及预设分区数,计算得到第一计算结果;
第二获取模块,用于获取所述数据端发送的所述第一计算结果;
第二计算结果获取模块,用于利用所述私钥对所述第一计算结果进行解密,并根据解密结果计算得到第二计算结果;
第二发送模块,用于将所述第二计算结果发送给所述数据端,以使所述数据端根据所述第二计算结果、所述关键词密文、所述公钥及所述预设分区数,计算得到分区编号密文,所述数据端针对每一个分区,根据所述公钥及所述关键词密文,确定该分区的查询结果密文,并向所述查询端发送各所述分区的查询结果密文;
第三获取模块,用于获取所述数据端发送的所述分区编号密文;
分区编号明文获取模块,用于利用所述私钥对所述分区编号密文进行解密,得到分区编号明文;
第四获取模块,用于获取所述分区编号明文所对应的分区的查询结果密文;
查询结果明文获取模块,用于利用所述私钥解密得到查询结果明文。
13.根据权利要求12所述的装置,其特征在于,所述第二计算结果获取模块包括:
第三数据获取子模块,用于利用所述私钥对所述第一计算结果进行解密,得到第三数据;
第二计算结果获取子模块,用于通过预设数据算法,对所述第三数据进行运算,得到第二计算结果;其中,所述预设数据算法通过预设分区算法拆分得到,所述预设分区算法为所述数据端计算每个关键词所属的分区时所使用的算法;
所述预设分区算法为除留余数法,所述第二计算结果获取子模块具体用于:对所述第三数据进行向下取整运算,得到第二计算结果。
14.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求2-9中任一所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求2-9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211687531.3A CN115905710A (zh) | 2022-12-27 | 2022-12-27 | 一种匿踪查询系统、方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211687531.3A CN115905710A (zh) | 2022-12-27 | 2022-12-27 | 一种匿踪查询系统、方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905710A true CN115905710A (zh) | 2023-04-04 |
Family
ID=86493856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211687531.3A Pending CN115905710A (zh) | 2022-12-27 | 2022-12-27 | 一种匿踪查询系统、方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905710A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116257887A (zh) * | 2023-05-16 | 2023-06-13 | 建信金融科技有限责任公司 | 数据查询方法、装置、系统、设备及存储介质 |
CN116303551A (zh) * | 2023-05-16 | 2023-06-23 | 北京信安世纪科技股份有限公司 | 隐匿查询方法及设备 |
CN117077209A (zh) * | 2023-10-16 | 2023-11-17 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
CN117235802A (zh) * | 2023-11-13 | 2023-12-15 | 翼方健数(北京)信息科技有限公司 | 一种基于隐私计算的条件匿踪查询方法、系统和介质 |
CN117521152A (zh) * | 2024-01-05 | 2024-02-06 | 同盾科技有限公司 | 数据更新方法、匿踪查询方法、电子设备及介质 |
-
2022
- 2022-12-27 CN CN202211687531.3A patent/CN115905710A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116257887A (zh) * | 2023-05-16 | 2023-06-13 | 建信金融科技有限责任公司 | 数据查询方法、装置、系统、设备及存储介质 |
CN116303551A (zh) * | 2023-05-16 | 2023-06-23 | 北京信安世纪科技股份有限公司 | 隐匿查询方法及设备 |
CN116257887B (zh) * | 2023-05-16 | 2023-08-22 | 建信金融科技有限责任公司 | 数据查询方法、装置、系统、设备及存储介质 |
CN117077209A (zh) * | 2023-10-16 | 2023-11-17 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
CN117077209B (zh) * | 2023-10-16 | 2024-02-23 | 云阵(杭州)互联网技术有限公司 | 大规模数据匿踪查询方法 |
CN117235802A (zh) * | 2023-11-13 | 2023-12-15 | 翼方健数(北京)信息科技有限公司 | 一种基于隐私计算的条件匿踪查询方法、系统和介质 |
CN117235802B (zh) * | 2023-11-13 | 2024-01-26 | 翼方健数(北京)信息科技有限公司 | 一种基于隐私计算的条件匿踪查询方法、系统和介质 |
CN117521152A (zh) * | 2024-01-05 | 2024-02-06 | 同盾科技有限公司 | 数据更新方法、匿踪查询方法、电子设备及介质 |
CN117521152B (zh) * | 2024-01-05 | 2024-05-07 | 同盾科技有限公司 | 数据更新方法、匿踪查询方法、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768607B (zh) | 一种基于区块链的投票方法、装置、设备及介质 | |
Cui et al. | Efficient and expressive keyword search over encrypted data in cloud | |
CN115905710A (zh) | 一种匿踪查询系统、方法、装置、电子设备及存储介质 | |
Liu et al. | An efficient privacy-preserving outsourced calculation toolkit with multiple keys | |
CN108989287B (zh) | 加密方法、装置、终端设备及存储介质 | |
Liu et al. | An efficient privacy-preserving outsourced computation over public data | |
CN107154845B (zh) | 一种基于属性的bgn型密文解密外包方案 | |
Baum et al. | Better preprocessing for secure multiparty computation | |
CN113904808B (zh) | 一种私钥分发、解密方法、装置、设备及介质 | |
CN111555880A (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
CN115408435A (zh) | 一种数据查询方法及装置 | |
CN114443718A (zh) | 一种数据查询方法及系统 | |
Holz et al. | Linear-complexity private function evaluation is practical | |
CN112100144A (zh) | 区块链文件共享方法、装置、存储介质及电子设备 | |
CN112398646B (zh) | 理想格上具有短公共参数的身份基加密方法及系统 | |
Dhumal et al. | Confidentiality-conserving multi-keyword ranked search above encrypted cloud data | |
CN114900442B (zh) | 用于对业务数据进行预测的方法及其相关产品 | |
CN114499822B (zh) | 一种多源数据的高效外包聚合及指定获取方法 | |
Li et al. | Secure and privacy‐preserving pattern matching in outsourced computing | |
Schneider | Lean and fast secure multi-party computation: Minimizing communication and local computation using a helper | |
Lizama-Perez | Non-invertible key exchange protocol | |
Elkhiyaoui et al. | Privacy preserving delegated word search in the cloud | |
Zhang et al. | Conditional Proxy Re-Encryption-Based Key Sharing Mechanism for Clustered Federated Learning | |
Kanagamani et al. | Zero knowledge based data deduplication using in-line Block Matching protocolfor secure cloud storage | |
Pareek et al. | Extended hierarchical key assignment scheme (E-HKAS): how to efficiently enforce explicit policy exceptions in dynamic hierarchies |
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 |