用于利用SPDZ的快速安全多方内积的方法与流程

文档序号:21789796发布日期:2020-08-07 20:43阅读:765来源:国知局
用于利用SPDZ的快速安全多方内积的方法与流程

相关申请的交叉引用

本申请要求zheng等人于2017年12月14日提交的题为“methodforfastersecuremultipartyinnerproductwithspdz”的美国临时申请序列号62/598,666的优先权,特此将该美国临时申请的公开内容通过引用在其整体上并入本文中。

本公开总地涉及多方计算(mpc)协议,并且特别地涉及spdz(发音为“speedz”)mpc协议。



背景技术:

在安全多方计算(mpc)协议中,多个当事方关于其私有输入联合计算函数并且仅学习函数的输出。spdz协议是最实用和活跃的安全mpc协议之一,并且实现针对任何数量的恶意受损方的安全性。具体来说,spdz协议正在预处理模型中工作:在不知道任何未来输入的情况下,离线阶段执行耗时的任务来生成元组;并且在线阶段利用私有输入以及运用来自离线阶段的那些元组来执行特定函数。特别地,spdz是允许运算电路的联合计算的通用mpc协议。

安全内积是隐私保护数据挖掘中广泛使用的构造块。如本领域公知的,内积运算(也称为“点积”)将来自两个向量的对应元素对乘在一起以产生个体乘积,并且将所有乘积求和以产生最终的标量总和值。例如,如果w=(1,2,3)并且x=(4,5,6),那么内积是:。内积运算用于宽范围的实际计算中,并且举一个非限制性的示例,神经网络大量使用内积运算,其中向量w表示在神经网络中使用的权重向量,并且向量x表示输入值,其中神经元运算的部分是为了生成每个权重乘以对应输入值的总和,其是上述内积运算。spdz协议使得各自具有对仅输入数据的部分的访问的两个或更多个当事方使用安全多方计算来生成内积值。例如,在一种配置中,一个计算设备具有对神经网络中的权重向量w的访问,并且另一个计算设备具有对输入向量x的访问,该输入向量x可以包含关于输入图像或隐私敏感的其他输入数据的信息。spdz协议使得能够计算内积的最终输出,而不向存储权重值w的当事方透露输入向量x并且不向存储输入向量x的当事方透露权重值w。spdz协议在至少两个当事方的群组之间使能实现该运算,尽管在一些配置中,向量wx在更大的当事方群组间被进一步细分。虽然本文中没有更详细地描述,但是spdz协议还为群组中的当事方提供了用以确定当事方的子集是否已经操纵了共享数据来生成不正确的最终结果的某种能力,这为群组提供了用以确定最终的计算结果是否已经被准确地计算或者应当被丢弃的某种能力。

对于两个n维向量,它们的内积是总和。利用spdz对安全内积的直接实现牵涉到在线阶段中的n个逐对乘法、继之以n–1个加法。找到用于降低针对安全内积的计算要求的方式可以改进针对spdz的在线阶段和离线阶段二者的性能。

附图说明

图1描绘了spdz协议的步骤,其中是公共已知的,并且n个当事方。

图2描绘了spdz协议的步骤,其中是共享值)。

图3描绘了spdz协议的步骤,其中[x]是值x的共享物,并且[y]是值y的共享物。

图4是被配置成用改进的效率执行内积的安全多方计算的系统的示意图。

图5描绘了根据本公开的用于容错spdz的协议reshare的算法。

图6描绘了用于容错spdz的协议recombine的算法。

图7描绘了在一当事方将其持有的秘密共享物重新分配给其他当事方之后的中间结果的表格。

图8描绘了示出在每个当事方将其秘密共享物重新分配给其他当事方之后的最终结果的表格。

图9描绘了示出在执行协议reshare之后的最终结果的表格。

图10描绘了用于基于协议reshare的秘密共享物重新分配阶段的算法。

图11描绘了用于基于协议recombine的秘密共享物重新分配阶段的算法。

图12示意性地示出了spdz协议架构对比所提出的容错spdz协议架构。

图13描绘了示出spdz协议和所提出的容错spdz协议的比较的表格。

具体实施方式

