CN111133719B - 用于利用spdz的更快速的安全多方内积计算的方法 - Google Patents

用于利用spdz的更快速的安全多方内积计算的方法 Download PDF

Info

Publication number
CN111133719B
CN111133719B CN201880063080.1A CN201880063080A CN111133719B CN 111133719 B CN111133719 B CN 111133719B CN 201880063080 A CN201880063080 A CN 201880063080A CN 111133719 B CN111133719 B CN 111133719B
Authority
CN
China
Prior art keywords
node
pair
vector
multiparty
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880063080.1A
Other languages
English (en)
Other versions
CN111133719A (zh
Inventor
范欣欣
郑清吉
J.G.梅尔尚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN111133719A publication Critical patent/CN111133719A/zh
Application granted granted Critical
Publication of CN111133719B publication Critical patent/CN111133719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

一种用于内积的安全多方计算的方法,包括:执行多方加法以在来自第一向量和第二向量中的对应的元素对的交替元素的两个共享之间生成第一总和共享与第二总和共享;利用至少一个其它节点来执行多方乘法,以生成内积对共享,所述内积对共享与同所述第一和第二向量中的元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及执行每个内积对共享与同所述第一向量中的元素对相对应的对乘积的第一经取负的共享以及同所述第二向量中的元素对相对应的对乘积的第二经取负的共享的另一多方加法,以生成所述第一与第二向量的内积的共享。

Description

用于利用SPDZ的更快速的安全多方内积计算的方法
优先权要求
本申请要求题为“Method for Faster Secure Multiparty Inner Product withSPDZ”并且在2017年9月29日提交的申请号为62/565,729的美国临时申请的权益,所述美国临时申请的全部内容由此通过引用被明确地并入本文中。
技术领域
本公开内容一般地涉及信息安全的领域,并且更具体地涉及执行多方内积计算、而同时保持对计算的单独的输入的隐私性的系统和方法。
背景技术
安全多方计算(MPC)系统使得能够实现包括多方的群组,其中各“方”是计算设备,所述计算设备用于执行产生由所有方共享的结果的联合计算,而同时保持各自仅仅对于单方是已知的单独数据元素的隐私性。例如,在MPC系统中解决的一个经典问题是确定群组中的哪一方具有最大值,而不将所述最大值或任何方的任何其它值泄漏(divulge)给群组中的其它方。安全MPC协议可以实现对于该问题以及对于宽范围的数学运算的解决方案。
一种类型的安全MPC协议被称为SPDZ协议,其使得宽范围的数学运算能够由群组中的多方来执行,所述群组中的多方各自存储不与群组中的其它方共享的数据的单独集合。SPDZ协议使得两个或更多方的群组能够执行加法/减法以及乘法运算,其中各方能够访问可用信息的仅仅一部分,并且不能仅仅使用信息的可访问部分以及SPDZ计算的最终结果来确定由其它方持有的信息,使所述SPDZ计算的最终结果可用于群组中的所有方。
虽然SPDZ协议可以用于执行能够被分解成加法/减法以及乘法运算的大范围的计算,但包括加法和乘法的一种常见类型的运算是内积运算,所述内积运算被应用到具有相等长度N的两个向量,所述两个向量在本文中被称为向量wx 并且。如对于本领域公知的,内积运算(也被称为“点积”)将来自两个向量的对应元素对乘在一起以产生单独的乘积,并且对所有乘积求和以产生最终标量总和值。例如,如果w = (1, 2, 3) 并且x = (4, 5, 6),那么内积是:/> 。内积运算被使用在宽范围的实际计算中,并且来引用一个非限制性的示例,神经网络对内积运算进行大量使用,其中向量w表示在神经网络中使用的权重的向量,并且向量x表示输入值,其中神经元的操作的部分用于生成每个权重乘以对应的输入值的总和,这是上述的内积运算。SPDZ协议使得各自能够访问输入数据的仅部分的两个或更多方能够使用安全多方计算来生成内积值。例如,在一个配置中,一个计算设备能够访问神经网络中的权重向量w,并且另一计算设备能够访问输入向量x,所述输入向量x可以包含关于输入图像或隐私敏感的其它输入数据的信息。SPDZ协议使得能够计算内积的最终输出,而不向存储权重值w的该方揭露输入向量x,并且不向存储输入向量x的该方揭露权重值w。SPDZ协议使得能够在至少两方的群组之间实现该操作,尽管在一些配置中,向量wx在多方的更大的群组之中被进一步细分。虽然没有在本文中更详细地被描述,但是SPDZ协议还为群组中的多方提供某种能力以确定多方的子集是否已经操纵了共享的数据来生成不正确的最终结果,其为群组提供某种能力以确定最终计算的结果是否已经被准确地计算或是否应当被丢弃。
SPDZ协议使用两阶段途径,所述两阶段途径包括计算的“离线”阶段,多方使用所述计算的“离线”阶段来用于与彼此安全地交换随机生成的数,所述随机生成的数已知为Beaver三元组。Beaver三元组对于节点而言不是实际的感兴趣的数据,但是被使用在后续在线阶段中以使得能够计算共享的结果,而同时防止各方标识来自一个或多个附加方的隐私数据。离线阶段引入包括加密操作的、用于计算并且共享Beaver三元组的计算,并且一般被视为是SPDZ协议的计算上更密集的阶段。在第二“在线”阶段中,多方使用Beaver三元组以及实际的感兴趣的数据来执行安全的多方计算,包括上述的内积计算。虽然SPDZ协议在执行内积计算上是有效的,但是于在线阶段期间发生在内积计算中的大量乘法运算引入了附加的通信操作,所述附加的通信操作均需要使用Beaver三元组并且由于SPDZ为多方乘法所实现的底层操作而在多方之间产生计算开销。因此,对于用于多方计算的系统和方法的改进将是有益的,所述改进降低计算和通信要求以改进内积的安全多方计算的性能。
发明内容
在一个实施例中,已经开发了一种用于内积的安全多方计算的方法。所述方法包括:利用第一节点中的处理器来执行多个多方加法,每个多方加法在来自第一向量和第二向量中的对应元素对的元素的交替共享之间生成第一总和共享与第二总和共享之一;利用所述第一节点中的所述处理器和网络接口设备来执行与至少一个其它节点的多个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及利用所述第一节点中的处理器来执行来自所述多个多方乘法的每个内积对共享与同所述第一向量中的元素对相对应的对乘积的第一多个经取负的共享以及同所述第二向量中的元素对相对应的对乘积的第二多个经取负的共享的另一多方加法,以生成所述第一向量与第二向量的内积的共享。
在另外的实施例中,所述第一向量和第二向量各自具有第一数目的元素,并且由所述第一节点中的所述处理器和网络接口执行的多方乘法的数目是所述第一数目的一半。
在另外的实施例中,所述方法包括:利用所述第一节点中的处理器和网络接口设备来在执行所述多个多方乘法之前生成多个Beaver三元组,每个Beaver三元组包括在所述第一节点与所述至少一个其它节点之间重共享的三个值的共享,在所述多个多方乘法中的每个多方乘法消耗所述多个Beaver三元组中的一个Beaver三元组的所述三个值的共享。
在另外的实施例中,所述方法包括:利用所述第一节点中的处理器、通过在所述第一节点中的存储器中被存储的所述第一向量中的元素对的乘法来生成第一多个对乘积;利用所述第一节点中的处理器、使用公共密钥来对所述第一多个对乘积中的每个对乘积进行加密,以生成第一多个经加密的对乘积;利用所述第一节点中的处理器、使用经加密的消息认证码(MAC)密钥来为所述第一多个经加密的对乘积生成第一多个经加密的签名;以及利用所述第一节点中的处理器和网络接口设备来执行多个重共享操作,以在所述第一节点与所述至少一个其它节点之间分布每个经加密的签名的共享。
在另外的实施例中,所述至少一个其它节点包括多个其它节点。
在另一实施例中,已经开发了一种用于内积的安全多方计算的方法。所述方法包括:利用第一节点中的处理器和网络接口设备来执行第一多个共享分布操作,以在所述第一节点与至少一个其它节点之间分布第一多个共享,所述第一多个共享与在所述第一节点的存储器中被存储的第一向量中的多个元素相对应;利用所述第一节点中的处理器、基于所述第一向量中的所述第一多个元素中的至少一对元素的乘法来生成至少一个对乘积;利用所述第一节点中的所述处理器和网络接口设备来执行至少一个共享分布操作,以在所述第一节点与所述至少一个其它节点之间分布所述至少一个第一对乘积的共享;利用所述第一节点中的所述处理器和网络接口设备来从所述至少一个其它节点接收第二多个共享,所述第二多个共享对应于第二向量中的多个元素;利用所述第一节点中的所述处理器和网络接口设备来从所述至少一个其它节点接收至少一个第二对乘积共享,所述至少一个第二对乘积共享对应于所述第二向量中的两个元素的至少一个对乘积;利用所述第一节点中的所述处理器来执行多个多方加法,每个多方加法在来自第一向量和第二向量中的对应元素对的元素的交替共享之间生成第一总和共享与第二总和共享之一;利用所述第一节点中的所述处理器和网络接口设备来执行与所述至少一个其它节点的至少一个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及利用所述第一节点中的所述处理器来执行来自所述至少一个多方乘法的每个内积对共享与所述至少一个第一对乘积共享的取负以及所述至少一个第二对乘积共享的取负的另一多方加法,以生成所述第一向量与第二向量的内积的共享。
在另外的实施例中,所述第一向量和第二向量各自具有第一数目的元素,并且由所述第一节点中的所述处理器和网络接口执行的多方乘法的数目是所述第一数目的一半。
在另外的实施例中,所述方法包括:利用所述第一节点中的所述处理器和网络接口设备来在执行所述至少一个多方乘法之前生成至少一个Beaver三元组,所述至少一个Beaver三元组包括在所述第一节点与所述至少一个其它节点之间重共享的三个值的共享,在所述至少一个多方乘法中的每个多方乘法消耗一个Beaver三元组的所述三个值的共享。
在另外的实施例中,所述方法包括:利用所述第一节点中的处理器、通过在所述第一节点中的存储器中被存储的所述第一向量中的元素对的乘法来生成第一多个对乘积;利用所述第一节点中的处理器、使用公共密钥来对所述第一多个对乘积中的每个对乘积进行加密,以生成第一多个经加密的对乘积;利用所述第一节点中的处理器、使用经加密的消息认证码(MAC)密钥来为所述第一多个经加密的对乘积生成第一多个经加密的签名;以及利用所述第一节点中的处理器和网络接口设备来执行多个重共享操作,以在所述第一节点与所述至少一个其它节点之间分布每个经加密的签名的共享。
在另外的实施例中,所述至少一个其它节点包括多个其它节点。
在另一实施例中,已经开发了一种被配置用于执行内积的安全多方计算的节点。所述节点包括被配置成与至少一个其它节点通信的网络接口设备、存储器以及被操作地连接到所述网络接口设备和存储器的处理器。所述存储器被配置成存储与第一向量中的多个元素相对应的第一多个共享、与第二向量中的多个元素相对应的第二多个共享、与所述第一向量中的元素对相对应的对乘积的第一多个经取负的共享以及与所述第二向量中的元素对相对应的对乘积的第二多个经取负的共享。所述处理器被配置成执行多个多方加法,每个多方加法在来自所述第一向量和第二向量的元素的两个交替共享之间生成第一总和共享与第二总和共享之一,所述两个交替共享包括所述第一多个共享中的一个共享以及所述第二多个共享中的另一共享;使用所述网络接口设备来执行与至少一个其它节点的多个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及执行来自所述多个多方乘法的每个内积对共享与被存储在所述存储器中的对乘积的所述第一多个经取负的共享以及被存储在所述存储器中的对乘积的所述第二多个经取负的共享的另一多方加法,以生成所述第一向量与第二向量的内积的共享。
在另外的实施例中,所述第一向量和第二向量各自具有第一数目的元素,并且由所述节点中的所述处理器和网络接口执行的多方乘法的数目是所述第一数目的一半。
在另外的实施例中,所述处理器此外被配置成在执行所述多个多方乘法之前生成多个Beaver三元组,每个Beaver三元组包括通过使用所述网络接口设备而在所述节点与所述至少一个其它节点之间重共享的三个值的共享,在所述多个多方乘法中的每个多方乘法消耗所述多个Beaver三元组中的一个Beaver三元组的所述三个值的共享。
在另外的实施例中,所述处理器此外被配置成通过所述第一向量中的元素对的乘法来生成第一多个对乘积,所述第一向量被存储在所述存储器中;使用公共密钥来对所述第一多个对乘积中的每个对乘积进行加密,以生成第一多个经加密的对乘积;使用经加密的消息认证码(MAC)密钥来为所述第一多个经加密的对乘积生成第一多个经加密的签名;以及使用所述网络接口设备来执行多个重共享操作,以在所述第一节点与所述至少一个其它节点之间分布每个经加密的签名的共享。
在另外的实施例中,所述至少一个其它节点包括多个其它节点。
附图说明
图1是被配置成以经改进的效率来执行内积的安全多方计算的系统的示意图。
图2是用于具有经改进的效率的安全多方内积计算的过程的框图。
具体实施方式
为了促进理解本文中所述的实施例的原理,现在对附图以及在以下撰写的说明书中的描述进行参考。不意图通过参考标记对主题范围的任何限制。本专利还包括对所图示的实施例的任何变更和修改,并且包括如本文档所关于的领域中的技术人员通常将想到的所描述实施例的原理的另外应用。
如本文中所使用的,术语“Beaver三元组”是指三个值的集合(a, b, c),其中ab随机均匀地被选择,并且c等于a乘以b的乘积:c = ab。Beaver三元组中的所有三个数是有限域F p 的成员,其中p是模值。在其中p = 2n - 1的一些说明性实施例中,有限域F p 包括在[-2n/2, 2n/2 - 1]范围中的所有整数,其中n是64、80或128,尽管可以使用其它有限域。如在以下进一步详细地描述的,在经修改的SPDZ协议中,多方在离线计算阶段期间生成Beaver三元组,并且以安全的方式分布Beaver三元组的共享,以用于稍后用作用于内积的多方计算的在线计算阶段的部分。
如本文中所使用的,术语“同态”和“同态的”是指一些密码系统的性质,在所述密码系统中,数学运算可以被应用到经加密的值以产生将执行相同操作的结果匹配到明文值的经加密的结果,而不向执行该操作的计算设备揭露经加密的值或结果的内容。例如,给定两个值a = 1和b = 2及其对应的经加密的相对物a'b',在提供加法同态的密码系统中,经加密的值c' = a' + b'存储数字“3”(1 + 2 = 3)的经加密的表示。可以由不能确定a'b'的明文值的计算机来计算值c',并且在一些实例中,产生c'的计算机可以在没有确定ab的原始明文值的能力的情况下对c'进行解密以检索明文总和(3)。减法同态类似地应用于使两个经加密的值相减的运算(例如a = 2,b = 1,c' = a' - b',decryption(c') = 1),并且在本文中所述的实施例中,减法同态还等同于加法同态,其中一个或多个所选的值被取负以执行等同于减法的加法运算。类似地,提供乘法同态的密码系统的两个经加密的值(a'b')的乘积是另一经加密的值(c'),所述另一经加密的值(c')解密到与两个明文值(ab)的乘积相同的值(例如a = 2,b = 3,c' = (a'b'),decryption (c') = 6)。在本文中所述的实施例中,记号是指在提供加法同态的密码系统中的两个经加密的值之间的加法,/>是指在提供减法同态的密码系统中的两个经加密的值之间的减法运算,其中减法可以被视为经取负的值的加法,并且/>记号类似地是指在提供乘法同态的密码系统中的两个经加密的值之间的乘法。
如本文中所使用的,项λ是指从有限域中所选择的消息认证码(MAC)密码密钥。执行内积运算的多方/>中的每一个被提供有总体秘密λ的单独的共享/>,其中λ是所有单独秘密的总和/>。多方中没有一个能够访问全MAC密码密钥λ。MAC密码密钥λ可以经由乘法生成经加密的MAC值/>,所述经加密的MAC值/>对应于针对值x的消息认证码,并且如以下所述,MAC密钥λ本身可以使用公共密钥来被加密,以生成可以在多方之间被共享的MAC密钥的经加密的密文/>。经加密的MAC值用于验证从其它方接收的信息,并且提供针对在多方计算操作期间变更共享数据的恶意方的抵抗。在本文中所述的一些实施例可以省略在多方计算系统的配置中使用MAC密钥λ,所述多方计算系统保持起源输入数据的隐私性但是信任参与者以在多方计算期间提供准确的数据输出。
如本文中所使用的,项是指非对称的公共密钥加密系统,所述非对称的公共密钥加密系统向至少加法/减法以及乘法同态提供阈值加密。项sk是指ε中的私有密钥,其用于利用Dec功能来对密文进行解密,并且项pk是指ε中的公共密钥,其用于使用Enc功能来对明文进行加密以产生密文。多方/>中执行多方内积计算的每一个能够访问私有密钥sk i的一部分以及全公共密钥pk,其中/>,其中多方中没有一个能够访问全私有密钥sk
如本文中所使用的,针对值的记号(例如[x])指示值的“共享”,或其中多方各自持有总体值x的共享[x],但是能够对共享[x]进行访问不揭露x的实际值。在以下所述的实施例中,值x是经加密的密文值,并且在本文中使用的密码系统的加法同态性质使得总值x能够被划分成具有x的总值的单独共享。在来自具有多个元素的两个向量的内积的计算中,向量的每个元素表示以安全方式在两个或更多节点之间被共享的值。在数学上,针对总共n方/>的/>,其中每个共享[x i ]是总[x]的一部分,其中,针对各方的项/>是值H x 的另一单独的共享,值H x 是密码密钥λ乘以值的输出/>,并且给定单独的共享/>,总计是/>。各方将共享值[x]存储作为元组/>之一,并且不直接向群组中的其它方揭露该元组。
SPDZ中的重共享、共享分布、多方加法以及多方乘法
如以下进一步详细描述的,参与SPDZ MPC协议的经修改的版本的节点执行离线和在线操作阶段。在该阶段期间发生的三个操作是安全重共享操作、多方加法/减法运算以及多方乘法。这些单独的操作是现有SPDZ协议的部分,并且在本文中基于SPDZ协议来被描述。被称为“重共享”或“进行重共享”操作的安全重共享操作使得两个或更多节点能够生成对于所有节点而言已经已知的值的共享,(即全值已经由节点“共享”,并且该过程“重共享”总体值的部分),其中每个节点持有总值的共享,而不知道由任何其它节点所持有的共享。在本文中所述的实施例中,重共享操作被定义为:
,其中ct s 是秘密值s的经加密的密文(ct),并且/>表示参与重共享操作的n方。甚至在两节点系统中,经加密的密文值ct对于作为整体的所有方而言是已知的,并且重共享操作使得多方能够各自接收数据的原始集合的共享而不知道其它节点的共享。重共享操作开始于使用公共密钥pk来对秘密值s进行加密,以产生密文,并且密文ct s 被传送到接收秘密值s的经加密的共享的多方的群组中的所有n方。n方中的各方i生成均匀随机值/>,并且使用公共密钥pk来对随机值进行加密以生成随机值的密文:/>。各方经由数据网络来向所有其它方传送相应的密文值/>,并且各方计算s的经加密值与单独的经加密值/>的密文总和/>:/> ,其中再一次地,/>运算符指示提供加法同态的密码系统中的密文加法。多方然后使用私有密钥sk i 的单独部分来执行协作解密过程,以对值/>进行解密,从而获得s + f的总和,其中f是所有单独的随机值f i 的总和。在n方之间的最终共享是针对第1方的/>以及针对其它i方中每一个的/>
上述重共享操作是用于分布对于群组中的所有方而言已知的密文值的共享的一种方法。另一操作被称为“共享分布”操作,其生成对于群组中的一方而言已知的明文值的共享,并且在群组中的节点之间被共享之前不需要被加密,同时不向其它方公开明文数据。如下所述,该操作使得执行多方内积计算的系统中的节点能够分布向量中单独元素的共享以及基于单个向量中两个元素乘法的对乘积的共享,其中一个节点能够访问元素的明文内容。给定被称为x的明文值,具有值x的那方使用F p 中的均匀随机分布来为群组中其它方中的每一个生成随机值,从原始值x中减去所有随机生成的值,以生成由原始方使用的共享[x],并且向一个或多个附加方传送随机生成的值,其中所述随机值用作针对由其它方使用的[x]的共享。例如,在具有两方的群组中,第一方在存储器中持有x i ,其中i指示向量中的值的索引,并且生成被标注为x i2 的随机值,其中2是指示接收随机值的另一节点的索引标注。第一方基于在x i x i2 之间的差异来生成x i 的共享,其被标注为。第一方向第二方传送值x i2 ,并且该值是由第二方接收并且持有的x i 的共享/>。由于值x i2 仅仅是与原始值x i 无关的随机值,因此该随机值可以通过数据网络来被传送,并且被群组中的所有方以及敌对者观察而不损害x i 的隐私性。共享分布操作可以通过生成附加的随机值而被扩展到三个或更多方,每个附加方一个附加随机值,并且由第一方从原始值中减去所有随机值以产生针对各方的共享。如上所述,值x不需要被加密以执行共享分布操作,因为其它方中的每一个仅接收随机值,尽管如果x被加密的话,共享分布操作也可以被应用到经加密的值。重共享以及共享分布操作二者产生由多方持有的值的共享。重共享操作另外防止单方具有关于由其它方所持有的共享的信息,而共享分布操作使得持有原始明文值的第一方能够具有关于所有共享的信息,但是其它方不观察第一方的共享。
多方加法使得多方能够将个不同值的不同共享相加以生成总和,并且多方加法还包括减法,这通过对适当的值取负以执行减法。在其中/> = 2的简单示例中,多方加法将两个数的共享加在一起,尽管多方加法也可以将多于两个数的共享相加。项/>相应地表示/>个不同值/>的共享,其在多方加法过程中被相加。在本文档的上下文中,上标记号不指示数学指数。如上所述,每个共享包括元组/>。在多方加法期间,各方基于来自所有共享的x i 项的总和来计算值z i :/>,并且基于来自所有共享的项的总和来计算值/>:/>。这些操作使得多方/>中的每一个能够具有总和值z的共享[z i ]以及MAC值/>的共享/>,其中各方持有元组。如以上所指出的,各方具有总和z的共享[z i ],但是各方不能访问z的实际总和值,这确保甚至在两方加法过程中,给定被加在一起的两个值的总和以及所述两个值之一的明文,一方不能确定由其它方持有的值。
在上述多方加法中,针对每个加法的计算复杂度是针对被加在一起的个共享的,并且计算包括比较简单的加法运算,其不需要使用公共密钥pk来用于另外的加密操作。此外,在共享/>已经被分布到多方之后,不存在针对在多方之间的通信或使用Beaver三元组来为各方计算总和[z i ]的共享的另外需要。
多方乘法使得能够实现具有两个值xy的共享[x]和[y]的多方。不像可以将来自多于两个值的共享加在一起的多方加法,所述多方乘法被应用到确切两个值。多方乘法过程使用已经在下述离线阶段中被共享的Beaver三元组([a],[b],[c])。在多方乘法过程期间,各方使用上述加法过程来加上输入的共享[x]以及经取负的Beaver三元组共享值[a]:/>。类似地,各方使用上述加法过程来加上输入的共享[y]以及经取负的Beaver三元组共享值[b]:/>。各方向所有其它方广播上述两个加法的结果:/>以及/>。如上所述,由于加法同态,结果/>和/>揭露在xa的元组以及yb的元组之间的总差异。在各方生成两个局部值z i 和/>时,多方乘法过程继续使用来自Beaver三元组中的每个共享[c]的c i 值:
多方乘法过程使得各方能够持有原始值xy的乘积(z = xy)的共享[z i ],其中再一次地。如同多方加法过程那样,即使存在参与多方乘法的仅仅两方,并且假定各方能够访问明文输入xy之一,来自乘法过程的共享[z i ]也防止任一方标识由其它方持有的值,因为共享[z i ]不揭露真实的乘积值z。多方乘法过程需要在多方之间的两个通信来产生共享值/>和/>。另外,乘法过程消耗一个Beaver三元组的共享([a],[b],[c]),其中每个Beaver三元组仅仅被使用一次。
具有经改进的效率的用于内积的多方计算的系统
图1描绘了一种系统100,所述系统100包括经由数据网络150而被通信地连接到彼此的多个计算节点104A和104B。在系统100中,节点104A和104B中的每一个是本文中所述的MPC过程中的一方。每个节点是充当在本文中所述的安全多方计算过程中的单方的计算设备,并且术语“节点”在下述实施例中与术语“一方(party)”可互换地使用。图1详细地描绘了节点104A,并且节点104B在具有所存储的数据的不同集合的情况下以类似的方式被配置,以使用本文中所述的实施例来实现安全多方内积计算。虽然图1为了图示目的而描绘了具有两个节点104A-104B的系统,但是本文中所述的实施例也可以由三个或更多节点的群组来执行。
更详细地参考节点104A,所述节点包括处理器108,所述处理器108被操作地连接到网络接口设备112和存储器120。处理器108典型地是具有一个或多个处理核的中央处理单元(CPU),所述一个或多个处理核执行存储器120中存储的程序指令124以实现本文中所述的实施例。然而,处理器108的其它实施例代替于或附加于CPU而使用不同的处理元件,包括图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)以及被配置成执行本文中所述的操作的任何其它数字逻辑设备。在一些实施例中,处理器108实现硬件随机数生成器(RNG)或使用软件随机数生成器或伪随机数生成器(PRNG)来生成随机值。在本文中的描述中,对随机值的生成或随机值的使用的任何提及是指RNG或PRNG的操作,其用于以均匀随机的方式来生成从预定数值范围(例如有限域F P )中选择的值。
网络接口设备112将节点104A连接到诸如局域网(LAN)或广域网(WAN)的数据网络150以用于使能实现在图1的节点104A与节点104B之间的通信,并且连接到附加节点,所述附加节点执行本文中所述的安全多方内积计算过程。网络接口设备112的非限制性实施例包括有线网络设备,诸如以太网适配器;或无线网络设备,诸如无线LAN或无线WAN网络适配器。在系统100中,假定通过网络150进行的所有数据传送都被能记录从节点104A和104B传送的所有数据的第三方敌对者(未在图1中被示出)观察,尽管节点104A和104B可以使用传输层安全性(TLS)经加密和认证的信道或者防止窃听者经由网络150来观察或变更通信的其它等效通信信道来通信。除了在多方内积计算期间防止节点104B标识节点104A的私有明文数据128并且反之亦然之外,本文中所述的实施例防止能够观察在节点104A与104B之间的通信的敌对者确定任何私有数据的值。
存储器120包括一个或多个易失性存储器设备、诸如随机存取存储器(RAM)和非易失性存储器设备、诸如磁盘或固态存储器设备,其存储程序指令124、私有明文数据128、值共享数据132、密码密钥数据163以及内积的经计算的结果140。私有明文数据128包括形成给内积计算的输入的两个向量中的一个向量的全部或一部分。明文数据128中的两个向量在本文中被称为xw。值共享数据132包括每个节点在系统100的操作期间接收的共享,所述共享包括在离线阶段期间被生成的Beaver三元组值的共享以及在内积计算过程期间被交换的值的共享。如上所述,每个共享向每个节点提供每个值的一部分的经加密的版本。密码密钥数据136包括针对节点104A的经加密的MAC密码密钥的共享、公共密钥pk以及与节点104A共享的私有密钥sk i 的共享。内积的经计算的结果140是内积值的多方计算的最终输出。
节点104B包括具有除了以下之外类似的数据结构的存储器:节点104B存储与用于生成内积的第二向量相对应的私有明文数据128的不同集合、秘密值共享132的不同集合以及在密码密钥数据136中的私有密钥和MAC密钥的不同共享。如下所述,节点104A和104B二者计算内积的相同结果140。在图1的说明性实施例中,节点104A存储向量x的所有明文元素,并且节点104B存储向量w的所有明文元素,但是在其它实施例中,针对所述向量中任一个或二者的明文数据被分布到多个节点,以使得更大数目的节点能够执行安全多方内积计算。
具有经改进的效率的用于内积的多方计算的过程
在传统的SPDZ系统中,具有N个元素的两个向量的内积计算需要N个多方乘法结合多方加法。如上所述,每个乘法消耗Beaver三元组。图2描绘了使得能够实现在至少两方的群组之间的安全多方内积计算的过程200,所述至少两方是系统100中的节点,所述过程200将所需要的乘法的数目减小一半(N/2个乘法),这增大了计算内积的效率。在下述示例中,节点104A将具有元素x的第一向量存储在存储器120的私有明文数据128中,而节点104B类似地将具有元素w的第二向量存储作为节点104B的存储器120中的明文数据128。在以下讨论中,对执行功能或动作的过程200的提及是指一个或多个节点中的处理器的用于执行所述功能或动作的操作。为了说明性目的,结合图1的系统100来描述过程200。
过程200在包括离线阶段和在线阶段的SPDZ协议中使用对于本领域而言已知的一些元素,但是过程200包括对SPDZ协议的修改,其减小在离线阶段期间需要被计算的Beaver三元组的所需数目,因为过程200可以于在线阶段中、通过将来自向量wx的两个元素配对在一起而使用较少的多方乘法来计算内积。在数学上,这首先被表述为: ,其中/>使用公知的先外后内(FOIL)操作,并且从总和中减去/>,因为内积运算不将来自单个向量的元素乘在一起,而是代替地仅仅在两个不同向量之间将元素相乘。这留下:/>,其表示内积的每个向量中的两个元素,所述内积从在标准内积计算中通常需要两个多方乘法的单个乘法运算中产生。如本文中所述,节点104A和104B确立以下共享:/>和/>。这些共享使得两个节点104A和104B能够仅仅使用在/>之间的单个多方乘法来计算向量中两个元素的乘积,其中所述节点执行多方加法过程来以安全方式计算针对/>的共享的总和,使得最终结果仅仅是两个共享值的多方乘法,而不是上述多项扩展。所述节点还减去与每个多方乘法相对应的[x 1 x 2 ]和[w 1 ,w 2 ]共享的等同量,以产生正确的内积结果。如下所述,较大的向量被划分成元素对,以使用N/2个乘法来为具有长度N的向量计算内积,而传统的SPDZ过程需要N个乘法。由于每个多方乘法消耗来自离线阶段的Beaver三元组之一,因此减小内积计算中乘法的数目与执行内积计算的标准SPDZ过程相比还减少过程200的计算和通信需要。
过程200如下开始:节点104A和104B执行离线阶段来交换N/2个Beaver三元组的共享([a],[b],[c])以用于多方内积计算,其中两个输入向量xw中的每一个具有N个元素(框204)。Beaver三元组生成过程使得每个节点能够在没有任何节点能够访问a、b或c的实际值的情况下具有Beaver三元组中的值(a, b, c)的共享。在一个实施例中,节点104A和104B中的每一个中的处理器108利用来自有限域F p 的均匀随机分布而生成初始值和/>。每个节点中的处理器108然后对所述初始值进行加密,并且将经加密的值传送到其它节点以在两个节点104a与104B之间公布密文值:/>。每个节点中的处理器108使用经加密的值的同态加法来生成ab值的经加密的总和:/> ,其中在图1的示例中,两个节点104A和104B生成针对ab值中每一个的总共两个密文值/>和/>。多方之一还为MAC密码密钥λ计算密文:/>和/>。为了完成不向任一方揭露ab的实际值的针对共享[a]和[b]的安全共享,两个节点104A和104B针对值/>和/>二者执行重共享操作:和/>,其中为了说明性目的,P 1 对应于节点104A并且P 2 对应于节点104B。
为了在不向任一方揭露abc的实际值的情况下生成Beaver三元组中的c值的共享,其中c = ab,节点104A和104B中每一个中的处理器108首先使用所公布的密文的加法和乘法同态性质来生成c的密文: /> 。节点然后重共享密文ct c :/>ct c 的值可以用于产生共享[c],所述共享[c]不向节点104A或104B中的任一个揭露c,但是在一些实施例中,如果一方操纵Beaver值的共享,则节点104A和104B执行附加的操作来提供附加的防篡改性(tamper resistance)。在该实施例中,节点104A和104B中的每一个中的处理器108使用来自重共享操作的f值来生成针对节点104A中的f 1 值和在节点104B中的f 2 值的新密文/>,其具有新的签名:/> 。节点104A和104B然后重共享新的值/>:/>,使得每个节点都持有c的共享:/>
过程200的Beaver三元组生成和交换过程除了以下之外大体上类似于SPDZ协议的所述过程:SPDZ协议需要生成N个Beaver三元组来执行针对N元素向量的多方内积计算,而过程200仅仅需要生成N/2个Beaver三元组。如上所述,每个Beaver三元组的生成需要四个重共享操作(针对ab中每一个的各一个以及针对c的两个)连同若干加密操作,其相比于标准的乘法/加法运算而言在计算上是昂贵的,并且相比于现有技术SPDZ实现方式,过程200使Beaver三元组的所需数目减小至二分之一。可以在用于执行多方内积计算的过程200的剩余部分开始之前完成过程200的离线阶段,并且每个节点将Beaver三元组的共享存储在值共享数据132中。虽然为了说明性目的而结合两个节点104A和104B描述了过程200和框204的离线阶段,但是相同的过程可应用于使用三个或更多节点的群组的系统。
过程200于在线阶段中如下继续:每个节点生成与明文向量数据中的每个元素相对应的第一多个随机值,并且为每个值生成经加密的签名(框208)。节点104A和104B中每一个中的处理器108生成具有均匀随机分布的第一多个随机值,其中每个值x i2 对应于明文向量x中的元素x i ,其中下标2指示与节点104B相对应的随机值。类似地,节点104B中的处理器108生成与明文向量w中的每个元素w i 相对应的、具有均匀随机分布的随机值/>,其中下标2指示与其它节点104A相对应的随机值。如上所述,随机值x i2 w i2 形成在共享分布过程中被分布的共享。节点104A和104B中每一个中的处理器108对明文值中的每一个进行加密和签名:/> 和/>,以相应地为向量xw中的元素生成两个多数的经加密的签名/>和/>
过程200如下继续:每个节点生成针对单个明文向量中的每对元素的对乘积,生成与所述对乘积相对应的第二随机值,并且为每个对乘积生成经加密的签名(框212)。每个对乘积是通过处理器108对节点104A和104B中每一个的存储器中的明文向量数据128中的两个元素的直接乘法(非多方乘法)的结果。例如,针对节点104A中的向量x的每个对乘积是:,其针对[1,k]范围中的每个j,其中k表示向量中的对的数目。节点104B中的控制器108还针对[1,k]范围中的每个j生成对乘积/>。例如,在四元素向量中,存在以元素索引(1,2)和(3,4)的k=2对,在六元素向量中,存在以元素索引(1,2)、(3,4)、(5,6)的k = 3对等等,其中控制器108将每对中的两个元素相乘以产生每个对乘积。为了解释的目的而在本文中所述的实施例中将所述对描述为相邻的元素,但是来自单个向量的任何两个元素、包括非相邻元素可以在一对中被使用,只要每个元素在确切一对中被使用,并且过程200中的所有节点以一致的方式从两个向量选择对,使得来自两个向量的恰当元素在多方内积计算过程期间被乘在一起。上划线记号指示对乘积值或与对乘积有关的另一值。
节点104A和104B中每一个中的处理器108为对乘积值中的每一个进行加密,并且为对乘积值进行签名来为每个对乘积的密文生成经加密的签名:。节点104A和104B中的每一个中的处理器108还生成具有均匀随机分布的第二多个随机值/>,其中每个值/>对应于对乘积/>,并且节点104B中的处理器108生成与每个对乘积/>相对应的随机值/> 。因而,所述第二多个随机值/>或/>包括与每个向量中的元素对数目相对应的k个随机值,而上述第一多个随机值x i2 w i2 具有与向量xw中的每个单独元素相对应的N个随机值(其中N = 2k)。所述第二多个随机值/>或/>形成对乘积的共享,所述对乘积的共享被分布到其它节点(例如从节点104A到节点104B或从节点104B到节点104A),以分布对乘积的共享。
过程200如下继续:节点104A和104B中的每一个中的处理器108和网络接口设备112执行共享分布操作以分布所有单独的向量元素值和对乘积值的共享,并且执行重共享操作以产生单独的向量元素值和对乘积值的经加密的签名的共享(框216)。在节点104A中,处理器108使用网络接口设备112来将与单独的向量元素相对应的第一多个随机值(针对节点104A的x i2 )以及与对乘积相对应的第二多个随机值(针对节点104A的)传送到节点104B,所述节点104B接收随机值并且使用所述随机值作为第一向量中的元素的共享以及针对第一向量的对乘积的共享。如上所述,这些随机值形成针对节点104B的向量元素以及对乘积的共享,而节点104A中的处理器108使用在实际值与随机值之间的差异作为共享(例如 和/>)。类似地,节点104B中的处理器108使用网络设备来将针对向量w中的元素的第一多个随机值(针对节点104B的w i2 )以及针对于对乘积的第二多个值(针对节点104B的/>)传送到第一节点104A,所述第一节点104A接收随机值并且使用所述随机值作为第二向量中的元素的共享以及针对第二向量的对乘积的共享。节点104B中的处理器108还基于差异值/>和/>来生成向量元素以及对乘积的共享。节点104A和104B中的每一个中的处理器108还执行重共享操作以重共享针对单独向量元素值的经加密的签名/>以及针对于对乘积值的经加密的签名的共享
为了说明性目的而以特定的次序描述了框208-216的处理,但是第一和第二多个随机值的生成、向量元素和对乘积的加密以及共享分布和重共享操作的特定次序可以用与上述内容不同的次序发生。
过程200如下继续:在节点104A和104B二者中的控制器108执行与来自两个向量的每个元素对中的元素相对应的交替共享的多方加法,用于为两个向量中的每对元素生成第一和第二总和共享(框220)。更详细地,两个节点104A和104B使用单独元素的交替共享[x i ]和[w i ]来二者执行针对两个向量中的每对元素的多方加法,用于将来自向量x的第一共享加到来自每对中的向量w的第二共享,并且用于将来自向量w的第一共享加到来自每对中的向量x的第二共享。给定,每对元素中的第一总和共享对应于针对每对元素j的元素的交替共享/>,所述每对元素j在具有总共k对元素的向量中的[1,k]范围中。针对交替共享的第一多个总和共享的示例是/>,其用于具有k = 3对元素的向量的每对元素的多方加法。第二多个总和共享对应于由项所述的每对中的元素的交替共享的多方加法总和,其中多方加法用于具有k= 3对元素的向量的每对元素的交替共享的/>
过程200如下继续:在节点104A和104B二者中的控制器108执行来自向量中的每对元素的第一和第二总和共享的N/2个多方乘法,以生成内积对共享(框224)。“内积对共享”是指从来自每对元素的第一和第二总和共享的多方乘法而来的乘积的共享。例如,针对两个向量中的第一对元素的总和共享的内积对共享([d])是: ,其中节点104A和104B已经使用以上在框220的处理中所描述的多方加法而计算了总和共享。两个节点生成[d j ]内积对共享,所述[d j ]内积对共享对应于两个向量的总共k个元素对的[1,k]中的每对j/>。如上所述,每个多方乘法消耗已经在离线阶段中在节点104A与104B之间被共享的Beaver三元组之一。
过程200如下继续:节点104A和104B二者中的控制器108执行多方加法,所述多方加法将所有内积对共享[d j ]加在一起,并且从内积对共享的总和中减去所有的对乘积值和/>,以生成最终内积值的共享(框228)。最终内积值的共享是以下多方加法的输出:。所有对乘积共享值的减法包括执行多方加法,其中具有来自第一和第二向量二者的经取负的对乘积共享,以产生正确的内积值,因为如上所述,元素的两个交替共享——其包括来自一对中的第一和第二向量中每一个的一个元素的共享——的总和的标准和多方乘法运算:/>产生不想要的项/>和/>,其是针对每对共享的对乘积项,但不是内积计算的部分。因而,减去针对两个向量中的每对元素的对乘积共享值产生了正确的内积结果。
在执行了过程200之后,节点104A和104B中的每一个具有内积值的共享,节点104A和104B中每一个中的存储器120将所述内积值的共享存储作为内积结果的共享140。内积结果的共享140不向任一节点104A和104B揭露全内积结果,这尤其在两个向量xw之一用于较大数目的计算而不改变向量中的任何值时的实例中保持明文数据128的隐私性。例如,在所训练的神经网络中的权重向量w对于大量计算而言通常保持恒定,并且如果另一方可获得对于大量输入x的访问并且观察对应的内积输出,那么在给定合理大量观察的情况下该方可推导权重向量w的单独元素。因而,过程200防止节点104A和104B能够完全地访问最终内积值,以保护向量xw的隐私性。内积值的共享可以被传送到不是群组部分的另一计算设备,所述另一计算设备将共享加在一起以获得内积计算的实际结果,或者内积计算的共享可以被用作对于通过节点104A和104B的附加多方操作的输入。
在上述示例中,过程200针对两个向量执行多方内积计算,所述两个向量为了说明性目的而具有偶数个元素。过程200可以被修改用于也适应具有奇数个元素的向量。例如,两个或更多节点可以执行过程200,以通过如下来生成具有总共九(9)个元素的两个向量的内积:执行过程200来为两个向量中的前八个元素生成内积值的共享140。然后,节点可以执行常规的SPDZ过程以利用单个操作将最终元素乘在一起,并且执行附加的多方加法以将最终元素对的乘积加到来自先前八个元素的内积的共享,从而生成最终内积。该过程仍产生性能中的改进,因为代替于标准的九个多方乘法,多方内积过程仅仅需要五个乘法(个多方乘法,其中N=9)。
本文中所述的系统100和过程200提供对于实现多方内积计算的计算机化系统的操作的改进,而同时保持隐私性并且改进多方内积计算的计算效率。如上所述,相比于现有技术SPZ内积计算,过程200需要仅一半的多方乘法来计算内积,并且因此相比于现有技术SPDZ内积计算,在过程200的离线阶段期间仅仅需要生成一半的Beaver三元组共享。下表图示了在现有技术SPDZ内积计算相比于过程200中所执行的操作的总数目:
针对具有长度N的向量 SPDZ(现有技术) 过程200
于在线阶段中被重共享的经加密的签名值的# 2N 3N
共享分布操作的# 2N 3N
多方乘法的# N N/2
将被生成并且被消耗的Beaver三元组的# N N/2
多方加法的# 1 N/2 +1
相比于现有技术SPDZ内积计算,过程200需要使用重共享操作来共享更大数目的经加密的签名值,并且需要更多的多方加法来执行多方内积计算过程。然而,如上所述,多方加法既在计算上是高效的,并且也不需要多方之间的通信,因此,与由在必须被计算的Beaver三元组的数目与多方乘法的数目二者——这二者都需要在参与节点之间的通信——中的减小所引起的对性能的正面影响相比,额外的多方加法对性能具有小得多的负面影响。此外,由于每个Beaver三元组计算操作都需要四个重共享操作,因此即使过程200需要于在线阶段中执行3N个重共享、而不是现有技术SPDZ过程的2N个重共享,过程200中的重共享操作的总数目也低于现有技术SPDZ内积计算过程(3N个重共享 + 4 * N/2个重共享< 2N个重共享 + 4 * N个重共享 → 5N个重共享 < 6N个重共享)。过程200中的共享分布操作的数目也高于传统SPDZ操作中的所述数目,但是如上所述,每个共享分布操作仅仅需要一个节点来生成并且传送与非多方减法运算相组合的一个或多个随机值,这与多方乘法以及Beaver三元组计算相比是简单得多的计算过程,因此来自附加共享分布操作的开销小于在由过程200提供的效率中的其它增益。
虽然未在本文中被更详细地描述,但是在过程200期间生成的经加密的签名值使得节点104A和104B能够验证共享值在过程200期间尚未被变更,这将产生不正确的结果。过程200的经简化的实施例假定节点104A和104B不变更共享数据,这被称为“半诚实”系统,因为假定节点104A和104B尝试损害私有数据的隐私性,但是假定节点104A和104B不变更在过程200期间接收的任何共享数据。在半诚实实施例中,经加密的签名值可以被省略,并且在过程200期间这些值不需要被计算或在节点104A与104B之间被重共享,这在其中信任节点不变更共享数据的情形中降低了过程200的计算复杂度。
虽然使用两个节点104A和104B来执行上述过程200的实施例,但是可以通过三个或更多节点的较大群组来执行过程200。特别地,过程200可以并入第三节点,所述第三节点存储在节点104A的存储器120中所持有的向量x或在节点104B的存储器120中所存储的向量w的一部分,以通过将明文向量数据分布到维护所存储的数据的隐私性的较大数目的节点,从而提供附加的隐私性。甚至更大数目的节点可以执行过程200并且进一步划分向量数据的存储以用于向量xw中的任一个或二者。通常,每个节点存储针对至少两个值(至少一对值)的明文数据,所述至少两个值(至少一对值)来自作为对于多方内积计算过程的输入而被提供的两个向量xw中之一。如上所述,在重共享过程期间,参与过程200的所有节点都接收来自向量xw二者的每个元素和每个对乘积的共享,即使节点仅仅存储针对来自一个向量的较小数目的元素的明文值。较大群组中的每个节点也参与如上所述的过程200的多方计算。
将领会的是,上述以及其它的特征和功能的变体或者其可替换方案可以合期望地被组合到许多其它不同的系统、应用或方法中。各种目前未预见或未预料到的可替换方案、修改、变型或改进可以随后由本领域技术人员做出,其也意图在本文中被涵盖在以下权利要求书中。

