数据交互方法、装置、服务器和电子设备与流程

文档序号:19149122发布日期:2019-11-15 23:52阅读:297来源:国知局
数据交互方法、装置、服务器和电子设备与流程

本说明书实施例涉及计算机技术领域,特别涉及一种数据交互方法、装置、服务器和电子设备。



背景技术:

多方安全计算是一种密码学技术,参与计算的多方可以通过执行一个多方安全计算算法,基于各自持有的输入数据来共同进行安全计算,得到出一个计算结果,而不向其它各方泄露持有的输入数据。

多方安全计算在业务实际中获得了广泛应用。例如,在合作安全建模的场景中,出于保护数据隐私的考虑,多个数据方可以在不泄漏自身所拥有的数据的前提下,利用多方安全计算技术对数据处理模型进行协作训练。

在执行多方安全计算的过程中,参与计算的多方需要使用到大量的随机数。在相关技术中,通常由独立的第三方生成大量的随机数,并向参与计算的各方分发生成的随机数。由于第三方需要向参与计算的各方分发大量的随机数,这样便占用了大量的网络带宽。



技术实现要素:

本说明书实施例的目的是提供一种数据交互方法、装置、服务器和电子设备,以减少随机数服务器所下发的随机数数量,从而减少网络带宽的占用。

为实现上述目的,本说明书中一个或多个实施例提供的技术方案如下。

根据本说明书一个或多个实施例的第一方面,提供了一种数据交互方法,应用于多方安全计算领域,包括:基于第一随机种子、第二随机种子、第三随机种子和第四随机种子分别依次生成第一随机数集合、第二随机数集合、第三随机数集合和第四随机数集合;基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合分别生成第五随机数集合和第六随机数集合;所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数满足预设条件;向第一设备发送所述第一随机种子、所述第二随机种子和所述第五随机数集合;向第二设备发送所述第三随机种子、所述第四随机种子和所述第六随机数集合。

根据本说明书一个或多个实施例的第二方面,提供了一种数据交互装置,应用于多方安全计算领域,包括:第一生成单元,用于基于第一随机种子、第二随机种子、第三随机种子和第四随机种子分别依次生成第一随机数集合、第二随机数集合、第三随机数集合和第四随机数集合;第二生成单元,用于基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合分别生成第五随机数集合和第六随机数集合;所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数满足预设条件;第一发送单元,用于向第一设备发送所述第一随机种子、所述第二随机种子和所述第五随机数集合;第二发送单元,向第二设备发送所述第三随机种子、所述第四随机种子和所述第六随机数集合。

根据本说明书一个或多个实施例的第三方面,提供了一种服务器,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第一方面所述的方法步骤。

根据本说明书一个或多个实施例的第四方面,提供了一种数据交互方法,应用于多方安全计算领域,包括:接收第一随机种子、第二随机种子和第一随机数集合;基于所述第一随机种子和所述第二随机种子分别生成第二随机数集合和第三随机数集合,以便基于所述第一随机数集合、所述第二随机数集合和所述第三随机数集合执行多方安全计算。

根据本说明书一个或多个实施例的第五方面,提供了一种数据交互装置,应用于多方安全计算领域,包括:接收单元,用于接收第一随机种子、第二随机种子和第一随机数集合;生成单元,用于基于所述第一随机种子和所述第二随机种子分别生成第二随机数集合和第三随机数集合,以便基于所述第一随机数集合、所述第二随机数集合和所述第三随机数集合执行多方安全计算。

根据本说明书一个或多个实施例的第六方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第四方面所述的方法步骤。

由以上本说明书实施例提供的技术方案可见,本说明书实施例中,随机数服务器可以向第一设备下发第一随机种子和第二随机种子;可以向第二设备下发第三随机种子和第四随机种子。随机数服务器通过向第一设备和第二设备下发随机种子,可以减少下发的随机数数量,减少了网络带宽的占用。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为相关技术中一种随机数分发方法的示意图;

图2为本说明书实施例一种数据处理系统的架构图;

图3为本说明书实施例一种数据交互方法的流程图;

图4为本说明书实施例一种秘密分享过程的示意图;

图5为本说明书实施例一种数据交互方法的流程图;

图6为本说明书实施例一种数据交互方法的流程图;

图7为本说明书实施例一种数据交互装置的功能结构图;

图8为本说明书实施例一种数据交互装置的功能结构图;

图9为本说明书实施例一种服务器的功能结构图;

图10为本说明书实施例一种电子设备的功能结构图。

具体实施方式

下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

请参阅图1。上述相关技术中,第三方可以生成第一随机数集合、第二随机数集合、第三随机数集合、第四随机数集合、第五随机数集合和第六随机数集合。所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中均可以包括至少一个随机数。并且所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数可以满足预设条件。

第三方可以向第一设备下发第一随机数集合、第二随机数集合和第五随机数集合;可以向第二设备下发第三随机数集合、第四随机数集合和第六随机数集合。所述第一设备可以接收所述第一随机数集合、所述第二随机数集合和所述第五随机数集合。所述第二设备可以接收所述第三随机数集合、所述第四随机数集合和所述第六随机数集合。这样所述第一设备可以基于所述第一随机数集合、所述第二随机数集合和所述第五随机数集合,所述第二设备可以基于所述第三随机数集合、所述第四随机数集合和所述第六随机数集合,进行多方安全计算。由于第三方需要向所述第一设备下发第一随机数集合、第二随机数集合和第五随机数集合,并且需要向所述第二设备下发第三随机数集合、第四随机数集合和第六随机数集合,使得第三方下发的随机数的数量较多,从而占用了大量的网络带宽。

多方安全计算(securemuti-partycomputation,mpc)是一种保护数据隐私安全的算法。多个参与方可以在不泄漏自身数据的前提下,使用多方安全计算技术进行协作计算,得到计算结果。例如,采用多方安全计算,参与方p1,…,pn可以协作计算函数f(x1,…,xn)=(y1,…,yn)=y。其中,n≥2;x1,...,xn分别为参与方p1,…,pn拥有的数据;y为计算结果;y1,…,yn分别为参与方p1,…,pn在计算后所拥有的计算结果y的份额。

多方安全计算在业务实际中获得了广泛应用。例如,在合作安全建模的场景中,出于保护数据隐私的考虑,多个数据方可以在不泄漏自身所拥有的数据的前提下,利用多方安全计算技术对数据处理模型进行协作训练。

秘密分享(ss,secretsharing)是一种用于实现多方安全计算的算法。秘密分享算法的思想是:将秘密信息以适当的方式进行拆分;拆分后的份额由不同的参与方管理;单个参与方无法恢复秘密信息;只有若干个参与方一同协作才能恢复秘密信息。例如,参与方p1拥有数据x1,参与方p2拥有数据x2。采用秘密分享算法,参与方p1和参与方p2可以进行协作计算,得到计算结果y=y1+y2=f(x1,x2)=x1x2。参与方p1在计算后可以获得计算结果y的份额y1,参与方p2在计算后可以获得计算结果y的份额y2。

随机种子可以为一种用于生成随机数的随机数。所述随机种子具体可以为真随机数;或者,也可以为伪随机数。在实际应用中,以所述随机种子作为初始条件,利用随机数生成算法进行多次迭代,便可以生成相应的多个随机数。

请参阅图2。本说明书提供一种数据处理系统的实施例。

在该实施例中,所述数据处理系统可以包括随机数服务器、第一设备和第二设备。

所述随机数服务器可以为一个服务器;或者,还可以为包括多个服务器的服务器集群。所述随机数服务器作为一个可信任的第三方(ttp,trustedthirdparty),用于分别向所述第一设备和所述第二设备下发随机种子和随机数。具体地,所述随机数服务器可以基于第一随机种子、第二随机种子、第三随机种子和第四随机种子分别依次生成第一随机数集合、第二随机数集合、第三随机数集合和第四随机数集合;可以基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合分别生成第五随机数集合和第六随机数集合;所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数满足预设条件;可以向第一设备发送所述第一随机种子、所述第二随机种子和所述第五随机数集合;可以向第二设备发送所述第三随机种子、所述第四随机种子和所述第六随机数集合。

所述第一设备和所述第二设备均可以为服务器、手机、平板电脑、或个人电脑等设备;或者,也均可以为由多台设备组成的系统,例如由多个服务器组成的服务器集群。所述第一设备和所述第二设备可以为参与多方安全计算的双方。具体地,所述第一设备可以接收所述第一随机种子、所述第二随机种子和所述第五随机数集合;可以基于所述第一随机种子和所述第二随机种子在本地分别生成所述第一随机数集合和所述第二随机数集合。所述第二设备可以接收所述第三随机种子、所述第四随机种子和所述第六随机数集合;可以基于所述第三随机种子和所述第四随机种子在本地分别生成所述第三随机数集合和所述第四随机数集合。如此所述第一设备可以基于所述第一随机数集合、所述第二随机数集合和所述第五随机数集合,所述第二设备可以基于所述第三随机数集合、所述第四随机数集合和所述第六随机数集合,进行多方安全计算。

考虑到基于相同的随机种子,由不同的实施主体执行相同的随机数生成算法,得到的随机数是相同的。因此所述随机数服务器、所述第一设备和所述第二设备之间可以约定有随机数生成算法。所述随机数生成算法可以包括平方取中法(midsquaremethod)、线性同余法(linearcongruentialmethod)等等。这样基于所述第一随机种子,所述随机数服务器和所述第一设备通过执行约定的随机数生成算法,可以获得相同的第一随机数集合。相类似地,所述随机数服务器和所述第一设备还可以获得相同的第二随机数集合。所述随机数服务器和所述第二设备可以获得相同的第三随机数集合和第四随机数集合。

本说明书还提供一种数据交互方法的实施例。请参阅图3。该实施例可以包括以下步骤。

步骤s11:随机数服务器基于第一随机种子、第二随机种子、第三随机种子和第四随机种子分别生成第一随机数集合、第二随机数集合、第三随机数集合和第四随机数集合。

在一些实施例中,所述第一随机种子、所述第二随机种子、所述第三随机种子和所述第四随机种子均为多方安全计算随机种子,基于所述多方安全计算随机种子生成的随机数可以用于参与多方安全计算。所述第一随机种子、所述第二随机种子、所述第三随机种子和所述第四随机种子可以是所述随机数服务器生成的;或者,也可以是其它电子设备发来的,本实施例对此并不做具体限定。所述第一随机种子可以用于生成第一随机数集合中的随机数,所述第二随机种子可以用于生成第二随机数集合中的随机数,所述第三随机种子可以用于生成第三随机数集合中的随机数,所述第四随机种子可以用于生成第四随机数集合中的随机数。其中,所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合中均可以包括至少一个用于参与多方安全计算的随机数。

所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合中的随机数之间可以具有对应关系。在一个场景示例中,所述第一随机数集合可以为r1={<u0>1,…,<u0>i,…,<u0>k},<u0>i表示所述第一随机数集合中的第i个随机数u0。所述第二随机数集合可以为r2={<v0>1,…,<v0>i,…,<v0>k},<v0>i表示所述第二随机数集合中的第i个随机数v0。所述第三随机数集合可以为r3={<u1>1,…,<u1>i,…,<u1>k},<u1>i表示所述第三随机数集合中的第i个随机数u1。所述第四随机数集合可以为r4={<v1>1,…,<v1>i,…,<v1>k},<v1>i表示所述第四随机数集合中的第i个随机数v1。那么,<u0>i、<v0>i、<u1>i和<v1>i之间可以具有对应关系。i为大于0的自然数。

