CN117371010A - 数据匿踪查询方法、电子设备和可读存储介质 - Google Patents
数据匿踪查询方法、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN117371010A CN117371010A CN202311329721.2A CN202311329721A CN117371010A CN 117371010 A CN117371010 A CN 117371010A CN 202311329721 A CN202311329721 A CN 202311329721A CN 117371010 A CN117371010 A CN 117371010A
- Authority
- CN
- China
- Prior art keywords
- data
- ciphertext
- data source
- key
- party
- 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 79
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 abstract description 12
- 230000002457 bidirectional effect Effects 0.000 abstract description 5
- 239000013598 vector Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012550 audit Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9038—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/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/6245—Protecting personal data, e.g. for financial or medical purposes
Abstract
本申请提供一种数据匿踪查询方法、电子设备和可读存储介质,可用于数据处理领域。该方法应用于数据查询方,包括:接收来自数据源代表的交集位置;其中,交集位置是数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交获得的隐私交集在数据标识集合中的位置;接收来自数据源代表的公钥集合;基于公钥集合中位于交集位置的公钥对对称密钥进行加密获得密钥密文,并向数据源代表发送密钥密文;接收来自数据源代表的信息密文集合,并基于对称密钥对信息密文集合中位于交集位置的信息密文进行解密,获得查询结果。本申请的方法解决了数据源方的信息泄露问题,实现了双向的数据匿踪查询。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种数据匿踪查询方法、电子设备和可读存储介质。
背景技术
数据匿踪查询,也称隐私信息检索(Private Information Retrieval,PIR),是指数据查询方隐藏被查询对象的关键词或标识信息,数据源方提供匹配的查询结果却无法获知具体对应哪个查询对象。数据不出门且能计算,杜绝数据缓存、数据泄漏、数据贩卖的可能性。
数据匿踪查询的目标是保证数据查询方向数据源方提交查询请求时,在查询信息不被感知与泄露的前提下完成查询。即对于数据源方来说,只知道有查询的到来,但是不知道真正的查询条件,也不知道查询方的身份信息。
但是现有的数据匿踪查询技术,虽然可以保护数据查询方的信息不会被数据源方获取,但是数据查询方却可以获得数据源方的信息,只能实现单向的数据匿踪查询,数据源方存在信息泄露的风险。
发明内容
本申请提供一种数据匿踪查询方法、电子设备和可读存储介质,用以解决现有数据匿踪查询方法中,由于无法实现双向的数据匿踪查询,导致数据源方存在信息泄露风险的问题。
根据本申请的第一方面,本申请了提供一种数据匿踪查询方法,应用于数据查询方,所述数据查询方与数据源代表连接,所述数据源代表对应多个数据源方中的其中一个,所述数据源代表与除数据源代表之外的其他数据源方连接,包括:
接收来自所述数据源代表的交集位置;其中,所述交集位置是所述数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交获得的隐私交集在所述数据标识集合中的位置;
接收来自所述数据源代表的公钥集合;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
基于所述公钥集合中位于所述交集位置的公钥对对称密钥进行加密获得密钥密文,并向所述数据源代表发送所述密钥密文,以供所述数据源代表将所述密钥密文发送给所述数据源方;
接收来自所述数据源代表的信息密文集合,并基于所述对称密钥对所述信息密文集合中位于所述交集位置的信息密文进行解密,获得查询结果;其中,所述信息密文集合包括多个信息密文,所述信息密文是所述数据源方基于与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得加密密钥,并利用所述加密密钥对与所述数据标识关联的数据信息进行加密获得的。
在一种可行的实施方式中,所述方法还包括:
生成第一随机数;
接收来自各个数据源方的第二随机数;
基于所述第一随机数和各个数据源方的第二随机数,获取各个数据源方的代表指数;
将各个数据源方的代表指数进行比对,确定代表指数最小的数据源方作为数据源代表。
在一种可行的实施方式中,所述代表指数满足如下公式:
其中,Ti表示第i个数据源方的代表指数,ti表示第i个数据源方的第二随机数,t′表示第一随机数,表示各个数据源方的第二随机数的平均数。
根据本申请的第二方面,本申请了提供一种数据匿踪查询方法,应用于数据源代表,所述数据源代表对应多个数据源方中的其中一个,所述数据源代表与数据查询方以及除数据源代表之外的其他数据源方连接,包括:
求取数据查询方中查询标识与数据源方中数据标识集合的隐私交集;其中,所述隐私交集基于隐私集合求交算法求取;
向所述数据查询方发送所述隐私交集在所述数据标识集合中的交集位置,以及来自所述数据源方的公钥集合;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
向所述数据源方发送来自所述数据查询方的密钥密文;其中,所述密钥密文是所述数据查询方基于所述公钥集合中位于所述交集位置的公钥对所述数据查询方中的对称密钥进行加密获得的;
接收来自所述数据源方的信息密文集合;其中,所述信息密文集合包括多个信息密文,所述信息密文是所述数据源方基于与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得加密密钥,并利用所述加密密钥对与所述数据标识关联的数据信息进行加密获得的;
向所述数据查询方发送所述信息密文集合;其中,所述信息密文集合用于所述数据查询方基于所述对称密钥,对所述信息密文集合中位于所述交集位置处的信息密文进行解密,获得查询结果。
在一种可行的实施方式中,求取数据查询方中查询标识与数据源方中数据标识集合的隐私交集,包括:
接收来自所述数据查询方的第一密文和第一随机数;其中,所述第一密文是利用所述第一随机数对所述查询标识进行椭圆曲线加密获得的;
接收来自所述数据源方的第二密文集合和第二随机数;其中,所述第二密文集合是利用所述第二随机数对所述数据标识集合中的数据标识进行椭圆曲线加密获得的;
利用所述第二随机数对所述第一密文进行椭圆曲线加密,获得第三密文;
利用所述第一随机数对所述第二密文集合中的第二密文进行椭圆曲线加密,获得第四密文集合;
对所述第三密文和所述第四密文集合进行求交,获得所述隐私交集。
在一种可行的实施方式中,所述方法还包括:
在对所述第三密文和所述第四密文集合进行求交之前,将所述第四密文集合中第四密文的顺序进行打乱,并获得打乱排序;
在将从所述数据源方接收的公钥集合发送至所述数据查询方之前,将所述公钥集合中公钥按所述打乱排序进行打乱;
在将所述信息密文集合发送至所述数据查询方之前,将所述信息密文集合中信息密文按所述打乱排序进行打乱。
在一种可行的实施方式中,将所述第四密文集合中第四密文的顺序进行打乱,包括:
生成与各个第四密文一一对应的第五随机数;
针对各个第四密文,基于各个第四密文对应的第五随机数,获取所述第四密文的排序指数;
基于所述第四密文的排序指数的数值大小,根据预设排序规则对所述第四密文进行排序;
其中,所述排序指数符合如下公式:
其中,s′i表示第i个第四密文的排序指数,si表示第i个第四密文对应的第五随机数,sj表示第j个第四密文对应的第五随机数,n表示第四密文集合中第四密文的个数。
根据本申请的第三方面,本申请了提供一种数据匿踪查询方法,应用于数据源方,所述数据源方与数据源代表连接,所述数据源代表与数据查询方连接,包括:
向所述数据源代表发送公钥集合,以供所述数据源代表将所述公钥集合发送给所述数据查询方;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
接收来自数据源代表的密钥密文;其中,所述密钥密文是所述数据查询方基于所述公钥集合中位于交集位置的公钥对所述数据查询方中的对称密钥进行加密获得的;所述交集位置是所述数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交后,获得的隐私交集在数据标识集合中的位置;
对于所述数据标识集合中的各个数据标识,利用加密密钥对与所述数据标识关联的数据信息进行加密,获得信息密文;其中,所述加密密钥是利用与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得;
向所述数据源代表发送多个信息密文构成的信息密文集合,以供所述数据源方向所述数据查询方发送所述信息密文集合;其中,所述信息密文集合用于所述数据查询方利用所述对称密钥,对所述信息密文集合中位于所述交集位置的信息密文进行解密,获得查询结果。
根据本申请的第四方面,本申请了提供一种数据匿踪查询装置,应用于数据查询方,所述数据查询方与数据源代表连接,所述数据源代表对应多个数据源方中的其中一个,所述数据源代表与除数据源代表之外的其他数据源方连接,所述装置包括第一收发模块、密钥加密模块和数据解密模块,其中:
所述第一收发模块用于接收来自所述数据源代表的交集位置;其中,所述交集位置是所述数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交获得的隐私交集在所述数据标识集合中的位置;
所述第一收发模块用于接收来自所述数据源代表的公钥集合;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
所述密钥加密模块用于基于所述公钥集合中位于所述交集位置的公钥对对称密钥进行加密获得密钥密文,并向所述数据源代表发送所述密钥密文,以供所述数据源代表将所述密钥密文发送给所述数据源方;
所述数据解密模块用于接收来自所述数据源代表的信息密文集合,并基于所述对称密钥对所述信息密文集合中位于所述交集位置的信息密文进行解密,获得查询结果;其中,所述信息密文集合包括多个信息密文,所述信息密文是所述数据源方基于与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得加密密钥,并利用所述加密密钥对与所述数据标识关联的数据信息进行加密获得的。
根据本申请的第五方面,本申请了提供一种数据匿踪查询装置,应用于数据源代表,所述数据源代表对应多个数据源方中的其中一个,所述数据源代表与数据查询方以及除数据源代表之外的其他数据源方连接,所述装置包括隐私集合求交模块和第二收发模块,其中:
所述隐私集合求交模块用于求取数据查询方中查询标识与数据源方中数据标识集合的隐私交集;其中,所述隐私交集基于隐私集合求交算法求取;
所述第二收发模块用于向所述数据查询方发送所述隐私交集在所述数据标识集合中的交集位置,以及来自所述数据源方的公钥集合;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
所述第二收发模块用于向所述数据源方发送来自所述数据查询方的密钥密文;其中,所述密钥密文是所述数据查询方基于所述公钥集合中位于所述交集位置的公钥对所述数据查询方中的对称密钥进行加密获得的;
所述第二收发模块用于接收来自所述数据源方的信息密文集合;其中,所述信息密文集合包括多个信息密文,所述信息密文是所述数据源方基于与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得加密密钥,并利用所述加密密钥对与所述数据标识关联的数据信息进行加密获得的;
所述第二收发模块用于向所述数据查询方发送所述信息密文集合;其中,所述信息密文集合用于所述数据查询方基于所述对称密钥,对所述信息密文集合中位于所述交集位置处的信息密文进行解密,获得查询结果。
根据本申请的第六方面,本申请了提供一种数据匿踪查询装置,应用于数据源方,所述数据源方与数据源代表连接,所述数据源代表与数据查询方连接,所述装置包括第三收发模块和数据加密模块,其中:
所述第三收发模块用于向所述数据源代表发送公钥集合,以供所述数据源代表将所述公钥集合发送给所述数据查询方;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
所述第三收发模块用于接收来自数据源代表的密钥密文;其中,所述密钥密文是所述数据查询方基于所述公钥集合中位于交集位置的公钥对所述数据查询方中的对称密钥进行加密获得的;所述交集位置是所述数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交后,获得的隐私交集在数据标识集合中的位置;
所述数据加密模块用于对于所述数据标识集合中的各个数据标识,利用加密密钥对与所述数据标识关联的数据信息进行加密,获得信息密文;其中,所述加密密钥是利用与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得;
所述第三收发模块用于向所述数据源代表发送多个信息密文构成的信息密文集合,以供所述数据源方向所述数据查询方发送所述信息密文集合;其中,所述信息密文集合用于所述数据查询方利用所述对称密钥,对所述信息密文集合中位于所述交集位置的信息密文进行解密,获得查询结果。
根据本申请公开的第七方面,提供了一种电子设备,包括处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面、第二方面和第三方面中任一项所述的方法。
根据本申请公开的第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面、第二方面和第三方面中任一项所述的方法。
根据本申请公开的第九方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时用于实现第一方面、第二方面和第三方面中任一项所述的方法。
现有技术相比,本申请具有如下的有益效果:
本申请提供的数据匿踪查询方法、电子设备和可读存储介质,通过在数据源方中选择数据源代表作为第三方进行数据查询交互,首先利用隐私集合求交算法获取数据查询方的查询标识和数据源方的数据标识集合的隐私交集,通过隐私交集在数据标识集合中的交集位置,在不泄露数据查询方和数据源方双方信息的前提下,得到数据查询方想要查询的数据信息在数据源方中的位置。然后通过密钥对、对称密钥以及交集位置对后续传输的数据信息进行相应的加密与解密操作,进一步在不泄露数据查询方和数据源方双方信息的前提下,使数据查询方能够获得正确的查询结果。在数据查询过程中,保障了数据查询方和数据源方双方的数据匿名性,解决了数据源方的信息泄露问题,实现了双向的数据匿踪查询,提高了数据查询的隐私安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种数据匿踪查询系统的架构示意图;
图2为本申请实施例提供的一种数据匿踪查询方法的流程示意图;
图3为本申请实施例提供的另一种数据匿踪查询方法的流程示意图;
图4为本申请实施例提供的一种隐私求交算法的流程示意图;
图5为本申请实施例提供的又一种数据匿踪查询方法的流程示意图;
图6为本申请实施例提供的再一种数据匿踪查询方法的流程示意图;
图7为本申请实施例提供的一种数据匿踪查询装置的结构示意图;
图8为本申请实施例提供的另一种数据匿踪查询装置的结构示意图;
图9为本申请实施例提供的又一种数据匿踪查询装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
数据匿踪查询,也称隐私信息检索(Private Information Retrieval,PIR),是指数据查询方隐藏被查询对象的关键词或标识信息,数据源方提供匹配的查询结果却无法获知具体对应哪个查询对象。数据不出门且能计算,杜绝数据缓存、数据泄漏、数据贩卖的可能性。
数据匿踪查询的目标是保证数据查询方向数据源方提交查询请求时,在查询信息不被感知与泄露的前提下完成查询。即对于数据源方来说,只知道有查询的到来,但是不知道真正的查询条件,也不知道查询方的身份信息。
但是现有的数据匿踪查询技术,虽然可以保护数据查询方的信息不会被数据源方获取,但是数据查询方却可以获得数据源方的信息,只能实现单向的数据匿踪查询,数据源方存在信息泄露的风险。以金融机构的信息查询为例,保障数据查询方和数据源方双方的匿名性,不仅需要保证数据查询机构想要查询的用户ID等信息不能被数据源机构察觉,同时还需要保证数据源机构返回的查询结果不能暴露任何关于数据源机构的额外隐私信息。
针对上述的技术问题,本申请通过利用数据源代表作为数据交互的中介角色,利用隐私集合求交算法获取隐私交集,通过隐私交集在数据标识集合中的交集位置,然后通过密钥对、对称密钥以及交集位置对后续传输的数据信息进行相应的加密与解密操作,在不泄露数据查询方和数据源方双方信息的前提下,使数据查询方能够获得正确的查询结果。
下面,结合图1,对本申请涉及的数据匿踪查询系统的基本架构进行说明。
图1是本申请实施例提供的一种数据匿踪查询系统的架构示意图,参阅图1,在一些实施例中,该数据匿踪查询系统包括数据查询方101、数据源方103和数据源代表102,其中,数据源代表102是多个数据源方103中的其中一个。数据源代表102分别与数据查询方101、其他数据源方103通过网络连接,具体的,网络可以是广域网或者局域网,又或者是二者的组合。其中:
数据查询方101是指需要获取特定数据的实体,数据查询方可能是个人用户、企业组织或其他系统。他们通常向数据源方103发起数据查询请求,以获取所需的数据。
数据源方103是指拥有并提供数据的实体,数据源方103可以是数据持有者、数据采集机构、数据库服务提供商等。他们负责管理、存储和维护数据,并根据需求将数据提供给数据查询方101。
数据源代表102也属于数据源方,在本申请中则是作为数据交互的中介角色,在数据匿踪查询过程中,数据源代表102作为中介与其他数据源方103、数据查询方101进行数据交互,使数据查询方101能够获得所需的数据,起到了数据整合、协调的重要作用。
需要说明的是,图1仅是本申请实施例提供的一种数据匿踪查询系统的结构示意图,本申请实施例不对图1中包括的各种设备的实际形态进行限定,也不对图1中各种设备之间的交互方式或者连接方式进行限定,在技术方案的具体应用中,可以根据实际需求设定。
结合上述应用场景,下面通过具体实施例对本申请提供的数据匿踪查询方法的技术方案进行详细的说明。需要说明的是,如下实施例可以单独存在,也可相互结合,对于相同或相似的内容,可能在不同的实施例中不再重复说明。
图2为本申请实施例提供的一种数据匿踪查询方法的流程示意图,参阅图2,在一些实施例中,该数据匿踪查询方法应用于数据查询方,数据查询方与数据源代表连接,数据源代表对应多个数据源方中的其中一个,数据源代表与除数据源代表之外的其他数据源方连接,其流程包括以下步骤:
S201,接收来自数据源代表的交集位置;其中,交集位置是数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交获得的隐私交集在数据标识集合中的位置。
其中,基于隐私集合求交算法,获取数据查询方中查询标识与数据源方中数据标识集合的隐私交集,可以在不泄露数据查询方和数据源方任何额外信息的情况下,通过加密计算,得到查询标识和数据标识集合的隐私交集。其中的额外信息,就是指除了数据查询方和数据源方提供的隐私交集以外的任何信息。其目的在于,通过隐私交集在查询数据集中的位置,确定数据查询方想要查询的数据在数据源方中的位置。并将这个位置信息发送给数据查询方,用于后续数据匿踪查询的使用。
具体的,对于数据源方存储的数据而言,其数据一般包括数据标识和与数据标识关联的数据信息,所以在数据查询过程中,以查询请求中的查询标识为索引,查找到与查询标识一致的数据标识,并将数据标识关联的数据信息作为查询结果。以金融行业的客户存款金额查询场景为例,客户通过客户端(即数据查询方)输入要查询客户账号(即查询标识),金融机构数据库(即数据源方)中存储有多个客户的存款信息,存款信息包括存款账号(即数据标识)和存款余额(即数据信息)。若在数据源方查找到与客户账户一致的存款账户,则将存款账号的存款余额返回客户端,客户便能够获取到要查询的存款金额信息。
具体的,由于数据源代表也属于数据源方,所以数据源代表发送的交集位置,也可能是自身数据标识集合与查询标识的隐私交集在数据标识集合中的位置。
S202,接收来自数据源代表的公钥集合;其中,公钥集合包括多个公钥,公钥来自数据源方中的密钥对,密钥对与数据标识集合中的数据标识一一对应。
其中,数据源方根据自身数据标识集合中的数据标识,生成与各个数据标识一一对应的密钥对,并将密钥对中的公钥发送给数据源代表,密钥对中的私钥则保存在数据源方。数据源代表接收到数据源方发送的公钥集合之后,将公钥集合发送给数据查询方。
具体的,公钥和私钥构成的密钥对属于非对称加密,这种加密方式的密钥是一对,发送方用其中的公钥将原始数据加密,再发出去;接收方用这对密钥的私钥将数据解密,以得到原始数据。由于公钥和私钥并不相同,所以叫做非对称加密。
S203,基于公钥集合中位于交集位置的公钥对对称密钥进行加密获得密钥密文,并向数据源代表发送密钥密文,以供数据源代表将密钥密文发送给数据源方。
其中,数据查询方接收到公钥集合后,选择公钥集合中位于交集位置的公钥对数据查询方选择的对称密钥进行加密,得到密钥密文,并将密钥密文发送给数据源代表。数据源代表接收到数据查询方发送的密钥密文之后,再将密钥密文发送给数据源方。
具体的,对称密钥是指在加密数据和解密数据时使用相同的密钥的加密方式,也被称为共享密钥或秘密密钥。在对称密钥加密中,发送方和接收方必须共享同一个密钥,在加密数据和解密数据时使用该密钥。加密过程包括将原始数据和对称密钥通过预定的算法进行组合,生成密文;而解密过程则是将密文和对称密钥输入到相同的算法中,以恢复出原始消息。
具体的,对称密钥是数据查询方随机选择的。
S204,接收来自数据源代表的信息密文集合,并基于对称密钥对信息密文集合中位于交集位置的信息密文进行解密,获得查询结果;其中,信息密文集合包括多个信息密文,信息密文是数据源方基于与数据标识对应的密钥对中的私钥对密钥密文进行解密获得加密密钥,并利用加密密钥对与数据标识关联的数据信息进行加密获得的。
其中,数据源方接收到密钥密文后,通过密钥对中的私钥对密钥密文进行解密,会获得多个与数据标识一一对应的加密密钥,再利用这些加密密钥对数据标识关联的数据信息进行加密,获得加密后的信息密文组成信息密文集合,并将信息密文集合发送给数据源代表。
其中,由于密钥密文是利用交集位置处的公钥加密获得的,所以也只有位于交集位置处的私钥解密得到的加密密钥才是正确的,也即只有位于交集位置处的私钥解密得到加密密钥才会与数据查询方的对称密钥一致,只有通过位于交集位置处的私钥解密得到加密密钥加密的数据信息,后续才能被数据查询方的对称密钥正确解密恢复。
由于只有位于交集位置处的私钥解密得到的加密密钥是正确的,那么相应的,数据查询方中的对称密钥也只有对位于交集位置处的信息密文进行解密,才能够获取到正确的数据信息。因此,数据源代表将信息密文集合发送至数据查询方之后,数据查询方利用对称密钥对位于交集位置处的信息密文进行解密,便可以获得查询结果。而其他的信息密文由于不能正确解密,所以并不会泄露数据源方除查询结果之外的其他数据。
在本实施例中,可以看出,数据查询方能够接触到的数据源方发送的数据包括公钥集合、信息密文集合,其中,除了信息密文集合中在交集位置处的数据能够被数据查询方正确解密作为查询结果之外,其他数据要么不包含隐私数据,要么不能正确解密,数据查询方不能获得除查询结果之外其他任何关于数据源方的隐私信息。相应的,数据源方能够接触到的只有数据查询方发送的密钥密文,密钥密文也不包含任何关于数据查询方的隐私信息,数据源方也不会知道数据查询方的任何查询信息。
因此,通过在数据源方中选择数据源代表作为第三方进行数据查询交互,首先利用隐私集合求交算法获取数据查询方的查询标识和数据源方的数据标识集合的隐私交集,通过隐私交集在数据标识集合中的交集位置,在不泄露数据查询方和数据源方双方信息的前提下,得到数据查询方想要查询的数据信息在数据源方中的位置。然后通过密钥对、对称密钥以及交集位置对后续传输的数据信息进行相应的加密与解密操作,进一步在不泄露数据查询方和数据源方双方信息的前提下,使数据查询方能够获得正确的查询结果。在数据查询过程中,保障了数据查询方和数据源方双方的数据匿名性,解决了数据源方的信息泄露问题,实现了双向的数据匿踪查询,提高了数据查询的隐私安全性。
在一些实施例中,方法还包括:生成第一随机数;接收来自各个数据源方的第二随机数;基于第一随机数和各个数据源方的第二随机数,获取各个数据源方的代表指数;将各个数据源方的代表指数进行比对,确定代表指数最小的数据源方作为数据源代表。
具体的,代表指数满足如下公式:
其中,Ti表示第i个数据源方的代表指数,ti表示第i个数据源方的第二随机数,t′表示第一随机数,表示各个数据源方的第二随机数的平均数。
其中,上述公式可以使生成的代表指数具有更好的随机性,代表指数的随机性越好,则表明基于代表指数选择的数据源代表也将越公平,其目的是通过上述公式,使得各个数据源方都有平等的机会被选择为数据源代表。
图3为本申请实施例提供的另一种数据匿踪查询方法的流程示意图,参阅图3,在一些实施例中,该数据匿踪查询方法应用于数据源代表,数据源代表对应多个数据源方中的其中一个,数据源代表与数据查询方以及除数据源代表之外的其他数据源方连接,其流程包括以下步骤:
S301,求取数据查询方中查询标识与数据源方中数据标识集合的隐私交集;其中,隐私交集基于隐私集合求交算法求取。
S302,向数据查询方发送隐私交集在数据标识集合中的交集位置,以及来自数据源方的公钥集合;其中,公钥集合包括多个公钥,公钥来自数据源方中的密钥对,密钥对与数据标识集合中的数据标识一一对应。
S303,向数据源方发送来自数据查询方的密钥密文;其中,密钥密文是数据查询方基于公钥集合中位于交集位置的公钥对数据查询方中的对称密钥进行加密获得的。
S304,接收来自数据源方的信息密文集合;其中,信息密文集合包括多个信息密文,信息密文是数据源方基于与数据标识对应的密钥对中的私钥对密钥密文进行解密获得加密密钥,并利用加密密钥对与数据标识关联的数据信息进行加密获得的。
S305,向数据查询方发送信息密文集合;其中,信息密文集合用于数据查询方基于对称密钥,对信息密文集合中位于交集位置处的信息密文进行解密,获得查询结果。
在本实施例中,需要说明的是,图3所示的流程中,各步骤的实现原理和技术效果可参阅前文关于图2的相关说明,在此不再赘述。
在图3所示的数据匿踪查询方法中,需要对数据查询方中查询标识与数据源方中数据标识集合进行隐私集合求交,下面结合图4,对上述数据匿踪查询方法的技术方案中,关于进行隐私集合求交的内容做进一步介绍。
图4为本申请实施例提供的一种隐私求交算法的流程示意图,参阅图4,在一些实施例中,该隐私求交算法的流程包括以下步骤:
S401,接收来自数据查询方的第一密文和第三随机数;其中,第一密文是数据查询方利用第三随机数对查询标识进行椭圆曲线加密获得的。
S402,接收来自数据源方的第二密文集合和第四随机数;其中,第二密文集合是数据源方利用第四随机数对数据标识集合中的数据标识进行椭圆曲线加密获得的。
S403,利用第四随机数对第一密文进行椭圆曲线加密,获得第三密文。
S404,利用第三随机数对第二密文集合中的第二密文进行椭圆曲线加密,获得第四密文集合。
S405,对第三密文和第四密文集合进行求交,获得隐私交集。
在本实施例中,由于椭圆曲线加密算法属于乘法半同态加密算法,其满足密钥交换律。具体的,假设有数据A,随机数a和b,利用乘法半同态加密算法对数据A进行二次加密时,满足(Aa)b=(Ab)a。基于此原理,则数据查询方中的查询标识和数据源方中的数据标识在交换随机数后进行两次乘法半同态加密之后,如果查询标识与数据标识一致,那么它们的二次加密数据也应该相同,隐私交集代表的就是与查询标识相同的数据标识,那么隐私交集对应的数据标识关联的数据信息就是对应的查询结果。
具体的,如果隐私交集为空,则表明没有在数据源方中查询到对应的数据。
优选的,在对第三密文和第四密文集合进行求交之前,将第四密文集合中第四密文的顺序进行打乱,并获得打乱排序;在将从数据源方接收的公钥集合发送至数据查询方之前,将公钥集合中公钥按打乱排序进行打乱;在将信息密文集合发送至数据查询方之前,将信息密文集合中信息密文按打乱排序进行打乱。
具体的,将第四密文集合中第四密文的顺序进行打乱,包括:生成与各个第四密文一一对应的第五随机数;针对各个第四密文,基于各个第四密文对应的第五随机数,获取第四密文的排序指数;基于第四密文的排序指数的数值大小,根据预设排序规则对第四密文进行排序;其中,排序指数符合如下公式:
其中,s′i表示第i个第四密文的排序指数,si表示第i个第四密文对应的第五随机数,sj表示第j个第四密文对应的第五随机数,n表示第四密文集合中第四密文的个数。
其中,通过上述公式,可以获得随机生成的排序指数,以尽可能公平地将各个第四密文进行随机排序。
其中,本申请的数据匿踪查询方法除了适用于一个数据查询方和一个数据源方的查询场景下,同样也适用于一个数据查询方和多个数据源方,以及多个数据查询方与多个数据源方的数据查询场景。
在涉及多个数据源方的场景下,第四密文集合、公钥集合和信息密文集合中的数据来自于多个数据源方,为了避免数据源方身份信息的泄露问题,比如猜测相邻的两个数据来自一个数据源方,可以将上述集合中的数据顺序进行打乱,这样便可以避免从数据的顺序中获得数据源方的相关信息。
同时,由于查询结果是通过隐私交集的交集位置确定的,所以上述集合在进行打乱时,还应该保持相同的打乱顺序,以保障通过隐私交集的交集位置能够获得正确的数据。通过对以上数据进行数据排序打乱操作,可以在保障数据查询方和数据源方的数据安全性之外,还可以使得数据查询方不能推测查询的数据来自哪些数据源方。
图5为本申请实施例提供的又一种数据匿踪查询方法的流程示意图,参阅图5,在一些实施例中,该数据匿踪查询方法应用于数据源方,数据源方与数据源代表连接,数据源代表与数据查询方连接,其流程包括以下步骤:
S501,向数据源代表发送公钥集合,以供数据源代表将公钥集合发送给数据查询方;其中,公钥集合包括多个公钥,公钥来自数据源方中的密钥对,密钥对与数据标识集合中的数据标识一一对应。
S502,接收来自数据源代表的密钥密文;其中,密钥密文是数据查询方基于公钥集合中位于交集位置的公钥对数据查询方中的对称密钥进行加密获得的;交集位置是数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交后,获得的隐私交集在数据标识集合中的位置。
S503,对于数据标识集合中的各个数据标识,利用加密密钥对与数据标识关联的数据信息进行加密,获得信息密文;其中,加密密钥是利用与数据标识对应的密钥对中的私钥对密钥密文进行解密获得。
S504,向数据源代表发送多个信息密文构成的信息密文集合,以供数据源方向数据查询方发送信息密文集合;其中,信息密文集合用于数据查询方利用对称密钥,对信息密文集合中位于交集位置的信息密文进行解密,获得查询结果。
在本实施例中,需要说明的是,图5所示的流程中,各步骤的实现原理和技术效果可参阅前文关于图2的相关说明,在此不再赘述。
图6为本申请实施例提供的再一种数据匿踪查询方法的流程示意图,参阅图6,在一些实施例中,该数据匿踪查询方法应用于数据匿踪查询系统,其流程包括以下步骤:
S601,数据查询方利用第三随机数对查询标识进行椭圆曲线加密,获得第一密文。
S602,数据查询方将第一密文和第三随机数发送至数据源代表。
S603,数据源方利用第四随机数对数据关键字集合中的数据关键字进行椭圆曲线加密,获得第二密文集合。
S604,数据源方将第二密文集合和第四随机数发送至数据源代表。
S605,数据源代表利用第三随机数对第一密文进行椭圆曲线加密,获得第三密文。
S606,数据源代表利用第四随机数对第二密文集合中的第二密文进行椭圆曲线加密,获得第四密文集合。
S607,数据源代表对第三密文和第四密文集合进行求交,获得隐私交集。
S608,数据源代表根据隐私交集在第四密文集合中的位置,确定隐私交集在数据标识集合中的交集位置。
S609,数据源代表将交集位置发送至数据查询方。
S610,数据源方将公钥集合发送至数据源代表;其中,公钥集合包括多个公钥,公钥来自数据源方中的密钥对,密钥对与数据标识集合中的数据标识一一对应。
S611,数据源代表接收公钥集合之后,将公钥集合发送给数据查询方。
S612,数据查询方利用公钥集合中位于交集位置的公钥对对称密钥进行加密,获得密钥密文。
S613,数据查询方将密钥密文发送给数据源代表。
S614,数据源代表接收密钥密文之后,将密钥密文发送给数据源方。
S615,数据源方接收密钥密文之后,利用与数据标识对应的密钥对中的私钥对密钥密文进行解密,获得加密密钥。
S616,数据源方利用与数据标识对应的加密密钥,对与数据标识关联的数据信息进行加密,获得信息密文集合。
S617,数据源方将信息密文集合发送至数据源代表。
S618,数据源代表接收信息密文集合之后,将信息密文集合发送至数据查询方。
S619,数据查询方接收信息密文集合之后,利用对称密钥对信息密文集合中,位于交集位置处的信息密文进行解密,获得查询结果。
在本实施例中,需要说明的是,图6所示的流程中,各步骤的实现原理和技术效果可参阅前文关于图2的相关说明,在此不再赘述。
下面,将以一个具体的实施例对本申请的数据匿踪查询方法在一个实际的应用场景中的示例性应用进行阐述。
在一个具体的实施例中,假设甲银行在为某客户办理贷款时,需要核验该客户在其他银行的贷款金额,但是甲银行在查询时,不想泄露客户的个人身份信息,同时,其他银行在反馈信息时,也不想泄露自己的身份信息。
具体的,假设甲银行(即数据查询方)为C,需要查询的客户身份信息为ID′,这里的ID′即数据查询方的查询标识。
具体的,假设n个其他银行(即数据源方)分别为S1,S2,…,Sn,数据源方Si假设包含有m条数据,则数据源方具有的数据可以表示为((IDi,1,Mi,1),(IDi,2,Mi,2),…,(IDi,m,Mi,m)),1≤i≤n。这里可以简单的理解为IDi,m为其他银行拥有的客户身份信息,也就是数据源方的数据标识。Mi,m为客户所属的相关数据,例如客户在银行的贷款金额,也就是数据源方中与数据标识关联的数据信息。
具体的,假设从数据源方中选取的数据源代表为S′。
在上述客户贷款金额的查询场景下,本申请的数据匿踪查询方法可以应用到在包括甲银行(数据查询方)、其他银行(数据源方、数据源代表)构建的数据匿踪查询系统之中,具体过程包括:
步骤1,甲银行C选择随机数r′,其他银行Si选择随机数ri(1≤i≤n)。这里的随机数用来在隐私集合求交的过程中来加密客户身份信息,以便在不知道对方拥有的客户信息数据集基础上,找出交集。
步骤2,甲银行C利用随机数r′对要查询的客户身份信息ID做椭圆曲线加密,得到要查询客户的身份信息密文E(ID′,r′),并将E(ID,r′)、随机数r′和数字签名发送给数据源代表为S′,并将其存证信息(二次哈希值)上传至区块链。
其中,在此处与后续步骤中,将相关数据上传至区块链存证的目的是为了防止恶意数据查询方或恶意数据源方提供假的数据,若是有参与方提供假的数据,后续可以根据区块链链上存证的信息进行校验,发现提供假数据的参与方身份。由于数据查询方和数据源方之间不会泄露任何额外信息,数据源方无法知晓数据查询方的查询记录,保护了数据查询方的查询隐私,然而却无法对查询记录进行存证,监管方无法对数据查询方的查询记录进行审计。数据源方也希望数据查询方的查询记录可存证,数据查询方可认证。并且,监管方也需要对数据查询方的查询进行审计。
步骤3,其他银行Si分别利用随机数ri对自身所拥有的所有客户身份信息IDi,m,依次进行椭圆曲线加密,可得到拥有的客户身份信息密文向量(E(IDi,1,ri),E(IDi,2,ri),...,E(IDi,m,ri)),1≤i≤n,然后将身份信息密文向量、随机数ri和数字签名发送给数据源代表为S′,并将其存证信息(二次哈希值)上传至区块链链。
步骤4,数据源代表为S′接收到甲银行C和所有的数据源方Si的信息后,分别用r′对Si的身份信息密文向量(E(IDi,1,ri),E(IDi,2,ri),...,E(IDi,m,ri))进行椭圆曲线加密,可得到其他银行拥有的身份信息密文向量的二次密文向量(E(E(IDi,1,ri),r′),E(E(IDi,2,ri),r′),...,E(E(IDi,m,ri),r′))。同时,用ri对E(ID′,r′)进行加密,得到要查询的客户身份信息密文的二次密文向量E(E(ID′,r′),ri)。
步骤5,将其他银行拥有的所有身份信息的二次密文向量打乱排序,然后得到(E(E(IDi,1,ri),r′),E(E(IDi,2,ri),r′),...,E(E(IDi,m,ri),r′))和E(E(ID′,r′),ri)的交集,并将交集中的元素在身份信息的二次密文向量中的位置信息记录下来,这里我们假设隐私交集中的元素为(in′,jm′)。
由于要查询的客户可能在多个银行中都存在贷款记录,所以最终获得的隐私交集中也可能包含多个元素,每个元素表示甲银行要查询的客户身份信息与其他银行拥有的客户身份的二次密文向量是一样的,即此处就是其他银行与甲银行要查询的客户身份一致的客户。
最后数据源代表将计算出的二次密文向量(E(E(IDi,1,ri),r′),E(E(IDi,2,ri),r′),...,E(E(IDi,m,ri),r′))、用不同随机数加密的查询信息二次密文E(E(ID′,r′),ri)分别进行上传区块链存证,具体的,存证信息的产生方式可以采用二次哈希值。
步骤6,数据源代表为S′将隐私交集的位置信息发送给甲银行C之后,然后C随机选择对称密钥k′。具体的,这里以高级加密标准(Advanced Encryption Standard,AES)加密为例,当然,也可以用其他对称加密算法。
步骤7,其他银行Si选择m对密钥对,每个密钥对与Si拥有的客户信息一一对应((ki,1,pri,ki,1,pub),(ki,2,pri,ki,2,pub),...,(ki,m,pri,ki,m,pub)),Si将私钥(ki,1,pri,ki,2,pri,...,ki,m,pri)保存,并将公钥(ki,1,pub,ki,2,pub,...,ki,m,pub)发送给数据源代表为S′。其中,这里1≤i≤n。
步骤8,数据源代表为S′收到所有数据源方Si发送的公钥信息后,采用与步骤5中打乱所有数据源方二次密文向量的同样方法,将所有的公钥信息(ki,1,pub,ki,2,pub,...,ki,m,pub)(1≤i≤n)按照相同的顺序进行打乱,并将公钥信息的存证信息(存证信息的生产方式可以采用二次哈希)上传至区块链,同时将打乱的公钥信息发送给甲银行C。
步骤9,甲银行C收到公钥信息后,利用位置在(in′,jm′)的公钥对在步骤6中选择的对称密钥k′进行加密,可得到密钥密文/>并将该密钥密文发送给数据源代表为S′。数据源代表为S′再将其发送给对应的其他银行Si,同时将该信息的存证信息(存证信息的产生方式可以采用二次哈希值)上传区块链。
步骤10,其他银行Si在收到密钥密文后,利用自己保存的私钥(ki,1,pri,ki,2,pri,...,ki,m,pri)对其进行解密,可得到m个解密结果(ki,1,ki,2,...,ki,m),然后其他银行Si用(ki,1,ki,2,...,ki,m)分别对其拥有的用户属性Mi,m进行加密,可得到信息密文向量(E(Mi,1,ki,1),E(Mi,2,ki,2),...,E(Mi,m,ki,m)),数据源方Si将信息密文向量发送给数据源代表为S′。
步骤11,数据源代表为S′收到密文向量后将其采用步骤5中打乱所有数据源方二次密文向量的同样方法,将所有的(E(Mi,1,ki,1),E(Mi,2,ki,2),...,E(Mi,m,ki,m))(1≤i≤n)按照相同的顺序进行打乱,并将其发送给甲银行C,同时将其存证信息(存证信息的生产方式可以采用二次哈希)进行上传至区块链。
步骤12,甲银行C采用步骤6中的对称密钥k′对位置在(in′,jm′)的加密数据进行解密,即可得到想要的数据/>即要查询的用户在其他银行Si的贷款金额。
在本实施例中,甲银行除了获得要查询客户在其他银行的贷款金额之外,不会获得其他任何关于其他银行的相关信息,其他银行也不会获得关于甲银行和要查询客户的任何信息,实现了甲银行和其他银行在数据查询过程中的双向匿踪。
图7是本申请实施例提供的一种数据匿踪查询装置的结构示意图,参阅图7,该数据匿踪查询装置包括用于实现前述数据匿踪查询方法的各个功能模块,任意功能模块可以通过软件和/或硬件的方式实现。
在一些实施例中,一种数据匿踪查询装置700,应用于数据查询方,数据查询方与数据源代表连接,数据源代表对应多个数据源方中的其中一个,数据源代表与除数据源代表之外的其他数据源方连接,该装置包括第一收发模块701、密钥加密模块702和数据解密模块703,其中:
第一收发模块701用于接收来自数据源代表的交集位置;其中,交集位置是数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交获得的隐私交集在数据标识集合中的位置;
第一收发701模块用于接收来自数据源代表的公钥集合;其中,公钥集合包括多个公钥,公钥来自数据源方中的密钥对,密钥对与数据标识集合中的数据标识一一对应;
密钥加密模块702用于基于公钥集合中位于交集位置的公钥对对称密钥进行加密获得密钥密文,并向数据源代表发送密钥密文,以供数据源代表将密钥密文发送给数据源方;
数据解密模块703用于接收来自数据源代表的信息密文集合,并基于对称密钥对信息密文集合中位于交集位置的信息密文进行解密,获得查询结果;其中,信息密文集合包括多个信息密文,信息密文是数据源方基于与数据标识对应的密钥对中的私钥对密钥密文进行解密获得加密密钥,并利用加密密钥对与数据标识关联的数据信息进行加密获得的。
在一些实施例中,该装置还包括代表确定模块704,该代表确定模块704具体用于:
生成第一随机数;
接收来自各个数据源方的第二随机数;
基于第一随机数和各个数据源方的第二随机数,获取各个数据源方的代表指数;
将各个数据源方的代表指数进行比对,确定代表指数最小的数据源方作为数据源代表。在一些实施例中,代表指数满足如下公式:
Ti=(ti-t′)2+(ti-t-)2
其中,Ti表示第i个数据源方的代表指数,ti表示第i个数据源方的第二随机数,t′表示第一随机数,表示各个数据源方的第二随机数的平均数。
本申请实施例提供的数据匿踪查询装置用于执行图2所示基于数据匿踪查询方法实施例提供的技术方案,其实现原理和技术效果与前述方法的实施例中类似,在此不再赘述。
图8是本申请实施例提供的一种数据匿踪查询装置的结构示意图,参阅图8,该数据匿踪查询装置包括用于实现前述数据匿踪查询方法的各个功能模块,任意功能模块可以通过软件和/或硬件的方式实现。
在一些实施例中,一种数据匿踪查询装置800,应用于数据源代表,数据源代表对应多个数据源方中的其中一个,数据源代表与数据查询方以及除数据源代表之外的其他数据源方连接,该装置包括隐私集合求交模块801和第二收发模块802,其中:
隐私集合求交模块801用于求取数据查询方中查询标识与数据源方中数据标识集合的隐私交集;其中,隐私交集基于隐私集合求交算法求取;
第二收发模块802用于向数据查询方发送隐私交集在数据标识集合中的交集位置,以及来自数据源方的公钥集合;其中,公钥集合包括多个公钥,公钥来自数据源方中的密钥对,密钥对与数据标识集合中的数据标识一一对应;
第二收发模块802用于向数据源方发送来自数据查询方的密钥密文;其中,密钥密文是数据查询方基于公钥集合中位于交集位置的公钥对数据查询方中的对称密钥进行加密获得的;
第二收发模块802用于接收来自数据源方的信息密文集合;其中,信息密文集合包括多个信息密文,信息密文是数据源方基于与数据标识对应的密钥对中的私钥对密钥密文进行解密获得加密密钥,并利用加密密钥对与数据标识关联的数据信息进行加密获得的;
第二收发模块802用于向数据查询方发送信息密文集合;其中,信息密文集合用于数据查询方基于对称密钥,对信息密文集合中位于交集位置处的信息密文进行解密,获得查询结果。
在一些实施例中,该隐私集合求交模块801具体用于:
接收来自数据查询方的第一密文和第三随机数;其中,第一密文是数据查询方利用第三随机数对查询标识进行椭圆曲线加密获得的;
接收来自数据源方的第二密文集合和第四随机数;其中,第二密文集合是数据源方利用第四随机数对数据标识集合中的数据标识进行椭圆曲线加密获得的;
基于第四随机数对第一密文进行椭圆曲线加密,获得第三密文;
基于第三随机数对第二密文集合中的第二密文进行椭圆曲线加密,获得第四密文集合;
对第三密文和第四密文集合进行求交,获得隐私交集。
在一些实施例中,该装置还包括数据乱序模块803,该数据乱序模块803具体用于:
在对第三密文和第四密文集合进行求交之前,将第四密文集合中第四密文的顺序进行打乱,并获得打乱排序;
在将从数据源方接收的公钥集合发送至数据查询方之前,将公钥集合中公钥按打乱排序进行打乱;
在将信息密文集合发送至数据查询方之前,将信息密文集合中信息密文按打乱排序进行打乱。
在一些实施例中,该数据乱序模块803具体还用于:
生成与各个第四密文一一对应的第五随机数;
针对各个第四密文,基于各个第四密文对应的第五随机数,获取第四密文的排序指数;
基于第四密文的排序指数的数值大小,根据预设排序规则对第四密文进行排序;
其中,排序指数符合如下公式:
其中,s′i表示第i个第四密文的排序指数,si表示第i个第四密文对应的第五随机数,sj表示第j个第四密文对应的第五随机数,n表示第四密文集合中第四密文的个数。
本申请实施例提供的数据匿踪查询装置800用于执行图3所示基于数据匿踪查询方法实施例提供的技术方案,其实现原理和技术效果与前述方法的实施例中类似,在此不再赘述。
图9是本申请实施例提供的一种数据匿踪查询装置的结构示意图,参阅图9,该数据匿踪查询装置包括用于实现前述数据匿踪查询方法的各个功能模块,任意功能模块可以通过软件和/或硬件的方式实现。
在一些实施例中,一种数据匿踪查询装置900,应用于数据源方,数据源方与数据源代表连接,数据源代表与数据查询方连接,该装置包括第三收发模块901和数据加密模块902,其中:
第三收发模块901用于向数据源代表发送公钥集合,以供数据源代表将公钥集合发送给数据查询方;其中,公钥集合包括多个公钥,公钥来自数据源方中的密钥对,密钥对与数据标识集合中的数据标识一一对应;
第三收发模块901用于接收来自数据源代表的密钥密文;其中,密钥密文是数据查询方基于公钥集合中位于交集位置的公钥对数据查询方中的对称密钥进行加密获得的;交集位置是数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交后,获得的隐私交集在数据标识集合中的位置;
数据加密模块902用于对于数据标识集合中的各个数据标识,利用加密密钥对与数据标识关联的数据信息进行加密,获得信息密文;其中,加密密钥是利用与数据标识对应的密钥对中的私钥对密钥密文进行解密获得;
第三收发模块901用于向数据源代表发送多个信息密文构成的信息密文集合,以供数据源方向数据查询方发送信息密文集合;其中,信息密文集合用于数据查询方利用对称密钥,对信息密文集合中位于交集位置的信息密文进行解密,获得查询结果。
本申请实施例提供的数据匿踪查询装置900用于执行图5所示基于数据匿踪查询方法实施例提供的技术方案,其实现原理和技术效果与前述方法的实施例中类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,密钥加密模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上密钥加密模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图10为本申请实施例提供的一种电子设备的结构示意图,参阅图10,该电子设备1000包括:处理器1001,以及与该处理器1001通信连接的存储器1002;
存储器1002存储计算机执行指令;
处理器1001执行存储器1002存储的计算机执行指令,以实现前述数据匿踪查询方法的技术方案。
在上述电子设备1000中,存储器1002、处理器1001之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。总线可以是工业标准体系结构(IndustryStandard Architecture,简称:ISA)总线、外部设备互连(Peripheral ComponentInterconnect,简称:PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称:EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。存储器1002中存储有实现前述数据匿踪查询方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器1002中的软件功能模块,处理器1001通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器1002至少包括一种类型的可读存储介质,不限于随机存取存储器(RandomAccess Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(Programmable Read-Only Memory,简称:PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,简称:EPROM),电可擦除只读存储器(ElectricErasable Programmable Read-Only Memory,简称:EEPROM)等。其中,存储器1002用于存储程序,处理器1001在接收到执行指令后,执行程序。进一步地,上述存储器1002内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器1001可以是一种集成电路芯片,具有信号的处理能力。上述的处理器1001可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(Network Processor,简称:NP)、数字信号处理器(Digital Signal Processor,简称:DSP)、专用集成电路(Application Specific Integrated Circuit,简称:ASIC)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器,或者该处理器1001也可以是任何常规的处理器等。
该电子设备1000用于执行前述数据匿踪查询方法实施例提供的技术方案,其实现原理和技术效果与前述方法实施例中类似,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如前述数据匿踪查询方法的技术方案。
上述的计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。该计算机可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于数据匿踪查询装置的控制装置中。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时用于实现如前述数据匿踪查询方法的技术方案。
在上述实施例中,本领域技术人员可以理解,实现上述各方法实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线网络、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(Solid State Disk,简称:SSD))等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种数据匿踪查询方法,其特征在于,应用于数据查询方,所述数据查询方与数据源代表连接,所述数据源代表对应多个数据源方中的其中一个,所述数据源代表与除数据源代表之外的其他数据源方连接,包括:
接收来自所述数据源代表的交集位置;其中,所述交集位置是所述数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交获得的隐私交集在所述数据标识集合中的位置;
接收来自所述数据源代表的公钥集合;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
基于所述公钥集合中位于所述交集位置的公钥对对称密钥进行加密获得密钥密文,并向所述数据源代表发送所述密钥密文,以供所述数据源代表将所述密钥密文发送给所述数据源方;
接收来自所述数据源代表的信息密文集合,并基于所述对称密钥对所述信息密文集合中位于所述交集位置的信息密文进行解密,获得查询结果;其中,所述信息密文集合包括多个信息密文,所述信息密文是所述数据源方基于与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得加密密钥,并利用所述加密密钥对与所述数据标识关联的数据信息进行加密获得的。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成第一随机数;
接收来自各个数据源方的第二随机数;
基于所述第一随机数和各个数据源方的第二随机数,获取各个数据源方的代表指数;
将各个数据源方的代表指数进行比对,确定代表指数最小的数据源方作为数据源代表。
3.根据权利要求2所述的方法,其特征在于,所述代表指数满足如下公式:
其中,Ti表示第i个数据源方的代表指数,ti表示第i个数据源方的第二随机数,t′表示第一随机数,表示各个数据源方的第二随机数的平均数。
4.一种数据匿踪查询方法,其特征在于,应用于数据源代表,所述数据源代表对应多个数据源方中的其中一个,所述数据源代表与数据查询方以及除数据源代表之外的其他数据源方连接,包括:
求取数据查询方中查询标识与数据源方中数据标识集合的隐私交集;其中,所述隐私交集基于隐私集合求交算法求取;
向所述数据查询方发送所述隐私交集在所述数据标识集合中的交集位置,以及来自所述数据源方的公钥集合;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
向所述数据源方发送来自所述数据查询方的密钥密文;其中,所述密钥密文是所述数据查询方基于所述公钥集合中位于所述交集位置的公钥对所述数据查询方中的对称密钥进行加密获得的;
接收来自所述数据源方的信息密文集合;其中,所述信息密文集合包括多个信息密文,所述信息密文是所述数据源方基于与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得加密密钥,并利用所述加密密钥对与所述数据标识关联的数据信息进行加密获得的;
向所述数据查询方发送所述信息密文集合;其中,所述信息密文集合用于所述数据查询方基于所述对称密钥对所述信息密文集合中位于所述交集位置处的信息密文进行解密,获得查询结果。
5.根据权利要求4所述的方法,其特征在于,求取数据查询方中查询标识与数据源方中数据标识集合的隐私交集,包括:
接收来自所述数据查询方的第一密文和第三随机数;其中,所述第一密文是所述数据查询方利用所述第三随机数对所述查询标识进行椭圆曲线加密获得的;
接收来自所述数据源方的第二密文集合和第四随机数;其中,所述第二密文集合是所述数据源方利用所述第四随机数对所述数据标识集合中的数据标识进行椭圆曲线加密获得的;
基于所述第四随机数对所述第一密文进行椭圆曲线加密,获得第三密文;
基于所述第三随机数对所述第二密文集合中的第二密文进行椭圆曲线加密,获得第四密文集合;
对所述第三密文和所述第四密文集合进行求交,获得所述隐私交集。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在对所述第三密文和所述第四密文集合进行求交之前,将所述第四密文集合中第四密文的顺序进行打乱,并获得打乱排序;
在将从所述数据源方接收的公钥集合发送至所述数据查询方之前,将所述公钥集合中公钥按所述打乱排序进行打乱;
在将所述信息密文集合发送至所述数据查询方之前,将所述信息密文集合中信息密文按所述打乱排序进行打乱。
7.根据权利要求6所述的方法,其特征在于,将所述第四密文集合中第四密文的顺序进行打乱,包括:
生成与各个第四密文一一对应的第五随机数;
针对各个第四密文,基于各个第四密文对应的第五随机数,获取所述第四密文的排序指数;
基于所述第四密文的排序指数的数值大小,根据预设排序规则对所述第四密文进行排序;
其中,所述排序指数符合如下公式:
其中,si ′表示第i个第四密文的排序指数,si表示第i个第四密文对应的第五随机数,sj表示第j个第四密文对应的第五随机数,n表示第四密文集合中第四密文的个数。
8.一种数据匿踪查询方法,其特征在于,应用于数据源方,所述数据源方与数据源代表连接,所述数据源代表与数据查询方连接,包括:
向所述数据源代表发送公钥集合,以供所述数据源代表将所述公钥集合发送给所述数据查询方;其中,所述公钥集合包括多个公钥,所述公钥来自所述数据源方中的密钥对,所述密钥对与所述数据标识集合中的数据标识一一对应;
接收来自数据源代表的密钥密文;其中,所述密钥密文是所述数据查询方基于所述公钥集合中位于交集位置的公钥对所述数据查询方中的对称密钥进行加密获得的;所述交集位置是所述数据源代表基于隐私集合求交算法,对数据查询方中的查询标识与数据源方中的数据标识集合进行隐私集合求交后,获得的隐私交集在数据标识集合中的位置;
对于所述数据标识集合中的各个数据标识,利用加密密钥对与所述数据标识关联的数据信息进行加密,获得信息密文;其中,所述加密密钥是利用与所述数据标识对应的密钥对中的私钥对所述密钥密文进行解密获得;
向所述数据源代表发送多个信息密文构成的信息密文集合,以供所述数据源方向所述数据查询方发送所述信息密文集合;其中,所述信息密文集合用于所述数据查询方利用所述对称密钥,对所述信息密文集合中位于所述交集位置的信息密文进行解密,获得查询结果。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311329721.2A CN117371010A (zh) | 2023-10-13 | 2023-10-13 | 数据匿踪查询方法、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311329721.2A CN117371010A (zh) | 2023-10-13 | 2023-10-13 | 数据匿踪查询方法、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117371010A true CN117371010A (zh) | 2024-01-09 |
Family
ID=89401722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311329721.2A Pending CN117371010A (zh) | 2023-10-13 | 2023-10-13 | 数据匿踪查询方法、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117371010A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117579273A (zh) * | 2024-01-12 | 2024-02-20 | 蓝象智联(杭州)科技有限公司 | 一种不暴露交集id的隐私集合求交方法和系统 |
-
2023
- 2023-10-13 CN CN202311329721.2A patent/CN117371010A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117579273A (zh) * | 2024-01-12 | 2024-02-20 | 蓝象智联(杭州)科技有限公司 | 一种不暴露交集id的隐私集合求交方法和系统 |
CN117579273B (zh) * | 2024-01-12 | 2024-04-30 | 蓝象智联(杭州)科技有限公司 | 一种不暴露交集id的隐私集合求交方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11019040B2 (en) | Cloud key escrow system | |
US10268834B2 (en) | Privacy-preserving querying mechanism on privately encrypted data on semi-trusted cloud | |
CN112131316B (zh) | 应用于区块链系统的数据处理方法及装置 | |
CN111066017B (zh) | 私人数据处理 | |
US11374910B2 (en) | Method and apparatus for effecting a data-based activity | |
US8220040B2 (en) | Verifying that group membership requirements are met by users | |
EP4152197A1 (en) | Methods and systems for managing user data privacy | |
Cui et al. | A practical and efficient bidirectional access control scheme for cloud-edge data sharing | |
CN115203749B (zh) | 一种基于区块链的数据交易方法和系统 | |
CN113672949A (zh) | 用于广告多方隐私保护的数据传输方法及系统 | |
CN117371010A (zh) | 数据匿踪查询方法、电子设备和可读存储介质 | |
CN111008855A (zh) | 一种基于改进代理重加密的追溯数据访问控制方法 | |
US11637817B2 (en) | Method and apparatus for effecting a data-based activity | |
WO2021134897A1 (zh) | 区块链供应链交易隐藏动态监管系统及方法 | |
CN117371011A (zh) | 数据隐匿查询方法、电子设备和可读存储介质 | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
CN112887087B (zh) | 数据管理方法、装置、电子设备及可读存储介质 | |
Yoosuf | Lightweight fog‐centric auditing scheme to verify integrity of IoT healthcare data in the cloud environment | |
CN114514550A (zh) | 将请求分区成区块链的交易 | |
KR20180136267A (ko) | 동형 암호화를 이용한 개인 정보 보호 방법 | |
CN117390675A (zh) | 数据查询方法、电子设备和可读存储介质 | |
CN113342802A (zh) | 区块链数据存储的方法和装置 | |
CN114691759B (zh) | 数据查询统计方法、装置、计算机设备及存储介质 | |
CN117749394A (zh) | 一种多方安全供应商评价方法、系统、设备和介质 | |
CN115549986A (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 |