CN114297726A - 基于安全多方计算的乘法执行方法及装置 - Google Patents
基于安全多方计算的乘法执行方法及装置 Download PDFInfo
- Publication number
- CN114297726A CN114297726A CN202111632810.5A CN202111632810A CN114297726A CN 114297726 A CN114297726 A CN 114297726A CN 202111632810 A CN202111632810 A CN 202111632810A CN 114297726 A CN114297726 A CN 114297726A
- Authority
- CN
- China
- Prior art keywords
- party
- product
- patch
- value
- data
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本说明书实施例中提供了一种基于安全多方计算的乘法执行方法及装置。该方法包括:第一方计算其持有的第一隐私数据对应的第一中间数值,其中该第一中间数值的取值为两个预设数值之一;第一方向第二方发送长度小于预设长度的指示信息,该指示信息用于指示该第一中间数值;第二方根据其持有的第二隐私数据以及该第一中间数值计算第一分片,该第一分片用于计算该第一隐私数据与该第二隐私数据的乘积。
Description
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及基于安全多方计算的乘法执行方法及装置。
背景技术
安全多方计算(Secure Multi-party Computation,SMPC)是指由多方共同计算出某个函数的结果,计算过程中不泄露由多个参与方各自持有的该函数的输入数据。由各参与方持有的输入数据通常作为隐私数据,但是该函数的计算结果允许向指定的对象公开。其中基于SMPC的乘法属于典型的SMPC方法。
希望提供一种新的技术方案,以期降低执行基于SMPC的乘法时的通信开销。
发明内容
本说明书一个或多个实施例中提供了一种基于SMPC的乘法执行方法及装置。
第一方面,提供了一种基于SMPC的乘法执行方法,应用于持有第一隐私数据的第一方。所述方法包括:计算所述第一隐私数据对应的第一中间数值,其中所述第一中间数值的取值为两个预设数值之一;向第二方发送长度小于预设长度的指示信息,所述指示信息用于指示所述第一中间数值,使所述第二方根据其持有的第二隐私数据以及所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
在一种可能的实施方式中,所述第一中间数值的取值为1或-1。
在一种可能的实施方式中,所述指示信息的长度为1比特。
在一种可能的实施方式中,所述方法还包括:从所述第二方接收所述第二隐私数据对应的第二中间数值;根据所述第一隐私数据和所述第二中间数值计算第二分片,所述第二分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
在一种可能的实施方式中,还包括:与所述第二方联合执行2选1的不经意传输(Oblivious Transfer,OT)协议,从依次排列的两个随机数值中获取选择数值,并获取所述选择数值对应的排列序号,其中所述两个随机数值用于计算所述第二中间数值和所述第一分片,所述选择数值及其对应的排列序号用于计算所述第一中间数值和所述第二分片。
在一种可能的实施方式中,所述两个随机数值用于所述第二方生成第一随机乘数和第一随机加数,所述第一随机乘数用于生成所述第二中间数值,所述第一随机加数用于生成所述第一分片。所述方法还包括:根据所述选择数值生成第二随机加数,并根据所述选择数值对应的排列序号生成第二随机乘数,其中所述第一随机乘数和所述第二随机乘数的乘积相等于所述第一随机加数与所述第二随机加数的和,所述第二随机加数和所述第二随机乘数用于计算所述第一中间数值和所述第二分片。
在一种可能的实施方式中,所述方法还包括:获取第三分片,其中所述第三分片与所述第二隐私数据的和相等于第三隐私数据;计算所述第三分片与所述第一隐私数据的第一乘积,其中所述第一乘积、所述第一分片和所述第二分片用于计算所述第一隐私数据与所述第三隐私数据的乘积。
在一种可能的实施方式中,所述第一隐私数据的取值为0或1。
在一种可能的实施方式中,对所述第一隐私数据和第四分片进行异或运算的结果相等于第四隐私数据,所述第二隐私数据由所述第二方根据所述第四分片和其持有的第三隐私数据计算得到,所述第一分片、所述第二分片以及所述第四分片与所述第三隐私数据的第二乘积,用于计算所述第四隐私数据与所述第三隐私数据的乘积。
在一种可能的实施方式中,所述方法还包括:获取第三分片,其中所述第三分片与第五分片的和相等于第三隐私数据,所述第二隐私数据由所述第二方根据所述第五分片和第四分片计算得到,对所述第一隐私数据和所述第四分片进行异或运算的结果相等于第四隐私数据;计算所述第一隐私数据与所述第三分片的第三乘积,其中所述第一分片、所述第二分片、所述第三乘积以及所述第四分片与所述第五分片的第四乘积,用于计算所述第三隐私数据和所述第四隐私数据的乘积,所述第四乘积由所述第二方计算。
第二方面,提供了一种基于安全多方计算的乘法执行方法,应用于持有第二隐私数据的第二方。所述方法包括:从第一方接收长度小于预设长度的指示信息,所述指示信息用于指示第一方持有的第一隐私数据所对应的第一中间数值,所述第一中间数值的取值为两个预设数值之一;根据所述第二隐私数据和所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
在一种可能的实施方式中,所述第一中间数值的取值为1或-1。
在一种可能的实施方式中,所述指示信息的长度为1bit。
在一种可能的实施方式中,所述方法还包括:计算所述第二隐私数据对应的第二中间数值;向所述第一方发送所述第二中间数值,使所述第一方根据所述第一隐私数据和所述第二中间数值计算第二分片,所述第二分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
在一种可能的实施方式中,所述方法还包括:与所述第一方联合执行2选1的OT协议,使所述第一方从依次排列的两个随机数值中获取选择数值以及其对应的排列序号,其中所述两个随机数值用于计算所述第二中间数值和所述第一分片。
在一种可能的实施方式中,所述选择数值以及其对应的排列序号用于所述第一方生成第二随机乘数和第二随机加数,所述第二随机加数和所述第二随机乘数用于计算所述第一中间数值和所述第二分片。所述方法还包括:根据所述两个随机数值生成第一随机乘数和第一随机加数,其中所述第一随机乘数和所述第二随机乘数的乘积相等于所述第一随机加数与所述第二随机加数的和,所述第一随机乘数用于计算所述第二中间数值,所述第一随机乘数用于计算所述第一分片。
在一种可能的实施方式中,所述第二隐私数据与第三分片的和相等于第三隐私数据,所述第三分片与所述第一隐私数据的第一乘积由所述第一方计算得到,所述第一乘积、所述第一分片和所述第二分片用于计算所述第一隐私数据与所述第三隐私数据的乘积。
在一种可能的实施方式中,所述第一隐私数据的取值为0或1。
在一种可能的实施方式中,对所述第一隐私数据和第四分片进行异或运算的结果相等于第四隐私数据,所述第二隐私数据由所述第二方根据所述第四分片和其持有的第三隐私数据计算得到,所述第一分片、所述第二分片以及所述第四分片与所述第三隐私数据的第二乘积,用于计算所述第四隐私数据与所述第三隐私数据的乘积。
在一种可能的实施方式中,所述方法还包括:计算第四分片与第五分片的第四乘积,其中所述第二隐私数据由所述第二方根据所述第四分片和第五分片计算得到,对所述第一隐私数据和所述第四分片进行异或运算的结果相等于第四隐私数据,由所述第一方持有的第三分片与所述第五分片的和相等于第三隐私数据,所述第一分片、所述第二分片、所述第四乘积以及所述第一隐私数据与所述第三分片的第三乘积,用于计算所述第三隐私数据和所述第四隐私数据的乘积,所述第三乘积由所述第一方计算。
第三方面,提供了一种基于安全多方计算的乘法执行装置,部署在第一方。所述装置包括:计算单元,配置为计算所述第一隐私数据对应的第一中间数值,其中所述第一中间数值的取值为两个预设数值之一;通信单元,配置为向第二方发送长度小于预设长度的指示信息,所述指示信息用于指示所述第一中间数值,使所述第二方根据其持有的第二隐私数据以及所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
第四方面,提供了一种基于安全多方计算的乘法执行装置,部署在第二方。所述装置包括:通信单元,配置为从第一方接收长度小于预设长度的指示信息,所述指示信息用于指示第一方持有的第一隐私数据所对应的第一中间数值,所述第一中间数值的取值为两个预设数值之一;计算单元,配置为根据所述第二隐私数据和所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行如第一方面或第二方面中任一项所述的方法。
第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序/指令,所述处理器执行所述可计算机程序/指令,实现如第一方面或第二方面中任一项所述的方法。
通过本说明书一个或多个实施例中提供的方法及装置,第一方和第二方联合执行基于SMPC的乘法的过程中,第一方针对其持有的第一隐私数据计算得到的第一中间数值的取值为两个预设数值之一,与之相应的是第一方可以通过向第二方发送长度较小的指示信息来实现将该第一中间数值传递给第二方,以便第二方根据该中间数值和其持有的第二隐私数据,计算得到用于计算第一隐私数据与第二隐私数据的乘积的第一分片。基于SMPC的乘法执行过程中无需传递长度较大的第一中间数值,通信开销较小。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为两方联合执行基于SMPC的乘法的示意图;
图2为本说明书实施例中提供的一种基于SMPC的乘法执行系统的示意图;
图3为本说明书实施例中提供的一种基于SMPC的乘法执行方法的流程图;
图4为本说明书实施例中提供的另一种基于SMPC的乘法执行方法的流程图;
图5为本说明书实施例中提供的一种基于SMPC的乘法执行装置的示意图;
图6为本说明书实施例中提供的另一种基于SMPC的乘法执行装置的示意图。
具体实施方式
下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。
图1为示例性提供的由两方联合执行基于SMPC的乘法的示意图。如图1所示,参与方A和参与方B各自持有私有数据a和私有数据b。参与方A可以获取随机乘数u和随机加数w0,参与方B可以获取随机乘数v和随机加数w1;其中u与v的乘积相等于w0与w1的和,u、v、w0和w1还可以被表述为用于SMPC的乘法三元组。接着参与方A可以基于u获得a对应的中间数值e,例如将a与u的差作为中间数值e,并将e发送给参与方B;参与方B可以基于v获得b对应的中间数值f,例如将b与v的差作为中间数值f,并将f发送给参与方A。接着参与方A可以基于中间数值f计算得到分片c0,例如将u和f的乘积与w0进行求和以得到c0;参与方B可以基于中间数值e计算得到分片c1,例如将b和e的乘积与w1进行求和以得到c1。c0与c1的和相等于a与b的乘积,即c0和c1可以用于计算a与b的乘积。
对于参与方A和参与方B之间直接传递的中间数值,其可能受随机乘数的影响而相对较大,将会对执行基于SMPC的乘法的过程造成较大的通信开销。举例来说,基于u获得a对应的e时,即使a的取值为模2空间内的0或1,e的取值却可能位于模2t空间内,其中t的取值为e的长度,其通常远大于1bit。
本说明书实施例中提供的一种基于SMPC的乘法执行方法、装置及系统。第一方和第二方联合执行基于SMPC的乘法的过程中,第一方针对其持有的第一隐私数据计算得到的第一中间数值的取值为两个预设数值之一,与之相应的是第一方可以通过向第二方发送长度较小的指示信息来实现将该第一中间数值传递给第二方,以便第二方根据该中间数值和其持有的第二隐私数据,计算得到用于计算第一隐私数据与第二隐私数据的乘积的第一分片。基于SMPC的乘法执行过程中无需传递长度较大的第一中间数值,通信开销较小。
图2为本说明书实施例中提供的一种基于SMPC的乘法执行系统的架构图。如图2所示,基于SMPC的乘法执行系统至少可以包括第一方(即参与方A)和第二方(即参与方B),可选地包括第三方(即参与方D)和/或第四方(即参与方C)。参与方A和参与方B可以联合执行基于SMPC的乘法,实现计算隐私数据a和隐私数据b的乘积;其中隐私数据a可以由参与方A或参与方C持有,隐私数据b可以由参与方B或参与方D持有。
下面结合图2所示的基于SMPC的乘法执行系统,详细描述基于SMPC的乘法执行方法。其中该方法至少适用于隐私数据a的取值是位于模2空间内的0或1,隐私数据b的取值是位于模2t内并且t大于1的应用场景,可以理解的是该方法还可能适用于其它应用场景,在此对其并不做任何限定。如图3所示,该方法至少包括如下步骤301~步骤305。
首先,在步骤301,参与方A计算第一隐私数据对应的第一中间数值,其中第一中间数值的取值为两个预设数值之一。
下文中为了方便描述,将第一中间数值记为中间数值e。其中为了减轻后续计算过程的复杂度,可以使中间数值e的取值相对较小,例如使中间数值e的取值为1或-1,即两个预设数值可以为1或-1。
为了实现计算得到取值为两个预设数值之一的中间数值e,在一种可能的实施方式中,请参考图4,该方法还可以包括步骤401,参与方A和参与方B联合执行2选1的OT协议,使参与方B获得依次排列两个随机数值,并且使参与方A从该两个随机数值中获取选择数值以及该选择数值对应的排列序号。其中该两个随机数值既可以是由参与方B所持有的多个隐私数据中的两个隐私数据,也可以是用于对参与方B持有的两个隐私数据进行加密的两个随机标签。举例来说,参与方A与参与方B联合执行2选1的OT协议时,除参与方A和参与方B以外的其它参与方可以生成排列序号为0的随机标签r0和排列序号为1的随机标签r1,将r0和r1均发送给参与方B,从r0和r1中选择一个随机标签作为选择标签/选择数值ri,并将ri和其对应的排列序号i发送给参与方A。
与之相应的是,参与方A可以利用选择数值以及其对应的排列序号计算得到取值为两个预设之一的中间数值e,参与方B可以在后续过程中利用两个随机数值,计算得到第一分片以及其持有的第二隐私数据所对应的第二中间数值。
在一个较为具体的示例中,请参考图3,步骤301具体包括:
步骤3011,参与方A根据选择数值对应的排列序号生成第二随机乘数;
步骤3013,参与方A根据第二随机乘数计算第一隐私数据对应的第一中间数值。
在前述步骤3011和步骤3013的基础上,该方法还可以包括:
步骤403,参与方A根据选择数值生成第二随机加数;
步骤405,参与方B根据两个随机数值生成第一随机乘数和第一随机加数。
下文中为了方便描述,将依次排列的两个随机数值记为排列序号为0的r0和排列序号为1的r1,并且将选择数值记为排列序号为i的ri。此外将第二随机乘数记为u,将第一随机乘数记为v,将第二随机加数记为w0,将第一随机加数记为w1,其中u*v=w0+w1。
前述步骤3011例如通过公式u=(-1)i计算得到取值为1或-1的u。
前述步骤3013例如通过公式e=(-1)pu-1计算得到e,其中p表征第一隐私数据。
前述步骤403例如通过公式w0=2ri计算得到w0。
前述步骤405例如通过公式v=r0-r1计算得到v,并且通过公式w1=-r0-r1计算得到w1。此外需要特别说明的是,还可以通过除前述各个示例以外的其它方式计算得到u、v、w0、w1以及e,例如更换u、v、w0、w1、e中若干数值的符号,再如对u、v、w0、w1、e中的若干数值进行放大或缩小等等,在此并不对其进行限定。
回到图2,在步骤303,参与方A向参与方B发送长度小于预设长度的指示信息,其中该指示信息用于指示第一中间数值。在一个较为具体的示例中,当中间数值e的长度小于预设长度时,例如当e的取值为长度不大于2bit的1或-1时,指示信息可以为e。在另一个较为具体的示例中,指示信息还可以是长度为1bit的0或1;例如当e的取值为1时,则指示信息是长度为1bit的1,当e的取值为-1时,则指示信息是长度为1bit的0。
接着,在步骤305,参与方B根据第一中间数值以及其持有的第二隐私数据计算第一分片,该第一分片用于计算第一隐私数据与第二隐私数据的乘积。例如当参与方B基于指示信息确定出第一中间数值e的取值为1或-1时,可以通过公式c1=ceil(q-ew1)/2计算得到第一分片c1,其中q表征由参与方B持有的第二隐私数据。
请继续参考图3,在一些实施例中,在前述步骤405的基础上,该方法还可以包括:
步骤407,参与方B根据第一随机乘数计算其第二隐私数据对应的第二中间数值;
步骤408,参与方B向参与方A发送第二中间数值;
步骤409,参与方A根据第二中间数值以及其持有的第一隐私数据计算第二分片,该第二分片用于计算第一隐私数据与第二隐私数据的乘积。
前述步骤407例如可以对第二隐私数据和随机乘数v作差,获得参与方B持有的第二隐私数据对应的第二中间数值f。
前述步骤409例如可以通过公式c0=floor(-ew0-euf)/2计算得到第二分片c0。
其中第二分片c0和第一分片c1的和,相等于由参与方A持有的第一隐私数据p与由参与方B持有的第二隐私数据q的乘积。举例来说,参与方A和参与方B可以按照实际需求,相互传递第二分片c0和/或第一分片c1,或者还可以各自将第二分片c0和第一分片c1传递给其他参与方,由获得第二分片c0和第一分片c1的参与方对第二分片c0和第一分片c1进行求和以获得第一隐私数据p与第二隐私数据q的乘积。
当隐私数据a作为参与方A持有的第一隐私数据p,隐私数据b作为参与方持有的第二隐私数据q时,通过前述如图2、图3所示的各个实施例即可实现计算隐私数据a与隐私数据b的乘积。然而在部分场景中,由参与方A持有的第一隐私数据p可能是隐私数据a的分片,由参与方B持有的第二隐私数据q可能是隐私数据b的分片,此时隐私数据b也可以被表述为第三隐私数据,隐私数据a也可以被表述为第四隐私数据。换而言之,对于基于SMPC实现计算隐私数据a与隐私数据b的乘积,除了包括由参与方A和参与方B各自持有隐私数据a和隐私数据b的场景外,还可能包括如下各种场景:
场景1:参与方A持有隐私数据a,参与方B持有隐私数据b的分片b1,此外参与方A还可以获取隐私数据b的分片b0,例如从参与方B或参与方D接收隐私数据b的分片b0。其中,分片b0与分片b1的和相等于隐私数据b,隐私数据b可以由参与方B或参与方D持有,或者隐私数据b并不由任何参与方持有。
场景2:参与方A持有隐私数据a的分片a0,参与方B持有隐私数据b,此外参与方B还可以获取隐私数据b的分片b0,例如从参与方A或参与方C接收隐私数据a的分片a1。其中,当隐私数据a的取值为0或1时,分片a0和分片a1进行异或运算的结果相等于隐私数据a,隐私数据a可以由参与方A或参与方C持有,或者隐私数据a并不由任何参与方持有。
场景3:参与方A持有隐私数据a的分片a0,参与方B持有隐私数据b的分片b1,此外参与方A还可以获取隐私数据b的分片b0,例如从参与方B或参与方D接收隐私数据b的分片b0,参与方B还可以获取隐私数据a的分片a1,例如从参与方A或参与方C接收隐私数据a的分片a1。其中,分片b0与分片b1的和相等于隐私数据b;当隐私数据a的取值为0或1时,分片a0和分片a1进行异或运算的结果相等于隐私数据a;隐私数据a由参与方A或参与方C持有,隐私数据b由参与方B或参与方D持有,或者隐私数据a、隐私数据b并不由任何参与方持有。
前述场景1~场景3中,分片b0也可以被表述为第三分片,分片b1也可以被表述为第五分片;分片a0也可以被表述为第四分片,分片a1也可以被表述为第六分片。
对于前述的场景1,隐私数据a可以作为第一隐私数据,分片b1可以作为第二隐私数据,进而通过前述图2或图3所示的各个实施例中提供的方法计算得到第一分片c1和第二分片c0。此外参与方A还可以计算隐私数据a与其接收的分片b0间的第一乘积,后续可由参与方A、参与方B或者其它参与方,将第一乘积a*b0、第二分片c0和第一分片c1的和作为隐私数据a与隐私数据b的乘积。
对于前述的场景2,隐私数据a0可以作为第一隐私数据,参与方B还可以基于其持有的隐私数据b和分片a1计算得到第二隐私数据,例如通过公式计算得到第二隐私数据q,或者通过公式q=b-2a1b计算的第二隐私数据q,进而通过前述图2或图3所示的各个实施例中提供的方法计算得到第二分片c0和第一分片c1。此外参与方B还可以计算分片a1与隐私数据b的第二乘积,后续可由参与方A、参与方B或者其它参与方,将第二乘积a1*b、第二分片c0、第一分片c1的和作为隐私数据a与隐私数据b的乘积。
对于前述的场景3,在第1个执行轮次中,分片a0可以作为第一隐私数据,参与方B还可以基于其持有的分片b1和其接收的分片a1计算得到第二隐私数据,例如通过公式q=b1-2a1b1计算得到第二隐私数据q,进而通过前述图2或图3所示的各个实施例中提供的方法计算得到第二分片c0和第一分片c1。在第2个执行轮次中,参与方A可以基于其持有的分片a0和其接收的分片b0计算得到第二隐私数据q,例如通过公式q=b0-2a0b0计算得到第二隐私数据q,分片a1被参与方B作为第一隐私数据p,进而通过与前述图2或图3所示的各个实施例中提供的方法相似的过程,使得参与方A计算得到类似于第一分片c1的第一分片g1、参与方B计算得到类似于第二分片c0的第二分片g0。此外参与方A还可以计算分片a0与分片b0的第三乘积、参与方B还可以计算分片a1与分片b1的第四乘积,后续可由参与方A、参与方B或者其它参与方,将第三乘积a0*b0、第四乘积a1*b1、第二分片c0、第一分片c1、第一分片g1、第二分片g0的和作为隐私数据a与隐私数据b的乘积。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种基于SMPC的乘法执行装置,部署在第一方。如图5所示,该装置包括:计算单元501,配置为计算所述第一隐私数据对应的第一中间数值,其中所述第一中间数值的取值为两个预设数值之一;通信单元503,配置为向第二方发送长度小于预设长度的指示信息,所述指示信息用于指示所述第一中间数值,使所述第二方根据其持有的第二隐私数据以及所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种基于SMPC的乘法执行装置,部署在第二方。如图6所示,该装置包括:通信单元601,配置为从第一方接收长度小于预设长度的指示信息,所述指示信息用于指示第一方持有的第一隐私数据所对应的第一中间数值,所述第一中间数值的取值为两个预设数值之一;计算单元603,配置为根据所述第二隐私数据和所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能所对应的计算机程序存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令/代码进行传输,以便这些功能所对应的计算机程序被计算机执行时,通过计算机实现本说明书任意一个实施例中所述的方法。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行本说明书任意一个实施例中由参与方A或参与方B执行的各方法步骤。
本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任意一个实施例中由参与方A或参与方B执行的各方法步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例中相同、相似的部分互相参见即可,每个实施例中重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (24)
1.一种基于安全多方计算的乘法执行方法,应用于持有第一隐私数据的第一方,所述方法包括:
计算所述第一隐私数据对应的第一中间数值,其中所述第一中间数值的取值为两个预设数值之一;
向第二方发送长度小于预设长度的指示信息,所述指示信息用于指示所述第一中间数值,使所述第二方根据其持有的第二隐私数据以及所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
2.根据权利要求1所述的方法,其中,所述第一中间数值的取值为1或-1。
3.根据权利要求1所述的方法,其中,所述指示信息的长度为1比特。
4.根据权利要求1所述的方法,所述方法还包括:
从所述第二方接收所述第二隐私数据对应的第二中间数值;
根据所述第一隐私数据和所述第二中间数值计算第二分片,所述第二分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
5.根据权利要求3所述的方法,所述方法还包括:与所述第二方联合执行2选1的不经意传输OT协议,从依次排列的两个随机数值中获取选择数值,并获取所述选择数值对应的排列序号,其中所述两个随机数值用于计算所述第二中间数值和所述第一分片,所述选择数值及其对应的排列序号用于计算所述第一中间数值和所述第二分片。
6.根据权利要求5所述的方法,其中,所述两个随机数值用于所述第二方生成第一随机乘数和第一随机加数,所述第一随机乘数用于生成所述第二中间数值,所述第一随机加数用于生成所述第一分片;所述方法还包括:
根据所述选择数值生成第二随机加数,并根据所述选择数值对应的排列序号生成第二随机乘数,其中所述第一随机乘数和所述第二随机乘数的乘积相等于所述第一随机加数与所述第二随机加数的和,所述第二随机加数和所述第二随机乘数用于计算所述第一中间数值和所述第二分片。
7.根据权利要求1所述的方法,所述方法还包括:
获取第三分片,其中所述第三分片与所述第二隐私数据的和相等于第三隐私数据;
计算所述第三分片与所述第一隐私数据的第一乘积,其中所述第一乘积、所述第一分片和所述第二分片用于计算所述第一隐私数据与所述第三隐私数据的乘积。
8.根据权利要求1所述的方法,其中,所述第一隐私数据的取值为0或1。
9.根据权利要求8所述的方法,其中,对所述第一隐私数据和第四分片进行异或运算的结果相等于第四隐私数据,所述第二隐私数据由所述第二方根据所述第四分片和其持有的第三隐私数据计算得到,所述第一分片、所述第二分片以及所述第四分片与所述第三隐私数据的第二乘积,用于计算所述第四隐私数据与所述第三隐私数据的乘积。
10.根据权利要求8所述的方法,所述方法还包括:
获取第三分片,其中所述第三分片与第五分片的和相等于第三隐私数据,所述第二隐私数据由所述第二方根据所述第五分片和第四分片计算得到,对所述第一隐私数据和所述第四分片进行异或运算的结果相等于第四隐私数据;
计算所述第一隐私数据与所述第三分片的第三乘积,其中所述第一分片、所述第二分片、所述第三乘积以及所述第四分片与所述第五分片的第四乘积,用于计算所述第三隐私数据和所述第四隐私数据的乘积,所述第四乘积由所述第二方计算。
11.一种基于安全多方计算的乘法执行方法,应用于持有第二隐私数据的第二方,所述方法包括:
从第一方接收长度小于预设长度的指示信息,所述指示信息用于指示第一方持有的第一隐私数据所对应的第一中间数值,所述第一中间数值的取值为两个预设数值之一;
根据所述第二隐私数据和所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
12.根据权利要求11所述的方法,其中,所述第一中间数值的取值为1或-1。
13.根据权利要求11所述的方法,其中,所述指示信息的长度为1bit。
14.根据权利要求11所述的方法,所述方法还包括:
计算所述第二隐私数据对应的第二中间数值;
向所述第一方发送所述第二中间数值,使所述第一方根据所述第一隐私数据和所述第二中间数值计算第二分片,所述第二分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
15.根据权利要求14所述的方法,所述方法还包括:与所述第一方联合执行2选1的不经意传输协议,使所述第一方从依次排列的两个随机数值中获取选择数值以及其对应的排列序号,其中所述两个随机数值用于计算所述第二中间数值和所述第一分片。
16.根据权利要求15所述的方法,其中,所述选择数值以及其对应的排列序号用于所述第一方生成第二随机乘数和第二随机加数,所述第二随机加数和所述第二随机乘数用于计算所述第一中间数值和所述第二分片;所述方法还包括:
根据所述两个随机数值生成第一随机乘数和第一随机加数,其中所述第一随机乘数和所述第二随机乘数的乘积相等于所述第一随机加数与所述第二随机加数的和,所述第一随机乘数用于计算所述第二中间数值,所述第一随机乘数用于计算所述第一分片。
17.根据权利要求11所述的方法,其中,所述第二隐私数据与第三分片的和相等于第三隐私数据,所述第三分片与所述第一隐私数据的第一乘积由所述第一方计算得到,所述第一乘积、所述第一分片和所述第二分片用于计算所述第一隐私数据与所述第三隐私数据的乘积。
18.根据权利要求11所述的方法,其中,所述第一隐私数据的取值为0或1。
19.根据权利要求18所述的方法,其中,对所述第一隐私数据和第四分片进行异或运算的结果相等于第四隐私数据,所述第二隐私数据由所述第二方根据所述第四分片和其持有的第三隐私数据计算得到,所述第一分片、所述第二分片以及所述第四分片与所述第三隐私数据的第二乘积,用于计算所述第四隐私数据与所述第三隐私数据的乘积。
20.根据权利要求18所述的方法,其中,所述方法还包括:计算第四分片与第五分片的第四乘积,其中所述第二隐私数据由所述第二方根据所述第四分片和第五分片计算得到,对所述第一隐私数据和所述第四分片进行异或运算的结果相等于第四隐私数据,由所述第一方持有的第三分片与所述第五分片的和相等于第三隐私数据,所述第一分片、所述第二分片、所述第四乘积以及所述第一隐私数据与所述第三分片的第三乘积,用于计算所述第三隐私数据和所述第四隐私数据的乘积,所述第三乘积由所述第一方计算。
21.一种基于安全多方计算的乘法执行装置,部署在第一方,所述装置包括:
计算单元,配置为计算所述第一隐私数据对应的第一中间数值,其中所述第一中间数值的取值为两个预设数值之一;
通信单元,配置为向第二方发送长度小于预设长度的指示信息,所述指示信息用于指示所述第一中间数值,使所述第二方根据其持有的第二隐私数据以及所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
22.一种基于安全多方计算的乘法执行装置,部署在第二方,所述装置包括:
通信单元,配置为从第一方接收长度小于预设长度的指示信息,所述指示信息用于指示第一方持有的第一隐私数据所对应的第一中间数值,所述第一中间数值的取值为两个预设数值之一;
计算单元,配置为根据所述第二隐私数据和所述第一中间数值计算第一分片,所述第一分片用于计算所述第一隐私数据与所述第二隐私数据的乘积。
23.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行权利要求1-10或权利要求11-20中任一项所述的方法。
24.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1-10或权利要求11-20中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111632810.5A CN114297726A (zh) | 2021-12-28 | 2021-12-28 | 基于安全多方计算的乘法执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111632810.5A CN114297726A (zh) | 2021-12-28 | 2021-12-28 | 基于安全多方计算的乘法执行方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114297726A true CN114297726A (zh) | 2022-04-08 |
Family
ID=80972490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111632810.5A Pending CN114297726A (zh) | 2021-12-28 | 2021-12-28 | 基于安全多方计算的乘法执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297726A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023231340A1 (zh) * | 2022-06-02 | 2023-12-07 | 蚂蚁区块链科技(上海)有限公司 | 分享ot协议的执行方法、安全多方计算方法及装置 |
-
2021
- 2021-12-28 CN CN202111632810.5A patent/CN114297726A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023231340A1 (zh) * | 2022-06-02 | 2023-12-07 | 蚂蚁区块链科技(上海)有限公司 | 分享ot协议的执行方法、安全多方计算方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111523145B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN111539026B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN112506469B (zh) | 针对隐私数据进行处理的方法和装置 | |
CN111523144B (zh) | 针对多方的隐私数据进行安全运算的方法和装置 | |
US10749671B2 (en) | Secure computation system, server apparatus, secure computation method, and program | |
CN108055128B (zh) | Rsa密钥的生成方法、装置、存储介质及计算机设备 | |
CN112560107B (zh) | 针对隐私数据进行处理的方法和装置 | |
WO2023231340A1 (zh) | 分享ot协议的执行方法、安全多方计算方法及装置 | |
US20240163084A1 (en) | Method of data transmission, and electronic devic | |
CN112202562B (zh) | Rsa密钥生成方法、计算机设备及介质 | |
CN115982747B (zh) | 基于参与方与可信第三方通信的安全多方乘法运算方法 | |
CN113722734A (zh) | 两方安全选择确定选择结果分片的方法、装置和系统 | |
WO2023240934A1 (zh) | 针对隐私向量的安全处理方法和装置 | |
CN116248266A (zh) | 基于秘密分享的安全多方计算方法及系统 | |
CN114297726A (zh) | 基于安全多方计算的乘法执行方法及装置 | |
CN116821961A (zh) | 保护隐私数据的布尔算术分享转换方法和装置 | |
CN111813374A (zh) | 基于dsp的伪随机序列的生成方法和装置、存储介质 | |
US11290456B2 (en) | Secret equality determination system, secret equality determination method and secret equality determination program recording medium | |
CN114611150A (zh) | 隐私数值的安全模转换方法及装置 | |
CN115001675A (zh) | 分享ot协议的执行方法、安全多方计算方法及装置 | |
CN116821962A (zh) | 保护隐私数据的概率截断方法和装置 | |
CN110661591B (zh) | 数据处理方法、设备以及计算机可读存储介质 | |
CN114089948A (zh) | 乘法执行方法、数据准备方法及装置 | |
CN114499845B (zh) | 多方安全计算的方法、系统、装置、存储介质及设备 | |
CN113821826B (zh) | 实现异或分片输入输出的布尔电路、方法和系统 |
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 |