当前位置: 首页 > 专利查询>罗伯特专利>正文

分布式安全多方计算制造技术

技术编号:34551371 阅读:56 留言:0更新日期:2022-08-17 12:36
分布式安全多方计算。安全多方计算(MPC)是一种使得多个方能够在私有输入上联合计算函数的密码计算技术。例如,假设相对于至少一个未受损方,SPDZ协议可以针对多方计算的多个受破坏方提供安全性。本说明书讨论了一种用于提供分布式数据处理服务的计算机实现的方法,该分布式数据处理服务用于使用经由通信网络通信地耦合的至少第一和第二计算引擎对私有输入数据的至少第一和第二项执行函数的安全多方计算。多方计算。多方计算。

【技术实现步骤摘要】
分布式安全多方计算


[0001]本说明书涉及一种用于提供分布式数据处理服务以执行安全多方计算的计算机实现的方法,以及相关联的系统和计算机可读介质。

技术介绍

[0002]安全多方计算(MPC)是一种使得多方能够在私有输入上联合计算函数的密码计算技术。例如,假设相对于至少一个未受损方,SPDZ协议可以针对多方计算的多个受损方提供安全性。
[0003]然而,MPC的引擎通常是作为可执行文件交付的学术原型,旨在特定的研究应用场景中操作。这些原型不便于并入当代计算栈。这意味着MPC的实际应用在很多情形下是不实际的。因此,可以进一步改进安全多方计算。

技术实现思路

[0004]根据第一方面,提供了一种用于提供分布式数据处理服务的计算机实现的方法,所述分布式数据处理服务用于使用经由通信网络通信地耦合的至少第一和第二计算引擎对私有输入数据的至少第一和第二项执行函数的安全多方计算。该方法包括:

通过将至少第二计算引擎绑定到第一计算引擎,使用第一计算引擎建立分布式数据处理服务;

使用由对应的第一和第二计算引擎管理的第一和第二密码引擎提供的分布式密码生成服务,生成在安全多方计算的在线阶段期间所需的多个密码原语,其中在安全多方计算之前的离线阶段期间生成一部分密码原语,并且所述多个密码原语用由相应的第一和第二计算引擎管理的对应的至少第一和第二密码数据存储提供的分布式密码数据存储服务来存储;

由分布式数据处理服务获得安全多方计算的服务调用以及私有输入数据的至少第一和第二项;

在由对应的第一和第二计算引擎管理的至少第一和第二对象存储引擎提供的分布式数据处理服务的分布式对象存储服务中存储私有输入数据的至少第一和第二项;

在在线阶段期间,使用由对应的第一和第二计算引擎管理的第一和第二多方计算引擎提供的分布式数据处理服务的多方计算服务对私有输入数据的至少第一和第二项执行分布式安全多方计算,其中第一多方计算引擎与至少第二多方计算引擎一起执行安全多方计算;和