Claims (15)

1.一种用于内积的安全多方计算的方法,包括:
利用第一节点中的处理器来执行多个多方加法,每个多方加法在来自第一向量和第二向量中的对应元素对的元素的交替共享之间生成第一总和共享与第二总和共享;
利用所述第一节点中的所述处理器和网络接口设备来执行与至少一个其它节点的多个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及
利用所述第一节点中的处理器来执行来自所述多个多方乘法的每个内积对共享与同所述第一向量中的元素对相对应的对乘积的第一多个经取负的共享以及同所述第二向量中的元素对相对应的对乘积的第二多个经取负的共享的另一多方加法,以生成所述第一向量与第二向量的内积的共享。
2.根据权利要求1所述的方法,其中所述第一向量和第二向量各自具有第一数目的元素,并且由所述第一节点中的所述处理器和网络接口所执行的多方乘法的数目是所述第一数目的一半。
3.根据权利要求1所述的方法,此外包括:
利用所述第一节点中的处理器和网络接口设备来在执行所述多个多方乘法之前生成多个Beaver三元组,每个Beaver三元组包括在所述第一节点与所述至少一个其它节点之间重共享的三个值的共享,在所述多个多方乘法中的每个多方乘法消耗所述多个Beaver三元组中的一个Beaver三元组的所述三个值的共享。
4.根据权利要求1所述的方法,此外包括:
利用所述第一节点中的处理器、通过在所述第一节点中的存储器中被存储的所述第一向量中的元素对的乘法来生成第一多个对乘积;
利用所述第一节点中的处理器、使用公共密钥来对所述第一多个对乘积中的每个对乘积进行加密,以生成第一多个经加密的对乘积;
利用所述第一节点中的处理器、使用经加密的消息认证码(MAC)密钥来为所述第一多个经加密的对乘积生成第一多个经加密的签名;以及
利用所述第一节点中的处理器和网络接口设备来执行多个重共享操作,以在所述第一节点与所述至少一个其它节点之间分布每个经加密的签名的共享。
5.根据权利要求1所述的方法,其中所述至少一个其它节点包括多个其它节点。
6.一种用于内积的安全多方计算的方法,包括:
利用第一节点中的处理器和网络接口设备来执行第一多个共享分布操作,以在所述第一节点与至少一个其它节点之间分布第一多个共享,所述第一多个共享与在所述第一节点的存储器中被存储的第一向量中的多个元素相对应;
利用所述第一节点中的处理器、基于所述第一向量中的所述第一多个元素中的至少一对元素的乘法来生成至少一个第一对乘积;
利用所述第一节点中的所述处理器和网络接口设备来执行至少一个共享分布操作,以在所述第一节点与所述至少一个其它节点之间分布所述至少一个第一对乘积的共享;
利用所述第一节点中的所述处理器和网络接口设备来从所述至少一个其它节点接收第二多个共享,所述第二多个共享对应于第二向量中的多个元素;
利用所述第一节点中的所述处理器和网络接口设备来从所述至少一个其它节点接收至少一个第二对乘积共享,所述至少一个第二对乘积共享对应于所述第二向量中的两个元素的至少一个对乘积;
利用所述第一节点中的所述处理器来执行多个多方加法,每个多方加法在来自第一向量和第二向量中的对应元素对的元素的交替共享之间生成第一总和共享与第二总和共享;
利用所述第一节点中的所述处理器和网络接口设备来执行与所述至少一个其它节点的至少一个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及
利用所述第一节点中的所述处理器来执行来自所述至少一个多方乘法的每个内积对共享与所述至少一个第一对乘积共享的取负以及所述至少一个第二对乘积共享的取负的另一多方加法,以生成所述第一向量与第二向量的内积的共享。
7.根据权利要求6所述的方法,其中所述第一向量和第二向量各自具有第一数目的元素,并且由所述第一节点中的所述处理器和网络接口所执行的多方乘法的数目是所述第一数目的一半。
8.根据权利要求6所述的方法,此外包括:
利用所述第一节点中的所述处理器和网络接口设备来在执行所述至少一个多方乘法之前生成至少一个Beaver三元组,所述至少一个Beaver三元组包括在所述第一节点与所述至少一个其它节点之间重共享的三个值的共享,在所述至少一个多方乘法中的每个多方乘法消耗一个Beaver三元组的所述三个值的共享。
9.根据权利要求6所述的方法,此外包括:
利用所述第一节点中的处理器、通过在所述第一节点中的存储器中被存储的所述第一向量中的元素对的乘法来生成第一多个对乘积;
利用所述第一节点中的处理器、使用公共密钥来对所述第一多个对乘积中的每个对乘积进行加密,以生成第一多个经加密的对乘积;
利用所述第一节点中的处理器、使用经加密的消息认证码(MAC)密钥来为所述第一多个经加密的对乘积生成第一多个经加密的签名;以及
利用所述第一节点中的处理器和网络接口设备来执行多个重共享操作,以在所述第一节点与所述至少一个其它节点之间分布每个经加密的签名的共享。
10.根据权利要求6所述的方法,其中所述至少一个其它节点包括多个其它节点。
11.一种被配置成执行内积的安全多方计算的节点,包括:
被配置成与至少一个其它节点通信的网络接口设备;
存储器,所述存储器被配置成存储:
与第一向量中的多个元素相对应的第一多个共享;
与第二向量中的多个元素相对应的第二多个共享;
与所述第一向量中的元素对相对应的对乘积的第一多个经取负的共享;以及
与所述第二向量中的元素对相对应的对乘积的第二多个经取负的共享;以及
被操作地连接到网络接口设备和存储器的处理器,所述处理器被配置成:
执行多个多方加法,每个多方加法在来自所述第一向量和第二向量的元素的两个交替共享之间生成第一总和共享与第二总和共享,所述两个交替共享包括所述第一多个共享中的一个共享以及所述第二多个共享中的另一共享;
使用所述网络接口设备来执行与至少一个其它节点的多个多方乘法,每个多方乘法生成内积对共享,所述内积对共享与同所述第一向量和第二向量中的每个元素对相对应的所述第一总和共享与第二总和共享的乘积相对应;以及
执行来自所述多个多方乘法的每个内积对共享与被存储在所述存储器中的对乘积的所述第一多个经取负的共享以及被存储在所述存储器中的对乘积的所述第二多个经取负的共享的另一多方加法,以生成所述第一向量与第二向量的内积的共享。
12.根据权利要求11所述的节点,其中所述第一向量和第二向量各自具有第一数目的元素,并且由所述节点中的所述处理器和网络接口所执行的多方乘法的数目是所述第一数目的一半。
13.根据权利要求11所述的节点,所述处理器此外被配置成:
在执行所述多个多方乘法之前生成多个Beaver三元组,每个Beaver三元组包括通过使用所述网络接口设备而在所述节点与所述至少一个其它节点之间重共享的三个值的共享,在所述多个多方乘法中的每个多方乘法消耗所述多个Beaver三元组中的一个Beaver三元组的所述三个值的共享。
14.根据权利要求11所述的节点,所述处理器此外被配置成:
通过所述第一向量中的元素对的乘法来生成第一多个对乘积,所述第一向量被存储在所述存储器中;
使用公共密钥来对所述第一多个对乘积中的每个对乘积进行加密,以生成第一多个经加密的对乘积;
使用经加密的消息认证码(MAC)密钥来为所述第一多个经加密的对乘积生成第一多个经加密的签名;以及
使用所述网络接口设备来执行多个重共享操作,以在所述第一节点与所述至少一个其它节点之间分布每个经加密的签名的共享。
15.根据权利要求11所述的节点,其中所述至少一个其它节点包括多个其它节点。
CN201880063080.1A 2017-09-29 2018-09-25 用于利用spdz的更快速的安全多方内积计算的方法 Active CN111133719B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762565729P 2017-09-29 2017-09-29
US62/565729 2017-09-29
PCT/EP2018/075857 WO2019063503A1 (en) 2017-09-29 2018-09-25 METHOD FOR CALCULATING FASTER SECURED MULTIPARTITE INTERNAL PRODUCT USING SPDZ

Publications (2)

Publication Number Publication Date
CN111133719A CN111133719A (zh) 2020-05-08
CN111133719B true CN111133719B (zh) 2024-01-26

Family

ID=63798943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880063080.1A Active CN111133719B (zh) 2017-09-29 2018-09-25 用于利用spdz的更快速的安全多方内积计算的方法

Country Status (4)

Country Link
US (1) US11323444B2 (zh)
EP (1) EP3688921B1 (zh)
CN (1) CN111133719B (zh)
WO (1) WO2019063503A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3573041A4 (en) * 2017-01-18 2020-06-03 Nippon Telegraph And Telephone Corporation METHOD FOR SAFE CALCULATION, SYSTEM FOR SAFE CALCULATION, DEVICE FOR SAFE CALCULATION AND PROGRAM
US11222138B2 (en) * 2018-05-29 2022-01-11 Visa International Service Association Privacy-preserving machine learning in the three-server model
CN109255247B (zh) * 2018-08-14 2020-08-14 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109359470B (zh) * 2018-08-14 2020-09-01 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CA3160049A1 (en) * 2019-12-09 2021-06-17 Charles H. HERDER III Privacy-preserving biometric authentication
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US11973743B2 (en) 2019-12-13 2024-04-30 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US12026219B2 (en) 2019-12-13 2024-07-02 TripleBlind, Inc. Systems and methods for efficient computations on split data and split algorithms
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
CN111832074B (zh) * 2020-07-14 2023-04-07 西安电子科技大学 基于spdz安全多方计算的安全验证协作学习方法及系统
WO2022109215A1 (en) 2020-11-20 2022-05-27 TripleBlind, Inc. Systems and methods for providing a blind de-identification of privacy data
CN112464155B (zh) * 2020-12-01 2024-01-26 华控清交信息科技(北京)有限公司 一种数据处理方法、多方安全计算系统和电子设备
IL280056A (en) * 2021-01-10 2022-08-01 Google Llc Using secure mpc and vector computations to protect access to information in content distribution
US11799643B2 (en) * 2021-01-19 2023-10-24 Bank Of America Corporation Collaborative architecture for secure data sharing
IL281328A (en) 2021-03-08 2022-10-01 Google Llc Flexible content selection processes through multi-sided secure calculation
WO2022216293A1 (en) * 2021-04-09 2022-10-13 Google Llc Processing of machine learning modeling data to improve accuracy of categorization
CN112769542B (zh) * 2021-04-12 2021-06-11 富算科技(上海)有限公司 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质
US11625377B1 (en) * 2022-02-03 2023-04-11 TripleBlind, Inc. Systems and methods for enabling two parties to find an intersection between private data sets without learning anything other than the intersection of the datasets
CN115603910A (zh) * 2022-10-19 2023-01-13 蚂蚁区块链科技(上海)有限公司(Cn) 一种多方安全向量按位相乘计算方法和系统
CN116127489B (zh) * 2023-02-03 2023-06-27 蓝象智联(杭州)科技有限公司 一种用于安全多方计算的数据点乘运算方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014206696A (ja) * 2013-04-15 2014-10-30 株式会社インテック データ秘匿型内積計算システム、方法、及びプログラム
US9449177B1 (en) * 2013-03-13 2016-09-20 Hrl Laboratories, Llc General protocol for proactively secure computation
WO2016159357A1 (ja) * 2015-04-03 2016-10-06 日本電気株式会社 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム
WO2017033442A1 (ja) * 2015-08-26 2017-03-02 日本電気株式会社 情報処理装置、認証システム、認証方法、並びにコンピュータ・プログラムを記録する記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526084B2 (en) * 2005-09-02 2009-04-28 Mitsubishi Electric Research Laboratories, Inc. Secure classifying of data with Gaussian distributions
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation
US9077539B2 (en) * 2011-03-09 2015-07-07 Microsoft Technology Licensing, Llc Server-aided multi-party protocols
JP6016948B2 (ja) * 2013-01-17 2016-10-26 日本電信電話株式会社 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
WO2017099117A1 (ja) * 2015-12-10 2017-06-15 日本電気株式会社 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法
KR102667837B1 (ko) * 2017-08-30 2024-05-21 인퍼, 인코포레이티드 고정밀 프라이버시 보호 실가 함수 평가

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449177B1 (en) * 2013-03-13 2016-09-20 Hrl Laboratories, Llc General protocol for proactively secure computation
JP2014206696A (ja) * 2013-04-15 2014-10-30 株式会社インテック データ秘匿型内積計算システム、方法、及びプログラム
WO2016159357A1 (ja) * 2015-04-03 2016-10-06 日本電気株式会社 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム
WO2017033442A1 (ja) * 2015-08-26 2017-03-02 日本電気株式会社 情報処理装置、認証システム、認証方法、並びにコンピュータ・プログラムを記録する記録媒体

Also Published As

Publication number Publication date
EP3688921B1 (en) 2021-07-14
WO2019063503A1 (en) 2019-04-04
EP3688921A1 (en) 2020-08-05
CN111133719A (zh) 2020-05-08
US11323444B2 (en) 2022-05-03
US20200186528A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
CN111133719B (zh) 用于利用spdz的更快速的安全多方内积计算的方法
CN111512589B (zh) 用于利用spdz的快速安全多方内积的方法
US11201734B2 (en) Method and system for fault tolerant and secure multiparty computation with SPDZ
Eltayieb et al. A blockchain-based attribute-based signcryption scheme to secure data sharing in the cloud
Chen et al. When homomorphic encryption marries secret sharing: Secure large-scale sparse logistic regression and applications in risk control
CN114586313B (zh) 用于签署一信息的系统及方法
JP2022183325A (ja) ウォレット管理システムと併せたブロックチェーンベースのシステムのための暗号鍵のセキュアなマルチパーティ損失耐性のある記憶及び転送
CN113424185A (zh) 快速不经意传输
CN112906030B (zh) 基于多方全同态加密的数据共享方法和系统
WO2020186156A1 (en) Method and apparatus for effecting a data-based activity
EP3509246B1 (en) Key exchange method and key exchange system
US10630476B1 (en) Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems
CN110599164B (zh) 一种可监管的链下任意收款方快速支付方法
US11637817B2 (en) Method and apparatus for effecting a data-based activity
CN115004627A (zh) 分布式对称加密
Liu et al. Secure quantum private comparison of equality based on asymmetric W state
Yang et al. Collusion-resistant privacy-preserving data mining
CN114614970A (zh) 一种基于多计算方和同态加密的隐私数据安全处理方法
CN108989037A (zh) 一种多授权属性基加密方法、系统、设备及计算机介质
US10356056B2 (en) Method and system for privacy-preserving order statistics in a star network
Hsu et al. Construction of lightweight authenticated joint arithmetic computation for 5G IoT networks
Tan et al. Distributed secret sharing scheme based on personalized spherical coordinates space
Pathak et al. Efficient Protocols for Principal Eigenvector Computation over Private Data.
Yajam et al. Improvement on bitcoin’s verifiable public randomness with semi-trusted delegates
Aloui et al. Protocol for preserving privacy in distributed system (PPDS)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant