【技术实现步骤摘要】
分布式安全多方计算
[0001]本说明书涉及一种用于提供分布式数据处理服务以执行安全多方计算的计算机实现的方法,以及相关联的系统和计算机可读介质。
技术介绍
[0002]安全多方计算(MPC)是一种使得多方能够在私有输入上联合计算函数的密码计算技术。例如,假设相对于至少一个未受损方,SPDZ协议可以针对多方计算的多个受损方提供安全性。
[0003]然而,MPC的引擎通常是作为可执行文件交付的学术原型,旨在特定的研究应用场景中操作。这些原型不便于并入当代计算栈。这意味着MPC的实际应用在很多情形下是不实际的。因此,可以进一步改进安全多方计算。
技术实现思路
[0004]根据第一方面,提供了一种用于提供分布式数据处理服务的计算机实现的方法,所述分布式数据处理服务用于使用经由通信网络通信地耦合的至少第一和第二计算引擎对私有输入数据的至少第一和第二项执行函数的安全多方计算。该方法包括:
‑
通过将至少第二计算引擎绑定到第一计算引擎,使用第一计算引擎建立分布式数据处理服务;
‑
使用由对应的第一和第二计算引擎管理的第一和第二密码引擎提供的分布式密码生成服务,生成在安全多方计算的在线阶段期间所需的多个密码原语,其中在安全多方计算之前的离线阶段期间生成一部分密码原语,并且所述多个密码原语用由相应的第一和第二计算引擎管理的对应的至少第一和第二密码数据存储提供的分布式密码数据存储服务来存储;
‑
由分布式数据处理服务获得安全多方计算的服务调用以及私有输入数据的至少 ...
【技术保护点】
【技术特征摘要】
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)成功共享时,在第一和第二计算引擎中激活由所述密码原语预留所引用的密码原语;<...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。