在一些实施例中,所述第一随机数集合可以包括一个随机数。如此所述随机数服务器可以以所述第一随机种子为初始条件,利用约定的随机数生成算法生成一个随机数作为所述第一随机数集合中的随机数。或者,所述第一随机数集合还可以包括多个随机数。如此所述随机数服务器可以以所述第一随机种子为初始条件,利用约定的随机数生成算法进行多次迭代,得到多个随机数作为所述第一随机数集合中的随机数。所述随机数服务器生成第二随机数集合、第三随机数集合和第四随机数集合的过程,可以与生成第一随机数集合的过程相类似,在此不再赘述。

步骤s13:随机数服务器基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合分别生成第五随机数集合和第六随机数集合。

在一些实施例中,所述第五随机数集合和所述第六随机数集合中均可以包括至少一个随机数。所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数之间可以具有对应关系。延续前面的场景示例,所述第五随机数集合可以为r5={<z0>1,…,<z0>i,…,<z0>k},<z0>i表示所述第五随机数集合中的第i个随机数z0。所述第六随机数集合可以为r6={<z1>1,…,<z1>i,…,<z1>k},<z1>i表示所述第六随机数集合中的第i个随机数z1。那么,<u0>i、<v0>i、<u1>i、<v1>i、<z0>i和<z1>i之间可以具有对应关系。

所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数之间可以满足预设条件。延续前面的场景示例,所述预设条件可以为:(<u0>i+<u1>i)(<v0>i+<v1>i)=<z0>i+<z1>i。

在一些实施例中,所述随机数服务器可以生成第五随机数集合;可以基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述预设条件,计算第一数据作为所述第六随机数集合中的随机数。延续前面的场景示例,所述随机数服务器可以生成随机数<z0>i作为第五随机数集合r5中的随机数;可以基于随机数<u0>i、<v0>i、<u1>i、<v1>i、<z0>i和预设条件(<u0>i+<u1>i)(<v0>i+<v1>i)=<z0>i+<z1>i计算第一数据<z1>i作为第六随机数集合r6中的随机数。

或者,所述随机数服务器还可以生成第六随机数集合;可以基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第六随机数集合和所述预设条件,计算第二数据作为所述第五随机数集合中的随机数。延续前面的场景示例,所述随机数服务器可以生成随机数<z1>i作为第六随机数集合r6中的随机数;可以基于<u0>i、<v0>i、<u1>i、<v1>i、<z1>i和预设条件(<u0>i+<u1>i)(<v0>i+<v1>i)=<z0>i+<z1>i计算第二数据<z0>i作为第五随机数集合r5中的随机数。

步骤s15:随机数服务器向第一设备发送所述第一随机种子、所述第二随机种子和所述第五随机数集合。

在一些实施例中,所述随机数服务器可以向所述第一设备发送所述第一随机种子、所述第二随机种子和所述第五随机数集合。所述第一设备可以接收所述第一随机种子、所述第二随机种子和所述第五随机数集合。

步骤s17:随机数服务器向第二设备发送所述第三随机种子、所述第四随机种子和所述第六随机数集合。

在一些实施例中,所述随机数服务器还可以向所述第二设备发送所述第三随机种子、所述第四随机种子和所述第六随机数集合。所述第二设备可以接收所述第三随机种子、所述第四随机种子和所述第六随机数集合。

步骤s19:第一设备接收所述第一随机种子、所述第二随机种子和所述第五随机数集合;基于所述第一随机种子和所述第二随机种子分别生成所述第一随机数集合和所述第二随机数集合。

在一些实施例中,所述第一设备可以基于所述第一随机种子和所述第二随机种子,利用约定的随机数生成算法在本地分别生成所述第一随机数集合和所述第二随机数集合。

