多方安全确定最值的方法、装置、设备及存储介质

文档序号:8003 发布日期:2021-09-17 浏览:43次 英文

多方安全确定最值的方法、装置、设备及存储介质

技术领域

本申请实施例涉及数据安全

技术领域

,特别涉及一种多方安全确定最值的方法、装置、设备及存储介质。

背景技术

多方安全计算的研究主要是针对在无可信第三方的情况下,如何安全地计算一个约定函数的问题。安全多方计算可以使能安全的数据合作和融合应用,在数据不出域、合法合规的前提下联合多方数据源进行计算、分析、学习,实现数据价值共享。

相关技术中,安全多方计算求最值是指当有至少两个参与方分别拥有不同的数字,且需要对它们所拥有的数字进行大小比较计算最大值(或最小值)。通常多方大小比较方法是基于不经意传输(Oblivious Transfer,OT)技术或同态加密技术实现的。

然而,基于不经意传输的大小比较方法虽然计算复杂度低,但只支持两方的数据比较,若扩展至多方的场景,则需要的通信交互次数较多,通信开销大、效率低,不适用于跨公网通信的应用场景;基于同态加密技术的大小比较方法,其计算复杂度较高,实际应用价值低。

发明内容

本申请实施例提供了一种多方安全确定最值的方法、装置、设备及存储介质,能够减小多方安全计算最值的计算复杂度和通信开销。所述技术方案如下。

一方面,本申请实施例提供了一种多方安全确定最值的方法,所述方法应用于联合计算系统中的第i节点设备,所述联合计算系统由n个节点设备组成,n为大于2的正整数,i为小于或等于n的正整数,所述方法包括:

获取第t轮联合计算得到的第t平均值,所述第t平均值基于n个节点设备的n个节点数据以及平均系数计算得到,n个节点数据中包含m个有效节点数据,且平均系数随联合计算轮数递减,t为小于n-1的正整数,m为小于或等于n的正整数;

响应于所述第i节点设备的有效节点数据大于所述第t平均值,基于所述第i节点设备的有效节点数据进行第t+1轮联合计算;

响应于所述第i节点设备的有效节点数据小于或等于所述第t平均值,基于无效节点数据进行第t+1轮联合计算;

响应于第n-1轮联合计算后,所述第i节点设备的有效节点数据大于或等于第n-1平均值,确定所述第i节点设备的有效节点数据为最值。

另一方面,本申请实施例提供了一种多方安全确定最值的装置,所述装置包括:

第一获取模块,用于获取第t轮联合计算得到的第t平均值,所述第t平均值基于n个节点设备的n个节点数据以及平均系数计算得到,n个节点数据中包含m个有效节点数据,且平均系数随联合计算轮数递减,t为小于n-1的正整数,m为小于或等于n的正整数;

第一计算模块,用于响应于第i节点设备的有效节点数据大于所述第t平均值,基于所述第i节点设备的有效节点数据进行第t+1轮联合计算;

第二计算模块,用于响应于所述第i节点设备的有效节点数据小于或等于所述第t平均值,基于无效节点数据进行第t+1轮联合计算;

第一确定模块,用于响应于第n-1轮联合计算后,所述第i节点设备的有效节点数据大于或等于第n-1平均值,确定所述第i节点设备的有效节点数据为最值。

另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的多方安全确定最值的方法。

另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如上述方面所述的多方安全确定最值的方法。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的多方安全确定最值的方法。

本申请实施例提供的技术方案至少包括以下有益效果:

本申请实施例中,计算n个节点设备对应的数据的平均值,各个节点设备通过比较己方数据与当前一轮平均值的大小,能够在小于平均值时明确己方数据不是最值,并在小于等于平均值时将有效节点数据替换为无效节点数据进行下一轮的平均值计算,使平均值能够收敛,即逐步接近最值,进而在第n-1轮时得到结果,能够有效解决多方安全计算最值的问题,且节点设备无需泄露隐私数据以及各个数据之间的大小关系,基于多方安全计算均值的方法,不涉及加密和解密操作,计算复杂度和通信开销较小,能够提高计算效率。

附图说明

图1是本申请一个示例性实施例提供的实施环境示意图;

图2是本申请一个示例性实施例提供的多方安全确定最值的方法的流程图;

图3是本申请另一个示例性实施例提供的多方安全确定最值的方法的流程图;

图4是本申请另一个示例性实施例提供的多方安全确定最值的方法的流程图;

图5是本申请另一个示例性实施例提供的多方安全确定最值的方法的流程图;

图6是本申请一个示例性实施例提供的三方安全计算平均值的示意图;

图7是本申请另一个示例性实施例提供的多方安全确定最值的方法的流程图;

图8是本申请另一个示例性实施例提供的三方安全计算平均值的示意图;

图9是本申请另一个示例性实施例提供的多方安全确定最值的方法的流程图;

图10是本申请一个示例性实施例提供的三方安全确定最值的示意图;

图11是本申请另一个示例性实施例提供的多方安全确定最值的方法的流程图;

图12是本申请另一个示例性实施例提供的三方安全确定最值的示意图;

图13是本申请一个示例性实施例提供的多层设备组划分的示意图;

图14是本申请另一个示例性实施例提供的多方安全确定最值的方法的流程图;

图15是本申请一个示例性实施例提供的多方安全确定最值的装置的结构框图;

图16是本申请一个示例性实施例提供的计算机设备的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

首先,对本申请实施例中涉及的名词进行介绍。

1)多方安全计算:是指有n个参与方P1,P2,…,Pn,其中,参与方Pi拥有输入数据Xi,在不向任何其他参与方泄露自己的输入数据的前提下,且不借助任何可信机构的协助,所述n个参与方共同计算一个函数f(X1,X2,…,Xn)。安全多方计算有丰富的理论基础,通过应用密码学(如同态加密)、秘密分享、差分隐私等多种安全机制保证输入数据的安全性,已经开始从理论研究阶段进入工程化和大规模应用落地阶段。

2)秘密共享:秘密共享是一种将秘密分割存储的密码技术,目的是阻止秘密过于集中,以达到分散风险和容忍入侵的目的,是信息安全和数据保密中的重要手段。秘密共享的思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。更重要的是,当其中任何相应范围内参与者出问题时,秘密仍可以完整恢复。

近年来,由于用户隐私、数据安全、合法合规、商业竞争等因素,很难合法和合规的将分散的数据源整合到一起进行计算、分析和学习。在这样的背景下,基于安全多方计算(Secure Multi-party Computation,MPC)的解决方案迅速发展起来,在不需要将分散数据源集中在一起的情况下就可以联合多个分散的数据源进行联合计算、联合数据分析和联合机器学习。安全多方计算可以使能安全的数据合作和融合应用,在数据不出域、合法合规的前提下联合多方数据源进行计算、分析、学习,实现数据价值共享。