经由分布式对象存储服务存储安全多方计算的至少一个结果,和/或向至少第一或第二客户端输出所述至少一个结果。
[0005]有利的是,说明书中详述的安全MPC技术可以提供可扩展、容错和可灵活部署的安全计算解决方案。
[0006]特别地,安全MPC和秘密共享协议的组合使得MPC计算能够跨多个不同的计算引擎
上分解。计算引擎可以包括常规的服务器,或者使用例如Kubernetes(TM)容器编排器或Mesos(TM)或Docker Swarm(TM)的更灵活的弹性计算资源。换言之,MPC算法的组成部分及其辅助服务可以跨多个微服务上分解。这使得能够根据给定的工作负载独立地横向扩展服务。例如,相对于分布式MPC实现的其他服务,I/O密集型工作负载内的系统可以具有高度扩展的对象存储服务。计算密集型工作负载可能依赖于扩大数量的并行、并发、多方计算服务和分布式密码生成服务。
[0007]另一个优点是,例如,将密码原语(材料)的生成分离到分布式密码生成服务,并且分布式多方计算服务对密码的消耗使得能够在预期未来计算负载的情况下积累适量的密码材料。在分布式多方竞争服务不活动的时段中,大量密码原语可以被储备在分布式密码数据存储服务中,以使能分布式多方计算的快速初始化。
[0008]另外的优点是,由于基于容器的计算的特性,分布式安全MPC服务的组件服务可以可选地以保存环境的方式被快速初始化或中止。
[0009]另外的优点是,使用例如统一命令行客户端向客户端呈现了到分布式多方计算服务的统一接口。
[0010]此外,将SPDZ类型的MPC算法从单个处理器实现适配到容器化云计算环境可能引起附加的考虑,诸如如何为不同的工作负载和不同的容器配置在“离线”和“在线”阶段之间分配任务。当在多个容器之间分发时的SPDZ实现的数据存储和分发布置的一致性也在本说明书中被解决。例如,在多个计算引擎上生成密码原语,尽管密码生成服务被呈现为对高级算法的统一服务。
[0011]本说明书的另外贡献是提供服务网格32来改进每个计算引擎VCP1、VCP2内部的通信。例如,SPDZ方法需要在每个VCP的子模块内部、例如在MPC1、CGS1、CDA1和OSE1之间增加进程间通信,例如以使能共享秘密的分发或分布式计算的性能。本文提出的服务网格32方法改进了在SPDZ计算的执行期间进程间通信的效率。此外,该服务可以透明地保护微服务之间的通信信道。当多个计算实例并发运行时,该服务还可以促进路由。
[0012]附加地,使能在给定VCP内部的模块之间的通信的服务网格32的提供和容器化方法使得分布式数据处理服务能够快速地重新配置。例如,应用的计算负载可能从主要基于计算的负载改变为主要基于I/O的负载。在该情况下,分布式数据处理服务可以减少在每个VCP中所需的多方计算引擎(MCE)的数量,并增加在每个VCP中的对象存储引擎的数量,可选地使用Kubernetes(TM)编排方法。
[0013]因此,实现MPC的分布式数据处理服务可以快速将其自身重新配置为不同的计算作业。
[0014]根据第二方面,提供了如独立系统权利要求11限定的一种用于提供分布式数据处理服务的系统,该分布式数据处理服务用于对私有输入数据的至少第一和第二项执行函数的安全多方计算,读者现在应该参考该系统。
[0015]根据第三方面,提供了如独立的计算机实现的方法权利要求13限定的一种第一计算引擎的计算机实现的方法,该第一计算引擎用于协调分布式数据处理服务,读者现在应该参考该方法。
[0016]根据第四方面,提供了如独立的计算机实现的方法权利要求14限定的一种用于参与分布式数据处理服务的第二计算引擎的计算机实现的方法,该分布式数据处理服务用于
执行函数的安全多方计算,读者现在应该参考该方法。
[0017]根据第五方面,提供了一种计算机可读介质或数据信号,其上编码有限定机器可读指令的至少一个计算机程序,所述机器可读指令当由计算机处理器执行时,能够实行第一、第三和第四方面的计算机实现的方法。
[0018]从属权利要求和详细描述限定了前述方面的另外实施例。
[0019]在以下应用中,“分布式数据处理服务”意指由一个或多个服务器托管的持久计算机程序,所述一个或多个服务器托管在有时也称为计算云的一个或多个数据中心内。分布式数据处理服务的客户端可以上传数据并对数据调用计算,并最终从分布式数据处理服务下载经变换的数据。
[0020]在下面的应用中,“安全多方计算”意指在从多方提供的私有输入上联合计算函数。安全MPC可以基于例如SPDZ协议或其变体。SPDZ协议的特性是,在接收到私有输入之前,密码原语的费力计算可以离线执行。例如,如在US 2019/0372760 A1(特此通过引用并入)中讨论的SPDZ协议的变体可以使能容错SPDZ,即使当一些方在在线阶段期间变得不可用时也允许执行安本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于提供分布式数据处理服务30的计算机实现的方法(200),所述分布式数据处理服务30用于使用经由通信网络通信地耦合的至少第一和第二计算引擎对私有输入数据的至少第一和第二项(x1、x2)执行函数的安全多方计算,所述方法包括:

通过将至少第二计算引擎(VCP2)绑定到第一计算引擎,使用第一计算引擎(VCP1)建立(22)分布式数据处理服务;

使用由对应的第一和第二计算引擎(VCP1、2)管理的第一和第二密码引擎提供的分布式密码生成服务(CGS)生成(204)在安全多方计算的在线阶段期间所需的多个密码原语,其中在安全多方计算之前的离线阶段期间生成一部分密码原语,并且所述多个密码原语由相应的第一和第二计算引擎(VCP1、2)管理的对应的至少第一和第二密码数据存储提供的分布式密码数据存储服务(CDS)存储;

由分布式数据处理服务获得(206)安全多方计算的服务调用以及私有输入数据的至少第一和第二项;

在由对应的第一和第二计算引擎(VCP1、2)管理的至少第一(OSE1)和第二(OSE2)对象存储引擎提供的分布式数据处理服务的分布式对象存储服务(OSS)中存储(208)私有输入数据的至少第一和第二项;

在在线阶段期间,使用由对应的第一和第二计算引擎(VCP1、2)管理的第一和第二多方计算引擎(MPC1、2)提供的分布式数据处理服务的分布式多方计算服务(MCS)对私有输入数据的至少第一和第二项执行(210)分布式安全多方计算,其中第一多方计算引擎与至少第二多方计算引擎一起执行安全多方计算;和

