CN117744104A - 数据隐匿查询方法、装置、电子设备及非易失性存储介质 - Google Patents
数据隐匿查询方法、装置、电子设备及非易失性存储介质 Download PDFInfo
- Publication number
- CN117744104A CN117744104A CN202311612952.4A CN202311612952A CN117744104A CN 117744104 A CN117744104 A CN 117744104A CN 202311612952 A CN202311612952 A CN 202311612952A CN 117744104 A CN117744104 A CN 117744104A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- target
- query
- key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 239000000243 solution Substances 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 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
- 230000003287 optical effect Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据隐匿查询方法、装置、电子设备及非易失性存储介质。其中,该方法包括:确定目标索引以及与目标索引对应的目标秘钥;生成混淆数据序列,并将混淆数据序列发送至数据持有方;接收数据持有方返回的查询结果序列,其中,查询结果序列是由数据持有方依据索引‑秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的;依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。本申请解决了由于相关技术中的隐匿查询大多是基于隐私求交的方式实现,造成无法实现实时查询功能的技术问题。
Description
技术领域
本申请涉及加密查询技术领域,具体而言,涉及一种数据隐匿查询方法、装置、电子设备及非易失性存储介质。
背景技术
目前,相关技术中机构间隐匿查询方案大多是是建立在以密码学公钥体系为基础的隐私数据求交上,例如RSA-PSI(Private Set intersection,隐私保护集合交集)、DH-PSI、OT-PSI等加密算法,无法实现机构间实时隐秘查询的功能,且查询效率低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据隐匿查询方法、装置、电子设备及非易失性存储介质,以至少解决由于相关技术中的隐匿查询大多是基于隐私求交的方式实现,造成无法实现实时查询功能的技术问题。
根据本申请实施例的一个方面,提供了一种数据隐匿查询方法,包括:确定目标索引以及与目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;生成混淆数据序列,并将混淆数据序列发送至数据持有方,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;接收数据持有方返回的查询结果序列,其中,查询结果序列是由数据持有方依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
可选地,在确定目标索引以及与目标索引对应的目标秘钥之前,方法还包括:在数据持有方存储有数据查询方计划查询的数据表和数据字段的情况下,接收数据持有方多次执行不经意传输协议发送的索引-秘钥对候选列表,其中,每次执行不经意传输协议均发送一个索引-秘钥对候选列表,索引-秘钥对候选列表中的秘钥为不可见状态;在每个索引-秘钥对候选列表中选择一个索引-秘钥对,作为索引-秘钥候选对,直至数据查询方中存储的索引-秘钥候选对的数量达到预设阈值,其中,被选中后索引-秘钥候选对中的秘钥为可见状态。
可选地,确定目标索引以及与目标索引对应的目标秘钥包括:随机在多个索引-秘钥候选对中,选择一个索引-秘钥候选对,作为目标索引,以及与目标索引对应的目标秘钥;并将被选中的索引-秘钥候选对所对应的索引-秘钥对候选列表的编号,发送至数据持有方,以使数据持有方将编号对应的索引-秘钥对候选列表确定为索引-秘钥对目标列表。
可选地,方法还包括:向数据持有方发送业务下线请求,以使数据持有方清除存储的索引-秘钥对候选列表,以及数据查询方的历史数据查询记录;并清除本地存储的索引-秘钥候选对。
可选地,生成混淆数据序列包括:随机生成预设数量个混淆数据,并依据混淆数据组成第一数据序列;将目标查询数据插入第一数据序列中与目标索引对应的位置,得到第二数据序列,其中,目标查询数据计划查询的数据;依据预设秘钥对第二数据序列中各个元素进行加密,得到混淆数据序列。
可选地,查询结果序列是由数据持有方通过以下步骤得到的:数据持有方依据预设秘钥对混淆数据序列中各个元素进行解密,得到第二数据序列;依据第二数据序列中的各个元素,在系统数据库中进行查询,得到各个元素对应的查询结果;依据索引-秘钥对目标列表中各个秘钥,分别对第二数据序列中对应的目标位置的元素所对应的查询结果进行加密,得到查询结果序列,其中,目标位置为第二数据序列中与秘钥对应的索引所对应的位置。
根据本申请实施例的一个方面,还提供了另一种数据隐匿查询方法,包括:确定索引-秘钥对目标列表,其中,索引-秘钥对目标列表中包含数据查询方所存储的目标索引以及与目标索引对应的目标秘钥;接收数据查询方发送的混淆数据序列,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密,得到查询结果序列,其中,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;将查询结果序列发送至数据查询方,以使数据查询方依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
根据本申请实施例的另一个方面,还提供了一种数据隐匿查询系统,包括:数据查询方和数据持有方,其中,数据查询方,用于确定目标索引以及与目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;以及,生成混淆数据序列,并将混淆数据序列发送至数据持有方,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;数据持有方,用于依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密,得到查询结果序列,将查询结果序列发送至数据查询方,其中,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;数据查询方,还用于在接收到数据持有方返回的查询结果序列的情况下,依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
根据本申请实施例的另一个方面,还提供了一种数据隐匿查询装置,包括:目标秘钥确定模块,用于确定目标索引以及与目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;混淆数据生成模块,用于生成混淆数据序列,并将混淆数据序列发送至数据持有方,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;查询结果接收模块,用于接收数据持有方返回的查询结果序列,其中,查询结果序列是由数据持有方依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;查询结果解密模块,用于依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
根据本申请实施例的又一方面,还提供了一种电子设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行数据隐匿查询方法。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行计算机程序执行数据隐匿查询方法。
在本申请实施例中,采用确定目标索引以及与目标索引对应的目标秘钥,其中,目标索引和目标秘钥与数据持有方所存储的索引-秘钥对目标列表中某一索引以及与该索引对应的秘钥一致;生成混淆数据序列,并将混淆数据序列发送至数据持有方,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;接收数据持有方返回的查询结果序列,其中,查询结果序列是由数据持有方依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息的方式,通过结合不经意传输协议,设计离线预处理和在线加密计算两个部分,在具备极强安全性的基础之上,达到了实现快速响应的实时隐匿查询的目的,进而解决了由于相关技术中的隐匿查询大多是基于隐私求交的方式实现,造成无法实现实时查询功能技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的一种用于实现数据隐匿查询的方法的计算机终端(或电子设备)的硬件结构框图;
图2是根据本申请实施例提供的一种数据隐匿查询的方法流程的示意图;
图3是根据本申请实施例提供的一种服务发布阶段流程的示意图;
图4是根据本申请实施例提供的一种服务发布的时序图;
图5是根据本申请实施例提供的一种在线加密计算阶段流程的示意图;
图6是根据本申请实施例提供的一种在线加密计算的时序图;
图7是根据本申请实施例提供的一种服务下线的时序图;
图8是根据本申请实施例提供的另一种数据隐匿查询的方法流程的示意图;
图9是根据本申请实施例提供的一种数据隐匿查询系统的结构示意图;
图10是根据本申请实施例提供的一种数据隐匿查询装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,机构间隐匿查询方案是建立在以密码学公钥体系为基础的隐私数据求交上,如RSA-PSI、DH-PSI、OT-PSI等,以RSA-PSI为例对相关技术中的隐匿查询方案进行说明,其算法流程如下:
PartyA包含数据XA:{u1,u2,u3}
PartyB包含数据XB:{u1,u2,u4,u5,u6,...ux}
步骤1,首先PartyB产生密钥RSA:n,e,d,并将n、e传给PartyA;
步骤2,PartyA使用n、e以及产生的随机数r,对本地数据进行加密,并将加密后的数据YA传给PartyB;
步骤3,PartyB一方面对接收自PartyA的数据YA进行二次加密,得到ZA,另一方面使用d对本地数据进行加密,得到ZB,并将ZA、ZB发送给PartyA;
步骤4,PartyA接收ZA、ZB,并对ZA解密得到DA;
步骤5,对DA和ZB进行密文求教,得到结果U={u1,u2}。
上述相关技术中的方案应用在批量数据对齐时,均摊开销可控。但对于实时隐匿查询场景,查询方的集合大小固定为1,被查询方集合在百万级别,此时不得不在性能与安全性上进行某种程度上的妥协,但仍旧无法避免大量数据交互时的网络开销,查询效率低,并且无法实现实时隐匿查询。
为了解决上述问题,本申请实施例中提供了相关的解决方案,以下详细说明。
根据本申请实施例,提供了一种数据隐匿查询的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据隐匿查询方法的计算机终端(或电子设备)的硬件结构框图。如图1所示,计算机终端10(或电子设备)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或电子设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据隐匿查询方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述数据隐匿查询方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或电子设备)的用户界面进行交互。
在上述运行环境下,本申请实施例提供了一种数据隐匿查询方法,图2是根据本申请实施例提供的一种数据隐匿查询的方法流程的示意图,如图2所示,该方法包括如下步骤:
步骤S202,确定目标索引以及与目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;
本申请方案的包含两个阶段,第一阶段为离线协议生成(服务发布)阶段,具体地,本方案执行1-n of Hauck-OT协议,数据持有方(Sender)的查询总数target_num设置为n,数据查询方(Receiver)的查询数量target为1。执行协议后,数据持有方生成一组“索引-密钥”对(即上述索引-秘钥对目标列表),每个密钥都是唯一的,同时将待查询的数据表存入Redis数据库中。数据查询方生成一个目标索引和对应的key(即上述目标秘钥),该目标索引对应的目标秘钥key与数据持有方对应索引的key完全相同,即与索引-秘钥对目标列表中某一索引以及与该索引对应的秘钥完全相同,使得数据查询方能够在收到加密消息后,使用该目标索引对应位置的目标密钥对消息解密,从而获取目标信息,具体流程如图3所示。
下面对上述服务发布过程做进一步介绍。
在本申请的一些实施例中,在确定目标索引以及与目标索引对应的目标秘钥之前,方法还包括以下步骤:在数据持有方存储有数据查询方计划查询的数据表和数据字段的情况下,接收数据持有方多次执行不经意传输协议OT发送的索引-秘钥对候选列表,其中,每次执行不经意传输协议OT均发送一个索引-秘钥对候选列表,索引-秘钥对候选列表中的秘钥为不可见状态;在每个索引-秘钥对候选列表中选择一个索引-秘钥对,作为索引-秘钥候选对,直至数据查询方中存储的索引-秘钥候选对的数量达到预设阈值,其中,被选中后索引-秘钥候选对中的秘钥为可见状态。
在本申请的一些实施例中,确定目标索引以及与目标索引对应的目标秘钥包括以下步骤:随机在多个索引-秘钥候选对中,选择一个索引-秘钥候选对,作为目标索引,以及与目标索引对应的目标秘钥;并将被选中的索引-秘钥候选对所对应的索引-秘钥对候选列表的编号,发送至数据持有方,以使数据持有方将编号对应的索引-秘钥对候选列表确定为索引-秘钥对目标列表。
图4是根据本申请实施例提供的一种服务发布的时序图,如图4所示,其中,图4中所示的A机构即为上述数据查询方,B机构即为上述数据持有方。
具体地,服务发布阶段的流程包括如下步骤:
步骤1,业务人员发起服务发布请求;
步骤2,A(即上述数据查询方)将计划查询的数据表的表名t与查询字段p(即上述计划查询的数据字段)发送给数据持有方;
其中,查询字段p是指数据查询方需要从数据持有方获得的目标查询ID的信息,查询ID是可规则生成的标识数据,如身份证、电话号码等。
步骤3,B(即上述数据持有方)查询该数据表中对应的字段信息,并将查询的结果存储至内存型数据库中,在本实施例中,以redis数据库为例;
步骤4,A和B双方执行1-n out of Hauck-OT(不经意传输)协议,其中,B计算s=gy,并将s发送给A;
其中,s至少用于表征数据持有方是否存储有数据查询方计划查询的数据表和数据字段,给定素数p,Zp表示元素个数为p的有限域的集合,其运算为模p的算术运算。定义为变量y从有限集合Zp中均匀抽样,G是由素数阶p和q生成的循环群,g是G的生成元,s=gy表示g和y的幂运算。
步骤5,A验证s的合法性,即是否s∈G,其中,G是一个由素数阶p和q生成的循环群,若满足条件则继续执行协议,否则返回步骤4;
步骤6,双方继续执行OT协议,生成密钥信息,具体地,B计算出keys_list(即上述索引-秘钥对候选列表),并存放至本地redis中;
上述keys_list(即上述索引-秘钥对候选列表,又称秘钥组)由数据持有方生成,每一个索引-秘钥对候选列表包含n个秘钥、每个秘钥对应的索引以及该秘钥组的编号q,其中,秘钥可以为对称加密算法sm4的秘钥;
步骤7,A计算出keys和index(即上述索引-秘钥候选对),并存放至本地redis中;
上述keys和index(即上述索引-秘钥候选对)为数据查询方通过与数据持有方进行不经意传输协议OT获得,包括一个秘钥、该秘钥在对应索引-秘钥对候选列表(秘钥组)中的索引以及对应索引-秘钥对候选列表(秘钥组)的编号;
步骤8,B同A执行多次不经意传输协议OT积累秘钥池至水位m(使数据查询方中存储的索引-秘钥候选对的数量达到预设阈值m);
其中,秘钥池中包含多个秘钥组(即上述索引-秘钥对候选列表)以及与器对应的上述索引-秘钥候选对,数据查询方可以调用实时接口随机取一个索引-秘钥候选对作为目标秘钥,以及与目标秘钥对应的目标索引,数据持有方使用该目标秘钥对应的秘钥组进行查询操作。
步骤9,返回存储标识,服务发布流程完成。
本申请方案在服务发布阶段完成后,数据查询方和数据持有方得到各自的密钥信息。然后进行加密计算阶段,数据持有方对消息进行加密,数据查询方解密对应消息获取目标信息,具体流程如图5所示。从而实现快速响应的实时查询,同时具备极强的安全可靠性。
下面对本申请方案中的加密计算阶段进行介绍。
步骤S204,生成混淆数据序列,并将混淆数据序列发送至数据持有方,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;
在本申请的一些实施例中,生成混淆数据序列包括以下步骤:随机生成预设数量个混淆数据,并依据混淆数据组成第一数据序列;将目标查询数据插入第一数据序列中与目标索引对应的位置,得到第二数据序列,其中,目标查询数据计划查询的数据;依据预设秘钥对第二数据序列中各个元素进行加密,得到混淆数据序列。
具体地,数据查询方输入想要查询的信息ui(即上述目标查询数据),并在本地生成一组包含n个有序排列数据的混淆数据集合XA={u1,u2,...ui,...un}(即上述混淆数据序列),之后把混淆数据集合XA发给发送者(即上述数据持有方)。其中i为混淆数据序列中与目标索引对应位置,此处生成混淆数据用于保护数据查询方的数据隐私,可以帮助掩蔽真实查询信息。
步骤S206,接收数据持有方返回的查询结果序列,其中,查询结果序列是由数据持有方依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;
在本申请的一些实施例中,查询结果序列是由数据持有方通过以下步骤得到的:数据持有方依据预设秘钥对混淆数据序列中各个元素进行解密,得到第二数据序列;依据第二数据序列中的各个元素,在系统数据库中进行查询,得到各个元素对应的查询结果;依据索引-秘钥对目标列表中各个秘钥,分别对第二数据序列中对应的目标位置的元素所对应的查询结果进行加密,得到查询结果序列,其中,目标位置为第二数据序列中与秘钥对应的索引所对应的位置。
具体地,发送者(即上述数据持有方)得到混淆数据序列XA,同时在Redis数据库中获取待查询数据表YB,两组数据求交集,可以得到混淆数据中的数据是否存在,新增一列v(即上述查询结果)作为标识,v=0表示不存在,v=1表示存在。(注:对于目标id是否存在的场景,可以新增一列作为是否存在的标识;对于其他场景,可直接使用对应字段作为标识。例如查询某个id的资产,以资产字段作为标识即可)
发送者从Redis数据库中获取离线(服务发布)阶段生成的“索引-密钥”列表key_list(即上述索引-秘钥对目标列表),key_list共包含n个密钥信息,使用这些密钥信息并结合AES算法或SM4国密算法,一一对应地对对应的目标位置的交集字段v(即上述查询结果)进行加密,得到一组加密数据ZB(即上述查询结果序列),并把ZB发送给数据查询方。
步骤S208,依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
具体地,数据查询方得到ZB(即上述查询结果序列),同时在Redis数据库中获取目标索引和对应的key(目标秘钥),使用目标秘钥key并结合AES加密算法对目标索引所对应的位置的数据解密,得到目标结果,即上述查询字段信息。对于非目标索引对应位置的其他数据,数据查询方没有密钥信息,无法解密,因此可以保护发送者的数据隐私。
下面对本申请实施例的步骤S202至步骤S208中数据隐匿查询方法进一步进行介绍。
图6是根据本申请实施例提供的一种在线加密计算的时序图,如图6所示,该方法包括如下步骤:
步骤1,业务人员发起查询请求;
步骤2,数据查询方A使用规则生成n-1个混淆数据,组成混淆数据组X(即上述第一数据序列),随机选取一个目标秘钥kqi,得到对应的目标索引i,将待查数据(即上述目标查询数据)插入到混淆数据组X(即上述第一数据序列)指定索引位(即上述目标索引对应的位置),得到第二数据序列,对第二数据序列进行sm3签名加密得到Xe(即上述混淆数据序列),将Xe与目标秘钥对应秘钥组(即上述索引-秘钥对候选列表的编号)的编号q发送给数据持有方。
步骤3,数据持有方B使用接收到的Xe与(即上述混淆数据序列)本方的sm3签名加密数据库(即上述系统数据库)匹配以获取查询字段p的值(如未查得则使用约定值填充),得到匹配结果Z(即上述查询结果);
步骤4,读取编号q的秘钥组Kq(即上述索引-秘钥对目标列表),使用该秘钥组(即上述索引-秘钥对目标列表)对Z(即上述查询结果)的每个指定索引的数据分别进行加密得到Ze(即上述查询结果序列),并将加密后的Ze(即上述查询结果序列)发送给数据查询方;
步骤5,A使用编号q的目标秘钥,解密Ze(即上述查询结果序列)目标索引i对应位置的值,得到查询结果(即上述查询字段信息);
步骤6,返回查询结果。
作为一种可选的实施方式,本申请方案还包括服务下线阶段;
在本申请的一些实施例中,方法还包括以下步骤:向数据持有方发送业务下线请求,以使数据持有方清除存储的索引-秘钥对候选列表,以及数据查询方的历史数据查询记录;并清除本地存储的索引-秘钥候选对。
图7是根据本申请实施例提供的一种服务下线的时序图,如图7所示,包括以下步骤:
步骤1,业务人员发起下线请求;
步骤2,数据查询方A发起服务下线请求给B;
步骤3,B清理本地的秘钥组(即上述索引-秘钥对候选列表)和数据信息(包括上述数据查询方的历史数据查询记录),并返回清理完成信息;
步骤4,A清理本地目标秘钥(索引-秘钥候选对);
步骤5,服务下线流程完成。
本申请提供的实时隐匿查询方法,针对不经意传输协议OT的特点,设计离线预处理和在线查询两部分,能够实现高效的实时隐匿查询,且具备极强的安全可靠性。本申请方案中还设计了秘钥池机制,能够避免重复使用同一秘钥,从而提高了查询的安全性。实验中,数据持有方拥有百万级数据量,该方法单个查询响应时长约为50ms,有效提高大数据场景下的数据查询效率。
通过上述步骤,通过结合不经意传输协议,设计离线预处理和在线加密计算两个部分,在具备极强安全性的基础之上,达到了实现快速响应的实时隐匿查询的目的,进而解决了由于相关技术中的隐匿查询大多是基于隐私求交的方式实现,造成无法实现实时查询功能技术问题。
根据本申请实施例,还提供了另一种数据隐匿查询方法的实施例。图8是根据本申请实施例提供的另一种数据隐匿查询的方法流程的示意图。如图8所示,该方法包括如下步骤:
步骤S802,确定索引-秘钥对目标列表,其中,索引-秘钥对目标列表中包含数据查询方所存储的目标索引以及与目标索引对应的目标秘钥;
步骤S804,接收数据查询方发送的混淆数据序列,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;
步骤S806,依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密,得到查询结果序列,其中,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;
步骤S808,将查询结果序列发送至数据查询方,以使数据查询方依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
需要说明的是,本实施例中所提供的数据隐匿查询方法位于图2所示的数据隐匿查询方法对应的方法实施例,因此,对上述数据隐匿查询方法的相关解释说明也适用于本申请实施例中,在此不再赘述。
根据本申请实施例,还提供了一种数据隐匿查询系统的实施例。图9是根据本申请实施例提供的一种数据隐匿查询系统的结构示意图。如图9所示,该系统包括:数据查询方90和数据持有方92,其中,
数据查询方90,用于确定目标索引以及与目标索引对应的目标秘钥,其中,数据持有方92所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;以及,
生成混淆数据序列,并将混淆数据序列发送至数据持有方92,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方90计划查询的数据;
数据持有方92,用于依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密,得到查询结果序列,将查询结果序列发送至数据查询方90,其中,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;
数据查询方90,还用于在接收到数据持有方92返回的查询结果序列的情况下,依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
需要说明的是,本实施例中所提供的数据隐匿查询系统可用于执行图2或图8所示的数据隐匿查询方法,因此,对上述数据隐匿查询方法的相关解释说明也适用于本申请实施例中,在此不再赘述。
根据本申请实施例,还提供了一种数据隐匿查询装置的实施例。图10是根据本申请实施例提供的一种数据隐匿查询装置的结构示意图。如图10所示,该装置包括:
目标秘钥确定模块100,用于确定目标索引以及与目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;
混淆数据生成模块102,用于生成混淆数据序列,并将混淆数据序列发送至数据持有方,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;
查询结果接收模块104,用于接收数据持有方返回的查询结果序列,其中,查询结果序列是由数据持有方依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;
查询结果解密模块106,用于依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
需要说明的是,上述数据隐匿查询装置中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。
需要说明的是,本实施例中所提供的数据隐匿查询装置可用于执行图2所示的数据隐匿查询方法,因此,对上述数据隐匿查询方法的相关解释说明也适用于本申请实施例中,在此不再赘述。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行计算机程序执行以下数据隐匿查询方法:确定目标索引以及与目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;生成混淆数据序列,并将混淆数据序列发送至数据持有方,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;接收数据持有方返回的查询结果序列,其中,查询结果序列是由数据持有方依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
或者,确定索引-秘钥对目标列表,其中,索引-秘钥对目标列表中包含数据查询方所存储的目标索引以及与目标索引对应的目标秘钥;接收数据查询方发送的混淆数据序列,其中,混淆数据序列中元素的数量与索引-秘钥对目标列表中索引-秘钥对的数量相同,混淆数据序列中与目标索引对应位置的元素为数据查询方计划查询的数据;依据索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密,得到查询结果序列,其中,每个索引对应混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;将查询结果序列发送至数据查询方,以使数据查询方依据目标秘钥,对查询结果序列中目标索引对应位置的查询结果进行解密,得到查询字段信息。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种数据隐匿查询方法,其特征在于,包括:
确定目标索引以及与所述目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;
生成混淆数据序列,并将所述混淆数据序列发送至所述数据持有方,其中,所述混淆数据序列中元素的数量与所述索引-秘钥对目标列表中索引-秘钥对的数量相同,所述混淆数据序列中与所述目标索引对应位置的元素为数据查询方计划查询的数据;
接收所述数据持有方返回的查询结果序列,其中,所述查询结果序列是由所述数据持有方依据所述索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的,每个索引对应所述混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;
依据所述目标秘钥,对所述查询结果序列中所述目标索引对应位置的查询结果进行解密,得到查询字段信息。
2.根据权利要求1所述的数据隐匿查询方法,其特征在于,在确定目标索引以及与所述目标索引对应的目标秘钥之前,所述方法还包括:
在所述数据持有方存储有所述数据查询方计划查询的数据表和数据字段的情况下,接收所述数据持有方多次执行不经意传输协议发送的索引-秘钥对候选列表,其中,每次执行所述不经意传输协议均发送一个所述索引-秘钥对候选列表,所述索引-秘钥对候选列表中的秘钥为不可见状态;
在每个所述索引-秘钥对候选列表中选择一个索引-秘钥对,作为索引-秘钥候选对,直至所述数据查询方中存储的所述索引-秘钥候选对的数量达到预设阈值,其中,被选中后所述索引-秘钥候选对中的秘钥为可见状态。
3.根据权利要求2所述的数据隐匿查询方法,其特征在于,确定目标索引以及与所述目标索引对应的目标秘钥包括:
随机在多个所述索引-秘钥候选对中,选择一个索引-秘钥候选对,作为所述目标索引,以及与所述目标索引对应的目标秘钥;并
将被选中的所述索引-秘钥候选对所对应的索引-秘钥对候选列表的编号,发送至所述数据持有方,以使所述数据持有方将所述编号对应的索引-秘钥对候选列表确定为所述索引-秘钥对目标列表。
4.根据权利要求2所述的数据隐匿查询方法,其特征在于,所述方法还包括:
向所述数据持有方发送业务下线请求,以使所述数据持有方清除存储的所述索引-秘钥对候选列表,以及所述数据查询方的历史数据查询记录;并
清除本地存储的所述索引-秘钥候选对。
5.根据权利要求1所述的数据隐匿查询方法,其特征在于,生成混淆数据序列包括:
随机生成预设数量个混淆数据,并依据所述混淆数据组成第一数据序列;
将目标查询数据插入所述第一数据序列中与所述目标索引对应的位置,得到第二数据序列,其中,所述目标查询数据计划查询的数据;
依据预设秘钥对所述第二数据序列中各个元素进行加密,得到所述混淆数据序列。
6.根据权利要求5所述的数据隐匿查询方法,其特征在于,所述查询结果序列是由所述数据持有方通过以下步骤得到的:
所述数据持有方依据所述预设秘钥对所述混淆数据序列中各个元素进行解密,得到所述第二数据序列;
依据所述第二数据序列中的各个元素,在系统数据库中进行查询,得到各个元素对应的查询结果;
依据所述索引-秘钥对目标列表中各个秘钥,分别对所述第二数据序列中对应的目标位置的元素所对应的所述查询结果进行加密,得到所述查询结果序列,其中,所述目标位置为所述第二数据序列中与所述秘钥对应的索引所对应的位置。
7.一种数据隐匿查询方法,其特征在于,包括:
确定索引-秘钥对目标列表,其中,所述索引-秘钥对目标列表中包含数据查询方所存储的目标索引以及与所述目标索引对应的目标秘钥;
接收所述数据查询方发送的混淆数据序列,其中,所述混淆数据序列中元素的数量与所述索引-秘钥对目标列表中索引-秘钥对的数量相同,所述混淆数据序列中与所述目标索引对应位置的元素为数据查询方计划查询的数据;
依据所述索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密,得到查询结果序列,其中,每个索引对应所述混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;
将所述查询结果序列发送至所述数据查询方,以使所述数据查询方依据所述目标秘钥,对所述查询结果序列中所述目标索引对应位置的查询结果进行解密,得到查询字段信息。
8.一种数据隐匿查询系统,其特征在于,包括:数据查询方和数据持有方,其中,
所述数据查询方,用于确定目标索引以及与所述目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;以及,
生成混淆数据序列,并将所述混淆数据序列发送至所述数据持有方,其中,所述混淆数据序列中元素的数量与所述索引-秘钥对目标列表中索引-秘钥对的数量相同,所述混淆数据序列中与所述目标索引对应位置的元素为数据查询方计划查询的数据;
所述数据持有方,用于依据所述索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密,得到查询结果序列,将所述查询结果序列发送至所述数据查询方,其中,每个索引对应所述混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;
所述数据查询方,还用于在接收到所述数据持有方返回的查询结果序列的情况下,依据所述目标秘钥,对所述查询结果序列中所述目标索引对应位置的查询结果进行解密,得到查询字段信息。
9.一种数据隐匿查询装置,其特征在于,包括:
目标秘钥确定模块,用于确定目标索引以及与所述目标索引对应的目标秘钥,其中,数据持有方所存储的索引-秘钥对目标列表中包含所述目标索引和所述目标秘钥;
混淆数据生成模块,用于生成混淆数据序列,并将所述混淆数据序列发送至所述数据持有方,其中,所述混淆数据序列中元素的数量与所述索引-秘钥对目标列表中索引-秘钥对的数量相同,所述混淆数据序列中与所述目标索引对应位置的元素为数据查询方计划查询的数据;
查询结果接收模块,用于接收所述数据持有方返回的查询结果序列,其中,所述查询结果序列是由所述数据持有方依据所述索引-秘钥对目标列表中各个秘钥分别对混淆数据序列中各个元素对应的查询结果进行加密后得到的,每个索引对应所述混淆数据序列中的一个元素,每个元素对应一个查询结果,每个查询结果对应一个秘钥;
查询结果解密模块,用于依据所述目标秘钥,对所述查询结果序列中所述目标索引对应位置的查询结果进行解密,得到查询字段信息。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的数据隐匿查询方法。
11.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至7中任意一项所述数据隐匿查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311612952.4A CN117744104A (zh) | 2023-11-28 | 2023-11-28 | 数据隐匿查询方法、装置、电子设备及非易失性存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311612952.4A CN117744104A (zh) | 2023-11-28 | 2023-11-28 | 数据隐匿查询方法、装置、电子设备及非易失性存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117744104A true CN117744104A (zh) | 2024-03-22 |
Family
ID=90258266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311612952.4A Pending CN117744104A (zh) | 2023-11-28 | 2023-11-28 | 数据隐匿查询方法、装置、电子设备及非易失性存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117744104A (zh) |
-
2023
- 2023-11-28 CN CN202311612952.4A patent/CN117744104A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931207B (zh) | 获得隐私集合交集的方法、装置、设备及存储介质 | |
US10785019B2 (en) | Data transmission method and apparatus | |
CA2652084C (en) | A method and apparatus to provide authentication and privacy with low complexity devices | |
US7873169B2 (en) | Methods, devices and systems for generating anonymous public keys in a secure communication system | |
Lee | Enhancing the security of password authenticated key agreement protocols based on chaotic maps | |
CN110400164B (zh) | 数据确定方法和装置、存储介质及电子装置 | |
Chauhan et al. | Homomorphic encryption for data security in cloud computing | |
CN108306732A (zh) | 一种随机数生成方法、相关设备及系统 | |
CN111586142B (zh) | 一种安全多方计算方法及系统 | |
CN110635912B (zh) | 数据处理方法及装置 | |
CN104868994B (zh) | 一种协同密钥管理的方法、装置及系统 | |
KR20070062632A (ko) | 암호화를 통한 이동통신 메시지 및 파일 보안 제공 방법 | |
CN111181906A (zh) | 一种数据共享方法、装置、设备、系统及存储介质 | |
CN117744104A (zh) | 数据隐匿查询方法、装置、电子设备及非易失性存储介质 | |
CN109102283A (zh) | 区块链数据处理方法 | |
CN114726549A (zh) | 一种基于双向rsa三次传输协议的数据安全查询方法及系统 | |
Lee | Efficient three-party authenticated key agreements based on Chebyshev chaotic map-based Diffie–Hellman assumption | |
CN111464496B (zh) | 数据传输方法及装置、系统、存储介质、电子装置 | |
CN110213764B (zh) | 无线安全通讯方法和装置 | |
Azrour et al. | A new efficient SIP authentication and key agreement protocol based on chaotic maps and using smart card | |
US11075756B2 (en) | Method of encryption, method of decryption, corresponding computer device and program | |
CN110401533A (zh) | 一种私钥加密方法及装置 | |
CN115314204B (zh) | 随机数生成方法、装置及存储介质 | |
CN112910633B (zh) | 应用于区块链节点的数据处理方法、装置以及存储介质 | |
CN114254349A (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 |