相关技术中的大小比较和最值确定方法一般是基于不经意传输(ObliviousTransfer,OT)技术,也称为茫然传输技术,或者是基于同态加密技术。基于不经意传输的大小比较方法虽然计算复杂度低,但只支持两方的数据比较,若扩展至多方的场景,则需要的通信交互次数较多,通信开销大、效率低,不适用于跨公网通信的应用场景;基于同态加密技术的大小比较方法,其计算复杂度较高,实际应用价值低。

为了解决上述技术问题,本申请实施例提出了一种半诚实(semi-honest)安全模型,在半诚实安全模型下,可以保证参与方不泄露各自的数据。半诚实(semi-honest)安全模型,也称为诚实但好奇(honest-but-curious)的安全模型,是指参与方A和B都会严格遵守所述大小比较和相等测试协议,不会恶意背离所述协议,也不会恶意或主动向对方进行攻击,但是参与方会在该协议执行过程中试图获得更多的信息。

图1示出了本申请一个实施例提供的联合计算系统的框图。该联合计算系统包括n个节点设备(也称为参与方),即节点设备P1、节点设备P2…节点设备Pn,n为大于2的整数。任意一个节点设备可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。且任意两个节点设备拥有不同的数据源,例如不同公司的数据源,或同一公司不同部门的数据源。不同节点设备中存储有不同的数据。

不同节点设备之间通过无线网络或有线网络相连。

n个节点设备各自存储有己方数据,且该数据不能泄露。当联合计算系统中的节点设备存在最值确定需求时,例如P1、P2和P3,则各个节点设备首先进行多方安全求平均值,然后通过比较己方数据与平均值的大小关系,在己方数据小于平均值时确定其不是最值,明确该轮计算被“淘汰”的数据后,将“淘汰”的数据替换为无效节点数据(替换为0)参与下一轮的平均值计算,且由于每一轮计算后至少有一个节点设备的数据能够被“淘汰”,因此控制平均值计算时平均系数随联合计算的轮数递减,使得均值的计算收敛,从而逐步“淘汰”不是最值的数据。该过程中,各个参与方的数据不会泄露,且交互次数较少,也无需进行加密和解密运算,因此通信开销小、计算效率高。

在一种可能的实施方式中,上述联合计算系统中的多个节点设备可以组成为一区块链,而节点设备即为区块链上的节点,多方安全确定最值的过程中所涉及的数据可保存于区块链上。

图2示出了本申请一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第i节点设备为例进行说明,联合计算系统由n个节点设备组成,n为大于2的正整数,i为小于或等于n的正整数,该方法包括如下步骤。

步骤201,获取第t轮联合计算得到的第t平均值。

第t平均值基于n个节点设备的n个节点数据以及平均系数计算得到,n个节点数据中包含m个有效节点数据,且平均系数随联合计算轮数递减,t为小于n-1的正整数,m为小于或等于n的正整数。

联合计算系统的各个节点设备首先进行多方安全求平均值,然后通过比较己方数据与平均值的大小关系(此处为明文比较),在己方数据小于平均值时确定其不是最值,明确该轮计算被“淘汰”(即小于或等于平均值)的数据后,将“淘汰”的数据替换为无效节点数据(替换为0)参与下一轮的平均值计算,且由于每一轮计算后至少有一个节点设备的数据能够被“淘汰”,因此控制平均值计算时平均系数(即均值计算的分母)随联合计算的轮数递减,使得均值的计算收敛,从而逐步“淘汰”不是最值的数据。

在一种可能的实施方式中,联合计算系统基于n个节点设备的节点数据以及平均系数进行安全多方计算,得到当前一轮即第t轮联合计算的第t平均值,其中n个节点数据中包含上一轮未被淘汰的有效节点数据,以及无效节点数据,其中有效节点数据为节点设备所拥有的数据的真实值,无效节点数据用于替换第t轮联合计算之前小于等于均值的有效节点数据,例如无效节点数据为0,意味着对应的节点设备不参与后续的平均值计算。

示意性的,由于每一轮联合计算后至少有一个节点设备的有效节点数据小于或等于第t平均值,即至少有一个有效节点数据被替换为无效节点数据,然而由于数据的保密性,各个节点设备只能够明确己方数据是否被淘汰,并不能得知本轮计算后实际被淘汰几个数据(即实际有几个有效节点数据小于均值),因此设置平均系数为(n+1-t),从第2轮开始每一轮的均值计算中最少淘汰一个数据,平均系数逐轮递减,确保在第n-1轮时只存在最多两个有效节点数据。因此第t平均值Mt的计算公式为Mt=(X1+X2+…+Xn)/(n+1-t),其中Xi为第i节点设备用于参与平均值计算的数据(有效节点数据或无效节点数据),其中第一轮计算过程中Xi均为有效节点数据。

步骤202,响应于第i节点设备的有效节点数据大于第t平均值,基于第i节点设备的有效节点数据进行第t+1轮联合计算。

当第i节点设备的有效节点数据大于第t平均值时,该有效节点数据有可能是最值,因此第i节点设备继续基于有效节点数据进行下一轮(即第t+1轮)联合计算,直至被淘汰,即小于或等于某一轮的平均值,或确定为最值。

步骤203,响应于第i节点设备的有效节点数据小于或等于第t平均值,基于无效节点数据进行第t+1轮联合计算。

当第i节点设备的有效节点数据小于或等于第t平均值时,第i节点设备将用无效节点数据代替有效节点数据进行下一轮计算。

值得注意的是,当第i节点设备的有效节点数据小于第t平均值时,第i节点设备能够确定该数据不是最值,后续只需基于无效节点数据参与平均值计算,无需进行大小比较;而当第i节点设备的有效节点数据等于第t平均值时,可能存在该数据为最值且存在其它节点设备的有效节点数据同样为最值,即存在至少两个数据相等且最大的情况,为了使均值计算能够收敛,避免出现平均值大于最大值的情况(因为平均系数逐轮递减),因此当等于第t平均值时,第i节点设备同样用无效节点数据替代有效节点数据进行下一轮计算,但仍需进行大小比较。

示意性的,对于4个数据“1、2、3、4”,其第一轮计算得到的平均值为5/2,其中3和4大于5/2,则在第二轮计算中,3和4仍然参与计算,1和2被替换为0,平均系数减1,即计算(0+0+3+4)/3。

步骤204,响应于第n-1轮联合计算后,第i节点设备的有效节点数据大于或等于第n-1平均值,确定第i节点设备的有效节点数据为最值。

当t为(n-1)时,由于每一轮至少有一个有效节点数据被替换为无效节点数据,因此该轮最多只有两个有效节点数据,且平均系数m为2,因此进行第n-1轮联合计算后,能够得到最值计算结果。当第i节点设备在前面(n-2)轮中均大于平均值,且第(n-1)轮中大于或等于(等于对应存在2个相等的最大值的情况)第(n-1)平均值,则其有效节点数据为均值。

综上所述,本申请实施例中,计算n个节点设备对应的数据的平均值,各个节点设备通过比较己方数据与当前一轮平均值的大小,能够在小于平均值时明确己方数据不是最值,并在小于等于平均值时将有效节点数据替换为无效节点数据进行下一轮的平均值计算,使平均值能够收敛,即逐步接近最值,进而在第n-1轮时得到结果,能够有效解决多方安全计算最值的问题,且节点设备无需泄露隐私数据以及各个数据之间的大小关系,基于多方安全计算均值的方法,不涉及加密和解密操作,计算复杂度和通信开销较小,能够提高计算效率。

