安全多方计算方法、装置及系统与流程

文档序号:15929419发布日期:2018-11-14 01:28阅读:248来源:国知局

本发明涉及密码学技术领域,具体地,涉及一种安全多方计算方法、装置及系统。

背景技术

安全多方计算一直是密码学领域很活跃的研究方向。安全多方计算是指在没有可信第三方的情形下,多个参与方共同计算一个函数,使得所有参与方能算出计算结果,但是不会泄露每一方的输入的信息。在安全多方计算中,最常用、最有效的方式是采用加密电路(garbledcircuit)和不经意传输。

加密电路的主要思想是将需要计算的函数表示成逻辑电路,针对每一个逻辑门逐个做加密操作。现有技术中的加密操作和解密操作均是在本地进行,占用了本地的资源,降低了计算效率和安全多方计算技术的性能。



技术实现要素:

本发明实施例的主要目的在于提供一种安全多方计算方法、装置及系统,以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

为了实现上述目的,本发明实施例提供一种安全多方计算方法,包括:

将计算函数转换为初始逻辑电路;

选取多对随机数组成输入标签和辅助标签;

将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果;

将第一处理结果发送至第一外包计算装置;

接收第一外包计算装置根据第一处理结果生成的初始第一子电路;

对初始第一子电路进行处理,获得加密电路;

根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签;

将加密电路和第一子输入标签发送至第二安全多方计算装置;

接收来自第二安全多方计算装置的计算结果。

本发明实施例还提供一种安全多方计算方法,包括:

接收来自第一安全多方计算装置的加密电路和第一子输入标签;

根据第一子输入标签获取第二子输入标签;

将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果;

将第二处理结果发送至第二外包计算装置;

接收第二外包计算装置根据第二处理结果生成的初始子计算结果;

对初始子计算结果进行处理,获得计算结果;

将计算结果发送至第一安全多方计算装置。

本发明实施例还提供一种第一安全多方计算装置,包括:

转换单元,用于将计算函数转换为初始逻辑电路;

标签单元,用于选取多对随机数组成输入标签和辅助标签;

第一处理结果单元,用于将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果;

第一发送单元,用于将第一处理结果发送至第一外包计算装置;将加密电路和第一子输入标签发送至第二安全多方计算装置;

第一接收单元,用于接收第一外包计算装置根据第一处理结果生成的初始第一子电路;接收来自第二安全多方计算装置的计算结果;

加密电路单元,用于对初始第一子电路进行处理,获得加密电路;

第一子输入标签单元,用于根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签。

本发明实施例还提供一种第二安全多方计算装置,包括:

第二接收单元,用于接收来自第一安全多方计算装置的加密电路和第一子输入标签;接收第二外包计算装置根据第二处理结果生成的初始子计算结果;

第二子输入标签单元,用于根据第一子输入标签获取第二子输入标签;

第二处理结果单元,用于将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果;

第二发送单元,用于将第二处理结果发送至第二外包计算装置;将计算结果发送至第一安全多方计算装置;

计算结果单元,用于对初始子计算结果进行处理,获得计算结果。

本发明实施例还提供一种安全多方计算系统,包括:

如上所述的第一安全多方计算装置;以及

如上所述的第二安全多方计算装置。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

将计算函数转换为初始逻辑电路;

选取多对随机数组成输入标签和辅助标签;

将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果;

将第一处理结果发送至第一外包计算装置;

接收第一外包计算装置根据第一处理结果生成的初始第一子电路;

对初始第一子电路进行处理,获得加密电路;

根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签;

将加密电路和第一子输入标签发送至第二安全多方计算装置;

接收来自第二安全多方计算装置的计算结果。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

将计算函数转换为初始逻辑电路;

选取多对随机数组成输入标签和辅助标签;

将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果;

将第一处理结果发送至第一外包计算装置;

接收第一外包计算装置根据第一处理结果生成的初始第一子电路;

对初始第一子电路进行处理,获得加密电路;

根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签;

将加密电路和第一子输入标签发送至第二安全多方计算装置;

接收来自第二安全多方计算装置的计算结果。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

接收来自第一安全多方计算装置的加密电路和第一子输入标签;

根据第一子输入标签获取第二子输入标签;

将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果;

将第二处理结果发送至第二外包计算装置;

接收第二外包计算装置根据第二处理结果生成的初始子计算结果;

对初始子计算结果进行处理,获得计算结果;

