一种匹配数据的方法和装置与流程

文档序号:11292204阅读:181来源:国知局
一种匹配数据的方法和装置与流程

本公开是关于互联网技术领域,尤其是关于一种匹配数据的方法和装置。



背景技术:

随着互联网技术的发展,互联网在人们生活中的应用越来越广泛,互联网中的业务种类也越来越多。各业务的业务服务器中,都会存储与该业务相关的数据,比如,某旅游业务的业务服务器中,会存储使用该旅游业务的用户信息(如手机号和身份证号等),某设备销售业务的业务服务器中,会存储所销售的各设备的设备信息(如设备编号和生产厂商信息等)。

在实际中,业务提供商有时需要查询本地数据与其他业务提供商的数据的相同部分,以便进行业务规划。具体的处理过程为:第一业务提供商的第一业务服务器可以将本地的数据发送给第二业务提供商的第二业务服务器,第二业务服务器进行数据匹配,然后将匹配结果发送给第一业务服务器,以使双方获知匹配结果。例如,该数据为用户信息,第一业务提供商为某旅游业务的业务提供商,第二业务提供商为某理财业务的业务提供商,可以确定既使用旅游业务又使用理财业务的用户,这些用户的经济状况通常比较好,旅游业务的业务提供商可以向这些用户推荐比较高端的旅游产品,而理财业务的业务提供商可以向这些用户推荐数额较高的理财产品。

在实现本公开的过程中,发明人发现至少存在以下问题:

在进行数据匹配时,某一业务服务器需要将自己的数据发送给另一业务服务器,容易出现数据泄露的情况,导致数据的安全性较差。



技术实现要素:

为了克服相关技术中存在的问题,本公开提供了一种匹配数据的方法和装置。所述技术方案如下:

根据本公开实施例的第一方面,提供一种匹配数据的方法,所述方法包括:

获取预先存储的第一数据集合,所述第一数据集合中至少包含一个子数据;

根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合;

向第一业务服务器发送所述第一密文集合;

接收所述第一业务服务器发送的各密文对应的同态运算结果,根据所述同态运算结果,确定本地与所述第一业务服务器共同包含的子数据。

可选的,所述向第一业务服务器发送所述第一密文集合,包括:

通过区块链中的第一节点服务器,将所述第一密文集合发送给第一业务服务器。

这样,在匹配数据的过程中,通过区块链来转发数据,区块链可以对转发的数据进行记录,从而实现交换数据可查、不可变更,提高了匹配数据的可靠性。

可选的,所述接收所述第一业务服务器发送的各密文对应的同态运算结果,包括:

接收所述第一业务服务器通过区块链中的第二节点服务器转发的各密文对应的同态运算结果。

这样,在匹配数据的过程中,通过区块链来转发数据,区块链可以对转发的数据进行记录,从而实现交换数据可查、不可变更,提高了匹配数据的可靠性。

可选的,所述根据所述同态运算结果,确定本地与所述第一业务服务器共同包含的子数据,包括:

基于本地的私钥对所述同态运算结果进行解密,得到所述各密文对应的匹配结果;

根据所述匹配结果,确定本地与所述第一业务服务器共同包含的子数据。

可选的,所述方法还包括:

通过区块链中的第三节点服务器,将所述本地与所述第一业务服务器共同包含的子数据发送给所述第一业务服务器。

这样,在匹配数据的过程中,通过区块链来转发数据,区块链可以对转发的数据进行记录,从而实现交换数据可查、不可变更,提高了匹配数据的可靠性。

根据本公开实施例的第二方面,提供一种匹配数据的方法,所述方法包括:

接收第二业务服务器发送的第一密文集合;

基于预先存储的第二数据集合和所述第一密文集合进行同态运算,得到所述第一密文集合中的各密文对应的同态运算结果,所述第二数据集合中至少包含一个子数据;

向所述第二业务服务器发送所述同态运算结果。

可选的,所述基于预先存储的第二数据集合和所述第一密文集合进行同态运算,包括:

获取所述第二业务服务器的公钥;

根据所述公钥和预先存储的同态加密算法,确定预先存储的第二数据集合中的每个子数据对应的密文,得到第二密文集合;

基于所述第一密文集合和所述第二密文集合进行同态运算。

这样,提供了一种进行同态运算的实现方式。

可选的,所述接收第二业务服务器发送的第一密文集合,包括:

接收所述第二业务服务器通过区块链中的第一节点服务器转发的第一密文集合。

这样,在匹配数据的过程中,通过区块链来转发数据,区块链可以对转发的数据进行记录,从而实现交换数据可查、不可变更,提高了匹配数据的可靠性。

可选的,所述向所述第二业务服务器发送所述同态运算结果,包括:

通过区块链中的第二节点服务器,将所述同态运算结果发送给所述第二业务服务器。

这样,在匹配数据的过程中,通过区块链来转发数据,区块链可以对转发的数据进行记录,从而实现交换数据可查、不可变更,提高了匹配数据的可靠性。

可选的,所述方法还包括:

接收所述第二业务服务器通过区块链中的第三节点服务器转发的所述第二服务器与本地共同包含的子数据。

这样,在匹配数据的过程中,通过区块链来转发数据,区块链可以对转发的数据进行记录,从而实现交换数据可查、不可变更,提高了匹配数据的可靠性。

根据本公开实施例的第三方面,提供一种匹配数据的装置,所述装置包括:

获取模块,用于获取预先存储的第一数据集合,所述第一数据集合中至少包含一个子数据;

第一确定模块,用于根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合;

第一发送模块,用于向第一业务服务器发送所述第一密文集合;

第二确定模块,用于接收所述第一业务服务器发送的各密文对应的同态运算结果,根据所述同态运算结果,确定本地与所述第一业务服务器共同包含的子数据。

可选的,所述第一发送模块,用于:通过区块链中的第一节点服务器,将所述第一密文集合发送给第一业务服务器。

可选的,所述第二确定模块,用于:接收所述第一业务服务器通过区块链中的第二节点服务器转发的各密文对应的同态运算结果。

可选的,所述第二确定模块,包括:

解密子模块,用于基于本地的私钥对所述同态运算结果进行解密,得到所述各密文对应的匹配结果;

确定子模块,用于根据所述匹配结果,确定本地与所述第一业务服务器共同包含的子数据。

可选的,所述装置还包括:

第二发送模块,用于通过区块链中的第三节点服务器,将所述本地与所述第一业务服务器共同包含的子数据发送给所述第一业务服务器。

根据本公开实施例的第四方面,提供一种匹配数据的装置,所述装置包括:

第一接收模块,用于接收第二业务服务器发送的第一密文集合;

运算模块,用于基于预先存储的第二数据集合和所述第一密文集合进行同态运算,得到所述第一密文集合中的各密文对应的同态运算结果,所述第二数据集合中至少包含一个子数据;

发送模块,用于向所述第二业务服务器发送所述同态运算结果。

可选的,所述运算模块,包括:

获取子模块,用于获取所述第二业务服务器的公钥;

确定子模块,用于根据所述公钥和预先存储的同态加密算法,确定预先存储的第二数据集合中的每个子数据对应的密文,得到第二密文集合;

运算子模块,用于基于所述第一密文集合和所述第二密文集合进行同态运算。

可选的,所述第一接收模块,用于:接收所述第二业务服务器通过区块链中的第一节点服务器转发的第一密文集合。

可选的,所述发送模块,用于:通过区块链中的第二节点服务器,将所述同态运算结果发送给所述第二业务服务器。

可选的,所述装置还包括:

第二接收模块,用于接收所述第二业务服务器通过区块链中的第三节点服务器转发的所述第二服务器与本地共同包含的子数据。

根据本公开实施例的第五方面,提供一种匹配数据的装置,所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取预先存储的第一数据集合,所述第一数据集合中至少包含一个子数据;

根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合;

向第一业务服务器发送所述第一密文集合;

接收所述第一业务服务器发送的各密文对应的同态运算结果,根据所述同态运算结果,确定本地与所述第一业务服务器共同包含的子数据。

根据本公开实施例的第六方面,提供一种匹配数据的装置,所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

接收第二业务服务器发送的第一密文集合;

基于预先存储的第二数据集合和所述第一密文集合进行同态运算,得到所述第一密文集合中的各密文对应的同态运算结果,所述第二数据集合中至少包含一个子数据;

向所述第二业务服务器发送所述同态运算结果。

本公开的实施例提供的技术方案可以包括以下有益效果:

本公开实施例中,获取预先存储的第一数据集合,第一数据集合中至少包含一个子数据,根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合,向第一业务服务器发送第一密文集合,接收第一业务服务器发送的各密文对应的同态运算结果,根据同态运算结果,确定本地与第一业务服务器共同包含的子数据,这样,在匹配数据的过程中,业务服务器无需将自己的数据发送给其他业务服务器,可以有效的避免数据泄露的情况,提高数据的安全性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。在附图中:

图1是根据一示例性实施例示出的一种系统框架图;

图2是根据一示例性实施例示出的一种匹配数据的方法的流程图;

图3是根据一示例性实施例示出的一种匹配数据的装置的示意图;

图4是根据一示例性实施例示出的一种匹配数据的装置的示意图;

图5是根据一示例性实施例示出的一种匹配数据的装置的示意图;

图6是根据一示例性实施例示出的一种匹配数据的装置的示意图;

图7是根据一示例性实施例示出的一种匹配数据的装置的示意图;

图8是根据一示例性实施例示出的一种匹配数据的装置的示意图;

图9是根据一示例性实施例示出的一种业务服务器的结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开实施例提供了一种匹配数据的方法,该方法可以由业务服务器实现,其中,业务服务器可以是某业务的后台服务器,比如某旅游业务的后台服务器,或者在某理财业务的后台服务器,业务服务器可以是单独的服务器,也可以是由多个服务器组成的服务器组,本实施例以业务服务器为一个服务器为例进行说明,其他情况与之类似。另外,本方案还涉及区块链中的节点服务器,节点服务器可以与多个业务服务器建立连接。另外,区块链中还可以设置有权限管理服务器,权限管理服务器是用于管理区块链中各节点服务器的公钥的服务器。如图1所示,为本实施例的系统框架图,包括节点服务器、权限管理服务器、以及进行数据匹配的第一业务服务器和第二业务服务器。

第二业务服务器可以包括处理器、存储器和收发器。处理器,可以为cpu(centralprocessingunit,中央处理单元)等,可以获取存储器中存储的第一数据集合,然后根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合,处理器还可以根据同态运算结果,确定本地与第一业务服务器共同包含的子数据;存储器,可以为ram(randomaccessmemory,随机存取存储器)、flash(闪存)等,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如同态加密算法、本地的公钥和私钥等。收发器可以用于向第一业务服务器发送第一密文集合,以及接收第一业务服务器发送的各密文对应的同态运算结果。另外,第二业务服务器还可以包括电源和网络端口等部件。

第一业务服务器可以包括处理器、存储器和收发器。处理器,可以为cpu(centralprocessingunit,中央处理单元)等,可以基于收发器接收到的第一密文集合,以及存储器存储的第二数据集合进行同态运算;存储器,可以为ram(randomaccessmemory,随机存取存储器)、flash(闪存)等,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如第一密文集合、第二数据集合和同态加密算法等。收发器可以用于接收第二业务服务器发送的第一密文集合,以及向第二业务服务器发送同态运算结果。另外,第一业务服务器还可以包括电源和网络端口等部件。

下面将结合实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:

在步骤201中,第二业务服务器获取预先存储的第一数据集合,第一数据集合中至少包含一个子数据。

其中,目标数据集合可以包含至少一个子数据,该子数据可以是任意数据,例如,子数据可以是用户信息,用户信息可以包括用户的手机号、姓名、账户名、手机的mac地址中的一项或多项;子数据也可以是设备信息,比如设备的标识、生产厂商名称等,本实施例不做限定。

在实施中,各业务的业务服务器中通常会存储与该业务相关的数据库,该数据库中可以存储有多个子数据。子数据可以是通过人工输入得到的,也可以是从其他服务器中获取到的。某个业务服务器(即第二业务服务器)可以在接收到数据匹配指令时,执行获取预先存储的目标数据集合的处理,或者,也可以在达到预设的匹配周期时,执行获取预先存储的目标数据集合的处理。第二业务服务器可以从数据库中,获取需要进行数据匹配的数据(即第一数据集合)。第二业务服务器可以获取本地存储的全部子数据,作为第一数据集合;或者,也可以根据管理人员输入的数据条件(比如数据类型,或者数据的创建时间),获取满足该数据条件的子数据,得到第一数据集合。

在步骤202中,第二业务服务器根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合。

在实施中,第二业务服务器中可以存储同态加密算法,比如paillier同态加密算法。第二业务服务器还可以存储本地的密钥对,密钥对可以包括公钥和私钥,该密钥对可以是第二业务服务器基于同态机密算法生成的。第二业务服务器可以周期性的更新本地的密钥对,也可以在每次匹配数据时,生成本次匹配数据过程中所使用的密钥对。

第二业务服务器可以基于同态加密算法和本地的公钥,分别对第一数据集合中的每个子数据进行加密,得到每个子数据的密文。第一数据集合中的全部子数据对应的密文,可以组成第一密文集合。例如,记子数据为x,对应的密文为e(x)。另外,第二业务服务器也可以先生成每个子数据对应的向量,然后基于同态加密算法和本地的公钥,分别对每个子数据的向量进行加密,得到每个子数据对应的密文。例如,记子数据为x,对应的向量为(a1,a2…ak),密文为e(x)=(e(a1),e(a2)…e(ak))。

在步骤203中,第二业务服务器向第一业务服务器发送第一密文集合。

在实施中,第二业务服务器确定第一密文集合后,可以向第一业务服务器发送匹配请求消息,该匹配请求消息中可以携带有第一密文集合,还可以携带有第二业务服务器的标识,以及与第二业务服务器进行数据匹配的第一业务服务器的标识。另外,第二业务服务器还可以向第一业务服务器发送本地的公钥,以便第二业务服务器进行同态运算。该公钥可以携带在匹配请求消息中进行发送,也可以携带在其他消息中进行发送。

可选的,可以通过区块链中的节点服务器来发送第一密文集合,相应的,步骤203的处理过程可以如下:通过区块链中的第一节点服务器,将第一密文集合发送给第一业务服务器。

在实施中,第一节点服务器可以是区块链中的任一服务器。第二业务服务器可以获取第一节点服务器对应的密钥(可称为第一密钥),第一密钥可以是第一节点服务器的公钥,也可以是第二业务服务器与第一节点服务器协商得到的密钥。对于第一密钥是第一节点服务器的公钥的情况,第二业务服务器可以向区块链中的权限管理服务器发送对应第一节点服务器的密钥获取请求,该密钥获取请求中可以携带有第一节点服务器的标识。权限管理服务器接收到该密钥获取请求后,可以获取第一节点服务器的公钥,然后将该公钥发送给第二业务服务器。

第二业务服务器确定第一密文集合后,可以基于第一密钥以及预设的加密算法,对第一密文集合进行加密,然后可以向第一节点服务器发送匹配请求消息,该匹配请求消息中可以携带有加密后的第一密文集合,还可以携带有第二业务服务器的标识,以及与第二业务服务器进行数据匹配的第一业务服务器的标识。这样,可以提高传输密文集合的安全性,即使其他非法节点非法获取到该匹配请求消息,也不能获取到第一密文集合。

第一节点服务器接收到该匹配请求消息后,可以对该匹配请求消息进行解析,获取加密后的第一密文集合、第二业务服务器的标识和第一业务服务器的标识。第一节点服务器可以基于第一密钥对应的解密密钥,对加密后的第一密文集合进行解密,得到第一密文集合,然后可以添加该匹配请求消息对应的交易记录。该交易记录可以包括第一密文集合、第二业务服务器的标识和第一业务服务器的标识,还可以包括该匹配请求消息对应的时间戳,以及第一节点服务器为该匹配请求消息分配的交易id等信息。这样,在匹配数据的过程中,通过区块链来转发数据,并由区块链对转发的数据进行记录,可以实现交换数据可查、不可变更,提高了匹配数据的可靠性。

第一节点服务器接收到匹配请求消息后,可以根据匹配请求消息中的第一业务服务器的标识,自动向第一业务服务器发送加密后的第一密文集合。或者,第一节点服务器也可以在接收到第一业务服务器发送的数据请求消息时,向第一业务服务器发送加密后的第一密文集合。

在步骤204中,第一业务服务器接收第二业务服务器发送的第一密文集合。

在实施中,第一业务服务器可以接收第二业务服务器发送的匹配请求消息,然后可以对该匹配请求消息进行解析,获取第一密文集合。