需要说明的是,在n个参与方(即节点设备)分别拥有的数字X1、X2、…、Xn中存在浮点数时,可以首先将所有数据进行整数转换,再进行联合计算,整数转换的方法包括乘以较大整数。例如,参与方Pk,其中INT表示取整数,Q为一个较大的整数,例如10的6次方,Q基于n个参与方协商确定。然后对于取整后的数字进行均指计算以及最值确定。转换为整数的主要目的是通过取模运算进一步隐藏各个数字的取值范围,以三方安全确定最值为例,在三方协商计算精度Q之后,还需进一步协商数值计算范围,即协商选择整数n(称为模数),使其满足,或者

在一种可能的实施方式中,为了确保均值计算以及大小比较顺利进行,本申请中的有效节点数据均采用正数,当节点设备的数据为负数时,在第一轮联合计算之前对其进行负数编码,并将负数编码得到的数据作为有效节点数据。若Xk<0,则节点设备令Xk=Xk+n,即对负数进行编码(其中Xk为取整后的数据),因此当计算中出现或者时,节点设备能够判定实际计算结果为负数,即真实结果应为

图3示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第i节点设备为例进行说明,联合计算系统由n个节点设备组成,n为大于2的正整数,i为小于或等于n的正整数,该方法包括如下步骤。

步骤301,获取第t轮联合计算得到的第t平均值。

步骤302,响应于第i节点设备的有效节点数据大于第t平均值,基于第i节点设备的有效节点数据进行第t+1轮联合计算。

步骤301至步骤302的具体实施方式可以参考上述步骤201至步骤202,本申请实施例在此不再赘述。

步骤303,响应于第i节点设备的有效节点数据小于第t平均值,基于无效节点数据进行第t+1轮联合计算并确定第i节点设备对应的有效节点数据不是最值。

在一种可能的实施方式中,当第i节点设备的有效节点数据小于第t平均值时,意味着本轮计算过程中存在其它节点设备的有效节点数据大于第i节点设备的有效节点数据,因此这一步就能够确定第i节点设备的有效数据不是最值。在后续每一轮的平均值计算中,第i节点设备只需基于无效节点数据参与运算即可,有效节点数据不参与运算,也无需与平均值进行大小比较。

步骤304,响应于第i节点设备的有效节点数据等于第t平均值,基于无效节点数据进行第t+1轮联合计算,并基于第t+1平均值与无效节点数据之间的关系进行最值确定。

在一种可能的实施方式中,当第i节点设备的有效节点数据等于第t平均值时,意味着本轮计算过程中存在两种可能。一种是既存在其它节点设备的有效节点数据大于第i节点设备的有效节点数据,也存在其它节点设备的有效节点数据小于第i节点设备的有效节点数据,这种情况下第i节点设备的有效节点数据不是最值,例如数据“1、2、3”在第一轮的平均值为2;另一种是第i节点设备的有效节点数据为最值,且还可能存在其它节点设备的有效节点数据也为最值,例如数据“1、1、3、3”在第一轮的平均值为2,第二轮基于“0、0、3、3”以及平均系数3进行计算,得到平均值为3。因此无法直接确定第i节点设备的有效节点数据不是最值,还需继续进行联合计算并与平均值进行大小比较。

为了确保每一轮计算后都能够至少有一个有效节点数据被“淘汰”,使计算逐步收敛,当第i节点设备的有效节点数据等于平均值时,第i节点设备基于无效节点数据参与后续的联合计算。

在一种可能的实施方式中,当第i节点设备的有效节点数据等于第t平均值,且t不等于(n-1)时,需在后续计算中进行大小比较。步骤304包括如下步骤。

步骤304a,响应于第t+1平均值大于无效节点数据,确定第i节点设备对应的有效节点数据不是最值。

第i节点设备基于无效节点数据(本申请实施例中无效节点数据为0)进行第(t+1)轮联合计算后,若第(t+1)平均值大于无效节点数据,意味着第(t+1)轮计算过程中存在着在第t轮中“胜出”(即大于第t平均值)的有效节点数据,对应上述第一种可能,因此能够确定第i节点设备的有效节点数据不是最值。

例如,数据“1、2、2、3”,第一轮的平均值为2,此时有效节点数据为2的节点设备并不能确定是否存在其它节点设备的有效节点数据大于2,第二轮基于“0、0、0、3”以及平均系数3进行计算,得到平均值1,该平均值大于无效节点数据0,此时确定第一轮中存在其它节点设备的有效节点数据大于2,因此有效节点数据2并不是最值。

步骤304b,响应于第t+1平均值等于无效节点数据,且t+1为n-1,确定第i节点设备对应的有效节点数据为最值。

第i节点设备基于无效节点数据进行第(t+1)轮联合计算后,若第(t+1)平均值等于无效节点数据,并且(t+1)为(n-1),即最后一轮计算,意味着最后不存在有效节点数据,即有效节点数据中的最值也被替换为无效节点数据,因此在上一轮中等于平均值的有效节点数据即为最值。

步骤304c,响应于第t+1平均值等于无效节点数据,且t+1小于n-1,基于无效节点数据与后续联合计算得到的平均值之间的关系进行最值确定。

当第(t+1)平均值等于无效节点数据,但(t+1)小于(n-1),即未达到最后一轮联合计算时,能够确定第t轮中等于第t平均值的有效节点数据为最大值,但考虑到确保计算收敛,还需继续进行平均值计算,直至平均系数为(n-1)。

在另一种可能的实施方式中,当第i节点设备的有效节点数据等于第t平均值,且t等于(n-1),即最后一轮计算时,能够直接确定第i节点设备的有效节点数据为最值,节点设备不再进行联合计算。

示意性的,图4示出了基于平均值进行大小比较以及最值确定的流程图,该过程包括:步骤401,基于平均系数(n+1-t)计算第t平均值;步骤402,判断t=1或Xk≥Mt-1是否成立,若是,则执行步骤403,若否,则执行步骤405;步骤403,判断Xk>Mt还是Xk≤Mt,若Xk>Mt则执行步骤406,若Xk≤M则执行步骤404;步骤404,判断t是否为n-1,若是则执行步骤408,若否则执行步骤405;步骤405,基于无效节点数据进行后续的联合计算,且Xk<Mt时后续不进行大小比较,Xk=Mt时基于无效节点数据与平均值进行大小比较;步骤406,判断t是否为(n-1),若是则执行步骤409,若否则执行步骤407;步骤407,基于有效节点数据进行第(t+1)轮联合计算;步骤408,判断Xk=Mt是否成立,若是则执行步骤409,若否则确定节点设备Pk对应的有效节点数据Xk不是最值并结束流程;步骤409,确定节点设备Pk对应的有效节点数据Xk为最值。其中,t为联合计算的轮数,Mt-1为第(t-1)轮联合计算得到的第(t-1)平均值,Mt为第t轮联合计算得到的第t平均值。