将计算结果发送至第一安全多方计算装置。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收来自第一安全多方计算装置的加密电路和第一子输入标签;

根据第一子输入标签获取第二子输入标签;

将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果;

将第二处理结果发送至第二外包计算装置;

接收第二外包计算装置根据第二处理结果生成的初始子计算结果;

对初始子计算结果进行处理,获得计算结果;

将计算结果发送至第一安全多方计算装置。

本发明实施例的安全多方计算方法、装置及系统可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

附图说明

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

图1是本发明实施例中安全多方计算方法(从第一安全多方计算装置角度)的流程图;

图2是s103的具体流程图;

图3是s106的具体流程图;

图4是s301其中一个实施例的具体流程图;

图5是s301另一个实施例的具体流程图;

图6是本发明实施例中安全多方计算方法(从第二安全多方计算装置角度)的流程图;

图7是s603的具体流程图;

图8是s606的具体流程图;

图9是s801其中一个实施例的具体流程图;

图10是s801另一个实施例的具体流程图;

图11是本发明实施例中第一安全多方计算装置的结构框图;

图12是本发明实施例中第二安全多方计算装置的结构框图;

图13是本发明实施例中安全多方计算系统的结构框图。

具体实施方式

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

鉴于目前加密操作和解密操作均是在本地进行,占用了本地的资源,降低了计算效率和安全多方计算技术的性能,本发明实施例提供一种安全多方计算方法,以减少本地资源占用,提高计算效率和安全多方计算技术的性能。以下结合附图对本发明进行详细说明。

图1是本发明实施例中安全多方计算方法(从第一安全多方计算装置角度)的流程图。如图1所示,安全多方计算方法包括:

s101:将计算函数转换为初始逻辑电路。

s102:选取多对随机数组成输入标签和辅助标签。

s103:将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果。

s104:将第一处理结果发送至第一外包计算装置。

s105:接收第一外包计算装置根据第一处理结果生成的初始第一子电路。

s106:对初始第一子电路进行处理,获得加密电路。

s107:根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签。

s108:将加密电路和第一子输入标签发送至第二安全多方计算装置。

s109:接收来自第二安全多方计算装置的计算结果。

图1所示的安全多方计算方法的执行主体可以为第一安全多方计算装置。由图1所示的流程可知,本发明实施例的安全多方计算方法(从第一安全多方计算装置角度)先将计算函数转换为初始逻辑电路,再选取多对随机数组成输入标签和辅助标签,将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果,将第一处理结果发送至第一外包计算装置,然后接收第一外包计算装置根据第一处理结果生成的初始第一子电路,对初始第一子电路进行处理,获得加密电路,接着根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签,将加密电路和第一子输入标签发送至第二安全多方计算装置,最后接收来自第二安全多方计算装置的计算结果,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

一实施例中,输入标签中的每对随机数均对应初始逻辑电路的每条输入线的第一取值和第二取值。

在逻辑电路中,每条线只有0和1两种取值(第一取值和第二取值),可以选取两个128比特长的标签(label)l0和l1。根据不同的加密电路算法,可以将选取标签的方式分成以下两类:

1、对于每一根线,随机选取一对128比特的随机数(l0,l1)分别代表0和1,每一根线都不一样。设共有n个输入线,此时输入标签(inputlabel)为inputlabel=[(l01,l11),...,(l0n,l1n)]。辅助标签(auxlabel)为剩余其他的线上随机选取的其他标签。

2、对于每一根输入线,随机选取一对128比特的随机数(l0,l1)分别表示0和1,再通过输入线的标签逐步计算出其他剩余线的标签。此时辅助标签为空。

在选取标签之后,针对每一个逻辑电路的门,采用相应的标签进行加密,得到加密电路。

图2是s103的具体流程图。如图2所示,s103具体包括:

s201:根据初始逻辑电路、输入标签和辅助标签,生成第一输入数据。

s202:将第一输入数据按照第一预设策略拆分为多个第一子输入数据。

s203:根据第一函数以及每一第一子输入数据生成每一第一子任务。

具体实施时,s104具体包括:将每个第一子任务均分配至多个第一外包计算装置。s105具体包括:接收每个第一子任务对应的多个初始第一子电路。

图3是s106的具体流程图。如图3所示,s106具体包括:

s301:从每个第一子任务对应的多个初始第一子电路中选取一个作为每个第一子任务对应的第一子电路。

s302:整合每个第一子任务对应的第一子电路,生成加密电路。

图4是s301其中一个实施例的具体流程图。如图4所示,s301具体包括:

s401:将每个第一子任务对应的相同数值的初始第一子电路分配到同一个数组。

s402:统计每个第一子任务对应的每个数组中的初始第一子电路的数量。

s403:当最大的数量大于预设值时,将数量对应的数组中的一个初始第一子电路作为每个第一子任务对应的第一子电路。

其中,当最大的数量小于预设值时,将该第一子任务重新分配至其他外包计算装置进行计算。

图5是s301另一个实施例的具体流程图。如图5所示,s301具体包括:

s501:根据每个第一子任务、每个第一子任务对应的每个初始第一子电路和预设的第一安全参数,生成每个第一子任务对应的每个初始第一子电路的计算证明。

s502:当计算证明正确时,将计算证明对应的初始第一子电路作为每个第一子任务对应的第一子电路。

一实施例中,s501具体包括:根据预设的第一安全参数生成第一公共参数;根据每个第一子任务、每个第一子任务对应的每个初始第一子电路和第一公共参数,生成每个第一子任务对应的每个初始第一子电路的计算证明;

或,根据预设的第一安全参数和第一函数生成第一公共参数;根据每个第一子任务、每个第一子任务对应的每个初始第一子电路和第一公共参数,生成每个第一子任务对应的每个初始第一子电路的计算证明。

安全多方计算方法(从第一安全多方计算装置角度)的具体流程如下:

1、第一安全多方计算装置将计算函数f(g,h)转换为初始逻辑电路c;其中,g是第一安全多方计算装置的输入数据,h是第二安全多方计算装置的输入数据。其中,第二安全多方计算装置的输入数据不会泄露给第一安全多方计算装置。

2、第一安全多方计算装置选取多对随机数组成输入标签和辅助标签(auxlabel)。设初始逻辑电路c共有n个输入线,此时输入标签(inputlabel)为inputlabel=[(l01,l11),...,(l0n,l1n)]。

3、第一安全多方计算装置根据初始逻辑电路c、输入标签和辅助标签,生成第一输入数据x。

4、第一安全多方计算装置将第一输入数据x按照第一预设策略拆分为多个第一子输入数据x1,...,xk。

5、第一安全多方计算装置根据第一函数以及每一第一子输入数据xi生成每一第一子任务ti=(generation,xi)。其中,ti为第i个第一子任务,generation为第一函数,xi为第i个第一子输入数据。

6、第一安全多方计算装置将每个第一子任务均分配至多个第一外包计算装置。

7、第一安全多方计算装置接收每个第一子任务对应的m个初始第一子电路ri1,...,rim。其中,rim为第i个第一子任务对应的第m个初始第一子电路,共有k个第一子任务。

8、第一安全多方计算装置从每个第一子任务对应的多个初始第一子电路中选取一个作为每个第一子任务对应的第一子电路。具体实施时,可以采取以下两种技术手段选取第一子电路:

1.第一安全多方计算装置将每个第一子任务对应的相同数值的初始第一子电路分配到同一个数组,统计每个第一子任务对应的每个数组中的初始第一子电路的数量,当最大的数量大于预设值时,将数量对应的数组中的一个初始第一子电路作为每个第一子任务对应的第一子电路。

2.第一安全多方计算装置根据预设的第一安全参数λ1生成第一公共参数pp1(pp1←paramgen(λ1));或,根据预设的第一安全参数λ1和第一函数generation生成第一公共参数pp1(pp1←paramgen(λ1,generation))。根据每个第一子任务、每个第一子任务对应的每个初始第一子电路和预设的第一安全参数,生成每个第一子任务对应的每个初始第一子电路的计算证明π1(π1←genproof(pp1,ti,generation,rim))。当π1正确时,π1=1,将计算证明对应的初始第一子电路作为每个第一子任务对应的第一子电路ri。其中,ri为第i个第一子任务对应的第一子电路。当π1不正确时,π1=0,丢弃π1对应的第一子电路,可以在短时间验证第一子电路是否正确。

9、第一安全多方计算装置整合每个第一子任务对应的第一子电路ri,生成加密电路c’=generation(c,inputlabel,auxlabel)。

