CN116956354B - 数据查询方法、装置、数据源设备、查询方设备及系统 - Google Patents
数据查询方法、装置、数据源设备、查询方设备及系统 Download PDFInfo
- Publication number
- CN116956354B CN116956354B CN202311219559.9A CN202311219559A CN116956354B CN 116956354 B CN116956354 B CN 116956354B CN 202311219559 A CN202311219559 A CN 202311219559A CN 116956354 B CN116956354 B CN 116956354B
- Authority
- CN
- China
- Prior art keywords
- data
- vector
- queried
- barrel
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 121
- 239000013598 vector Substances 0.000 claims abstract description 517
- 238000012545 processing Methods 0.000 claims description 23
- 238000000926 separation method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 34
- 238000004891 communication Methods 0.000 abstract description 19
- 230000008569 process Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
- G06F2211/008—Public Key, Asymmetric Key, Asymmetric Encryption
-
- 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)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据查询方法、装置、数据源设备、查询方设备及系统,其中,数据源设备侧的方法包括:接收查询方设备发送的数据查询加密向量,数据查询加密向量为查询方设备基于预设的分桶策略对待查询向量的标识进行同态加密所生成的向量;根据数据查询加密向量,生成目标随机数向量;根据目标随机数向量以及待查询数据所在桶的密钥向量,得到查询结果向量,查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥;向查询方设备发送查询结果向量和桶加密数据。本申请能够降低通信和计算复杂度较低且安全性高,从而能够适应具有大规模数据查询需求的金融领域。
Description
技术领域
本申请涉及大数据技术领域,具体而言,涉及一种数据查询方法、装置、数据源设备、查询方设备及系统。
背景技术
随着数据量以及数据价值的不断增长,尤其是在金融领域中,用户对数据查询过程中的数据安全要求越来越高,在不公开数据查询内容的同时也需要得到正确的查询结果。
现有的数据查询方式主要包括两大类,第一类是通过不经意传输(ObliviousTransfer,OT)或基于位置信息的隐私信息检索协议(Private Information Retrieval,PIR),查询方与被查询方通过多轮交互获取查询结果。第二类是基于多项式插值直接将数据编码成随机多项式,再通过计算插值的方式恢复出待查数据。
但是,现有的数据查询方式存在通信复杂度高、查询性能低下、计算复杂度高等问题,难以适用于具有大规模数据查询需求的金融领域中。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种数据查询方法、装置、数据源设备、查询方设备及系统,以解决现有技术中数据查询方式不适用具有大规模数据查询需求的金融领域的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种数据查询方法,应用于数据源设备,所述方法包括:
接收查询方设备发送的数据查询加密向量,所述数据查询加密向量为查询方设备基于预设的分桶策略进行同态加密所生成的向量;
根据所述数据查询加密向量,生成目标随机数向量;
根据所述目标随机数向量以及所述待查询数据所在桶的密钥向量,得到所述查询结果向量,所述查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥;
向所述查询方设备发送所述查询结果向量以及桶加密数据,其中,所述桶加密数据包括所述待查询数据所在桶中的各数据的加密后数据,所述桶加密数据通过对所述待查询数据所在桶中的各数据进行对称加密得到。
作为一种可能的实现方式,所述根据所述数据查询加密向量,生成目标随机数向量,包括:
根据所述数据查询加密向量以及预设随机数向量,得到所述目标随机数向量,其中,所述数据查询加密向量的维度为所述待查询数据所在桶中的数据的数量,且,所述数据查询加密向量中各位置上的数据均为所述待查询数据的标识的加密后数据;
所述目标随机数向量中所述待查询数据对应的位置上的数据值为零,且,所述待查询数据对应的位置之外的各位置上的数据值均不为零。
作为一种可能的实现方式,所述根据所述数据查询加密向量以及预设随机数向量,得到所述目标随机数向量,包括:
将所述数据查询加密向量与所述待查询数据所在桶的标识向量相减,得到中间向量,其中,所述标识向量中各位置的数据值分别为所述待查询数据所在桶中各数据的标识的加密后数据;
根据所述中间向量以及所述预设随机数向量,得到所述目标随机数向量。
作为一种可能的实现方式,所述根据所述中间向量以及所述预设随机数向量,得到所述目标随机数向量,包括:
将所述中间向量与所述预设随机数向量相乘,得到待选向量,所述预设随机数向量的维度与所述中间向量的维度相同;
若所述待选向量中数据值为零的位置的数量为一个且数据值为零的位置为所述待查询数据对应的位置,则将所述待选向量作为所述目标随机数向量,否则,重新执行所述生成随机数向量的步骤,循环执行,直至得到的待选向量中数据值为零的位置的数量为一个且数据值为零的位置为所述待查询数据对应的位置。
作为一种可能的实现方式,所述根据所述目标随机数向量以及所述待查询数据所在桶的密钥向量,得到所述查询结果向量,包括:
将所述目标随机数向量与所述待查询数据所在桶的密钥向量相加,得到解密向量,其中,所述待查询数据所在桶的密钥向量中各位置的数据值分别为所述待查询数据所在桶中对应位置的数据的对称密钥;
将所述解密向量作为所述查询结果向量,其中,所述解密向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的加密密钥
作为一种可能的实现方式,所述根据所述数据查询加密向量,生成目标随机数向量之前,还包括:
根据所述分桶策略生成多个桶,各桶中分别包括至少一个数据,各数据按照预设的顺序排列;
根据桶中各数据的顺序以及各数据的标识,生成所述桶的标识向量;
根据桶中各数据的顺序以及各数据的数据值进行加密处理,得到所述桶的桶加密数据;
根据桶中各数据的顺序以及桶中的数据数量,生成所述桶的密钥向量。
作为一种可能的实现方式,所述根据桶中各数据的顺序以及各数据的标识,生成所述桶的标识向量,包括:
获取所述查询方设备发送的同态加密公钥;
根据桶中各数据的顺序,依次使用所述同态加密公钥对各数据的标识进行加密,得到所述桶的标识向量。
作为一种可能的实现方式,所述根据桶中各数据的顺序以及桶中的数据数量,生成所述桶的密钥向量,包括:
根据同中各数据的顺序,依次随机生成桶中各数据对应的对称密钥,得到所述桶的密钥向量。
第二方面,本申请实施例提供了一种数据查询方法,应用于查询方设备,所述方法包括:
基于数据源设备发送的分桶策略,对待查询数据进行同态加密,得到数据查询加密向量;
向数据源设备发送所述数据查询加密向量;
接收所述数据源设备发送的查询结果向量以及桶加密数据,其中,所述查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥,所述桶加密数据包括所述待查询数据所在桶中的各数据的加密后数据,所述桶加密数据通过对所述待查询数据所在桶中的各数据进行对称加密得到;
根据所述查询结果向量对所述桶加密数据进行解密,得到所述待查询数据。
作为一种可能的实现方式,所述根据所述查询结果向量对所述桶加密数据进行解密,得到所述待查询数据,包括:
基于生成所述数据查询加密向量时所使用的同态公钥所对应的同态私钥对所述查询结果向量进行解密,得到解密后向量;
基于所述解密后向量对所述桶加密数据进行解密,得到所述待查询数据。
作为一种可能的实现方式,所述向数据源设备发送所述数据查询加密向量之前,还包括:
根据所述数据源设备发送的所述分桶策略,确定所述待查询数据所在桶的数据的数量;
基于所述同态公钥对所述待查询数据的标识进行加密,得到所述待查询数据的标识的加密后数据;
生成所述数据查询加密向量。
第三方面,本申请实施例提供了一种数据查询装置,应用于数据源设备,所述装置包括:
第一接收模块,用于接收查询方设备发送的数据查询加密向量,所述数据查询加密向量为查询方设备基于预设的分桶策略进行同态加密所生成的向量;
生成模块,用于根据所述数据查询加密向量,生成目标随机数向量;
处理模块,用于根据所述目标随机数向量以及所述待查询数据所在桶的密钥向量,得到所述查询结果向量,所述查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥;
第一发送模块,用于向所述查询方设备发送所述查询结果向量以及桶加密数据,其中,所述桶加密数据包括所述待查询数据所在桶中的各数据的加密后数据,所述桶加密数据通过对所述待查询数据所在桶中的各数据进行对称加密得到。
作为一种可能的实现方式,所述生成模块具体用于:
根据所述数据查询加密向量以及预设随机数向量,得到所述目标随机数向量,其中,所述数据查询加密向量的维度为所述待查询数据所在桶中的数据的数量,且,所述数据查询加密向量中各位置上的数据均为所述待查询数据的标识的加密后数据;
所述目标随机数向量中所述待查询数据对应的位置上的数据值为零,且,所述待查询数据对应的位置之外的各位置上的数据值均不为零。
作为一种可能的实现方式,所述生成模块具体用于:
将所述数据查询加密向量与所述待查询数据所在桶的标识向量相减,得到中间向量,其中,所述标识向量中各位置的数据值分别为所述待查询数据所在桶中各数据的标识的加密后数据;
根据所述中间向量以及所述预设随机数向量,得到所述目标随机数向量。
作为一种可能的实现方式,所述生成模块具体用于:
将所述中间向量与所述预设随机数向量相乘,得到待选向量,所述预设随机数向量的维度与所述中间向量的维度相同;
若所述待选向量中数据值为零的位置的数量为一个且数据值为零的位置为所述待查询数据对应的位置,则将所述待选向量作为所述目标随机数向量,否则,重新执行所述生成随机数向量的步骤,循环执行,直至得到的待选向量中数据值为零的位置的数量为一个且数据值为零的位置为所述待查询数据对应的位置。
作为一种可能的实现方式,所述处理模块具体用于:
将所述目标随机数向量与所述待查询数据所在桶的密钥向量相加,得到解密向量,其中,所述待查询数据所在桶的密钥向量中各位置的数据值分别为所述待查询数据所在桶中对应位置的数据的对称密钥;
将所述解密向量作为所述查询结果向量,其中,所述解密向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的加密密钥。
作为一种可能的实现方式,所述生成模块还用于:
根据所述分桶策略生成多个桶,各桶中分别包括至少一个数据,各数据按照预设的顺序排列;
根据桶中各数据的顺序以及各数据的标识,生成所述桶的标识向量;
根据桶中各数据的顺序以及各数据的数据值进行加密 处理,得到所述桶的桶加密数据;
根据桶中各数据的顺序以及桶中的数据数量,生成所述桶的密钥向量。
作为一种可能的实现方式,所述生成模块还用于:
获取所述查询方设备发送的同态加密公钥;
根据桶中各数据的顺序,依次使用所述同态加密公钥对各数据的标识进行加密,得到所述桶的标识向量。
作为一种可能的实现方式,所述生成模块还用于:
根据桶中各数据的顺序,依次随机生成桶中各数据对应的对称密钥,得到所述桶的密钥向量。
第四方面,本申请实施例提供了一种数据查询装置,应用于查询方设备,所述装置包括:
加密模块,用于基于数据源设备发送的分桶策略,对待查询数据进行同态加密,得到数据查询加密向量;
第二发送模块,用于向数据源设备发送所述数据查询加密向量;
第二接收模块,用于接收所述数据源设备发送的查询结果向量以及桶加密数据,其中,所述查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥,所述桶加密数据包括所述待查询数据所在桶中的各数据的加密后数据,所述桶加密数据通过对所述待查询数据所在桶中的各数据进行对称加密得到;
解密模块,用于根据所述查询结果向量对所述桶加密数据进行解密,得到所述待查询数据。
作为一种可能的实现方式,所述解密模块具体用于:
基于生成所述数据查询加密向量时所使用的同态公钥所对应的同态私钥对所述解密信息加密向量进行解密,得到解密后向量;
基于所述解密后向量对所述桶加密数据进行解密,得到所述待查询数据。
作为一种可能的实现方式,所述解密模块还用于:
根据所述数据源设备发送的所述分桶策略,确定所述待查询数据所在桶的数据的数量;
基于所述同态公钥对所述待查询数据的标识进行加密,得到所述待查询数据的标识的加密后数据;
生成所述数据查询加密向量。
第五方面,本申请实施例提供了一种数据源设备,包括处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当数据源设备运行时,所述处理器执行所述机器可读指令,以执行如上第一方面任一项所述的数据查询方法的步骤。
第六方面,本申请实施例提供了一种查询方设备,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当查询方设备运行时,所述处理器执行所述机器可读指令,以执行如上第二方面任一项所述的数据查询方法的步骤。
第七方面,本申请实施例提供了一种数据查询系统,包括第五方面所述的数据源设备以及至少一个第六方面所述的查询方设备。
第八方面,本申请实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面或第二方面任一项所述数据查询方法的步骤。
根据本申请实施例的数据查询方法、装置、数据源设备、查询方设备及系统,查询方设备基于数据源设备设定的分桶规则对待查询数据进行同态加密得到数据查询加密向量,数据源设备基于该数据查询加密向量首先生成目标随机数向量,并基于目标随机数向量生成数据查询加密向量对应的查询结果向量,该查询结果向量中,仅待查询数据对应位置上的数据为待查询数据对应的对称密钥,其余位置上的数据值均为错误的密钥。查询方设备接收到查询结果向量之后,利用该查询结果向量以及待查询数据所在桶中各数据的对称加密数据进行解密,从而可以得到正确的待查询数据。在上述过程中,数据源设备与查询方设备仅通过一次在线交互即可完成数据查询,无需进行多轮通信,且在数据查询过程中只基于待查询数据对应的标识,也即支持关键词直接查询,无需额外获取待查询数据的位置信息,以此也保护了待查询数据的隐私安全。此外,查询方设备对待查询数据的标识进行了同态加密并生成数据查询加密向量,数据源设备相应基于该数据查询加密向量进行向量计算即可得到查询结果向量,在此过程中无需对数据源上存储的原始数据进行编码、查询等处理,因此,使得数据源设备的计算复杂度从指数级降低为多项式级。此外,数据源设备预先基于分桶策略对数据进行了分桶操作,返回给查询方设备的也是待查询数据所在桶的桶加密数据,并且在利用解密信息进行解密时,解密过程中的复杂度取决于桶中的数据量,相比直接从大量原始数据中进行查找计算以及解密处理,计算复杂度和时间复杂度也明显降低。基于此,本申请支持关键词查询,不泄露待查询数据的位置信息,且只需一次通信、计算复杂度较低,能够适用于具有大规模数据查询需求的金融领域。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种数据查询系统的架构示意图;
图2示出了本申请实施例提供的一种数据查询方法的流程示意图;
图3示出了本申请实施例提供的一种目标随机数向量确定方法的流程示意图;
图4示出了本申请实施例提供的另一种目标随机数向量确定方法的流程示意图;
图5出了本申请实施例提供的一种查询结果向量获取方法的流程示意图;
图6示出了本申请实施例提供的一种数据解密方法的流程示意图;
图7示出了本申请实施例提供的一种数据查询加密向量生成方法的流程示意图;
图8示出了本申请实施例提供的一种密钥向量确定方法的流程示意图;
图9示出了本申请实施例提供的一种标识向量获取方法的流程示意图;
图10示出了本申请实施例提供的另一种数据查询方法的流程示意图;
图11示出了本申请实施例提供的一种数据查询装置的结构示意图;
图12示出了本申请实施例提供的另一种数据查询装置的结构示意图;
图13示出了本申请实施例提供的一种数据源设备和查询方设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。 应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。 此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“具有大规模数据查询需求的金融领域”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕数据查询方法进行描述,但是应该理解,这仅是一个示例性实施例。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
为满足查询方所提出的不公开数据查询内容的同时又能得到正确的查询结果的要求,现有技术中提出了两类数据查询方式。第一类是通过OT或PIR方式进行查询。第二类是基于多项式插值方式进行查询。
针对上述第一类查询方式,查询方与数据源通过多轮交互获取查询结果,查询方首先需要知道待查ID在数据源中的位置信息,而在很多应用场景下这一前提是难以实现的,需要对此类技术进行改进以实现直接基于ID完成查询。同时,由于此类技术往往需要多轮交互,从而为数据查询带来了较大的通信复杂度,影响数据查询性能。
针对上述第二类查询方式,直接将数据编码成随机多项式,再通过计算插值的方式恢复出待查询数据。其中,需要计算复杂的多项式插值运算,而这一运算具有相当高的计算复杂度,在金融领域等大规模数据场景下难以进行实际应用。
此外,上述两类查询方式都是直接采用对原始数据进行编码后执行查询协议的方式,对于大规模数据,比如参数量很高的大语言模型(Large Language Model,LLM),其计算以及存储复杂度会出现指数级增长,因此难以实现大规模数据的扩展。而考虑到未来金融大数据、大模型等应用场景的迫切需求,上述两大类数据查询方式并不适用。
为了解决上述问题,本申请实施例提供了一种数据查询方法,通过查询方设备对待查询数据的标识进行同态加密生成数据查询加密向量,并由数据源设备基于数据查询加密向量生成随机数向量并计算查询结果向量,从而实现一次交互即可完成数据查询,且在数据查询中无需获取待查询数据的位置信息,同时,使得数据源的计算复杂度从现有的指数级降低为多项式级,从而极大降低通信和计算复杂度,并且提升查询性能,能够适用于具有大规模数据查询需求的金融领域中。
在介绍本申请实施例的技术方案之前,首先对本申请实施例的数据查询系统进行说明。
图1是本申请实施例提供的一种数据查询系统的架构示意图。如图1所示,数据查询系统包括数据源设备和多个查询方设备,每个查询方设备与数据源设备之间的信息交互互不影响。示例性的,数据源可以为征信机构,查询方可以为银行,其中,作为征信机构的数据源中存储着多个查询方对应的查询数据。
作为一种示例,若银行向征信机构发起查询请求,查询高净值人群的征信情况,则由查询方设备向数据源设备发送查询请求,查询请求中包括数据查询信息,数据源设备在接收到查询方设备发送的查询请求时,基于数据查询信息查找相应的数据并返回给查询方。在此过程中,银行往往不希望自己客户的身份信息被征信机构知晓,在这种情况下,一方面需要保护查询方的查询内容,另一方面需要正确返回查询结果。
下面结合上述图1示出的数据查询系统中描述的内容,对本申请实施例提供的数据查询方法进行详细说明。
参照图2所示,为本申请实施例提供的一种数据查询方法的流程交互图,该流程交互图涉及查询方设备以及数据源设备。参照图2,数据交互流程包括:
S201、查询方设备基于数据源设备发送的分桶策略,对待查询数据的标识进行同态加密,得到数据查询加密向量。
可选的,查询方设备与数据源设备预先建立通信连接,在查询方具有查询需求时,例如需要从数据源中查询某些用户的征信信息,查询方设备利用数据源发送的分桶策略,对带查询数据进行同态加密,生成相应的数据查询加密向量,基于查询方设备与数据源设备之间的通信连接,将数据查询加密向量通过查询方设备与数据源设备之间的数据传输通道发送至数据源设备。
示例性地,由于数据源中存储着大量数据,为了节省数据查询的时间成本,数据源设备通常会采用分桶策略对数据进行分块存储。具体地,数据源设备基于分桶思想生成分桶策略,即利用一定数量的桶,采用预定的规则进行数据划分,例如采用取模方式进行数据划分。假设数据源中共存储有1000条查询数据,分桶策略为:采用取模方式进行数据划分,同时,设定100个桶。则在利用该分桶策略进行分桶时利用每条查询数据对应的标识与数值100进行取模操作,所得余数属于0-9之间的任一位整数,则可以选择将余数相同的数据存放在一个桶中,即将余数为0对应的查询数据存放在桶1中,将余数为1对应的查询数据存放在桶2中,以此类推,可以将1000条数据划分至100个桶中。
其中,分桶策略如何生成取决于数据源设备中数据存储量,分桶策略也不做具体限定,例如也可采用将各数据的标识按顺序排列,按照每个桶的存储量依次将各数据存放在桶中等方式进行分桶。
基于此,数据源设备确定分桶策略后,也会将分桶策略共享给查询方设备,查询方设备利用分桶策略确定数据查询加密向量并将数据查询加密向量发送给数据源设备,以便数据源设备进行下一数据查询操作。示例性的,继续以上述的分桶策略为取模方式进行分桶且桶数量为100为例,查询方设备基于该分桶策略,将待查询数据的标识与100取余,可以确定出待查询数据所在的桶。同时,数据源设备在向查询方设备发送上述分桶策略时,还可以将每个桶的数据的数量发送给查询方设备,从而使得查询方设备获知待查询数据所在桶的数据的数量。进而,查询方设备可以确定数据查询加密向量的维度。
需要注意的是,数据源设备对原始数据进行分桶操作的同时,也会利用查询方设备共享的同态加密公钥对各个桶中的数据的标识进行加密处理,以使桶中的数据与数据查询加密向量处于同一信息维度。
S202、查询方设备向数据源设备发送数据查询加密向量。
相应的,数据源设备接收到查询方设备发送的数据查询加密向量,数据查询加密向量为查询方设备基于数据源设备发送的预设的分桶策略对待查询数据的标识进行同态加密所生成的向量。
S203、数据源设备根据数据查询加密向量,生成目标随机数向量。
可选的,数据源设备基于与查询方设备之间的通信连接,接收查询方设备发送的数据查询加密向量。为了确保数据传输过程中的隐私安全,查询方设备生成同态加密公钥对数据查询加密向量中的数据进行加密,将作为密文的数据查询加密向量发送给数据源设备。另外,查询方设备也可以提前将同态加密公钥发送给数据源设备。对于每个查询方设备,该过程只需要执行一次。
可选的,查询方设备在构造数据查询加密向量时,对待查询数据的标识进行了同态加密,数据源设备接收数据查询加密向量后,根据数据查询加密向量的维度,生成对应数量的随机数。示例性的,若数据查询加密向量为n维,则对应生成n个随机数,将n个随机数顺序排列,以生成目标随机数向量。基于此,采用向量的处理方式能够降低数据源设备在进行数据处理过程中的计算复杂度。
S204、数据源设备根据目标随机数向量以及待查询数据所在桶的密钥向量,得到查询结果向量。
其中,上述查询结果向量中待查询数据对应位置上的数据值为待查询数据对应的对称密钥。
可选的,数据源设备根据待查询数据所在桶的数据量,生成对应数量的对称密钥,构造待查询数据所在桶的密钥向量。然后数据源设备利用桶的密钥向量对目标随机数向量进行向量处理,得到查询结果向量。示例性的,待查询数据所在桶的数据的数量为10条,对应每条数据生成对应的一个对称密钥,即得到10个对称密钥,并将该10个对称密钥按照对应数据的顺序依次排列,生成待查询数据所在桶的密钥向量。
基于此,数据源设备利用目标随机向量以及密钥向量进行向量运算,所得到的查询结果向量中只有待查询数据所对应的位置上的数据为待查询数据的正确的对称密钥,而查询结果向量中其余位置上的数据经过多次向量计算之后,成为错误的密钥。因此,当查询结果向量被发送至查询方设备后,只有待查询数据可以被准确地解密出来。从而实现数据源设备在不知晓查询方设备所要查询的待查询数据的位置信息,保护待查询数据的隐私信息的情况下,也能够得到正确的查询结果。
S205、数据源设备向查询方设备发送查询结果向量以及桶加密数据,其中,桶加密数据包括待查询数据所在桶中的各数据的加密后数据,桶加密数据通过对待查询数据所在桶中的各数据进行对称加密得到。
相应的,查询方设备接收到数据源设备发送的查询结果向量以及桶加密数据。
可选的,数据源设备基于与查询方设备之间的通信连接,通过数据传输通道向查询方设备发送查询结果向量以及桶加密数据。由于数据源设备执行计算操作的过程中,同时引入了同态加密技术和对称加密技术,所以在执行计算操作后,数据源设备仍不知道待查询数据的位置信息,而查询结果向量只是指示了待查询数据对应的加密密钥,因此在数据源设备向查询方设备返回查询结果向量的同时,也需要返回待查询数据所在桶中的各数据的加密后数据,以便查询方设备进行解密处理,获取待查询数据。
S206、查询方设备根据查询结果向量对桶加密数据进行解密,得到待查询数据。
作为一种可能的实现方式,查询方设备所接收到的查询结果向量和桶加密信息皆为加密后的密文信息,根据查询结果向量对桶加密数据进行解密处理后,才能确定待查询数据。其中,桶加密数据为数据源设备利用对称密钥进行加密后的对称密文数据。
示例性的,查询方设备根据查询结果向量对桶加密数据进行解密,得到的是待查询数据对应的加密密钥,具体地,加密密钥为对称密钥。然后利用对称密钥对桶加密数据,即对称密文数据进行对称解密测试,其中只有一个数据能解密成功,也即待查询数据对应位置的数据能够被成功解密。
由于是利用对称密钥对桶加密数据中的多个数据依次进行对称解密测试,示例性的,待查询数据所在桶的数据的数量为n,整个查询完成后,则对应的时间复杂度为O(n),所以相比现有查询方式中指数级的计算复杂度和时间复杂度,复杂度明显降低,解密测试的性能也非常快,不会影响数据查询过程中整体的解密效率。
本实施例中,查询方设备基于数据源设备设定的分桶策略对待查询数据进行同态加密得到数据查询加密向量,数据源设备基于该数据查询加密向量首先生成目标随机向量,并基于目标随机向量生成数据查询加密向量对应的查询结果向量,该查询结果向量中,仅待查询数据对应位置上的数据为待查询数据对应的对称密钥,其余位置上的数据值均为错误的密钥。查询方设备接收到查询结果向量之后,利用该查询结果向量以及待查询数据所在桶中各数据的对称加密数据进行解密,从而可以得到正确的待查询数据。在上述过程中,数据源设备与查询方设备仅通过一次在线交互即可完成数据查询,无需进行多轮通信,且在数据查询过程中只基于待查询数据对应的标识,也即支持关键词直接查询,无需额外获取待查询数据的位置信息,以此也保护了待查询数据的隐私安全。此外,查询方设备对待查询数据的标识进行了同态加密并生成数据查询加密向量,数据源设备相应基于该数据查询加密向量进行向量计算即可得到查询结果向量,在此过程中无需对数据源上存储的原始数据进行编码、查询等处理,因此,使得数据源设备的计算复杂度从指数级降低为多项式级。此外,数据源设备预先基于分桶策略对数据进行了分桶操作,返回给查询方设备的也是待查询数据所在桶的桶加密数据,并且在利用解密信息进行解密时,解密过程中的复杂度取决于桶中的数据量,相比直接从大量原始数据中进行查找计算以及解密处理,计算复杂度和时间复杂度也明显降低。基于此,本申请支持关键词查询,不泄露待查询数据的位置信息,且只需一次通信、计算复杂度较低,能够适用于具有大规模数据查询需求的金融领域。
可选的,查询方设备在基于数据源设备发送的分桶策略对待查询数据进行同态加密,生成数据查询加密向量时,选择目标位置的待查询数据的标识,例如选择q位置,数据查询加密向量例如为,若待查询数据所在桶中的数据的数量为n,则数据查询加密向量的维度为n,即数据查询加密向量由n个/>构成。其中,/>为待查询数据的标识的加密后数据,具体为进行同态加密所得到的加密后数据。
基于此,确保数据查询加密向量的维度为待查询数据所在桶中的数据的数量,以便于数据源设备执行后续的计算操作,降低数据查询过程中的计算复杂度。
作为一种可能的实现方式,上述步骤S203根据数据查询加密向量,生成目标随机数向量,包括:
根据数据查询加密向量以及预设随机数向量,得到目标随机数向量。
其中,数据查询加密向量的维度为待查询数据所在桶中的数据的数量,且,数据查询加密向量中各位置上的数据均为待查询数据的标识的加密后数据。目标随机数向量中待查询数据对应的位置上的数据值为零,且,待查询数据对应的位置之外的各位置上的数据值均不为零。
本实施例中,数据查询加密向量的维度为待查询数据所在桶中数据的数量,且数据查询加密向量中所有位置上的数据值均为待查询数据的标识的同态加密后的数据。在此基础上,通过对数据查询加密向量以及预设随机向量进行向量运算,能够得到上述目标随机数向量,在该目标随机数向量中,只有待查询数据对应的位置上的数值为零,而其余位置上的数值均不为零,从而使得数据源设备利用该目标随机向量进行后续的向量运算时可以得到准确的查询结果向量。
可选的,如图3所示,上述步骤根据数据查询加密向量以及预设随机数向量,得到目标随机数向量,具体包括如下步骤:
S301、将数据查询加密向量与待查询数据所在桶的标识向量相减,得到中间向量,其中,标识向量中各位置的数据值分别为待查询数据所在桶中各数据的标识的加密后数据。
示例性的,数据源设备利用数据查询加密向量和待查询数据所在桶的标识向量/>按照对应位置相减,得到中间向量,如下公式(1)所示:
其中,其它位置均不为0。
上述过程中,由于待查询数据所在桶的标识向量中只有待查询数据对应位置的数据与数据查询加密向量中的相同,按照对应位置相减得到的中间向量中待查询数据对应位置的为0。而待查询数据所在桶的标识向量中除待查询数据对应位置之外的其他位置的数据与数据查询加密向量中的均不相同,所以按位相减后中间向量中除为0以外,其他位置均不为0。
S302、根据中间向量以及预设随机数向量,得到目标随机数向量。
可选的,按位相减得到中间向量,然后根据64位环上的整数构造预设随机数向量,以对中间向量进行随机处理。示例性的,随机数向量例如为,其中,,/>可以取到0,但为了避免暴露待查询数据对应位置的对称密钥,所以限定/>不能取0。同样地,随机数向量的维度与中间向量的维度也相同,均为n维。
作为一种示例,如图4所示,上述步骤S302根据中间向量以及预设随机数向量,得到目标随机数向量,包括:
S401、将中间向量与预设随机数向量相乘,得到待选向量,随机数向量的维度与中间向量的维度相同。
示例性的,将按位相减得到的中间向量和根据64位环上的整数构造的预设随机数向量/>按照对应位置相乘得到待选向量,如下公式(2)所示:
其中,其它位置均不为0。
在上述处理过程中,由于在中间向量中,仅有待查询数据对应位置的为0,构造预设随机数向量与中间向量进行向量处理时,不论预设随机向量中待查询数据对应位置的随机数为何值,与相乘后对应位置的必定为0。而中间向量中除为0,其它位置均不为0,又限定预设随机数向量中的随机数r均不为0,所以按位相乘得到的待选向量中仅有为0,其他位置均不为0。
基于此,数据源设备无论对数据查询加密向量进行怎样的向量处理,仍然能够保证待查询数据对应的数据一直为0,从而能够降低数据源设备在进行数据处理过程中的计算复杂度。
S402、若待选向量中数据值为零的位置的数量为一个且数据值为零的位置为待查询数据对应的位置,则将待选向量作为目标加密向量,否则,重新执行生成随机数向量的步骤,循环执行,直至得到的待选向量中数据值为零的位置的数量为一个且数据值为零的位置为待查询数据对应的位置。
示例性的,数据源设备预先对待查询数据所在桶中的各个数据进行了对称加密,所以待选向量中各数据对应有对称密钥,若取0,位置p和待查询数据对应的位置q实际上并不相同,但正因/>取了0,/>和/>则都为0,从而会暴露额外的位置p对应的对称密钥。因此,若待选向量中数据值为零的位置的数量为一个且数据值为零的位置不是待查询数据对应的位置,则重新执行生成随机数向量的步骤,直至待选向量中/>不为0,确定得到目标加密向量。
基于此,数据源设备采用同态加密的处理方式,而又生成对应的对称密钥进行对称加密处理,如此是因为对称加密的性能开销远远小于同态加密,考虑到金融大模型场景下原始数据的维度较高,进行对称加密并用同态加密进行密钥查询,可以在保证安全性的前提下大幅度提升加解密效率。
作为一种可能的实现方式,如图5所示,上述步骤S204数据源设备根据目标随机数向量以及待查询数据所在桶的密钥向量,得到查询结果向量,包括:
S501、将目标随机数向量与待查询数据所在桶的密钥向量相加,得到解密向量。
示例性的,待查询数据所在桶的密钥向量是基于由数据源设备根据该桶中的数据量对应生成的对称密钥所得到的。也就是说,数据源设备根据待查询数据所在桶的数据量n生成随机的对称密钥,得到密钥向量,例如为。
示例性的,将按位相乘得到的目标随机数向量与待查询数据所在桶的密钥向量/>按照对应位置相加,得到解密向量,具体如下公式(3)所示:
其中,其它位置均不为0。
由于在目标随机数向量中,只有待查询数据对应的位置上的数值为零,而其余位置上的数值均不为零,因此,将目标随机向量与密钥向量相加所得到的解密向量中,只有待查询数据对应的位置上的数值仍然为待查询数据的对称密钥,而其余位置由于加上了不为零的数,因此相对于密钥向量中原有的对称密钥就发生了改变,不再是原有的对称密钥。因此,使得解密向量中仅待查询数据对应的位置上的密钥为正确的可以用于解密的对称密钥。
S502、将解密向量作为查询结果向量,其中,解密向量中待查询数据对应位置上的数据值为待查询数据对应的加密密钥。
示例性的,基于上述计算操作,解密向量,将解密向量/>作为待查询数据对应的解密信息,然后由数据源设备将解密信息和桶加密数据一起发送给查询方设备,以使查询方设备进行解密处理。
由此,在保证数据安全性的前提下,降低了数据计算的维度,数据源设备能够更快的获取相对应的解密信息,并发送给查询方设备,以实现高效的数据查询。
作为一种可能的实现方式,如图6所示,上述步骤S206查询方设备根据查询结果向量对桶加密数据进行解密,得到待查询数据,包括:
S601、基于生成数据查询加密向量时所使用的同态公钥所对应的同态私钥对查询结果向量进行解密,得到解密后向量。
作为一种示例,查询方设备同时生成了同态加密公钥pk和同态加密私钥sk,查询方设备在接收到数据源设备发送的查询结果向量以及桶加密数据后,利用同态加密私钥sk对查询结果向量进行解密。示例性的,利用同态加密私钥对查询结果向量
进行解密,所得到的解密后向量即指示待查询数据的标识对应的对称密钥/>。
在解密过程中,由于除待查询数据对应的位置外,其他位置解密得到的都为随机数,并不是完整的对称密钥,而只有待查询数据对应的位置解密后能够得到完整的对称密钥。
S602、基于解密后向量对桶加密数据进行解密,得到待查询数据。
作为一种示例,利用对称密钥对桶加密数据,即对称密文尝试进行对称解密测试,同样地,也只有一个密文数据能解密成功,即对称密文/>在对称解密后能够得到待查询数据/>,基于此,整个数据查询过程完成。
作为一种可能的实现方式,如图7所示,在上述步骤S203根据数据查询加密向量生成目标随机数向量之前,该方法还包括:
S701、根据数据源设备发送的分桶策略,确定待查询数据所在桶的数据的数量。
作为一种示例,分桶策略可以是对数据源设备中存储的所有原始数据的标识,根据分桶数量进行取模。示例性的,数据标识例如为身份证标识号(Identity document,ID),若分桶数量为N,利用标识ID与分桶数量N进行取模,确定各个标识ID对应的余数,将具有相同余数的数据存储在同一桶中,从而能够确定待查询数据所在桶的数据的数量。
S702、基于同态公钥对待查询数据的标识进行加密,得到待查询数据的标识的加密后数据。
作为一种示例,分桶后待查询数据所在桶中所有的数据标识ID为,对应桶中的待查询数据为/>,其中的下标是分桶后该桶中数据的重新编号,与原始数据无关。该桶的数据量和标识向量的各个位置都是公开的。然后,数据源设备利用查询方设备共享的同态加密公钥pk对待查询数据的标识进行加密,得到待查询数据的标识的加密后数据。
S703、生成数据查询加密向量,其中,数据查询加密向量的维度为待查询数据所在桶中的数据的数量,且,数据查询加密向量中各位置上的数据均为待查询数据的标识的加密后数据。
作为一种示例,利用同态加密算法(Brakerski-Fan-Vercauteren,BFV)生成数据查询加密向量。具体地,先根据待查询数据的标识生成查询向量,然后利用同态加密公钥pk进行加密,得到数据查询加密向量例如为/>,如下公式(4)所示:
其中,若待查询数据所在桶中的数据的数量为n,则数据查询加密向量的维度为n,数据查询加密向量中待查询数据的标识为利用同态加密公钥pk进行加密后的数据
由此,数据源设备提前对原始数据进行全量数据处理,将原始数据进行分桶存储,能够降低数据查询过程中的计算复杂度,且该过程为离线计算过程,不需要占用在线查询的时间,以此也能节省在线查询的时间成本。
作为一种可能的实现方式,如图8所示,在上述步骤S203根据数据查询加密向量,生成目标随机数向量之前,该方法还包括:
S801、根据分桶策略生成多个桶,各桶中分别包括至少一个数据,各数据按照预设的顺序排列。
作为一种示例,数据源设备根据存储的数据量决定生成的分桶策略,而分桶策略也决定了将数据源设备中存储的原始数据划分为几个桶。具体的分桶策略已在前文进行介绍,在此不再赘述。
需要说明的是,各桶的数据量可能相同也可能不同,但每个桶中至少包括一个数据。由于按照分桶策略对原始数据进行分桶后,每个桶的数据顺序与在原始数据中对应的顺序并不相同,所以可以按照预设的顺序,例如分桶顺序,将各数据顺序排列。
S802、根据桶中各数据的顺序以及各数据的标识,生成桶的标识向量。
可选的,如图9所示,上述步骤S802具体包括:
S901、获取查询方设备发送的同态加密公钥。
作为一种示例,查询方设备分别生成了同态加密公钥pk和同态加密私钥sk,并且只将同态加密公钥pk发送给数据源设备,同态加密私钥只有查询方设备自身知晓。也就是说,在数据源设备与查询方设备同步参数的过程中,查询方设备仅向数据源设备共享了同态加密公钥pk,数据源设备向查询方设备共享了分桶策略。
S902、根据桶中各数据的顺序,依次使用同态加密公钥对各数据的标识进行加密,得到桶的标识向量。
作为一种示例,桶中的待查询数据顺序排列为,以此使用同态加密公钥pk对各数据的标识ID进行加密,得到桶的标识向量/>。其中中的下标是分桶后该桶中数据的重新编号,与原始数据无关。
S803、根据桶中各数据的顺序以及各数据的数据值进行加密处理,得到桶的桶加密数据。
作为一种示例,桶中各数据顺序排列为,对其进行对称加密处理(Symmetric Encryption),得到对应的对称密文/>,即得到了桶的桶加密数据,具体如下公式(5)所示:
需要说明的是,此处的对称加密算法可以采用AES(Advanced EncryptionStandard)、3-DES(Triple Data Encryption Standard)、SM4等对称加密算法,与数据查询过程涉及到的同态加密算法无关。
S804、根据桶中各数据的顺序以及桶中的数据数量,生成桶的密钥向量。
作为一种示例,可以根据桶中各数据的顺序,依次随机生成桶中各数据对应的对称密钥,得到桶的密钥向量。也就是说,数据源设备是根据桶中的数据量n生成随机的对称密钥,若该桶中有10条数据,则对应生成10个对称密钥,对称密钥与数据一一对应。
由此,根据桶中各数据的顺序以及各数据的标识,生成桶的标识向量,以及桶的密钥向量,数据源设备接收查询方发送的数据加密查询向量,并对数据查询加密向量进行的计算操作,均以向量的形式进行,以减少数据查询过程中的计算复杂度。
本申请实施例的数据查询方法,引入了全同态加密技术(Fully HomomorphicEncryption,FHE),通过在全同态密文下执行线性计算实现高效在线查询,且查询过程中数据源的计算复杂度不依赖原始数据的长度,从而解决了如下问题:
(1)数据查询支持通过关键词直接进行查询,无需额外获取待查询数据的位置信息。
(2)实现一次在线交互完成数据查询,解决传统隐私信息检索协议中通信轮数过高的问题。
(3)解决金融大数据场景下原始数据编码问题,支持大规模数据的隐私信息检索,将查询过程中对数据源的计算复杂度由指数级变为多项式级。
图10示出了本申请实施例提供的另一种数据查询方法的流程示意图。如图10所示,该方法具体包括如下步骤:
S1001、数据源设备根据分桶策略生成多个桶以及桶的标识向量,并对桶中各数据进行加密处理,得到桶加密数据;
S1002、查询方设备生成同态加密密钥,包括同态加密公钥和同态加密私钥;
S1003、数据源设备将分桶策略发送给查询方设备,查询方设备将同态加密公钥发送给数据源设备,以共享同态加密公钥和分桶策略。
S1004、查询方设备基于数据源发送的分桶策略,对待查询数据的标识进行同态加密,得到数据查询加密向量。
S1005、查询方设备向数据源设备发送数据查询加密向量。
S1006、数据源设备根据数据查询加密向量,生成目标随机数向量。
S1007、数据源设备根据目标随机数向量以及待查询数据所在桶的密钥向量,得到查询结果向量。
S1008、数据源设备向查询方设备发送查询结果向量以及桶加密数据。
S1009、查询方设备利用同态加密私钥对查询结果向量进行解密,得到解密后向量,并利用解密后向量对桶加密数据进行解密,得到待查询数据。
上述各个步骤已在前文中进行详细说明,在此不再赘述。
由此,根据本申请实施例的数据查询方法,解决了大规模数据查询过程中的性能以及隐私保护问题,并且数据查询过程中通信、计算复杂度低,支持关键词查询,使得查询性能得以提升,能够适用于具有大规模数据查询需求的金融领域中,在保护查询放的查询内容的同时,也能得到正确的查询结果。
基于同一发明构思,本申请实施例中还提供了与数据查询方法对应的数据查询装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述数据查询方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图11所示,为本申请实施例提供的一种数据查询装置的结构示意图,应用于数据源设备,所述数据查询装置1100包括:第一接收模块1101、生成模块1102、处理模块1103、第一发送模块1104;其中,
第一接收模块1101,用于接收查询方设备发送的数据查询加密向量,数据查询加密向量为查询方设备基于预设的分桶策略进行同态加密所生成的向量;
生成模块1102,用于根据数据查询加密向量,生成目标随机数向量;
处理模块1103,用于根据目标随机数向量以及待查询数据所在桶的密钥向量,得到查询结果向量,查询结果向量中待查询数据对应位置上的数据值为待查询数据对应的对称密钥;
第一发送模块1104,用于向查询方设备发送查询结果向量以及桶加密数据,其中,桶加密数据包括待查询数据所在桶中的各数据的加密后数据,桶加密数据通过对待查询数据所在桶中的各数据进行对称加密得到。
由此,根据本申请实施例提供的数据查询装置,数据源设备与查询方设备仅通过一次在线交互即可完成数据查询,无需进行多轮通信,且在数据查询过程中只基于待查询数据对应的标识,也即支持关键词直接查询,无需额外获取待查询数据的位置信息,以此也保护了待查询数据的隐私安全。此外,查询方设备对待查询数据的标识进行了同态加密并生成数据查询加密向量,数据源设备相应基于该数据查询加密向量进行向量计算即可得到查询结果向量,在此过程中无需对数据源上存储的原始数据进行编码、查询等处理,因此,使得数据源设备的计算复杂度从指数级降低为多项式级。此外,数据源设备预先基于分桶策略对数据进行了分桶操作,返回给查询方设备的也是待查询数据所在桶的桶加密数据,并且在利用解密信息进行解密时,解密过程中的复杂度取决于桶中的数据量,相比直接从大量原始数据中进行查找计算以及解密处理,计算复杂度和时间复杂度也明显降低。基于此,本申请支持关键词查询,不泄露待查询数据的位置信息,且只需一次通信、计算复杂度较低,能够适用于具有大规模数据查询需求的金融领域。
作为一种可能的实现方式,上述生成模块1102具体用于:
根据数据查询加密向量以及预设随机数向量,得到目标随机数向量,其中,数据查询加密向量的维度为待查询数据所在桶中的数据的数量,且,数据查询加密向量中各位置上的数据均为待查询数据的标识的加密后数据;
目标随机数向量中待查询数据对应的位置上的数据值为零,且,待查询数据对应的位置之外的各位置上的数据值均不为零。
作为一种可能的实现方式,上述生成模块1102具体用于:
将数据查询加密向量与待查询数据所在桶的标识向量相减,得到中间向量,其中,标识向量中各位置的数据值分别为待查询数据所在桶中各数据的标识的加密后数据;
根据中间向量以及预设随机数向量,得到目标随机数向量。
作为一种可能的实现方式,上述生成模块1102具体用于:
将中间向量与预设随机数向量相乘,得到待选向量,预设随机数向量的维度与中间向量的维度相同;
若待选向量中数据值为零的位置的数量为一个且数据值为零的位置为待查询数据对应的位置,则将待选向量作为目标随机数向量,否则,重新执行生成随机数向量的步骤,循环执行,直至得到的待选向量中数据值为零的位置的数量为一个且数据值为零的位置为待查询数据对应的位置。
作为一种可能的实现方式,上述处理模块1103具体用于:
将目标随机数向量与待查询数据所在桶的密钥向量相加,得到解密向量,其中,待查询数据所在桶的密钥向量中各位置的数据值分别为待查询数据所在桶中对应位置的数据的对称密钥;
将解密向量作为查询结果向量,其中,解密向量中待查询数据对应位置上的数据值为待查询数据对应的加密密钥。
作为一种可能的实现方式,上述生成模块1102还用于:
根据分桶策略生成多个桶,各桶中分别包括至少一个数据,各数据按照预设的顺序排列;
根据桶中各数据的顺序以及各数据的标识,生成桶的标识向量;
根据桶中各数据的顺序以及各数据的数据值进行加密处理,得到桶的桶加密数据;
根据桶中各数据的顺序以及桶中的数据数量,生成桶的密钥向量。
作为一种可能的实现方式,上述生成模块1102还用于:
获取查询方设备发送的同态加密公钥;
根据桶中各数据的顺序,依次使用同态加密公钥对各数据的标识进行加密,得到桶的标识向量。
作为一种可能的实现方式,上述生成模块1102还用于:
根据桶中各数据的顺序,依次随机生成桶中各数据对应的对称密钥,得到桶的密钥向量。
参照图12所示,为本申请实施例提供的另一种数据查询装置的结构示意图,应用于查询方设备,所述数据查询装置1200包括:加密模块1201、第二发送模块1202、第二接收模块1203、解密模块1204;其中,
加密模块1201,用于基于数据源设备发送的分桶策略,对待查询数据进行同态加密,得到数据查询加密向量;
第二发送模块1202,用于向数据源设备发送数据查询加密向量;
第二接收模块1203,用于接收数据源设备发送的查询结果向量以及桶加密数据,其中,查询结果向量中待查询数据对应位置上的数据值为待查询数据对应的对称密钥,桶加密数据包括待查询数据所在桶中的各数据的加密后数据,桶加密数据通过对待查询数据所在桶中的各数据进行对称加密得到;
解密模块1204,用于根据查询结果向量对桶加密数据进行解密,得到待查询数据。
作为一种可能的实现方式,上述解密模块1204具体用于:
基于生成数据查询加密向量时所使用的同态公钥所对应的同态私钥对解密信息加密向量进行解密,得到解密后向量;
基于解密后向量对桶加密数据进行解密,得到待查询数据。
作为一种可能的实现方式,上述解密模块1204还用于:
根据数据源设备发送的分桶策略,确定待查询数据所在桶的数据的数量;
基于同态公钥对待查询数据的标识进行加密,得到待查询数据的标识的加密后数据;
生成数据查询加密向量。
本申请实施例提供了一种数据源设备1300,如图13所示,为本申请实施例提供的数据源设备1300的结构示意图,包括处理器1301和存储器1302,可选的,还可以包括总线1303。所述存储器1302存储有所述处理器1301可执行的机器可读指令,当数据源设备1300运行时,所述处理器1301与所述存储器1302之间通过总线1303通信,所述机器可读指令被所述处理器1301执行时,执行如上第一方面任一项所述的数据查询方法的步骤。
本申请实施例还提供了一种查询方设备,同样如图13所示,包括处理器1301和存储器1302,可选的,还可以包括总线1303。所述存储器1302存储有所述处理器1301可执行的机器可读指令,当查询方设备运行时,所述处理器1301与所述存储器1302之间通过总线1303通信,所述机器可读指令被所述处理器1301执行时,执行如上第二方面任一项所述的数据查询方法的步骤。
本申请实施例还提供了一种数据查询系统,包括数据源设备以及至少一个查询方设备。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面或第二方面任一所述数据查询方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (16)
1.一种数据查询方法,其特征在于,应用于数据源设备,所述方法包括:
接收查询方设备发送的数据查询加密向量,所述数据查询加密向量为查询方设备基于预设的分桶策略进行同态加密所生成的向量;
根据所述数据查询加密向量,生成目标随机数向量;
根据所述目标随机数向量以及待查询数据所在桶的密钥向量,得到查询结果向量,所述查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥;
向所述查询方设备发送所述查询结果向量以及桶加密数据,其中,所述桶加密数据包括所述待查询数据所在桶中的各数据的加密后数据,所述桶加密数据通过对所述待查询数据所在桶中的各数据进行对称加密得到;所述根据所述数据查询加密向量,生成目标随机数向量,包括:
根据所述数据查询加密向量以及预设随机数向量,得到所述目标随机数向量,其中,所述数据查询加密向量的维度为所述待查询数据所在桶中的数据的数量,且,所述数据查询加密向量中各位置上的数据均为所述待查询数据的标识的加密后数据;
所述目标随机数向量中所述待查询数据对应的位置上的数据值为零,且,所述待查询数据对应的位置之外的各位置上的数据值均不为零;
所述待查询数据所在桶的密钥向量中各位置的数据值分别为所述待查询数据所在桶中对应位置的数据的对称密钥。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据查询加密向量以及预设随机数向量,得到所述目标随机数向量,包括:
将所述数据查询加密向量与所述待查询数据所在桶的标识向量相减,得到中间向量,其中,所述标识向量中各位置的数据值分别为所述待查询数据所在桶中各数据的标识的加密后数据;
根据所述中间向量以及所述预设随机数向量,得到所述目标随机数向量。
3.根据权利要求2所述的方法,其特征在于,所述根据所述中间向量以及所述预设随机数向量,得到所述目标随机数向量,包括:
将所述中间向量与所述预设随机数向量相乘,得到待选向量,所述预设随机数向量的维度与所述中间向量的维度相同;
若所述待选向量中数据值为零的位置的数量为一个且数据值为零的位置为所述待查询数据对应的位置,则将所述待选向量作为所述目标随机数向量,否则,重新执行生成随机数向量的步骤,循环执行,直至得到的待选向量中数据值为零的位置的数量为一个且数据值为零的位置为所述待查询数据对应的位置。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标随机数向量以及所述待查询数据所在桶的密钥向量,得到所述查询结果向量,包括:
将所述目标随机数向量与所述待查询数据所在桶的密钥向量相加,得到解密向量;
将所述解密向量作为所述查询结果向量,其中,所述解密向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的加密密钥。
5.根据权利要求1所述的方法,其特征在于,所述根据所述数据查询加密向量,生成目标随机数向量之前,还包括:
根据所述分桶策略生成多个桶,各桶中分别包括至少一个数据,各数据按照预设的顺序排列;
根据桶中各数据的顺序以及各数据的标识,生成所述桶的标识向量;
根据桶中各数据的顺序以及各数据的数据值进行加密处理,得到所述桶的桶加密数据;
根据桶中各数据的顺序以及桶中的数据数量,生成所述桶的密钥向量。
6.根据权利要求5所述的方法,其特征在于,所述根据桶中各数据的顺序以及各数据的标识,生成所述桶的标识向量,包括:
获取所述查询方设备发送的同态加密公钥;
根据桶中各数据的顺序,依次使用所述同态加密公钥对各数据的标识进行加密,得到所述桶的标识向量。
7.根据权利要求5所述的方法,其特征在于,所述根据桶中各数据的顺序以及桶中的数据数量,生成所述桶的密钥向量,包括:
根据桶中各数据的顺序,依次随机生成桶中各数据对应的对称密钥,得到所述桶的密钥向量。
8.一种数据查询方法,其特征在于,应用于查询方设备,所述方法包括:
基于数据源设备发送的分桶策略,对待查询数据进行同态加密,得到数据查询加密向量;
向数据源设备发送所述数据查询加密向量;
接收所述数据源设备发送的查询结果向量以及桶加密数据,其中,所述查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥,所述桶加密数据包括所述待查询数据所在桶中的各数据的加密后数据,所述桶加密数据通过对所述待查询数据所在桶中的各数据进行对称加密得到,所述待查询数据所在桶的密钥向量中各位置的数据值分别为所述待查询数据所在桶中对应位置的数据的对称密钥;
根据所述查询结果向量对所述桶加密数据进行解密,得到所述待查询数据。
9.根据权利要求8所述的方法,其特征在于,所述根据所述查询结果向量对所述桶加密数据进行解密,得到所述待查询数据,包括:
基于生成所述数据查询加密向量时所使用的同态公钥所对应的同态私钥对所述查询结果向量进行解密,得到解密后向量;
基于所述解密后向量对所述桶加密数据进行解密,得到所述待查询数据。
10.根据权利要求8所述的方法,其特征在于,所述向数据源设备发送所述数据查询加密向量之前,还包括:
根据所述数据源设备发送的所述分桶策略,确定所述待查询数据所在桶的数据的数量;
基于同态公钥对所述待查询数据的标识进行加密,得到所述待查询数据的标识的加密后数据;
生成所述数据查询加密向量。
11.一种数据查询装置,其特征在于,应用于数据源设备,所述装置包括:
第一接收模块,用于接收查询方设备发送的数据查询加密向量,所述数据查询加密向量为查询方设备基于预设的分桶策略进行同态加密所生成的向量;
生成模块,用于根据所述数据查询加密向量,生成目标随机数向量;
处理模块,用于根据所述目标随机数向量以及待查询数据所在桶的密钥向量,得到查询结果向量,所述查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥;
第一发送模块,用于向所述查询方设备发送所述查询结果向量以及桶加密数据,其中,所述桶加密数据包括所述待查询数据所在桶中的各数据的加密后数据,所述桶加密数据通过对所述待查询数据所在桶中的各数据进行对称加密得到;
所述生成模块,具体用于根据所述数据查询加密向量以及预设随机数向量,得到所述目标随机数向量,其中,所述数据查询加密向量的维度为所述待查询数据所在桶中的数据的数量,且,所述数据查询加密向量中各位置上的数据均为所述待查询数据的标识的加密后数据;
所述目标随机数向量中所述待查询数据对应的位置上的数据值为零,且,所述待查询数据对应的位置之外的各位置上的数据值均不为零;
所述待查询数据所在桶的密钥向量中各位置的数据值分别为所述待查询数据所在桶中对应位置的数据的对称密钥。
12.一种数据查询装置,其特征在于,应用于查询方设备,所述装置包括:
加密模块,用于基于数据源设备发送的分桶策略,对待查询数据进行同态加密,得到数据查询加密向量;
第二发送模块,用于向数据源设备发送所述数据查询加密向量;
第二接收模块,用于接收所述数据源设备发送的查询结果向量以及桶加密数据,其中,所述查询结果向量中所述待查询数据对应位置上的数据值为所述待查询数据对应的对称密钥,所述桶加密数据包括所述待查询数据所在桶中的各数据的加密后数据,所述桶加密数据通过对所述待查询数据所在桶中的各数据进行对称加密得到,所述待查询数据所在桶的密钥向量中各位置的数据值分别为所述待查询数据所在桶中对应位置的数据的对称密钥;
解密模块,用于根据所述查询结果向量对所述桶加密数据进行解密,得到所述待查询数据。
13.一种数据源设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当数据源设备运行时,所述处理器执行所述机器可读指令,以执行如上权利要求1至7任一项所述的数据查询方法的步骤。
14.一种查询方设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当查询方设备运行时,所述处理器执行所述机器可读指令,以执行如上权利要求8至10任一项所述的数据查询方法的步骤。
15.一种数据查询系统,其特征在于,包括权利要求13所述的数据源设备以及至少一个权利要求14所述的查询方设备。
16.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的数据查询方法的步骤,或者如权利要求8至10任一项所述的数据查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311219559.9A CN116956354B (zh) | 2023-09-21 | 2023-09-21 | 数据查询方法、装置、数据源设备、查询方设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311219559.9A CN116956354B (zh) | 2023-09-21 | 2023-09-21 | 数据查询方法、装置、数据源设备、查询方设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116956354A CN116956354A (zh) | 2023-10-27 |
CN116956354B true CN116956354B (zh) | 2024-01-19 |
Family
ID=88449660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311219559.9A Active CN116956354B (zh) | 2023-09-21 | 2023-09-21 | 数据查询方法、装置、数据源设备、查询方设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116956354B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020253234A1 (zh) * | 2019-06-18 | 2020-12-24 | 创新先进技术有限公司 | 实现隐私保护的数据同态加解密方法及装置 |
WO2022144000A1 (zh) * | 2020-12-31 | 2022-07-07 | 京东科技信息技术有限公司 | 一种联邦学习模型的训练方法、装置及电子设备 |
CN114756895A (zh) * | 2022-06-16 | 2022-07-15 | 深圳市洞见智慧科技有限公司 | 基于同态加密的匿踪数据核验方法及系统 |
CN115269938A (zh) * | 2022-09-22 | 2022-11-01 | 深圳市洞见智慧科技有限公司 | 基于同态加密的关键词匿踪查询方法、系统及相关装置 |
CN115309928A (zh) * | 2022-06-27 | 2022-11-08 | 西安电子科技大学 | 可隐藏数据访问的图像加密检索方法、装置及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936937B1 (ko) * | 2007-12-18 | 2010-01-14 | 한국전자통신연구원 | 버킷내 부분 순서 보존을 통한 데이터베이스 처리 방법 |
-
2023
- 2023-09-21 CN CN202311219559.9A patent/CN116956354B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020253234A1 (zh) * | 2019-06-18 | 2020-12-24 | 创新先进技术有限公司 | 实现隐私保护的数据同态加解密方法及装置 |
WO2022144000A1 (zh) * | 2020-12-31 | 2022-07-07 | 京东科技信息技术有限公司 | 一种联邦学习模型的训练方法、装置及电子设备 |
CN114756895A (zh) * | 2022-06-16 | 2022-07-15 | 深圳市洞见智慧科技有限公司 | 基于同态加密的匿踪数据核验方法及系统 |
CN115309928A (zh) * | 2022-06-27 | 2022-11-08 | 西安电子科技大学 | 可隐藏数据访问的图像加密检索方法、装置及介质 |
CN115269938A (zh) * | 2022-09-22 | 2022-11-01 | 深圳市洞见智慧科技有限公司 | 基于同态加密的关键词匿踪查询方法、系统及相关装置 |
Non-Patent Citations (1)
Title |
---|
基于加密数据库的快速查询方法研究;王福超;牛长春;;网络安全技术与应用(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116956354A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Boneh et al. | Private database queries using somewhat homomorphic encryption | |
WO2020216875A1 (en) | Methods and systems for privacy preserving evaluation of machine learning models | |
CN110689349A (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
US20090138698A1 (en) | Method of searching encrypted data using inner product operation and terminal and server therefor | |
Xi et al. | Privacy preserving shortest path routing with an application to navigation | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
CN116502254B (zh) | 可查得统计的匿踪查询方法及装置 | |
CN116502276B (zh) | 匿踪查询方法及装置 | |
CN115412356A (zh) | 数据查询设备法、装置、计算机设备以及存储介质 | |
CN117150557A (zh) | 一种基于安全多方计算的支持压缩的隐私信息检索方法及系统 | |
CN114338025A (zh) | 一种云环境下密文等值测试方法 | |
CN117155615A (zh) | 数据加密传输方法、系统、电子设备及存储介质 | |
CN117077209B (zh) | 大规模数据匿踪查询方法 | |
Mainardi et al. | Privacy preserving substring search protocol with polylogarithmic communication cost | |
CN115795514A (zh) | 一种隐私信息检索方法、装置及系统 | |
Chakraborti et al. | {Distance-Aware} Private Set Intersection | |
CN107454059B (zh) | 一种云储存环境下基于序列密码的搜索加密方法 | |
CN116956354B (zh) | 数据查询方法、装置、数据源设备、查询方设备及系统 | |
Mihailescu et al. | Software engineering and applied cryptography in cloud computing and big data | |
CN113158087B (zh) | 一种空间文本的查询方法及装置 | |
Wüller et al. | Designing privacy-preserving interval operations based on homomorphic encryption and secret sharing techniques | |
CN112836239A (zh) | 保护隐私的双方协同确定目标对象数据的方法及装置 | |
Pillai et al. | Blockchain-Based Searchable Asymmetric Encryption Scheme in Cloud Environment | |
CN116595562B (zh) | 数据处理方法和电子设备 | |
CN116303551B (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 |