步骤305,响应于第n-1轮联合计算后,第i节点设备的有效节点数据大于或等于第n-1平均值,确定第i节点设备的有效节点数据为最值。

步骤305的具体实施方式可以参考上述步骤203,本申请实施例在此不再赘述。

本申请实施例中,节点设备通过比较有效节点数据与第t平均值的大小,判断有效节点数据是否为最值,在有效节点数据小于或等于第t平均值的情况下,将有效节点数据替换为无效节点数据进行后续的联合计算,并在有效节点数据等于第t平均值时继续基于无效节点数据与后续的平均值进行大小比较,既能够保证平均值计算的收敛,也能够避免遗漏可能的最值,确保了最值计算的可靠性。

上述实施例示出了基于多方安全计算的平均值进行最值确定的过程。对于安全计算平均值,本申请实施例提出了一种实现方式。图5示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第一节点设备为例进行说明,联合计算系统由n个节点设备组成,n为大于2的正整数,i为小于或等于n的正整数。其中第一节点设备是指用于生成第一随机数的节点设备,n个节点设备中的任意一个均可作为第一节点设备进行均值计算。该方法包括如下步骤。

步骤501,生成第一随机数。

第一节点设备在当前一轮联合计算开始后,首先生成第一随机数R1。该第一随机数R1为正数。

步骤502,将第一数据和发送至第二节点设备。

第一数据和为第一随机数与第一节点数据之和,第二节点设备用于计算第二数据和并将第二数据和发送至第三节点设备,第二数据和为第一数据和与第二节点数据之和,其中第i节点数据为第i节点设备的有效节点数据或无效节点数据。

第一节点设备P1生成第一随机数R1后,将第一数据和(R1+X1)发送至第二节点设备P2。第二节点设备P2接收到第一数据和(R1+X1)后,基于第一数据和(R1+X1)以及第二节点数据X2计算第二数据和(R1+X1+X2),并将第二数据和(R1+X1+X2)发送至第三节点设备,以此类推,最终由第n节点设备将第n数据和(R1+X1+X2+…+Xn)发送至第一节点设备。

步骤503,接收第n节点设备发送的第n数据和。

步骤504,基于第n数据和以及第一随机数确定第t平均值。

第一节点设备P1接收到第n节点设备将第n数据和(R1+X1+X2+…+Xn)后,计算节点数据和(R1+X1+X2+…+Xn-R1),即获得n个节点数据的和,从而在完成n方求和的基础上,基于平均系数(n+1-t)确定第t平均值。

可选的,第一节点设备计算得到第t平均值后,向其它各个节点设备发送第t平均值或者n方的求和结果(X1+X2+…+Xn),或者,第一节点设备将第t平均值或者n方的求和结果(X1+X2+…+Xn)发送至第二节点设备,由第二节点设备发送至第三节点设备,以此类推直至第n节点设备接收到第t平均值或者n方的求和结果(X1+X2+…+Xn)。本申请实施例对此不作限定。

发送数据和的顺序和起止位置可由n个节点设备自行协商确定,且该顺序可以改变,即轮流作为第一节点设备进行平均值计算,以进一步提高数据的安全性。

步骤505,响应于第i节点设备的有效节点数据大于第t平均值,基于第i节点设备的有效节点数据进行第t+1轮联合计算。

步骤506,响应于第i节点设备的有效节点数据小于或等于第t平均值,基于无效节点数据进行第t+1轮联合计算。

步骤507,响应于第n-1轮联合计算后,第i节点设备的有效节点数据大于或等于第n-1平均值,确定第i节点设备的有效节点数据为最值。

步骤506至步骤507的具体实施方式可以参考上述步骤202至步骤204,本申请实施例在此不再赘述。

本申请实施例中,由第一节点设备负责生成第一随机数,并将第一随机数与第一节点数据之和发送至第二节点设备,后续节点设备依次在接收到的数据和的基础上添加己方数据并发送至下一节点设备,最终由第一节点设备获取到第一随机数以及n个节点数据的数据和,即可得到n个节点数据的数据和,从而计算平均值,在此过程中每个节点设备均无法得到其它任意一个节点设备的数据,能够保证数据的安全性,满足多方安全计算的需求。

上述实施例示出了当第i节点设备为第一节点设备时的平均值计算过程,为了更清楚地说明该过程,当第i节点设备不是第一节点设备时,获取第t平均值包括如下步骤。

步骤一,接收第i-1节点设备发送的第i-1数据和,第i-1数据和为第1节点数据至第i-1节点数据与第一随机数之和。

步骤二,基于第i-1数据和确定第i数据和,第i数据和为第i-1数据和与第i节点数据之和。

步骤三,将第i数据和发送至第i+1节点设备或第一节点设备。

本申请实施例中的均值计算是基于环形拓扑结构实现的,除了第一节点设备以外,每个节点设备均基于上一节点设备发送的第(i-1)数据和计算第i数据和,并将第i数据和发送至下一节点设备,最终由第n节点设备将第n数据和发送至第一节点设备,完成数据闭环。其中第(i-1)数据和为第1节点数据至第(i-1)节点数据与第一随机数之和,即(R1+X1+X2+…+Xi-1),第i数据和为第(i-1)数据和与第i节点数据之和,即第1节点数据至第i节点数据与第一随机数之和(R1+X1+X2+…+Xi-1+Xi)。

示意性的,图6示出了3个节点设备进行最值确定时的联合计算平均值的过程。参与方P1生成第一随机数R1,并向参与方P2发送(R1+X1);参与方P2接收到(R1+X1)后,计算得到(R1+X1+X2),并向参与方P3发送(R1+X1+X2);参与方P3接收到(R1+X1+X2)之后,计算(R1+X1+X2+X3),并向参与方P1发送(R1+X1+X2+X3);参与方P1接收到(R1+X1+X2+X3)后,基于第一随机数R1计算(R1+X1+X2+X3-R1)得到三方的数据和(X1+X2+X3),进而计算三方的平均值即(X1+X2+X3)/(n+1-t),其中n为3,t为当前轮数。

上述实施例示出了基于环形拓扑结构的多方安全求均值的过程,在另一种可能的实施方式中,n个节点设备之间还可以通过对等网络(Peer-to-Peer,P2P)实现多方安全计算平均值。图7示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第i节点设备为例进行说明,联合计算系统由n个节点设备组成,n为大于2的正整数,i为小于或等于n的正整数。该方法包括如下步骤。

步骤701,生成n-1个随机数。

其中,(n-1)个随机数之和为第i节点数据,该第i节点数据为第i节点设备的有效节点数据或无效节点数据。

在P2P网络中,当进行均值计算时,每个节点设备均生成(n-1)个随机数,且n-1个随机数之和为第i节点数据,即r1+r2+…+rn-1=Xi。其中第i节点数据为有效节点数据或无效节点数据。

步骤702,将n-1个随机数分别发送至其余n-1个节点设备,每个节点设备获取到第i节点设备发送的1个随机数。

第i节点设备分别将(n-1)个节点数据发送至其余(n-1)个节点设备,使每个节点设备均接收到1个第i节点数据发送的随机数。

步骤703,接收其余n-1个节点设备分别发送的随机数并确定第i数据和,第i数据和为第i节点设备接收到的n-1个随机数之和。

由于每个节点设备均需生成(n-1)个随机数并发送至其它节点设备,因此第i节点设备在生成并发送随机数的同时,会接收到其它(n-1)个节点设备分别发送的随机数,供(n-1)个随机数。

第i节点设备在接收到(n-1)个随机数之后,计算第i数据和,即将接收到的n-1个随机数相加,例如,第一节点设备计算第二节点设备至第n节点设备发送的随机数之和,得到第一数据和。

步骤704,将第i数据和发送至其余n-1个节点设备。

各个节点设备在计算得到第i数据和后,将其发送至其它(n-1)个节点设备。

步骤705,接收其余n-1个节点设备发送的n-1个数据和,并基于接收到的n-1个数据和以及第i数据和确定第t平均值。

每个节点设备均接受其余(n-1)个节点设备发送的数据和,共(n-1)个数据和,将该(n-1)个数据和以及自身计算得到的第i数据和相加,即可得到n个节点数据之和,进而基于求得的n个节点数据之和计算第t平均值。该过程是将节点数据拆分,每个节点设备均获取到每个节点数据的一部分,进而共同计算得到平均值。

示意性的,图8示出了3个参与方进行最值确定时安全计算平均值的过程。参与方P1生成随机数R1,2和R1,3,且满足X1=R1,2+R1,3,分别向参与方P2和参与方P3发送R1,2和R1,3,同样的,参与方P2生成随机数R2,1和R2,3,且满足X2=R2,1+R2,3,分别向参与方P1和参与方P3发送R2,1和R2,3,参与方P3生成随机数R3,1和R3,2,且满足X3=R3,1+R3,2,分别向参与方P1和参与方P2发送R3,1和R3,2;参与方P1计算第一数据和S1=R2,1+R3,1,参与方P2计算第二数据和S2=R1,2+R3,2,参与方P3计算第三数据和S3=R2,3+R1,3;参与方P1向参与方P2和P3发送S1,参与方P2向参与方P1和P3发送S2,参与方P3向参与方P2和P1发送S3;参与方P1、P2和P3分别计算三方数字之和S1+S2+S3=R2,1+R3,1+R1,2+R3,2+R2,3+R1,3=X1+X2+X3;进而三个参与方可以计算第t轮的平均值(X1+X2+X3)/(n+1-t)。

步骤706,响应于第i节点设备的有效节点数据大于第t平均值,基于第i节点设备的有效节点数据进行第t+1轮联合计算。

步骤707,响应于第i节点设备的有效节点数据小于或等于第t平均值,基于无效节点数据进行第t+1轮联合计算。

步骤708,响应于第n-1轮联合计算后,第i节点设备的有效节点数据大于或等于第n-1平均值,确定第i节点设备的有效节点数据为最值。

步骤706至步骤708的具体实施方式可以参考上述步骤202至步骤204,本申请实施例在此不再赘述。

本申请实施例中,每个节点设备别将己方的节点数据拆分成n-1个随机数,并将随机数分别发送至其余n-1个节点设备,使得每个节点设备均负责基于各个节点数据的一部分进行求和运算,最终交换求得的数据和,得到当前一轮的平均值,在此过程中每个节点设备均无法得到其它任意一个节点设备的完整数据,能够保证数据的安全性,满足多方安全计算的需求。

在上述各个实施例中,在第(n-1)轮联合计算过程中,实际参与的最多只存在两个有效节点数据,这样一来,在第(n-1)轮计算过程中存在泄漏参与方的有效节点数据的风险(即其中一个拥有有效节点数据的参与方能够根据第(n-1)平均值计算出另一个参与方的有效节点数据)。因此,为了进一步增强本申请所提供的最值确定方案的安全性,在进行第(n-1)轮大小比较时,不采取上述基于平均值计算的方式进行大小比较,而是由每个节点设备分别计算Xi n-1-X1X2…Xn的值,其中Xi为有效节点数据,减号之后的乘积中不包含Xi,而是除Xi以外其他(n-1)个节点数据的乘积。若第(n-2)轮计算中Xi小于第(n-2)平均值,则第i节点设备的有效节点数据不是最值;若第(n-2)轮计算中Xi大于或等于第(n-2)平均值,且在第(n-1)轮中上式Xi n-1-X1X2…Xn的计算结果大于或等于0,则第i节点设备的有效节点数据为最值。

图9示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第i节点设备为例进行说明,联合计算系统由n个节点设备组成,n为大于2的正整数,i为小于或等于n的正整数。当t为n-2,t+1为n-1时,该方法包括如下步骤。

步骤901,获取第t轮联合计算得到的第t平均值。

步骤901的具体实施方式可以参考上述步骤201,本申请实施例在此不再赘述。

步骤902,生成第二随机数,第二随机数为正数。

第i节点设备Pi生成正的第二随机数R2i,用以保护数据隐私。

步骤903,将第二随机数发送至第i+1节点设备。

第(i+1)节点设备用于计算第一数据积R2iXi+1,并将第一数据积发送至第(i+2)节点设备,第一数据积为第二随机数与第(i+1)节点设备的有效节点数据之积。

第i节点设备将第一数据集发送至下一节点设备,后续每个节点设备在接收到的数据积的基础上乘以己方的有效节点数据,并将计算结果发送至下一节点设备,直至第i-1节点设备计算得到第(n-1)数据积R2iX1X2…Xn,其中不包含第i节点的有效节点数据Xi

步骤904,接收第i-1节点设备发送的第n-1数据积。

第(n-1)数据积为n个节点设备中除第i节点设备以外的(n-1)个节点设备对应的有效节点数据以及第二随机数之积,即R2iX1X2…Xn

第(i-1)节点设备生成第(n-1)数据积后,将其发送至第i节点设备。

步骤905,基于第n-1数据积确定数值比较算子。

数值比较算子为第i节点设备对应的有效节点数据的(n-1)次方与第(n-1)数据积之差。

第i节点设备获取到第(n-1)数据积R2iX1X2…Xn后,除以第二随机数,即可计算数值比较算子Xi n-1-X1X2…Xn的符号(即大于零、等于零或小于零)。值得注意的是,如果是在整数域进行计算,还需满足,且

步骤906,响应于数值比较算子大于或等于0,且第n-2轮联合计算中第i节点数据大于或等于第n-2平均值,确定第i节点设备对应的有效节点数据为最值。

示意性的,图10示出了3个参与方进行第n-1轮(即第2轮)最值确定的过程。参与方P1生成第二随机数R2,并将R2发送至参与方P2;参与方P2计算并向参与方P3发送R2X2;参与方P3接收R2X2计算并向参与方P1发送R2X2X3;参与方P1接收R2X2X3并计算得到X1 2-X2X3。同样的,参与方P2和参与方P3均执行上述步骤,分别计算X2 2-X1X3以及X3 2-X1X2