10、第一安全多方计算装置根据初始逻辑电路对应的输入数据g以及输入标签,得到第一子输入标签(lg11,lg22,...,lgn1n1),将加密电路和第一子输入标签发送至第二安全多方计算装置。

11、第一安全多方计算装置接收来自第二安全多方计算装置的计算结果c(g,h)。

综上,本发明实施例的安全多方计算方法(从第一安全多方计算装置角度)先将计算函数转换为初始逻辑电路,再选取多对随机数组成输入标签和辅助标签,将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果,将第一处理结果发送至第一外包计算装置,然后接收第一外包计算装置根据第一处理结果生成的初始第一子电路,对初始第一子电路进行处理,获得加密电路,接着根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签,将加密电路和第一子输入标签发送至第二安全多方计算装置,最后接收来自第二安全多方计算装置的计算结果,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

图6是本发明实施例中安全多方计算方法(从第二安全多方计算装置角度)的流程图。如图6所示,安全多方计算方法包括:

s601:接收来自第一安全多方计算装置的加密电路和第一子输入标签。

s602:根据第一子输入标签获取第二子输入标签。

s603:将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果。

s604:将第二处理结果发送至第二外包计算装置。

s605:接收第二外包计算装置根据第二处理结果生成的初始子计算结果。

s606:对初始子计算结果进行处理,获得计算结果。

s607:将计算结果发送至第一安全多方计算装置。

图6所示的安全多方计算方法的执行主体可以为第二安全多方计算装置。由图6所示的流程可知,本发明实施例的安全多方计算方法(从第二安全多方计算装置角度)先接收来自第一安全多方计算装置的加密电路和第一子输入标签,再根据第一子输入标签获取第二子输入标签,将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果,接着将第二处理结果发送至第二外包计算装置,接收第二外包计算装置根据第二处理结果生成的初始子计算结果,然后对初始子计算结果进行处理,获得计算结果,最后将计算结果发送至第一安全多方计算装置,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

在执行s602时,可以通过不经意传输协议获取第二子输入标签。

图7是s603的具体流程图。如图7所示,s603具体包括:

s701:根据加密电路、第一子输入标签和第二子输入标签,生成第二输入数据。

s702:将第二输入数据按照第二预设策略拆分为多个第二子输入数据。

s703:根据第二函数以及每一第二子输入数据生成每一第二子任务。

具体实施时,s604具体包括:将每个第二子任务均分配至多个第二外包计算装置。s605具体包括:接收每个第二子任务对应的多个初始子计算结果。

图8是s606的具体流程图。如图8所示,s606具体包括:

s801:从每个第二子任务对应的多个初始子计算结果中选取一个作为每个第二子任务对应的子计算结果。

s802:整合每个第二子任务对应的子计算结果,生成计算结果。

图9是s801其中一个实施例的具体流程图。如图9所示,s801具体包括:

s901:将每个第二子任务对应的相同数值的初始子计算结果分配到同一个数组。

s902:统计每个第二子任务对应的每个数组中的初始子计算结果的数量。

s903:当最大的数量大于预设值时,将数量对应的数组中的一个初始子计算结果作为每个第二子任务对应的子计算结果。

图10是s801另一个实施例的具体流程图。如图10所示,s801具体包括:

s1001:根据每个第二子任务、每个第二子任务对应的每个初始子计算结果和预设的第二安全参数,生成每个第二子任务对应的每个初始子计算结果的计算证明。

s1002:当计算证明正确时,将计算证明对应的初始子计算结果作为每个第二子任务对应的子计算结果。

一实施例中,s1001具体包括:根据预设的第二安全参数生成第二公共参数;根据每个第二子任务、每个第二子任务对应的每个初始子计算结果和第二公共参数,生成每个第二子任务对应的每个初始子计算结果的计算证明;

或,根据预设的第二安全参数和计算函数生成第二公共参数;根据每个第二子任务、每个第二子任务对应的每个初始子计算结果和第二公共参数,生成每个第二子任务对应的每个初始子计算结果的计算证明。

安全多方计算方法(从第二安全多方计算装置角度)的具体流程如下:

1、第二安全多方计算装置接收来自第一安全多方计算装置的加密电路和第一子输入标签,根据第一子输入标签获取第二子输入标签(lh11,lh22,...,lhn1n1)。

2、第二安全多方计算装置根据加密电路c’、第一子输入标签和第二子输入标签生成第二输入数据y。

3、第二安全多方计算装置将第二输入数据y按照第二预设策略拆分为多个第二子输入数据y1,...,yj。

4、第二安全多方计算装置根据第二函数以及每一第二子输入数据yi生成每一第二子任务qi=(evaluation,yi)。其中,qi为第i个第二子任务,evaluation为第二函数,yi为第i个第二子输入数据。

5、第二安全多方计算装置将每个第二子任务均分配至多个第二外包计算装置。

6、第二安全多方计算装置接收每个第二子任务对应的o个初始子计算结果ui1,...,uio。其中,uio为第i个第二子任务对应的第o个初始子计算结果,共有j个第二子任务。

7、第二安全多方计算装置从每个第二子任务对应的多个初始子计算结果中选取一个作为每个第二子任务对应的子计算结果。具体实施时,可以采取以下两种技术手段选取子计算结果:

1.第二安全多方计算装置将每个第二子任务对应的相同数值的初始子计算结果分配到同一个数组,统计每个第二子任务对应的每个数组中的初始子计算结果的数量,当最大的数量大于预设值时,将数量对应的数组中的一个初始子计算结果作为每个第二子任务对应的子计算结果。

2.第二安全多方计算装置根据预设的第二安全参数λ2生成第二公共参数pp2(pp2←paramgen(λ2));或,根据预设的第二安全参数λ2和第二函数evaluation生成第二公共参数pp2(pp2←paramgen(λ2,evaluation))。根据每个第二子任务、每个第二子任务对应的每个初始子计算结果和预设的第二安全参数,生成每个第二子任务对应的每个初始子计算结果的计算证明π2(π2←genproof(pp2,qi,evaluation,uio))。当π2正确时,π2=1,将计算证明对应的初始子计算结果作为每个第二子任务对应的子计算结果ui。其中,ui为第i个第二子任务对应的子计算结果。当π2不正确时,π2=0,丢弃π2对应的子计算结果,可以在短时间验证子计算结果是否正确。

8、第二安全多方计算装置整合每个第二子任务对应的子计算结果ui,生成计算结果c(g,h),将计算结果发送至第一安全多方计算装置。

综上,本发明实施例的安全多方计算方法(从第二安全多方计算装置角度)先接收来自第一安全多方计算装置的加密电路和第一子输入标签,再根据第一子输入标签获取第二子输入标签,将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果,接着将第二处理结果发送至第二外包计算装置,接收第二外包计算装置根据第二处理结果生成的初始子计算结果,然后对初始子计算结果进行处理,获得计算结果,最后将计算结果发送至第一安全多方计算装置,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

基于同一发明构思,本发明实施例还提供了一种第一安全多方计算装置,由于该装置解决问题的原理与安全多方计算方法(从第一安全多方计算装置角度)相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图11是本发明实施例中第一安全多方计算装置的结构框图。如图11所示,第一安全多方计算装置包括:

转换单元,用于将计算函数转换为初始逻辑电路;

标签单元,用于选取多对随机数组成输入标签和辅助标签;

第一处理结果单元,用于将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果;

第一发送单元,用于将第一处理结果发送至第一外包计算装置;将加密电路和第一子输入标签发送至第二安全多方计算装置;

第一接收单元,用于接收第一外包计算装置根据第一处理结果生成的初始第一子电路;接收来自第二安全多方计算装置的计算结果;

加密电路单元,用于对初始第一子电路进行处理,获得加密电路;

第一子输入标签单元,用于根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签。

在其中一种实施例中,输入标签中的每对随机数均对应初始逻辑电路的每条输入线的第一取值和第二取值。

在其中一种实施例中,第一处理结果单元包括:

第一输入数据生成子单元,用于根据初始逻辑电路、输入标签和辅助标签,生成第一输入数据;

第一输入数据拆分子单元,用于将第一输入数据按照第一预设策略拆分为多个第一子输入数据;

第一子任务子单元,用于根据第一函数以及每一第一子输入数据生成每一第一子任务;

第一发送单元具体用于:

将每个第一子任务均分配至多个第一外包计算装置;

第一接收单元具体用于:

接收每个第一子任务对应的多个初始第一子电路;

加密电路单元包括:

第一选取子单元,用于从每个第一子任务对应的多个初始第一子电路中选取一个作为每个第一子任务对应的第一子电路;

第一整合单元,用于整合每个第一子任务对应的第一子电路,生成加密电路。

在其中一种实施例中,第一选取子单元具体用于:

将每个第一子任务对应的相同数值的初始第一子电路分配到同一个数组;

统计每个第一子任务对应的每个数组中的初始第一子电路的数量;

当最大的数量大于预设值时,将数量对应的数组中的一个初始第一子电路作为每个第一子任务对应的第一子电路。

在其中一种实施例中,第一选取子单元具体用于:

根据每个第一子任务、每个第一子任务对应的每个初始第一子电路和预设的第一安全参数,生成每个第一子任务对应的每个初始第一子电路的计算证明;

当计算证明正确时,将计算证明对应的初始第一子电路作为每个第一子任务对应的第一子电路。

在其中一种实施例中,第一选取子单元具体用于:

根据预设的第一安全参数生成第一公共参数;根据每个第一子任务、每个第一子任务对应的每个初始第一子电路和第一公共参数,生成每个第一子任务对应的每个初始第一子电路的计算证明;

或,根据预设的第一安全参数和第一函数生成第一公共参数;根据每个第一子任务、每个第一子任务对应的每个初始第一子电路和第一公共参数,生成每个第一子任务对应的每个初始第一子电路的计算证明。

综上,本发明实施例的第一安全多方计算装置先将计算函数转换为初始逻辑电路,再选取多对随机数组成输入标签和辅助标签,将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果,将第一处理结果发送至第一外包计算装置,然后接收第一外包计算装置根据第一处理结果生成的初始第一子电路,对初始第一子电路进行处理,获得加密电路,接着根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签,将加密电路和第一子输入标签发送至第二安全多方计算装置,最后接收来自第二安全多方计算装置的计算结果,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

基于同一发明构思,本发明实施例还提供了一种第二安全多方计算装置,由于该装置解决问题的原理与安全多方计算方法(从第二安全多方计算装置角度)相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图12是本发明实施例中第二安全多方计算装置的结构框图。如图12所示,第二安全多方计算装置包括:

第二接收单元,用于接收来自第一安全多方计算装置的加密电路和第一子输入标签;接收第二外包计算装置根据第二处理结果生成的初始子计算结果;

第二子输入标签单元,用于根据第一子输入标签获取第二子输入标签;

第二处理结果单元,用于将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果;

第二发送单元,用于将第二处理结果发送至第二外包计算装置;将计算结果发送至第一安全多方计算装置;

计算结果单元,用于对初始子计算结果进行处理,获得计算结果。

在其中一种实施例中,第二处理结果单元包括:

第二输入数据生成子单元,用于根据加密电路、第一子输入标签和第二子输入标签,生成第二输入数据;

第二输入数据拆分子单元,用于将第二输入数据按照第二预设策略拆分为多个第二子输入数据;

第二子任务子单元,用于根据第二函数以及每一第二子输入数据生成每一第二子任务;

第二发送单元具体用于:

将每个第二子任务均分配至多个第二外包计算装置;

第二接收单元具体用于:

接收每个第二子任务对应的多个初始子计算结果;

计算结果单元包括:

第二选取子单元,用于从每个第二子任务对应的多个初始子计算结果中选取一个作为每个第二子任务对应的子计算结果;

第二整合单元,用于整合每个第二子任务对应的子计算结果,生成计算结果。

在其中一种实施例中,第二选取子单元具体用于:

将每个第二子任务对应的相同数值的初始子计算结果分配到同一个数组;

统计每个第二子任务对应的每个数组中的初始子计算结果的数量;

当最大的数量大于预设值时,将数量对应的数组中的一个初始子计算结果作为每个第二子任务对应的子计算结果。

在其中一种实施例中,第二选取子单元具体用于:

根据每个第二子任务、每个第二子任务对应的每个初始子计算结果和预设的第二安全参数,生成每个第二子任务对应的每个初始子计算结果的计算证明;

当计算证明正确时,将计算证明对应的初始子计算结果作为每个第二子任务对应的子计算结果。

在其中一种实施例中,第二选取子单元具体用于:

根据预设的第二安全参数生成第二公共参数;根据每个第二子任务、每个第二子任务对应的每个初始子计算结果和第二公共参数,生成每个第二子任务对应的每个初始子计算结果的计算证明;

或,根据预设的第二安全参数和计算函数生成第二公共参数;根据每个第二子任务、每个第二子任务对应的每个初始子计算结果和第二公共参数,生成每个第二子任务对应的每个初始子计算结果的计算证明。

综上,本发明实施例的第二安全多方计算装置先接收来自第一安全多方计算装置的加密电路和第一子输入标签,再根据第一子输入标签获取第二子输入标签,将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果,接着将第二处理结果发送至第二外包计算装置,接收第二外包计算装置根据第二处理结果生成的初始子计算结果,然后对初始子计算结果进行处理,获得计算结果,最后将计算结果发送至第一安全多方计算装置,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

基于同一发明构思,本发明实施例还提供了一种安全多方计算系统。图13是本发明实施例中安全多方计算系统的结构框图。如图13所示,安全多方计算系统包括如上所述的第一安全多方计算装置,以及如上所述的第二安全多方计算装置。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

将计算函数转换为初始逻辑电路;

选取多对随机数组成输入标签和辅助标签;

将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果;

将第一处理结果发送至第一外包计算装置;

接收第一外包计算装置根据第一处理结果生成的初始第一子电路;

对初始第一子电路进行处理,获得加密电路;

根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签;

将加密电路和第一子输入标签发送至第二安全多方计算装置;

接收来自第二安全多方计算装置的计算结果。

综上,本发明实施例的计算机设备先将计算函数转换为初始逻辑电路,再选取多对随机数组成输入标签和辅助标签,将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果,将第一处理结果发送至第一外包计算装置,然后接收第一外包计算装置根据第一处理结果生成的初始第一子电路,对初始第一子电路进行处理,获得加密电路,接着根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签,将加密电路和第一子输入标签发送至第二安全多方计算装置,最后接收来自第二安全多方计算装置的计算结果,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

将计算函数转换为初始逻辑电路;

选取多对随机数组成输入标签和辅助标签;

将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果;

将第一处理结果发送至第一外包计算装置;

接收第一外包计算装置根据第一处理结果生成的初始第一子电路;

对初始第一子电路进行处理,获得加密电路;

根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签;

将加密电路和第一子输入标签发送至第二安全多方计算装置;

接收来自第二安全多方计算装置的计算结果。

综上,本发明实施例的计算机可读存储介质先将计算函数转换为初始逻辑电路,再选取多对随机数组成输入标签和辅助标签,将第一函数、初始逻辑电路、输入标签和辅助标签进行相应处理,获得第一处理结果,将第一处理结果发送至第一外包计算装置,然后接收第一外包计算装置根据第一处理结果生成的初始第一子电路,对初始第一子电路进行处理,获得加密电路,接着根据初始逻辑电路对应的输入数据以及输入标签,得到第一子输入标签,将加密电路和第一子输入标签发送至第二安全多方计算装置,最后接收来自第二安全多方计算装置的计算结果,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

接收来自第一安全多方计算装置的加密电路和第一子输入标签;

根据第一子输入标签获取第二子输入标签;

将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果;

将第二处理结果发送至第二外包计算装置;

接收第二外包计算装置根据第二处理结果生成的初始子计算结果;

对初始子计算结果进行处理,获得计算结果;

将计算结果发送至第一安全多方计算装置。

综上,本发明实施例的计算机设备先接收来自第一安全多方计算装置的加密电路和第一子输入标签,再根据第一子输入标签获取第二子输入标签,将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果,接着将第二处理结果发送至第二外包计算装置,接收第二外包计算装置根据第二处理结果生成的初始子计算结果,然后对初始子计算结果进行处理,获得计算结果,最后将计算结果发送至第一安全多方计算装置,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收来自第一安全多方计算装置的加密电路和第一子输入标签;

根据第一子输入标签获取第二子输入标签;

将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果;

将第二处理结果发送至第二外包计算装置;

接收第二外包计算装置根据第二处理结果生成的初始子计算结果;

对初始子计算结果进行处理,获得计算结果;

将计算结果发送至第一安全多方计算装置。

综上,本发明实施例的计算机可读存储介质先接收来自第一安全多方计算装置的加密电路和第一子输入标签,再根据第一子输入标签获取第二子输入标签,将第二函数、加密电路、第一子输入标签和第二子输入标签进行相应处理,获得第二处理结果,接着将第二处理结果发送至第二外包计算装置,接收第二外包计算装置根据第二处理结果生成的初始子计算结果,然后对初始子计算结果进行处理,获得计算结果,最后将计算结果发送至第一安全多方计算装置,可以减少本地资源占用,提高计算效率和安全多方计算技术的性能。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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