步骤s21:第二设备接收所述第三随机种子、所述第四随机种子和所述第六随机数集合;基于所述第三随机种子和所述第四随机种子分别生成所述第三随机数集合和所述第四随机数集合。

在一些实施例中,所述第二设备可以基于所述第三随机种子和所述第四随机数集合,利用约定的随机数生成算法在本地分别生成所述第三随机数集合和所述第四随机数集合。

步骤s23:第一设备基于所述第一随机数集合、所述第二随机数集合和所述第五随机数集合,第二设备基于所述第三随机数集合、所述第四随机数集合和所述第六随机数集合,进行多方安全计算。

在一些实施例中,由所述第一设备在本地生成的第一随机数集合和第二随机数集合分别与由所述随机数服务器在本地生成的第一随机数集合和第二随机数集合相同,并且由所述第二设备在本地生成的第三随机数集合和第四随机数集合分别与由所述随机数服务器在本地生成的第三随机数集合和第四随机数集合相同。因此所述第一设备在本地生成的第一随机数集合、所述第一设备在本地生成的第二随机数集合、所述第二设备在本地生成的第三随机数集合、所述第二设备在本地生成的第四随机数集合、所述随机数服务器生成的第五随机数集合、所述随机数服务器生成的第六随机数集合中的随机数之间满足前面的预设条件。这样所述第一设备可以基于所述第一随机数集合、所述第二随机数集合和所述第五随机数集合,所述第二设备可以基于所述第三随机数集合、所述第四随机数集合和所述第六随机数集合,进行多方安全计算。

秘密分享是一种用于实现多方安全计算的算法。请参阅图4。以下介绍所述第一设备和所述第二设备进行秘密分享的一个场景示例。

在本场景示例中,所述第一设备拥有第一业务数据集合d1={<a0>1,…,<a0>i,…,<a0>k}和第二业务数据集合d2={<b0>1,…,<b0>i,…,<b0>k}。其中,<a0>i表示所述第一业务数据集合中的第i个业务数据a0,<b0>i表示所述第二业务数据集合中的第i个业务数据b0。

所述第二设备拥有第三业务数据集合d3={<a1>1,…,<a1>i,…,<a1>k}和第四业务数据集合d4={<b1>1,…,<b1>i,…,<b1>k}。其中,<a1>i表示所述第三业务数据集合中的第i个业务数据a1,<b1>i表示所述第四业务数据集合中的第i个业务数据b1。

<a0>i可以理解为业务数据<a>i的一个份额,<a1>i可以理解为业务数据<a>i的另一个份额。<a0>i+<a1>i=<a>i。相类似地,<b0>i可以理解为业务数据<b>i的一个份额,<b1>i可以理解为业务数据<b>i的另一个份额,<b0>i+<b1>i=<b>i。

在本场景示例中,所述第一设备可以生成第一随机数集合r1={<u0>1,…,<u0>i,…,<u0>k}和第二随机数集合r2={<v0>1,…,<v0>i,…,<v0>k};可以接收来自随机数服务器的第五随机数集合r5={<z0>1,…,<z0>i,…,<z0>k}。

所述第二设备可以生成第三随机数集合r3={<u1>1,…,<u1>i,…,<u1>k}和第四随机数集合r4={<v1>1,…,<v1>i,…,<v1>k};可以接收来自随机数服务器的第六随机数集合r6={<z1>1,…,<z1>i,…,<z1>k}。

<u0>i、<v0>i、<u1>i、<v1>i、<z0>i和<z1>i分别表示所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的第i个随机数。<u0>i、<v0>i、<u1>i、<v1>i、<z0>i和<z1>i之间满足如下预设条件:(<u0>i+<u1>i)(<v0>i+<v1>i)=<z0>i+<z1>i。