本申请实施例中,当进行第(n-1)轮最值确定时,不继续采用基于平均值计算的方式进行大小比较,而是通过多方安全乘法计算的方式计算数值比较算子,能够避免在仅剩两个有效节点数据的情况下,拥有一个有效节点数据的节点设备能够计算得到另一个有效节点数据,进一步提高了数据安全性。

上述实施例示出了第一种基于多方安全乘法计算进行第(n-1)轮最值确定的过程。在一种可能的实施方式中,针对三个参与方的情况,即n=3,还存在第二种方式记性第(n-1)轮(即第2轮)的最值确定方式。图11示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第i节点设备为例进行说明,联合计算系统由n个节点设备组成,n为大于2的正整数,i为小于或等于n的正整数。当n为3,t+1为n-1时,该方法包括如下步骤。

步骤1101,获取第t轮联合计算得到的第t平均值。

步骤1101的具体实施方式可以参考上述步骤201,本申请实施例在此不再赘述。

步骤1102,生成第三随机数,第三随机数为正数。

第二节点设备生成第三随机数R3,用以保护数据隐私。

步骤1103,将第三随机数或第三随机数的倒数发送至第三节点设备,并将第一乘积发送至第一节点设备。

第一乘积为第三随机数与第二节点设备的有效节点数据之积,第三节点设备用于计算第二乘积并将第二乘积发送至第一节点设备,第二乘积为第三随机数的倒数与第三节点设备的有效节点数据之积,第一节点设备用于接收第一乘积和第二乘积,并基于第一乘积和第二乘积计算第一数值比较算子,第一数值比较算子为第一节点设备的有效节点数据的平方与第三乘积之差,第三乘积为第二节点数据与第三节点数据之积。

示意性的,如图12所示,参与方P2生成第三随机数R3,将R3或1/R3发送至参与方P3,并生成第一乘积R3X2发送至参与方P1,同时参与方P3接收到R3或1/R3后,生成第二乘积X3/R3,并将第二乘积X3/R3发送至参与方P1,至此,参与方P1能够基于第一乘积R3X2以及第二乘积X3/R3计算得到X2X3,进而计算得到第一数据比较算子X1 2-X2X3

步骤1104,接收第三节点设备发送的第四乘积和第一节点设备发送的第五乘积。

第三节点设备用于生成第四随机数并将第四随机数发送至第一节点设备,第一节点设备用于基于第四随机数确定第五乘积,第四乘积为第三节点设备的有效节点数据与第四随机数之积,第五乘积为第四随机数据的倒数与第一节点设备的有效节点数据之积。

同样的,当参与方P2需要计算X2 2-X1X3时,由参与方P3(或者参与方P1)负责生成第四随机数R4,参与方P3计算并向参与方P2发送第四乘积R4X3,且参与方P3将第四随机数据R4或者第四随机数的倒数1/R4发送至参与方P1,参与方P1计算并向参与方P2发送第五乘积X1/R4

步骤1105,基于第四乘积以及第五乘积计算第二数值比较算子。

第二数值比较算子为所述第二节点设备的有效节点数据的平方与第六乘积之差,所述第六乘积为所述第一节点设备的有效节点数据与所述第三节点设备的有效节点数据之积。

参与方P2基于第四乘积R4X以及第五乘积X1/R4计算得到X1X3,进而计算第二数据比较算子X2 2-X1X3

步骤1106,响应于第二数据比较算子大于或等于0,且第n-2轮联合计算中第二节点数据大于或等于第n-2平均值,确定第二节点设备对应的有效节点数据为最值。

第二节点数据为第二节点设备的有效节点数据或无效节点数据。

本申请实施例中,当进行第(n-1)轮最值确定时,不继续采用基于平均值计算的方式进行大小比较,而是通过多方安全乘法计算的方式计算数值比较算子,能够避免在仅剩两个有效节点数据的情况下,拥有一个有效节点数据的节点设备能够计算得到另一个有效节点数据,进一步提高了数据安全性。

上述实施例示出了三个参与方进行最值确定的过程,实际上当参与方的个数为奇数时,均可采用该方法进行第(n-1)轮的最值确定。

值得一提的是,除了计算Xi n-1-X1X2…Xn,节点设备还可以计算其他形式的算式,例如Xi 2n-2-X1 2X2 2…Xn 2,其中减号后面的乘积中不包含Xi 2,而是除Xi以外其他(n-1)个节点数据的平方的乘积。对于节点设备所使用的计算公式,本申请实施例不作限定。

在一种可能的实施方式中,当参与方的数量较多时,可以采取分层的方式划分节点设备,在每一层完成最大值计算后,继续进行下一层计算,从而减小通信开销以及最值确定的时长。例如,当n为 5时,可以将参与方划分为P1P2P3、P4、P5一层三个小组;当n为7时,可以将参与方划分为P1P2P3、P3P4P5、和P6一层三个小组,即一个参与方可以出现在多个小组中,每个小组由1个节点设备或至少3个节点设备组成。当n较大时,可以进行多层分组。

在进行平均值计算之前,多方安全确定最值的方法还包括如下步骤。

步骤四,响应于n大于3,按照小组划分方式将n个节点设备划分为至少一层设备组,且每层设备组中包含至少3个上一层设备组,第一层设备组中每个设备组由1个节点设备或至少3个节点设备组成。

例如,当N为27时,第一层分组为9个设备组,每个组有3个参与方,即G1={P1P2P3},G2={P4P5P6},…,G9={P25P26P27},第二层分组将第一层的9个小组划分为3个小组,每个第二层的小组中包含3个第一层小组,即{G1G2G3}、{G4G5G6}、{G7G8G9}三个组。

步骤五,响应于第i节点设备的有效节点数据为第m层设备组中第i节点设备所在参与方小组的最值,基于第i节点设备的有效节点数据进行第(m+1)层设备组之间的联合计算,m为正整数。

当低层的小组中确定出至少一个最值的拥有方之后,从中选出小组代表,进行下一层(即更高层)小组之间的最值确定。其中,当存在至少两个参与方拥有最值时,可以基于各个参与方的计算资源是否充裕、网络通信是否较强、可靠性和安全性以及计算复杂度等角度选择一个参与方,或者进行随机选择,本申请实施例对此不作限定。

如图13所示,当第一个由参与方P1、P2和P3组成的设备组中确定出参与方P1拥有最值、第二个由参与方P4、P5和P6组成的设备组中确定出参与方P4拥有最值、第三个由参与方P7、P8和P9组成的设备组中确定出参与方P7拥有最值时,由参与方P1、P4和P7进行下一层小组之间的最值确定。

步骤六,响应于第i节点设备的有效节点数据为最后一层设备组中各个有效设备节点中的最值,确定第i节点设备的有效节点数据为n个节点设备对应的n个有效节点数据中的最值。

当进行至最后一层最值确定,且完成最后一轮联合计算后,若第i节点设备的有效节点数据为最值,则确定第i节点设备的有效节点数据为n个节点设备对应的n个有效节点数据中的最值。