可选的,对于第二业务服务器通过区块链转发第一密文集合的情况,相应的,步骤204的处理过程可以如下:接收第二业务服务器通过区块链中的第一节点服务器转发的第一密文集合。

在实施中,第二节点服务器中可以预先存储第一密钥对应的解密密钥。第二业务服务器可以接收第一节点服务器发送的加密后的第一密文集合后,可以通过该解密密钥对加密后的第一密文集合进行解密,获取第一密文集合。

在步骤205中,第一业务服务器基于预先存储的第二数据集合和第一密文集合进行同态运算,得到第一密文集合中的各密文对应的同态运算结果,第二数据集合中至少包含一个子数据。

在实施中,第一业务服务器中可以预先存储同态加密算法,比如paillier同态加密算法。同态加密算法中包含同态运算公式。对于第一密文集合中的任一密文(可称为第一密文),第一业务服务器可以根据第一密文、预先存储的第二数据集合和同态运算公式,进行同态运算,得到第一密文对应的同态运算结果。这样,第一业务服务器可以得到每个密文对应的同态运算结果。在实际中,不同的同态加密算法计算同态运算结果的方式是不同的。例如,某些同态加密算法中,可以根据第一密文、第二数据集合中的子数据和同态运算公式,直接计算出同态运算结果;某些同态加密算法中,则是先计算第二数据集合对应的第二密文集合,然后根据第一密文、第二密文集合和同态运算公式,计算出同态运算结果。需要说明的是,第一业务服务器和第二业务服务器存储的同态加密算法是相同的。

可选的,对于先计算第二密文集合,再计算同态运算结果的情况,相应的处理过程可以如下:获取第二业务服务器的公钥;根据公钥和预先存储的同态加密算法,确定预先存储的第二数据集合中的每个子数据对应的密文,得到第二密文集合;基于第一密文集合和第二密文集合进行同态运算。

在实施中,第一业务服务器可以获取第二业务服务器的公钥。对于第二业务服务器将公钥携带在匹配请求消息中进行发送的情况,第一业务服务器可以对匹配请求消息进行解析,获取第二业务服务器的公钥。对于第二业务服务器预先通过其他消息将该公钥发送给第一业务服务器的情况,第一业务服务器可以获取本地预先存储的第二业务服务器的公钥。

第一业务服务器还可以获取本地存储的第二数据集合,然后基于第二业务服务器的公钥,以及预先存储的同态加密算法,对第二数据集合中的每个子数据进行加密,得到每个子数据的密文。第二数据集合中的全部子数据对应的密文,可以组成第二密文集合。第一业务服务器可以根据第一密文、第二密文集合和同态运算公式,计算出第一密文对应的同态运算结果,进而得到第一密文集合中的每个密文对应的同态运算结果。这样,参与数据匹配的双方可以通过同态加密来保护自己数据的隐私性,并且,基于同态匹配的特性,可以使基于密文的匹配结果,与基于明文的匹配结果相同,既实现了数据匹配,又可以避免匹配双方的数据泄露。

在步骤206中,第一业务服务器向第二业务服务器发送同态运算结果。

在实施中,第一业务服务器可以向第二业务服务器发送匹配响应消息,该匹配响应消息中可以携带有第一密文集合中的每个密文对应的同态运算结果。

可选的,可以通过区块链中的节点服务器来发送同态运算结果,相应的,步骤206的处理过程可以如下:通过区块链中的第二节点服务器,将同态运算结果发送给第二业务服务器。

在实施中,第二节点服务器可以是区块链中的任一服务器。第二节点服务器与第一节点服务器可以是同一节点服务器,也可以是不同节点服务器。

第一业务服务器可以获取第二节点服务器对应的密钥(可称为第二密钥),第二密钥可以是第二节点服务器的公钥,也可以是第一业务服务器与第二节点服务器协商得到的密钥。对于第二密钥是第二节点服务器的公钥的情况,第一业务服务器需要从向区块链的权限管理服务器中获取第二密钥,具体的处理可以参照步骤203。

第一业务服务器可以基于第二密钥以及预设的加密算法,对同态运算结果进行加密,然后可以向第二节点服务器发送匹配响应消息,该匹配响应消息中可以携带有加密后的第一密文集合中的每个密文对应的同态运算结果,还可以携带有第二业务服务器的标识和第一业务服务器的标识。