为了促进对本公开原理的理解的目的,现在将参考附图中图示的和以下书面说明书中描述的实施例。理解到,不意图借此对本公开范围的任何限制。进一步理解到,本公开包括对所图示实施例的任何更改和修改,并且包括如本公开所属领域的普通技术人员通常将想到的本公开原理的另外应用。

本公开针对一种用于利用spdz计算多方内积的高效方法。以在当事方间共享附加的预计算数据为代价,根据本公开的方案能够针对spdz协议的在线阶段将乘法以及所需要的beaver三元组的数量减少一半,从而在利用spdz计算多方内积时显著改进在线阶段和离线阶段二者的性能。

如本文中所使用的,术语“beaver三元组”指代三个值的集合(abc),其中ab是随机均匀选择的,并且c等于a乘以b的乘积:c=ab。beaver三元组中的所有三个数字是有限域fp的成员,其中p是模数值。在其中的一些说明性实施例中,有限域fp包括范围中的所有整数,其中n是64、80或128,虽然也可以使用其他的有限域。如下面进一步详细描述的,在修改的spdz协议中,当事方在离线计算阶段期间生成beaver三元组,并且以安全的方式分配beaver三元组的共享物以供稍后作为在线计算阶段的部分用于内积的多方计算。

如本文中所使用的,术语“同态”和“同形”指代一些密码系统的属性,在所述密码系统中,数学运算可以应用于加密值以产生与对明文值执行相同运算的结果相匹配的加密结果,而不将加密值或结果的内容透露给执行运算的计算设备。例如,给定两个值a=1和b=2及其对应的加密配对部a'b',在提供加性同态的密码系统中,加密值c'=a'+b'存储数字“3”的加密表示(1+2=3)。值c'可以由不能确定a'b'的明文值的计算机来计算,并且在一些实例中,产生c'的计算机可以在没有用于确定ab的原始明文值的能力的情况下解密c'以检索明文总和(3)。减性同态类似地应用于将两个加密值相减的运算(例如,a=2,b=1,c'=a'b',解密(c')=1),并且在本文中描述的实施例中,减性同态也等效于加性同态,在所述加性同态中,一个或多个所选值被取负以执行等效于减法的加法运算。类似地,对于提供乘性同态的密码系统,两个加密值(a'b')的乘积是解密成与两个明文值(ab)的乘积相同的值的另一个加密值(c')(例如a=2,b=3,c'=(a'b'),解密(c')=6)。在本文中描述的实施例中,符号指代在提供加性同态的密码系统中的两个加密值之间的加法,指代在提供减性同态的密码系统中的两个加密值之间的减法运算,其中减法可以被认为是取负值的加法,并且符号类似地指代在提供乘性同态的密码系统中的两个加密值之间的乘法。

如本文中所使用的,项λ指代选自有限域的消息认证码(mac)密码密钥。向执行内积运算的每个当事方pi)提供总体秘密λ的个体共享物,其中λ是所有个体秘密的总和。没有任何当事方具有对完整的mac密码密钥λ的访问。mac密码密钥λ可以经由乘法生成与针对值x的消息认证码相对应的加密mac值λx,并且如下面所描述的,mac密钥λ本身可以使用公钥被加密以生成可以在多个当事方间共享的mac密钥的加密密文。在多方计算操作期间,加密的mac值用于对从其他当事方接收的信息的验证,并且提供针对更改共享数据的恶意当事方的抵抗。本文中描述的一些实施例可以省略mac密钥λ在多方计算系统的配置中的使用,该多方计算系统在多方计算期间保护原始输入数据的隐私但是信任参与者提供准确的数据输出。

如本文中所使用的,项ε=(encdec)指代至少提供具有阈值解密的加性/减性和乘性同态的非对称公钥加密系统。项sk指代ε中用于利用dec函数的密文解密的私钥,并且项pk指代ε中用于明文加密以使用enc函数产生密文的公钥。执行多方内积计算的每个当事方pi)具有对私钥ski的部分和完整公钥pk的访问,其中,其中没有任何当事方具有对完整私钥sk的访问。