本申请实施例中,当节点设备数量较多时,通过划分小组的方式先进行组内的最值确定,然后进行小组之间的最值确定,并且还可以进行多层分组,从而减小通信开销,降低计算复杂度,提高最值确定的效率。

上述各个实施例示出了多方安全确定最值的过程,其中,该最值可以是最大值也可以是最小值。若需确定最大值,则直接按照上述步骤进行最值比较,得到的最值即为最大值;若需确定最小值,则各个节点设备先将本地的原始有效节点数据进行取反操作,将其相反数作为有效节点数据进行最值比较,得到的为相反数的最大值,再进行取反即可确定最小值。图14示出了本申请另一个示例性实施例提供的多方安全计算方法的流程图。本实施例以该方法用于方法应用于联合计算系统中的第i节点设备为例进行说明,联合计算系统由n个节点设备组成,n为大于2的正整数,i为小于或等于n的正整数。当n为3,t+1为n-1时,该方法包括如下步骤。

步骤1401,响应于最大值计算指令,将第i节点设备的原始有效节点数据确定为第i节点设备的有效节点数据。

步骤1402,响应于最小值计算指令,将第i节点设备的原始有效节点数据的相反数确定为第i节点设备的有效节点数据。

当需要从n个节点设备的数据中确定最大值时,节点设备将原始有效节点数据确定为有效节点数据进行后续的联合计算;当需要从n个节点设备的数据中确定最小值时,由于上述过程是通过逐步淘汰小于平均值的数据进行最值确定的,因此节点设备将原始有效节点数据的相反数确定为有效节点数据进行后续的联合计算,通过确定相反数中的最大值,实现最小值的确定。

步骤1403,获取第t轮联合计算得到的第t平均值。

步骤1404,响应于第i节点设备的有效节点数据大于第t平均值,基于第i节点设备的有效节点数据进行第t+1轮联合计算。

步骤1405,响应于第i节点设备的有效节点数据小于或等于第t平均值,基于无效节点数据进行第t+1轮联合计算。

步骤1403至步骤1405的具体实施方式可以参考上述步骤201至步骤203,本申请实施例在此不再赘述。

步骤1406,响应于第n-1轮联合计算后,第i节点设备的有效节点数据大于或等于第n-1平均值,确定第i节点设备的原始有效节点数据为最大值。

当第(n-1)轮联合计算(即最后一轮联合计算)后,第i节点设备的有效节点数据大于或等于第(n-1)平均值,该有效节点数据为n个有效节点数据中的最大值,由于有效节点数据为原始有效节点数据本身,因此确定第i节点设备的原始有效节点数据为最大值。

步骤1407,响应于第n-1轮联合计算后,第i节点设备的有效节点数据大于或等于第n-1平均值,确定第i节点设备的原始有效节点数据为最小值。

当第(n-1)轮联合计算后,第i节点设备的有效节点数据大于或等于第(n-1)平均值,该有效节点数据为n个有效节点数据中的最大值,由于有效节点数据为原始有效节点数据的相反数,因此确定第i节点设备的原始有效节点数据为最小值。

本申请实施例中,通过对原始有效节点数据进行取反运算,基于相反数进行上述多方安全确定最值的过程,即可确定出相反数中的最大值,即得到原始有效节点数据中的最小值,若需进行最大值确定,则直接基于原始有效节点数据进行联合计算,因此本申请提供的方案既能满足最大值确定的需求,也能满足最小值确定的需求。

图15是本申请一个示例性实施例提供的多方安全确定最值的装置的结构框图,该装置包括如下结构:

第一获取模块1501,用于获取第t轮联合计算得到的第t平均值,所述第t平均值基于n个节点设备的n个节点数据以及平均系数计算得到,n个节点数据中包含m个有效节点数据,且平均系数随联合计算轮数递减,t为小于n-1的正整数,m为小于或等于n的正整数;

第一计算模块1502,用于响应于第i节点设备的有效节点数据大于所述第t平均值,基于所述第i节点设备的有效节点数据进行第t+1轮联合计算;

第二计算模块1503,用于响应于所述第i节点设备的有效节点数据小于或等于所述第t平均值,基于无效节点数据进行第t+1轮联合计算;

第一确定模块1504,用于响应于第n-1轮联合计算后,所述第i节点设备的有效节点数据大于或等于第n-1平均值,确定所述第i节点设备的有效节点数据为最值。

可选的,所述第二计算模块1503,包括:

第一计算单元,用于响应于所述第i节点设备的有效节点数据小于所述第t平均值,基于所述无效节点数据进行第t+1轮联合计算并确定所述第i节点设备对应的有效节点数据不是最值;

第二计算单元,用于响应于所述第i节点设备的有效节点数据等于所述第t平均值,基于所述无效节点数据进行第t+1轮联合计算,并基于第t+1平均值与所述无效节点数据之间的关系进行最值确定。

可选的,所述第二计算单元,还用于:

响应于所述第t+1平均值大于所述无效节点数据,确定所述第i节点设备对应的有效节点数据不是最值;

响应于所述第t+1平均值等于所述无效节点数据,且t+1为n-1,确定所述第i节点设备对应的有效节点数据为最值;

响应于所述第t+1平均值等于所述无效节点数据,且t+1小于n-1,基于所述无效节点数据与后续联合计算得到的平均值之间的关系进行最值确定。

可选的,所述第i节点设备为第一节点设备,所述第一获取模块1501,包括:

第一生成单元,用于生成第一随机数;

第一发送单元,用于将第一数据和发送至第二节点设备,所述第一数据和为所述第一随机数与第一节点数据之和,所述第二节点设备用于计算第二数据和并将所述第二数据和发送至第三节点设备,所述第二数据和为所述第一数据和与第二节点数据之和,其中第i节点数据为所述第i节点设备的有效节点数据或所述无效节点数据;

第一接收单元,用于接收第n节点设备发送的第n数据和,所述第n数据和为n个节点数据与所述第一随机数之和;

第一确定单元,用于基于所述第n数据和以及所述第一随机数确定所述第t平均值。

可选的,所述第i节点设备不是所述第一节点设备,所述第一获取模块1501,包括:

第二接收单元,用于接收第i-1节点设备发送的第i-1数据和,所述第i-1数据和为第1节点数据至第i-1节点数据与所述第一随机数之和;

第二确定单元,用于基于所述第i-1数据和确定第i数据和,所述第i数据和为所述第i-1数据和与第i节点数据之和;

第二发送单元,用于将所述第i数据和发送至第i+1节点设备或所述第一节点设备。

可选的,所述第一获取模块1501,包括:

第二生成单元,用于生成n-1个随机数,所述n-1个随机数之和为第i节点数据,所述第i节点数据为所述第i节点设备的有效节点数据或所述无效节点数据;

第三发送单元,用于将所述n-1个随机数分别发送至其余n-1个节点设备,每个节点设备获取到所述第i节点设备发送的1个随机数;

第三接收单元,用于接收其余n-1个节点设备分别发送的随机数并确定第i数据和,所述第i数据和为所述第i节点设备接收到的n-1个随机数之和;

第四发送单元,用于将所述第i数据和发送至其余n-1个节点设备;

第四接收单元,用于接收其余n-1个节点设备发送的n-1个数据和,并基于接收到的n-1个数据和以及所述第i数据和确定所述第t平均值。

可选的,t+1为n-1,所述装置还包括:

第一生成模块,用于生成第二随机数,所述第二随机数为正数;

第一发送模块,用于将所述第二随机数发送至第i+1节点设备,所述第i+1节点设备用于计算第一数据积并将所述第一数据积发送至第i+2节点设备,所述第一数据积为所述第二随机数与第i+1节点设备的有效节点数据之积;

第一接收模块,用于接收第i-1节点设备发送的第n-1数据积,所述第n-1数据积为所述n个节点设备中除第i节点设备以外的n-1个节点设备对应的有效节点数据以及所述第二随机数之积;

第二确定模块,用于基于所述第n-1数据积确定数值比较算子,所述数值比较算子为第i节点设备对应的有效节点数据的n-1次方与所述第n-1数据积之差;

第三确定模块,用于响应于所述数值比较算子大于或等于0,且第n-2轮联合计算中第i节点数据大于或等于第n-2平均值,确定所述第i节点设备对应的有效节点数据为最值,所述第i节点数据为有效节点数据或无效节点数据。

可选的,n为3,t+1为2,所述第i点数据为第二节点数据,所述装置还包括:

第二生成模块,用于生成第三随机数,所述第三随机数为正数;

第二发送模块,用于将所述第三随机数或第三随机数的倒数发送至第三节点设备,并将第一乘积发送至第一节点设备,所述第一乘积为所述第三随机数与第二节点设备的有效节点数据之积,所述第三节点设备用于计算第二乘积并将所述第二乘积发送至所述第一节点设备,所述第二乘积为所述第三随机数的倒数与第三节点设备的有效节点数据之积,所述第一节点设备用于接收所述第一乘积和所述第二乘积,并基于所述第一乘积和所述第二乘积计算第一数值比较算子,所述第一数值比较算子为所述第一节点设备的有效节点数据的平方与所述第三乘积之差,所述第三乘积为所述第二节点数据与所述第三节点数据之积。

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

第二接收模块,用于接收所述第三节点设备发送的第四乘积和所述第一节点设备发送的第五乘积,所述第三节点设备用于生成第四随机数并将所述第四随机数发送至所述第一节点设备,所述第一节点设备用于基于所述第四随机数确定所述第五乘积,所述第四乘积为所述第三节点设备的有效节点数据与所述第四随机数之积,所述第五乘积为所述第四随机数据的倒数与所述第一节点设备的有效节点数据之积;

第三计算模块,用于基于所述第四乘积以及所述第五乘积计算第二数值比较算子,所述第二数值比较算子为所述第二节点设备的有效节点数据的平方与第六乘积之差,所述第六乘积为所述第一节点设备的有效节点数据与所述第三节点设备的有效节点数据之积;

第四确定模块,用于响应于所述第二数据比较算子大于或等于0,且第n-2轮联合计算中第二节点数据大于或等于第n-2平均值,确定所述第二节点设备对应的有效节点数据为最值,所述第二节点数据为所述第二节点设备的有效节点数据或所述无效节点数据。

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

分组模块,用于响应于n大于3,按照小组划分方式将所述n个节点设备划分为至少一层设备组,且每层设备组中包含至少3个上一层设备组,第一层设备组中每个设备组由1个节点设备或至少3个节点设备组成;

第四计算模块,用于响应于所述第i节点设备的有效节点数据为第m层设备组中所述第i节点设备所在参与方小组的最值,基于所述第i节点设备的有效节点数据进行第m+1层设备组之间的联合计算,m为正整数;

第五确定模块,用于响应于所述第i节点设备的有效节点数据为最后一层设备组中各个有效设备节点中的最值,确定所述第i节点设备的有效节点数据为n个节点设备对应的n个有效节点数据中的最值。

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

第六确定模块,用于响应于最大值计算指令,将所述第i节点设备的原始有效节点数据确定为所述第i节点设备的有效节点数据;

所述第一确定模块1504,还包括:

第三确定单元,用于响应于第n-1轮联合计算后,所述第i节点设备的有效节点数据大于或等于所述第n-1平均值,确定所述第i节点设备的原始有效节点数据为最大值。

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

第七确定模块,用于响应于最小值计算指令,将所述第i节点设备的原始有效节点数据的相反数确定为所述第i节点设备的有效节点数据;

所述第一确定模块1504,还包括:

第四确定单元,用于响应于第n-1轮联合计算后,所述第i节点设备的有效节点数据大于或等于所述第n-1平均值,确定所述第i节点设备的原始有效节点数据为最小值。

综上所述,本申请实施例中,计算n个节点设备对应的数据的平均值,各个节点设备通过比较己方数据与当前一轮平均值的大小,能够在小于平均值时明确己方数据不是最值,并在小于等于平均值时将有效节点数据替换为无效节点数据进行下一轮的平均值计算,使平均值能够收敛,即逐步接近最值,进而在第n-1轮时得到结果,能够有效解决多方安全计算最值的问题,且节点设备无需泄露隐私数据以及各个数据之间的大小关系,基于多方安全计算均值的方法,不涉及加密和解密操作,计算复杂度和通信开销较小,能够提高计算效率。

请参考图16,其示出了本申请一个实施例提供的计算机设备的结构示意图。

所述计算机设备1600包括中央处理单元(Central Processing Unit,CPU)1601、包括随机存取存储器(Random Access Memory,RAM)1602和只读存储器(Read OnlyMemory,ROM)1603的系统存储器1604,以及连接系统存储器1604和中央处理单元1601的系统总线1605。所述计算机设备1600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出(Input/Output,I/O)控制器1606,和用于存储操作系统1613、应用程序1614和其他程序模块1615的大容量存储设备1607。

所述基本输入/输出系统1606包括有用于显示信息的显示器1608和用于用户输入信息的诸如鼠标、键盘之类的输入设备1609。其中所述显示器1608和输入设备1609都通过连接到系统总线1605的输入输出控制器1610连接到中央处理单元1601。所述基本输入/输出系统1606还可以包括输入输出控制器1610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器1610还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1607通过连接到系统总线1605的大容量存储控制器(未示出)连接到中央处理单元1601。所述大容量存储设备1607及其相关联的计算机可读介质为计算机设备1600提供非易失性存储。也就是说,所述大容量存储设备1607可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存或其他固态存储其技术,CD-ROM、数字视频光盘(Digital Video Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1604和大容量存储设备1607可以统称为存储器。

根据本申请的各种实施例,所述计算机设备1600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1600可以通过连接在所述系统总线1605上的网络接口单元1611连接到网络1612,或者说,也可以使用网络接口单元1611来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述多方安全确定最值的方法。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上各个实施例所述的多方安全确定最值的方法。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的多方安全确定最值的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:快递行业号码保护方法及系统、电子设备、存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类