第二节点服务器接收到该匹配响应消息后,可以对该匹配响应消息进行解析,获取加密后的同态运算结果、第二业务服务器的标识和第一业务服务器的标识。第二节点服务器可以基于第二密钥对应的解密密钥,对加密后的同态运算结果进行解密,得到同态运算结果,然后可以添加该匹配响应消息对应的交易记录。该交易记录可以包括同态运算结果、第二业务服务器的标识和第一业务服务器的标识,还可以包括该匹配响应消息对应的时间戳,以及第二节点服务器为该匹配响应消息分配的交易id等信息。这样,在匹配数据的过程中,通过区块链来转发数据,并由区块链对转发的数据进行记录,可以实现交换数据可查、不可变更,提高了匹配数据的可靠性。

第二节点服务器接收到匹配响应消息后,可以向第一业务服务器发送加密后的同态运算结果。具体的处理可以参照步骤203。

在步骤207中,第二业务服务器接收第一业务服务器发送的各密文对应的同态运算结果,根据同态运算结果,确定本地与第一业务服务器共同包含的子数据。

在实施中,第二业务服务器接收到各密文对应的同态运算结果后,可以获取本地的私钥。对于第一密文集合中的任一密文,第二业务服务器可以用本地的私钥对该密文的同态运算结果进行解密,得到该密文对应的匹配结果,如果该匹配结果为匹配,则第二业务服务器可以将该密文对应的子数据记录为本地与第一业务服务器共同包含的子数据;如果该匹配结果为不匹配,则说明该密文对应的子数据不是本地与第一业务服务器共同包含的子数据,第二业务服务器可以不进行处理。

可选的,对于第一业务服务器通过区块链转发第一密文集合同态运算结果的情况,相应的,步骤207的处理过程可以如下:接收第一业务服务器通过区块链中的第二节点服务器转发的各密文对应的同态运算结果。

在实施中,第二节点服务器中可以预先存储第二密钥对应的解密密钥。第二业务服务器接收到第一节点服务器发送的加密后的同态运算结果后,可以通过该解密密钥对加密后的同态运算结果进行解密,得到同态运算结果。

在步骤208中,第二业务服务器通过区块链中的第三节点服务器,将本地与第一业务服务器共同包含的子数据发送给第一业务服务器。

在实施中,第三节点服务器可以是区块链中的任一服务器。第三节点服务器与第一节点服务器可以是同一节点服务器,也可以是不同节点服务器。

第一业务服务器可以获取第三节点服务器对应的密钥(可称为第三密钥),第三密钥可以是第三节点服务器的公钥,也可以是第一业务服务器与第三节点服务器协商得到的密钥。对于第三密钥是第三节点服务器的公钥的情况,第一业务服务器需要从向区块链的权限管理服务器中获取第三密钥,具体的处理可以参照步骤203。

第一业务服务器可以基于第三密钥以及预设的加密算法,对本地与第一业务服务器共同包含的子数据(可称为第三数据集合)进行加密,然后可以向第三节点服务器发送匹配结果消息,该匹配结果消息中可以携带有加密后的第三数据集合,还可以携带有第二业务服务器的标识和第一业务服务器的标识。第三节点服务器接收到该匹配结果消息后,可以对该匹配结果消息进行解析,获取加密后的第三数据集合、第二业务服务器的标识和第一业务服务器的标识。第三节点服务器可以添加该匹配结果消息对应的交易记录,并可以向第一业务服务器发送加密后的第三数据集合。具体的处理可以参照步骤203。

在步骤209中,第一业务服务器接收第二业务服务器通过区块链中的第三节点服务器转发的第二服务器与本地共同包含的子数据。

在实施中,第一业务服务器可以对接收到的子数据进行存储。基于上述处理,参与数据匹配的双方只能获取与对方相同的子数据,并不能获知对方的全部数据,从而提高了数据的安全性。

本公开实施例中,获取预先存储的第一数据集合,第一数据集合中至少包含一个子数据,根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合,向第一业务服务器发送第一密文集合,接收第一业务服务器发送的各密文对应的同态运算结果,根据同态运算结果,确定本地与第一业务服务器共同包含的子数据,这样,在匹配数据的过程中,业务服务器无需将自己的数据发送给其他业务服务器,可以有效的避免数据泄露的情况,提高数据的安全性。

基于相同的技术构思,本公开实施例还提供了一种匹配数据的装置,如图3所示,该装置包括:获取模块310,第一确定模块320、第一发送模块330和第二确定模块340。

获取模块310,用于获取预先存储的第一数据集合,所述第一数据集合中至少包含一个子数据;

第一确定模块320,用于根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合;

第一发送模块330,用于向第一业务服务器发送所述第一密文集合;

第二确定模块340,用于接收所述第一业务服务器发送的各密文对应的同态运算结果,根据所述同态运算结果,确定本地与所述第一业务服务器共同包含的子数据。

可选的,所述第一发送模块330,用于:通过区块链中的第一节点服务器,将所述第一密文集合发送给第一业务服务器。

可选的,所述第二确定模块340,用于:接收所述第一业务服务器通过区块链中的第二节点服务器转发的各密文对应的同态运算结果。

可选的,如图4所示,所述第二确定模块340,包括:

解密子模块341,用于基于本地的私钥对所述同态运算结果进行解密,得到所述各密文对应的匹配结果;

确定子模块342,用于根据所述匹配结果,确定本地与所述第一业务服务器共同包含的子数据。

可选的,如图5所示,所述装置还包括:

第二发送模块350,用于通过区块链中的第三节点服务器,将所述本地与所述第一业务服务器共同包含的子数据发送给所述第一业务服务器。

基于相同的技术构思,本公开实施例还提供了一种匹配数据的装置,如图6所示,该装置包括:第一接收模块610、运算模块620和发送模块620。

第一接收模块610,用于接收第二业务服务器发送的第一密文集合;

运算模块620,用于基于预先存储的第二数据集合和所述第一密文集合进行同态运算,得到所述第一密文集合中的各密文对应的同态运算结果,所述第二数据集合中至少包含一个子数据;

发送模块630,用于向所述第二业务服务器发送所述同态运算结果。

可选的,如图7所示,所述运算模块620,包括:

获取子模块621,用于获取所述第二业务服务器的公钥;

确定子模块622,用于根据所述公钥和预先存储的同态加密算法,确定预先存储的第二数据集合中的每个子数据对应的密文,得到第二密文集合;

运算子模块623,用于基于所述第一密文集合和所述第二密文集合进行同态运算。

可选的,所述第一接收模块610,用于:接收所述第二业务服务器通过区块链中的第一节点服务器转发的第一密文集合。

可选的,所述发送模块630,用于:通过区块链中的第二节点服务器,将所述同态运算结果发送给所述第二业务服务器。

可选的,如图8所示,所述装置还包括:

第二接收模块640,用于接收所述第二业务服务器通过区块链中的第三节点服务器转发的所述第二服务器与本地共同包含的子数据。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开实施例中,获取预先存储的第一数据集合,第一数据集合中至少包含一个子数据,根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合,向第一业务服务器发送第一密文集合,接收第一业务服务器发送的各密文对应的同态运算结果,根据同态运算结果,确定本地与第一业务服务器共同包含的子数据,这样,在匹配数据的过程中,业务服务器无需将自己的数据发送给其他业务服务器,可以有效的避免数据泄露的情况,提高数据的安全性。

需要说明的是:上述实施例提供的匹配数据的装置在匹配数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的匹配数据的装置与匹配数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本公开再一示例性实施例提供了一种用于匹配数据的装置1900的框图。例如,装置1900可以被提供为一业务服务器,该业务服务器可以是上述匹配数据的方法中的第一业务服务器或第二业务服务器。参照图9,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理部件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述对设备进行控制的方法。

装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(i/o)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

装置1900可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于业务服务器进行上述匹配数据的方法的指令。

本公开实施例中,获取预先存储的第一数据集合,第一数据集合中至少包含一个子数据,根据预先存储的同态加密算法和本地的公钥,确定每个子数据对应的密文,得到第一密文集合,向第一业务服务器发送第一密文集合,接收第一业务服务器发送的各密文对应的同态运算结果,根据同态运算结果,确定本地与第一业务服务器共同包含的子数据,这样,在匹配数据的过程中,业务服务器无需将自己的数据发送给其他业务服务器,可以有效的避免数据泄露的情况,提高数据的安全性。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1