在本场景示例中,所述第一设备可以基于业务数据<a0>i、业务数据<b0>i、随机数<u0>i、随机数<v0>i和随机数<z0>i,所述第二设备可以基于业务数据<a1>i、业务数据<b1>i、随机数<u1>i、随机数<v1>i和随机数<z1>i,秘密分享乘积<a>i×<b>i。所述第一设备可以获得乘积<a>i×<b>i的一个份额<c0>i,所述第二设备可以获得乘积<a>i×<b>i的另一个份额<c1>i。

<c0>i+<c1>i=<a>i×<b>i=(<a0>i+<a1>i)(<b0>i+<b1>i)。具体过程如下。

所述第一设备可以计算<a0>i-<u0>i和<b0>i-<v0>i;可以向所述第二设备发送<a0>i-<u0>i和<b0>i-<v0>i。所述第二设备可以接收<a0>i-<u0>i和<b0>i-<v0>i。

所述第二设备可以计算<a1>i-<u1>i和<b1>i-<v1>i;可以向所述第一设备发送<a1>i-<u1>i和<b1>i-<v1>i。所述第一设备可以接收<a1>i-<u1>i和<b1>i-<v1>i。

所述第一设备可以计算

可以计算所述第二设备可以计算可以计算这样所述第一设备和所述第二设备均获得了<e>i和<f>i。

所述第一设备可以计算<c0>i=-<e>i×<f>i+<a0>i×<f>i+<e>i×<b0>i+<z0>i。所述第二设备可以计算<c1>i=<a1>i×<f>i+<e>i×<b1>i+<z1>i。这样便实现了秘密分享。

本说明书实施例的数据交互方法,随机数服务器可以向第一设备下发第一随机种子和第二随机种子;可以向第二设备下发第三随机种子和第四随机种子。随机数服务器通过向第一设备和第二设备下发随机种子,可以减少下发的随机数数量,从而减少了网络带宽的占用。

以下介绍本说明书实施例的一个应用场景示例。需要说明的是,该应用场景示例的目的仅在于更好地说明本说明书的实施例,并不构成对本说明书实施例的不当限定。

在合作安全建模的场景中,出于保护数据隐私的考虑,多个数据方可以在不泄漏自身所拥有的数据的前提下,基于自身拥有的数据,对数据处理模型进行协作训练。所述数据处理模型包括但不限于逻辑回归模型、线性回归模型、神经网络模型等。在对数据处理模型进行训练的过程中,可以利用模型参数优化方法对数据处理模型的模型参数进行优化调整。模型参数优化方法可以包括梯度下降法、牛顿法等等。考虑到在合作安全建模的场景中,用于对数据处理模型进行训练的数据分散在合作建模的各数据方。因此在合作安全建模的场景中,所述模型参数优化方法可以采用秘密分享算法来实现。

通常情况下,可以由第三方向第一设备下发第一随机数集合、第二随机数集合和第五随机数集合,并向第二设备下发第三随机数集合、第四随机数集合和第六随机数集合。所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数可以满足预设条件。这样所述第一设备可以基于所述第一随机数集合、所述第二随机数集合和所述第五随机数集合,所述第二设备可以基于所述第三随机数集合、所述第四随机数集合和所述第六随机数集合,利用秘密分享算法实现所述模型参数优化方法,从而实现对数据处理模型的模型参数进行优化调整。但是,由于第三方需要向所述第一设备下发第一随机数集合、第二随机数集合和第五随机数集合,并且需要向所述第二设备下发第三随机数集合、第四随机数集合和第六随机数集合,使得第三方下发的随机数的数量较多,从而占用了大量的网络带宽。

基于前面实施例中的数据交互方法可以解决网络带宽占用较大的问题。具体地,第三方可以向第一设备下发第一随机种子、第二随机种子和第五随机数集合;可以向第二设备下发第三随机种子、第四随机种子和第六随机数集合。所述第一设备可以接收所述第一随机种子、所述第二随机种子和所述第五随机数集合;可以基于所述第一随机种子和所述第二随机种子分别生成所述第一随机数集合和所述第二随机数集合。所述第二设备可以接收所述第三随机种子、所述第四随机种子和所述第六随机数集合;可以基于所述第三随机种子和所述第四随机种子分别生成所述第三随机数集合和所述第四随机数集合。如此所述第一设备可以基于所述第一随机数集合、所述第二随机数集合和所述第五随机数集合,所述第二设备可以基于所述第三随机数集合、所述第四随机数集合和所述第六随机数集合,利用秘密分享算法实现所述模型参数优化方法,从而实现对数据处理模型的模型参数进行优化调整。第三方通过向第一设备和第二设备下发随机种子,可以减少下发的随机数数量,减少了网络带宽的占用。

基于同样的发明构思,本说明书还提供数据交互方法的另一个实施例。请参阅图5。该实施例可以应用于随机数服务器,可以包括以下步骤。

步骤s31:基于第一随机种子、第二随机种子、第三随机种子和第四随机种子分别生成第一随机数集合、第二随机数集合、第三随机数集合和第四随机数集合。

在一些实施例中,所述第一随机种子、所述第二随机种子、所述第三随机种子和所述第四随机种子可以是所述随机数服务器生成的;或者,也可以是其它电子设备发来的。所述第一随机种子可以用于生成第一随机数集合中的随机数,所述第二随机种子可以用于生成第二随机数集合中的随机数,所述第三随机种子可以用于生成第三随机数集合中的随机数,所述第四随机种子可以用于生成第四随机数集合中的随机数。其中,所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合中均可以包括至少一个随机数。所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合中的随机数之间可以具有对应关系。

在一些实施例中,所述第一随机数集合可以包括一个随机数。如此所述随机数服务器可以以所述第一随机种子为初始条件,利用约定的随机数生成算法生成一个随机数作为所述第一随机数集合中的随机数。或者,所述第一随机数集合还可以包括多个随机数。如此所述随机数服务器可以以所述第一随机种子为初始条件,利用约定的随机数生成算法进行多次迭代,得到多个随机数作为所述第一随机数集合中的随机数。所述随机数服务器生成第二随机数集合、第三随机数集合和第四随机数集合的过程,可以与生成第一随机数集合的过程相类似,在此不再赘述。

步骤s33:基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合分别生成第五随机数集合和第六随机数集合。

在一些实施例中,所述第五随机数集合和所述第六随机数集合中均可以包括至少一个随机数。所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数之间可以具有对应关系。

所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数之间可以满足预设条件。

在一些实施例中,所述随机数服务器可以生成第五随机数集合;可以基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述预设条件,计算第一数据作为所述第六随机数集合中的随机数。

或者,所述随机数服务器还可以生成第六随机数集合;可以基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第六随机数集合和所述预设条件,计算第二数据作为所述第五随机数集合中的随机数。

步骤s35:向第一设备发送所述第一随机种子、所述第二随机种子和所述第五随机数集合。

在一些实施例中,所述随机数服务器可以向第一设备发送所述第一随机种子和所述第二随机种子;以便所述第一设备基于所述第一随机种子和所述第二随机种子分别生成第一随机数集合和第二随机数集合。

在一些实施例中,所述第一设备可以基于所述第一随机种子和所述第二随机种子在本地分别生成第一随机数集合和第二随机数集合;可以基于所述第一随机数集合、所述第二随机数集合和所述第五随机数集合与所述第二设备进行多方安全计算。

步骤s37:向第二设备发送所述第三随机种子、所述第四随机种子和所述第六随机数集合。

在一些实施例中,所述随机数服务器可以向第二设备发送所述第三随机种子和所述第四随机种子;以便所述第二设备基于所述第三随机种子和所述第四随机种子分别生成第三随机数集合和第四随机数集合。

在一些实施例中,所述第二设备可以基于所述第三随机种子和所述第四随机种子在本地分别生成第三随机数集合和第四随机数集合;可以基于所述第三随机数集合、所述第四随机数集合和所述第六随机数集合与所述第一设备进行多方安全计算。

