CN115906126A - 多方安全计算中的数据处理的方法及装置 - Google Patents
多方安全计算中的数据处理的方法及装置 Download PDFInfo
- Publication number
- CN115906126A CN115906126A CN202211590710.5A CN202211590710A CN115906126A CN 115906126 A CN115906126 A CN 115906126A CN 202211590710 A CN202211590710 A CN 202211590710A CN 115906126 A CN115906126 A CN 115906126A
- Authority
- CN
- China
- Prior art keywords
- party
- inverse
- fragment
- square root
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000000034 method Methods 0.000 claims abstract description 87
- 238000012545 processing Methods 0.000 claims abstract description 42
- 239000012634 fragment Substances 0.000 claims description 166
- 238000004364 calculation method Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 238000013467 fragmentation Methods 0.000 claims 3
- 238000006062 fragmentation reaction Methods 0.000 claims 3
- 230000008569 process Effects 0.000 abstract description 28
- 238000010586 diagram Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种多方安全计算中的数据处理的方法及装置,在基于多方安全计算的业务处理过程中,针对任意非负数x,在求平方根逆过程中通过增加微小增项,避免x较小的情况下,被截断为0从而出现计算错误的情形。另一方面,在对x取平方根逆过程中,转换成2的幂次的平方根逆计算,在2的幂次的逆、平方根逆计算基础上通过安全乘法进行缩放,从而可以利用2的幂次的安全计算,减少通信量。
Description
技术领域
本说明书一个或多个实施例涉及安全计算技术领域,尤其涉及多方安全计算中的数据处理的方法及装置。
背景技术
安全多方计算又称为多方安全计算,可以由多方共同计算出一个函数的结果,而不泄露这个函数中各方的输入数据,计算的结果公开给其中的一方或多方。安全多方计算的典型应用例如有隐私保护的多方数据的联合统计分析、机器学习等。这里的函数是一个统计运算的函数、一个机器学习算法等等。
在多方安全计算过程中,为了不泄露各方数据以及中间计算结果,可以将数据或中间结果以共享(share)形式由各方持有。单方持有一个数据分片,各方持有的分片融合在一起还原出相应数据。通常,计算保持在共享状态进行。由于基于多方安全计算的业务处理过程中,经常用到除法。而业务处理过程中,由于数据存储方式等的影响,除数可能是其他中间计算结果,该中间计算结果可能为0,或因过于接近0而被截断为0。这种情形可能会严重影响业务处理结果的准确性。
发明内容
本说明书一个或多个实施例描述了一种多方安全计算中的数据处理的方法及装置,用以解决背景技术提到的一个或多个问题。
根据第一方面,提供一种多方安全计算中的数据处理的方法,用于针对在第一方、第二方构成共享形式的目标数据x,确定其平方根逆在两方的算术共享形式,第一方、第二方分别持有通过n个比特表示的目标数据x的第一分片、第二分片,所述方法由第一方执行,包括:在x的第一分片上增加预定增项ε的平方的第一分片,得到近似数值x'的第一分片,其中,预定增项ε的模小于预定值;与第二方对近似数值x'执行安全判定协议,得到参考数据a的第一分片,其中,参考数据a为大于近似数值x'的最小的2的幂次;利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;利用参考数据a的逆1/a的第一分片、x'的第一分片,与第二方经由安全乘法,确定第一乘积x'/a,得到第一乘积x'/a的第一分片;与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x'/a的平方根逆的初始值,经过预定迭代次数,确定x'/a的平方根逆y',得到x'/a的平方根逆y'的第一分片;利用x'/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆得到y的第一分片。
在一个实施例中,所述安全判定协议为以下中的一项:布尔共享形式下的最高有效位判定协议、算术共享形式下的最高非0位判定协议、2幂区间判定协议。
在一个进一步的实施例中,所述与第二方对近似数值x'执行安全判定协议,得到参考数据a的第一分片包括:经由所述安全判定协议,确定不大于近似数值x'的最大的2的幂次b,得到b的第一分片;将b的第一分片扩大2倍,作为参考数据a的第一分片。
在一个实施例中,牛顿迭代法中,第t+1迭代轮次的迭代值为:第t迭代轮次的迭代值的1.5倍,减去第一乘积x'/a的0.5倍与第t迭代轮次的迭代值的3次方的乘积。
在一个实施例中,a的第一分片对应n个比特,小数位数为f,所述与第二方安全执行2的幂次求逆协议包括:将a的第一分片倒序排列,得到第一参考分片;确定所述第一参考分片的小数位数为n-f-1,或者,在小数位数为n-f的情况下,将所述第一参考分片的低位补一个0最高位截断,作为a的逆的第一分片。
在一个进一步的实施例中,所述与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片包括:将a的逆的第一分片的各个比特拆分为预定组数的等间隔比特,并按照各组等间隔比特构成的二进制数确定一一对应的各个第一参考值;与第二方安全计算对各个第一参考值和相应第二参考值的差值的平方在预定平衡系数下求和的结果,从而得到a的平方根逆的第一分片,其中,单个第二参考值由第二方由a的逆的第二分片中的相应组等间隔比特构成的二进制数确定。
根据第二方面,提供一种多方安全计算中的数据处理方法,用于针对在第一方、第二方构成共享形式的目标数据x,确定其平方根逆在两方的算术共享形式,第一方、第二方分别持有通过n个比特表示的目标数据x的第一分片、第二分片,所述方法由第一方执行,包括:经由安全判定协议,确定不大于目标数据x的最大的2的幂次b,得到b的第一分片;基于b的第一分片与第二方安全判定x是否零值,得到判断结果s的第一分片,其中,判断结果s的第一分片为单个比特的0或1;与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个作为目标数据x的平方根逆的计算结果,以进行后续业务处理,其中,s为1则选择候选值y,s为0则选择预定增项ε的逆1/ε;
候选值y通过以下方式确定:将b的第一分片扩大2倍,作为参考数据a的第一分片;利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;利用参考数据a的逆1/a的第一分片、x的第一分片,与第二方经由安全乘法,确定第一乘积x/a,得到第一乘积x/a的第一分片;与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x/a的平方根逆的初始值,经过预定迭代次数,确定x/a的平方根逆y',得到x/a的平方根逆y'的第一分片;利用x/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆候选值得到y的第一分片。
在一个实施例中,b由第一方持有的b的第一分片与第二方持有的b的第二分片构成布尔共享形式,判断结果s的第一分片为b的第一分片各个比特模2连续求和的结果。
在一个实施例中,与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个通过以下方式进行:与第二方安全计算s与y和1/ε的差值的第二乘积,加上1/ε的和,作为选择结果。
在一个实施例中,所述安全判定协议为以下中的一项:布尔共享形式下的最高有效位判定协议、算术共享形式下的最高非0位判定协议、2幂区间判定协议。
在一个实施例中,牛顿迭代法中,第t+1迭代轮次的迭代值为:第t迭代轮次的迭代值的1.5倍,减去第一乘积x'/a的0.5倍与第t迭代轮次的迭代值的3次方的乘积。
根据第三方面,提供一种多方安全计算中的数据处理装置,用于针对在第一方、第二方构成共享形式的目标数据x,确定其平方根逆在两方的算术共享形式,第一方、第二方分别持有通过n个比特表示的目标数据x的第一分片、第二分片,所述装置设于第一方,包括:
预处理单元,配置为在x的第一分片上增加预定增项ε的平方的第一分片,得到近似数值x'的第一分片,其中,预定增项ε的模小于预定值;
参考值确定单元,配置为与第二方对近似数值x'执行安全判定协议,得到参考数据a的第一分片,其中,参考数据a为大于近似数值x'的最小的2的幂次;
安全求逆单元,配置为利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;
安全乘法单元,配置为利用参考数据a的逆1/a的第一分片、x'的第一分片,与第二方经由安全乘法,确定第一乘积x'/a,得到第一乘积x'/a的第一分片;
所述安全乘法单元还配置为,利用x'/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆候选值得到y的第一分片。
根据第四方面,提供一种多方安全计算中的数据处理装置,用于针对在第一方、第二方构成共享形式的目标数据x,确定其平方根逆在两方的算术共享形式,第一方、第二方分别持有通过n个比特表示的目标数据x的第一分片、第二分片,所述装置设于第一方,包括:
判定单元,配置为经由安全判定协议,确定不大于目标数据x的最大的2的幂次b,得到b的第一分片;以及
基于b的第一分片与第二方安全判定x是否零值,得到判断结果s的第一分片,其中,判断结果s的第一分片为单个比特的0或1;
选择单元,配置为与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个作为目标数据x的平方根逆的计算结果,以进行后续业务处理,其中,s为1则选择候选值y,s为0则选择预定增项ε的逆1/ε;
安全计算单元,配置为与第二方通过以下方式安全确定候选值y:将b的第一分片扩大2倍,作为参考数据a的第一分片;利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;利用参考数据a的逆1/a的第一分片、x的第一分片,与第二方经由安全乘法,确定第一乘积x/a,得到第一乘积x/a的第一分片;与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x/a的平方根逆的初始值,经过预定迭代次数,确定x/a的平方根逆y',得到x/a的平方根逆y'的第一分片;利用x/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆候选值得到y的第一分片。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
通过本说明书实施例提供的方法和装置,在两方安全计算场景中所涉及的针对任意非负数x进行算术求逆开平方的场景中,利用作为2的幂次的非零参考数据a,并经由牛顿迭代法,选择常数项作为迭代初始值,计算x/a的平方根逆,从而避免非负数x出现在分母上。并在迭代完成后,利用a的平方根逆将x/a的平方根逆恢复为x的平方根逆。
其中,对于非负数x,可以采用增加预定增项ε的技术构思,使得x的平方根逆由上界。基于该技术构思,一种实施方式下可以在x的平方根上增加该预定增项ε,用近似数值x'利用牛顿迭代法确定的平方根逆作为x的平方根逆,以避免计算x为0的平方根逆,另一种实施方式下可以对x是否0值进行判定,根据判定结果在x=0时选择上界1/ε,在x非0时按照上述牛顿迭代法确定x的平方根逆。本说明书的技术构思可以为多方安全计算场景下的非负数的平方根逆的计算提供新的方式,解决非负数为0情况下计算结果无效的问题,提高多方安全计算的数据处理有效性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的由两个参与方执行的多方安全计算中的数据处理的交互流程图;
图2示出执行两方安全乘法的数据流程示意图;
图3示出执行两方安全平方协议的数据流程示意图;
图4示出根据一个实施例的设于单个参与方的多方安全计算中的数据处理的方法流程图;
图5示出根据另一个实施例的由两个参与方执行的多方安全计算中的数据处理的交互流程图;
图6示出根据另一个实施例的设于单个参与方的多方安全计算中的数据处理的方法流程图;
图7示出根据一个实施例的设于单个参与方的多方安全计算中的数据处理的装置的示意性框图;
图8示出根据另一个实施例的设于单个参与方的多方安全计算中的数据处理的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的技术方案进行描述。
秘密共享(secret sharing)也称为秘密分割、秘密分享,其基本原理是将秘密(比如密钥、隐私数据等)拆分成多个份额(share),分别交给不同数据方保管。只有超过门限数量的各方将他们的share合并,才能恢复秘密;从少于门限数量的多方获取的share无法恢复秘密的任何信息。多方安全计算中,门限数量通常与参与方数量相同,秘密被拆分成的份额也可以称为分片。
秘密共享是多方安全计算过程中的重要手段。多方安全计算中常用的几种秘密共享形式例如有算术共享(Arithmetic Sharing)、布尔共享(Boolean Sharing)、姚氏共享(Yao'sSharing)。以下以共享秘密数据x为例,描述各种共享方式。
其中,算术共享也称为和共享。在双方安全计算中,把一个整数x以两个分片x=xL+xR以模2N的共享形式(平移到[0,2N-1]区间)分布式储存在两方,使得一方不知道xR,另一方不知道xL,两方中的任一方不能得到x的完整形式。进一步地,两方可以扩展为多方,如记为x=x1+x2+…+xd。假设N=64,则可以通过64字节(bit)的二进制数表示x在单个参与方的单个分片。将一个数据x拆分为和共享形式的方式例如为:随机生成d-1个264内的数值(如随机生成64字节的二进制数)作为d-1个分片,如分别记为x1、x2、…、xd-1,用并对264(平移到[0,264-1]区间)取模作为另一个分片,如记为xd=x-x1-x2-…-xd-1。
布尔共享是在比特位上进行异或操作的秘密分享方式。例如仍以两个参与方为例,假设x为一个比特的数据(取值为0或1),且以在两个参与方构成布尔共享形式,x0、x1分别为x在两个参与方的两个布尔共享分片,均在0或1上取值,表示异或运算。单个参与方不知道另一个参与方所持有的分片,因此不能推测数据x。对于由n个比特构成的数据x',可以随机生成n个比特的二进制数,作为一方的布尔共享分片(如x0')。另一方的布尔共享分片(如x1')可以由x'与该方的布尔共享分片的异或结果确定。
姚氏共享是与混淆电路(Garbled Circuits,GC)相关的一种共享方式,本说明书不涉及该共享方式,在此不再赘述。
上述三种Sharing(共享方式)各有自己的优势和劣势。在多方安全计算的业务处理过程中,为了处理的便利,可以将业务数据的共享形式进行转换。各种共享方式之间的转换可以通过常规技术实现,在此不再例举。在本说明书中,不再强调共享形式之间的转换过程中,可以根据需求和计算便利性进行共享形式转换。
在基于多方安全计算进行业务处理过程中,通常会遇到除法计算,或者求逆计算,例如1/x。其中,被除数x可以是预先设定的值、从业务数据中提取的数值、中间计算结果等数值中的一种。对于一个非负数x,还可能遇到平方根逆计算,如记为在计算机计算过程中,通常采用定点数、浮点数等数值形式进行,在x趋近于0的情况下,是无界的,并且,计算过程中可能会被截断为0。此时,可能因为计算出现差错而导致业务处理结果出错。
有鉴于此,本说明书提出对被除数增加一个微小正数ε(以下可以称为预定增项,如0.1),使得对x的平方根逆计算变为:这样,在x接近0的情况下,其平方根逆具有上界1/ε。而在实际业务处理过程中,增加微小增项ε后,可以使得对于大多数的x在业务处理中有意义,而对于较少数极端情形下x趋近于0的情形,加入微小增项ε对业务处理结果影响在可控范围内。
基于以上技术构思,本说明书提供两种相近的思路解决相应技术问题。其中,在一种思路下,可以在x的平方根上增加该预定增项ε,用近似数值x'利用牛顿迭代法确定的平方根逆作为x的平方根逆,以避免计算x为0的平方根逆,在另一种思路下,可以对x是否0值进行判定,根据判定结果在x=0时选择上界1/ε,在x非0时按照上述牛顿迭代法确定x的平方根逆。
下面结合附图示出的例子详细描述本说明书的技术构思。
为了描述更加清晰,图1、图5各自示出了以第一方、第二方两个参与方的多方安全计算下进行数据处理的一个交互过程。首先,x可以以定点数或浮点数的共享方式(如算术共享或布尔共享)存储在第一方、第二方。ε和/或ε2可以以同样的共享方式由第一方和第二方持有。为了描述方便,以下将数据共享方式下第一方持有的分片(share)称为第一分片,第二方持有的分片称为第二分片。其中,根据共享方式转换规则,假设算术共享的数据空间由比特数n限定为0至2n-1,则布尔共享的单个分片比特数也为n。其中,ε和/或ε2的分片可以由可信第三方随机拆分确定,并分发给第一方、第二方。其中,在可选的实施例中,为了节约通信量,ε和/或ε2在一方的分片可以由相应参与方采用与可信第三方一致的方式生成,另一方的分片由第三方根据ε和/或ε2的值生成后下发。
参考图1所示的例子,采用在x的平方根上增加该预定增项ε,用近似数值x'利用牛顿迭代法确定的平方根逆作为x的平方根逆的思路。进一步地,为了便于多方安全计算中利用共享分片进行安全计算,可以将改写成两者的差异在业务处理过程中可忽略。
首先,参考步骤101,为了计算x的平方根逆,可令x'=x+ε2,并用x'的平方根逆计算结果代替x的平方根逆。如此,第一方可以将x的第一分片和ε2的第一分片求和,第二方可以将x的第二分片和ε2的第二分片求和,从而得到x'在第一方、第二方的共享形式。
接着,参考步骤102,第一方、第二方运行安全判定协议,得到参考数值a。其中,a为大于x'的最小2的幂次,且在第一方、第二方构成共享形式。可以理解,这里的安全判定协议用于确定x'在二进制下的最高有效位,再将其扩大为2倍,即可得到a。
在共享形式下,这里的安全计算协议例如是确定第一个非0位的计算协议。例如,第一方、第二方可以通过编译器编译寻找第一个非0位的计算逻辑的布尔电路实现第一个非0位的确定。
作为一个具体例子,对于一个数据m而言,其最高有效位是比特值为1的最高位。在最高有效位的二进制表示中,仅在数据m的第e比特上为1,其他比特均为零值,则得到不大于m的最大2的幂次为2e。如果m各个参与方构成布尔共享形式,根据异或操作及或操作的特点可知,针对一个比特的各个数值异或结果为1的情况下,则其取或的结果也是1。因此,可以由各个参与方对m的各个布尔共享分片进行连续的安全或操作,直至得到出现1的比特,为最高有效位。
在布尔共享形式下,安全或操作可以通过异或操作(xor)、与操作(and)实现。例如对于两个分片A和B,A or B可以通过(A and B)xor(A xor B)实现。其中,A和B由多个比特构成的情况下,A xor B可以通过逐比特的异或操作实现,如在第i比特可以通过Ai xor Bi、A and B实现。安全或操作可采用常规技术实现,如论文“ABY–A Framework for EfficientMixed-Protocol Secure Two-Party Computation”(https://encrypto.de/papers/DSZ15.pdf)等中记载的方式等,在此不再赘述。
如此,第一方和第二方通过执行安全或操作,可以确定x'的最高有效位,从而在各个参与方得到参考数值b=2e的各个共享分片。
在其他实施例中,还可以通过诸如2-幂区间判定等安全判定协议确定参考数值b,在此不再赘述。
其中,以上协议的执行结果可以描述出x'的最高有效位,且在两个参与方构成共享形式。由于a是大于x'的2的最小幂次,将其扩大到2倍,可以得到参考数值a=2b。在布尔共享形式下,可以在得到b=2e的两个分片之后,由第一方、第二方各自将本地分片向高比特(左)移动一个比特,并在低位补0,相当于数据放大2倍,则可以得到参考值a=2e+1构成布尔共享的两个分片。在算术共享形式下,第一方、第二方则可以各自将本地分片在模2n下扩大2倍,得到a=2b构成算术共享的两个分片。
然后,参考步骤103,第一方和第二方可以安全执行2的幂次求逆协议得到参考数据a的逆1/a的算术共享形式,其中,第一方、第二方分别得到1/a的第一分片、第二分片。
由于a是2的幂次,可以采用常规方式确定其逆,也可以利用2的幂次的特殊性确定其逆,以降低两个参与方之间的通信交互。下面以利用2的幂次的特殊性确定其逆为例描述其求逆过程。
本领域技术人员可以理解,2的幂次在二进制形式下可以具有以下性质:
(1)2的幂次及其逆均仅由一个比特(如从最低位为第0比特计的第t比特)为1,其余位为0,在2的幂次在两个参与方构成布尔共享形式的情况下,两个布尔分片仅有一个比特是不同的;
(2)2的整数次幂在小数点前的一个比特为1其余比特为0,而2的整数次幂的逆在小数点后的一个比特为1其他比特为0;
(3)将小数点前的最低比特记为第0比特,则2的幂次的逆和2的幂次之间存在以下关系:2t在小数点前第t+1个比特(第t比特)为1,2t的逆在小数点后第t个比特为1。
基于以上性质,可以通过将2的幂次的布尔分片倒序排列,从而将值为1的比特排列到小数点后面,以确定2的幂次的逆对应的布尔共享形式,然后,按照布尔共享形式向算术共享形式的转换协议(如前文的B2A)协议,将各个参与方的分片转换成算术分片。
作为一个具体例子,在二进制形式下,对2的幂次求逆的原理如下:假设一个数值8=23,小数位数f为4,则其二进制形式为1000 0000,1在第7比特,即8=27×2-4=23,则低位的4个0表示小数点后的小数部分,比特值1位于小数点前由低位计的第3个比特。将二进制数据1000 0000倒序排列,最高位变最低位,得到0000 0001,则如果保持小数点位置不变,有:20×2-4=2-4=8-1×2-1。如果想得到8-1,可以将小数位数修改为f=3,则0000 0001对应20×2-3=8-1,或者,在最低位补0,最高位截断,得到0000 0010,对应小数位数f=4,以及21×2-4=8-1。
在布尔共享形式下,第一方、第二方各自对本地的布尔分片进行相同处理的情况下,可以各自得到2的幂次的逆的一个布尔分片。可选地,第一方、第二方通过对两个布尔分片执行安全B2A(布尔共享形式转换为算术共享形式)协议,可以得到2的幂次的逆的算术共享形式。其中,安全B2A协议可以是任意可以实现布尔共享形式转换为算术共享形式的协议,在此不再赘述。如此,根据2的幂次的求逆原理,可以在第一方、第二方分别得到1/a的一个分片,构成1/a在第一方、第二方的算术共享形式。
进一步地,参考步骤104,第一方和第二方经由安全乘法,确定x'与1/a的乘积x'/a。该乘积x'/a在两个参与方构成共享形式。
图2示出了一个具体例子的安全乘法的流程示意图。如图2所示,在对第一方持有的数据g和第二方持有的数据h进行安全乘法过程中,可以由可信第三方(如图2中的伪随机数生成服务器)生成随机数s、v,以及sv=z以算术共享形式存储的两个分片z1、z2。第三方可以按照约束sv=z0+z1生成各个辅助参数。第一方可以从可信第三方获取或本地生成s、z1,第二方可以从可信第三方获取z1、z2中的一个,并从第三方获取或本地生成另一个。例如,s、z1由第一方按照与可信第三方约定一致的伪随机数方式生成,v由第二方按照与可信第三方约定一致的伪随机数方式生成,z2由第二方从可信第三方获取,则离线通信量可以仅为一个数据分片(如z1)的通信量。
其中,s、v可以看作分别针对g、h的扰动项,用e、f分别表示g、h添加噪声后的扰动结果。则第一方计算扰动结果e=g-s发送给第二方,第二方计算扰动结果f=h-v发送给第一方。进一步地,第一方可以计算g×h的一个和共享分片c0=sf+z0,第二方可以计算g×h的另一个和共享分片c1=ev+z1。将e、f的表达式代入,则有:c0+c1=sf+z0+ve+z1=gh。也就是说,c0、c1构成g、h乘积的和共享形式。
将图2中的g替换为x'、h替换为1/a,则可以通过图2示出的原理确定x'与1/a的乘积x'/a,乘积x'/a通过第一方持有的第一分片、第二方持有的第二分片构成算术共享形式。
其中,用于计算x'/a的平方根逆的牛顿迭代公式为:yt+1'=1.5yt'-0.5x'/a×yt'3。迭代过程中,yt'、x'/a在第一方、第二方构成共享形式,因此,迭代过程可以采用拆分的平方计算、乘法计算、加法计算等完成,如yt'3拆分为两次安全乘法,或者一个安全平方计算与一个安全乘法计算,在此不再赘述。
图3示出了一个具体例子的安全平方协议的流程示意图。图3示出的安全平方协议的计算原理如下:对于一个数据l,在引入扰动j的情况下,有:l2=(x-j)2+2(x-j)j+j2。假设数据l在第一方和第二方构成和共享形式,第一方持有第一分片l0,第二方持有第二分片l1,把l-j记为扰动值dl,并将常数项j2=k看作消除扰动的平衡项,则可以由可信第三方(如图3中示出的为随机数生成服务器)生成j和k各自的分片j0、j1、k0、k1,并将j0、k0提供给第一方,将j1、k1提供给第二方。其中,j0、j1、k0、k1可以按照约束(j0+j1)2=(k0+k1),随机生成其中的三项,另一项由其他三项计算得到。举例而言,第一方生成随机数j0、k0,第二方生成随机数j1,可信第三方生成随机数j0、k0、j1,并计算k1后提供给第二方。如此,离线通信量可以仅为一个数据分片(如k1)的通信量。
之后,第一方可以计算扰动值dl的一个分片dl0=l0-j0,并提供给第二方,同理,第二方可以计算扰动值dl的另一个分片dl1=l1-j1,并提供给第一方。如此,第一方和第二方可以各自计算扰动值dl=dl0+dl1。实践中,还可以由一方计算扰动值dl的一个分片提供给另一方,另一方在本地计算dl的另一个分片后得到扰动值dl提供给对方。
进一步地,第一方和第二方各自在本地计算l2的相应分片。如图3所示,在一个具体例子中,第一方可以计算一个分片s0=(l2)0=(l-j)2+2(l-j)j0+(j2)0=dl×dl+2dl×j0+k0,第二方可以计算另一个分片s1=(l2)1=2(l-j)j1+(j2)1=2dl×j1+k1。实践中,第一方和第二方也可以以其他方式利用本地数据计算相应分片,如第二方计算s1=dl×dl+2dx×j1+k1,第一方计算s0=2dl×j0+k0,等等,在此不做限定。
在将yt'3拆分为一个安全平方yt'2计算与一个安全乘法yt'2×yt'的情况下,可以令图3中的l=yt'从而安全计算yt'2,再利用图2示出的安全乘法计算yt'2×yt'。值得说明的是,在未做特殊说明的情况下,安全平方协议执行中的各个分片均为模2n的形式。
牛顿迭代公式中的迭代次数可以根据定点数或浮点数的整数位数以及小数位数确定,如64比特定点数,小数位数为14的情况下,迭代次数为4。迭代结束后,y'在第一方、第二方构成算术共享形式。
如此,经由步骤105,可以得到x'/a的平方根逆,相当于将x'缩小了a倍,为了得到x'的平方根逆,需要将y'扩大a的平方根逆倍数,得到x'的平方根逆,即x'的平方根逆其中,可以通过y'与的安全乘法计算。
其中,为2的幂次a的平方根逆。2的幂次的平方根逆可以采用常规安全求逆开平方方式计算,也可以利用2的幂次的特殊性构造平方运算,以减少安全计算的参与方之间的通信量。具体而言,对于可以在以上安全求逆的基础上,进行安全开平方计算。安全开平方计算可以通过GMW电路实现,也可以构建安全平方计算实现。以下以利用2的幂次的特殊性实现为例进行描述。
以下以构建安全平方计算2的幂次求逆开平方为例进行举例说明。
具体而言,由于2的幂次的平方仍为2的幂次,可以将2幂的逆的开平方计算转换成其开四次方后求平方计算。下面以对2的幂次p=2q的开平方为例详细描述其原理。
首先,将n个比特表示的定点数或浮点数的小数位数f确定为4的倍数。这是因为,如果对2-f开平方,可得到2-f/2,而本说明书的技术构思下,需要构造平方计算,而2-f/4的平方为2-f/2,因此,为了计算方便,可以令f为4的倍数。并且,可以由第一方、第二方以比特位的等差形式(等间隔比特),将本地的布尔分片分为4组等间隔比特。具体为,第0、4、8、12……比特为1组,第1、5、9……比特为1组,第2、6、10……比特为1组,第3、7、11……比特为1组。或者说,在j分别取0、1、2、3的情况下,满足4i+j≤n的所有i对应的比特为一组。在各组比特值中,假设小数点与比特值的相对位置不变,则单组比特值对应的定点数可以记为f/4。
如此,针对单组等间隔比特的比特值,利用其对应的二进制数确定相应的算术参考值。假设第一方持有p的第一布尔分片pL,第二方持有p的第二布尔分片pR,则单个组对应的小数位数为f/4,第一方可以确定四个第一参考值:yL1=p0 L×20-f/4+p4 L×21-f/4+p8 L×22 -f/4……;yL2=p1 L×20-f/4+p5 L×21-f/4+p9 L×22-f/4……;yL3=p2 L×20-f/4+p6 L×21-f/4+p10 L×22 -f/4……;yL4=p3 L×20-f/4+p7 L×21-f/4+p11 L×22-f/4……。同理,第二方确定四个第二参考值:yR1=p0 R×20-f/4+p4 R×21-f/4+p8 R×22-f/4……;yR2=p1 R×20-f/4+p5 R×21-f/4+p9 R×22-f/4……;yR3=p2 R×20-f/4+p6 R×21-f/4+p10 R×22-f/4……;yR4=p3 R×20-f/4+p7 R×21-f/4+p11 R×22-f/4……。
由于2的幂次仅有一个比特为1,则对于p的四个布尔分片而言,yL1-yR1、yL2-yR2、yL3-yR3、yL4-yR4中仅有一个不为0,并且,各个参考值中,单个比特在取4次方后,与相应比特在pL中对应的实际值之间分别有40/4、41/4、42/4、43/4的倍数差。于是的算术值满足:
各个平方值依次对应的系数1、2、可以看作为了平衡这种倍数差的平衡系数。这样,通过第一方、第二方对两方各自的四个参考值一一确定相应差值的平方,可以得到p的开平方值。并且,可以保证开平方后的开方值为正值。
令p=1/a,则可以按照以上描述的方法确定其平方根逆第一方、第二方分别持有的第一分片、第二分片,构成的算术共享形式。其中,利用构建平方实现2的幂次的平方根逆的方法与常规平方根逆(如GMW电路方法)计算相比,通信量可以大大减少。如四次平方计算的在线通信量为8n。其中,可以在步骤102中确定出a的值之后、本步骤106中进行安全乘法之前的任意时刻进行,例如,在步骤103中确定1/a之后还直接确定本说明书对此不做限定。
通过图1示出的流程,第一方、第二方可以确定出带有微小增项ε的非负数x的平方根逆计算方法。在以上过程中,由于对x的平方根增加一个微小正数ε,可以避免安全计算架构下,目标数据x接近0的情况下,无界被截断为0影响业务处理结果的情形。
根据图1示出的交互流程可知,第一方、第二方在确定目标数据x的平方根逆过程中执行相似的流程,图4以其中的第一方为例,描述其中任意一个参与方执行的流程。
如图4所示,第一方执行的流程包括以下步骤:
步骤401,在x的第一分片上增加预定增项ε的平方的第一分片,得到近似数值x'的第一分片;其中,预定增项ε的模小于预定值,该近似数值x'的第一分片与第二方在本地x的第二分片上增加预定增项ε的平方的第二分片得到的近似数值x'的第二分片构成近似数值x'的共享形式;
步骤402,与第二方对近似数值x'执行安全判定协议,得到参考数据a的第一分片,其中,参考数据a为大于近似数值x'的最小的2的幂次;该步骤可以与第二方联合执行,参考数据a的第一分片与第二方得到的a的第二分片构成参考数据a的共享形式;
步骤403,利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;相对应地,第二方可以得到1/a的第二分片;
步骤404,利用参考数据a的逆1/a的第一分片、x'的第一分片,与第二方经由安全乘法,确定第一乘积x'/a,得到第一乘积x'/a的第一分片;相对应地,第二方可以得到第一乘积x'/a的第二分片;
步骤405,与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x'/a的平方根逆的初始值,经过预定迭代次数,确定x'/a的平方根逆y',得到x'/a的平方根逆y'的第一分片;相对应地,第二方可以得到x'/a的平方根逆y'的第二分片;
步骤406,利用x'/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆得到y的第一分片。相对应地,第二方可以得到y的第二分片。
值得说明的是,图4示出的数据处理流程是图1示出的交互流程中由第一方执行的流程,因此,图1中关于第一方的相关描述同样适用于图4示出的流程,在此不再赘述。
另一方面,由于增加预定增项ε的情况下,x趋近于0,则趋近于1/ε,因此,还可以对x的值进行安全的零值检测,即安全判定其是否为0,若为0,则令x的平方根逆为上界1/ε,若不为0,则通过牛顿迭代法确定x的平方根逆为y。图5示出该实施方案的一个具体实施流程。下面结合图5示出的流程描述本说明书技术构思下的一个实施方案。
首先,参考步骤501,第一方和第二方经由安全判定协议,确定不大于目标数据x的最大的2的幂次b,分别得到b的第一分片、第二分片。其中,这里的安全判定协议与步骤102中类似,在此不再赘述。
然后,参考步骤502,第一方与第二方安全判定x是否零值,分别得到判断结果s的第一分片、第二分片。其中,判断结果s可以为单个比特的0或1,其在第一方、第二方构成共享形式。如此,判断结果s的第一分片、第二分片均可以通过单个比特的0或1表示,第一分片、第二分片构成s的布尔共享形式,或者模2的算术共享形式。
可以理解,由于b是不大于x的最大的2的幂次,因此,x为0的情况下,b=0,其构成布尔共享形式的两个布尔分片中各个比特上的值均相同,否则,b在二进制下仅一个比特为1,即其布尔分片中仅有一个比特的值是不同的。根据该特点,在一个实施例中,可以由第一方、第二方各自将本地的b的布尔分片各个比特的数值进行模2的求和,作为s在本地的分片。在b=0的情况下,s在第一方、第二方的分片相同(s=0,x=0),否则,s在第一方、第二方的分片不同(s=1,x≠0)。
在其他实施例中,还可以通过诸如安全等于判定(安全判定两方持有的分片是否相等)等其他安全判定协议得到s的共享形式,在此不再一一例举。
另外,第一方和第二方还可以通过与图1所示过程类似的过程,经由牛顿迭代法确定x的平方根逆的候选值y。确定x的平方根逆的候选值y的过程可以在步骤501之前进行,也可以与步骤501、步骤502中至少一个并行进行,或者在其中一个步骤执行完毕后进行,在此不做限定。
假设候选值y在步骤501之后进行,记为步骤502',则该步骤502'可以包括以下子步骤:
子步骤5021',第一方、第二方各自将b的相应分片扩大2倍,作为参考数据a的相应分片。其中,将b的相应分片扩大2倍的方式为,在算术形式下以乘以2的乘积模2n的形式进行,在布尔共享形式下以向高位移动一比特并在低位补一个0的方式进行。
子步骤5022',第一方与第二方安全执行2的幂次求逆协议,第一方、第二方分别得到参考数据a的逆1/a的第一分片、第二分片。2的幂次求逆协议如前文的描述,在此不再赘述。其中,利用2的幂次的特殊性进行求逆,可以大大减少通信量。
子步骤5023',第一方与第二方经由安全乘法,确定第一乘积x/a,分别得到第一乘积x/a的第一分片、第二分片;
子步骤5024',第一方与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x/a的平方根逆的初始值,经过预定迭代次数,确定x/a的平方根逆y',分别得到x/a的平方根逆y'的第一分片、第二分片。此时的牛顿迭代公式例如为:yt+1'=1.5yt'-0.5x/a×yt'3。
进一步地,参考步骤503,第一方与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个作为目标数据x的平方根逆的计算结果,以进行后续业务处理。其中,s为1则选择候选值y,s为0则选择预定增项ε的逆1/ε。
s在y和1/ε之间选择可以通过构建安全计算的方式进行。在一个具体例子中,可以构建安全计算s×(y-1/ε)+1/ε的方式在y和1/ε之间进行选择。可知,在s=0的情况下,可以选择1/ε,而在s=1的情况下,选择y。在s、y、1/ε均在第一方、第二方构成共享形式的情况下,第一方、第二方均无法知晓最终选择了哪个值进行后续业务处理,有效保护数据隐私。
通过图5示出的流程,第一方、第二方可以根据x是否为0(或者因太小被截断为0),选择不同的方式确定其平方根逆,使得x为0的情况下,使用常数1/ε作为其平方根逆,避免其平方根逆无界造成的数据错误,影响业务处理过程的准确性。
图5示出的流程中,第一方、第二方在确定目标数据x的平方根逆过程中执行相似的流程,图6以其中的第一方为例,描述其中任意一个参与方执行的流程。如图6所示,第一方执行的数据处理流程可以包括:
步骤601,经由安全判定协议,确定不大于目标数据x的最大的2的幂次b,得到b的第一分片;
步骤602,基于b的第一分片与第二方安全判定x是否零值,得到判断结果s的第一分片,其中,判断结果s的第一分片为单个比特的0或1;
步骤603,与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个作为目标数据x的平方根逆的计算结果,以进行后续业务处理,其中,s为1则选择候选值y,s为0则选择预定增项ε的逆1/ε;
其中,候选值y通过以下方式确定:将b的第一分片扩大2倍,作为参考数据a的第一分片;利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;利用参考数据a的逆1/a的第一分片、x的第一分片,与第二方经由安全乘法,确定第一乘积x/a,得到第一乘积x/a的第一分片;与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x/a的平方根逆的初始值,经过预定迭代次数,确定x/a的平方根逆y',得到x/a的平方根逆y'的第一分片;利用x/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆候选值得到y的第一分片。
值得说明的是,图6示出的数据处理流程是图5示出的交互流程中由第一方执行的流程,因此,图5中关于第一方的相关描述同样适用于图6示出的流程,在此不再赘述。
可以理解的是,第一方、第二方仅用于区别两个安全计算的参与方,以上名称中的“第一”、“第二”,如第一分片、第二分片……等等,均为与相应参与方相对应描述所加的限定,也就是说,这种“第一”、“第二”的限定描述的是与相应参与方的对应关系。实践中,第一方和第二方执行的操作可以相互调换,以上描述的对应关系保持一致,也就是说,名称中的“第一”、“第二”也相互调换以进行对应,本说明书对此不做限定。
另外,根据一些可选的实现方式,在多于2个参与方的多方安全计算过程中,为了便于进行目标数据的算术求逆开平方,可以将一个或多个参与方持有的分片依次进行异或从而归于一个参与方,最终,使得x构成分布于2个参与方的共享形式。这样,可以在不泄露目标数据的情况下,由2个参与方执行目标数据的平方根逆。目标数据的平方根逆在这2个参与方分别得到的共享分片可以被随机拆分并分配给其他参与方,从而,目标数据的平方根逆可以在多个参与方构成和共享形式。
回顾以上过程,在两方安全计算场景中所涉及的针对任意非负数x进行算术求逆开平方的场景中,利用作为2的幂次的非零参考数据a,并经由牛顿迭代法,选择常数项作为迭代初始值,计算目标数值与a的比值的平方根逆,从而避免非负数x出现在分母上。并在迭代完成后,利用a的平方根逆将目标数值与a的比值的平方根逆恢复为目标数值的平方根逆。同时,转换后对2的幂次a求逆及平方根逆,可以根据2的幂次的特殊性执行相应安全计算协议,大大减少通信量。
其中,对于非负数x,可以采用增加预定增项ε的技术构思,使得x的平方根逆有上界。基于该技术构思,一种实施方式下可以在x的平方根上增加该预定增项ε,用近似数值x'利用牛顿迭代法确定的平方根逆作为x的平方根逆,以避免计算x为0的平方根逆,另一种实施方式下可以对x是否0值进行判定,根据判定结果在x=0时选择上界1/ε,在x非0时按照上述牛顿迭代法确定x的平方根逆。本说明书的技术构思可以为多方安全计算场景下的非负数的平方根逆的计算提供新的方式,解决非负数为0情况下计算结果无效的问题,提高多方安全计算的数据处理有效性。
根据另一方面的实施例,还提供一种设于计算方的多方安全计算中的数据处理的装置。图7示出了根据一个实施例的多方安全计算中的数据处理的装置700。该装置700可以设于多方安全计算的多个参与方中的任一方。以下以装置700设于第一方为例进行说明。
在两方安全计算中,目标数据x以在第一方、第二方分别对应的第一分片、第二分片,构成共享形式。装置700用于确定x的平方根逆。
如图7所示,设于多个参与方中的第一方的装置700包括:
预处理单元701,配置为在x的第一分片上增加预定增项ε的平方的第一分片,得到近似数值x'的第一分片,其中,预定增项ε的模小于预定值;
参考值确定单元702,配置为与第二方对近似数值x'执行安全判定协议,得到参考数据a的第一分片,其中,参考数据a为大于近似数值x'的最小的2的幂次;
安全求逆单元703,配置为利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;
安全乘法单元704,配置为利用参考数据a的逆1/a的第一分片、x'的第一分片,与第二方经由安全乘法,确定第一乘积x'/a,得到第一乘积x'/a的第一分片;
安全乘法单元704还配置为,利用x'/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆候选值得到y的第一分片。
图7示出了另一种设于计算方的多方安全计算中的数据处理的装置800。该装置800可以设于多方安全计算的多个参与方中的任一方。以下以装置800设于第一方为例进行说明。
如图8所示,装置800可以包括:
判定单元801,配置为经由安全判定协议,确定不大于目标数据x的最大的2的幂次b,得到b的第一分片;以及,基于b的第一分片与第二方安全判定x是否零值,得到判断结果s的第一分片,其中,判断结果s的第一分片为单个比特的0或1;
选择单元802,配置为与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个作为目标数据x的平方根逆的计算结果,以进行后续业务处理,其中,s为1则选择候选值y,s为0则选择预定增项ε的逆1/ε;
安全计算单元803,配置为与第二方通过以下方式安全确定候选值y:将b的第一分片扩大2倍,作为参考数据a的第一分片;利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;利用参考数据a的逆1/a的第一分片、x的第一分片,与第二方经由安全乘法,确定第一乘积x/a,得到第一乘积x/a的第一分片;与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x/a的平方根逆的初始值,经过预定迭代次数,确定x/a的平方根逆y',得到x/a的平方根逆y'的第一分片;利用x/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆候选值得到y的第一分片。
值得说明的是,图7、图8所示的装置700、800分别与图4、图6描述的方法相对应,图4、图6的方法实施例中的相应描述同样适用于装置700、800,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行结合图4、图6等所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行可执行代码时,实现结合图4、图6等所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。
Claims (15)
1.一种多方安全计算中的数据处理方法,用于针对在第一方、第二方构成共享形式的目标数据x,确定其平方根逆在两方的算术共享形式,第一方、第二方分别持有通过n个比特表示的目标数据x的第一分片、第二分片,所述方法由第一方执行,包括:
在x的第一分片上增加预定增项ε的平方的第一分片,得到近似数值x'的第一分片,其中,预定增项ε的模小于预定值;
与第二方对近似数值x'执行安全判定协议,得到参考数据a的第一分片,其中,参考数据a为大于近似数值x'的最小的2的幂次;
利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;
利用参考数据a的逆1/a的第一分片、x'的第一分片,与第二方经由安全乘法,确定第一乘积x'/a,得到第一乘积x'/a的第一分片;
2.如权利要求1所述的方法,所述安全判定协议为以下中的一项:布尔共享形式下的最高有效位判定协议、算术共享形式下的最高非0位判定协议、2幂区间判定协议。
3.如权利要求2所述的方法,其中,所述与第二方对近似数值x'执行安全判定协议,得到参考数据a的第一分片包括:
经由所述安全判定协议,确定不大于近似数值x'的最大的2的幂次b,得到b的第一分片;
将b的第一分片扩大2倍,作为参考数据a的第一分片。
4.如权利要求1所述的方法,其中,牛顿迭代法中,第t+1迭代轮次的迭代值为:第t迭代轮次的迭代值的1.5倍,减去第一乘积x'/a的0.5倍与第t迭代轮次的迭代值的3次方的乘积。
5.如权利要求1所述的方法,其中,a的第一分片对应n个比特,小数位数为f,所述与第二方安全执行2的幂次求逆协议包括:
将a的第一分片倒序排列,得到第一参考分片;
确定所述第一参考分片的小数位数为n-f-1,或者,在小数位数为n-f的情况下,将所述第一参考分片的低位补一个0最高位截断,作为a的逆的第一分片。
7.一种多方安全计算中的数据处理方法,用于针对在第一方、第二方构成共享形式的目标数据x,确定其平方根逆在两方的算术共享形式,第一方、第二方分别持有通过n个比特表示的目标数据x的第一分片、第二分片,所述方法由第一方执行,包括:
经由安全判定协议,确定不大于目标数据x的最大的2的幂次b,得到b的第一分片;
基于b的第一分片与第二方安全判定x是否零值,得到判断结果s的第一分片,其中,判断结果s的第一分片为单个比特的0或1;
与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个作为目标数据x的平方根逆的计算结果,以进行后续业务处理,其中,s为1则选择候选值y,s为0则选择预定增项ε的逆1/ε;
候选值y通过以下方式确定:将b的第一分片扩大2倍,作为参考数据a的第一分片;利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;利用参考数据a的逆1/a的第一分片、x的第一分片,与第二方经由安全乘法,确定第一乘积x/a,得到第一乘积x/a的第一分片;与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x/a的平方根逆的初始值,经过预定迭代次数,确定x/a的平方根逆y',得到x/a的平方根逆y'的第一分片;利用x/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆候选值得到y的第一分片。
8.如权利要求4所述的方法,其中,b由第一方持有的b的第一分片与第二方持有的b的第二分片构成布尔共享形式,判断结果s的第一分片为b的第一分片各个比特模2连续求和的结果。
9.如权利要求7所述的方法,与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个通过以下方式进行:
与第二方安全计算s与y和1/ε的差值的第二乘积,加上1/ε的和,作为选择结果。
10.如权利要求7所述的方法,所述安全判定协议为以下中的一项:布尔共享形式下的最高有效位判定协议、算术共享形式下的最高非0位判定协议、2幂区间判定协议。
11.如权利要求7所述的方法,其中,牛顿迭代法中,第t+1迭代轮次的迭代值为:第t迭代轮次的迭代值的1.5倍,减去第一乘积x'/a的0.5倍与第t迭代轮次的迭代值的3次方的乘积。
12.一种多方安全计算中的数据处理装置,用于针对在第一方、第二方构成共享形式的目标数据x,确定其平方根逆在两方的算术共享形式,第一方、第二方分别持有通过n个比特表示的目标数据x的第一分片、第二分片,所述装置设于第一方,包括:
预处理单元,配置为在x的第一分片上增加预定增项ε的平方的第一分片,得到近似数值x'的第一分片,其中,预定增项ε的模小于预定值;
参考值确定单元,配置为与第二方对近似数值x'执行安全判定协议,得到参考数据a的第一分片,其中,参考数据a为大于近似数值x'的最小的2的幂次;
安全求逆单元,配置为利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;
安全乘法单元,配置为利用参考数据a的逆1/a的第一分片、x'的第一分片,与第二方经由安全乘法,确定第一乘积x'/a,得到第一乘积x'/a的第一分片;
13.一种多方安全计算中的数据处理装置,用于针对在第一方、第二方构成共享形式的目标数据x,确定其平方根逆在两方的算术共享形式,第一方、第二方分别持有通过n个比特表示的目标数据x的第一分片、第二分片,所述装置设于第一方,包括:
判定单元,配置为经由安全判定协议,确定不大于目标数据x的最大的2的幂次b,得到b的第一分片;以及
基于b的第一分片与第二方安全判定x是否零值,得到判断结果s的第一分片,其中,判断结果s的第一分片为单个比特的0或1;
选择单元,配置为与第二方通过判断结果s在候选值y和预定增项ε的逆之间安全选择一个作为目标数据x的平方根逆的计算结果,以进行后续业务处理,其中,s为1则选择候选值y,s为0则选择预定增项ε的逆1/ε;
安全计算单元,配置为与第二方通过以下方式安全确定候选值y:将b的第一分片扩大2倍,作为参考数据a的第一分片;利用参考数据a的第一分片,与第二方安全执行2的幂次求逆协议,得到参考数据a的逆1/a的第一分片;利用参考数据a的逆1/a的第一分片、x的第一分片,与第二方经由安全乘法,确定第一乘积x/a,得到第一乘积x/a的第一分片;与第二方安全利用牛顿迭代法,以2的平方根逆作为第一乘积x/a的平方根逆的初始值,经过预定迭代次数,确定x/a的平方根逆y',得到x/a的平方根逆y'的第一分片;利用x/a的平方根逆y'的第一分片,以及与第二方执行2的幂次的求逆开平方协议得到的a的平方根逆的第一分片,与第二方执行安全乘法,确定目标数值x的平方根逆候选值得到y的第一分片。
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项的所述的方法。
15.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211590710.5A CN115906126A (zh) | 2022-12-12 | 2022-12-12 | 多方安全计算中的数据处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211590710.5A CN115906126A (zh) | 2022-12-12 | 2022-12-12 | 多方安全计算中的数据处理的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115906126A true CN115906126A (zh) | 2023-04-04 |
Family
ID=86496871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211590710.5A Pending CN115906126A (zh) | 2022-12-12 | 2022-12-12 | 多方安全计算中的数据处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115906126A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556441A (zh) * | 2023-11-21 | 2024-02-13 | 北京火山引擎科技有限公司 | 用于安全计算的数据处理方法、装置、介质及电子设备 |
CN117725621A (zh) * | 2024-02-08 | 2024-03-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及可读存储介质 |
-
2022
- 2022-12-12 CN CN202211590710.5A patent/CN115906126A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556441A (zh) * | 2023-11-21 | 2024-02-13 | 北京火山引擎科技有限公司 | 用于安全计算的数据处理方法、装置、介质及电子设备 |
CN117556441B (zh) * | 2023-11-21 | 2024-08-23 | 北京火山引擎科技有限公司 | 用于安全计算的数据处理方法、装置、介质及电子设备 |
CN117725621A (zh) * | 2024-02-08 | 2024-03-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN117725621B (zh) * | 2024-02-08 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111539026B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN115906126A (zh) | 多方安全计算中的数据处理的方法及装置 | |
JP5328186B2 (ja) | データ処理システム及びデータ処理方法 | |
US20210243005A1 (en) | Fully homomorphic encryption method and device and computer readable storage medium | |
CN111737757B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
US20070064930A1 (en) | Modular exponentiation with randomized exponent | |
Catrina | Round-efficient protocols for secure multiparty fixed-point arithmetic | |
CN113722734B (zh) | 两方安全选择确定选择结果分片的方法、装置和系统 | |
CN115080615A (zh) | 基于多方安全计算的数据查询方法及装置 | |
CN115756386A (zh) | 基于格密码的高效轻量级ntt乘法器电路 | |
CN113434886B (zh) | 联合生成用于安全计算的数据元组的方法及装置 | |
CN115001674A (zh) | 分享ot协议的执行方法、安全多方计算方法及装置 | |
US11895230B2 (en) | Information processing apparatus, secure computation method, and program | |
CN115766009A (zh) | 多方安全计算中针对2的幂次求逆的方法及装置 | |
CN113688426A (zh) | 针对隐私数据分片进行形式转换的方法、装置和系统 | |
US20220255722A1 (en) | Practical sorting on large-scale encrypted data | |
CN101183945A (zh) | 基于旁路算子的椭圆曲线抗旁路攻击方法 | |
CN111740821A (zh) | 建立共享密钥的方法及装置 | |
CN115664644A (zh) | 针对目标数据的共享形式转换方法及装置 | |
Catrina | Towards practical secure computation with floating-point numbers | |
CN113836595B (zh) | 两方安全比较的方法、装置和系统 | |
US20220345448A1 (en) | CRYPTOSYSTEM AND METHOD WITH EFFICIENT ELLIPTIC CURVE OPERATORS FOR AN EXTRACTION OF EiSi COORDINATE SYSTEM | |
Chabrier et al. | Hardware implementation of DBNS recoding for ECC processor | |
CN115442033A (zh) | 针对目标数据的共享形式转换方法及装置 | |
CN115766163A (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 |