如本文中所使用的,针对值的符号[](例如[x])指示该值的“共享物”或者其中多个当事方各自持有总体值x的共享物[x],但是具有对共享物[x]的访问并不透露x的实际值。在下面描述的实施例中,值x是加密的密文值,并且本文中使用的密码系统的加性同形属性使得总体值x能够被划分成具有x的总体值的个体共享物。在来自具有多个元素的两个向量的内积计算中,向量的每个元素表示以安全方式在两个或更多个节点间共享的值。在数学上,对于总共n个当事方pi)的,其中每个共享物[xi]是总体[x]的部分,其中,针对每个当事方的项是值hx的另一个个体共享物,所述值hx是密码密钥λ乘以值x的输出(hx=λx),并且给定个体共享物,总计为。每个当事方将共享值[x]存储为元组中的一个,并且不直接将该元组透露给群组中的其他当事方。

spdz协议使用两阶段方案,其包括多个当事方用于与彼此安全交换被称为beaver三元组的随机生成的数字的计算的“离线”阶段。beaver三元组不是对节点感兴趣的实际数据,而是在后续在线阶段中用于使能实现共享结果的计算同时防止每个当事方标识来自一个或多个附加当事方的私有数据。离线阶段引入计算以计算和共享包括加密操作的beaver三元组,并且一般被认为是spdz协议在计算上更密集的阶段。在第二“在线”阶段中,当事方使用beaver三元组和感兴趣的实际数据来执行安全多方计算,该安全多方计算包括上面描述的内积计算。虽然spdz协议在执行内积计算时是有效的,但由于spdz针对多方乘法而实现的基础操作,在在线阶段期间在内积计算中发生的大量乘法运算引入了附加的通信操作——每个通信操作要求beaver三元组的使用——并且在当事方之间产生计算开销。

在离线阶段和在线阶段之前,必须生成密码密钥,包括生成公共密码参数、公钥、私钥共享物(由每个当事方拥有)和mac密钥共享物(由每个当事方拥有)。特别地,每个当事方接收n个mac密钥共享物中的一个,其中n是当事方的总数。假设λ是mac密钥并且是秘密(mac)共享物,那么当事方pi)拥有秘密共享物λi。应指出,除非需要更新mac密钥,否则该步骤仅执行一次。

在spdz协议的离线阶段期间,生成将允许当事方计算乘积的足够数量的乘法三元组,特别是beaver乘法三元组。beaver乘法三元组由三个值([a],[b],[c])组成,其分别是abc的共享物,其中是随机值且c=ab。这些值可以由密码提供者生成,并且于在线阶段之前将所得到的共享物分配给当事方。

给定针对某值s的密文,spdz协议share可以安全地分配s的秘密共享物,如图1中所示。协议,其中是公共已知的并且n个当事方。参考图1,每个当事方随机均匀生成一值,值,并且将其加密成密文(块100)。然后所有当事方广播其密文使得每个当事方可以计算密文(块102)。然后所有当事方利用其自己的私钥sk的秘密共享物协作地解密并且获得s+f,其中(块104)。当事方p1将s的秘密共享物设置为并且当事方pis的秘密共享物设置为(块106)。

利用协议share,令为mac密钥λ的密文,然后执行生成三元组([a],[b],[c])的过程。可以使用以下步骤生成[a]:

●当事方pi随机均匀选择值,并且将其加密成

●一个所选当事方计算以及

●所有当事方一起执行,使得当事方pi)持有λa的秘密共享物。因此,当事方i持有,其中并且

重复用于生成[a]的相同步骤以生成[b]。生成值[c]使得c=ab。给定来自步骤1和步骤2的,令。执行协议,使得当事方i持有c的秘密共享物。给定,当对执行协议share时,可以计算新的密文以及,其中是通过加密的新密文。所有当事方一起执行,使得当事方pi)持有λc的秘密共享物。最终,当事方i持有,使得并且

如本领域中已知的,生成三元组要求执行公钥操作(即,在密文之上的同形加法和乘法),并且因此对于大量三元组而言离线阶段是耗时的。应指出,beaver乘法三元组是一种元组;诸如反元组([x],[1/x])的若干其他元组也出于不同目的而存在于协议spdz中。