经由分布式对象存储服务存储(212)安全多方计算的至少一个结果,和/或向至少第一或第二客户端输出所述至少一个结果。2.根据权利要求1所述的计算机实现的方法(200),其中建立分布式数据处理服务包括实例化包括至少第一和第二计算引擎(VCP1、2)的虚拟云,和/或将至少第二计算引擎(VCP2)绑定到第一计算引擎(VCP1)包括建立和交换初始密码原语以在至少第一和第二计算引擎之间建立至少一个认证的通信信道,其中初始密码原语可选地包括一个或多个同态密钥或共享消息认证码MAC密钥。3.根据权利要求1或2中的一项所述的计算机实现的方法(200),进一步包括在建立分布式数据处理服务之后执行发现过程,其中所述发现过程包括:

经由第一多方计算引擎(MPC1)编排发现协议,以标识虚拟云中至少第二多方计算引擎(MPC2)的存在以及第二计算引擎和/或第二多方计算引擎的通信端点标识符;

建立通信信道,以将第一多方计算引擎(MPC1)通信地耦合到至少第二多方计算引擎(MPC2);

经由第一多方计算引擎,使用在通信信道上通信的至少第一和第二多方计算引擎来编排安全多方计算。4.根据前述权利要求中的一项所述的计算机实现的方法(200),其中用于执行函数的安全多方计算的分布式数据处理服务应用SPDZ协议中的一项,特别是Fresco实现或scale mamba实现。5.根据前述权利要求中的一项所述的计算机实现的方法(200),其中,提供分布式密码生成服务、分布式密码数据存储服务、分布式对象存储服务和分
布式安全多方计算服务中的每一个的部分的至少第一和第二计算引擎(VCP1、2)使用基于容器编排的服务来实现,所述基于容器编排的服务可选地包括Kubernetes(TM)、Mesos(TM)或Docker Swarm(TM)。6.根据前述权利要求中的一项所述的计算机实现的方法(200),进一步包括:

经由分布式密码生成服务的负载监视器,监视分布式密码生成服务、分布式密码数据存储服务、分布式对象存储服务和分布式安全多方计算中的一个或多个上的当前或预期的计算负载;

如果负载监视器确定当前或预期的计算负载超过或将超过上负载阈值:

适当时,指令容器编排器增加提供分布式密码生成服务、分布式密码数据存储服务、分布式对象存储服务和分布式安全多方计算中的一个或多个的容器的数量;和/或

如果负载监视器确定当前或预期的计算负载落入下负载阈值以下或将落入下负载阈值以下:

适当时,指令容器编排器减少提供分布式密码生成服务、分布式密码数据存储服务、分布式对象存储服务和分布式安全多方计算中的一个或多个的容器的数量。7.根据前述权利要求中的一项所述的计算机实现的方法(200),进一步包括:

在由第一计算引擎(VCP1)管理的第一密码引擎处,监视分别存储在至少第一和第二密码数据存储中的密码原语的级别;

在第一密码引擎处,基于跨至少第一和第二密码数据存储之上存储的密码原语的级别,生成一个或多个密码原语生成时间表;

将所述一个或多个密码原语生成时间表分发到至少第二密码引擎;和

根据所述一个或多个密码原语生成时间表,使用第一密码引擎与使用第二密码引擎的第二多个密码原语同步地生成第一多个密码原语。8.根据前述权利要求中的一项所述的计算机实现的方法(200),进一步包括通过以下各项跨分布式数据处理服务30供应密码原语集:

从第一计算引擎(VCP1)向至少第二计算引擎(VCP2)传输密码原语块供应请求;

在第一计算引擎(VCP1)和至少第二计算引擎(VCP2)之间就密码原语标识符达成一致,所述标识符标识跨至少第一计算引擎(VCP1)和至少第二计算引擎(VCP2)之上的共享密码原语;

在至少第一和第二计算引擎之间发送用于具有特定密码原语标识符的密码原语块的状态更新请求;和

将密码原语块的状态标志设置为激活状态,以便使包含的元组共享可用于后续使用。9.根据权利要求8所述的计算机实现的方法(200),进一步包括通过以下各项使用密码原语:

从第一计算引擎(VCP1)向至少第二计算引擎(VCP2)传输密码原语预留请求;

将密码原语预留所引用的第二计算引擎(VCP2)的密码数据存储(CDS)中的密码原语标记为预留;

当第一计算引擎(VCP1)确定所述密码原语预留已经与至少第二计算引擎(VCP2)成功共享时,在第一和第二计算引擎中激活由所述密码原语预留所引用的密码原语;<...

【专利技术属性】
技术研发人员:H
申请(专利权)人:罗伯特
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1