本说明书实施例的数据交互方法,随机数服务器通过向第一设备和第二设备下发随机种子,可以减少下发的随机数数量,从而减少了网络带宽的占用。

基于同样的发明构思,本说明书还提供数据交互方法的另一个实施例。请参阅图6。该实施例可以应用于电子设备,所述电子设备可以包括第一设备和第二设备。该实施例可以包括以下步骤。

步骤s41:接收第一随机种子、第二随机种子和第一随机数集合。

在一些实施例中,随机数服务器可以向所述电子设备发送第一随机种子、第二随机种子和第一随机数集合。所述电子设备可以接收随机数服务器发来的第一随机种子、第二随机种子和第一随机数集合。

步骤s43:基于所述第一随机种子和所述第二随机种子分别生成第二随机数集合和第三随机数集合。

在一些实施例中,所述随机数服务器和所述电子设备之间可以约定有随机数生成算法。所述电子设备可以基于所述第一随机种子和所述第二随机种子,利用约定的随机数生成算法分别生成所述第二随机数集合和所述第三随机数集合,以便基于所述第一随机数集合、所述第二随机数集合和所述第三随机数集合执行多方安全计算。

本说明书实施例的数据交互方法,电子设备可以接收随机数服务器下发的第一随机种子、第二随机种子和第一随机数集合;可以基于所述第一随机种子和所述第二随机种子分别生成第二随机数集合和第三随机数集合,以便基于所述第一随机数集合、所述第二随机数集合和所述第三随机数集合执行多方安全计算。

请参阅图7。本说明书还提供数据交互装置的一个实施例。该实施例可以应用于随机数服务器,可以包括以下单元。

第一生成单元51,用于基于第一随机种子、第二随机种子、第三随机种子和第四随机种子分别依次生成第一随机数集合、第二随机数集合、第三随机数集合和第四随机数集合;

第二生成单元53,用于基于所述第一随机数集合、所述第二随机数集合、所述第三随机数集合和所述第四随机数集合分别生成第五随机数集合和第六随机数集合;所述第一随机数集合、所述第二随机数集合、所述第三随机数集合、所述第四随机数集合、所述第五随机数集合和所述第六随机数集合中的随机数满足预设条件;

第一发送单元55,用于向第一设备发送所述第一随机种子、所述第二随机种子和所述第五随机数集合;

第二发送单元57,向第二设备发送所述第三随机种子、所述第四随机种子和所述第六随机数集合。

请参阅图8。本说明书还提供数据交互装置的一个实施例。该实施例可以应用于电子设备,可以包括以下单元。

接收单元61,用于接收第一随机种子、第二随机种子和第一随机数集合;

生成单元63,用于基于所述第一随机种子和所述第二随机种子分别生成第二随机数集合和第三随机数集合,以便基于所述第一随机数集合、所述第二随机数集合和所述第三随机数集合执行多方安全计算。

请参阅图9。本说明书实施例还提供一种服务器。所述服务器可以包括存储器和处理器。

在本实施例中,所述存储器包括但不限于动态随机存取存储器(dynamicrandomaccessmemory,dram)和静态随机存取存储器(staticrandomaccessmemory,sram)等。所述存储器可以用于存储计算机指令。

在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以用于执行所述计算机指令以实现图3所对应的实施例。

请参阅图10。本说明书实施例还提供一种电子设备。所述电子设备可以包括存储器和处理器。

在本实施例中,所述存储器包括但不限于动态随机存取存储器(dynamicrandomaccessmemory,dram)和静态随机存取存储器(staticrandomaccessmemory,sram)等。所述存储器可以用于存储计算机指令。

在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以用于执行所述计算机指令以实现图4所对应的实施例。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例、服务器实施例和电子设备实施例而言,由于其基本相似于数据交互方法实施例,所以描述的比较简单,相关之处参见数据交互方法实施例的部分说明即可。

另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

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