CN113722734B - 两方安全选择确定选择结果分片的方法、装置和系统 - Google Patents
两方安全选择确定选择结果分片的方法、装置和系统 Download PDFInfo
- Publication number
- CN113722734B CN113722734B CN202111005926.6A CN202111005926A CN113722734B CN 113722734 B CN113722734 B CN 113722734B CN 202111005926 A CN202111005926 A CN 202111005926A CN 113722734 B CN113722734 B CN 113722734B
- Authority
- CN
- China
- Prior art keywords
- party
- selection
- data
- result
- slice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 239000012634 fragment Substances 0.000 title claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims description 7
- 238000013467 fragmentation Methods 0.000 claims description 6
- 238000006062 fragmentation reaction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000000654 additive Substances 0.000 description 3
- 230000000996 additive effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种两方安全选择确定选择结果分片的方法、装置和系统,采用多方安全计算实现,如混淆电路。方法包括:第一方本地计算第一数据的本方分片与第二数据的本方分片的第一差值,并根据第一差值确定第一输入数据;与第二方基于选择比特在第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,计算中间结果与第一随机数的第三差值;第二输入数据基于第二差值确定,第二差值为第二方基于第二数据的本方分片与第一数据的本方分片相减得到;本地计算第二数据的本方分片与第一随机数之和,得到求和结果,并根据求和结果确定选择结果的第一分片;选择结果的第二分片由第二方根据第三差值确定。能够有效减小通信代价。
Description
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及两方安全选择确定选择结果分片的方法、装置和系统。
背景技术
安全多方计算又称为多方安全计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果公开给其中的一方或多方。其中,各方的输入数据常常为隐私数据。
两方安全选择是安全多方计算的基本计算单元,用于根据一个选择比特对两个数做选择,可用于构造I f-E l se逻辑,MAX/MIN等功能,安全多方计算中的通用计算和隐私保护机器学习等。
发明内容
本说明书一个或多个实施例描述了一种两方安全选择确定选择结果分片的方法、装置和系统,能够有效减小通信代价。
第一方面,提供了一种两方安全选择确定选择结果分片的方法,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,该方法由第一方执行,包括:
本地计算所述第一数据的本方分片与第二数据的本方分片的第一差值,并根据所述第一差值确定第一输入数据;
生成第一随机数;
与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;所述第二输入数据基于第二差值确定,所述第二差值为第二方基于第二数据的第二方分片与第一数据的第二方分片相减得到的值;本地计算所述第二数据的本方分片与所述第一随机数之和,得到求和结果,并根据所述求和结果确定选择结果的第一分片;所述选择结果的第二分片由第二方根据所述第三差值确定。
在一种可能的实施方式中,所述根据所述第一差值确定第一输入数据,包括:
将所述第一差值作为所述第一输入数据;或者,
将所述第一差值进行第一方式的本地计算后,得到所述第一输入数据。
在一种可能的实施方式中,所述根据所述求和结果确定选择结果的第一分片,包括:
将所述求和结果作为所述选择结果的第一分片;或者,
将所述求和结果进行第二方式的本地计算后,得到所述选择结果的第一分片。
在一种可能的实施方式中,所述与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,包括:
将所述第一输入数据、所述选择比特的第一方分片和所述第一随机数输入布尔电路,所述布尔电路还接收第二方输入的第二输入数据和所述选择比特的第二方分片,并根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果,向第二方输出所述第三差值。
进一步地,所述布尔电路用于执行如下计算过程:
计算所述选择比特的第一方分片和所述选择比特的第二方分片的异或,得到所述选择比特;
根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果;
计算所述中间结果和所述第一随机数的差值,得到所述第三差值。
在一种可能的实施方式中,所述与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,包括:
当所述选择比特为1时,选择所述第一输入数据作为所述中间结果;
当所述选择比特为0时,选择所述第二输入数据作为所述中间结果。
在一种可能的实施方式中,所述第一数据的第一方分片与所述第一数据的第二方分片之和为所述第一数据;所述第二数据的第一方分片与所述第二数据的第二方分片之和为所述第二数据。
进一步地,所述布尔电路采用混淆电路或GMW的执行方式。
第二方面,提供了一种两方安全选择确定选择结果分片的方法,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,方法包括:
所述第一方本地计算所述第一数据的第一方分片与第二数据的第一方分片的第一差值,并根据所述第一差值确定第一输入数据;
所述第一方生成第一随机数;
所述第二方本地计算所述第二数据的第二方分片与所述第一数据的第二方分片的第二差值,并根据所述第二差值确定第二输入数据;
所述第一方与所述第二方基于所述选择比特在所述第一输入数据和所述第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;
所述第一方本地计算所述第二数据的第一方分片与所述第一随机数之和,得到第一求和结果,并根据所述第一求和结果确定选择结果的第一分片;
所述第二方本地计算所述第三差值与所述第一数据的第二方分片之和,得到第二求和结果,并根据所述第二求和结果确定所述选择结果的第二分片。
在一种可能的实施方式中,所述第一方根据所述第一差值确定第一输入数据,包括:
所述第一方将所述第一差值作为所述第一输入数据;
所述第二方根据所述第二差值确定第二输入数据,包括:
所述第二方将所述第二差值作为所述第二输入数据。
进一步地,所述第一方根据所述第一求和结果确定选择结果的第一分片,包括:
所述第一方将所述第一求和结果作为所述选择结果的第一分片;所述第二方根据所述第二求和结果确定所述选择结果的第二分片,包括:
所述第二方将所述第二求和结果作为所述选择结果的第二分片。
第三方面,提供了一种两方安全选择确定选择结果分片的装置,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,该装置设置于第一方,包括:
第一本地计算单元,用于本地计算所述第一数据的本方分片与第二数据的本方分片的第一差值,并根据所述第一差值确定第一输入数据;
生成单元,用于生成第一随机数;
联合计算单元,用于与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;所述第二输入数据基于第二差值确定,所述第二差值为第二方基于第二数据的第二方分片与第一数据的第二方分片相减得到的值;第二本地计算单元,用于本地计算所述第二数据的本方分片与所述第一随机数之和,得到求和结果,并根据所述求和结果确定选择结果的第一分片;所述选择结果的第二分片由第二方根据所述电路执行单元输出的第三差值确定。
第四方面,提供了一种两方安全选择确定选择结果分片的系统,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,系统包括:
所述第一方,用于本地计算所述第一数据的第一方分片与第二数据的第一方分片的第一差值,并根据所述第一差值确定第一输入数据;以及生成第一随机数;
所述第二方,用于本地计算所述第二数据的第二方分片与所述第一数据的第二方分片的第二差值,并根据所述第二差值确定第二输入数据;
所述第一方与所述第二方,还用于基于所述选择比特在所述第一输入数据和所述第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;
所述第一方,还用于本地计算所述第二数据的第一方分片与所述第一随机数之和,得到第一求和结果,并根据所述第一求和结果确定选择结果的第一分片;
所述第二方,还用于本地计算所述第三差值与所述第一数据的第二方分片之和,得到第二求和结果,并根据所述第二求和结果确定所述选择结果的第二分片。
第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
通过本说明书实施例提供的方法、装置和系统,第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,首先第一方本地计算所述第一数据的第一方分片与第二数据的第一方分片的第一差值,并根据所述第一差值确定第一输入数据,以及生成第一随机数;第二方本地计算所述第二数据的第二方分片与所述第一数据的第二方分片的第二差值,并根据所述第二差值确定第二输入数据;然后第一方与第二方基于所述选择比特在所述第一输入数据和所述第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;最后第一方本地计算所述第二数据的第一方分片与所述第一随机数之和,得到第一求和结果,并根据所述第一求和结果确定选择结果的第一分片;所述第二方本地计算所述第三差值与所述第一数据的第二方分片之和,得到第二求和结果,并根据所述第二求和结果确定所述选择结果的第二分片。由上可见,本说明书实施例,为了实现在第一数据和第二数据中进行选择,先通过第一方和第二方各自进行本地计算,分别得到第一输入数据和第二输入数据,再从第一输入数据和第二输入数据中进行选择,这种方式不需要对第一数据的分片和第二数据的分片做合并,只需要针对输入的第一输入数据和第二输入数据做选择,以及对中间结果做拆分,后续第一方和第二方各自通过本地计算得到选择结果的本方分片,相对于通常的处理方式,能够有效减小通信代价。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的两方安全选择确定选择结果分片的方法交互示意图;
图3示出根据一个实施例的布尔电路结构示意图;
图4示出根据一个实施例的两方安全选择确定选择结果分片的装置的示意性框图;
图5示出根据一个实施例的两方安全选择确定选择结果分片的系统的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及两方安全选择,用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方。参照图1,第一数据a可以表示为n位二进制数,第一方具有a的一个分片a0,第二方具有a的另一个分片a1,a=a0+a1;第二数据b也可以表示为n位二进制数,第一方具有b的一个分片b0,第二方具有b的另一个分片b1,b=b0+b1;选择比特s可以表示为一位二进制数,第一方具有s的一个分片s0,第二方具有s的另一个分片s1,s=s0^s1,即s等于s0异或s1。可以理解的是,第一数据、第二数据和选择比特均属于隐私数据,第一方和第二方仅具有上述隐私数据的分片,而不能获知隐私数据。两方安全选择,即在保护上述隐私数据不会泄露的前提下,根据选择比特,在第一数据和第二数据中进行选择,选择结果也以分片的形式存在于第一方和第二方。
其中,两方安全选择,即实现如下计算:根据s做选择,s为1选择a,s为0选择b,选择结果r=s?a:b。输出:第一方获得选择结果的第一分片r0,第二方获得选择结果的第二分片r1,r=r0+r1。
第一数据和第二数据的分片形式具体称为加法分片,一个数在模2n整数环上可以用减法拆分为两个加法分片。这两个加法分片在模2n整数环上相加可以获得原数,两方各持有该数的一个加法分片。加法分片是无符号数。本说明书实施例,针对加法分片的运算为模2n空间的运算,上述运算包括加法运算、减法运算等。
对以上两方安全选择,可以通过布尔电路来实现。布尔电路(boo lean ci rcuit),是一组用连接线连接的逻辑门的集合,能对一组输入完成函数计算并输出结果。逻辑门包括与门(AND)、异或门(XOR)、非门(NOT)等实现布尔函数的门,一般一个函数可以编译成一组与门、异或门和非门完成计算。
通常的两方安全选择的电路实现方案包括:在电路完成对加法分片做合并,即得到a=a0+a1,b=b0+b1;根据s,对数据a和数据b做选择得到选择结果r;再对选择结果r做拆分,第一方输入选择结果r的一个分片r0,第二方得到选择结果r的另一个分片r1=r-r0。
本说明书实施例提供的方案,构造的电路不需要对加法分片做合并,只需要做选择和对结果做拆分,电路明显变小,包括与门数和与门深度都变小,能够有效减小通信代价。其中,通信代价包括通信量和通信轮数。
图2示出根据一个实施例的两方安全选择确定选择结果分片的方法交互示意图,该方法可以基于图1所示的实施场景,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方。如图2所示,该实施例中两方安全选择方法包括以下步骤:步骤21,第一方本地计算所述第一数据的第一方分片与第二数据的第一方分片的第一差值,并根据所述第一差值确定第一输入数据;步骤22,第一方生成第一随机数;步骤23,第二方本地计算所述第二数据的第二方分片与所述第一数据的第二方分片的第二差值,并根据所述第二差值确定第二输入数据;步骤24,第一方与第二方基于所述选择比特在所述第一输入数据和所述第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;步骤25,第一方本地计算所述第二数据的第一方分片与所述第一随机数之和,得到第一求和结果,并根据所述第一求和结果确定选择结果的第一分片;步骤26,第二方本地计算所述第三差值与所述第一数据的第二方分片之和,得到第二求和结果,并根据所述第二求和结果确定所述选择结果的第二分片。下面描述以上各个步骤的具体执行方式。
首先在步骤21,第一方本地计算所述第一数据的第一方分片与第二数据的第一方分片的第一差值,并根据所述第一差值确定第一输入数据。可以理解的是,第一输入数据通过第一方本地计算得到,上述本地计算至少包括计算第一差值。
在一个示例中,所述第一数据的第一方分片与所述第一数据的第二方分片之和为所述第一数据;所述第二数据的第一方分片与所述第二数据的第二方分片之和为所述第二数据。
在一个示例中,所述根据所述第一差值确定第一输入数据,包括:
将所述第一差值作为所述第一输入数据;或者,
将所述第一差值进行第一方式的本地计算后,得到所述第一输入数据。
举例来说,第一数据的第一方分片为a0,第二数据的第一方分片为b0,上述第一差值为a0-b0,可以直接将所述第一差值作为所述第一输入数据,也就是说,第一输入数据in0=a0-b0;也可以将所述第一差值进行第一方式的本地计算后,得到所述第一输入数据,该第一方式的本地计算可以为将第一差值加上一个与第二方共享的约定数据,例如,约定数据为1时,in0=a0-b0+1。
然后在步骤22,第一方生成第一随机数。可以理解的是,可以采用通常的任一种随机数生成方式生成第一随机数。
接着在步骤23,第二方本地计算所述第二数据的第二方分片与所述第一数据的第二方分片的第二差值,并根据所述第二差值确定第二输入数据。可以理解的是,第二输入数据通过第二方本地计算得到,上述本地计算至少包括计算第二差值。
在一个示例中,所述根据所述第二差值确定第二输入数据,包括:
将所述第二差值作为所述第二输入数据;或者,
将所述第二差值进行第一方式的本地计算后,得到所述第二输入数据。
举例来说,第一数据的第二方分片为a1,第二数据的第二方分片为b1,上述第二差值为b1-a1,可以直接将所述第二差值作为所述第二输入数据,也就是说,第二输入数据in1=b1-a1;也可以将所述第二差值进行第一方式的本地计算后,得到所述第二输入数据,该第一方式的本地计算可以为将第二差值加上一个与第一方共享的约定数据,例如,约定数据为1时,in1=b1-a1+1。
本说明书实施例中,第一输入数据和第二输入数据的确定方式有多种可能的组合,例如,第一输入数据in0=a0-b0,第二输入数据in1=b1-a1;第一输入数据in0=a0-b0+2,第二输入数据in1=b1-a1+2;第一输入数据in0=a0-b0+1,第二输入数据in1=b1-a1+1;第一输入数据in0=a0-b0+5,第二输入数据in1=b1-a1+5等等,可能的情况有很多,在此不再一一赘述。
再在步骤24,第一方与第二方基于所述选择比特在所述第一输入数据和所述第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值。可以理解的是,第一随机数作为中间结果的第一方分片,第三差值作为中间结果的第二方分片。
在一个示例中,第一方将所述第一输入数据、所述选择比特的第一方分片和所述第一随机数输入布尔电路,所述第二方将所述第二输入数据和所述选择比特的第二方分片输入所述布尔电路,所述布尔电路根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果,向所述第二方输出所述中间结果与所述第一随机数的第三差值。
本说明书实施例的上述布尔电路与通常的用于两方安全选择的布尔电路,在输入、输出和电路结构上均有明显的差别。上述布尔电路的输入包括第一方的第一输入数据、第二方的第二输入数据,而不包括第一方和第二方各自具有的第一数据的分片和第二数据的分片;上述布尔电路的输出为中间结果的分片,而不是最终的选择结果的分片,还需要第一方和第二方根据中间结果的分片通过本地计算得到选择结果的分片;上述布尔电路的电路结构不需要对加法分片做合并,只需要对第一输入数据和第二输入数据做选择,以及对中间结果做拆分,电路明显变小,包括与门数和与门深度都变小。
图3示出根据一个实施例的布尔电路结构示意图。参照图3,布尔电路包括选择模块和拆分模块,其输入包括第一方具有的第一输入数据in0、选择比特的第一方分片s0、第一随机数t0,第二方具有的第二输入数据in1、选择比特的第二方分片s1,选择模块用于根据选择比特,从第一输入数据和第二输入数据中选择出中间结果t,拆分模块用于根据第一随机数t0,对中间结果t拆分后得到t1=t-t0,t1作为该布尔电路的输出。
进一步地,所述布尔电路用于执行如下计算过程:
计算所述选择比特的第一方分片和所述选择比特的第二方分片的异或,得到所述选择比特;
根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果;
计算所述中间结果和所述第一随机数的差值,得到所述第三差值。
举例来说,第一方具有第一输入数据in0、选择比特的第一方分片s0、第一随机数t0,第二方具有第二输入数据in1、选择比特的第二方分片s1,电路计算包括:
s=s0^s1;
t=s?in0:in1;
t1=t-t0。
使第二方获得t1。
在一个示例中,所述与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,包括:
当所述选择比特为1时,选择所述第一输入数据作为所述中间结果;
当所述选择比特为0时,选择所述第二输入数据作为所述中间结果。
进一步地,所述布尔电路采用混淆电路或GMW的执行方式。
混淆电路(garbled circuit,GC),是一种两方安全多方计算协议,对实现一个计算函数的布尔电路用密码函数生成混淆表,对两方输入计算出结果,并且在计算过程一方输入不会泄漏给另一方。目前混淆电路最优的实现方案,对异或门和非门不需要通信,只需要本地计算,与门需要调用密码计算并进行通信,并且在一般应用场景中通信量是吞吐量上限的瓶颈。混淆电路的通信量与布尔电路的与门数正相关。
GMW(Goldreich-Micali-Wigderson),是一种两方安全多方计算协议,实现一个计算函数的布尔电路,其每根线上的比特都是两方的异或分片,即每方对该线各持有一个比特,两个比特异或即为线上真值,GMW对每个门计算,异或门直接本地计算,与门用不经意传输执行。GMW执行布尔电路,两方交互的轮数,即执行延迟由电路中的与门的深度决定。与门的深度指电路中数据相关的与门的最长路径。
再在步骤25,第一方本地计算所述第二数据的第一方分片与所述第一随机数之和,得到第一求和结果,并根据所述第一求和结果确定选择结果的第一分片。可以理解的是,第一随机数作为中间结果的第一方分片,由于第一随机数是第一方生成的,因此上述计算过程不依赖于布尔电路的输出结果。
在一个示例中,所述根据所述第一求和结果确定选择结果的第一分片,包括:
将所述第一求和结果作为所述选择结果的第一分片;或者,
将所述第一求和结果进行第二方式的本地计算后,得到所述选择结果的第一分片。
举例来说,第二数据的第一方分片为b0,第一随机数为t0,可以将所述第一求和结果作为所述选择结果的第一分片,也就是说,选择结果的第一分片r0=b0+t0;或者,将所述第一求和结果进行第二方式的本地计算后,得到所述选择结果的第一分片,该第二方式的本地计算可以为将第一求和结果减去一个预设常数,例如,上述预设常数为1时,r0=b0+t0-1。
最后在步骤26,第二方本地计算所述第三差值与所述第一数据的第二方分片之和,得到第二求和结果,并根据所述第二求和结果确定所述选择结果的第二分片。
在一个示例中,所述根据所述第二求和结果确定选择结果的第二分片,包括:
将所述第二求和结果作为所述选择结果的第二分片;或者,
将所述第二求和结果进行第二方式的本地计算后,得到所述选择结果的第二分片。
举例来说,第一数据的第二方分片为a1,第三差值为t1,可以将所述第二求和结果作为所述选择结果的第二分片,也就是说,选择结果的第二分片r1=a1+t1;或者,将所述第二求和结果进行第二方式的本地计算后,得到所述选择结果的第二分片,该第二方式的本地计算可以为将第一求和结果加上一个预设常数,例如,上述预设常数为1时,r1=a1+t1+1。
本说明书实施例中,步骤21确定第一输入数据的方式、步骤23确定第二输入数据的方式,与后续的步骤25确定选择结果的第一分片的方式、步骤26确定选择结果的第二分片的方式是密切相关的,并且选择结果的一个分片孤立存在是没有任何意义的,需要保证最终的选择结果的正确性。
举例来说,如果第一输入数据in0=a0-b0,第二输入数据in1=b1-a1,那么可以采取如下方式计算选择结果的分片:选择结果的第一分片r0=b0+t0,选择结果的第二分片r1=a1+t1。
上述计算方式经过了如下的正确性验证:
如果s=0,那么t=in1;r0+r1=b0+t0+a1+t1=b0+a1+in1=b0+a1+b1-a1=b;
如果s=1,那么t=in0;r0+r1=b0+t0+a1+t1=b0+a1+in0=b0+a1+a0-b0=a。
通过上述推导可见,本说明书实施例提供的方案可以实现两方安全选择。
本说明书实施例提供的方案满足安全性的要求,其中,t1不会向第二方泄漏信息,由于通过布尔电路做了中间结果的拆分,所以第二方通过t1无法判断布尔电路是选则了in0还是in1。不会向第一方和第二方泄漏a和b的差值。
此外,需要说明的是,在第一输入数据和第二输入数据确定的前提下,选择结果的分片的计算方式也不唯一。举例来说,如果第一输入数据in0=a0-b0,第二输入数据in1=b1-a1,那么还可以采取如下方式计算选择结果的分片:选择结果的第一分片r0=b0+t0-1,选择结果的第二分片r1=a1+t1+1;或者,选择结果的第一分片r0=b0+t0-2,选择结果的第二分片r1=a1+t1+2。
下面再针对其他的输入数据确定方式,举例说明如何确定选择结果的分片。举例来说,如果第一输入数据in0=a0-b0+c,第二输入数据in1=b1-a1+c,其中,c代表前述第一方和第二方共享的约定数据,那么可以采取如下方式计算选择结果的分片:选择结果的第一分片r0=b0+t0-c,选择结果的第二分片r1=a1+t1。以c=1为例,如果第一输入数据in0=a0-b0+1,第二输入数据in1=b1-a1+1,那么可以采取如下方式计算选择结果的分片:选择结果的第一分片r0=b0+t0-1,选择结果的第二分片r1=a1+t1。可能的方式有很多,在此不做赘述。
通过本说明书实施例提供的方法,为了实现在第一数据和第二数据中进行选择,先通过第一方和第二方各自进行本地计算,分别得到第一输入数据和第二输入数据,再从第一输入数据和第二输入数据中进行选择,这种方式不需要对第一数据的分片和第二数据的分片做合并,只需要针对输入的第一输入数据和第二输入数据做选择,以及对中间结果做拆分,后续第一方和第二方各自通过本地计算得到选择结果的本方分片,相对于通常的处理方式,能够有效减小通信代价。
此外,当本说明书实施例提供的方法与布尔电路相结合时,为了实现在第一数据和第二数据中进行选择,不是直接将第一数据的分片和第二数据的分片输入布尔电路,而是先通过第一方和第二方各自进行本地计算,分别得到第一输入数据和第二输入数据,将第一输入数据和第二输入数据输入布尔电路,上述布尔电路不需要对第一数据的分片和第二数据的分片做合并,只需要针对输入的第一输入数据和第二输入数据做选择,以及对中间结果做拆分,后续第一方和第二方各自通过本地计算得到选择结果的本方分片,相对于通常的电路结构,电路明显变小,包括与门数和与门深度都变小,从而能够有效减小通信代价。
根据另一方面的实施例,还提供一种两方安全选择确定选择结果分片的装置,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,所述装置设置于第一方,用于执行本说明书实施例提供的方法中第一方执行的动作。图4示出根据一个实施例的两方安全选择装置的示意性框图。如图4所示,该装置400包括:
第一本地计算单元41,用于本地计算所述第一数据的本方分片与第二数据的本方分片的第一差值,并根据所述第一差值确定第一输入数据;
生成单元42,用于生成第一随机数;
联合计算单元43,用于与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;所述第二输入数据基于第二差值确定,所述第二差值为第二方基于第二数据的第二方分片与第一数据的第二方分片相减得到的值;
第二本地计算单元44,用于本地计算所述第二数据的本方分片与所述第一随机数之和,得到求和结果,并根据所述求和结果确定选择结果的第一分片;所述选择结果的第二分片由第二方根据所述电路执行单元43输出的第三差值确定。
可选地,作为一个实施例,所述第一本地计算单元41,具体用于将所述第一差值作为所述第一输入数据;或者,将所述第一差值进行第一方式的本地计算后,得到所述第一输入数据。
可选地,作为一个实施例,所述第二本地计算单元44,具体用于将所述求和结果作为所述选择结果的第一分片;或者,将所述求和结果进行第二方式的本地计算后,得到所述选择结果的第一分片。
可选地,作为一个实施例,所述联合计算单元43,具体用于将所述第一输入数据、所述选择比特的第一方分片和所述第一随机数输入布尔电路,所述布尔电路还接收第二方输入的第二输入数据和所述选择比特的第二方分片,并根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果,向第二方输出所述第三差值。
进一步地,所述布尔电路用于执行如下计算过程:
计算所述选择比特的第一方分片和所述选择比特的第二方分片的异或,得到所述选择比特;
根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果;
计算所述中间结果和所述第一随机数的差值,得到所述第三差值。
可选地,作为一个实施例,所述联合计算单元43,具体用于:
当所述选择比特为1时,选择所述第一输入数据作为所述中间结果;
当所述选择比特为0时,选择所述第二输入数据作为所述中间结果。
可选地,作为一个实施例,所述第一数据的第一方分片与所述第一数据的第二方分片之和为所述第一数据;所述第二数据的第一方分片与所述第二数据的第二方分片之和为所述第二数据。
进一步地,所述布尔电路采用混淆电路或GMW的执行方式。
根据另一方面的实施例,还提供一种两方安全选择确定选择结果分片的系统,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,所述系统包括第一方和第二方,用于执行本说明书实施例提供的方法中第一方和第二方执行的动作。图5示出根据一个实施例的两方安全选择确定选择结果分片的系统的示意性框图。如图5所示,该系统500包括:
所述第一方51,用于本地计算所述第一数据的第一方分片与第二数据的第一方分片的第一差值,并根据所述第一差值确定第一输入数据;以及生成第一随机数;
所述第二方52,用于本地计算所述第二数据的第二方分片与所述第一数据的第二方分片的第二差值,并根据所述第二差值确定第二输入数据;
所述第一方51与所述第二方52,还用于基于所述选择比特在所述第一输入数据和所述第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;
所述第一方51,还用于本地计算所述第二数据的第一方分片与所述第一随机数之和,得到第一求和结果,并根据所述第一求和结果确定选择结果的第一分片;
所述第二方52,还用于本地计算所述第三差值与所述第一数据的第二方分片之和,得到第二求和结果,并根据所述第二求和结果确定所述选择结果的第二分片。
可选地,作为一个实施例,所述第一方51,具体用于将所述第一差值作为所述第一输入数据;
所述第二方52,具体用于将所述第二差值作为所述第二输入数据。
进一步地,所述第一方51,具体用于将所述第一求和结果作为所述选择结果的第一分片;所述第二方52,具体用于将所述第二求和结果作为所述选择结果的第二分片。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (20)
1.一种两方安全选择确定选择结果分片的方法,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,所述方法由第一方执行,包括:
本地计算所述第一数据的本方分片与第二数据的本方分片的第一差值,并根据所述第一差值确定第一输入数据;
生成第一随机数;
与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;所述第二输入数据基于第二差值确定,所述第二差值为第二方基于第二数据的第二方分片与第一数据的第二方分片相减得到的值;
本地计算所述第二数据的本方分片与所述第一随机数之和,得到求和结果,并根据所述求和结果确定选择结果的第一分片;所述选择结果的第二分片由第二方根据所述第三差值确定。
2.如权利要求1所述的方法,其中,所述根据所述第一差值确定第一输入数据,包括:
将所述第一差值作为所述第一输入数据;或者,
将所述第一差值进行第一方式的本地计算后,得到所述第一输入数据。
3.如权利要求1所述的方法,其中,所述根据所述求和结果确定选择结果的第一分片,包括:
将所述求和结果作为所述选择结果的第一分片;或者,
将所述求和结果进行第二方式的本地计算后,得到所述选择结果的第一分片。
4.如权利要求1所述的方法,其中,所述与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,包括:
将所述第一输入数据、所述选择比特的第一方分片和所述第一随机数输入布尔电路,所述布尔电路还接收第二方输入的第二输入数据和所述选择比特的第二方分片,并根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果,向第二方输出所述第三差值。
5.如权利要求4所述的方法,其中,所述布尔电路用于执行如下计算过程:
计算所述选择比特的第一方分片和所述选择比特的第二方分片的异或,得到所述选择比特;
根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果;
计算所述中间结果和所述第一随机数的差值,得到所述第三差值。
6.如权利要求1所述的方法,其中,所述与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,包括:
当所述选择比特为1时,选择所述第一输入数据作为所述中间结果;
当所述选择比特为0时,选择所述第二输入数据作为所述中间结果。
7.如权利要求1所述的方法,其中,所述第一数据的第一方分片与所述第一数据的第二方分片之和为所述第一数据;所述第二数据的第一方分片与所述第二数据的第二方分片之和为所述第二数据。
8.如权利要求4所述的方法,其中,所述布尔电路采用混淆电路或GMW的执行方式。
9.一种两方安全选择确定选择结果分片的方法,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,所述方法包括:
所述第一方本地计算所述第一数据的第一方分片与第二数据的第一方分片的第一差值,并根据所述第一差值确定第一输入数据;
所述第一方生成第一随机数;
所述第二方本地计算所述第二数据的第二方分片与所述第一数据的第二方分片的第二差值,并根据所述第二差值确定第二输入数据;
所述第一方与所述第二方基于所述选择比特在所述第一输入数据和所述第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;
所述第一方本地计算所述第二数据的第一方分片与所述第一随机数之和,得到第一求和结果,并根据所述第一求和结果确定选择结果的第一分片;
所述第二方本地计算所述第三差值与所述第一数据的第二方分片之和,得到第二求和结果,并根据所述第二求和结果确定所述选择结果的第二分片。
10.如权利要求9所述的方法,其中,所述第一方根据所述第一差值确定第一输入数据,包括:
所述第一方将所述第一差值作为所述第一输入数据;
所述第二方根据所述第二差值确定第二输入数据,包括:
所述第二方将所述第二差值作为所述第二输入数据。
11.如权利要求10所述的方法,其中,所述第一方根据所述第一求和结果确定选择结果的第一分片,包括:
所述第一方将所述第一求和结果作为所述选择结果的第一分片;
所述第二方根据所述第二求和结果确定所述选择结果的第二分片,包括:
所述第二方将所述第二求和结果作为所述选择结果的第二分片。
12.一种两方安全选择确定选择结果分片的装置,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,所述装置设置于第一方,包括:
第一本地计算单元,用于本地计算所述第一数据的本方分片与第二数据的本方分片的第一差值,并根据所述第一差值确定第一输入数据;
生成单元,用于生成第一随机数;
联合计算单元,用于与所述第二方基于所述选择比特在所述第一输入数据和第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;所述第二输入数据基于第二差值确定,所述第二差值为第二方基于第二数据的第二方分片与第一数据的第二方分片相减得到的值;
第二本地计算单元,用于本地计算所述第二数据的本方分片与所述第一随机数之和,得到求和结果,并根据所述求和结果确定选择结果的第一分片;所述选择结果的第二分片由第二方根据电路执行单元输出的第三差值确定。
13.如权利要求12所述的装置,其中,所述联合计算单元,具体用于将所述第一输入数据、所述选择比特的第一方分片和所述第一随机数输入布尔电路,所述布尔电路还接收第二方输入的第二输入数据和所述选择比特的第二方分片,并根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果,向第二方输出所述第三差值。
14.如权利要求13所述的装置,其中,所述布尔电路用于执行如下计算过程:
计算所述选择比特的第一方分片和所述选择比特的第二方分片的异或,得到所述选择比特;
根据所述选择比特,选择所述第一输入数据或所述第二输入数据作为中间结果;
计算所述中间结果和所述第一随机数的差值,得到所述第三差值。
15.如权利要求13所述的装置,其中,所述布尔电路采用混淆电路或GMW的执行方式。
16.一种两方安全选择确定选择结果分片的系统,所述两方安全选择用于根据选择比特,在第一数据和第二数据中进行选择,所述第一数据、第二数据和选择比特均以分片形式,分布在第一方和第二方,所述系统包括:
所述第一方,用于本地计算所述第一数据的第一方分片与第二数据的第一方分片的第一差值,并根据所述第一差值确定第一输入数据;以及生成第一随机数;
所述第二方,用于本地计算所述第二数据的第二方分片与所述第一数据的第二方分片的第二差值,并根据所述第二差值确定第二输入数据;
所述第一方与所述第二方,还用于基于所述选择比特在所述第一输入数据和所述第二输入数据中执行选择,将选择的结果作为中间结果,并且计算中间结果与所述第一随机数的第三差值;
所述第一方,还用于本地计算所述第二数据的第一方分片与所述第一随机数之和,得到第一求和结果,并根据所述第一求和结果确定选择结果的第一分片;
所述第二方,还用于本地计算所述第三差值与所述第一数据的第二方分片之和,得到第二求和结果,并根据所述第二求和结果确定所述选择结果的第二分片。
17.如权利要求16所述的系统,其中,所述第一方,具体用于将所述第一差值作为所述第一输入数据;
所述第二方,具体用于将所述第二差值作为所述第二输入数据。
18.如权利要求17所述的系统,其中,所述第一方,具体用于将所述第一求和结果作为所述选择结果的第一分片;所述第二方,具体用于将所述第二求和结果作为所述选择结果的第二分片。
19.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项的所述的方法。
20.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项的所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111005926.6A CN113722734B (zh) | 2021-08-30 | 2021-08-30 | 两方安全选择确定选择结果分片的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111005926.6A CN113722734B (zh) | 2021-08-30 | 2021-08-30 | 两方安全选择确定选择结果分片的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113722734A CN113722734A (zh) | 2021-11-30 |
CN113722734B true CN113722734B (zh) | 2024-09-10 |
Family
ID=78679220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111005926.6A Active CN113722734B (zh) | 2021-08-30 | 2021-08-30 | 两方安全选择确定选择结果分片的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722734B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244497B (zh) * | 2021-12-09 | 2024-02-13 | 支付宝(杭州)信息技术有限公司 | 两方协同生成分片的方法及装置 |
CN114239811B (zh) * | 2021-12-21 | 2024-05-31 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的多方联合卷积处理方法、装置和系统 |
CN114584285B (zh) * | 2022-05-05 | 2022-07-29 | 深圳市洞见智慧科技有限公司 | 安全多方处理方法及相关设备 |
CN115150084B (zh) * | 2022-09-05 | 2023-01-03 | 翼方健数(北京)信息科技有限公司 | 一种安全多方计算方法、系统和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065162A (zh) * | 2021-04-25 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 和共享形式的隐私数据的处理方法和装置 |
CN113098687A (zh) * | 2021-04-27 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 生成安全计算协议的数据元组的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8229859B2 (en) * | 2007-04-19 | 2012-07-24 | Gideon Samid | Bit currency: transactional trust tools |
CN113162760A (zh) * | 2020-01-23 | 2021-07-23 | 电科云(北京)科技有限公司 | 基于半诚实mascot协议的安全数据共享计算方法及系统 |
CN113158239B (zh) * | 2021-03-31 | 2022-04-26 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的选择问题处理方法 |
-
2021
- 2021-08-30 CN CN202111005926.6A patent/CN113722734B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065162A (zh) * | 2021-04-25 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 和共享形式的隐私数据的处理方法和装置 |
CN113098687A (zh) * | 2021-04-27 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 生成安全计算协议的数据元组的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113722734A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113722734B (zh) | 两方安全选择确定选择结果分片的方法、装置和系统 | |
CN111539026B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN109255247B (zh) | 多方安全计算方法及装置、电子设备 | |
CN111523145B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
EP3424175B1 (en) | Converting a boolean masked value to an arithmetically masked value for cryptographic operations | |
CN109446828B (zh) | 一种安全多方计算方法及装置 | |
CN107004084B (zh) | 用于加密操作的乘法掩码 | |
CN114175572B (zh) | 利用拟群运算对加密数据实行相等和小于运算的系统和方法 | |
CN108055128B (zh) | Rsa密钥的生成方法、装置、存储介质及计算机设备 | |
CN111737757A (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN113626871A (zh) | 保护隐私数据的两方多分支条件实现方法和系统 | |
CN114726512B (zh) | 数据处理方法和装置 | |
CN111555880A (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
CN114239019A (zh) | 保护隐私数据的共有数据数目确定方法、装置和系统 | |
CN111737767A (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN114239018A (zh) | 保护隐私数据的共有数据数目确定方法和系统 | |
CN115906126A (zh) | 多方安全计算中的数据处理的方法及装置 | |
CN116821961A (zh) | 保护隐私数据的布尔算术分享转换方法和装置 | |
CN113836596B (zh) | 两方安全选择确定选择结果分片的方法、装置和系统 | |
CN113836595B (zh) | 两方安全比较的方法、装置和系统 | |
CN108512665B (zh) | 在椭圆曲线密码系统中生成椭圆曲线点 | |
CN113821826B (zh) | 实现异或分片输入输出的布尔电路、方法和系统 | |
CN112560106A (zh) | 针对隐私矩阵进行处理的方法、装置和系统 | |
CN116938434A (zh) | 隐私计算中的数据安全检测方法和装置 | |
CN113868716A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240930 Address after: Room 302, 3rd Floor, Building 1, Yard 1, Danling Street, Haidian District, Beijing, 100080 Patentee after: Sasi Digital Technology (Beijing) Co.,Ltd. Country or region after: China Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province Patentee before: Alipay (Hangzhou) Information Technology Co.,Ltd. Country or region before: China |