一种安全多方计算中的任务处理方法及装置与流程

文档序号:26498627发布日期:2021-09-04 01:20阅读:106来源:国知局
一种安全多方计算中的任务处理方法及装置与流程

1.本申请涉及计算机技术领域,尤其涉及一种安全多方计算中的任务处理方法及装置。


背景技术:

2.安全多方计算(即secure multi

party computation,简称mpc),是用于在互不信任的多用户网络环境中,使两个以上的用户能够在不泄漏各自的私有输入信息的前提下,协同合作执行某项计算任务。该技术在秘密共享和隐私保护的场景中,具有重要意义。
3.当前主流的安全多方计算,可以利用基于混淆电路(garbled circuit)的计算模型。但是该计算模型主要针对处理两方逻辑运算,适用于通讯负担较低的场景,并且拓展性较差。也就是说,现有技术在多方参与计算、通讯负载较大、且拓展性要求较高的场景下,可能无法满足需求。


技术实现要素:

4.本申请提供一种安全多方计算中的任务处理方法及装置,以至少解决现有技术中存在的以上技术问题。
5.第一方面,本申请提供一种安全多方计算中的任务处理方法,包括:
6.确定计算节点组对应的三元组数据;
7.确定目标任务对于所述三元组数据的消耗数据;
8.根据所述计算节点组对应的三元组数据,和所述目标任务的消耗数据,为所述目标任务分配相应的计算节点组;以使所述计算节点组根据所述三元组数据对所述目标任务进行安全多方计算,以确定所述目标任务对应的计算结果。
9.优选的,还包括:
10.对多个计算节点进行身份注册,并确定各所述计算节点的性能信息;
11.根据各所述计算节点的性能信息,对各所述计算节点进行分组,以建立所述计算节点组;
12.或者,根据分组指令对各所述计算节点进行分组,以建立所述计算节点组;
13.或者,根据所述计算节点的数量,对各所述计算节点进行分组,以建立所述计算节点组。
14.优选的,所述确定所述计算节点组对应的三元组数据包括:
15.确定所述计算节点组当前的三元组数据;
16.当所述当前的三元组数据的数量低于预设的数量阈值,利用所述计算节点组生成所述三元组数据。
17.优选的,所述根据所述计算节点组对应的三元组数据,和所述目标任务的消耗数据,为目标任务分配相应的计算节点组包括:
18.根据目标任务,确定对应的目标子任务;并确定所述目标子任务对于所述三元组
数据的消耗数据;
19.根据所述计算节点组对应的三元组数据,和所述目标子任务的消耗数据,为所述目标子任务分配相应的计算节点组。
20.优选的,还包括:
21.对各所述计算节点进行分组,以建立协助节点组。
22.优选的,还包括:
23.当所述计算节点组的三元组数据的数量,不满足所述目标任务的消耗数据时,利用所述协助节点组生成所述三元组数据,并同步至所述计算节点组。
24.优选的,所述计算节点组根据所述三元组数据对所述目标任务进行安全多方计算,以确定所述目标任务对应的计算结果包括:
25.利用所述计算节点组,从数据方获取所述目标子任务对应的任务数据;
26.根据所述三元组数据,对所述目标子任务的任务数据进行安全多方计算,以确定子计算结果;
27.根据所述子计算结果,确定所述目标任务对应的计算结果。
28.第二方面,本申请提供一种安全多方计算中的任务处理装置,包括:
29.三元组数据确定模块,用于确定计算节点组对应的三元组数据;
30.消耗数据确定模块,用于确定目标任务对于所述三元组数据的消耗数据;
31.任务调度模块,用于根据所述计算节点组对应的三元组数据,和所述目标任务的消耗数据,为所述目标任务分配相应的计算节点组;以使所述计算节点组根据所述三元组数据对所述目标任务进行安全多方计算,以确定所述目标任务对应的计算结果。
32.第三方面,本申请提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本申请所述的安全多方计算中的任务处理方法。
33.第四方面,本申请提供一种电子设备,包括:
34.处理器;
35.用于存储所述处理器可执行指令的存储器;
36.所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本申请所述的安全多方计算中的任务处理方法。
37.与现有技术相比,本申请提供的一种安全多方计算中的任务处理方法及装置,通过结合三元组数据和消耗数据进行任务分配,使得计算节点组的三元组数据能够满足目标任务的消耗,从而实现了计算资源的合理分配,提高了安全多方计算的效率;通过将目标任务分解并分别计算,避免了目标任务过于复杂时,计算节点组无法满足其消耗的问题,同时满足了多方参与计算、通讯负载较大、且拓展性要求较高的情况下的计算需求。
附图说明
38.图1为本申请一实施例提供的一种安全多方计算中的任务处理方法的流程示意图;
39.图2为本申请一实施例提供的一种安全多方计算中的任务处理方法中对于目标子任务分配计算节点组的示意图;
40.图3为本申请一实施例提供的一种安全多方计算中的任务处理方法中计算节点组
的状态变化示意图;
41.图4为本申请一实施例提供的另一种安全多方计算中的任务处理方法的流程示意图;
42.图5为本申请一实施例提供的另一种安全多方计算中的任务处理方法中协助节点组同步三元组数据的示意图;
43.图6为为本申请一实施例提供的另一种安全多方计算中的任务处理方法的流程示意图;
44.图7为本申请一实施例提供的另一种安全多方计算中的任务处理方法中协助节点组同步三元组数据的示意图;
45.图8为本申请一实施例提供的一种安全多方计算中的任务处理装置的结构示意图。
具体实施方式
46.为使本申请的目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
47.当前主流的安全多方计算,可以利用基于混淆电路(garbled circuit)的计算模型。但是该计算模型主要针对处理两方逻辑运算,适用于通讯负担较低的场景,并且拓展性较差。也就是说,现有技术在多方参与计算、通讯负载较大、且拓展性要求较高的场景下,可能无法满足需求。
48.因此,本申请实施例将提供一种安全多方计算中的任务处理方法,以至少解决现有技术中存在的以上技术问题。如图1所示,本实施例中方法包括以下步骤:
49.步骤101、确定计算节点组对应的三元组数据。
50.对于本步骤中涉及的计算节点组,需进行以下说明。如图2所示,本申请中涉及的安全多方计算,涉及到调度方、计算方和数据方三个主体。而本实施例中描述的任务处理方法将以调度方作为执行主体,也就是通过调度方对于任务的调度和分配,实现更加高效的安全多方计算。而在此之前,调度方需要对计算方中涉及的计算资源进行统筹和管理,以作为任务分配的前提条件。
51.具体来说,计算方中包括多个计算节点。在本实施例中方法实施之前,可以预先对多个计算节点进行身份注册,进行注册的计算节点方可参与后续流程。优选的可以是匿名身份注册。对计算节点进行注册的好处在于,增加了计算节点安全性,降低调度方在安全多方计算中披露隐私的风险。进一步的,可以确定各经过注册的计算节点的性能信息,也就是对计算节点的算力进行评估,确定其cpu、内存、带宽等主要性能指标的得分。
52.经过了注册和算力评估之后,即可以对计算节点进行分组,分组后的每一组计算节点,可称为一个计算节点组。本实施例中对于具体的分组方式不做限定,任何分组方式均可结合在本实施例的整体技术方案当中。以下可示例性的提供若干种具体的分组方式:
53.可根据各计算节点的性能信息,对各计算节点进行分组,以建立计算节点组。即基于性能进行分组,使得各个计算节点组在性能上保持均衡。或者,可根据计算节点的数量,
对各计算节点进行分组,以建立计算节点组。即基于数量进行分组,使得每个计算节点组中的计算节点数量满足设定要求。或者,可根据分组指令对各计算节点进行分组,以建立计算节点组。即人为的指定具体哪些节点属于哪个计算节点组。
54.在建立计算节点组之后,可利用计算节点组生成三元组数据。本领域中公知的是,所谓三元组数据是指某种在安全多方计算过程中需要消耗的数据资源,本实施例中不做赘述。计算节点组建立之初,可生成一定数量的三元组数据,以便于在后续的计算过程中对三元组数据进行消耗,从而完成对于特定的目标任务的处理。
55.而在计算节点组每一次进行计算,即执行特定的目标任务之前,可确定计算节点组对应的三元组数据,也就是确定计算节点组中目前剩余的三元组数据的数量,即如本步骤中所描述。当计算节点组中当前的三元组数据的数量低于预设的数量阈值,也就意味着当前剩余的三元组数据数量过少,无法在下一次计算中满足消耗需求,所以可利用计算节点组继续生成三元组数据,以作为补充。
56.结合图3所示,体现了计算节点组在实际参与安全多方的过程中的状态变化过程。建立计算节点组之后,计算节点组可进入初始化状态(init状态)。进而可由初始化状态进入离线状态(offline状态)。在离线状态下,计算节点组可生成三元组数据。如果在离线状态下,计算节点组中有计算节点掉线,则掉线的计算节点可以进入未分组状态,进而可以重新被分组。当离线状态下,计算节点组生成的三元组数据达到一定数量,计算节点组可由离线状态进入预备状态(ready状态)。预备状态下的计算节点组可被分配特定的目标任务,并消耗三元组数据。如果在预备状态下,计算节点组中有大量的计算节点掉线(例如超过1/3掉线),计算节点组则需要转入故障状态(fault状态)。预备状态下的计算节点组如被分配了目标任务并开始进行运算,则进入上线状态(normal online状态)。计算完成后会重新回到预备状态(ready状态)。在计算过程中如有大量的计算节点掉线(例如超过1/3掉线),计算节点组同样会转入故障状态(fault状态)。
57.步骤102、确定目标任务对于三元组数据的消耗数据。
58.目标任务,就是在安全多方计算中实际需要执行的任务。在对目标任务进行计算之前,需对其进行评估,也就是确定其对于三元组数据的消耗数据。消耗数据表示如需完成该目标任务,所需要消耗的三元组数据的数量。
59.前述已知的是,现有技术主要适用于通讯负担较低的场景,并且拓展性较差。也就是说在复杂任务当中,因为会出现多方参与计算、通讯负载较大、且拓展性要求较高的情况,所以利用现有技术无法满足需求。而本实施例中,在目标任务为复杂任务的情况下,可以对目标任务进行分解,就是根据目标任务,确定对应的目标子任务;并确定目标子任务对于三元组数据的消耗数据。目标子任务对于三元组数据的消耗数据,代表了如需完成该目标子任务,所需要消耗的三元组数据的数量。
60.步骤103、根据计算节点组对应的三元组数据,和目标任务的消耗数据,为目标任务分配相应的计算节点组。
61.本实施例中,将根据计算节点组对应的三元组数据,和目标任务的消耗数据,实现对于目标任务的分配。也就是将目标任务分配到可以满足其消耗的计算节点组进行计算。具体的,可以将三元组数据和消耗数据进行比对。当某一计算节点组的三元组数据小于消耗数据,说明该计算节点组无法满足目标任务的消耗,则不应将目标任务分配至该计算节
点组。反之当某一计算节点组的三元组数据大于消耗数据,说明该计算节点组能够满足目标任务的消耗,可将目标任务分配至该计算节点组。或者,当某一计算节点组的三元组数据远远大于消耗数据,说明该计算节点组虽然能够满足目标任务的消耗,但是若将目标任务分配至该计算节点组可能产生消耗资源(三元组数据)的浪费。特别是在存在多个目标任务的情况下,应当在分配过程中进行整体的权衡,使得每个目标任务均分配到能够满足消耗的计算节点组中运算,实现消耗资源的均衡。
62.在目标任务分解成多个目标子任务的情况下,可根据计算节点组对应的三元组数据,和目标子任务的消耗数据,为目标子任务分配相应的计算节点组。也就是说,如果目标任务过于复杂,其消耗的三元组数据数量过大,则可能计算节点组无法满足其消耗。在这种情况下分解为多个目标子任务并分别执行计算,可使得每个计算节点组均满足目标子任务的消耗,从而使得计算顺利完成。本实施例中通过上述方式,满足了多方参与计算、通讯负载较大、且拓展性要求较高的情况下的计算需求,提高了安全多方计算的效率。
63.在完成了任务分配之后,计算方的计算节点组将根据三元组数据对目标任务进行安全多方计算,以确定目标任务对应的计算结果。
64.如图2所示,在安全多方计算的过程中,计算节点组分配了目标子任务之后,调度方可将对于计算节点的分组信息发送至数据方。另一方面,计算节点组将从数据方获取目标子任务对应的任务数据。目标子任务对应的任务数据,也就是目标子任务实际所涉及的数据。进而计算节点组根据三元组数据,对目标子任务的任务数据进行安全多方计算,以确定子计算结果;根据子计算结果,确定目标任务对应的计算结果。也就是,在实际进行安全多方计算的过程中,计算节点组从数据方得到任务数据,并消耗三元组数据对任务数据进行运算,从而得到最终的计算结果。至此,本实施例中完成了对于目标任务的安全多方计算。
65.通过以上技术方案可知,本实施例存在的有益效果是:通过结合三元组数据和消耗数据进行任务分配,使得计算节点组的三元组数据能够满足目标任务的消耗,从而实现了计算资源的合理分配,提高了安全多方计算的效率;通过将目标任务分解并分别计算,避免了目标任务过于复杂时,计算节点组无法满足其消耗的问题,同时满足了多方参与计算、通讯负载较大、且拓展性要求较高的情况下的计算需求。
66.图1所示仅为本申请所述方法的基础实施例,在其基础上进行一定的优化和拓展,还能够得到所述方法的其他优选实施例。
67.如图4所示,为本申请所述安全多方计算中的任务处理方法的另一个具体实施例。本实施例在前述实施例的基础上,进行进一步拓展。所述方法具体包括以下步骤:
68.步骤401、确定计算节点组对应的三元组数据。
69.步骤402、确定目标任务对于三元组数据的消耗数据。
70.步骤403、根据计算节点组对应的三元组数据,和目标任务的消耗数据,为目标任务分配相应的计算节点组。
71.步骤404、对各计算节点进行分组,以建立协助节点组。
72.本实施例中将额外的选取部分计算节点进行分组,得到协助节点组。协助节点组中的计算节点,同为经过匿名注册的计算节点。具体的分组方式亦可以参考图1所示实施例中描述。实际上也可以认为,计算节点组和协助节点组在本质上并无区别。
73.协助节点组的作用是生成三元组数据。结合图3所示,由于处于离线状态(offline状态)的节点组都可以生成三元组数据,所以可以认为任何该状态下的节点组均可在逻辑上作为协助节点组。协助节点组通常会保持离线状态,即不直接的参与安全多方计算。每个协助节点组均会生成一定数量的三元组数据,以便于在计算过程中作为储备。
74.步骤405、利用计算节点组根据三元组数据对目标任务进行安全多方计算,以确定目标任务对应的计算结果。
75.步骤406、当计算节点组的三元组数据的数量,不满足目标任务的消耗数据时,利用协助节点组生成三元组数据,并同步至计算节点组。
76.在实际进行安全多方计算的过程中,有时由于目标任务过于复杂,消耗量过大,以至于出现各个计算节点组的三元组数据均不能满足消耗的情况。此时便可以利用协助节点组中三元组数据的储备解决这一问题,参考图5所示。
77.前述已知的是,处于离线状态的协助节点组可以生成三元组数据,以作为计算过程中的储备。所以在计算节点组无法满足消耗的时候,或者说计算节点组自身的三元组数据消耗将尽的时候,可以将协助节点组中储备的三元组数据同步到计算三元组中,以作为补充。
78.计算节点组的三元组数据得到补充之后,便可继续消耗三元组数据进行运算。图5中示出的情况当中,目标任务分配到计算节点组。有一个协助节点组对该计算节点组进行三元组数据的补充。当然在另一些情况下,计算节点组和协助节点组的数量不限。协助节点组可一对一的对计算节点组进行补充,亦可以多对一的进行补充。
79.通过上述利用协助节点组进行三元组数据补充的方式,本实施例中解决了目标任务过于复杂,对于三元组数据消耗量过大时,导致的计算节点组的三元组数据不能满足消耗的问题。
80.如图6所示,为本申请所述安全多方计算中的任务处理方法的另一个具体实施例。本实施例在前述实施例的基础上,进行进一步拓展。所述方法具体包括以下步骤:
81.步骤601、对各计算节点进行分组,以建立计算节点组和协助节点组。
82.步骤602、确定计算节点组对应的三元组数据。
83.步骤603、利用协助节点组生成三元组数据。
84.步骤604、根据目标任务,确定对应的目标子任务;并确定目标子任务对于三元组数据的消耗数据。
85.步骤605、根据计算节点组对应的三元组数据,和目标子任务的消耗数据,为目标子任务分配相应的计算节点组。
86.步骤606、利用计算节点组,对目标子任务的任务数据进行安全多方计算,以确定子计算结果。
87.步骤607、当计算节点组的三元组数据的数量,不满足目标子任务的消耗数据时,将协助节点组生成的三元组数据同步至计算节点组。
88.步骤608、根据子计算结果,确定目标任务对应的计算结果。
89.在图1所示实施例中,可将复杂的目标任务进行分解处理,将分解得到的目标子任务分配到计算节点组中执行,以提高计算效率。这一处理方式可称为分解模式。在图4所示实施例中,可利用协助节点组对计算节点组补充三元组数据,以满足更大量的三元组数据
消耗。这一处理方式可称为协助模式。
90.而在本实施例中,可以将分解模式和协助模式相结合使用,如图7所示。即当目标子任务依然消耗量过大,以至于计算节点组的三元组数据不能满足消耗时。此时便可以利用协助节点组中三元组数据的储备解决这一问题。在本实施例中,目标任务被分解为子任务1和子任务2。子任务1分配到计算节点组a进行处理,子任务2分配到计算节点组b进行处理。
91.由于子任务1和子任务2均需要消耗大量的三元组数据,以至于计算节点组a和计算节点组b自身的三元组数据无法满足消耗。所以在图7所示的示例当中,协助节点组a向计算节点组a同步三元组数据,以满足子任务1的消耗。协助节点组b向计算节点组b同步三元组数据,以满足子任务2的消耗。进而使得各个目标子任务的消耗可被满足,使目标子任务得以完成计算,进而得到计算结果。
92.如图8所示,为本申请所述安全多方计算中的任务处理装置的一个具体实施例。本实施例装置,即用于执行图1~7所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。本实施例中装置包括:
93.三元组数据确定模块801,用于确定计算节点组对应的三元组数据。
94.消耗数据确定模块802,用于确定目标任务对于三元组数据的消耗数据。
95.任务调度模块803,用于根据计算节点组对应的三元组数据,和目标任务的消耗数据,为目标任务分配相应的计算节点组;以使计算节点组根据三元组数据对目标任务进行安全多方计算,以确定目标任务对应的计算结果。
96.另外在图8所示实施例的基础上,优选的,还包括:
97.还包括:
98.计算节点组建立模块804,用于建立计算节点组。
99.计算节点组建立模块804包括:
100.注册单元841,用于对多个计算节点进行身份注册,并确定各计算节点的性能信息。
101.分组单元842,用于根据各计算节点的性能信息,对各计算节点进行分组,以建立计算节点组;或者,根据分组指令对各计算节点进行分组,以建立计算节点组;或者,根据计算节点的数量,对各计算节点进行分组,以建立计算节点组。
102.三元组数据确定模块801包括:
103.三元组数据数量确定单元811,用于确定计算节点组当前的三元组数据。
104.三元组数据生成单元812,用于在当前的三元组数据的数量低于预设的数量阈值时,利用计算节点组生成三元组数据。
105.任务调度模块803包括:
106.任务分解单元831,用于根据目标任务,确定对应的目标子任务。
107.任务分配单元832,用于根据计算节点组对应的三元组数据,和目标子任务的消耗数据,为目标子任务分配相应的计算节点组。
108.还包括:
109.协助节点组建立模块805,用于对各计算节点进行分组,以建立协助节点组。在计算节点组的三元组数据的数量,不满足目标任务的消耗数据时,利用协助节点组生成三元
组数据,并同步至计算节点组。
110.除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
111.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
112.此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
113.所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
114.以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
115.本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
116.还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
117.提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
118.为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1