用于利用SPDZ的更快速的安全多方内积计算的方法技术

技术编号:24105955 阅读:92 留言:0更新日期:2020-05-09 17:14
一种用于内积的安全多方计算的方法,包括:执行多方加法以在来自第一向量和第二向量中的对应的元素对的交替元素的两个共享之间生成第一总和共享与第二总和共享;利用至少一个其它节点来执行多方乘法,以生成内积对共享,所述内积对共享与同所述第一和第二向量中的元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及执行每个内积对共享与同所述第一向量中的元素对相对应的对乘积的第一经取负的共享以及同所述第二向量中的元素对相对应的对乘积的第二经取负的共享的另一多方加法,以生成所述第一与第二向量的内积的共享。

A faster method for computing secure multiparty inner product using spdz

【技术实现步骤摘要】
【国外来华专利技术】用于利用SPDZ的更快速的安全多方内积计算的方法优先权要求本申请要求题为“MethodforFasterSecureMultipartyInnerProductwithSPDZ”并且在2017年9月29日提交的申请号为62/565,729的美国临时申请的权益,所述美国临时申请的全部内容由此通过引用被明确地并入本文中。
本公开内容一般地涉及信息安全的领域,并且更具体地涉及执行多方内积计算、而同时保持对计算的单独的输入的隐私性的系统和方法。
技术介绍
安全多方计算(MPC)系统使得能够实现包括多方的群组,其中各“方”是计算设备,所述计算设备用于执行产生由所有方共享的结果的联合计算,而同时保持各自仅仅对于单方是已知的单独数据元素的隐私性。例如,在MPC系统中解决的一个经典问题是确定群组中的哪一方具有最大值,而不将所述最大值或任何方的任何其它值泄漏(divulge)给群组中的其它方。安全MPC协议可以实现对于该问题以及对于宽范围的数学运算的解决方案。一种类型的安全MPC协议被称为SPDZ协议,其使得宽范围的数学运算能够由群组中的多方来执行,所述群组中的多方各自存储不与群组中的其它方共享的数据的单独集合。SPDZ协议使得两个或更多方的群组能够执行加法/减法以及乘法运算,其中各方能够访问可用信息的仅仅一部分,并且不能仅仅使用信息的可访问部分以及SPDZ计算的最终结果来确定由其它方持有的信息,使所述SPDZ计算的最终结果可用于群组中的所有方。虽然SPDZ协议可以用于执行能够被分解成加法/减法以及乘法运算的大范围的计算,但包括加法和乘法的一种常见类型的运算是内积运算,所述内积运算被应用到具有相等长度N的两个向量,所述两个向量在本文中被称为向量w和x,并且。如对于本领域公知的,内积运算(也被称为“点积”)将来自两个向量的对应元素对乘在一起以产生单独的乘积,并且对所有乘积求和以产生最终标量总和值。例如,如果w=(1,2,3)并且x=(4,5,6),那么内积是:。内积运算被使用在宽范围的实际计算中,并且来引用一个非限制性的示例,神经网络对内积运算进行大量使用,其中向量w表示在神经网络中使用的权重的向量,并且向量x表示输入值,其中神经元的操作的部分用于生成每个权重乘以对应的输入值的总和,这是上述的内积运算。SPDZ协议使得各自能够访问输入数据的仅部分的两个或更多方能够使用安全多方计算来生成内积值。例如,在一个配置中,一个计算设备能够访问神经网络中的权重向量w,并且另一计算设备能够访问输入向量x,所述输入向量x可以包含关于输入图像或隐私敏感的其它输入数据的信息。SPDZ协议使得能够计算内积的最终输出,而不向存储权重值w的该方揭露输入向量x,并且不向存储输入向量x的该方揭露权重值w。SPDZ协议使得能够在至少两方的群组之间实现该操作,尽管在一些配置中,向量w和x在多方的更大的群组之中被进一步细分。虽然没有在本文中更详细地被描述,但是SPDZ协议还为群组中的多方提供某种能力以确定多方的子集是否已经操纵了共享的数据来生成不正确的最终结果,其为群组提供某种能力以确定最终计算的结果是否已经被准确地计算或是否应当被丢弃。SPDZ协议使用两阶段途径,所述两阶段途径包括计算的“离线”阶段,多方使用所述计算的“离线”阶段来用于与彼此安全地交换随机生成的数,所述随机生成的数已知为Beaver三元组。Beaver三元组对于节点而言不是实际的感兴趣的数据,但是被使用在后续在线阶段中以使得能够计算共享的结果,而同时防止各方标识来自一个或多个附加方的隐私数据。离线阶段引入包括加密操作的、用于计算并且共享Beaver三元组的计算,并且一般被视为是SPDZ协议的计算上更密集的阶段。在第二“在线”阶段中,多方使用Beaver三元组以及实际的感兴趣的数据来执行安全的多方计算,包括上述的内积计算。虽然SPDZ协议在执行内积计算上是有效的,但是于在线阶段期间发生在内积计算中的大量乘法运算引入了附加的通信操作,所述附加的通信操作均需要使用Beaver三元组并且由于SPDZ为多方乘法所实现的底层操作而在多方之间产生计算开销。因此,对于用于多方计算的系统和方法的改进将是有益的,所述改进降低计算和通信要求以改进内积的安全多方计算的性能。
技术实现思路
在一个实施例中,已经开发了一种用于内积的安全多方计算的方法。所述方法包括:利用第一节点中的处理器来执行多个多方加法,每个多方加法在来自第一向量和第二向量中的对应元素对的元素的交替共享之间生成第一总和共享与第二总和共享之一;利用所述第一节点中的所述处理器和网络接口设备来执行与至少一个其它节点的多个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及利用所述第一节点中的处理器来执行来自所述多个多方乘法的每个内积对共享与同所述第一向量中的元素对相对应的对乘积的第一多个经取负的共享以及同所述第二向量中的元素对相对应的对乘积的第二多个经取负的共享的另一多方加法,以生成所述第一向量与第二向量的内积的共享。在另外的实施例中,所述第一向量和第二向量各自具有第一数目的元素,并且由所述第一节点中的所述处理器和网络接口执行的多方乘法的数目是所述第一数目的一半。在另外的实施例中,所述方法包括:利用所述第一节点中的处理器和网络接口设备来在执行所述多个多方乘法之前生成多个Beaver三元组,每个Beaver三元组包括在所述第一节点与所述至少一个其它节点之间重共享的三个值的共享,在所述多个多方乘法中的每个多方乘法消耗所述多个Beaver三元组中的一个Beaver三元组的所述三个值的共享。在另外的实施例中,所述方法包括:利用所述第一节点中的处理器、通过在所述第一节点中的存储器中被存储的所述第一向量中的元素对的乘法来生成第一多个对乘积;利用所述第一节点中的处理器、使用公共密钥来对所述第一多个对乘积中的每个对乘积进行加密,以生成第一多个经加密的对乘积;利用所述第一节点中的处理器、使用经加密的消息认证码(MAC)密钥来为所述第一多个经加密的对乘积生成第一多个经加密的签名;以及利用所述第一节点中的处理器和网络接口设备来执行多个重共享操作,以在所述第一节点与所述至少一个其它节点之间分布每个经加密的签名的共享。在另外的实施例中,所述至少一个其它节点包括多个其它节点。在另一实施例中,已经开发了一种用于内积的安全多方计算的方法。所述方法包括:利用第一节点中的处理器和网络接口设备来执行第一多个共享分布操作,以在所述第一节点与至少一个其它节点之间分布第一多个共享,所述第一多个共享与在所述第一节点的存储器中被存储的第一向量中的多个元素相对应;利用所述第一节点中的处理器、基于所述第一向量中的所述第一多个元素中的至少一对元素的乘法来生成至少一个对乘积;利用所述第一节点中的所述处理器和网络接口设备来执行至少一个共享分布操作,以在所述第一节点与所述至少一个其它节点之间分布所述至少一个第一对乘积的共享;利用所述第一节点中的所述处理器和网络接口设本文档来自技高网
...

【技术保护点】
1.一种用于内积的安全多方计算的方法,包括:/n利用第一节点中的处理器来执行多个多方加法,每个多方加法在来自第一向量和第二向量中的对应元素对的元素的交替共享之间生成第一总和共享与第二总和共享之一;/n利用所述第一节点中的所述处理器和网络接口设备来执行与至少一个其它节点的多个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及/n利用所述第一节点中的处理器来执行来自所述多个多方乘法的每个内积对共享与同所述第一向量中的元素对相对应的对乘积的第一多个经取负的共享以及同所述第二向量中的元素对相对应的对乘积的第二多个经取负的共享的另一多方加法,以生成所述第一向量与第二向量的内积的共享。/n

【技术特征摘要】
【国外来华专利技术】20170929 US 62/5657291.一种用于内积的安全多方计算的方法,包括:
利用第一节点中的处理器来执行多个多方加法,每个多方加法在来自第一向量和第二向量中的对应元素对的元素的交替共享之间生成第一总和共享与第二总和共享之一;
利用所述第一节点中的所述处理器和网络接口设备来执行与至少一个其它节点的多个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及
利用所述第一节点中的处理器来执行来自所述多个多方乘法的每个内积对共享与同所述第一向量中的元素对相对应的对乘积的第一多个经取负的共享以及同所述第二向量中的元素对相对应的对乘积的第二多个经取负的共享的另一多方加法,以生成所述第一向量与第二向量的内积的共享。


2.根据权利要求1所述的方法,其中所述第一向量和第二向量各自具有第一数目的元素,并且由所述第一节点中的所述处理器和网络接口所执行的多方乘法的数目是所述第一数目的一半。


3.根据权利要求1所述的方法,此外包括:
利用所述第一节点中的处理器和网络接口设备来在执行所述多个多方乘法之前生成多个Beaver三元组,每个Beaver三元组包括在所述第一节点与所述至少一个其它节点之间重共享的三个值的共享,在所述多个多方乘法中的每个多方乘法消耗所述多个Beaver三元组中的一个Beaver三元组的所述三个值的共享。


4.根据权利要求1所述的方法,此外包括:
利用所述第一节点中的处理器、通过在所述第一节点中的存储器中被存储的所述第一向量中的元素对的乘法来生成第一多个对乘积;
利用所述第一节点中的处理器、使用公共密钥来对所述第一多个对乘积中的每个对乘积进行加密,以生成第一多个经加密的对乘积;
利用所述第一节点中的处理器、使用经加密的消息认证码(MAC)密钥来为所述第一多个经加密的对乘积生成第一多个经加密的签名;以及
利用所述第一节点中的处理器和网络接口设备来执行多个重共享操作,以在所述第一节点与所述至少一个其它节点之间分布每个经加密的签名的共享。


5.根据权利要求1所述的方法,其中所述至少一个其它节点包括多个其它节点。


6.一种用于内积的安全多方计算的方法,包括:
利用第一节点中的处理器和网络接口设备来执行第一多个共享分布操作,以在所述第一节点与至少一个其它节点之间分布第一多个共享,所述第一多个共享与在所述第一节点的存储器中被存储的第一向量中的多个元素相对应;
利用所述第一节点中的处理器、基于所述第一向量中的所述第一多个元素中的至少一对元素的乘法来生成至少一个对乘积;
利用所述第一节点中的所述处理器和网络接口设备来执行至少一个共享分布操作,以在所述第一节点与所述至少一个其它节点之间分布所述至少一个第一对乘积的共享;
利用所述第一节点中的所述处理器和网络接口设备来从所述至少一个其它节点接收第二多个共享,所述第二多个共享对应于第二向量中的多个元素;
利用所述第一节点中的所述处理器和网络接口设备来从所述至少一个其它节点接收至少一个第二对乘积共享,所述至少一个第二对乘积共享对应于所述第二向量中的两个元素的至少一个对乘积;
利用所述第一节点中的所述处理器来执行多个多方加法,每个多方加法在来自第一向量和第二向量中的对应元素对的元素的交替共享之间生成第一总和共享与第二总和共享之一;
利用所述第一节点中的所述处理器和网络接口设备来执行与所述至少一个其它节点的至少一个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及
利用所述第一节点中的所述处理器来执行来自所述至少一个多方乘法的每个内积对共享与所述至少一个第一对乘积共享的取负以及所述至少一个第二对乘积共享的取负的另一多方加法,以生成所述第一向量与第二向量的内积的共享。

【专利技术属性】
技术研发人员:范欣欣郑清吉JG梅尔尚
申请(专利权)人:罗伯特·博世有限公司
类型:发明
国别省市:德国;DE

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

1