CN117397197A - 多台计算机的多方计算 - Google Patents

多台计算机的多方计算 Download PDF

Info

Publication number
CN117397197A
CN117397197A CN202280036377.5A CN202280036377A CN117397197A CN 117397197 A CN117397197 A CN 117397197A CN 202280036377 A CN202280036377 A CN 202280036377A CN 117397197 A CN117397197 A CN 117397197A
Authority
CN
China
Prior art keywords
value
share
random
secret
computer
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.)
Pending
Application number
CN202280036377.5A
Other languages
English (en)
Inventor
S·巴德里纳拉亚南
P·林达尔
缪沛晗
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.)
Visa International Service Association
Original Assignee
Visa International Service Association
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 Visa International Service Association filed Critical Visa International Service Association
Publication of CN117397197A publication Critical patent/CN117397197A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本公开的实施例涉及用于多方定点乘法的方法。所述方法可以包括用于多方定点乘法的复制方法,其中使用复制秘密共享来表示输入和输出。一种复制方法可能只需要在线阶段中的单轮通信,并且针对半诚实对手是安全的。另一种复制方法可能需要包括附加密钥以标识任何恶意通信方。所述方法还可以包括Shamir共享定点乘法方法和加法秘密共享定点乘法方法。

Description

多台计算机的多方计算
相关申请交叉引用
本申请要求2021年5月25日提交的第63/192,933号美国临时申请的权益,所述美国临时申请出于所有目的以全文引用的方式并入本文中。
背景技术
机器学习模型可以用于各种应用。在许多情况下,为了训练和评估机器学习模型,可以从各种数据源获得大量数据。然而,在许多情况下,接收到的数据的部分可能包括敏感或私有信息。
执行数据秘密份额的计算机(例如,服务器)可以使用多方计算技术来使用联合获得的数据训练和评估机器学习模型。多方计算技术可以允许检取用于评估和训练机器学习模型的数据,而不需要跨节点传播任何敏感/私有信息。
发明内容
本公开的一个实施例涉及一种由多个计算机中的第一计算机执行以用于实施用于多方定点乘法的复制协议的方法。第一计算机可以获得第一固定值(x)的第一秘密份额和第二固定值(y)的第二秘密份额。然后,第一计算机可以用与第一计算机配对的另一计算机对第一伪随机密钥(si,j)并且用多个计算机中的多个集合中的第一集合(Dj)对第二伪随机密钥(sj)进行联合采样。第一计算机可以使用第二伪随机密钥(sj)生成随机值的复制随机份额([[r]]R),然后使用第一伪随机密钥(si,j)生成复制共享值(β)。第一计算机可以通过提供用复制共享值(β)和随机值的复制随机份额([[r]]R)掩蔽的第一秘密份额和第二秘密份额的乘积来计算掩蔽份额(z′i)。第一计算机可以从第一集合(Dj)中的计算机接收多个掩蔽份额(z′i),由此向第一集合(Dj)揭示集合共享值z'。然后,第一计算机可以使用接收到的多个掩蔽份额(z′i)和随机值的复制随机份额([[r]]R)生成复制秘密份额([[z]]R)。
本公开的另一实施例涉及一种由多个计算机中的第一计算机执行以用于实施用于多方定点乘法的共享协议的方法。第一计算机可以获得第一值(x)的秘密份额和第二值(y)的秘密份额。然后,第一计算机可以对第一随机值(ri)进行采样以获得第一随机值(ri)的第一随机份额([[ri]]S,2t)以及第二随机份额([[ri/d]]S)。第一计算机可以将第一随机份额([[ri]]S,2t)和第二随机份额[[ri/d]]S发送到多个计算机。第一计算机可以从多个计算机获得第一随机份额([[r]]S,2t)的每个份额和第二随机份额([[ri/d]]S)的每个份额。第一计算机可以分别基于第一随机份额([[r]]S,2t)的每个份额和第二随机份额([[ri/d]]S)的每个份额计算第三随机份额([[r]]S,2t)和第四随机份额([[r']]S)。第一计算机可以计算掩蔽份额([[z']]S,2t),所述掩蔽份额提供用第三随机份额([[r]]S,2t)掩蔽的第一值(x)的秘密份额和第二值(y)的秘密份额的乘积。然后,第一计算机可以基于由多个计算机确定的多个掩蔽份额([[z']]S,2t)获得掩蔽值z',然后使用掩蔽值z'和第四随机份额([[r']]S)生成输出秘密份额([[z]]S)。
本公开的另一实施例涉及一种由多个计算机中的第一计算机执行以用于实施用于多方定点乘法的加法共享协议的方法。第一计算机可以获得第一值(x)的秘密份额第二值(y)的秘密份额/>小数位值(d)、第三值(α)的秘密份额/>第四值(β)的秘密份额/>和第五值(γ)的秘密份额/>第一计算机可以确定第一共享随机值的份额/>和第二共享随机值的份额/>第一计算机可以基于第一值(x)的秘密份额/>和第三值(α)的秘密份额/>来确定第一中间份额/>然后基于第二值(y)的秘密份额/>和第四值(β)的秘密份额/>来确定第二中间份额/>第一计算机可以从多个计算机接收多个第一中间份额和多个第二中间份额以揭示第一中间值(x')和第二中间值(y')。第一计算机可以将第一中间值(x')和第二中间值(y')发送到多个计算机。第一计算机可以基于第一中间值(x')、第二中间值(y')、第一值(x)的秘密份额/>第二值(y)的秘密份额/>第五值(γ)的秘密份额/>和第二共享随机值的份额/>来确定第三中间份额/>第一计算机可以从多个计算机接收多个第三中间份额以揭示第三中间值(z')。第一计算机可以将第三中间值(z')发送到多个计算机。然后,第一计算机可以基于第三中间值(z')、小数位值(d)和第一共享随机值的份额/>来确定输出秘密份额/>
以下详细描述本公开的这些和其它实施例。例如,其它实施例涉及与本文所描述的方法相关联的系统、装置和计算机可读介质。
可参考以下详细描述和附图来更好地理解本公开的实施例的性质和优势。
参考本说明书的其余部分,包括附图和权利要求书,将实现本公开的其它特征和优点。下文关于附图详细描述本公开的其它特征和优点以及本公开的各种实施例的结构和操作。在附图中,相同的附图标记可以指示相同或功能上相似的元件。
附图说明
图1示出根据本公开的实施例的多方定点乘法系统。
图2示出根据本公开的实施例的包括计算机集合的计算机系统。
图3是根据本公开的实施例的用于半诚实设置中的多方定点乘法的复制协议的示例性信令过程。
图4是示出根据本公开的实施例的用于恶意设置中的多方定点乘法的示例性复制协议的框图
图5是根据本公开的实施例的用于多方定点乘法的示例性Shamir共享协议的框图。
图6是根据本公开的实施例的用于多方定点乘法的示例性加法共享协议的框图。
图7示出可与根据本公开的实施例的系统和方法一起使用的示例计算机系统的框图。
术语
在讨论本发明的一些实施例之前,对一些术语的描述可能有助于理解本发明的实施例。
术语“服务器计算机”可以包括功能强大的计算机或计算机群集。例如,服务器计算机可以是大型主机、小型计算机群组或作为一个单元运作的一组计算机。在一个实例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可以耦合到数据库,并且可以包括用于服务于来自一个或多个其它计算机的请求的任何硬件、软件、其它逻辑或前述各项的组合。术语“计算机系统”通常可以指包括可耦合到一个或多个数据库的一个或多个服务器计算机的系统。
“机器学习模型”可以指一组软件例程和参数,它们可以基于一组输入特征预测现实世界过程的输出(例如,对患者的诊断或治疗、对计算机网络的攻击者的标识、计算机认证、基于用户搜索查询的合适推荐等等)。软件例程的结构(例如,子例程的数量和它们之间的关系)和/或参数的值可以在训练过程中确定,训练过程可以使用所建模的现实世界过程的实际结果。
术语“训练计算机”可以指在训练机器学习模型时使用的任何计算机。作为实例,训练计算机可以是从中获得输入数据的一组客户端计算机中的一个或者是与客户端计算机分离的服务器计算机。
术语“多方计算(MPC)”可以指由多方执行的计算。每一方,例如计算机、服务器或密码装置,可具有一些计算输入。每一方可使用输入共同计算出计算的输出。
术语“安全多方计算(安全MPC)”可以指安全的多方计算。在一些情况下,“安全多方计算”是指其中各方彼此并不共享信息或其它输入的多方计算。确定PSI可以使用安全MPC来实现。MPC中来自每个计算机的输入可以是一个计算机已知的值的秘密份额。例如,第一计算机可以将数据库值拆分成多个秘密份额,并在计算机之间分布份额。只有第一计算机可以知道如何汇编份额以重建数据库值。生成份额的一种方法是选择随机数,然后取随机数的XOR和单个数据库表的值,这可以针对数据库中的每个值独立地完成。
术语“秘密共享”可以指可用于在一组训练计算机上存储数据项使得每个训练计算机无法自行确定数据项的值的任一种技术。作为示例,秘密共享可涉及将数据项分成需要足够数量个(例如,所有)训练计算机进行重建的共享数和/或其中解密需要训练计算机之间进行共谋的加密机制。
术语“秘密”可以包括未知或看不到或无意被他人知道或看到的值。秘密可以是旨在仅由计算机、实体、群组等保持已知的值。可以使用秘密共享技术创建多个秘密份额以模糊类型方式安全地共享秘密。
术语“秘密份额”可以包括未知或看不到或无意被他人知道或看到的值的一部分。秘密份额单独地可能不会揭示关于秘密的信息。可以使用秘密共享技术创建秘密份额。秘密份额的全部或一部分的组合可以揭示秘密。
术语“集合”是指一组事物。计算机集合可以是整个计算机网络内的一组计算机。计算机网络可以包括任何数量的计算机集合。在一些情况下,计算机可以属于一个或多个计算机集合(例如,是其一部分)。
术语“集合共享值”可以包括集合中的实体持有的值。集合共享值可以是计算机集合中的每个计算机已知的值,但不是计算机网络中不在所述计算机集合中的计算机已知的值。
具体实施方式
机器学习用于产生对图像进行分类、执行医学诊断、提供建议以及标识若干其它应用之间的欺诈性交易的模型。基于云的机器学习服务[1-4]可以使用用户数据执行训练模型以及对预训练模型执行推断。被分类或用于训练的数据通常是敏感的,并且可能来自具有不同隐私要求的多个来源。因此,旨在执行训练和推断同时保持用户数据的隐私的隐私保护机器学习变得越来越重要。
安全多方通信(MPC)可用于发送数据以用于训练和/或评估机器学习模型,同时保持数据的隐私性。安全MPC可以确保在训练期间,关于数据的泄漏的唯一信息可以是最终模型(或模型的加密版本)。此外,在评估期间,泄漏的唯一信息可以包括输出标签。考虑的一种设置是数据所有者(例如,客户端)在对组合数据执行训练或应用(秘密共享是)预训练模型来评估新数据样本的多个独立服务器之间秘密地共享其数据。文献[6、17、20、30、32、34-39、41、44]中提出了若干解决方案。然而,其中大多数都集中在两个或三个服务器的设置上,其中对手可能破坏其中的最多一个服务器。在多方交互(例如,多于三方)的背景下,明文训练/评估与安全MPC的隐私保护解决方案之间存在差距。
本发明实施例可以提供多种形式的秘密共享以表示要相乘的输入以及输出。例如,实施例提供复制秘密共享协议、Shamir秘密共享协议和加法秘密共享协议。如本文所描述的协议可以涉及存在多于三方并且多方诚实的场景(例如,可以被信任以实施用于安全MPC的协议)。
在许多机器学习算法的情况下,训练数据和中间参数都可以包括无法使用模块化算术本机处理的小数值。许多方法在执行浮点乘法时可能失败,并且大模量可能意味着更复杂的乘法,这会降低性能。本文所描述的实施例可以提供高效的多方定点乘法,其中输入和输出在交互方之间是秘密的。实施例至少为如何有效地执行多方定点乘法方法的技术问题提供技术解决方案,其中输入和输出在多个计算机之间秘密共享。
此外,如本文所描述的协议可以包括高效多方定点乘法协议,其中一方或多方可以包括可能不遵循协议的隐蔽对手。在此类情况下,实施例可以通过调用如本文所描述的乘法协议来检测隐蔽对抗方的恶意行为。
I.安全多方通信和秘密共享概述
实施例提供一种用于例如通过计算来截断秘密共享值的方法,其中d是表示定点值中的小数位的公共值。然后,前述截断方法可以与乘法协议组合,以获得定点乘法协议。实施例提供三种形式的秘密共享以表示要相乘的输入以及输出:复制秘密共享、Shamir秘密共享和加法秘密共享。然而,应理解,实施例可应用于各种其它秘密共享方案。
A.复制秘密共享
本发明实施例提供用于多方定点乘法的多个复制协议,其中输入和输出使用模量2k上的复制秘密共享来表示,其中k是份额的位长度。
第一协议在存在诚实多数的情况下针对半诚实对手是安全的,并且在协议之前不使用离线通信。根据实施例,协议具有两种形式:1)使用(n2-nt)k位在线通信的单轮协议和2)仅使用2nk位在线通信的两轮,其中n是计算机(也称为各方)的数量,并且t<n/2是破坏计算机的数量。对于相同设置中的多方定点乘法,此类方法的通信开销显著优于Mohassel和Rindal[36]的先前工作。在下表1中对通信成本进行了比较。
第二协议可能需要在线阶段中的两轮,并且可以在存在隐蔽对手(例如,可以任意恶意行事的一方)的情况下是安全的。
B.Shamir秘密共享
实施例提供高效的多方定点乘法协议,其中使用Shamir秘密共享来表示输入和输出。协议在在线阶段利用两轮,并且在存在诚实多数的情况下针对半诚实对手是安全的。与Catrina和Saxena[16]针对相同设置的先前工作相比,根据实施例,在线通信开销是相同的,而离线通信由于通常实践中为n,t<<k而显著较低(参见表1)。
C.加法秘密共享
上述用于复制秘密共享和Shamir秘密共享的方法可以在计算机之间存在诚实多数的设置中发生。这是这些秘密共享方案固有的要求。
然而,应当理解,根据实施例,截断方法不是必需的。实际上,截断协议可以被视为甚至对于不诚实多数也有效的技术。这可以通过利用截断方法来创建高效的多方定点乘法协议来证明,其中使用n分之n加法秘密共享方案来表示输入和输出。此方法可以是四轮协议,其针对可能破坏任何t<n方的半诚实对手是安全的。
D.性能和一般MPC
上述三个协议的通信和计算成本接近标准秘密共享模块化乘法。对于复制秘密共享,协议在计算上与模块化对应方一样复杂。Shamir秘密共享针对不诚实多数的情况也是如此。
表1:实施例与[16、36]相比的通信(以位为单位)和轮次复杂性。n是各方的数量,t<n/2是破坏方的数量。2k是复制秘密共享的模量。其中q是用于Shamir秘密共享的素数模量。
对于每种形式的秘密共享,实施例可以利用定点乘法协议来设计MPC协议,用于计算包含具有截断门的加法和定点乘法的任意算术电路。然后可以通过基于标准现实世界-理想世界模拟的安全定义来证明所得MPC协议是安全的。
II.序言
在描述秘密共享方法的进一步细节之前,将描述可以帮助理解和描述实施例的符号基础。
A.符号
计算安全参数可以使用κ来指代,而统计安全参数可以使用λ来指代。各方(也称为节点或计算机)以P1,…,Pn列举,其中总共存在n方。符号表示值x的秘密共享。此共享可以是如下文进一步详细描述的若干不同类型——/>或/>中的一种。无论共享类型如何,符号/>都将指由表示为Pi的i方持有的值x的份额。
变量的指派可以由:=表示,例如变量a可以被指派给b的值,即a:=b。当从集合S均匀地采样或对随机函数f进行采样时,实施例分别使用符号a←S和a←f(…)。令[a,b]表示集合{a,a+1,…,b}和简写[b]:=[1,b]。左侧或右侧的括号表示该范围的相应一侧是互斥的,例如(a,b]:={a+1,a+2,…,b}。关于用作本文的建构中使用的密码原语之一的伪随机函数(PRF)的定义,可以在[27]中找到相关讨论。
B.计算表示
在安全计算中,函数可以表示为电路,其中每条线可以保持整数值模量,一些为公共模量例如对于布尔运算为N=2,并且对于算术运算为N=2k或素数q。根据实施例,算术电路可以被视为具有N=2k或素数q。在素数模量q的情况下,可以定义/>使得2k仅小于q。除了能够执行这些类型的模块化算术之外,此框架还支持有符号算术和定点算术,使得可以有效地表示分数。
对于有符号值,值x∈[-N/2,N/2)可以表示为对于N=2κ,这也称二进制补码,其中最高阶位指示符号(例如,正或负)。当N为素数时也适用相同的方法。有时,将有符号值简单视为元素/>(整数集合)可能更方便,而其它时候,x∈[-N/2,N/2)则更自然。特别地,实施例可以使用符号/> 来表示此范围。无论如何,在/>中执行加法、减法和乘法具有一对一对应关系。对称求模算符x′:=(x symod N)可以被定义为唯一值/>使得(x mod N)=(x′mod N)。
定点值支持表示合理数例如x=1.25。这可以通过使整数的后d位表示分数部分来实现。也就是说,设/>是无符号x的第i位,则x=∑2i-dxi。定点值集合可以用两个整数N、d进行参数化。然后可以将(有符号)值集合描述为/>其中对执行除法,并且假设N>2d。可以自然/标准方式定义加法和减法。对于x,y∈FxN,d的乘法,结果可以被定义为向下舍入到2-d的下一个倍数的/>
C.安全模型
考虑值和值k′的环,其中2k′<<N。考虑具有加法和带截断门的定点乘法的任何算术电路Cd。乘法门与截断参数d和误差分布ε相关联。给定两个输入值x和y,门的输出为(xy/2d+e),其中e是从分布ε采样的舍入误差项。每一方Pi都有输入/>并且其目标可以是在这些n个联合输入上评估电路Cd,而不揭示关于其相应输入的任何信息。输入值满足在评估电路Cd时任何乘法门的输入和输出存在于/>中的性质。
实施例可以遵循安全多方计算(MPC)的基于标准现实世界-理想世界模拟的安全定义[27]。下表2定义了理想函数性各种实施例认为对手最多会破坏t方并研究半诚实和恶意对手两者。
表2:用于在环上计算算术电路Cd的理想函数性。
D.计算机系统
图1示出根据本公开的实施例的系统100。系统100包括多个计算机,所述多个计算机包括计算机A 110、计算机B 120、计算机C 130和计算机D 140。多个计算机中的每个计算机可以与系统100中的任何其它计算机进行操作性通信。
计算机A 110包括存储器112、处理器114、网络接口116和计算机可读介质118。处理器114可以耦合到存储器112、网络接口116和计算机可读介质118。
为了简化说明,图1中示出一定数量的部件。然而,应理解,本发明的实施例可以包括多于一个每种组件。此外,本发明的一些实施例可以包括比图1中所示的所有组件更少或更多的组件。例如,即使在图1中示出计算机A 110的组件,但应理解,计算机B 120、计算机C130和/或计算机D 140可具有类似组件。
图1中的计算机之间的消息可以使用安全通信协议来发送,所述安全通信协议例如但不限于:文件传输协议(FTP)、超文本传输协议(HTTP)、安全超文本传输协议(HTTPS)、SSL、ISO(例如,ISO 8583)等。通信网络可以包括以下中的任一个和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网上节点的运行任务(OMNI);安全定制连接;广域网(WAN);无线网络(例如,采用例如但不限于无线应用协议(WAP)、I-模式等的协议);等。通信网络可以使用任何合适的通信协议以生成一个或多个安全通信信道。在一些情况下,通信信道可以包括安全通信信道,安全通信信道可以任何已知方式建立,例如通过使用相互认证和会话密钥,以及建立安全套接层(SSL)会话。
计算机A110的存储器112可以用于存储数据和代码。例如,存储器112可以存储秘密共享值。存储器112可以在内部或在外部耦合到处理器114(例如,基于云的数据存储装置),并且可以包括易失性和/或非易失性存储器(例如RAM、DRAM、ROM、闪存存储器或任何其它合适的存储器装置)的任何组合。
网络接口116可以包括可允计算机A 110与外部计算机通信的接口。网络接口116可使得计算机A110能够将数据传送到另一装置(例如,系统100中的其它计算机等)以及从另一装置传送数据。网络接口116的一些示例可以包括调制解调器、物理网络接口(例如以太网卡或其它网络接口卡(NIC))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(PCMCIA)插槽和卡等。由网络接口116启用的无线协议可以包括Wi-FiTM。经由网络接口116传送的数据可以呈信号的形式,所述信号可以是电信号、电磁信号、光信号,或者能够由外部通信接口接收的任何其它信号(统称为“电子信号”或“电子消息”)。可经由通信路径或信道在网络接口116与其它装置之间提供可包括数据或指令的这些电子消息。如上所述,可使用任何合适的通信路径或信道,例如电线或电缆、光纤、电话线、蜂窝链路、射频(RF)链路、WAN或LAN网络、互联网,或任何其它合适的介质。
计算机可读介质118可以包括代码,所述代码可由处理器114执行以用于执行根据本文所描述的实施例的方法。作为示意性实例,计算机可读介质118可以包括代码,所述代码可由处理器114执行以用于执行由多个计算机中的第一计算机执行的用于实施用于多方定点乘法的复制协议的方法,所述方法包括:获得第一固定值(x)的第一秘密份额和第二固定值(y)的第二秘密份额;用与第一计算机配对的另一计算机对第一伪随机密钥(si,j)并且用多个计算机中的多个集合中的第一集合(Dj)对第二伪随机密钥(sj)进行联合采样;使用第二伪随机密钥(sj)生成随机值的复制随机份额([[r]]R);使用第一伪随机密钥(si,j)生成复制共享值(β);通过提供用复制共享值(β)和随机值的复制随机份额([[r]]R)掩蔽的第一秘密份额和第二秘密份额的乘积来计算掩蔽份额(z′i);由第一计算机从第一集合(Dj)中的计算机接收多个掩蔽份额(z′i),由此向第一集合(Dj)揭示集合共享值z';以及使用接收到的多个掩蔽份额(z′i)和随机值的复制随机份额([[r]]R)生成复制秘密份额([[z]]R)。
III.秘密共享技术
实施例提供了用于执行定点计算的若干技术。第一方法包括对环的有效复制秘密共享,这是对由[36、37]执行的秘密共享方法的改进。第二种方法是对素数字段/>的秘密共享,例如Shamir秘密共享。第三方法是加法秘密共享。实施例根据计算机的数量和设置考虑不同类型的秘密共享方案:对于少量计算机的复制秘密共享/>以及对于大量计算机的Shamir秘密共享和加法秘密共享/>
不管共享方案是自然地支持(例如,如复制秘密共享中那样)还是支持/>(例如,如Shamir秘密共享中那样),根据实施例的操作都遵循类似的方法。例如,对于输入值x∈FxN,d的计算机Pi,计算机Pi将值x映射到目标组中,并且秘密共享值x。具体地说,对于包括和N=2k的复制秘密共享系统,计算机Pi可以计算x′:=x2dmod2k,然后运行输入共享协议。在对/>的Shamir秘密共享的情况下,计算机Pi可以计算x′:=x2dmodq并且可以输入x′。共享值的加法和减法以及公共整数的乘法遵循与标准秘密共享相同的方法。为了向一些各方揭示共享定点值/>首先执行标准揭示程序以揭示x′。然后,将最终结果计算为x:=x′/2d∈FxN,d
乘以这种类型的定点秘密份额时存在的技术问题是,标准协议将在FxN,d中的FxN,2d给定输入值中产生语义值,并且还忽略乘积溢出N的可能性。也就是说,设是值x,y∈FxN,d的共享,如上文所描述。然后,当使用标准/>(例如,复制秘密共享)或/>(例如,Shamir秘密共享)协议计算/>(例如,乘以值)时,将产生值z′,使得z′/2d≈xy,其中近似来自较低阶项的舍入。然后可以使用截断取FxN,2d中的共享值并产生舍入到FxN,d中的所述值的份额。
理想地,此舍入将完全对应于FxN,d中的乘法(向下舍入到最接近的2-d),但几项工作[16、36、37]已表明,可以通过允许概率舍入来实现显著的性能改进。实施例在理想函数性中体现这种概率舍入,所述理想函数性由模量N、小数位数d和舍入误差分布ε进行参数化。此分布可以指定可以如何执行舍入。
实施例在减少通信开销的同时适应并改进了超出两方设置的这些现有方法。
表3:定点乘法的概率函数性。
A.复制秘密共享
通过均匀地对(其中/>)进行采样来对值/>进行复制秘密共享,使得x=∑ixi。/>可以是任何组,例如针对素数q的/>或/>为了获得值x的n分之t复制秘密共享,可以分发这些份额,使得(t+1)方的每个子集持有值x的所有m份额,但任何更少方的分组丢失至少一个份额。这样做的一种方法如下。将集合定义为大小(n-t)的m个不同子集。在不丧失一般性的情况下,对于i∈[n],设Di={i,i+1,i+2,…}是带有环绕的从索引i开始的连续计算机索引集合,如关于图2所示。然后,第i计算机Pi的复制秘密份额为/> 实施例可以使用组/>
图2示出根据本公开的实施例的包括计算机集合的计算机系统。图2示出了从同一计算机网络分组的三个不同的计算机集合。图2包括第一计算机集合210(D1)、第二计算机集合220(D2)和第三计算机集合230(D3)。计算机网络可以包括分组到任何数量的重叠计算机集合中的任何数量的计算机。
第一计算机集合210包括第一计算机P1、第二计算机P2和第三计算机P3。第二计算机集合220包括第二计算机P2、第三计算机P3和第四计算机P4。第三计算机集合230包括第一计算机P1和第四计算机P4。在复制秘密共享中,可以由索引为Di的所有计算机持有(例如,存储)份额xi
由于方法的线性,因此可以通过将对应运算应用于份额来本地执行与公共常数的加法、减法或乘法。例如,可以通过使每个计算机Pi定义输出份额 来完成计算/>减法以相同的方式工作,而公共乘法/>可以通过定义/>来执行。为了将两个秘密共享值/>相乘,由于x与y的值之间的交叉项,各方可以执行交互式协议。本文更详细地描述了两个秘密共享值的乘法。
根据实施例的复制秘密共享方法可用于对环的2分之2秘密共享方案。值被秘密共享成两个随机值z1、/>使得对于一些k≥k′,z1+z2=z。Mohassel和Zhang[37]显示,只要|z|<<2k,则除法是相对于整数的商的概率很高。此处,具有负一的可能性来自以下事实:如果(z1mod2d)+(z2mod2d)≥2d,则这将生成“进位位”,“进位位”通过对份额执行单独的除法运算而被消除,数学上表示如下。
理解这种方法有两个细微之处:1)各个份额z1、z2应解释为范围 内的有符号整数,以及2)|z|<<2k-1的必要性。在z1+z2环绕环/>的情况下(例如,如果将z1、z2解释为整数并将它们相加时产生(z1+z2)>2k-1或(z1+z2)>2k-1+1),则必须成立的是值z1、z2均为正或负,并且值z具有相反的符号。然而,在将z1、z2除以2d之后,这些值相加不再能环绕/>因此求和不等于z/2d。z1+z2环绕的事件被称为灾难性错误[37]
为了修复这些灾难性错误,[37]观察到了以下几点。首先,按随机值重新定义份额,且z1:=-r、z2:=r+z,并要求/>其中2k′<<2k。然后,在概率至少为1-2k-k的情况下,认为值z1和z2不具有相同的符号,因为这将意味着r+z环绕/>并且r的前k-k′位被设置为1。鉴于z1、z2不具有相同的符号,它们不可能环绕/>且因此/>将等于/>如上文所描述。
遗憾的是,这种方法不会泛化到多于两方。原因在于,无论值x的分布如何,份额都可能环绕模量。Mohassel和Rindal[36]能够通过在多方设置中模拟两方协议来避免这个问题。这需要添加预处理阶段,其中计算截断对考虑到这一点,可以通过揭示/>并然后设/>来模拟上述协议。由于z1是公开的,因此所有各方都可以计算/>
[36]的主要限制是需要生成截断对[36]呈现在半诚实设置中需要2k二进制与门且在恶意设置中需要4k二进制与门的三方预处理协议。在多方场景中,泛化此方法分别产生2tk和2mk与门。由于/>这种方法的开销不会随着n增长而按比例缩放。
实施例解决了前述技术问题,其源自上文所论述的原始“进位位”技术问题。实施例提供一种用于生成值x的多方共享的有效技术,所述值保证不环绕模量。作为起点,考虑通过对每个份额进行采样,然后将最后一个份额定义为x1=x-x2-…-xm,来对/>(其中k≥k′+λ+log2m)进行秘密共享x∈/>观察到随机份额的采样范围是基础值的2λ倍,其中λ是统计安全参数。利用这一点以充分隐藏值x。
根据定义,这种类型的共享不能环绕模量,因此,对每个份额进行的本地除法大约截断基础秘密共享值。特别地:
其中e:=(x1 symod 2d+…+xm symod 2d)/2d∈[-m,m]。也就是说,对份额的本地除法导致秘密共享值类似地被截断,具有至多logm位的绝对误差|e|。
由于在每次乘法之后份额的大小加倍,此方法不能单独地提供实际秘密共享方案。实施例通过有效地将传统秘密共享(例如,复制)转换为上文描述的共享、执行除法然后转换回来克服此值大小问题。
现在将讨论高效复制秘密共享技术。首先,考虑将x值的复制秘密共享除以2d以获得对整数的共享/>(其中z≈x/2d)的任务。结合此与具有很少增加开销的乘法协议,将在本文中进一步详细描述。
回想一下,每个复制秘密共享由在n方之间分布的m个份额组成,特别是x=(x1+…+xm)symod 2k。实施例可以利用环中的秘密值,其中一些2k′<<2k(例如,k=k′+λ+log2m)。
各方对随机值r的随机共享进行联合采样,其中份额ri被定义为/> 这种类型的秘密共享具有三个值得注意的性质。第一性质是/>在重建时不环绕/>(例如,r=(r1+…+rm)=(r1+…+rm symod 2k))。第二性质是随机值r的分布以及随机值r和秘密值x(例如,w:=r+x)的总和在统计上是接近的。此第二性质跟随随机值r分布在大约是秘密值x的/>倍的范围上。第三性质是,可以通过将份额作为伪随机函数(PRF)的输出进行采样来非交互式地对随机共享/>进行采样。
协议可以通过向所有各方揭示等于的所揭示值/>来继续。假设r+x没有环绕并观察到:
其中e:=(x symod 2d+r1 symod 2d+…+rm symod 2d)/2d
如前所述,误差值e∈[-m,m]。各方可以通过定义和zi:=-ri/2d(其中,i∈[2,m])来本地计算给定所揭示值/>和共享随机值/>的份额
接下来,将描述融合乘法和截断。执行融合乘法和截断方法的简单方法是首先执行标准乘法协议以计算然后执行截断协议以计算/> 这种方法的主要缺点是需要执行两轮交互。
首先,回顾正常乘法协议。观察相乘的秘密值 且份额被分布,使得至少一个计算机可以计算每个交叉项xjyj′。份额xj、yj将由计算机Pi持有,其中所有i∈Dj(各方集合Dj由(n-t)方的集合组成,并且根据定义,Pi∈Di)。每个交叉项xjyj′可以被分配给单个Pi,并且设ui是交叉项的总和。对于j∈(n,m],各方集合Dj中的各方非交互式地对/>进行采样。另外,各方非交互式地对n分之n非零共享/>进行采样,其中计算机Pi持有零共享份额si,并且所有零共享份额的总和等于零∑isi=0。鉴于此,计算机Pi定义/> 并将z′i分布到各方集合Di中的所有各方。此处,/>对分配给计算机Pi的z′j项集合进行索引。表7给出此协议的详细描述。
存在两个随机份额集合:1)z′j,其中j∈(n,m],和2)ri,其中i∈[n],它们扮演略微不同的角色。鉴于对手破坏t方,因此将恰好有它们不持有份额(例如,)的一个索引j*∈[m]。因此,应对/>均匀地采样,如上文所完成。
零共享具有略微不同的目的。为了进行示例,假设第一秘密值x以某种方式为对手所知,而第二秘密值y且因此/>不为对手所知。当确定第一秘密值x和第二秘密值y的乘积时,诚实方Pi将各自使用/>来计算其份额z′i。因此,如果不包括si,则对于这些z′i值中的一些,对手将知道所有其它项并且可以求解/>然而,通过包括零共享,实施例有效地将对手关于/>所面临的不确定性“分布”到发送的所有z′i个消息中。
现在,乘法和除法协议可以组合成单个融合运算。变化是,代替分布份额z′,各方将直接揭示w=z′+r,然后如前所述执行除法步骤。除了这种概念变化之外,可以观察到,由于z′被随机值r充分掩蔽,因此不再需要对份额z′j(其中j∈(n,m])进行采样。
更详细地,每个计算机Pi计算其交叉项xj、yj′与其零共享si的总和ui。随机值的共享被采样为/>其确保随机值r不会环绕。计算机Pi计算/> 并向所有各方揭示。最终输出份额被定义为z1:=w1/2d-r1/2d和zi:=-ri/2d,其中i∈[2,m]。表6给出半诚实安全协议的详细描述。
为了实现恶意安全性,实施例可以包括信息理论MACαz′以及项z′。MAC密钥α对于对手来说是未知的,并且在所有各方之间是秘密共享的。使用各方可以计算αz′的秘密份额。然后,可以运行MAC检查协议(例如,来自[23]的图10中的实例),所述MAC检查协议检查MAC项αz′的份额是否与/>和z′一致。由此,可以保证项z′被对手正确计算。最后,在如半诚实协议中那样计算/>之后,实施例还可以计算/>下表9更详细地描述了所述方法。
B.Shamir秘密共享
为了Shamir秘密共享[43]值持有值x的计算机可以对均匀随机t次多项式/>进行采样,使得所述多项式的第一点位于值x(例如,px(0)=x)处。每个计算机Pi都被给予点/>这是在点i处对多项式px的评估。i次多项式由(t+1)个点唯一地定义,因此,(t+1)方的任何子集都可以使用其份额来重建多项式px并检取秘密值x=px(0),而少于(t+1)方的任何子集都不学习关于秘密的信息。符号/>可以使用t′次多项式来表示值x的Shamir秘密共享。通常,将参考t次多项式来描述实施例,在这种情况下为简介起见省略次数(例如,/>),并且对于素数q考虑/>然而应当理解,实施例不限于此。
与复制秘密共享的情况一样,观察到可以对每个份额本地执行与常数的加法和乘法。也就是说,为了计算或/>每个计算机Pi分别本地计算或/>类似地,为了计算两个共享值的总和每个计算机Pi可以将其份额本地计算为/>然而,当将两个共享值相乘时,需要额外的处理,这将在本文中进一步详细描述。
为进行比较,将首先参考表4论述Catrina和Saxena[16]的计算的协议的详细描述。所述方法的核心是观察到当分子除以2d时,2d的整数除法和/>的模块化除法相同。然后,在给定任意分子/>的情况下,直觉是实施例通过计算/>中的(a-(amod2d))·2-d来以整数计算a/2d。挑战在于支持有符号值,并提供给定/>时计算共享的有效方式。
表4:截断协议[16,协议3.1]。
为了支持有符号值,实施例要求a处于中,其中2k<q。然后,实施例通过计算/>将a移位到范围[0,2k)内。现在观察到,a′:=b mod 2d精确地是a的“语义”低阶位。实际上,移位a允许同时处理正案例和负案例。
给定各方使用掩码和开放技术来近似/>首先,预处理对/>其中/>且r′:=(r mod2d)。然后,将掩蔽值c:=b+r揭示给所有各方。要求b+r不环绕/>这稍后将进行讨论。各方定义c′:=c mod 2d=b+r mod 2d。观察到/>等于(b mod 2d)或(b-1mod 2d)。此-1项是由于b+r在位位置d处生成通过mod 2d运算消除的进位位的可能性。因此,此截断将导致与[36、37]中相同的舍入误差。然后,可以将最终结果计算为/>其相对于整数等于a/2d或a/2d-1。
在[16]中,分别给出乘法和除法。后续工作[12]给出了将乘法和除法组合成单个轮次的优化,如表5所示。在高级别上,协议从计算更高级别乘积并打开其掩蔽版本的标准策略开始。然后,遵循[16]的截断协议,将掩蔽值z′移位到范围[0,2k),并且计算未被掩蔽的后d位的份额。然后,将这些份额用于计算可被截断后d位的乘积的共享。
表5:Shamir秘密共享的乘法协议。
根据实施例的Shamir秘密共享方法在概念上类似于复制秘密共享方法。这种通用性说明了根据实施例的方法的通用性,因为它可以应用于许多设置。
第一步骤是各方对随机值r的线性秘密共享进行采样,所述随机值不环绕模量。实现这一点的一种方法是使计算机Pi(其中i∈[t+1])对进行采样并生成/>的共享。鉴于这些,各方可以定义/>和/>通过与上文相同的分析,对于具有至多log2t位的一些误差值e,r/2d=r′+e。
然后,为了截断秘密值x的现有共享乘以2d,各方向所有各方揭示/> 输出份额被定义为/>由于随机值r不均匀地分布在/>上,因此此协议要求|x|<<q,以便争论秘密值x保持隐藏,这是所有高效除法协议的共同特性。表13呈现了详细协议。
C.加法秘密共享
可以通过对均匀采样使得x=∑ixi,来对值/>进行加法秘密共享。然后,第i计算机Pi的加法秘密份额为/>注意,除非所有n方聚集在一起,否则不会学习有关秘密x的信息。实施例可以使用组/>类似于其它两种共享技术,可以通过将对应运算应用于份额来本地执行与公共常数的加法、减法或乘法,但两个秘密共享值之间的乘法需要额外处理。
上述用于复制秘密共享和Shamir秘密共享的方法利用在各方之间存在诚实多数的设置。这是这些秘密共享方案固有的要求。然而,这不是根据实施例的高效共享和截断技术的要求。实际上,根据实施例的截断方法可以被视为适用于任何t<n的通用技术。
例如,在加法秘密共享设置中,为了截断秘密共享值其中/>且log2N≥k′+λ+log2n,首先设各方对不环绕/>的随机值r的线性秘密共享进行采样。特别地,每个计算机Pi(其中i∈[t+1])对/>进行采样,并生成/>中的/>和/>的共享。鉴于这些,各方可以定义/>和/> 通过与上文相同的分析,实施例对于具有至多log2t位的一些误差值e,使得r/2d=r′+e。
为了说明此想法,实施例示出如何将截断协议并入到与不诚实多数的加法秘密共享中,并在表15中呈现定点乘法协议。
IV.用于多方定点乘法的复制秘密共享协议
实施例提供一种用于在存在半诚实对手的情况下利用复制秘密共享进行定点乘法的新技术。然后示出了如何将此方法并入通用MPC协议中以计算任何算术电路。
另外,实施例提供一种在存在恶意对手的情况下利用复制秘密共享执行定点乘法的方法。
A.复制秘密共享:半诚实
对于利用复制秘密共享进行定点乘法的半诚实协议,考虑两个定点值,即第一秘密值x和第二秘密值y,其以二进制补码形式在环中表示,其中后d位表示小数。两个定点值x和y可以是系统中任何计算机都不知道的秘密值。系统中的计算机(例如,各方)在扩展环/>(其中k≥(k′+λ+log2(m)))中分别持有第一秘密值x和第二秘密值y的复制秘密份额/>和/>
系统中的计算机可以尝试计算复制秘密份额其中输出值/>输出值z可以是第一秘密值x和第二秘密值y的乘积。所述方法可以在扩展环/>上的n个计算机P1,…,Pn之间进行。计算机的系统可以包括多个计算机集合,其中每个集合可以包括多于一个计算机。许多不同的集合可以由m表示,并且可以与计算机的总数n有关,为表6正式描述了所述方法。
在设置阶段,系统中的每对计算机Pi和Pj可以对第一伪随机密钥si,j进行联合采样,而每个集合Dj中的计算机对第二伪随机密钥sj进行采样。然后,在在线阶段,对于每个定点乘法,多个计算机中的每一个可以通过使用PRF密钥sj随机本地生成每个份额rj来联合生成随机值r的复制份额。观察到,虽然输入x和y存在于中,但每个份额ri存在于/>中,并且随机值r存在于/>中。然后,各方使用第二伪随机密钥si,j来生成表示为β的零的复制共享,其中每个βi存在于/>中。
然后,每个计算机基于计算机的第一秘密值份额、第二秘密值份额和随机值份额生成掩蔽份额z′。可以使用z′=x·y+r来确定掩蔽份额z′,所述掩蔽份额可以用零的份额进一步掩蔽。可以将掩蔽份额z′揭示给第一计算机集合D1中的所有计算机。应注意,零的共享确保掩蔽份额z′的个别份额不会以明文形式被揭示给任何计算机——这是因为每一个别份额不在整个环上,并且因此如果以明文形式被揭示,则可能泄漏关于第一秘密值x和第二秘密值y的乘积中的项的信息。
现在,当第一集合D1中的计算机获得掩蔽份额z′=x·y+r时,观察到尽管随机值r在环中并不完全均匀,但其采样空间足够大于第一秘密值x和第二秘密值y的乘积的值,并且实际上在统计上接近均匀分布,因此掩蔽份额z′看起来对所有计算机足够随机。最后,每个计算机可以通过将第一份额z1=z′/d-r1/d和其余份额确定为zj=-rj/d来获得共享的复制秘密份额/>
图3示出了用于多方定点乘法的复制协议的示例性信令过程300。图3示出如表6中所描述的复制协议的信令过程。如图3所示,网络包括多个计算机,所述多个计算机包括第一计算机302、第二计算机304和第三计算机306。计算机可以执行多方定点乘法的复制方法。尽管图3中示出了三个计算机,但应理解,任何数量的计算机都可以使用如本文所描述的方法进行交互。
在步骤310之前,多个计算机中的每个计算机可以获得第一值(x)的第一秘密份额和第二值(y)的第二秘密份额/>
在步骤310处,包括第一计算机302、第二计算机304和第三计算机306在内的计算机网络中的每个计算机可以在本地对密钥(si,j、sj)进行采样。例如,每个计算机可以对第一伪随机密钥(si,j)和第二伪随机密钥(sj)进行采样。
第一伪随机密钥(si,j)可以由一对计算机生成。计算机网络中的每个计算机可以与网络中的另一计算机配对。每对计算机中的两个计算机可以对第一伪随机密钥(si,j)进行联合采样。特别地,对于其中的每对计算机i,j∈[n](其中i<j),计算机Pi和Pj对第一PRF密钥si,j←{0,1}κ进行联合采样。
第二伪随机密钥(sj)可以由计算机集合生成。计算机网络中的每个计算机可以在网络中的计算机的集合(例如,子集)中。例如,网络可以包括10个计算机和2个计算机集合,每个计算机包括5个计算机。每个计算机集合可以与多个集合中的计算机集合(Dj)对第二伪随机密钥(sj)进行联合采样。
例如,一对计算机(Pi和Pj)(例如,第一计算机302和第二计算机304)可以对第一PRF密钥(si,j)进行联合采样,并且每个计算机集合(Dj)中的计算机可以对第二PRF密钥(sj)进行采样。因此,网络中的每个计算机可以获得两个密钥,其中每个密钥在至少两个计算机之间共享。
在步骤315处,第一计算机302、第二计算机304和第三计算机306可以通过使用第二伪随机密钥(sj)随机生成每个份额(rj)来本地生成随机值(r)的复制份额。网络中的每个计算机可以获得随机值(r)的份额份额可能因计算机而异。
计算机可以以任何合适的方式对随机值进行采样。例如,每个计算机可以维护计数器(cnt),所述计数器可以与第二伪随机密钥(sj)一起用作伪随机函数发生器的输入。例如,每个计算机可以对进行采样,使得/>
在步骤320处,第一计算机302、第二计算机304和第三计算机306可以在本地使用第一伪随机密钥(si,j)来生成零的复制共享(例如,由β表示的零的n分之n秘密共享)。例如,每个计算机可以生成预处理零值(γi,j)。一半计算机可以生成正预处理零值(γi,j),而另一半计算机可以生成负预处理零值(γi,j)。例如,计算机j∈[1,i)可以生成正预处理值(γi,j),而计算机j∈(i,n]可以生成负预处理值(γi,j)。可以使用第一PRF密钥(si,j)和计数器(cnt)生成每个预处理零值(γi,j)。然后,每个计算机可以与其计算机集合中的其它计算机通信,以从集合中获得每个预处理零值(γi,j)。可以基于来自集合的预处理零值(γi,j)来确定零(β)的复制共享。例如,零(β)的复制共享可以等于来自集合(例如,βi:=∑j∈[n]/iγi,j)的预处理零值(γi,j)的总和。
在步骤325处,第一计算机302、第二计算机304和第三计算机306可以在本地计算掩蔽份额(z′i)。掩蔽份额(z′i)可以是用复制共享值(β)和随机值的复制随机份额掩蔽的第一秘密份额/>和第二秘密份额/>的乘积。第一计算机302可以确定第一掩蔽份额(z′i=1),第二计算机304可以确定第二掩蔽份额(z′i=2),并且第三计算机306可以确定第三掩蔽份额(z′i=3)。特别地,多个计算机中的每个计算机可以将掩蔽份额确定为:
在步骤330处,由计算机集合(D1)中的每个计算机计算的掩蔽份额(z′i)可以在计算机集合之间共享,所述计算机例如第一计算机302、第二计算机304和第三计算机306。计算机集合(D1)中的每个计算机可以从由所述计算机集合(D1)中的每个计算机计算的掩蔽份额(z′i)获得集合共享掩蔽值(z′)。集合共享掩蔽值(z′)可以是由计算机集合(D1)中的每个计算机持有的相同值。这可以执行,因为掩蔽份额(z′1,…,z′n)可以是集合共享掩蔽值z′的n分之n秘密共享。可以向计算机集合(例如,Pi∈D1)中的每个计算机揭示集合共享掩蔽值z′。掩蔽份额(z′i)对于计算机集合中的所有计算机可看起来足够随机。
在步骤335处,在从计算机集合(D1)内的每个计算机接收到掩蔽份额(z′i)之后,第一计算机302、第二计算机304和第三计算机306可以生成复制秘密份额[[z]]R。可以基于接收到的多个掩蔽份额(z′i)和随机值的复制随机份额([[r]]R)来生成复制秘密份额。
在一些实施例中,第一计算机可以基于由掩蔽份额(z′i)、小数位(d)和随机值(r1)的第一计算机份额创建的掩蔽值(z')来确定输出值的第一复制份额[[z]]R。特别地,第一计算机可以通过执行z1:=z′/d-r1/d来确定输出值的第一复制份额[[z]]R。其它计算机可分别基于由所述计算机持有的随机值(rj)的份额和小数位(d)来确定输出值的其它复制份额[[z]]R。特别地,其它计算机可以通过执行zj:=-rj/d来确定输出值的复制份额[[z]]R
表6:针对半诚实对手的利用复制秘密份额进行定点乘法的协议。
表6所示的协议中可以进行轮次数量与每次通信的消息数量之间的折衷。在乘法阶段,协议利用一轮通信。然而,每个计算机将其掩蔽份额z′中的份额发送到集合D1中的每个计算机,因此交换的消息的总数为n·(n-t),其是计算机数量的二次方。替代地,其它实施例可以具有两轮协议,其中在第一轮中,所有计算机可以仅将其掩蔽份额z′中的份额发送到计算机集合D1中的一个计算机(例如,主导计算机P1)。然后,主导计算机可以将掩蔽份额z′转发到计算机集合D1中的其它计算机。这将消息数量减少到(n-1)+(n-t-1),这与所存在的计算机数量呈线性关系。
就信息理论而言,PRF使用了计算假设。然而,使用PRF是为了减少通信。实际上,为了使协议完全信息论,实施例可以通过使一个计算机挑选(例如,生成或以其它方式获得)对应的随机串并与其它计算机共享(以更多通信为代价)来代替PRF调用。
B.复制秘密共享:恶意
本节基于来自先前部分的半诚实设置中的复制秘密共享方法,以描述用于在存在恶意对手的情况下使用复制秘密共享进行定点乘法的协议。然后示出了如何将此并入通用MPC协议中以计算任何算术电路。
对于任何n方,其中n≥3,可以对使用复制秘密共享表示的两个值执行乘法。首先,将参考表10和11论述此秘密共享设置中的乘法协议。然后,将参考表9用此乘法协议作为子例程来描述利用截断协议的定点乘法。
定点乘法方法可以包括第一秘密值x和第二秘密值y,并且设环为系统中的计算机可以分别具有第一秘密值x和第二秘密值y的复制秘密份额/>和/>计算机可以尝试计算复制秘密份额/>其中输出值z是第一秘密值x和第二秘密值y的乘积(例如,z≈xy)。复制乘法在逻辑上可以分成两部分:(1)本地计算乘积的n分之n加法共享,以及(2)将n分之n份额“提升”为复制共享。表7示出复制乘法协议,而表8示出“提升”协议。
表7:用复制秘密份额进行乘法的协议
表8:用于将n分之n共享提升为复制秘密共享的协议。
图4示出框图400,其示出用于多方定点乘法的示例性复制方法。将参考表9论述图4中所示的方法。
在步骤410之前,每个计算机可以存储来自第一复制秘密份额的第一秘密值x的第一秘密值份额xj和来自第二复制秘密份额/>的第二秘密值y的第二秘密值份额yj
在步骤410处,每个计算机可以对第一伪随机密钥(si,j)和第二伪随机密钥(sj)进行采样。第一伪随机密钥(si,j)可以由一对计算机(Pi和Pj)联合采样。第二伪随机密钥(sj)可以由每个集合(Dj)中的计算机集合进行采样。在表9中的设置阶段中讨论密钥的采样。
每个计算机可以本地存储计数器,所述计数器可以由每个计算机递增、递减和等同地重置。计数器可以允许计算机在伪随机函数生成器和利用增量值的任何其它过程方面保持同步。
在步骤420处,在生成第一伪随机密钥(si,j)和第二伪随机密钥(sj)之后,每个计算机可以生成第一随机值(r)和第二随机值(r')的复制份额。
每个计算机可以对第一随机值(r)进行采样以获得第一随机值份额(rj)。可以使用伪随机函数生成器基于第二伪随机密钥(sj)来生成第一随机值份额(rj)。伪随机函数生成器还可以接受计数器作为输入。
第二随机值(r')可以由每个计算机生成,以基于第一随机值份额(r[g2]j[/g2])和可以表示小数值的小数位值d获得第二随机值份额(r'[g3]j[/g3])。特别地,可以通过将第一随机值份额(rj)除以小数位值d来确定第二随机值份额(r'j)。
在步骤430处,在生成随机值份额之后,计算机可以生成零的复制共享(或零的n分之n秘密共享)。可以基于第一伪随机密钥(si,j)创建零的复制共享。零的复制共享用β表示,其中每个βi存在于环Z2k中。特别地,可以通过执行以下来生成零的复制共享(βi):定义(其中j∈[1,i))和/> (其中j∈(i,n]),然后设置βi:=∑j∈[n]/iγi,j
在步骤440处,在生成零的复制共享之后,计算机可以生成掩蔽份额(z′i)。掩蔽份额(z′i)可以提供由零的份额掩蔽的值(x、y)的组合。可以基于第一秘密值份额xj、第二秘密值份额yj、第一随机值份额(rj)和零的复制共享(βi)来生成掩蔽份额(z′i)。特别地,每个计算机可以计算:
在一些实施例中,计算机可以对MAC密钥的复制秘密份额([[α]]R)进行联合采样,其中对α进行随机采样。MACα可以与掩蔽份额z'相加。在隐蔽对手可以被包括为计算机的情况下,可以使用批量检查过程(例如,在470处)处理相加了MACα的掩蔽份额z',以确定MACαz'被正确生成,从而检测计算机是否欺骗或不完全遵循协议。
在步骤450处,在生成掩蔽份额(z′i)之后,可以由每个计算机集合(Di)中的每个计算机确定集合共享掩蔽份额(z')(其可以是由集合中的每个计算机共享的集合共享值),所述集合共享掩蔽份额可以在计算机集合(Di)中的计算机之间共享。计算机可以观察到,掩蔽份额对于计算机集合中的所有计算机可看起来足够随机。例如,每个计算机可以与计算机的计算机集合共享其生成的掩蔽份额(z′i)。在从计算机集合中的计算机接收到每个掩蔽份额(z′i)时,计算机集合中的每个计算机可以从多个掩蔽份额(z′i)获得集合共享掩蔽份额(z')。
在步骤460处,在获得集合共享掩蔽份额(z')之后,每个计算机可以生成复制秘密份额[[z]]R。这可以使用集合共享掩蔽份额(z')、第一随机值份额(rj)和小数位值(d)来执行。在一些实施例中,第一计算机可以基于集合共享掩蔽份额(z')、小数位值(d)和第一随机值(r1)的第一份额来确定第一复制秘密份额z1。例如,第一计算机可以通过执行z1:=z′/d-r1/d来确定第一复制秘密份额z1。多个计算机中的其它计算机可以基于其第一随机值份额(rj)的相应份额和小数位值(d)来生成其复制秘密份额[[z]]R的份额。例如,其它计算机可以通过执行zj:=-rj/d来确定其复制秘密份额zj
在一些实施例中,可以基于从接收到的掩蔽复制秘密份额[[αz]]R移除MAC密钥α来生成复制秘密份额[[z]]R
在一些实施例中,在步骤470处,可以使用批量检查协议检查MAC密钥的复制秘密份额([[α]]R)的一致性,以确保使用([[αz']]R)正确地打开掩蔽份额(z')。执行批量检查协议可以标识试图恶意提供掩蔽值z'的任何对抗方,因为这种对抗计算机不会知道MAC密钥(α)。
例如,在一些实施例中,可以执行MAC检查以进一步提高系统的安全性。考虑中以二进制补码形式表示的两个定点值x、y,其中后d位表示小数。计算机持有扩展环/>中的复制秘密份额/>其中k≥(k′+2λ+log2(m))。计算机可以尝试计算复制秘密份额/>其中输出值/>协议在扩展环/>上在n个计算机P1,…,Pn之间工作。设和/>是大小为(n-t)的计算机的m个不同子集。在一些实施例中,在执行定点乘法协议之前(并且作为总体MPC协议的一部分),计算机可以对MAC密钥的复制秘密份额/>进行联合采样,其中α从/>中随机采样。然后,计算机使用表9中的协议生成输入之一的MAC的份额/>
实施例可以使用[23]的图10中的“MAC检查”协议来实例化函数性
/>
表9:针对恶意对手的利用复制秘密份额进行定点乘法的协议。
表10:用于检查关于秘密共享值的MAC的理想函数性。
/>
表11:针对恶意对手的利用复制秘密共享的MPC协议。
除了用于半诚实安全性的协议之外,实施例还可以添加信息理论MACαz′以及项z′。然后,由于对手对α是未知的,因此如果MAC检查协议未中止,则保证项z′由对手正确计算。最后,在如半诚实协议中那样计算之后,实施例现在还可以计算/>
V.用于多方定点乘法的SHAMIR秘密共享协议
一些实施例可以提供用于利用Shamir秘密共享进行定点乘法的半诚实协议。
图5示出用于多方定点乘法的示例性Shamir共享协议的框图500。
在步骤510之前,每个计算机可以获得两个定点值,即第一秘密值x和第二秘密值y,其中第一秘密值x和第二秘密值y可以由包括多个计算机的网络中的计算机经由字段/>(其中q≥2k·(t+1))上的Shamir秘密共享/> 持有。因此,每个计算机可以持有第一秘密值的一个份额和第二秘密值的一个份额。对于在秘密值之间发生的每次乘法(例如,当将第一秘密值x和第二秘密值y相乘时),计算机可以尝试学习乘积的Shamir秘密份额/>其中z≈xy/d。将参考表13描述此方法。
对于每个定点乘法,多个计算机中的每个计算机可以首先执行预处理,其中计算机获得字段中的第一随机值的n分之2t Shamir秘密共享/>和字段/>中的第二随机值的n分之t Shamir秘密共享/>第一随机值r在数学上与第二随机值r’相关,特别是其中r′=r/d。第一随机值r和第二随机值r′作为n个随机值的总和生成,即r=∑i∈[n]ri且r′=∑i∈[n]r′i,其中r′i=ri/d,并且它们由网络中的所有计算机贡献。由于从/>中对ri进行采样,因此求和中没有溢出。一旦生成具有截断的双重共享,协议的其余部分就遵循Shamir秘密共享的乘法技术。
特别地,在步骤510处,计算机(Pi)可以对随机值(ri)进行采样,并且生成第一随机值(ri)的Shamir份额,以获得第一随机份额([[ri]]S,2t)。计算机网络中的每个计算机可以生成随机值(ri)的第一随机份额([[ri]]S,2t)以及第二随机份额([[ri/d]]S),其中使用n分之2t共享来确定第一随机份额([[ri]]S,2t)。可以基于第一随机份额和小数位值(d)生成第二随机份额([[ri/d]]S)。
在步骤520处,在生成第一随机份额([[ri]]S,2t)之后,每个计算机可以将第一随机份额([[ri]]S,2t)和第二随机份额([[ri/d]]S)发送到计算机网络中的其它计算机。
在步骤530处,在接收到第一随机份额([[ri]]S,2t)的每个份额和第二随机份额([[ri/d]]S)的每个份额之后,每个计算机可以获得第三随机份额([[r]]S,2t)和第四随机份额([[r']]S)的n分之t Shamir份额。
第三随机份额([[r]]S,2t)可以基于第一随机份额([[ri]]S,2t)的每个份额来生成。例如,第三随机份额([[r]]S,2t)可以等于第一随机份额([[ri]]S,2t)的每个份额的总和。
第四随机份额([[r']]S)可以基于第二随机份额([[ri/d]]S)的每个份额来生成。例如,第四随机份额([[r']]S)可以等于第二随机份额([[ri/d]]S)的每个份额的总和。
在步骤540处,每个计算机可以计算掩蔽份额([[z']]S,2t)。掩蔽份额可以提供用第三随机份额([[r]]S,2t)掩蔽的(x、y的)定点乘法。每个计算机可以基于第一秘密份额([[x]]S)、第二秘密份额([[y]]S)和第三随机份额([[r]]S,2t)来确定掩蔽份额([[z']]S,2t)。例如,每个计算机可以通过将第一秘密份额([[x]]S)乘以第二秘密份额([[y]]S),然后加上第三随机份额([[r]]S,2t)来确定掩蔽份额([[z']]S,2t)。
在步骤550处,计算机网络中的每个计算机可以将掩蔽份额([[z']]S,2t)发送到主导计算机(例如,P1),所述主导计算机又可以根据掩蔽份额([[z']]S,2t)确定掩蔽值(z')。然后,主导计算机可以将掩蔽值(z')发送到网络中的所有其它计算机。掩蔽值z'可以看起来足够随机地用于其它接收计算机。
具体地说,第一计算机P1可以学习掩蔽值z′=x·y+r并将其发送到多个计算机中的所有其它计算机。尽管第一随机值r在字段中不是完全均匀的,但其采样空间足够大于x·y的值,并且实际上在统计上接近均匀分布,因此掩蔽值z′看起来对所有计算机足够随机。
在步骤560处,每个计算机然后可以使用接收到的值z'和Shamir份额[[r']]S输出Shamir秘密份额[[z]]S。通过对第一随机值r和第二随机值r′进行截断的双重共享的正确性,所有计算机都可以通过取来获得/>的共享。
表12:用于检查秘密共享值的范围的理想函数性。
表6:利用Shamir秘密份额进行定点乘法的半诚实协议。
根据实施例,截断技术不必遵循乘法步骤,并且它不一定需要诚实多数。它可用作截断任何t<n的Shamir共享值的一般方法。
在一些实施例中,计算机可以实施利用Shamir秘密共享进行定点乘法的半诚实协议。Shamir共享协议可以包括呈二进制补码形式的定点值(x、y),其中计算机持有Shamir秘密份额[[x]]R和[[y]]R。对于每个定点乘法,计算机可以执行协议以获得Shamir秘密份额[[z]]S
表14中呈现的用Shamir秘密共享利用前述定点乘法协议的MPC协议可用于计算其中乘法是具有截断的定点乘法的任何算术电路。
表14:利用Shamir秘密共享的MPC的协议。
VI.用于多方定点乘法的加法秘密共享
一些实施例提供用于利用加法秘密共享进行定点乘法的半诚实协议。考虑中以二进制补码形式表示的两个定点值,包括第一秘密值x和第二秘密值y。计算机网络中的计算机分别将第一秘密值x和第二秘密值y的第一加法秘密份额/>和第二加法秘密份额保持在扩展环/>中,其中k≥k′+λ+log2n。此外,可以假设计算机将呈形式的预处理的Beaver三元组保持在/>中,其中/>且γ=α·β。Beaver三元组可以包括第三值(α)的秘密份额/>第四值(β)的秘密份额和第五值(γ)的秘密份额/>对于每个定点乘法,计算机可以尝试确定加法秘密份额/>其中/>将相对于表15正式描述。
图6示出根据本公开的实施例的用于多方定点乘法的示例性加法共享协议的框图。图6中所示的方法可以由包括多个计算机的网络中的第一计算机执行。
在步骤602之前,多个计算机中的每个计算机可以获得多个秘密值的秘密份额和小数位值(d)。秘密份额可以包括第一值(x)的秘密份额第二值(y)的秘密份额第三值(α)的秘密份额/>第四值(β)的秘密份额/>和第五值(γ)的秘密份额/>多个计算机中的计算机可以尝试将第一值(x)和第二值(y)相乘。然而,由于每个计算机仅存储第一值(x)的秘密份额/>和第二值(y)的秘密份额/>因此计算机可以彼此通信以根据步骤602-620以秘密共享方式执行多方定点乘法的加法共享协议。
由每个计算机持有(例如,存储)的份额可以是因计算机而异的唯一份额。因此,当提及值的份额时,应理解,值的份额在不同计算机处不同。
第三值(α)的秘密份额、第四值(β)的秘密份额和第五值(γ)的秘密份额构成预处理的Beaver三元组。第一值(x)和第二值(y)是环中以二进制补码形式表示的定点值。
在步骤602处,多个计算机中的每个计算机可以确定第一共享随机值的份额和第二共享随机值的份额/>在一些实施例中,可以在预处理步骤中执行第一共享随机值的份额/>和第二共享随机值的份额/>的确定。
计算机可以如下确定第一共享随机值和第二共享随机值的份额/>每个计算机可以对扩展环/>进行采样以生成第一初始随机值的份额/>和第二初始随机值的份额/>可以基于第一初始随机值的份额/>和小数位值(d)来创建第二初始随机值的份额/>每个计算机可以将第一初始随机值的份额和第二初始随机值的份额/>发送到多个计算机。在接收到第一初始随机值的份额/>和第二初始随机值的份额/>之后,每个计算机可以基于第二初始随机值的份额/>来确定第一共享随机值的份额/>(例如,每个计算机可以基于所述第一共享随机值的份额/>来确定第二共享随机值的份额/>(例如,/>/>
在步骤604处,在确定第一共享随机值的份额和第二共享随机值的份额之后,多个计算机中的每个计算机可以基于第一值(x)的秘密份额/>和第三值(α)的秘密份额/>来确定第一中间份额/>例如,每个计算机可以通过将第一值(x)的秘密份额/>和第三值(α)的秘密份额/>相加来确定由所述计算机持有的第一中间份额/>(例如,/> 加上第三值(α)的秘密份额可以掩蔽第一值(x)的秘密份额/>
在步骤606处,在确定第一中间份额之后,多个计算机中的每个计算机可以基于第二值(y)的秘密份额/>和第四值(β)的秘密份额/>来确定第二中间份额/>例如,每个计算机可以通过将第二值(y)的秘密份额/>和第四值(β)的秘密份额/>相加来确定由所述计算机持有的第二中间份额/>(例如,加上第四值(β)的秘密份额/>可以掩蔽第二值(y)的秘密份额/>
在步骤608处,在多个计算机中的每个计算机确定第一中间份额和第二中间份额/>之后,每个计算机可以将第一中间份额/>和第二中间份额/>发送到第一计算机。在一些实施例中,第一计算机可以被称为主导计算机。
第一计算机可以从计算机网络接收第一中间值(x′)的第一中间份额中的每一个,因此以明文形式向第一计算机揭示第一中间值(x′)。第一计算机可以从计算机网络接收第二中间值(y′)的第二中间份额/>中的每一个,因此以明文形式向第一计算机揭示第二中间值(y′)。
第一计算机可以根据加法秘密共享技术重建如本文中详细描述的第一中间值(x′)和第二中间值(y′)。
在步骤610处,在接收到第一中间份额中的每一个和第二中间份额中的每一个之后,第一计算机可以向多个计算机中的其它计算机揭示第一中间值(x′)和第二中间值(y′)。
在步骤612处,在多个计算机中的每个计算机接收到第一中间值(x′)和第二中间值(y′)之后,每个计算机可以确定第三中间份额然后,每个计算机可以基于第一中间值(x')、第二中间值(y')、第一值(x)的秘密份额/>第二值(y)的秘密份额第五值(γ)的秘密份额/>和第二共享随机值的份额/>来确定第三中间份额/>例如,每个计算机可以如下确定第三中间份额/>
在步骤614处,在每个计算机确定第三中间份额之后,每个计算机可以将第三中间份额/>发送到第一计算机。第一计算机可以从计算机网络接收第三中间值(z′)的第三中间份额/>中的每一个,因此以明文形式向第一计算机揭示第三中间值(z′)。第一计算机可以根据加法秘密共享技术重建如本文详细描述的第三中间值(z′)。
在步骤616处,在接收到第三中间份额中的每一个之后,第一计算机可以向多个计算机中的其它计算机揭示第三中间值(z′)。第一计算机可以任何合适的方式将第三中间值(z′)发送到其它计算机。
在步骤618处,在多个计算机中的每个计算机接收到第三中间值(z′)之后,每个计算机可以基于第三中间值(z′)、小数位值(d)和第一共享随机值的份额来确定输出秘密份额/>例如,每个计算机可以将第三中间值(z′)除以小数位值(d),然后减去第一共享随机值的份额/>特别地,每个计算机可以执行/>
输出秘密份额是输出值(z)的秘密份额,其可以是当组合成输出值(z)时等于第一值(x)乘以第二值(y)的秘密份额。
表15:利用加法秘密份额进行定点乘法的半诚实协议。
乘法协议是与Beaver三元组相乘,然后使用新的截断技术。截断步骤不必遵循乘法步骤,并且每当需要截断时都可以用作一般方法。
表16中呈现了用加法秘密共享利用根据实施例的定点乘法协议的MPC协议。此方法可用于计算其中乘法是具有截断的定点乘法的任何算术电路。
/>
表16:利用加法秘密共享的MPC的协议。
VII.性能比较
将根据实施例的复制的和基于Shamir的定点乘法方法的性能与现有工作的性能进行比较。特别地,实施例将与[36]进行上的多方(半诚实)复制秘密共享的比较,并与[16]进行[9、31]中广泛实施的/>上的Shamir秘密共享的比较。
表14:与[16、36]相比,根据实施例的方法的通信(位)和舍入复杂性。对于Shamir,如果适用,实施例不包括生成Beaver三元组的成本。
A.复制秘密共享
Mohassel和Zhang[37]研究了上的两方秘密共享并在单轮通信中执行独立乘法和截断操作。根据实施例的方法(如果在限制两方设置中看)与它们的方法类似地具有执行性。
Mohassel和Rindal[36]通过在另一MPC协议内有效地模拟[37]的两方协议而推广到多于两方。实质上,[36]的协议将各方的份额输入到二进制MPC协议中,在二进制MPC协议中对底层值进行重建、截断,然后生成新的算术共享并将其输出到各方。可以优化其方法以具有实际的具体性能。特别地,在第三方情况下,它涉及具有2k个二进制门的预处理阶段,并且在在线阶段中几乎没有开销。然而,在多方情况下,当涉及超过3方时,它需要((n2-nt)tk)位离线通信和((n2-nt)k)位在线通信,其中t<n/2是对破坏方数量的限制。
根据实施例的方法消除了在二进制协议内模拟两方协议的需要。如表14中所建议,根据实施例的方法发送大约t或(n-t)t/2倍少的数据,这取决于如何揭示掩蔽值z′。特别地,可以将掩蔽值z′的所有份额发送到集合D1中的所有(n-t)方,从而产生单轮协议,或者单方可以接收它们,然后以额外轮次为代价将它们发送到集合D1中的其余方。无论如何,根据实施例的方法需要比[36]显著更少的通信,特别是在根据实施例的方法完全非交互式的离线阶段。
B.Shamir秘密共享
根据用于Shamir秘密共享的实施例的方法也是对Catrina和Saxena[16]的工作的显著改进。主要区别在于[16]的协议需要预处理k位秘密份额然后使用所述秘密份额执行截断运算。用于生成随机位的典型方法[23]需要共享随机值和单个乘法。因此,[16]的定点乘法协议的总成本是有效的k个乘法。
另一方面,根据实施例的方法需要(t+1)方各自生成随机共享。对于不诚实多数,这可以在没有使用预共享密钥的交互的情况下生成(例如,根据实施例的方法与标准乘法一样有效)。更一般地,此离线阶段需要发送总共(n-t-1)(t+1)个元素以及标准乘法协议的开销。这与需要生成k个随机份额和k个乘法的[16]形成对比,参见表14。在实践中,实施例通常将预期n,t<<k,因此,这表示通信的显著减少。
VIII.其它计算机系统详细信息
本文所提及的任何计算机系统都可以使用任何合适数量的子系统。在图7中示出计算机系统700中的此类子系统的示例。在一些实施例中,计算机系统包括单一计算机设备,其中子系统可以是计算机设备的组件。在其它实施例中,计算机系统可以包括具有内部组件的多个计算机设备,每个计算机设备是子系统。计算机系统可以包括台式计算机和膝上型计算机、平板计算机、移动电话和其它移动装置。
图7中所示的子系统经由系统总线701互连。示出附加子系统,例如打印机708、键盘716、存储装置718、耦合到显示适配器712的监测器722(例如,显示屏,例如LED)等。耦合到输入/输出(I/O)控制器702的外围装置和I/O装置可以通过本领域中已知的各种构件连接到计算机系统,所述构件例如是输入/输出(I/O)端口714(例如USB、)。例如,I/O端口714或外部接口720(例如以太网、Wi-Fi等)可以用于将计算机系统700连接到例如因特网的广域网、鼠标输入装置或扫描仪。经由系统总线701的互连允许中央处理器706与每个子系统通信,且控制来自系统存储器704或存储装置718(例如固定磁盘,如硬盘驱动器或光盘)的多个指令的执行,以及子系统之间的信息交换。系统存储器704和/或存储装置718可以体现计算机可读介质。另一子系统是数据收集装置710,例如照相机、麦克风、加速度计等。本文中提及的任何数据可以从一个组件输出到另一组件并且可以输出到用户。
计算机系统可以包括例如通过外部接口702、内部接口或经由可移动存储装置连接在一起的多个相同的组件或子系统,所述可移除存储装置可从一个组件连接到另一个组件以及从中移除。在一些实施例中,计算机系统、子系统或设备可以通过网络进行通信。在此类情况下,一个计算机可以被视为客户端且另一个计算机被视为服务器,其中每个计算机都可以是同一计算机系统的一部分。客户端和服务器可以各自包括多个系统、子系统或组件。
IX.证明
现在将为本文所描述的各种方法提供安全证明。提供证明以说明所提供的实施例的改进以及方法和系统的安全性。然而,应理解,实施例不受以下证明的限制。
A.复制半诚实:证明
实施例现在证明协议ΠRShare-MPC-SH在诚实多数的情况下安全地实现针对半诚实对手的理想函数性舍入误差分布ε由随机变量(∑i∈[m]si)/d定义,其中si在/>上是均匀的。正式地,实施例证明以下定理:
定理5.1。假设存在单向函数,则表15中呈现的协议ΠRShare-MPC-SH在存在破坏t<n/2方的集合的半诚实对手的情况下安全地计算(表2),具有上文定义的舍入误差分布ε。
表15:针对半诚实对手的利用复制秘密共享的MPC协议。
证明。考虑破坏t方(其中t<n/2)的集合S*的对手设诚实方由包括的集合H表示。模拟器/>具有以下输入:函数性/>的输出out和指示破坏方的输入和随机性的集合/>S的策略描述如下。
共享:代表每个诚实方Pi,进行以下操作:
1.对进行采样,使得0=∑i∈[m]xi
2.对于每个破坏方(其中,i*∈Dj),将xj发送给/>
线性运算:这些是不需要模拟的本地运算。
定点乘法:S参与表6中的设置阶段。针对每个乘法,对于任两个份额 S进行以下操作:
1.回顾,Sj是索引为Dj的各方集合。如下对进行采样:对于每个j∈[m],如果则对/>进行采样。否则,根据表6设置/>
2.对于每个诚实方Pi,计算βi:=∑j∈[n]/iγi,j,其中γi,j计算如下:
-如果Pj∈S*,根据表6定义(其中,j∈[1,i))和/> (其中,j∈(i,n])。/>
-如果且j>i,对/>进行采样,并将值存储在Γ[i][j]中。如果且j<i,查询Γ并设置γi,j=-Γ[i][j]。
3.运行步骤3至步骤5。
输出重建:S如下重建输出out。
如果
1.从接收消息集合。
2.代表P1,向所有其它方发送输出out。
如果P1∈S*
1.设置z*=0。
2.根据的输入和随机性/>以及迄今为止的协议记录,对于每个j∈[m],如果/>则计算zj并设置z*=z*+zj。如果/>则向/>发送zj
3.设j1,…,jl∈[m]表示索引,其中
4.选择将/>计算为/>
5.代表诚实方,向发送/>
实施例显示,上述模拟策略通过混合论证是成功的。
Hyb0:如表15所示,考虑扮演诚实方角色的模拟器SimHyb。这是现实世界。
Hyb1:切换输出。这类似于Hyb0,除了SimHyb现在通过使用来自理想函数性的输出out来运行在理想世界中/>所完成的输出重建步骤。在这种混合论证中,诚实方也从获得他们的输出。
Hyb0与Hyb1之间的唯一区别是各方学习其输出的方式。在现实世界中,协议的正确性来自于不变量,即在每次线性运算或定点乘法之后,各方保持输出的复制秘密共享。在定点乘法的情况下,容易观察到与输出相关联的舍入误差遵循上文定义的分布ε。从协议的正确性来看,很容易观察到现实世界的输出与理想函数性的输出相同,只是误差可以忽略不计。对于破坏方,在Hyb1中,观察到SimHyb选择值以确保由破坏方重建的输出与来自理想函数性的值out相同。因此,这两种混合论证在统计学上是不可区分的。
Hyb2:PRF为随机。在此混合论证中,对于每个定点乘法,代表诚实方,对于每个j∈[m],如果则SimHyb对/>进行采样而不是作为PRF的输出。
在乘法阶段中,对于每个j∈[m],如果则在Hyb1中,诚实方使用伪随机函数PRF对串rj进行采样,而在Hyb2,随机均匀地对它们进行采样。由于在协议中的其它任何地方都不使用对应的PRF密钥sj,因此容易观察到,如果存在能够以不可忽略的概率区分这两种混合论证的对手/>则实施例可以构建打破伪随机函数PRF的安全性的规约/>这是矛盾的。因此,这两种混合论证在计算上是不可区分的。
Hyb3:PRF为随机。在此混合论证中,对于每个定点乘法,代表每个诚实方Pi,如在理想世界中一样计算0份额βi。特别地,如果且不作为/>的输出,则从/>随机地对项γi,j进行采样。/>
与先前情况一样,Hyb2与Hyb3之间的计算不可区分性来自伪随机函数的安全性。
Hyb4:切换输入。代表每个诚实方,在输入共享步骤中,SimHyb现在生成0的份额而不是实际输入。这种混合论证与理想世界相同。
首先,容易观察到,仅在输入共享阶段结束时,诚实方的输出和的观点的联合分布是相同的。这源于复制秘密共享方案的安全性,因为对手最多破坏t<n/2方,因此对于每个诚实方输入最多学习t个份额。如果实施例另外包括线性运算,则可以扩展相同的论证。
可以说,在每个定点乘法中,对手的观点在统计上保持接近。在乘法协议中,值z′由n个值(z′1,…,z′n)构成。对于每个诚实方Pi,其生成的z′i由经值掩蔽的乘积的项组成。观察到,除了/>知道∑Pi∈Hβi(由于它们形成了0的共享)这一事实之外,每个单独的份额βi在/>中看起来都是均匀随机的。因此,容易争论的是,每个值z′i都没有向/>揭示关于由βi掩蔽的乘积项的信息。然后,D1中的所有各方学习z′=x·y+r。现在,r=∑j∈[m]rj,其中rj个值中的至少一个仅对诚实方已知。特别地,对于每个j,使得rj在空间/>中对/>均匀地随机出现。因此,存在于/>中的乘积x·y被属于较大空间/>的至少一个随机串掩蔽。因此,可以认为,/>只能在两种混合论证之间区分z′=x·y+r,概率至多为2,这就完成了两种混合论证在统计学上不可区分的证明。
B.复制恶意:证明
在此部分中,实施例证明协议ΠRShare-MPC-M在诚实多数的情况下安全地实现针对半诚实对手的理想函数性舍入误差分布ε由随机变量(∑i∈[m]si)/d定义,其中si在/>上是均匀的。正式地,实施例证明以下定理:
定理3。假设存在单向函数,则表11中呈现的协议ΠRShare-MPC-Ma在存在破坏t<n/2方的集合的恶意对手的情况下安全地计算(表2),具有上文定义的舍入误差分布ε。
证明。考虑破坏t方(其中t<n/2)的集合S*的对手设诚实方由包括的集合H表示。模拟器/>具有以下输入:函数性/>的输出out和指示破坏方的输入和随机性的集合/> 的策略描述如下。
设置:对进行采样。运行MPC协议的模拟器,其中各方联合生成α以使得α=α*,并且代表诚实方接收/>然后,代表每个诚实方,与在现实世界中一样运行表6中的协议∏RShare-Mu1的设置。
共享:代表每个诚实方P:
1.对进行采样,使得/>对于每个破坏方/>(其中,i*∈Dj),将xj发送给/>
2.模拟用于计算函数性的MPC协议(表12)。
3.将PRF切换为随机:运行乘法协议ΠRShare-Mul(表7、表8),唯一的区别为,不是由本地计算的PRF值现在由/>随机均匀地采样。更详细地说,/>
-在表7的步骤1中,代表每个诚实方Pi,如下计算项r′j:如果Pj∈S*,则如表7所示,定义(其中,j∈[1,i))和/>(其中,j∈(i,n])。如果/>且j>i,对/>进行采样,并将值存储在R′[i][j]中。如果/>且j<i,查询R′[i][j]并设置r′i,j=-R′[i][j]。
-在表8的步骤1中,对于每个j∈(n,m],如果则对/>进行采样。否则,根据表8设置/>
对于每个破坏方的输入共享:
1.使用诚实方的份额和/>的MPC协议的模拟器,提取/>如果提取不成功,则输出“提取中止”。
2.用输入查询理想函数性/>并接收输出out。
线性运算:这些是不需要模拟的本地运算。
定点乘法:对于每个乘法,对于任何两个输入份额如在半诚实的情况下一样,唯一的变化为,不是由/>本地计算的PRF值现在由/>随机均匀地采样。更详细地说,/>执行以下操作:
1.回顾,Sj是索引为Dj的各方集合。对于每个j∈[m],如果则对进行采样。否则,根据表9设置/>计算r′j=rj/d,并运行乘法协议(表7、表11)以计算/>具有与上述步骤3中列出的相同变化。
2.对于每个诚实方Pi,计算其中γi,j计算如下:
-如果Pj∈S*,根据表9定义(其中,j∈[1,i))和/> (其中,j∈(i,n])。
-如果且j>i,对/>进行采样,并将值存储在Γ[i][j]中。如果且j<i,查询Γ[i][j]并设置γi,j=-Γ[i][j]。
3.运行如表9所示的步骤3至步骤6。
4.MAC检查失败:根据对所有份额和PRF密钥的知识,计算对手要发送的值/>如果在步骤5中,/>没有中止,但/>发送的值与上面计算的值/>不一致,则输出“MAC中止”。
输出重建
1.设置z*=0。对于每个j∈[m]:注意由于即每个Sj具有至少一个诚实方,/>知道zj。如果/>则更新z*=z*+zj
2.设j1,…,jl∈[m]表示索引,其中/>
3.选择将/>计算为/>
4.代表诚实方,按照实际协议发送他们的份额z。
5.从接收zj个值。在实际协议中,如果/>向任何诚实方Pi发送了不一致的值,则指示理想函数性/>向所述诚实方递送输出“中止”。否则,指示/>递送正确的输出out。
现在实施例显示,上述模拟策略通过混合论证是成功的。
Hyb0:如表11所示,考虑扮演诚实方角色的模拟器SimHyb。这是现实世界。
Hyb1:随机α。在设置阶段,对进行采样。运行MPC协议的模拟器,其中各方联合生成α以使得α=α*
用于联合生成α的MPC协议的安全性暗示了Hyb0和Hyb1的不可区分性。
Hyb2:输入提取。在输入共享阶段,SimHyb运行步骤,即步骤1,就像在理想世界中一样。也就是说,使用诚实方的份额和/>的MPC协议模拟器,提取并查询/>以学习输出out。如果提取不成功,则输出“提取中止”。
的MPC协议的安全性来看,/>的MPC协议模拟器在没有成功提取输入的情况下中止但在实际执行中诚实方没有中止的概率可以忽略不计。因此,SimHyb在Hyb2中输出“提取中止”的概率可以忽略不计。除此之外,应注意,Hyb1和Hyb2产生的分布是相同的。因此,这两种混合论证是不可区分的。
Hyb3:切换输出。SimHyb现在通过使用从接收到的输出out来运行由/>在理想世界中完成的输出重建步骤。
在这种混合论证中,诚实方也从获得他们的输出。
Hyb2与Hyb3之间的唯一区别是各方学习其输出的方式。对于破坏方,在Hyb3中,观察到SimHyb选择值以确保由破坏方重建的输出与来自理想函数性的值out相同。在现实世界中,协议的正确性很容易观察到(就像在半诚实的情况下一样)。最后,观察到在现实世界中,如果SimHyb检测到/>向任何诚实方发送的任何不一致份额,它会指示向所述诚实方递送输出“中止”。因此,与半诚实的情况一样,很容易观察到现实世界的输出与理想函数性的输出相同,只是误差可以忽略不计。因此,这两种混合论证在统计学上是不可区分的。
Hyb4:PRF为随机。在乘法协议中,未本地计算的所有伪随机函数输出现在如在理想世界中/>所完成的那样随机均匀地采样。
与半诚实协议一样,很容易看出,Hyb3与Hyb4之间的计算不可区分性来自伪随机函数PRF和的安全性。
Hyb5:MAC检查。SimHyb如在理想世界一样运行步骤4,并且如果成功发送了z′的不正确份额,同时确保/>成功,则输出“MAC中止”。
由于MAC密钥α对来说是均匀随机的,因此/>的安全性确保了在/>成功发送z′的不正确份额的同时/>成功的概率可忽略不计。因此,SimHyb在Hyb4中输出“MAC中止”的概率可忽略不计,并且这两种混合论证是不可区分的。/>
Hyb6:模拟在输入共享步骤中,模拟用于计算函数性/>的MPC协议。
Hyb6和Hyb7的不可区分性来自于用于计算的MPC协议的安全性。
Hyb7:切换输入。代表每个诚实方,在输入共享步骤中,SimHyb现在生成0的份额而不是实际输入。这种混合论证与理想世界相同。
此论证类似于半诚实协议中的论证。这里的唯一区别在于,与半诚实协议不同,不一定诚实地遵循协议。然而,以下两件事保证了诚实方将以压倒性的概率检测到/>对诚实行为的任何偏离,而不会揭示任何关于输入的信息:(i)在定点乘法协议中,MAC检查(函数性/>)保证z′的每个份额都由/>正确地生成。(ii)除了在定点乘法中计算的z′的份额外,对于作为电路评估的一部分计算的任何其它值/>的每个份额由至少一个诚实方持有——这是因为t<n/2,且因此(n-t)>t。因此,这两种混合论证在统计学上是不可区分的,这就完成了证明。
C.Shamir:证明
在此部分中,实施例证明协议ΠSShare-MPC安全地实现了针对破坏t<n/2方的半诚实对手的理想函数性舍入误差分布ε由随机变量(∑i∈[t+1]si)/d定义,其中si在/>上是均匀的。正式地,实施例证明以下定理:
定理7.1。表14中呈现的协议ΠSShare-MPC在存在破坏t<n/2方的半诚实对手的情况下,在统计学上安全地实现了具有舍入误差分布ε的函数性(表2中定义)。
证明。协议的正确性来自于不变量,即在每次线性运算或定点乘法之后,各方保持输出的n分之tShamir秘密共享。这对于线性运算来说很简单。关于截断的定点乘法,不变量依赖于(∑i∈[t+1]ri)/d≈∑i∈[t+1]ri/d这一事实。应注意,每个|ri|<2k′+λ,因此∑i∈[t+1]|ri|<2k′+λ·(t+1),这表明∑i∈[t+1]ri不会溢出。因此,(∑i∈[t+1]ri)/d≈∑i∈[t+1]ri/d,其中舍入误差遵循上文定义的分布ε。
为安全起见,考虑破坏了t方的集合C(表示为)的对手/>设诚实方由包括/>的集合H表示。模拟器/>具有以下输入:函数性/>的输出out和指示破坏方的输入和随机性的集合/>实施例构建PPT模拟器/>所述PPT模拟器遵循被破坏方的协议描述以生成/>的观点,并且代表诚实方执行以下运算:
共享:代表每个诚实方
1.对进行采样。
2.对于每个破坏方将sj发送到/>
线性运算:这些是不需要模拟的本地运算。
定点乘法:对于每个定点乘法:
-预处理:
1.对于每个破坏方(其中Ci∈[t+1]),对/>进行采样。/>
2.对于每个诚实方(其中Hi∈[t+1]),对/>进行采样,生成并将份额发送到被破坏方。
3.设r:=∑i∈[t+1]ri
·在线乘法:
·如果P1是诚实方,则设z′:=r,并代表P1将其发送到
·如果P1是破坏方,则计算所有破坏方的份额设诚实方的份额是随机的,使得重建的z′=r,并代表诚实方将其发送到P1
重建输出:
·如果P1是诚实方,则设并代表P1将其发送到/>
·如果P1是破坏方,则计算所有破坏方的份额设诚实方的份额是随机的,使得重建的/>并代表诚实方将这些份额发送到P1
现在实施例显示,上述模拟策略通过混合论证是成功的。
Hyb0的观点与现实世界中诚实方的输出。
Hyb1:与Hyb0相同,但在重建输出的最后一步中,模拟器代表诚实方执行以下运算:如果P1是诚实方,则根据理想函数性设z:=out,并代表P1将其发送到否则,设诚实方的份额是随机的,使得重建的z=out,并代表诚实方将这些份额发送到P1。同时,用诚实方在理想世界中的输出来代替诚实方在现实世界中的输出。
Hyb0和Hyb1在统计学上是相同的,这源于协议的正确性。由于诚实方持有至少一个份额,因此如果诚实方对其份额进行采样以与输出一致,则在统计学上与相同。
Hyb2:与Hyb1相同,但对于通过截断进行的每个定点乘法,模拟器将诚实方的份额操纵为随机的,使得z′=x·y+r。
这种混合论证在统计学上与Hyb1相同,因为在预处理中存在由诚实方贡献的至少一个ri。因此,如果诚实方对其份额进行随机采样以与z′一致,则在统计上与相同。
Hyb3:与Hyb2相同,但对于通过截断进行的每个定点乘法,模拟器将诚实方的份额操纵为随机的,使得z′=r而不是x·y+r。
由于并且在预处理中存在由诚实方贡献的至少一个ri(从/>采样),因此r和x·y+r的分布在统计学上是接近的。因此,这种混合论证与Hyb2在统计学上是不可区分的。
Hyb4:与Hyb3相同,但是模拟器代表每个诚实方向破坏方发送随机份额以供其输入。
这种混合论证与Hyb3在统计学上相同,这源于Shamir秘密共享的安全性。这种混合论证输出模拟观点和诚实方在理想世界中的输出,从而得出证明。
D.加法:证明
在此部分中,实施例证明协议ΠAShare-MPC安全地实现了针对破坏t<n方的半诚实对手的理想函数性舍入误差分布ε由随机变量(∑i∈[t+1]si)/d定义,其中si在/>上是均匀的。正式地,实施例证明以下定理:/>
定理12.1。给定预处理的Beaver三元组,表16中呈现的协议ΠAShare-MPC在存在破坏t<n方的半诚实对手的情况下,在统计学上安全地实现了具有舍入误差分布ε的函数性(表2中定义)。
证明。协议的正确性来自于不变量,即在每次线性运算或定点乘法之后,各方保持输出的加法共享。这对于线性运算来说很简单。对于通过截断进行的定点乘法,根据实施例的方法可以包括与Beaver三元组相乘,然后使用和/>进行截断。不变量依赖于(∑i∈[t+1]ri)/d≈∑i∈[t+1]ri/d这一事实。应注意,每个|ri|<2k′+λ,因此∑i∈[t+1]|ri|<2k′+λ·(t+1),这表明∑i∈[i+1]ri不会溢出。因此,(∑i∈[t+1]ri)/d≈∑i∈[t+1]ri/d,其中舍入误差遵循上文定义的分布ε。
为安全起见,考虑破坏了t方的集合C(表示为)的对手/>设诚实方由包括/>的集合H表示。模拟器/>具有以下输入:函数性/>的输出out和指示破坏方的输入和随机性的集合/>实施例构建PPT模拟器/>所述PPT模拟器遵循被破坏方的协议描述以生成/>的观点,并且代表诚实方执行以下运算:
共享:代表每个诚实方
1.对进行采样。
2.对于每个破坏方将sj发送到/>
线性运算:这些是不需要模拟的本地运算。
定点乘法:对于具有截断的每个定点乘法:
-预处理:
1.对于每个破坏方(其中Ci∈[t+1]),对/>进行采样。
2.代表每个诚实方(其中Hi∈[t+1]),对/>进行采样,生成并将份额发送到被破坏方。
3.设r:=∑i∈[t+1]ri
在线乘法:
如果P1是诚实方,则对进行采样并设z′:=r;代表P1将x、y、z′发送到
如果P1是破坏方,则设诚实方的份额和/>是随机的,并代表诚实方将其发送到P1。然后,针对所有破坏方计算份额/>设诚实方的份额是随机的,使得重建的z′=r,并代表诚实方将这些份额发送到P1
重建输出:
如果P1是诚实方,则设z:=out,并代表P1将其发送到
如果P1是破坏方,则计算所有破坏方的份额设诚实方的份额是随机的,使得重建的z=out,并代表诚实方将这些份额发送到P1
实施例现在表明,通过混合论证,上述模拟观点以及诚实方在理想世界中的输出与的观点和诚实方在现实世界中的输出在统计学上是不可区分的。
Hyb0的观点与现实世界中诚实方的输出。
Hyb1:与Hyb0相同,但在重建输出的最后一步中,模拟器代表诚实方执行以下运算:如果P1是诚实方,则根据理想函数性设z:=out,并代表P1将其发送到否则,设诚实方的份额是随机的,使得重建的z=out,并代表诚实方将这些份额发送到P1。同时,用诚实方在理想世界中的输出来代替诚实方在现实世界中的输出。
Hyb0和Hyb1在统计学上是相同的,这源于协议的正确性。由于诚实方持有至少一个份额,因此如果诚实方对其份额进行采样以与输出一致,则在统计学上与相同。
Hyb2:与Hyb1相同,但对于通过截断进行的每个定点乘法,模拟器将诚实方的份额操纵为随机的,使得z′=x·y+r。
这种混合论证在统计学上与Hyb1相同,因为在预处理中存在由诚实方贡献的至少一个ri。因此,如果诚实方对其份额进行随机采样以与z′一致,则在统计上与相同。
Hyb3:与Hyb2相同,但对于通过截断进行的每个定点乘法,模拟器将诚实方的份额操纵为随机的,使得z′=r而不是x·y+r。
由于并且在预处理中存在由诚实方贡献的至少一个ri(从/>采样),因此r和x·y+r的分布在统计学上是接近的。因此,这种混合论证与Hyb2在统计学上是不可区分的。
Hyb4:与Hyb2相同,但对于通过截断进行的定点乘法,模拟器将诚实方的x′和y′的份额操纵为随机的。
首先,x′=x+α在中是一致随机的,为/>由于诚实方持有α的至少一个份额,因此如果诚实方对其份额进行随机采样,则x′的分布在统计学上是相同的。出于同样的原因,如果诚实方对其份额进行随机采样,则y′的分布在统计上是相同的。因此,这种混合论证与Hyb3在统计学上是相同的。
Hyb5:与Hyb4相同,但是模拟器代表每个诚实方向破坏方发送随机份额以供其输入。
这种混合论证与Hyb4在统计学上相同,这源于加法秘密共享的安全性。这种混合论证输出模拟观点和诚实方在理想世界中的输出,从而得出证明。
X.参考文献
1.谷歌云AI。cloud.google.com/products/machine-learning/。
2.AWS上的机器学习。aws.amazon.com/machine-learning/。
3.微软Azure。azure.microsoft.com/en-us/services/machine-learning-studio/。
4.Watson机器学习。ibm.com/cloud/machine-learning。
5.Martín Abadi、Andy Chu、Ian J.Goodfellow、H.Brendan McMahan、IlyaMironov、Kunal Talwar和Li Zhang。“具有差分隐私的深度学习(Deep learning withdifferential privacy)”。CCS,2016年。
6.Mark Abspoel、Daniel Escudero和Nikolaj Volgushev。“具有连续属性的决策树的安全训练(Secure training of decision trees with continuous attributes)”。PETS,2021年。
7.Joy Algesheimer、Jan Camenisch和Victor Shoup。“高效计算模化共享秘密,应用于生成共享安全素数(Efficient computation modulo a shared secret withapplication to the generation of shared safe-prime products)”。CRYPTO,2002年。
8.Mehrdad Aliasgari、Marina Blanton、Yihua Zhang和Aaron Steele。“浮点数字的安全计算(Secure computation on floating point numbers)”。NDSS,2013年。
9.Abdelrahaman Aly、Marcel Keller、Emmanuela Orsini、Dragos Rotaru、PeterScholl、Nigel P Smart和Tim Wood。Scale-mamba v1.2:文档编制,2018年。
10.Assi Barak、Martin Hirt、Lior Koskas和Yehuda Lindell。“用于大规模P2P的MPC即服务和弱参与者低带宽MPC的端到端系统(An end-to-end system for largescale P2P mpc-as-a-service and low-bandwidth MPC for weak participants)”。CCS,2018年。
11.Megha Byali、Harsh Chaudhari、Arpita Patra和Ajith Suresh。“FLASH:用于隐私保护机器学习的快速稳健框架(FLASH:fast and robust framework for privacy-preserving machine learning)”。PETS,2020年。
12.Octavian Catrina。“安全多方定点算术的舍入高效协议(Round-efficientprotocols for secure multiparty fixed-point arithmetic)”。COMM,2018年。
13.Octavian Catrina。“面向实用的浮点数安全计算(Towards practicalsecure computation with floating-point numbers)”。Balkan CryptSec,2018年。
14.Octavian Catrina。“基于Shamir秘密共享的高效安全浮点算术(Efficientsecure floating-point arithmetic using shamir secret sharing)”。ICETE,2019年。
15.Octavian Catrina。“优化安全浮点算术:求和、点积和多项式(Optimizingsecure floating-point arithmetic:Sums,dot products,and polynomials)”。2020年。
16.Octavian Catrina和Amitabh Saxena。“使用定点数进行安全计算(Securecomputation with fixed-point numbers)”。金融密码使用术,2010年。
17.Harsh Chaudhari、Ashish Choudhury、Arpita Patra和Ajith Suresh。“ASTRA:环上的高通量3PC及其在安全预测中的应用(ASTRA:high throughput 3pc overrings with application to secure prediction)”。CCSW,2019年。
18.Harsh Chaudhari、Rahul Rachuri和Ajith Suresh。“Trident:用于隐私保护机器学习的高效4PC框架(Trident:Efficient 4pc framework for privacy preservingmachine learning)”。NDSS,2020年。
19.Koji Chida、Daniel Genkin、Koki Hamada、Dai Ikarashi、Ryo Kikuchi、Yehuda Lindell和Ariel Nof。“针对恶意对手的快速大规模诚实多数MPC(Fast large-scale honest-majority mpc for malicious adversaries)”。CRYPTO,2018年。
20.Anders P.K.Dalskov、Daniel Escudero和Marcel Keller。“量化神经网络的安全评估(Secure evaluation of quantized neural networks)”。PETS,2020年。
21.Anders P.K.Dalskov、Daniel Escudero和Marcel Keller。“神奇四:使用恶意安全性的诚实多数四方安全计算(Fantastic four:Honest-majority four-party securecomputation with malicious security)”。IACR ePrint,2020年。
22.Ivan Daniel Escudero、Tore Kasper Frederiksen、MarcelKeller、Peter Scholl和Nikolaj Volgushev。“用于环上主动安全MPC的新原语及其在私有机器学习中的应用(New primitives for actively-secure MPC over rings withapplications to private machine learning)”。IEEE S&P,2019年。
23.Ivan Marcel Keller、Enrique Larraia、Valerio Pastro、PeterScholl和Nigel P.Smart。“用于不诚实多数的实用秘密安全MPC——或:打破SPDZ限制(Practical covertly secure MPC for dishonest majority-or:Breaking the SPDZlimits)”。ESORICS,2013年。
24.Vassil Dimitrov、Liisi Kerik、Toomas Krips、Jaak Randmets和JanWillemson。“安全实数的替代实施(Alternative implementations of secure realnumbers)”。CCS,2016年。
25.Daniel Escudero和Anders P.K.Dalskov。“诚实多数MPC、中止与最少在线通信(Honest majority MPC with abort with minimal online communication)”。IACRePrint,2020年。
26.Daniel Escudero、Satrajit Ghosh、Marcel Keller、Rahul Rachuri和PeterScholl。“混合算术二进制电路上MPC基元改进(Improved primitives for MPC overmixed arithmetic-binary circuits)”。CRYPTO,2020年。
27.Oded Goldreich。密码学基础。2004年。
28.Oded Goldreich、Silvio Micali和Avi Wigderson。“如何玩任何心理游戏或具有诚实多数的协议的完备性定理(How to play any mental game or A completenesstheorem for protocols with honest majority)”。STOC,1987年。
29.Vipul Goyal、Yifan Song和Chenzhi Zhu。“保证产量交付在诚实多数MPC中免费(Guaranteed output delivery comes free in honest majority mpc)”。CRYPTO,2020年。
30.Chiraag Juvekar、Vinod Vaikuntanathan和Anantha Chandrakasan。“GAZELLE:用于安全神经网络推断的低时延框架(GAZELLE:Alow latency framework forsecure neural network inference)”。USENIX Security,2018年。
31.Marcel Keller。“MP-SPDZ:多方计算的通用框架(MP-SPDZ:A versatileframework for multi-party computation)”。CCS,2020年。
32.Nishat Koti、Mahak Pancholi、Arpita Patra和Ajith Suresh。“SWIFT:超快速、稳健的隐私保护机器学习(SWIFT:super-fast and robust privacy-preservingmachine learning)”。IACR ePrint,2020年。
33.Toomas Krips和Jan Willemson。“安全多方计算中定点数和浮点数的混合模型(Hybrid model of fixed and floating point numbers in secure multipartycomputations)”。国际信息安全会议,2014年。
34.Nishant Kumar、Mayank Rathee、Nishanth Chandran、Divya Gupta、AseemRas-togi和Rahul Sharma。“Cryptflow:安全张量流推断(Cryptflow:Secure tensorflowinference)”。IEEE S&P,2020年。
35.Pratyush Mishra、Ryan Lehmkuhl、Akshayaram Srinivasan、Wenting Zheng和Raluca Ada Popa。“Delphi:用于神经网络的密码推断服务(Delphi:Acryptographicinference service for neural networks)”。USENIX Security,2020年。
36.Payman Mohassel和Peter Rindal。“Aby3:机器学习的混合协议框架(Aby3:Amixed protocol framework for machine learning)”。CCS,2018年。
37.Payman Mohassel和Yupeng Zhang。“Secureml:用于可扩展隐私保护机器学习的系统(Secureml:A system for scalable privacy-preserving machine learning)”。IEEE S&P,2017年。
38.Arpita Patra、Thomas Schneider、Ajith Suresh和Hossein Yalame。“ABY2.0:改进的混合协议安全两方计算(ABY2.0:improved mixed-protocol secure two-party computation)”。USENIX Security,2020年。
39.Arpita Patra和Ajith Suresh。“BLAZE:快速隐私保护机器学习(BLAZE:blazing fast privacy-preserving machine learning)”。NDSS,2020年。
40.Pille Pullonen和Sander Siim。“结合秘密共享和乱码电路用于高效IEEE754专用浮点计算(Combining secret sharing and garbled circuits for efficientprivate ieee 754floating-point computations)”。Michael Brenner、NicolasChristin、Benjamin Johnson和Kurt Rohloff编辑,金融密码,2015年。
41.Deevashwer Rathee、Mayank Rathee、Nishant Kumar、Nishanth Chandran、Divya Gupta、Aseem Rastogi和Rahul Sharma。“Cryptflow2:实用两方安全推断(Cryptflow2:Practical 2-party secure inference)”。CCS,2020年。
42.Tord Reistad和Tomas Toft。“线性、常数舍入位分解(Linear,constant-rounds bit-decomposition)”。ICISC,2009年。
43.Adi Shamir。“如何共享秘密(How to share a secret)”。Commun.ACM,1979年。
44.Sameer Wagh、Divya Gupta和Nishanth Chandran。“Securenn:用于神经网络训练的三方安全计算(Securenn:3-party secure computation for neural networktraining)”。PETS,2019年。
可以使用硬件电路(例如专用集成电路或现场可编程门阵列)和/或使用以模块化或集成方式存储在具有一般可编程处理器的存储器中的计算机软件以控制逻辑的形式来实施实施例的各方面,因此处理器可以包括存储配置硬件电路的软件指令的存储器以及具有配置指令的FPGA或ASIC。如本文所使用,处理器可以包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或联网的多个处理单元,以及专用硬件。基于本文提供的公开内容和教导,本领域普通技术人员将知道并了解使用硬件以及硬件和软件的组合来实施本公开的实施例的其它方式和/或方法。
本申请中描述的任何软件组件或功能可实现为使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或例如Perl或Python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可以作为一系列指令或命令存储在计算机可读介质上以进行存储和/或传输。合适的非瞬态计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质、或例如光盘(CD)或DVD(数字通用光盘)或蓝光光盘的光学介质、闪存存储器等。计算机可读介质可以是此类装置的任何组合。此外,可以重新布置操作的顺序。过程在其操作完成时终止,但是可以具有附图中未包括的其它步骤。过程可以对应于方法、功能、程序、子例程、子程序等。当进程对应于函数时,它的终止可以对应于该函数返回到调用函数或主函数。
此类程序还可使用适于经由包括互联网在内的符合多种协议的有线网络、光学网络和/或无线网络进行传输的载波信号来编码和发送。因此,可以使用以此类程序编码的数据信号来创建计算机可读介质。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开提供(例如,通过互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,并且可存在于系统或网络内的不同计算机产品上或内。计算机系统可以包括用于向用户提供本文中提及的任何结果的监测器、打印机或其它合适显示器。
本文所描述的任何方法可完全或部分地通过计算机系统执行,所述计算机系统包括可被配置成执行所述步骤的一个或多个处理器。因此,实施例可以涉及被配置成执行本文所描述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。虽然呈现为带编号的步骤,但本文的方法的步骤可以同时或在不同时间或以不同次序执行。另外,这些步骤的部分可与其它方法的其它步骤的部分一起使用。另外,步骤的全部或部分可以是任选的。另外,任何方法的任一个步骤可以利用用于执行这些步骤的模块、单元、电路或系统的其它构件来执行。
可在不脱离本公开的实施例的精神和范围的情况下以任何合适方式组合特定实施例的具体细节。然而,本公开的其它实施例可以涉及与每个单独的方面有关的特定实施例,或者这些单独的方面的特定组合。
上文对本公开的示例性实施例的描述已经出于图示和描述的目的呈现。其并不意图为详尽的或将本公开限制在所描述的精确形式,并且根据上文的教示许多修改和变化形式是可能的。
除非明确指示为相反情况,否则“一(a/an)”或“所述(the)”的叙述旨在表示“一个或多个”。除非明确指示为相反情况,否则“或”的使用旨在表示“包括性的或”,而不是“排除性的或”。对“第一”组件的引用不一定要求提供第二组件。此外,除非明确说明,否则对“第一”或“第二”组件的引用并不将所引用的组件限制到特定位置。术语“基于”旨在表示“至少部分地基于”。
本文中所提及的所有专利、专利申请、公开案和描述都出于所有目的以全文引用的方式并入。并非承认它们是现有技术。当本申请与本文提供的参考文献之间存在冲突时,以本申请为准。

Claims (21)

1.一种由多个计算机中的第一计算机执行以用于实施用于多方定点乘法的复制协议的方法,所述方法包括:
获得第一秘密值(x)的第一秘密份额和第二秘密值(y)的第二秘密份额;
用与所述第一计算机配对的另一计算机对第一伪随机密钥(si,j)并且用所述多个计算机中的多个集合中的第一集合(Dj)对第二伪随机密钥(sj)进行联合采样;
使用所述第二伪随机密钥(sj)生成随机值的复制随机份额([[r]]R);
使用所述第一伪随机密钥(si,j)生成复制共享值(β);
通过提供用所述复制共享值(β)和所述随机值的所述复制随机份额([[r]]R)掩蔽的所述第一秘密份额和所述第二秘密份额的乘积来计算掩蔽份额(z′i=1);
由所述第一计算机从所述第一集合(Dj)中的计算机接收多个掩蔽份额(z′i),由此向所述第一集合(Dj)揭示集合共享值z′;以及
使用接收到的所述多个掩蔽份额(z′i)和所述随机值的所述复制随机份额([[r]]R)生成复制秘密份额([[z]]R)。
2.根据权利要求1所述的方法,其特征在于,使用所述第二伪随机密钥(sj)生成所述随机值的一个或多个复制随机份额([[r]]R)还包括将MAC密钥(α)添加到所述值的所述一个或多个复制随机份额,其中所述MAC密钥(α)经过随机采样。
3.根据权利要求2所述的方法,其特征在于,所述掩蔽份额(z′i=1)包括所述MAC密钥(α)。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
执行批量检查一致性协议以确定所述多个计算机中的每个计算机是否根据包括所述MAC密钥(α)的所述掩蔽份额(z′i=1)生成所述复制秘密份额([[z]]R)。
5.根据权利要求1所述的方法,其特征在于,来自所述多个计算机中的每个计算机的所述复制共享值(β)总和为零。
6.根据权利要求1所述的方法,其特征在于,在从所述第一集合(Dj)中的所述多个计算机接收到所述多个掩蔽份额(z′i)之后,所述方法还包括:
从所述多个掩蔽份额和所述掩蔽份额(z′i)获得所述集合共享值(z′),其中所述多个掩蔽份额和所述掩蔽份额(z′i)是所述集合共享值(z′)的n分之n秘密共享。
7.根据权利要求1所述的方法,其特征在于,所述多个集合中的第二集合中的所述多个计算机中的计算机使用所述随机值的相应随机份额([[r]]R)来确定所述复制秘密份额([[z]]R)的相应值。
8.根据权利要求1所述的方法,所述方法还包括:
获得小数位值(d)。
9.根据权利要求8所述的方法,其特征在于,生成所述复制秘密份额([[z]]R)还包括:
由所述第一计算机通过将所述集合共享值(z′)除以所述小数位值(d),然后减去值的所述复制随机份额([[r]]R)除以所述小数位值(d),生成所述复制秘密份额([[z]]R)的第一复制秘密份额(z1)。
10.一种由多个计算机中的第一计算机执行以用于实施用于多方定点乘法的共享协议的方法,所述方法包括:
获得第一值(x)的秘密份额和第二值(y)的秘密份额;
对第一随机值(ri)进行采样以获得所述第一随机值(ri)的第一随机份额([[ri]]S,2t)以及第二随机份额([[ri/d]]S);
将所述第一随机份额([[ri]]S,2t)和所述第二随机份额([[ri/d]]S)发送到所述多个计算机;
从所述多个计算机获得所述第一随机份额([[r]]S,2t)的每个份额和所述第二随机份额([[ri/d]]S)的每个份额;
分别基于所述第一随机份额([[r]]S,2t)的每个份额和所述第二随机份额([[ri/d]]S)的每个份额计算第三随机份额([[r]]S,2t)和第四随机份额([[r′]]S);
计算掩蔽份额([[z′]]S,2t),所述掩蔽份额提供用所述第三随机份额([[r]]S,2t)掩蔽的所述第一值(x)的秘密份额和所述第二值(y)的秘密份额的乘积;
基于由所述多个计算机确定的多个掩蔽份额([[z′]]S,2t)获得掩蔽值(z′);以及
使用所述掩蔽值(z′)和所述第四随机份额([[r′]]S)生成输出秘密份额([[z]]S)。
11.根据权利要求10所述的方法,其特征在于,所述第二随机份额([[ri/d]]S)等于所述第一随机份额([[ri]]S)除以小数位值(d)。
12.根据权利要求10所述的方法,其特征在于,所述输出秘密份额([[z]]S)表示共享输出值(z),所述共享输出值近似等于所述第一值(x)乘以所述第二值(y)再除以小数位值(d)。
13.根据权利要求10所述的方法,其特征在于,获得所述掩蔽值(z′)还包括:
由所述第一计算机从所述多个计算机获得多个掩蔽份额([[z′]]S,2t);
基于所述多个掩蔽份额([[z′]]S,2t)生成所述掩蔽值(z′);以及
将所述掩蔽值(z′)提供到所述多个计算机。
14.根据权利要求10所述的方法,其特征在于,生成所述输出秘密份额([[z]]S)还包括:
通过将所述掩蔽值(z′)除以小数位值(d)并减去所述第四随机份额([[r′]]S)来生成所述输出秘密份额([[z]]S)。
15.根据权利要求10所述的方法,其特征在于,所述第一随机份额([[ri]]S,2t)使用n分之2t共享来确定。
16.一种由多个计算机中的第一计算机执行以用于实施用于多方定点乘法的加法共享协议的方法,所述方法包括:
获得第一值(x)的秘密份额第二值(y)的秘密份额/>小数位值(d)、第三值(α)的秘密份额/>第四值(β)的秘密份额/>和第五值(γ)的秘密份额
确定第一共享随机值的份额和第二共享随机值的份额/>
基于所述第一值(x)的秘密份额和所述第三值(α)的秘密份额/>来确定第一中间份额/>
基于所述第二值(y)的秘密份额和所述第四值(β)的秘密份额/>来确定第二中间份额/>
由所述第一计算机从所述多个计算机接收多个第一中间份额和多个第二中间份额以揭示第一中间值(x′)和第二中间值(y′);
由所述第一计算机将所述第一中间值(x′)和所述第二中间值(y′)发送到所述多个计算机;
基于所述第一中间值(x′)、所述第二中间值(y′)、所述第一值(x)的秘密份额所述第二值(y)的秘密份额/>所述第五值(γ)的秘密份额/>和所述第二共享随机值的份额/>来确定第三中间份额/>
由所述第一计算机从所述多个计算机接收多个第三中间份额以揭示第三中间值(z′);
由所述第一计算机将所述第三中间值(z′)发送到所述多个计算机;以及
基于所述第三中间值(z′)、所述小数位值(d)和所述第一共享随机值的所述份额来确定输出秘密份额/>
17.根据权利要求16所述的方法,其特征在于,所述第三值(α)的秘密份额、所述第四值(β)的秘密份额和所述第五值(γ)的秘密份额构成预处理的Beaver三元组,并且其中所述第一值(x)和所述第二值(y)是以环中的二进制补码形式表示的定点值。
18.根据权利要求16所述的方法,其特征在于,确定所述第一共享随机值的份额和所述第二共享随机值的份额/>还包括:
对扩展环进行采样以生成第一初始随机值的份额/>和第二初始随机值的份额/>其中所述第二初始随机值的份额/>是基于所述第一初始随机值的份额/>和所述小数位值(d)创建的;
将所述第一初始随机值的份额和所述第二初始随机值的份额/>发送到所述多个计算机;
基于所述第二初始随机值的份额来确定所述第一共享随机值的份额以及
基于所述第一共享随机值的份额来确定所述第二共享随机值的份额/>
19.根据权利要求16所述的方法,其特征在于,所述输出秘密份额是加法输出值(z),所述加法输出值近似等于所述第一值(x)乘以所述第二值(y)再除以所述小数位值(d)。
20.根据权利要求16所述的方法,其特征在于,所述第一值(x)和所述第二值(y)是以二进制补码形式表示的定点值。
21.一种计算机,所述计算机包括:
处理器;
网络接口;以及
非瞬态计算机可读介质,所述非瞬态计算机可读介质包括代码,所述代码用于指示所述处理器实施根据权利要求1至20中的任一项所述的方法。
CN202280036377.5A 2021-05-25 2022-05-25 多台计算机的多方计算 Pending CN117397197A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163192933P 2021-05-25 2021-05-25
US63/192,933 2021-05-25
PCT/US2022/030896 WO2022251341A1 (en) 2021-05-25 2022-05-25 Multi-party computation for many computers

Publications (1)

Publication Number Publication Date
CN117397197A true CN117397197A (zh) 2024-01-12

Family

ID=84230254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280036377.5A Pending CN117397197A (zh) 2021-05-25 2022-05-25 多台计算机的多方计算

Country Status (3)

Country Link
EP (1) EP4348924A1 (zh)
CN (1) CN117397197A (zh)
WO (1) WO2022251341A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115982747B (zh) * 2023-03-20 2023-07-14 建信金融科技有限责任公司 基于参与方与可信第三方通信的安全多方乘法运算方法
CN116383886B (zh) * 2023-06-02 2023-09-12 信联科技(南京)有限公司 基于安全三方计算协议存储的数据转换方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062452A1 (en) * 2000-08-18 2002-05-23 Warwick Ford Countering credentials copying
US8989390B2 (en) * 2005-12-12 2015-03-24 Qualcomm Incorporated Certify and split system and method for replacing cryptographic keys
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
JP6447870B2 (ja) * 2015-03-20 2019-01-09 日本電気株式会社 秘密情報分散システム、情報処理装置および情報処理プログラム

Also Published As

Publication number Publication date
WO2022251341A1 (en) 2022-12-01
EP4348924A1 (en) 2024-04-10

Similar Documents

Publication Publication Date Title
JP7454035B2 (ja) ブロックチェーンにより実装される方法及びシステム
EP3779717B1 (en) Multiparty secure computing method, device, and electronic device
CN111512589B (zh) 用于利用spdz的快速安全多方内积的方法
CN113424185B (zh) 快速不经意传输
Araki et al. High-throughput semi-honest secure three-party computation with an honest majority
CN111133719B (zh) 用于利用spdz的更快速的安全多方内积计算的方法
CN110557245A (zh) 用于spdz的容错和安全多方计算的方法和系统
CN117397197A (zh) 多台计算机的多方计算
US11652603B2 (en) Homomorphic encryption
WO2019231481A1 (en) Privacy-preserving machine learning in the three-server model
Gupta et al. Single secret image sharing scheme using neural cryptography
Pal et al. An TPM based approach for generation of secret key
Chandran et al. Efficient, constant-round and actively secure MPC: beyond the three-party case
US20220198048A1 (en) Search and access pattern hiding verifiable searchable encryption for distributed settings with malicious servers
CN115004627A (zh) 分布式对称加密
Dumas et al. Dual protocols for private multi-party matrix multiplication and trust computations
CN114301677B (zh) 秘钥协商方法、装置、电子设备及存储介质
CN115037438A (zh) 基于神经网络预定义时间同步控制的安全通信方法及系统
CN114239862A (zh) 一种保护用户数据隐私的抗拜占庭攻击的联邦学习方法
CN112003690B (zh) 密码服务系统、方法及装置
Plesa et al. A key agreement protocol based on spiking neural P systems with anti-spikes
CN116975906A (zh) 一种基于安全多方计算的岭回归隐私保护算法
WO2020165931A1 (ja) 情報処理装置、秘密計算方法及びプログラム
Zhang et al. Efficient federated learning framework based on multi-key homomorphic encryption
Yang et al. Quantum oblivious transfer with an untrusted third party

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication