相关申请的交叉引用
本申请要求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),那么内积是:
对于两个n维向量
附图说明
图1描绘了spdz协议
图2描绘了spdz协议
图3描绘了spdz协议
图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三元组”指代三个值的集合(a,b,c),其中a和b是随机均匀选择的,并且c等于a乘以b的乘积:c=ab。beaver三元组中的所有三个数字是有限域fp的成员,其中p是模数值。在其中
如本文中所使用的,术语“同态”和“同形”指代一些密码系统的属性,在所述密码系统中,数学运算可以应用于加密值以产生与对明文值执行相同运算的结果相匹配的加密结果,而不将加密值或结果的内容透露给执行运算的计算设备。例如,给定两个值a=1和b=2及其对应的加密配对部a'和b',在提供加性同态的密码系统中,加密值c'=a'+b'存储数字“3”的加密表示(1+2=3)。值c'可以由不能确定a'或b'的明文值的计算机来计算,并且在一些实例中,产生c'的计算机可以在没有用于确定a或b的原始明文值的能力的情况下解密c'以检索明文总和(3)。减性同态类似地应用于将两个加密值相减的运算(例如,a=2,b=1,c'=a'–b',解密(c')=1),并且在本文中描述的实施例中,减性同态也等效于加性同态,在所述加性同态中,一个或多个所选值被取负以执行等效于减法的加法运算。类似地,对于提供乘性同态的密码系统,两个加密值(a'和b')的乘积是解密成与两个明文值(a和b)的乘积相同的值的另一个加密值(c')(例如a=2,b=3,c'=(a'b'),解密(c')=6)。在本文中描述的实施例中,
如本文中所使用的,项λ指代选自有限域
如本文中所使用的,项ε=(enc,dec)指代至少提供具有阈值解密的加性/减性和乘性同态的非对称公钥加密系统。项sk指代ε中用于利用dec函数的密文解密的私钥,并且项pk指代ε中用于明文加密以使用enc函数产生密文的公钥。执行多方内积计算的每个当事方pi(
如本文中所使用的,针对值的符号[](例如[x])指示该值的“共享物”或者其中多个当事方各自持有总体值x的共享物[x],但是具有对共享物[x]的访问并不透露x的实际值。在下面描述的实施例中,值x是加密的密文值,并且本文中使用的密码系统的加性同形属性使得总体值x能够被划分成具有x的总体值的个体共享物。在来自具有多个元素的两个向量的内积计算中,向量的每个元素表示以安全方式在两个或更多个节点间共享的值。在数学上,对于总共n个当事方pi(
spdz协议使用两阶段方案,其包括多个当事方用于与彼此安全交换被称为beaver三元组的随机生成的数字的计算的“离线”阶段。beaver三元组不是对节点感兴趣的实际数据,而是在后续在线阶段中用于使能实现共享结果的计算同时防止每个当事方标识来自一个或多个附加当事方的私有数据。离线阶段引入计算以计算和共享包括加密操作的beaver三元组,并且一般被认为是spdz协议在计算上更密集的阶段。在第二“在线”阶段中,当事方使用beaver三元组和感兴趣的实际数据来执行安全多方计算,该安全多方计算包括上面描述的内积计算。虽然spdz协议在执行内积计算时是有效的,但由于spdz针对多方乘法而实现的基础操作,在在线阶段期间在内积计算中发生的大量乘法运算引入了附加的通信操作——每个通信操作要求beaver三元组的使用——并且在当事方之间产生计算开销。
在离线阶段和在线阶段之前,必须生成密码密钥,包括生成公共密码参数、公钥、私钥共享物(由每个当事方拥有)和mac密钥共享物(由每个当事方拥有)。特别地,每个当事方接收n个mac密钥共享物中的一个,其中n是当事方的总数。假设λ是mac密钥并且
在spdz协议的离线阶段期间,生成将允许当事方计算乘积的足够数量的乘法三元组,特别是beaver乘法三元组。beaver乘法三元组由三个值([a],[b],[c])组成,其分别是a、b、c的共享物,其中
给定针对某值s的密文
利用协议share,令
●当事方pi随机均匀选择值
●一个所选当事方计算
●所有当事方一起执行
重复用于生成[a]的相同步骤以生成[b]。生成值[c]使得c=ab。给定来自步骤1和步骤2的
如本领域中已知的,生成三元组要求执行公钥操作(即,在密文之上的同形加法和乘法),并且因此对于大量三元组而言离线阶段是耗时的。应指出,beaver乘法三元组是一种元组;诸如反元组([x],[1/x])的若干其他元组也出于不同目的而存在于协议spdz中。
由于任何运算电路都可以表示为加法和乘法门的集合,因此在线阶段聚焦于如何安全地计算加法和乘法。多方加法使得多个当事方能够将l个不同值的不同共享物相加以生成总和,并且多方加法还包括通过将适当值取负来相减以执行减法。在图2中描绘了spdz协议add的实施例。在其中l=2的简单示例中,多方加法将两个数字的共享物相加在一起,虽然多方加法也可以将多于两个数字的共享物相加。项
在上面描述的多方加法中,针对每个加法的计算复杂度对于相加在一起的l个共享物是
多方乘法使能实现具有两个值x和y的共享物[x]和[y]的当事方。图3中的协议mult示出了如何安全地执行乘法。与可以将来自多于两个值的共享物相加在一起的多方加法不同,多方乘法应用于恰好两个值。多方乘法过程使用在下面描述的离线阶段中已经共享的beaver三元组([a],[b],[c])。在多方乘法过程期间,每个当事方pi(
多方乘法过程使得每个当事方能够持有原始值x和y的乘积(z=xy)的共享物
图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中的两个向量在本文中称为x和w。值共享物数据132包括每个节点在系统100的操作期间接收的共享物,其包括在离线阶段期间生成的beaver三元组值的共享物和在内积计算过程期间交换的值的共享物。如上面描述的,每个共享物向每个节点提供每个值的部分的加密版本。密码密钥数据136包括用于节点104a的加密mac密码密钥的共享物、公钥pk以及与节点104a共享的私钥ski的共享物。内积的计算结果140是内积值的多方计算的最终输出。
节点104b包括具有类似数据结构的存储器,除了节点104b存储与用于生成内积的第二向量相对应的私有明文数据128的不同集合、秘密值共享物132的不同集合和密码密钥数据136中的私钥和mac密钥的不同共享物。如下面所描述的,节点104a和104b二者计算内积的相同结果140。在图4的说明性实施例中,节点104a存储向量x的所有明文元素,并且节点104b存储向量w的所有明文元素,但是在其他实施例中,用于这些向量中的任一个或二者的明文数据被分配给多个节点,以使得大量节点能够执行安全多方内积计算。
具体来说,在我们的设置中,一个当事方持有输入向量
以下是用于安全内积计算的先前已知的协议的描述。这里我们仅聚焦于在线阶段,并且我们假定已经关于spdz协议设立了离线阶段。
先前已知的内积是由协议(ip)(
1:对于
2:对于
3:当事方p1和当事方p2运行spdz协议
4:当事方p1和当事方p2然后执行spdz协议
如上面指出的,在协议期间发生的一个操作是安全重新共享操作。被称为“reshare”或“resharing”操作或协议的安全重新共享操作使得两个或更多个节点能够生成对所有节点都已经知道的值的共享物(即,完整的值已经被节点“共享”,并且该过程“重新共享”总体值的部分),其中每个节点持有总体值的共享物,而不知道由任何其他节点持有的共享物。在本文中描述的实施例中,重新共享操作被定义为:
上面描述的重新共享操作是一种用以分配密文值的共享物的方法,该密文值对群组中的所有当事方都是已知的。另一种操作被称为“共享物分配”操作,该操作生成一明文值的共享物,该明文值对群组中的一个当事方是已知的,并且该明文值在群组中的节点之间被共享之前不需要被加密而同时不向其他当事方公开明文数据。如下所述,该操作使得执行多方内积计算的系统中的节点能够基于单个向量中的两个元素的乘法来分配对乘积和向量中的个体元素的共享物,其中一个节点具有对元素的明文内容的访问。给定被称为x的明文值,拥有值x的当事方针对群组中每个其他当事方来使用fp中的均匀随机分布来生成随机值,从原始值x中减去所有随机生成的值以生成由原始当事方使用的共享物[x],并且将随机生成的值传输给一个或多个附加当事方,其中随机值用作由其他当事方使用的[x]的共享物。例如,在具有两个当事方的群组中,第一当事方在存储器中持有xi,其中i指示向量中值的索引,并且生成被标注为xi2的随机值,其中2是指示接收随机值的另一个节点的索引标注。第一当事方基于xi与xi2之间的差生成被标注为
使用spdz的先前已知的内积运算将需要执行协议reshare2n次、协议multn次以及协议add一次。此外,先前已知的内积运算消耗在离线阶段中生成的n个三元组,因为三元组的数量与所需要的乘法(mult)数量线性相关。
本公开提出了一种对安全内积计算的优化方案,该方案可以减少所需要的乘法数量,并且因此减小所使用的三元组的数量。优化方法的基本思想基于以下观察:
如果可以很好地建立
基于上面的观察,可以提供优化的安全内积计算协议(协议ip+)。该协议在内积计算的在线阶段中引发n/2个乘法运算,并且因此也将三元组的数量减少到n/2。
协议ip+(
1:对于
2.对于
3:对于
4.对于
5.对于
6.当事方p1和当事方p2运行协议
我们观察到,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加性秘密共享方案。根据加性秘密共享方案,给定秘密值
为了容忍至多n–t个不可用的当事方,t个可用的当事方应当能够恢复由那些n–t个不可用当事方持有的秘密共享物。基于该观察,提出了:协议reshare,其中每个当事方将其持有的秘密共享物重新分配给t个当事方的任何子集;以及协议recombine,其中t个当事方可以恢复不可用当事方的秘密共享物,并且然后如果需要,则最终重建秘密值。基于这两个协议,提出了秘密共享物重新分配阶段和秘密共享物重新组合阶段,这两个阶段可以放在协议spdz的离线阶段与在线阶段之间,使得所得到的spdz协议享有容错属性。
在图5中描绘了协议reshare。第一循环经由认证的机密信道将每个当事方的持有秘密共享物重新分配给所有可用当事方。第二循环对重新分配的秘密共享物求和,并且针对每个当事方将总和与被指派给每个当事方的唯一标识符相关联地存储。这里的聚合操作减少存储开销。应指出,标注字符串“label”用于唯一地标识子集中的当事方以及相关联的重新分配的秘密共享物,并且可以促进重建秘密共享物。值得指出的是,任何秘密共享物以加性方式被重新分配给t个当事方的子集,因此任何t–1个当事方(除了持有该秘密共享物的当事方之外)不能恢复该秘密共享物。给定n个当事方,具有t个当事方的子集的数量是
在图6中描绘了协议recombine。协议recombine使得t个当事方能够使用其持有的秘密共享物和重新分配的秘密共享物来计算秘密值的秘密共享物。每个当事方pi(
现在将讨论示例来说明协议reshare和recombine。假设存在分别持有秘密共享物x1、x2、x3和x4的四个当事方(即,n=4),使得
图7描绘了呈现在当事方p1将其持有的秘密共享物x1重新分配给其他当事方之后的中间结果的表。应指出,“label”是按顺序连结所有当事方的索引的字符串,并且它可以唯一标识t个当事方的每个子集。在示例中,由于t=2,因此具有2个当事方的所有子集的集合是
图9描绘了在执行协议reshare之后的最终结果。根据图9,每个当事方持有三个重新分配的秘密共享物和相应的标注以及持有的秘密共享物。因此,在该情况下,任何两个当事方可以构造秘密值。假设当事方p1和当事方p2在线但是当事方p3和当事方p4不可用。利用协议recombine,当事方p1和当事方p2分别计算
本公开提出了基于协议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的n–tvs.0)是以增加存储消耗(即,针对spdz的
在上面的章节中,假定参与方不仅执行离线阶段和在线阶段,而且还将其私有输入提供给计算。上面描述的容错spdz方案也可以实现为服务,在所述服务中,多个服务提供者托管负责执行离线阶段和在线阶段的许多专用服务器,并且最终用户以秘密共享物的形式上传其私有输入并且将它们存储在多个专用服务器中。应指出,专用服务器中的存储的输入秘密共享物也是采用
虽然已经在附图和前述的描述中详细说明和描述了本公开,但是应当将本公开视为在性质方面是说明性的而非限制性的。应理解到,仅呈现了优选实施例,并且期望保护落入本公开的精神内的所有改变、修改和另外的应用。