CN117371011A - 数据隐匿查询方法、电子设备和可读存储介质 - Google Patents
数据隐匿查询方法、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN117371011A CN117371011A CN202311331387.4A CN202311331387A CN117371011A CN 117371011 A CN117371011 A CN 117371011A CN 202311331387 A CN202311331387 A CN 202311331387A CN 117371011 A CN117371011 A CN 117371011A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- data source
- server
- ciphertext
- 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 71
- 238000004422 calculation algorithm Methods 0.000 claims description 39
- 230000006870 function Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012550 audit 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
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method 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
- 238000009877 rendering Methods 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
- 238000012795 verification 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据隐匿查询方法、电子设备和可读存储介质,可用于数据处理领域。该方法应用于服务器代表,包括:获取数据源服务器中标识字段集合与查询客户端中查询字段的隐私交集,并将隐私交集在标识字段集合中的交集位置发送给查询客户端;将从数据源服务器接收的第一公钥集合发送给查询客户端;将从查询客户端接收的密钥密文发送给数据源服务器;接收数据源服务器发送的数据字段密文集合;将各个位于交集位置处的目标字段密文相加之和发送给查询客户端,以供查询客户端进行解密,获得查询结果。本申请的方法,解决了在一个查询客户端对应多个数据源服务器的数据查询场景下,无法保障查询客户端与数据源服务器双方数据隐私性的问题。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种数据隐匿查询方法、电子设备和可读存储介质。
背景技术
数据隐匿查询,也称数据匿踪查询或隐私信息检索(Private InformationRetrieval,PIR),是指查询方隐藏被查询对象的关键词或标识信息,数据源方提供匹配的查询结果却无法获知具体对应哪个查询对象。数据不出门且能计算,杜绝数据缓存、数据泄漏、数据贩卖的可能性。
数据查询系统一般包括查询客户端和数据源服务器,数据匿踪查询的目标是保证查询客户端向数据源服务器提交查询请求时,在查询信息不被感知与泄露的前提下完成查询。即对于数据源服务器来说,只知道有查询的到来,但是不知道真正的查询条件,也不知道查询方的身份信息。
在现有的数据隐匿查询技术中,一般只针对一个查询客户端与一个数据源服务器的数据查询场景,在一些一对多(一个查询客户端对应多个数据源服务器)的数据查询场景下,例如在金融领域,金融机构需要查询用户在多个金融机构的存款总额,就会涉及到一个金融机构(查询客户端)和多个其他金融机构(数据源服务器)。现有的数据隐匿查询技术中,无法保证在一对多的数据查询场景下,仍能保障查询客户端与数据源服务器双方数据的隐私性。
发明内容
本申请提供一种数据隐匿查询方法、电子设备和可读存储介质,用以解决现有数据匿踪查询方法,在一个查询客户端对应多个数据源服务器的数据查询场景下,无法保障查询客户端与数据源服务器双方数据隐私性的问题。
根据本申请的第一方面,本申请了提供一种数据隐匿查询方法,应用于服务器代表,所述服务器代表对应多个数据源服务器中的其中一个,所述服务器代表与所述查询客户端以及除服务器代表之外的其他数据源服务器连接,包括:
针对各个数据源服务器,基于隐私集合求交算法获取所述数据源服务器中标识字段集合与所述查询客户端中查询字段的隐私交集,并将所述隐私交集在所述标识字段集合中的交集位置发送给所述查询客户端;
针对各个数据源服务器,将从所述数据源服务器接收的第一公钥集合发送给所述查询客户端;其中,所述第一公钥集合包括多个第一公钥,所述第一公钥属于所述数据源服务器中的第一密钥对,所述第一密钥对与所述标识字段集合中的标识字段一一对应;
针对各个数据源服务器,将从所述查询客户端接收的密钥密文发送给所述数据源服务器;其中,所述密钥密文是所述查询客户端利用加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得,所述加密公钥是所述数据源服务器对应的第一公钥集合中位于交集位置的第一公钥;
针对各个数据源服务器,接收所述数据源服务器发送的数据字段密文集合,并获取所述数据字段密文集合中位于所述交集位置处的数据字段密文,得到所述数据源服务器的目标字段密文;其中,所述数据字段密文集合包括多个数据字段密文,所述数据字段密文是所述数据源服务器利用数据加密密钥对与所述标识字段关联的数据字段进行加密获得,所述数据加密密钥是利用与所述标识字段对应的第一密钥对中的第一私钥对所述密钥密文进行解密获得;
将各个目标字段密文相加之和发送给所述查询客户端,以供所述查询客户端利用所述加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
在一种可行的实施方式中,基于隐私集合求交算法获取所述数据源服务器中标识字段集合与所述查询客户端中查询字段的隐私交集,包括:
接收所述查询客户端发送的第一密文和第一随机数,以及所述数据源服务器发送的第二密文集合和第二随机数;其中,所述第一密文是利用所述第一随机数对所述查询字段进行椭圆曲线加密获得,所述第二密文集合是利用所述第二随机数对所述标识字段集合中的标识字段进行椭圆曲线加密获得;
利用所述第二随机数对所述第一密文进行椭圆曲线加密获得第三密文,利用所述第一随机数对所述第二密文集合中的第二密文进行椭圆曲线加密获得第四密文集合;
对所述第三密文和所述第四密文集合进行求交,获得所述隐私交集。
在一种可行的实施方式中,所述方法还包括:
将所述第一密文、所述第一随机数、所述第二密文集合和所述第二随机数,以及所述第一公钥集合和所述数据字段密文集合上传至区块链存证。
在一种可行的实施方式中,所述方法还包括:
基于预存的加密算法生成第二密钥对,并将所述第二密钥对中的第二公钥发送给所述数据发送方;
其中,所述数据发送方包括查询客户端或除服务器代表之外的其他数据源服务器,所述第二公钥用于所述数据发送方对发送给所述服务器代表的数据进行加密,所述第二密钥对中的第二私钥用于所述服务器代表对接收至所述数据发送方的数据进行解密。
在一种可行的实施方式中,所述方法还包括:
接收所述数据接收方发送的第三公钥;其中,所述数据接收方包括查询客户端或除服务器代表之外的其他数据源服务器,所述第三公钥属于第三密钥对,所述第三密钥对是所述数据接收方基于预存的加密算法生成的;
其中,所述第三公钥用于所述服务器代表对发送给所述数据接收方的数据进行加密,所述第三密钥对中的第三私钥用于所述数据接收方对接收至所述服务器代表的数据进行解密。
根据本申请的第二方面,本申请了提供了一种数据隐匿查询方法,包括,应用于查询客户端,所述查询客户端与服务器代表连接,所述服务器代表对应多个数据源服务器中的其中一个,所述服务器代表与除服务器代表之外的其他数据源服务器连接,包括:
接收所述服务器代表发送的各个交集位置;其中,针对各个数据源服务器,所述交集位置是所述服务器代表基于隐私集合求交算法,对所述数据源服务器中的标识字段集合与所述查询客户端中的查询字段进行隐私集合求交获得的隐私交集在所述标识字段集合中的位置;
接收所述服务器代表发送的各个第一公钥集合;其中,针对各个数据源服务器,所述第一公钥集合包括多个第一公钥,所述第一公钥属于所述数据源服务器中的第一密钥对,所述第一密钥对与所述标识字段集合中的标识字段一一对应;
针对各个数据源服务器,利用所述数据源服务器对应的加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得密钥密文,并将所述密钥密文发送给所述服务器代表,以用于所述服务器代表将所述密钥密文发送给所述数据源服务器;其中,所述加密公钥是所述数据源服务器对应的第一公钥集合中位于交集位置的第一公钥;
接收所述服务器代表发送的各个数据源服务器的目标字段密文相加之和;其中,针对各个数据源服务器,所述数据源服务器的目标字段密文是数据字段密文集合中位于交集位置的数据字段密文,所述数据字段密文集合包括多个数据字段密文,所述数据字段密文是所述数据源服务器利用数据加密密钥对与所述标识字段关联的数据字段进行加密获得,所述数据加密密钥是利用与所述标识字段对应的第一密钥对中的第一私钥对所述密钥密文进行解密获得;
利用所述加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
在一种可行的实施方式中,所述方法还包括:
对各个数据源服务器按顺序进行编号;其中,所述数据源服务器的编号M是小于等于数据源服务器数量N的正整数;
生成第三随机数;
基于所述第三随机数,获取代表编号;
将所述代表编号对应的数据源服务器作为服务器代表;
其中,所述代表编号满足如下公式:
M’=(R mod N)+1
其中,M’表示代表编号,R表示第三随机数,mod表示求余函数,N表示数据源服务器的数量。
在一种可行的实施方式中,所述方法还包括:
将所述第三随机数、所述代表编号上传至区块链存证。
根据本申请的第三方面,本申请了提供了一种数据隐匿查询装置,应用于服务器代表,所述服务器代表对应多个数据源服务器中的其中一个,所述服务器代表与所述查询客户端以及除服务器代表之外的其他数据源服务器连接,所述装置包括隐私集合求交模块和第一收发模块,其中:
所述隐私集合求交模块用于针对各个数据源服务器,基于隐私集合求交算法获取所述数据源服务器中标识字段集合与所述查询客户端中查询字段的隐私交集,并将所述隐私交集在所述标识字段集合中的交集位置发送给所述查询客户端;
所述第一收发模块用于针对各个数据源服务器,将从所述数据源服务器接收的第一公钥集合发送给所述查询客户端;其中,所述第一公钥集合包括多个第一公钥,所述第一公钥属于所述数据源服务器中的第一密钥对,所述第一密钥对与所述标识字段集合中的标识字段一一对应;
所述第一收发模块用于针对各个数据源服务器,将从所述查询客户端接收的密钥密文发送给所述数据源服务器;其中,所述密钥密文是所述查询客户端利用加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得,所述加密公钥是所述数据源服务器对应的第一公钥集合中位于交集位置的第一公钥;
所述第一收发模块用于针对各个数据源服务器,接收所述数据源服务器发送的数据字段密文集合,并获取所述数据字段密文集合中位于所述交集位置处的数据字段密文,得到所述数据源服务器的目标字段密文;其中,所述数据字段密文集合包括多个数据字段密文,所述数据字段密文是所述数据源服务器利用数据加密密钥对与所述标识字段关联的数据字段进行加密获得,所述数据加密密钥是利用与所述标识字段对应的第一密钥对中的第一私钥对所述密钥密文进行解密获得;
所述第一收发模块用于将各个目标字段密文相加之和发送给所述查询客户端,以供所述查询客户端利用所述加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
根据本申请的第四方面,本申请了提供了一种数据隐匿查询装置,应用于查询客户端,所述查询客户端与服务器代表连接,所述服务器代表对应多个数据源服务器中的其中一个,所述服务器代表与除服务器代表之外的其他数据源服务器连接,所述装置包括第二收发模块、密钥加密模块和数据解密模块,其中:
所述第二收发模块用于接收所述服务器代表发送的各个交集位置;其中,针对各个数据源服务器,所述交集位置是所述服务器代表基于隐私集合求交算法,对所述数据源服务器中的标识字段集合与所述查询客户端中的查询字段进行隐私集合求交获得的隐私交集在所述标识字段集合中的位置;
所述第二收发模块用于接收所述服务器代表发送的各个第一公钥集合;其中,针对各个数据源服务器,所述第一公钥集合包括多个第一公钥,所述第一公钥属于所述数据源服务器中的第一密钥对,所述第一密钥对与所述标识字段集合中的标识字段一一对应;
所述密钥加密模块用于针对各个数据源服务器,利用所述数据源服务器对应的加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得密钥密文,并将所述密钥密文发送给所述服务器代表,以用于所述服务器代表将所述密钥密文发送给所述数据源服务器;其中,所述加密公钥是所述数据源服务器对应的第一公钥集合中位于交集位置的第一公钥;
所述第二收发模块用于接收所述服务器代表发送的各个数据源服务器的目标字段密文相加之和;其中,针对各个数据源服务器,所述数据源服务器的目标字段密文是数据字段密文集合中位于交集位置的数据字段密文,所述数据字段密文集合包括多个数据字段密文,所述数据字段密文是所述数据源服务器利用数据加密密钥对与所述标识字段关联的数据字段进行加密获得,所述数据加密密钥是利用与所述标识字段对应的第一密钥对中的第一私钥对所述密钥密文进行解密获得;
所述数据解密模块用于利用所述加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
根据本申请公开的第五方面,提供了一种电子设备,包括处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面、第二方面中任一项所述的方法。
根据本申请公开的第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面、第二方面中任一项所述的方法。
根据本申请公开的第七方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时用于实现第一方面、第二方面中任一项所述的方法。
现有技术相比,本申请具有如下的有益效果:
本申请提供的一种数据隐匿查询方法、电子设备和可读存储介质,通过在数据源服务器中选择服务器代表作为第三方进行数据查询交互,首先利用隐私集合求交算法获取查询客户端的查询字段和各个数据源服务器的标识字段集合的隐私交集,通过隐私交集在标识字段集合中的交集位置,在不泄露查询客户端和数据源服务器双方信息的前提下,得到查询客户端想要查询的数据字段在各个数据源服务器中的位置。然后通过第一密钥对、加法同态密钥对以及交集位置对后续传输的数据字段进行相应的加密与解密操作,进一步在不泄露查询客户端和数据源服务器双方信息的前提下,使查询客户端能够获得来自多个数据源服务器的查询结果。在数据查询过程中,解决了在一个查询客户端对应多个数据源服务器的数据查询场景下,无法保障查询客户端与数据源服务器双方数据隐私性的问题,保障了查询客户端和数据源服务器双方的数据匿名性,提高了数据查询的隐私安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种数据隐匿查询系统的架构示意图;
图2为本申请实施例提供的一种数据隐匿查询方法的流程示意图;
图3为本申请实施例提供的另一种数据隐匿查询方法的流程示意图;
图4为本申请实施例提供的又一种数据隐匿查询方法的流程示意图;
图5为本申请实施例提供的一种数据隐匿查询装置的结构示意图;
图6为本申请实施例提供的另一种数据隐匿查询装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
数据隐匿查询,也称隐私信息检索(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,针对各个数据源服务器,将从查询客户端接收的密钥密文发送给数据源服务器;其中,密钥密文是查询客户端利用加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得,加密公钥是数据源服务器对应的第一公钥集合中位于交集位置的第一公钥。
其中,查询客户端接收到第一公钥集合后,选择第一公钥集合中位于交集位置的第一公钥对查询客户端中加法同态密钥对中的加法同态加密密钥进行加密,得到密钥密文,并将密钥密文发送给服务器代表。服务器代表接收到查询客户端发送的密钥密文之后,再将密钥密文发送给数据源服务器。
具体的,加法同态密钥对是基于加法同态加密算法生成的密钥对,加法同态加密算法是指将加密数据的密文相加后再解密的结果与将各个密文单独解密后再相加的结果一致。例如,有两个密文a1和a2,两个密文对应的原始数据为A1和A2,设加法同态加密算法的解密函数为E,则满足E(a1+a2)=A1+A2。
具体的,对于加法同态加密算法,可以采用pairing加密算法。
S204,针对各个数据源服务器,接收数据源服务器发送的数据字段密文集合,并获取数据字段密文集合中位于交集位置处的数据字段密文,得到数据源服务器的目标字段密文;其中,数据字段密文集合包括多个数据字段密文,数据字段密文是数据源服务器利用数据加密密钥对与标识字段关联的数据字段进行加密获得,数据加密密钥是利用与标识字段对应的第一密钥对中的第一私钥对密钥密文进行解密获得。
其中,数据源服务器接收到密钥密文后,通过第一密钥对中的第一私钥对密钥密文进行解密,会获得多个与标识字段一一对应的数据加密密钥,再利用这些数据加密密钥对标识字段关联的数据字段进行加密,获得加密后的数据字段密文组成数据字段密文集合,并将数据字段密文集合发送给服务器代表。
其中,由于密钥密文是利用交集位置处的第一公钥加密获得的,所以也只有位于交集位置处的第一私钥解密得到的数据加密密钥才是正确的,也即只有位于交集位置处的第一私钥解密得到数据加密密钥才会与查询客户端的加法同态加密密钥一致,只有通过位于交集位置处的第一私钥解密得到加密密钥加密的数据字段,后续才能被查询客户端的对称密钥正确解密恢复。
其中,由于只有位于交集位置处的第一私钥解密得到数据加密密钥是正确的,那么相应的,查询客户端中的加法同态解密密钥也只有对位于交集位置处的数据字段密文进行解密,才能够获取到正确的数据字段。又由于各个数据源服务器中的数据字段是由加法同态加密密钥加密的,满足加法同态规律,服务器代表可以先将来自各个数据源服务器的数据字段密文集合中位于交集位置处的数据字段密文查找出来并相加,再将各个目标字段密文相加之和发送给查询客户端。
S205,将各个目标字段密文相加之和发送给查询客户端,以供查询客户端利用加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
其中,查询客户端收到各个目标字段密文相加之和之后,利用加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。根据加法同态加密算法的特性,查询结果与单独对各个目标字段密文解密之后再相加的结果一致。同时减少了数据解密操作次数,提高了数据查询效率。
在本实施例中,可以看出,查询客户端能够接触到的数据源服务器发送的数据包括第一公钥集合、各个目标字段密文相加之和,相关数据不包含关于服务器代表、数据源服务器的任何隐私数据,查询客户端不能获得除查询结果之外其他任何关于数据源服务器的隐私信息。相应的,数据源服务器能够接触到的只有查询客户端发送的密钥密文,密钥密文也不包含任何关于查询客户端的隐私信息,数据源服务器也不会知道查询客户端的任何查询信息。
因此,本申请通过在数据源服务器中选择服务器代表作为第三方进行数据查询交互,首先利用隐私集合求交算法获取查询客户端的查询字段和各个数据源服务器的标识字段集合的隐私交集,通过隐私交集在标识字段集合中的交集位置,在不泄露查询客户端和数据源服务器双方信息的前提下,得到查询客户端想要查询的数据字段在各个数据源服务器中的位置。然后通过第一密钥对、加法同态密钥对以及交集位置对后续传输的数据字段进行相应的加密与解密操作,进一步在不泄露查询客户端和数据源服务器双方信息的前提下,使查询客户端能够获得来自多个数据源服务器的查询结果。在数据查询过程中,解决了在一个查询客户端对应多个数据源服务器的数据查询场景下,无法保障查询客户端与数据源服务器双方数据隐私性的问题,保障了查询客户端和数据源服务器双方的数据匿名性,提高了数据查询的隐私安全性。
在一些实施例中,基于隐私集合求交算法获取数据源服务器中标识字段集合与查询客户端中查询字段的隐私交集,包括:接收查询客户端发送的第一密文和第一随机数,以及数据源服务器发送的第二密文集合和第二随机数;其中,第一密文是利用第一随机数对查询字段进行椭圆曲线加密获得,第二密文集合是利用第二随机数对标识字段集合中的标识字段进行椭圆曲线加密获得;利用第二随机数对第一密文进行椭圆曲线加密获得第三密文,利用第一随机数对第二密文集合中的第二密文进行椭圆曲线加密获得第四密文集合;对第三密文和第四密文集合进行求交,获得隐私交集。
在本实施例中,由于椭圆曲线加密算法属于乘法半同态加密算法,对于乘法半同态加密算法,其满足密钥交换律。具体的,假设有数据A,随机数a和b,利用乘法半同态加密算法对数据A进行二次加密时,满足(Aa)b=(Ab)a。基于此原理,则查询客户端中的查询字段和数据源服务器中的标识字段在交换随机数后进行两次乘法半同态加密之后,如果查询字段与标识字段一致,那么它们的二次加密数据也应该相同,隐私交集代表的就是与查询字段相同的标识字段,那么标识字段关联的数据字段就是对应的查询结果。
具体的,如果隐私交集为空,则表明没有在数据源服务器中查询到对应的数据。
在一些实施例中,将第一密文、第一随机数、第二密文集合和第二随机数,以及第一公钥集合和数据字段密文集合上传至区块链存证。
在本实施例中,存证信息上链的目的是为了防止恶意查询客户端或恶意数据源服务器提供假的数据,若是有参与方提供假的数据,后续可以根据区块链链上存证的信息进行校验,发现提供假数据的参与方身份。由于查询客户端和数据源服务器之间不会泄露任何额外信息,数据源服务器无法知晓查询客户端的查询记录,保护了查询客户端的查询隐私,然而却无法对查询记录进行存证,监管方无法对查询客户端的查询记录进行审计。数据源服务器也希望查询客户端的查询记录可存证,查询客户端可认证。并且,监管方也需要对查询客户端的查询进行审计。
在一些实施例中,基于预存的加密算法生成第二密钥对,并将第二密钥对中的第二公钥发送给数据发送方;其中,数据发送方包括查询客户端或除服务器代表之外的其他数据源服务器,第二公钥用于数据发送方对发送给服务器代表的数据进行加密,第二密钥对中的第二私钥用于服务器代表对接收至数据发送方的数据进行解密。
在本实施例中,为了保障服务器代表和查询客户端、数据源服务器之间数据传输的安全性,服务器代表和查询客户端、数据源服务器之间可以对传输的数据进行加密。其中,服务器代表中预设有加密算法,服务器代表根据加密算法生成密钥对,并将密钥对的公钥部分发送给查询客户端和其他数据源服务器。
这样,当查询客户端和数据源服务器向服务器代表发送数据时,需要先利用第二密钥对中的第二公钥对待发送的数据进行加密,加密后的数据发送给服务器代表之后,服务器代表再利用第二密钥对中第二私钥对接收的数据进行解密,从而保障服务器代表和查询客户端、数据源服务器之间数据传输的安全性。
在一些实施例中,接收数据接收方发送的第三公钥;其中,数据接收方包括查询客户端或除服务器代表之外的其他数据源服务器,第三公钥属于第三密钥对,第三密钥对是数据接收方基于预存的加密算法生成的;其中,第三公钥用于服务器代表对发送给数据接收方的数据进行加密,第三密钥对中的第三私钥用于数据接收方对接收至服务器代表的数据进行解密。
在本实施例中,为了保障服务器代表和查询客户端、数据源服务器之间数据传输的安全性,服务器代表和查询客户端、数据源服务器之间可以对传输的数据进行加密。查询客户端和数据源服务器中预设有加密算法,并可以根据加密算法生成密钥对,并将密钥对的公钥部分发送给服务器代表。
这样,当服务器代表向查询客户端和数据源服务器发送数据时,需要先利用第三密钥对中的第三公钥对待发送的数据进行加密,加密后的数据发送给查询客户端和数据源服务器之后,查询客户端和数据源服务器再利用第三密钥对中第三私钥对接收的数据进行解密,从而保障服务器代表和查询客户端、数据源服务器之间数据传输的安全性。
图3为本申请实施例提供的另一种数据隐匿查询方法的流程示意图,参阅图3,在一些实施例中,该数据隐匿查询方法应用于查询客户端,查询客户端与服务器代表连接,服务器代表对应多个数据源服务器中的其中一个,服务器代表与除服务器代表之外的其他数据源服务器连接,其流程包括以下步骤:
S301,接收服务器代表发送的各个交集位置;其中,针对各个数据源服务器,交集位置是服务器代表基于隐私集合求交算法,对数据源服务器中的标识字段集合与查询客户端中的查询字段进行隐私集合求交获得的隐私交集在标识字段集合中的位置。
S302,接收服务器代表发送的各个第一公钥集合;其中,针对各个数据源服务器,第一公钥集合包括多个第一公钥,第一公钥属于数据源服务器中的第一密钥对,第一密钥对与标识字段集合中的标识字段一一对应。
S303,针对各个数据源服务器,利用数据源服务器对应的加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得密钥密文,并将密钥密文发送给服务器代表,以用于服务器代表将密钥密文发送给数据源服务器;其中,加密公钥是数据源服务器对应的第一公钥集合中位于交集位置的第一公钥。
S304,接收服务器代表发送的各个数据源服务器的目标字段密文相加之和;其中,针对各个数据源服务器,数据源服务器的目标字段密文是数据字段密文集合中位于交集位置的数据字段密文,数据字段密文集合包括多个数据字段密文,数据字段密文是数据源服务器利用数据加密密钥对与标识字段关联的数据字段进行加密获得,数据加密密钥是利用与标识字段对应的第一密钥对中的第一私钥对密钥密文进行解密获得。
S305,利用加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
在本实施例中,需要说明的是,图3所示的流程中,各步骤的实现原理和技术效果可参阅前文关于图2的相关说明,在此不再赘述。
在一些实施例中,对各个数据源服务器按顺序进行编号;其中,数据源服务器的编号M是小于等于数据源服务器数量N的正整数;生成第三随机数;基于第三随机数,获取代表编号;将代表编号对应的数据源服务器作为服务器代表;
其中,代表编号满足如下公式:
M’=(R mod N)+1
其中,M’表示代表编号,R表示第三随机数,mod表示求余函数,N表示数据源服务器的数量。
在本实施例中,在上述代表编号的获取公式中,其结果是[1,N]范围的正整数,且各个正整数结果出现的概率相等。通过上述代表编号的获取公式,可以以相同概率随机获取一个数据源服务器作为服务器代表。
在一些实施例中,将第三随机数、代表编号上传至区块链存证。
在本实施例中,将相关数据上链存证,避免数据被恶意篡改,同时也可以方便后期追溯审查。
图4为本申请实施例提供的再一种查询客户端法的流程示意图,参阅图4,在一些实施例中,该查询客户端法应用于数据隐匿查询系统,其流程包括以下步骤:
S401,查询客户端利用第一随机数对查询字段进行椭圆曲线加密,获得第一密文。
S402,查询客户端将第一密文和第一随机数发送至服务器代表。
S403,数据源服务器利用第二随机数对标识字段集合中的标识字段进行椭圆曲线加密,获得第二密文集合。
S404,数据源服务器将第二密文集合和第二随机数发送至服务器代表。
S405,服务器代表利用第二随机数对第一密文进行椭圆曲线加密,获得第三密文。
S406,服务器代表利用第一随机数对第二密文集合中的第二密文进行椭圆曲线加密,获得第四密文集合。
S407,服务器代表对第三密文和第四密文集合进行求交,获得隐私交集。
S408,服务器代表根据隐私交集在第四密文集合中的位置,确定隐私交集在标识字段集合中的交集位置。
S409,服务器代表将交集位置发送至查询客户端。
S410,数据源服务器将第一公钥集合发送至服务器代表;其中,第一公钥集合包括多个第一公钥,第一公钥属于数据源服务器中的第一密钥对,第一密钥对与标识字段集合中的标识字段一一对应。
S411,服务器代表接收第一公钥集合之后,将第一公钥集合发送给查询客户端。
S412,查询客户端利用第一公钥集合中位于交集位置的第一公钥对加法同态密钥对中的加法同态加密密钥进行加密,获得密钥密文。
S413,查询客户端将密钥密文发送给服务器代表。
S414,服务器代表接收密钥密文之后,将密钥密文发送给数据源服务器。
S415,数据源服务器接收密钥密文之后,利用与标识字段对应的第一密钥对中的第一私钥对密钥密文进行解密,获得加密密钥。
S416,数据源服务器利用与标识字段对应的数据加密密钥,对与标识字段关联的数据字段进行加密,获得数据字段密文集合。
S417,数据源服务器将数据字段密文集合发送至服务器代表。
S418,服务器代表接收数据字段密文集合之后,获取数据字段密文集合中位于交集位置处的数据字段密文,得到数据源服务器的目标字段密文。
S419,服务器代表将各个数据源服务器的目标字段密文相加之和发送至查询客户端。
S420,查询客户端接收各个目标字段密文相加之和之后,利用加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
在本实施例中,需要说明的是,图4所示的流程中,各步骤的实现原理和技术效果可参阅前文关于图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′。具体的,这里以pairing加密为例,当然,也可以用其他加法同态加密算法。
步骤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发送的公钥信息后,将公钥信息的存证信息(存证信息的生产方式可以采用二次哈希)上传至区块链,同时将公钥信息发送给甲银行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′收到密文向量后,获取数据字段密文集合中位于交集位置处的数据字段密文,得到数据源服务器的目标字段密文,并计算各个数据源服务器的目标字段密文相加之和并将相加结果发送给甲银行C,同时将其存证信息(存证信息的生产方式可以采用二次哈希)进行上传至区块链。
步骤12,甲银行C收到各个目标字段密文相加之和之后,利用与加法同态加密密钥k′对应的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得用户在其他银行Si的贷款总金额。
在本实施例中,甲银行除了获得要查询客户在其他银行的贷款总金额之外,不会获得其他任何关于其他银行的相关信息,其他银行也不会获得关于甲银行和要查询客户的任何信息,实现了甲银行和其他银行在数据查询过程中的双向匿踪。
图5是本申请实施例提供的一种数据隐匿查询装置的结构示意图,参阅图5,该数据隐匿查询装置包括用于实现前述查询客户端法的各个功能模块,任意功能模块可以通过软件和/或硬件的方式实现。
在一些实施例中,一种数据隐匿查询装置500,应用于服务器代表,服务器代表对应多个数据源服务器中的其中一个,服务器代表与查询客户端以及除服务器代表之外的其他数据源服务器连接,该装置包括隐私集合求交模块501和第一收发模块502,其中:
隐私集合求交模块501用于针对各个数据源服务器,基于隐私集合求交算法获取数据源服务器中标识字段集合与查询客户端中查询字段的隐私交集,并将隐私交集在标识字段集合中的交集位置发送给查询客户端;
第一收发模块502用于针对各个数据源服务器,将从数据源服务器接收的第一公钥集合发送给查询客户端;其中,第一公钥集合包括多个第一公钥,第一公钥属于数据源服务器中的第一密钥对,第一密钥对与标识字段集合中的标识字段一一对应;
第一收发模块501用于针对各个数据源服务器,将从查询客户端接收的密钥密文发送给数据源服务器;其中,密钥密文是查询客户端利用加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得,加密公钥是数据源服务器对应的第一公钥集合中位于交集位置的第一公钥;
第一收发模块502用于针对各个数据源服务器,接收数据源服务器发送的数据字段密文集合,并获取数据字段密文集合中位于交集位置处的数据字段密文,得到数据源服务器的目标字段密文;其中,数据字段密文集合包括多个数据字段密文,数据字段密文是数据源服务器利用数据加密密钥对与标识字段关联的数据字段进行加密获得,数据加密密钥是利用与标识字段对应的第一密钥对中的第一私钥对密钥密文进行解密获得;
第一收发模块502用于将各个目标字段密文相加之和发送给查询客户端,以供查询客户端利用加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
在一些实施例中,该隐私集合求交模块501具体用于:
接收查询客户端发送的第一密文和第一随机数,以及数据源服务器发送的第二密文集合和第二随机数;其中,第一密文是利用第一随机数对查询字段进行椭圆曲线加密获得,第二密文集合是利用第二随机数对标识字段集合中的标识字段进行椭圆曲线加密获得;
利用第二随机数对第一密文进行椭圆曲线加密获得第三密文,利用第一随机数对第二密文集合中的第二密文进行椭圆曲线加密获得第四密文集合;
对第三密文和第四密文集合进行求交,获得隐私交集。
在一些实施例中,该装置还包括第一上链存证模块503,该第一上链存储模块503具体用于:
将第一密文、第一随机数、第二密文集合和第二随机数,以及第一公钥集合和数据字段密文集合上传至区块链存证。
在一些实施例中,该装置还包括通信加密模块504,该通信加密模块504具体用于:
基于预存的加密算法生成第二密钥对,并将第二密钥对中的第二公钥发送给数据发送方;
其中,数据发送方包括查询客户端或除服务器代表之外的其他数据源服务器,第二公钥用于数据发送方对发送给服务器代表的数据进行加密,第二密钥对中的第二私钥用于服务器代表对接收至数据发送方的数据进行解密。
在一些实施例中,该通信加密模块504还具体用于:
接收数据接收方发送的第三公钥;其中,数据接收方包括查询客户端或除服务器代表之外的其他数据源服务器,第三公钥属于第三密钥对,第三密钥对是数据接收方基于预存的加密算法生成的;
其中,第三公钥用于服务器代表对发送给数据接收方的数据进行加密,第三密钥对中的第三私钥用于数据接收方对接收至服务器代表的数据进行解密。
本申请实施例提供的数据隐匿查询装置500用于执行图2所示数据隐匿查询方法实施例提供的技术方案,其实现原理和技术效果与前述方法的实施例中类似,在此不再赘述。
图6是本申请实施例提供的一种数据隐匿查询装置的结构示意图,参阅图6,该数据隐匿查询装置包括用于实现前述查询客户端法的各个功能模块,任意功能模块可以通过软件和/或硬件的方式实现。
在一些实施例中,一种数据隐匿查询装置600,应用于查询客户端,查询客户端与服务器代表连接,服务器代表对应多个数据源服务器中的其中一个,服务器代表与除服务器代表之外的其他数据源服务器连接,装置包括第二收发模块601、密钥加密模块602和数据解密模块603,其中:
第二收发模块601用于接收服务器代表发送的各个交集位置;其中,针对各个数据源服务器,交集位置是服务器代表基于隐私集合求交算法,对数据源服务器中的标识字段集合与查询客户端中的查询字段进行隐私集合求交获得的隐私交集在标识字段集合中的位置;
第二收发模块601用于接收服务器代表发送的各个第一公钥集合;其中,针对各个数据源服务器,第一公钥集合包括多个第一公钥,第一公钥属于数据源服务器中的第一密钥对,第一密钥对与标识字段集合中的标识字段一一对应;
密钥加密模块602用于针对各个数据源服务器,利用数据源服务器对应的加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得密钥密文,并将密钥密文发送给服务器代表,以用于服务器代表将密钥密文发送给数据源服务器;其中,加密公钥是数据源服务器对应的第一公钥集合中位于交集位置的第一公钥;
第二收发模块601用于接收服务器代表发送的各个数据源服务器的目标字段密文相加之和;其中,针对各个数据源服务器,数据源服务器的目标字段密文是数据字段密文集合中位于交集位置的数据字段密文,数据字段密文集合包括多个数据字段密文,数据字段密文是数据源服务器利用数据加密密钥对与标识字段关联的数据字段进行加密获得,数据加密密钥是利用与标识字段对应的第一密钥对中的第一私钥对密钥密文进行解密获得;
数据解密模块603用于利用加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
在一些实施例中,该装置还包括代表确定模块604,该代表确定模块604具体用于:
对各个数据源服务器按顺序进行编号;其中,数据源服务器的编号M是小于等于数据源服务器数量N的正整数;
生成第三随机数;
基于第三随机数,获取代表编号;
将代表编号对应的数据源服务器作为服务器代表;
其中,代表编号满足如下公式:
M’=(R mod N)+1
其中,M’表示代表编号,R表示第三随机数,mod表示求余函数,N表示数据源服务器的数量。
在一种可行的实施方式中,该装置还包括第二上链存证模块605,该第二上链存储模块605具体用于:
将第三随机数、代表编号上传至区块链存证。
本申请实施例提供的数据隐匿查询装置600用于执行图3所示数据隐匿查询方法实施例提供的技术方案,其实现原理和技术效果与前述方法的实施例中类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,隐私集合求交模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上隐私集合求交模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图7为本申请实施例提供的一种电子设备的结构示意图,参阅图7,该电子设备700包括:处理器701,以及与该处理器701通信连接的存储器702;
存储器702存储计算机执行指令;
处理器701执行存储器702存储的计算机执行指令,以实现前述数据隐匿查询方法的技术方案。
在上述电子设备700中,存储器702、处理器701之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。总线可以是工业标准体系结构(Industry StandardArchitecture,简称:ISA)总线、外部设备互连(Peripheral Component Interconnect,简称:PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称:EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。存储器702中存储有实现前述数据隐匿查询方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器702中的软件功能模块,处理器701通过运行存储在存储器702内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器702至少包括一种类型的可读存储介质,不限于随机存取存储器(RandomAccess Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(Programmable Read-Only Memory,简称:PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,简称:EPROM),电可擦除只读存储器(ElectricErasable Programmable Read-Only Memory,简称:EEPROM)等。其中,存储器702用于存储程序,处理器701在接收到执行指令后,执行程序。进一步地,上述存储器702内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器701可以是一种集成电路芯片,具有信号的处理能力。上述的处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(Network Processor,简称:NP)、数字信号处理器(Digital Signal Processor,简称:DSP)、专用集成电路(Application Specific Integrated Circuit,简称:ASIC)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器,或者该处理器701也可以是任何常规的处理器等。
该电子设备700用于执行前述数据隐匿查询方法实施例提供的技术方案,其实现原理和技术效果与前述方法实施例中类似,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如前述数据隐匿查询方法的技术方案。
上述的计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。该计算机可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于数据隐匿查询装置的控制装置中。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时用于实现如前述数据隐匿查询方法的技术方案。
在上述实施例中,本领域技术人员可以理解,实现上述各方法实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线网络、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(Solid State Disk,简称:SSD))等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种数据隐匿查询方法,其特征在于,应用于服务器代表,所述服务器代表对应多个数据源服务器中的其中一个,所述服务器代表与所述查询客户端以及除服务器代表之外的其他数据源服务器连接,包括:
针对各个数据源服务器,基于隐私集合求交算法获取所述数据源服务器中标识字段集合与所述查询客户端中查询字段的隐私交集,并将所述隐私交集在所述标识字段集合中的交集位置发送给所述查询客户端;
针对各个数据源服务器,将从所述数据源服务器接收的第一公钥集合发送给所述查询客户端;其中,所述第一公钥集合包括多个第一公钥,所述第一公钥属于所述数据源服务器中的第一密钥对,所述第一密钥对与所述标识字段集合中的标识字段一一对应;
针对各个数据源服务器,将从所述查询客户端接收的密钥密文发送给所述数据源服务器;其中,所述密钥密文是所述查询客户端利用加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得,所述加密公钥是所述数据源服务器对应的第一公钥集合中位于交集位置的第一公钥;
针对各个数据源服务器,接收所述数据源服务器发送的数据字段密文集合,并获取所述数据字段密文集合中位于所述交集位置处的数据字段密文,得到所述数据源服务器的目标字段密文;其中,所述数据字段密文集合包括多个数据字段密文,所述数据字段密文是所述数据源服务器利用数据加密密钥对与所述标识字段关联的数据字段进行加密获得,所述数据加密密钥是利用与所述标识字段对应的第一密钥对中的第一私钥对所述密钥密文进行解密获得;
将各个目标字段密文相加之和发送给所述查询客户端,以供所述查询客户端利用所述加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
2.根据权利要求1所述的方法,其特征在于,基于隐私集合求交算法获取所述数据源服务器中标识字段集合与所述查询客户端中查询字段的隐私交集,包括:
接收所述查询客户端发送的第一密文和第一随机数,以及所述数据源服务器发送的第二密文集合和第二随机数;其中,所述第一密文是利用所述第一随机数对所述查询字段进行椭圆曲线加密获得,所述第二密文集合是利用所述第二随机数对所述标识字段集合中的标识字段进行椭圆曲线加密获得;
利用所述第二随机数对所述第一密文进行椭圆曲线加密获得第三密文,利用所述第一随机数对所述第二密文集合中的第二密文进行椭圆曲线加密获得第四密文集合;
对所述第三密文和所述第四密文集合进行求交,获得所述隐私交集。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述第一密文、所述第一随机数、所述第二密文集合和所述第二随机数,以及所述第一公钥集合和所述数据字段密文集合上传至区块链存证。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于预存的加密算法生成第二密钥对,并将所述第二密钥对中的第二公钥发送给所述数据发送方;
其中,所述数据发送方包括查询客户端或除服务器代表之外的其他数据源服务器,所述第二公钥用于所述数据发送方对发送给所述服务器代表的数据进行加密,所述第二密钥对中的第二私钥用于所述服务器代表对接收至所述数据发送方的数据进行解密。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述数据接收方发送的第三公钥;其中,所述数据接收方包括查询客户端或除服务器代表之外的其他数据源服务器,所述第三公钥属于第三密钥对,所述第三密钥对是所述数据接收方基于预存的加密算法生成的;
其中,所述第三公钥用于所述服务器代表对发送给所述数据接收方的数据进行加密,所述第三密钥对中的第三私钥用于所述数据接收方对接收至所述服务器代表的数据进行解密。
6.一种数据隐匿查询方法,其特征在于,包括,应用于查询客户端,所述查询客户端与服务器代表连接,所述服务器代表对应多个数据源服务器中的其中一个,所述服务器代表与除服务器代表之外的其他数据源服务器连接,包括:
接收所述服务器代表发送的各个交集位置;其中,针对各个数据源服务器,所述交集位置是所述服务器代表基于隐私集合求交算法,对所述数据源服务器中的标识字段集合与所述查询客户端中的查询字段进行隐私集合求交获得的隐私交集在所述标识字段集合中的位置;
接收所述服务器代表发送的各个第一公钥集合;其中,针对各个数据源服务器,所述第一公钥集合包括多个第一公钥,所述第一公钥属于所述数据源服务器中的第一密钥对,所述第一密钥对与所述标识字段集合中的标识字段一一对应;
针对各个数据源服务器,利用所述数据源服务器对应的加密公钥对加法同态密钥对中的加法同态加密密钥进行加密获得密钥密文,并将所述密钥密文发送给所述服务器代表,以用于所述服务器代表将所述密钥密文发送给所述数据源服务器;其中,所述加密公钥是所述数据源服务器对应的第一公钥集合中位于交集位置的第一公钥;
接收所述服务器代表发送的各个数据源服务器的目标字段密文相加之和;其中,针对各个数据源服务器,所述数据源服务器的目标字段密文是数据字段密文集合中位于交集位置的数据字段密文,所述数据字段密文集合包括多个数据字段密文,所述数据字段密文是所述数据源服务器利用数据加密密钥对与所述标识字段关联的数据字段进行加密获得,所述数据加密密钥是利用与所述标识字段对应的第一密钥对中的第一私钥对所述密钥密文进行解密获得;
利用所述加法同态密钥对中的加法同态解密密钥对各个目标字段密文相加之和进行解密,获得查询结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
对各个数据源服务器按顺序进行编号;其中,所述数据源服务器的编号M是小于等于数据源服务器数量N的正整数;
生成第三随机数;
基于所述第三随机数,获取代表编号;
将所述代表编号对应的数据源服务器作为服务器代表;
其中,所述代表编号满足如下公式:
M’=(R mod N)+1
其中,M’表示代表编号,R表示第三随机数,mod表示求余函数,N表示数据源服务器的数量。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
将所述第三随机数、所述代表编号上传至区块链存证。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311331387.4A CN117371011A (zh) | 2023-10-13 | 2023-10-13 | 数据隐匿查询方法、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311331387.4A CN117371011A (zh) | 2023-10-13 | 2023-10-13 | 数据隐匿查询方法、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117371011A true CN117371011A (zh) | 2024-01-09 |
Family
ID=89407145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311331387.4A Pending CN117371011A (zh) | 2023-10-13 | 2023-10-13 | 数据隐匿查询方法、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117371011A (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 CN202311331387.4A patent/CN117371011A/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 | |
JP6547079B1 (ja) | 登録・認可方法、装置及びシステム | |
US9846785B2 (en) | Efficient two party oblivious transfer using a leveled fully homomorphic encryption | |
US11263344B2 (en) | Data management method and registration method for an anonymous data sharing system, as well as data manager and anonymous data sharing system | |
US10341103B2 (en) | Data analytics on encrypted data elements | |
US11405365B2 (en) | Method and apparatus for effecting a data-based activity | |
US11374910B2 (en) | Method and apparatus for effecting a data-based activity | |
CN111066017B (zh) | 私人数据处理 | |
CN107832632B (zh) | 资产证明授权查询方法、系统、电子装置及计算机可读存储介质 | |
US20220385642A1 (en) | Method and apparatus for effecting a data-based activity | |
US9641328B1 (en) | Generation of public-private key pairs | |
CN113434555B (zh) | 一种基于可搜索加密技术的数据查询方法和装置 | |
CN114443718B (zh) | 一种数据查询方法及系统 | |
CN113672949A (zh) | 用于广告多方隐私保护的数据传输方法及系统 | |
CN117371011A (zh) | 数据隐匿查询方法、电子设备和可读存储介质 | |
CN117371010A (zh) | 数据匿踪查询方法、电子设备和可读存储介质 | |
CN117390675A (zh) | 数据查询方法、电子设备和可读存储介质 | |
CN112887087B (zh) | 数据管理方法、装置、电子设备及可读存储介质 | |
WO2022068234A1 (zh) | 基于共享根密钥的加密方法、装置、设备及介质 | |
CN113342802A (zh) | 区块链数据存储的方法和装置 | |
CN116522356A (zh) | 数据查询方法及装置 | |
US20220374539A1 (en) | System and method utilizing function secret sharing with conditional disclosure of secrets | |
CN115062063B (zh) | 基于区块链的数据查询方法和装置 | |
CN114691759B (zh) | 数据查询统计方法、装置、计算机设备及存储介质 | |
CN118568115A (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 |