由于任何运算电路都可以表示为加法和乘法门的集合,因此在线阶段聚焦于如何安全地计算加法和乘法。多方加法使得多个当事方能够将l个不同值的不同共享物相加以生成总和,并且多方加法还包括通过将适当值取负来相减以执行减法。在图2中描绘了spdz协议add的实施例。在其中l=2的简单示例中,多方加法将两个数字的共享物相加在一起,虽然多方加法也可以将多于两个数字的共享物相加。项分别表示l个不同值的共享物,所述共享物在多方加法过程中相加。在本文档的上下文中,上标符号不指示数学上的指数。如上面描述的,每个共享物包括元组。在多方加法期间,每个当事方基于来自所有共享物的xi项的总和来计算值zi,并且基于来自所有共享物的项的总和来计算值。这些运算使得每个当事方pi)能够具有总体总和值z的共享物[zi]和mac值的共享物,其中每个当事方持有元组。如上面指出的,每个当事方具有总和z的共享物[zi],但是每个当事方不具有对z的实际总和值的访问,这确保即使在双方加法过程中,在给定总和以及相加在一起的两个值中的一个值的明文的情况下,一个当事方也无法确定由另一当事方持有的值。

在上面描述的多方加法中,针对每个加法的计算复杂度对于相加在一起的l个共享物是,并且计算包括相对简单的加法运算而对于进一步的加密操作不要求公钥pk的使用。此外,在已经将共享物分配给当事方之后,不进一步需要当事方之间的通信或beaver三元组的使用来针对每个当事方计算总和的共享物[zi]。

多方乘法使能实现具有两个值xy的共享物[x]和[y]的当事方。图3中的协议mult示出了如何安全地执行乘法。与可以将来自多于两个值的共享物相加在一起的多方加法不同,多方乘法应用于恰好两个值。多方乘法过程使用在下面描述的离线阶段中已经共享的beaver三元组([a],[b],[c])。在多方乘法过程期间,每个当事方pi)使用上面描述的加法过程来将输入的共享物[x]和取负的beaver三元组共享值[a]相加:。类似地,每个当事方使用上面描述的加法过程来将输入的共享物[y]和取负的beaver三元组共享值[b]相加:。每个当事方向所有其他当事方广播上面描述的两个加法的结果:。如上面所描述的,由于加性同态,结果ερ透露xa的元组与yb的元组之间的总差异。在每个当事方生成两个本地值zi时,多方乘法过程继续使用来自beaver三元组中每个共享物[c]的ci值:

多方乘法过程使得每个当事方能够持有原始值xy的乘积(z=xy)的共享物,其中再一次。与多方加法过程一样,即使仅存在参与多方乘法的两个当事方并且假定每个当事方具有对明文输入xy中的一个的访问,来自乘法过程的共享物也防止任何一个当事方标识由另一当事方持有的值,这是因为共享物不透露真实的乘积值z。多方乘法过程要求当事方之间的二者通信以产生共享值ερ。此外,乘法过程消耗一个beaver三元组的共享物([a],[b],[c]),其中每个beaver三元组仅被使用一次。

图4描绘了包括多个计算节点104a和104b的系统100,所述多个计算节点104a和104b经由数据网络150彼此通信连接。在系统100中,节点104a和104b中的每个是在本文中描述的mpc过程中的一个当事方。每个节点是在本文中描述的安全多方计算过程中充当单个当事方的计算设备,并且术语“节点”在下面描述的实施例中与术语“当事方”可互换使用。图4详细描绘了节点104a,并且以类似的方式利用不同的存储数据集合配置节点104b,以使用本文中描述的实施例实现安全多方内积计算。虽然图4出于说明性目的描绘了具有两个节点104a-104b的系统,但是本文中描述的实施例也可以由三个或更多个节点的群组来执行。

更详细地参考节点104a,该节点包括操作性地连接到网络接口设备112和存储器120的处理器108。处理器108典型地是具有一个或多个处理核的中央处理单元(cpu),所述一个或多个处理核执行在存储器120中存储的程序指令124以实现本文中描述的实施例。然而,处理器108的其他实施例代替或附加于以下各项而使用不同的处理元件:包括图形处理单元(gpu)的cpu、现场可编程门阵列(fpga)、专用集成电路(asic)、数字信号处理器(dsp)以及被配置为执行本文中描述的操作的任何其他数字逻辑器件。在一些实施例中,处理器108实现硬件随机数生成器(rng)或使用软件随机数生成器或伪随机数生成器(prng)来生成随机值。在本文中的描述中,对随机值的生成或随机值的使用的任何提及指代rng或prng以均匀随机的方式生成选自预定数值范围(例如有限域fp)的值的操作。

网络接口设备112将节点104a连接到诸如局域网(lan)或广域网(wan)之类的数据网络150以使能图4的节点104a与节点104b之间的通信,以及连接到执行本文中描述的安全多方内积计算过程的附加节点。网络接口设备112的非限制性实施例包括诸如以太网适配器之类的有线网络设备或者诸如无线lan或无线wan网络适配器之类的无线网络设备。在系统100中,虽然节点104a和104b可以使用防止窃听者观察或更改经由网络150的通信的传输层安全(tls)加密和认证的信道或其他等效通信信道进行通信,但是假定通过网络150进行的所有数据传输由可以记录从节点104a和104b传输的所有数据的第三方对抗者(图4中未示出)观察到。附加于在多方内积计算期间防止节点104b标识节点104a的私有明文数据128并且防止节点104a标识节点104b的私有明文数据128,本文中描述的实施例还防止可以观察到节点104a与104b之间的通信的对抗者确定任何私有数据的值。

存储器120包括诸如随机存取存储器(ram)之类的一个或多个易失性存储器设备和诸如磁盘或固态存储器设备之类的非易失性存储器设备,所述一个或多个易失性存储器设备和非易失性存储器设备存储程序指令124、私有明文数据128、值共享物数据132、密码密钥数据163和内积的计算结果140。私有明文数据128包括形成对内积计算的输入的两个向量中的一个向量的全部或部分。明文数据128中的两个向量在本文中称为xw。值共享物数据132包括每个节点在系统100的操作期间接收的共享物,其包括在离线阶段期间生成的beaver三元组值的共享物和在内积计算过程期间交换的值的共享物。如上面描述的,每个共享物向每个节点提供每个值的部分的加密版本。密码密钥数据136包括用于节点104a的加密mac密码密钥的共享物、公钥pk以及与节点104a共享的私钥ski的共享物。内积的计算结果140是内积值的多方计算的最终输出。

节点104b包括具有类似数据结构的存储器,除了节点104b存储与用于生成内积的第二向量相对应的私有明文数据128的不同集合、秘密值共享物132的不同集合和密码密钥数据136中的私钥和mac密钥的不同共享物。如下面所描述的,节点104a和104b二者计算内积的相同结果140。在图4的说明性实施例中,节点104a存储向量x的所有明文元素,并且节点104b存储向量w的所有明文元素,但是在其他实施例中,用于这些向量中的任一个或二者的明文数据被分配给多个节点,以使得大量节点能够执行安全多方内积计算。

具体来说,在我们的设置中,一个当事方持有输入向量并且另一当事方持有权重向量,并且它们希望联合计算以下等式(等式1):

(1)。

以下是用于安全内积计算的先前已知的协议的描述。这里我们仅聚焦于在线阶段,并且我们假定已经关于spdz协议设立了离线阶段。

先前已知的内积是由协议(ip)()给出的,其中当事方p1持有私有向量,并且当事方p2持有私有向量并且是mac密钥λ的密文并且仅能由两个当事方一起解密。

1:对于,当事方1随机均匀选择值xi2,设置,生成,将xi2发送到当事方2并且运行协议,使得xi在当事方p1与当事方p2之间安全共享,其由标示。

2:对于,当事方2随机均匀选择值wi1,设置,生成,将wi1发送到当事方1并且运行协议,使得xi在当事方p1与当事方p2之间安全共享,其由标示。

3:当事方p1和当事方p2运行spdz协议),其被标示为

4:当事方p1和当事方p2然后执行spdz协议

如上面指出的,在协议期间发生的一个操作是安全重新共享操作。被称为“reshare”或“resharing”操作或协议的安全重新共享操作使得两个或更多个节点能够生成对所有节点都已经知道的值的共享物(即,完整的值已经被节点“共享”,并且该过程“重新共享”总体值的部分),其中每个节点持有总体值的共享物,而不知道由任何其他节点持有的共享物。在本文中描述的实施例中,重新共享操作被定义为:其中是秘密值s的加密密文(ct),并且表示参与重新共享操作的n个当事方。加密的密文值ct作为整体对所有当事方已知,并且重新共享操作使得当事方能够各自接收原始数据集合的共享物而不知道其他节点的共享物,甚至在双节点系统中也是如此。重新共享操作开始于使用公钥pk对秘密值s加密以产生密文,并且密文被传输到接收秘密值s的加密共享物的当事方群组中的所有n个当事方。n个当事方中的每个当事方i生成均匀随机值,并且使用公钥pk对随机值加密以生成随机值的密文:。每个当事方将相应的密文值经由数据网络传输到所有其他当事方,并且每个当事方计算s的加密值和个体加密值的密文总和,其中,运算符再一次指示在提供加性同态的密码系统中的密文的加法。然后,当事方使用私钥ski的个体部分来执行协作解密过程,以对值进行解密来获得s+f的总和,其中f是所有个体随机值fi的总和。n个当事方间的最终共享物对于当事方1是并且对于其他i个当事方中的每个是

上面描述的重新共享操作是一种用以分配密文值的共享物的方法,该密文值对群组中的所有当事方都是已知的。另一种操作被称为“共享物分配”操作,该操作生成一明文值的共享物,该明文值对群组中的一个当事方是已知的,并且该明文值在群组中的节点之间被共享之前不需要被加密而同时不向其他当事方公开明文数据。如下所述,该操作使得执行多方内积计算的系统中的节点能够基于单个向量中的两个元素的乘法来分配对乘积和向量中的个体元素的共享物,其中一个节点具有对元素的明文内容的访问。给定被称为x的明文值,拥有值x的当事方针对群组中每个其他当事方来使用fp中的均匀随机分布来生成随机值,从原始值x中减去所有随机生成的值以生成由原始当事方使用的共享物[x],并且将随机生成的值传输给一个或多个附加当事方,其中随机值用作由其他当事方使用的[x]的共享物。例如,在具有两个当事方的群组中,第一当事方在存储器中持有xi,其中i指示向量中值的索引,并且生成被标注为xi2的随机值,其中2是指示接收随机值的另一个节点的索引标注。第一当事方基于xixi2之间的差生成被标注为xi的共享物。第一当事方将值xi2传输到第二当事方,并且该值是由第二当事方接收和持有的xi的共享物()。由于值xi2仅仅是与原始值xi无关的随机值,因此该随机值可以通过数据网络传输并且被对抗者和群组中的所有当事方观察到,而不损害xi的隐私。通过生成附加随机值(每个附加当事方一个),并且由第一当事方从原始值中减去所有随机值以产生每个当事方的共享物,可以将共享物分配操作扩展到三个或更多个当事方。如上所述,因为每个其他当事方仅接收随机值,所以值x不需要被加密来执行共享分配操作,尽管在x被加密的情况下共享分配操作也可以被应用于加密值。重新共享和共享分配操作二者均产生由多个当事方持有的值的共享物。重新共享操作附加地防止单个当事方具有关于其他当事方持有的共享物的信息,而共享物分配操作使得持有原始明文值的第一当事方能够具有关于所有共享物的信息,但是使得其他当事方不能够观察到第一当事方的共享物。

使用spdz的先前已知的内积运算将需要执行协议reshare2n次、协议multn次以及协议add一次。此外,先前已知的内积运算消耗在离线阶段中生成的n个三元组,因为三元组的数量与所需要的乘法(mult)数量线性相关。

本公开提出了一种对安全内积计算的优化方案,该方案可以减少所需要的乘法数量,并且因此减小所使用的三元组的数量。优化方法的基本思想基于以下观察:

如果可以很好地建立,那么仅需要一个乘法(即,的乘法。幸运地,由于当事方p1持有x1和x2,那么可以以类似于x1或x2的方式分配。此外,由于当事方p2持有w1和w2,那么可以以类似于w1或w2的方式分配

基于上面的观察,可以提供优化的安全内积计算协议(协议ip+)。该协议在内积计算的在线阶段中引发n/2个乘法运算,并且因此也将三元组的数量减少到n/2。

协议ip+),其中当事方p1持有私有向量,并且当事方p2持有私有向量。为简单起见,假定n=2k

1:对于,当事方p1随机均匀选择值xi2,设置,生成,将xi2发送到当事方2并且运行协议,使得xi在当事方p1与当事方p2之间安全共享,其由标示。

2.对于,当事方p1计算,随机均匀选择值,设置,生成,将发送到当事方2并且运行协议,使得在当事方p1与当事方p2之间安全共享,其由标示。

3:对于,当事方2随机均匀选择值wi1,设置,生成,将wi1发送到当事方1并且运行协议,使得xi在当事方p1与当事方p2之间安全共享,其由标示。

4.对于,当事方p2计算,随机均匀选择值,设置,生成,将发送到当事方1并且运行协议,使得在当事方p1与当事方p2之间安全共享,其由标示。

5.对于,当事方p1和当事方p2运行spdz协议,其分别得到的共享物。当事方p1和当事方p2然后执行协议,其结果被标示为

6.当事方p1和当事方p2运行协议以确定内积(d)。

我们观察到,ip+以共享n个更多私有值的成本将协议mult的必要执行数量从n减少到n/2。然而,执行协议add的成本可以忽略,因为它是在本地运行的并且与协议mult相比可以忽略不计)。然而,应指出,共享一个私有值仅需要执行一次协议reshare,但是生成一个三元组需要执行4次协议reshare。此外,值得指出的是,执行mult需要当事方之间的交互(以便透露协议mult中示出的中间值ερ),将mult的执行数量从n减少到n/2也减少了通信和计算复杂度。由于协议add的计算复杂度与输入是线性的,因此ip需要2n–2个算术加法,而ip+引发5n–2个算术加法。

本公开的其余部分将针对与spdz协议以及同上述方法一起使用或可以同上述方法一起使用的其他相关协议有关的背景信息。

协议spdz中的秘密共享方案是n中取n加性秘密共享方案。根据加性秘密共享方案,给定秘密值和当事方集合,随机均匀选择,并且选择使得它满足,其中被分配给当事方pi。因此,需要n个当事方(即所有当事方)以便恢复秘密值

为了容忍至多nt个不可用的当事方,t个可用的当事方应当能够恢复由那些nt个不可用当事方持有的秘密共享物。基于该观察,提出了:协议reshare,其中每个当事方将其持有的秘密共享物重新分配给t个当事方的任何子集;以及协议recombine,其中t个当事方可以恢复不可用当事方的秘密共享物,并且然后如果需要,则最终重建秘密值。基于这两个协议,提出了秘密共享物重新分配阶段和秘密共享物重新组合阶段,这两个阶段可以放在协议spdz的离线阶段与在线阶段之间,使得所得到的spdz协议享有容错属性。

在图5中描绘了协议reshare。第一循环经由认证的机密信道将每个当事方的持有秘密共享物重新分配给所有可用当事方。第二循环对重新分配的秘密共享物求和,并且针对每个当事方将总和与被指派给每个当事方的唯一标识符相关联地存储。这里的聚合操作减少存储开销。应指出,标注字符串“label”用于唯一地标识子集中的当事方以及相关联的重新分配的秘密共享物,并且可以促进重建秘密共享物。值得指出的是,任何秘密共享物以加性方式被重新分配给t个当事方的子集,因此任何t1个当事方(除了持有该秘密共享物的当事方之外)不能恢复该秘密共享物。给定n个当事方,具有t个当事方的子集的数量是;因此,包括一个特定当事方的子集的数量是。因此,每个当事方需要存储个重新分配的秘密共享物和相应的标注。

在图6中描绘了协议recombine。协议recombine使得t个当事方能够使用其持有的秘密共享物和重新分配的秘密共享物来计算秘密值的秘密共享物。每个当事方pi)持有秘密共享物和重新分配的秘密共享物的集合aggseti

现在将讨论示例来说明协议reshare和recombine。假设存在分别持有秘密共享物x1、x2、x3和x4的四个当事方(即,n=4),使得,其中x是秘密值。假设系统要求容忍至多两个不可用当事方(即,nt=2),这意味着任何t=2个当事方应当能够重建秘密值。

图7描绘了呈现在当事方p1将其持有的秘密共享物x1重新分配给其他当事方之后的中间结果的表。应指出,“label”是按顺序连结所有当事方的索引的字符串,并且它可以唯一标识t个当事方的每个子集。在示例中,由于t=2,因此具有2个当事方的所有子集的集合是。同一行中的重新分配的共享物的总和等于秘密共享物x1。例如,并且。图8示出了在所有当事方将其持有的秘密共享物重新分配给其他当事方之后的最终结果。

图9描绘了在执行协议reshare之后的最终结果。根据图9,每个当事方持有三个重新分配的秘密共享物和相应的标注以及持有的秘密共享物。因此,在该情况下,任何两个当事方可以构造秘密值。假设当事方p1和当事方p2在线但是当事方p3和当事方p4不可用。利用协议recombine,当事方p1和当事方p2分别计算。我们可以看到这两个本地计算的值可以恢复秘密值x,这是因为并且

本公开提出了基于协议reshare的秘密共享物重新分配阶段和基于协议recombine的秘密重新组合阶段。前一阶段的目的是要让所有当事方将它们持有的秘密共享物重新分配给其他当事方,并且后一阶段的目的是要允许子部分当事方中的当事方重新组合秘密共享物,该秘密共享物可以于在线阶段中使用。

在执行离线阶段之后,需要重新分配两个不同种类的数据共享物:密码密钥共享物(即,私钥共享物和mac密钥共享物)和元组共享物。对于密码密钥共享物,仅考虑mac密钥共享物,因为将不于在线阶段中使用私钥共享物。应指出,对于每个元组共享物,由各当事方持有的元组内的每个元素采用形式[x],所述[x]由数据秘密共享物和mac值共享物组成。因此,我们仅需要分别在数据秘密共享物和mac值共享物上应用协议reshare。图10描述了秘密共享物重新分配阶段,其中重新分配在离线阶段中生成的mac密钥共享物和元组共享物。

在图11中示出的秘密共享物重新组合阶段期间,应用协议recombine来计算mac密钥共享物和元组共享物。应指出,存在多于t个当事方可用是可能的,但仅需要选择t个当事方。

如图12中描绘的,给定上面两个阶段,可以通过在离线阶段与在线阶段之间并入上面讨论的秘密共享物重新分配阶段和秘密共享物重新组合阶段来构建容错spdz。应指出,在执行秘密共享物重新组合阶段之前,需要选择t个当事方。因此,需要t个当事方是可用的。

给定参数n(即,当事方的总数)和t(即,可用当事方的最少数量),考虑以下度量来将spdz协议与容错spdz协议进行比较:

●存储消耗:每个当事方在存储秘密值上所花费的存储消耗。

●恶意当事方数量:为了确保协议的安全性,允许存在的恶意当事方数量。

●容错:为了确保协议的正确性,允许存在的可用当事方数量。

图13示出了两个协议之间的比较。如可以看到的,针对容错spdz的容错特征(即,针对spdz的ntvs.0)是以增加存储消耗(即,针对spdz的vs.n–1)并且减小协议中允许的恶意当事方数量(即,针对spdz的t–1vs.n–1)为代价来被实现的。

在上面的章节中,假定参与方不仅执行离线阶段和在线阶段,而且还将其私有输入提供给计算。上面描述的容错spdz方案也可以实现为服务,在所述服务中,多个服务提供者托管负责执行离线阶段和在线阶段的许多专用服务器,并且最终用户以秘密共享物的形式上传其私有输入并且将它们存储在多个专用服务器中。应指出,专用服务器中的存储的输入秘密共享物也是采用的形式,其中当事方p1()持有元组,使得并且,并且λ是mac密钥。因此,在秘密共享物重新分配和秘密共享物重新组合阶段中在私有输入共享物上应用协议reshare和recombine仍然是有效的,使得扩展的spdz协议在该模型下享有容错。

虽然已经在附图和前述的描述中详细说明和描述了本公开,但是应当将本公开视为在性质方面是说明性的而非限制性的。应理解到,仅呈现了优选实施例,并且期望保护落入本公开的精神内的所有改变、修改和另外的应用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1