CN116821961A - 保护隐私数据的布尔算术分享转换方法和装置 - Google Patents
保护隐私数据的布尔算术分享转换方法和装置 Download PDFInfo
- Publication number
- CN116821961A CN116821961A CN202310781956.9A CN202310781956A CN116821961A CN 116821961 A CN116821961 A CN 116821961A CN 202310781956 A CN202310781956 A CN 202310781956A CN 116821961 A CN116821961 A CN 116821961A
- Authority
- CN
- China
- Prior art keywords
- fragments
- random
- parties
- sharing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 41
- 239000012634 fragment Substances 0.000 claims abstract description 252
- 238000004364 calculation method Methods 0.000 claims abstract description 134
- 230000000873 masking effect Effects 0.000 claims abstract description 79
- 238000010276 construction Methods 0.000 claims description 27
- 230000011218 segmentation Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 108700009180 PPA protocol Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种保护隐私数据的布尔算术分享转换方法和装置,方法包括:第一方或第二方通过本地运算,得到第一随机数在对第二值取模的第二环中的算术分享的两个第一随机分片;第二值为2的n+1次幂;通过与其他两方进行的联合计算,得到第二随机数的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;第二随机数为第三方持有的两个第一随机分片之和;利用隐私数据的本方分片以及两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据在第二环中的算术分享的两个分片;利用本方具有的第一随机分片和掩蔽数据的分片,通过与其他两方进行的联合计算,得到两个结果分片。能够既保护隐私数据,又具有高效率。
Description
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及保护隐私数据的布尔算术分享转换方法和装置。
背景技术
当前,不同的数据持有方所持有的数据可能包含用户的隐私信息,数据持有方之间的数据共享可能会侵犯用户的隐私。为了能够打通多方之间的数据流通,利用安全多方计算支持多方之间的联合计算,挖掘出数据的价值,同时确保多方交互时不会泄露出各方隐私数据的明文信息。
安全多方计算能够使得多个互不信任的参与方安全地计算一个给定的函数,并且不会泄露除结果以外的输入、中间计算结果。秘密共享,也称为秘密分享,是将一个秘密分散到不同参与方的方法,每方得到秘密的一部分,称为分片。只有当持有足够多的分片时,才能还原出秘密;单个分片无法还原出秘密。
秘密共享由于其对于算术计算以及线性代数运算具有较高的效率,被广泛用于各个场景的安全计算。基于秘密共享的计算常常会涉及布尔算术分享转换,将一个隐私数据的布尔分享的分片转换为其算术分享的分片。现有技术中,在实现布尔算术分享转换时,为了保护隐私数据,效率较低。因此,需要提供保护隐私数据的布尔算术分享转换,能够既保护隐私数据,又具有高效率。
发明内容
本说明书一个或多个实施例描述了一种保护隐私数据的布尔算术分享转换方法和装置,能够既保护隐私数据,又具有高效率。
第一方面,提供了一种保护隐私数据的布尔算术分享转换方法,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,该方法由所述三个参与方中的第一方或第二方执行,包括:
通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;
利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
在一种可能的实施方式中,所述第一方、第二方、第三方各持有两个种子,任意两方之间持有一个相同的种子;所述第一本地运算包括:
利用本方持有的两个种子,生成对第一值取模的第一环中的两个生成随机数,所述第一值为2的k次幂;
将所述两个生成随机数分别对所述第二值进行本地取模,得到两个取模结果作为所述两个第一随机分片。
在一种可能的实施方式中,所述第一多方联合计算包括:
通过第二本地运算生成零的布尔分享的两个零分片;
利用所述两个零分片,通过与其他两方联合进行的旋转运算,得到所述两个第二随机分片。
进一步地,所述第一方、第二方、第三方各持有两个种子,任意两方之间持有一个相同的种子;所述第二本地运算包括:
利用本方持有的两个种子,生成对第一值取模的第一环中的两个生成随机数,所述第一值为2的k次幂;
将所述两个生成随机数进行本地的按位异或运算,得到零的布尔分享的两个零分片。
在一种可能的实施方式中,所述第二多方联合计算包括:
通过多方联合子计算,得到第一进位w'的两个进位分片;所述第一进位用于表示所述隐私数据的分片进行低位n位的加和是否产生进位;
利用本方具有的第一随机分片或掩蔽数据x'的分片,本地构造所述隐私数据的算术分享的一个构造分片;
利用所述一个构造分片,通过与其他两方联合进行的旋转运算,得到所述隐私数据的算术分享的两个构造分片;
利用第一进位w'的两个进位分片对两个构造分片进行本地调整运算,得到所述两个结果分片。
进一步地,所述第一多方联合计算还得到第二随机数rr的最高位的算术分享的两个高位分片;所述多方联合子计算包括:
确定掩蔽数据x'的最高位的两个本方分片;
利用掩蔽数据x'的最高位的两个本方分片以及所述两个高位分片,通过与其他两方进行的安全乘法计算,得到乘法结果的两个分片作为第一进位w'的两个进位分片;所述乘法结果为1减去掩蔽数据x'的最高位作为一个乘数,第二随机数rr的最高位作为另一个乘数的乘法运算的结果。
进一步地,所述确定掩蔽数据x'的最高位的两个本方分片,包括:
从所述第三方获取本方不具有的掩蔽数据的一个分片;
根据所述掩蔽数据的三个分片,本地计算所述掩蔽数据的最高位;
按照预先设定的方式,本地构造所述掩蔽数据x'的最高位的两个本方分片。
进一步地,所述本地构造所述隐私数据的算术分享的一个构造分片,包括:
通过第三本地运算生成零的算术分享的两个零分片;
利用一个零分片和本方具有的一个第一随机分片,本地构造所述隐私数据的算术分享的一个构造分片。
进一步地,所述本地构造所述隐私数据的算术分享的一个构造分片,包括:
通过第三本地运算生成零的算术分享的两个零分片;
确定掩蔽数据x';
利用一个零分片和掩蔽数据x',本地构造所述隐私数据的算术分享的一个构造分片。
第二方面,提供了一种保护隐私数据的布尔算术分享转换方法,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,该方法由所述三个参与方中的第三方执行,包括:
通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
基于所述两个第一随机分片之和确定第二随机数rr,并通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片,其有效位数为n+1;
利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
第三方面,提供了一种保护隐私数据的布尔算术分享转换装置,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,该装置设置于所述三个参与方中的第一方或第二方,包括:
本地运算单元,用于通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
第一联合计算单元,用于通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;
联合加和计算单元,用于利用所述隐私数据的本方分片以及所述第一联合计算单元得到的两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
第二联合计算单元,用于利用所述本地运算单元得到的本方具有的第一随机分片和所述联合加和计算单元得到的掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
第四方面,提供了一种保护隐私数据的布尔算术分享转换装置,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,该装置设置于所述三个参与方中的第三方,包括:
本地运算单元,用于通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
第一联合计算单元,用于基于所述本地运算单元得到的两个第一随机分片之和确定第二随机数rr,并通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片,其有效位数为n+1;
联合加和计算单元,用于利用所述隐私数据的本方分片以及所述第一联合计算单元得到的两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
第二联合计算单元,用于利用所述本地运算单元得到的本方具有的第一随机分片和所述联合加和计算单元得到的掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
通过本说明书实施例提供的方法和装置,隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片。三个参与方中的第一方或第二方首先通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;然后通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;接着利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;最后利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。由上可见,本说明书实施例,在进行布尔算术分享转换时,针对分片的有效位数不满全比特的情况,不是利用全比特的加法器来实现上述转换,而是结合有效位数的信息,减少加法器涉及到的比特位数,避免了不必要的计算,减小通信开销,提高整体计算效率,从而能够既保护隐私数据,又具有高效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的保护隐私数据的布尔算术分享转换方法流程图;
图3示出根据另一个实施例的保护隐私数据的布尔算术分享转换方法流程图;
图4示出根据一个实施例的保护隐私数据的布尔算术分享转换装置的示意性框图;
图5示出根据另一个实施例的保护隐私数据的布尔算术分享转换装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及保护隐私数据的布尔算术分享转换。可以理解的是,算术分享:是秘密分享的一种方式,定义在整数环上,支持包括加法和乘法的算术运算。布尔分享:是秘密分享的一种方式,定义在布尔环上,支持包括异或、与计算等的布尔运算。布尔算术分享转换:是指在不泄露秘密值的前提下,将一个数的布尔分享转换为算术分享。其中,上述秘密值即隐私数据,布尔算术分享转换需要保证隐私数据不会泄露。如图1所示,保护隐私数据的布尔算术分享转换的场景涉及参与方A、参与方B、参与方C,或称为第一方、第二方、第三方,或称为A方、B方、C方,或称为P0、P1、P2。各个参与方可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。各方要在保护数据隐私的情况下,联合实现布尔算术分享转换。
实际的计算场景,如机器学习通常基于浮点数运算,然而使用秘密共享实现安全浮点数运算会导致较高的开销,效率难以满足实际的计算需求,因此通常的做法是使用定点数来近似浮点数,在一定精度损失的前提下,取得较大的效率优化。秘密共享协议通常定义在环或者域上,各有优劣。环上的计算由于其取模操作能够隐式地由硬件负责,相较于域上计算需要手动取模,计算效率更高。
本说明书实施例中,定点数可以被映射到环中进行运算。映射构造过程如下:假设为一个有理数,需要将/>映射到整数域,令/>其中f为精度位数,即小数部分的位数,Int(·)为四舍五入取整。接着对/>进行模运算,使得/>其中k表示x的比特位数,将输入映射到/>的环上。
本说明书实施例中,定点数的算术分享在的环上。此外,还结合了布尔分享,其计算在/>环上。
本说明书实施例中,算术分享表示为或/>布尔分享表示为/>
本说明书实施例,通过安全多方计算来实现布尔算术分享转换。需要说明的是,多方可以是三个计算方。数据持有方可以作为计算方,数据持有方和计算方是可以有交集的,也可以完全没有交集。
本说明书实施例中,该方案用于三方,输入为各方具有的布尔分享的分片其比特位数为k,有效的比特位数为n_bits,期望的计算结果为/>即x在环/>上的算术分享的分片。其中,n_bits可以简写为n。涉及三个计算方P0、P1、P2,秘密输入x可以拆分为三个算术分享的分片(x0,x1,x2),满足Pi持有(xi,xi+1),以及x=(x0+x1+x2)mod 2k。
下面对本说明书实施例中使用到的常规计算原语进行简单说明,包括:
加法运算和常数乘法运算,可以直接根据原始的加法秘密共享协议完成。每一个参与方只需要在本地进行计算即可;
乘法运算,一个定点数乘法操作包含两个关键计算;首先,参与方使用标准的乘法协议完成整数乘法运算;在乘法计算完成后,由于定点数数据的精度有限,还需要对计算结果进行截断操作;使用截断运算对精度翻倍后的数据进行截断:截去数据的末f位数据,即除以2f;
比较运算,使用LESS协议将两个算术分享的输入进行大小比较,如果左边的输入小于右边的输入,则返回1的布尔分享;反之则返回0的布尔分享;
选择分片运算,输入两个算术分享以及一个布尔分享,使用SELECT协议根据布尔分享的0或1情况选择两个算术分享中的一个;
旋转运算,在三方场景下,由一方只具有三个分片中的一个分片(3-out-of-3)的分享,通过和下一个相邻方交换分片,得到各方具有三个分片中的两个分片(2-out-of-3)的分享,每一方持有两个分片;
加法器PPA,即基于kogge-stone算法实现的并行加法器,输入两个布尔分享,得到加和的算术分享输出;
伪随机数生成器PRF,即输入一个种子,每次调用返回一个伪随机数。
本说明书实施例,针对在保护隐私数据的布尔算术分享转换中提升转换效率,提出相应的解决方案。
图2示出根据一个实施例的保护隐私数据的布尔算术分享转换方法流程图,该方法可以基于图1所示的实施场景,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,所述方法由所述三个参与方中的第一方或第二方执行。如图2所示,该实施例中保护隐私数据的布尔算术分享转换方法包括以下步骤:步骤21,通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;步骤22,通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;步骤23,利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;步骤24,利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。下面描述以上各个步骤的具体执行方式。
首先在步骤21,通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂。可以理解的是,第一随机数r'被拆分为算术分享的三个第一随机分片,三个参与方各自通过本地运算得到所述三个第一随机分片中的两个,且两两之间持有一个相同的第一随机分片。其中,n在后面的示例中用n_bits代替。
在一个示例中,所述第一方、第二方、第三方各持有两个种子,任意两方之间持有一个相同的种子;所述第一本地运算包括:
利用本方持有的两个种子,生成对第一值取模的第一环中的两个生成随机数,所述第一值为2的k次幂;
将所述两个生成随机数分别对所述第二值进行本地取模,得到两个取模结果作为所述两个第一随机分片。
举例来说,三个参与方可以用Pi来表示,i的取值为0、1、2,P0代表第一方,P1代表第二方,P2代表第三方。在步骤21进行之前,满足参与方Pi和Pi+1两两之间持有相同的种子si+1,即每一方Pi持有两个种子si+1和si,这个种子作为伪随机数生成器的输入,用于两两参与方之间不需要通信地生成相同的随机数。每一个参与方Pi使用伪随机数生成器本地随机采样两个生成随机数ri和ri+1,满足三个生成随机数r0+r1+r2=r mod 2k,即(r0,r1,r2)构成了随机数r的算术分享。Pi(i=0,1,2)将持有的两个生成随机数进行本地取模,即ri′=ri mod2n_bits+1,ri′+1=ri+1mod 2n_bits+1。满足(r0′,r1′,r2′)构成一个在环上的随机分享,其中r0′+r1′+r2′=r′mod 2n_bits+1,r′的值三方都不知道。
上述处理过程可以通过如下代码实现:
“for i∈{0,1,2}do
Pi and Pi-1sample ri using seed_prev
Pi and Pi+1sample ri+1using seed_nxt
end for
(r0,r1,r2)constitutes a random arithmetic sharing.
for i∈{0,1,2}do
Pi computes ri′=ri mod 2n_bits+1and ri′+1=ri+1mod 2n_bits+1
end for”
可以理解的是,seed_prev为Pi和Pi-1共同具有的种子,seed_nxt为Pi和Pi+1共同具有的种子。
然后在步骤22,通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和。可以理解的是,第二随机数rr可以由第三方本地计算得到。
在一个示例中,所述第一多方联合计算包括:
通过第二本地运算生成零的布尔分享的两个零分片;
利用所述两个零分片,通过与其他两方联合进行的旋转运算,得到所述两个第二随机分片。
举例来说,(b0,b1,b2)构成了零的布尔分享,每一方Pi持有布尔分享的两个零分片bi+1和bi。P2本地计算r0′+r2′,计算对2n_bits+1是否存在进位,得到进位标识位w和取模的结果rr。接着使用布尔分享的两个零分片对rr进行掩藏。即计算此时三方调用ROTATE协议,得到/>的布尔分享,有效位数为n_bits+1。
上述处理过程可以通过如下代码实现:
“P2 computes w=(r0′+r2′)≥2n_bits+1?1:0
P2 computes rr=r0′+r2′-w*2n_bits+1
P2 computes
可以理解的是,ROTATE对应于前述旋转运算,需要多方联合进行。
可选地,所述第一多方联合计算还得到第二随机数rr的最高位的算术分享的两个高位分片;上述两个高位分片用于后续确定所述隐私数据的分片进行低位n位的加和是否产生进位。
举例来说,(a0,a1,a2)构成了零的算术分享,每一方Pi持有算术分享的两个零分片ai+1和ai。P2本地取出rr的最高位rr_bit。接着使用算术分享的两个零分片对rr_bit进行掩藏。即计算a′2=rr_bit+a2。此时三方调用ROTATE协议,得到的算术分享。
上述处理过程可以通过如下代码实现:
“P2 computes rr_bit=rr≥2n_bits?1:0
P2 computes a′2=rr_bit+a2
可以理解的是,ROTATE对应于前述旋转运算,需要多方联合进行。
进一步地,所述第一方、第二方、第三方各持有两个种子,任意两方之间持有一个相同的种子;所述第二本地运算包括:
利用本方持有的两个种子,生成对第一值取模的第一环中的两个生成随机数,所述第一值为2的k次幂;
将所述两个生成随机数进行本地的按位异或运算,得到零的布尔分享的两个零分片。
举例来说,三方利用伪随机数生成器,联合生成随机的布尔零分享。即对于(i=0,1,2),Pi和Pi-1利用共同的种子生成zbi,类似地,Pi和Pi+1利用共同的种子生成zbi+1。此时Pi计算由异或运算的性质,有/>即得到了一个随机的布尔零分享。
上述处理过程可以通过如下代码实现:
“for i∈{0,1,2}do
Pi and Pi-1sample zbi using seed_prev
Pi and Pi+1sample zbi+1using seed_nxt
Pi computes
end for
(b0,b1,b2)constitutes a zero Boolean sharing.”
可以理解的是,各方分别通过本地运算生成本方持有的零的布尔分享的两个零分片。
同理,三方利用伪随机数生成器,联合生成随机的算术零分享。即对于(i=0,1,2),Pi和Pi-1利用共同的种子生成zai,类似地,Pi和Pi+1利用共同的种子生成zai+1。此时Pi计算ai=zai-zai+1。由加法运算的性质,有a0+a1+a2=0mod 2k,即得到了一个随机的算术零分享。
上述处理过程可以通过如下代码实现:
“for i∈{0,1,2}do
Pi and Pi-1sample zai using seed_prev
Pi and Pi+1sample zai+1using seed_nxt
Pi computes ai=zai-zai+1
end for
(a0,a1,a2)constitutes a zero arithmetic sharing.”
可以理解的是,各方分别通过本地运算生成本方持有的零的算术分享的两个零分片。
接着在步骤23,利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片。可以理解的是,掩蔽数据并不为隐私数据,其通过第二随机数进行了掩盖。
举例来说,三方联合调用PPA协议,输入与/>通过加法器计算低位n_bits+1位的加和,结果为/>其中x′=x+rr。
上述处理过程可以通过如下代码实现:
可以理解的是,PPA对应于前述加和计算,需要多方联合进行。
最后在步骤24,利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。可以理解的是,掩蔽数据x'的分片已是算术分享的形式,需要消除其中包含的第二随机数,以得到所述隐私数据的算术分享的两个结果分片。
在一个示例中,所述第二多方联合计算包括:
通过多方联合子计算,得到第一进位w'的两个进位分片;所述第一进位用于表示所述隐私数据的分片进行低位n+1位的加和是否产生进位;
利用本方具有的第一随机分片或掩蔽数据x'的分片,本地构造所述隐私数据的算术分享的一个构造分片;
利用所述一个构造分片,通过与其他两方联合进行的旋转运算,得到所述隐私数据的算术分享的两个构造分片;
利用第一进位w'的两个进位分片对两个构造分片进行本地调整运算,得到所述两个结果分片。
进一步地,所述第一多方联合计算还得到第二随机数rr的最高位的算术分享的两个高位分片;所述多方联合子计算包括:
确定掩蔽数据x'的最高位的两个本方分片;
利用掩蔽数据x'的最高位的两个本方分片以及所述两个高位分片,通过与其他两方进行的安全乘法计算,得到乘法结果的两个分片作为第一进位w'的两个进位分片;所述乘法结果为1减去掩蔽数据x'的最高位作为一个乘数,第二随机数rr的最高位作为另一个乘数的乘法运算的结果。
进一步地,所述确定掩蔽数据x'的最高位的两个本方分片,包括:
从所述第三方获取本方不具有的掩蔽数据的一个分片;
根据所述掩蔽数据的三个分片,本地计算所述掩蔽数据的最高位;
按照预先设定的方式,本地构造所述掩蔽数据x'的最高位的两个本方分片。
举例来说,P2将自己持有的分片x′0发送给P1,x′2发送给P0。因此P0和P1可以结合自己本身持有的分片,还原得到x′=(x′0+x′1+x′2)mod 2n_bits+1。计算潜在的x′=x+rr进位。P0和P1计算得到x′_bit=x′≥2n_bits,即拿到x′的最高位。可以理解的是,由于P0和P1都持有x′_bit,因此(x′_bit,0,0)构成了一个有效的三方算术分享三方联合计算乘法
上述处理过程可以通过如下代码实现:
“P2 sends x2′to P0,x′0to P1.
P0 and P1 reveals x′=(x0′+(x1′+x2′))mod 2n_bits+1
P0 and P1 computes x′_bit=x′≥2n_bits.
(x′_bit,0,0)constitutes a sharing of
可以理解的是,MUL对应于前述安全乘法计算,需要多方联合进行。
进一步地,所述本地构造所述隐私数据的算术分享的一个构造分片,包括:
通过第三本地运算生成零的算术分享的两个零分片;
利用一个零分片和本方具有的一个第一随机分片,本地构造所述隐私数据的算术分享的一个构造分片。
进一步地,所述本地构造所述隐私数据的算术分享的一个构造分片,包括:
通过第三本地运算生成零的算术分享的两个零分片;
确定掩蔽数据x';
利用一个零分片和掩蔽数据x',本地构造所述隐私数据的算术分享的一个构造分片。
举例来说,利用零的随机算术分享和ROTATE协议得到输出。(c0,c1,c2)构成了零的算术分享,每一方Pi持有算术分享的两个零分片ci+1和ci。P0计算y0=-r′0+c0;P1计算y1=x′+c1=x+(r′0+r′2-w*2n_bits+1)+c1;P2计算y2=-r′2+w*2n_bits+c2。接着调用ROTATE协议,每一方持有其中两个分片,满足将计算得到的/>中的潜在进位效果抵消。计算输出/>
上述处理过程可以通过如下代码实现:
“P0 sets y0=-r′0+c0
P1 sets y1=x′+c1=x+(r′0+r′2-w*2n_bits+1)+c1
P2 sets y2=-r′2+w*2n_bits+c2
(x′_bit,0,0)constitutes a sharing of
return
可以理解的是,ROTATE对应于前述旋转运算,需要多方联合进行。
同理,三方利用伪随机数生成器,联合生成随机的算术零分享。即对于(i=0,1,2),Pi和Pi-1利用共同的种子生成zci,类似地,Pi和Pi+1利用共同的种子生成zci+1。此时Pi计算ci=zci-zci+1。由加法运算的性质,有c0+c1+c2=0mod 2k,即得到了一个随机的算术零分享。
上述处理过程可以通过如下代码实现:
“for i∈{0,1,2}do
Pi and Pi-1sample zci using seed_prev
Pi and Pi+1sample zci+1using seed_nxt
Pi computes ci=zci-zci+1
end for
(c0,c1,c2)constitutes a zero arithmetic sharing.”
可以理解的是,各方分别通过本地运算生成本方持有的零的算术分享的两个零分片。
图3示出根据另一个实施例的保护隐私数据的布尔算术分享转换方法流程图,该方法可以基于图1所示的实施场景,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,所述方法由所述三个参与方中的第三方执行。如图3所示,该实施例中保护隐私数据的布尔算术分享转换方法包括以下步骤:步骤31,通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;步骤32,基于所述两个第一随机分片之和确定第二随机数rr,并通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片,其有效位数为n+1;步骤33,利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;步骤34,利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
需要说明的是,图3所示的实施例与图2所示的实施例对应于同一技术方案,只是从不同的执行方的角度进行说明,三个参与方中第一方和第二方的执行过程更为相似,因此将二者的执行过程放在一起进行说明,第三方与前两者的执行过程差别较大,因此单独进行说明。
本说明书实施例,三个参与方的执行过程是相互呼应的,步骤31可以参照前面对步骤21的说明,步骤32可以参照前面对步骤22的说明,步骤33可以参照前面对步骤23的说明,步骤34可以参照前面对步骤24的说明。
通过本说明书实施例提供的方法,隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片。三个参与方中的第一方或第二方首先通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;然后通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;接着利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;最后利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。由上可见,本说明书实施例,在进行布尔算术分享转换时,针对分片的有效位数不满全比特的情况,不是利用全比特的加法器来实现上述转换,而是结合有效位数的信息,减少加法器涉及到的比特位数,避免了不必要的计算,减小通信开销,提高整体计算效率,从而能够既保护隐私数据,又具有高效率。
本说明书实施例提出的基于秘密分享的安全布尔算术分享转换方法可以安全、正确、高效地完成三方场景下的布尔分享到算术分享的转换,并且通信量相较现有方案有较大减少,在实际的应用场景中更加高效。其可以作为底层协议应用到混合使用布尔分享与算术分享的计算场景中,提高整体上层算法的效率。
根据另一方面的实施例,还提供一种保护隐私数据的布尔算术分享转换装置,该装置用于执行本说明书图2所示实施例提供的方法,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,所述装置设置于所述三个参与方中的第一方或第二方。图4示出根据一个实施例的保护隐私数据的布尔算术分享转换装置的示意性框图。如图4所示,该装置400包括:
本地运算单元41,用于通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
第一联合计算单元42,用于通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;
联合加和计算单元43,用于利用所述隐私数据的本方分片以及所述第一联合计算单元42得到的两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
第二联合计算单元44,用于利用所述本地运算单元41得到的本方具有的第一随机分片和所述联合加和计算单元43得到的掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
可选地,作为一个实施例,所述第一方、第二方、第三方各持有两个种子,任意两方之间持有一个相同的种子;所述本地运算单元41包括:
第一生成子单元,用于利用本方持有的两个种子,生成对第一值取模的第一环中的两个生成随机数,所述第一值为2的k次幂;
取模子单元,用于将所述第一生成子单元生成的两个生成随机数分别对所述第二值进行本地取模,得到两个取模结果作为所述两个第一随机分片。
可选地,作为一个实施例,所述第一联合计算单元42包括:
第二生成子单元,用于通过第二本地运算生成零的布尔分享的两个零分片;
第一旋转运算子单元,用于利用所述第二生成子单元生成的两个零分片,通过与其他两方联合进行的旋转运算,得到所述两个第二随机分片。
进一步地,所述第一方、第二方、第三方各持有两个种子,任意两方之间持有一个相同的种子;所述第二生成子单元包括:
第一生成模块,用于利用本方持有的两个种子,生成对第一值取模的第一环中的两个生成随机数,所述第一值为2的k次幂;
异或模块,用于将所述第一生成模块生成的两个生成随机数进行本地的按位异或运算,得到零的布尔分享的两个零分片。
可选地,作为一个实施例,所述第二联合计算单元44包括:
联合计算子单元,用于通过多方联合子计算,得到第一进位w'的两个进位分片;所述第一进位用于表示所述隐私数据的分片进行低位n位的加和是否产生进位;
构造子单元,用于利用本方具有的第一随机分片或掩蔽数据x'的分片,本地构造所述隐私数据的算术分享的一个构造分片;
第二旋转运算子单元,用于利用所述构造子单元得到的一个构造分片,通过与其他两方联合进行的旋转运算,得到所述隐私数据的算术分享的两个构造分片;
调整子单元,用于利用联合计算子单元得到的第一进位w'的两个进位分片对第二旋转运算子单元得到的两个构造分片进行本地调整运算,得到所述两个结果分片。
进一步地,所述第一多方联合计算还得到第二随机数rr的最高位的算术分享的两个高位分片;所述联合计算子单元包括:
第一确定模块,用于确定掩蔽数据x'的最高位的两个本方分片;
安全乘法模块,用于利用所述第一确定模块得到的掩蔽数据x'的最高位的两个本方分片以及所述两个高位分片,通过与其他两方进行的安全乘法计算,得到乘法结果的两个分片作为第一进位w'的两个进位分片;所述乘法结果为1减去掩蔽数据x'的最高位作为一个乘数,第二随机数rr的最高位作为另一个乘数的乘法运算的结果。
进一步地,所述第一确定模块,具体用于从所述第三方获取本方不具有的掩蔽数据的一个分片;根据所述掩蔽数据的三个分片,本地计算所述掩蔽数据的最高位;按照预先设定的方式,本地构造所述掩蔽数据x'的最高位的两个本方分片。
进一步地,所述构造子单元包括:
第二生成模块,用于通过第三本地运算生成零的算术分享的两个零分片;
第一构造模块,用于利用第二生成模块生成的一个零分片和本方具有的一个第一随机分片,本地构造所述隐私数据的算术分享的一个构造分片。
进一步地,所述构造子单元包括:
第三生成模块,用于通过第三本地运算生成零的算术分享的两个零分片;
第二确定模块,用于确定掩蔽数据x';
第二构造模块,用于利用第三生成模块生成的一个零分片和第二确定模块确定的掩蔽数据x',本地构造所述隐私数据的算术分享的一个构造分片。
根据另一方面的实施例,还提供另一种保护隐私数据的布尔算术分享转换装置,该装置用于执行本说明书图3所示实施例提供的方法,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,所述装置设置于所述三个参与方中的第三方。图5示出根据另一个实施例的保护隐私数据的布尔算术分享转换装置的示意性框图。如图5所示,该装置500包括:
本地运算单元51,用于通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
第一联合计算单元52,用于基于所述本地运算单元51得到的两个第一随机分片之和确定第二随机数rr,并通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片,其有效位数为n+1;
联合加和计算单元53,用于利用所述隐私数据的本方分片以及所述第一联合计算单元52得到的两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
第二联合计算单元54,用于利用所述本地运算单元51得到的本方具有的第一随机分片和所述联合加和计算单元53得到的掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
通过本说明书实施例提供的装置,隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片。三个参与方中的第一方或第二方首先由本地运算单元41通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;然后由第一联合计算单元42通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;接着联合加和计算单元43利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;最后第二联合计算单元44利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。由上可见,本说明书实施例,在进行布尔算术分享转换时,针对分片的有效位数不满全比特的情况,不是利用全比特的加法器来实现上述转换,而是结合有效位数的信息,减少加法器涉及到的比特位数,避免了不必要的计算,减小通信开销,提高整体计算效率,从而能够既保护隐私数据,又具有高效率。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2或图3中任一所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2或图3中任一所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (14)
1.一种保护隐私数据的布尔算术分享转换方法,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,所述方法由所述三个参与方中的第一方或第二方执行,包括:
通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;
利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
2.如权利要求1所述的方法,其中,所述第一方、第二方、第三方各持有两个种子,任意两方之间持有一个相同的种子;所述第一本地运算包括:
利用本方持有的两个种子,生成对第一值取模的第一环中的两个生成随机数,所述第一值为2的k次幂;
将所述两个生成随机数分别对所述第二值进行本地取模,得到两个取模结果作为所述两个第一随机分片。
3.如权利要求1所述的方法,其中,所述第一多方联合计算包括:
通过第二本地运算生成零的布尔分享的两个零分片;
利用所述两个零分片,通过与其他两方联合进行的旋转运算,得到所述两个第二随机分片。
4.如权利要求3所述的方法,其中,所述第一方、第二方、第三方各持有两个种子,任意两方之间持有一个相同的种子;所述第二本地运算包括:
利用本方持有的两个种子,生成对第一值取模的第一环中的两个生成随机数,所述第一值为2的k次幂;
将所述两个生成随机数进行本地的按位异或运算,得到零的布尔分享的两个零分片。
5.如权利要求1所述的方法,其中,所述第二多方联合计算包括:
通过多方联合子计算,得到第一进位w'的两个进位分片;所述第一进位用于表示所述隐私数据的分片进行低位n位的加和是否产生进位;
利用本方具有的第一随机分片或掩蔽数据x'的分片,本地构造所述隐私数据的算术分享的一个构造分片;
利用所述一个构造分片,通过与其他两方联合进行的旋转运算,得到所述隐私数据的算术分享的两个构造分片;
利用第一进位w'的两个进位分片对两个构造分片进行本地调整运算,得到所述两个结果分片。
6.如权利要求5所述的方法,其中,所述第一多方联合计算还得到第二随机数rr的最高位的算术分享的两个高位分片;所述多方联合子计算包括:
确定掩蔽数据x'的最高位的两个本方分片;
利用掩蔽数据x'的最高位的两个本方分片以及所述两个高位分片,通过与其他两方进行的安全乘法计算,得到乘法结果的两个分片作为第一进位w'的两个进位分片;所述乘法结果为1减去掩蔽数据x'的最高位作为一个乘数,第二随机数rr的最高位作为另一个乘数的乘法运算的结果。
7.如权利要求6所述的方法,其中,所述确定掩蔽数据x'的最高位的两个本方分片,包括:
从所述第三方获取本方不具有的掩蔽数据的一个分片;
根据所述掩蔽数据的三个分片,本地计算所述掩蔽数据的最高位;
按照预先设定的方式,本地构造所述掩蔽数据x'的最高位的两个本方分片。
8.如权利要求5所述的方法,其中,所述本地构造所述隐私数据的算术分享的一个构造分片,包括:
通过第三本地运算生成零的算术分享的两个零分片;
利用一个零分片和本方具有的一个第一随机分片,本地构造所述隐私数据的算术分享的一个构造分片。
9.如权利要求5所述的方法,其中,所述本地构造所述隐私数据的算术分享的一个构造分片,包括:
通过第三本地运算生成零的算术分享的两个零分片;
确定掩蔽数据x';
利用一个零分片和掩蔽数据x',本地构造所述隐私数据的算术分享的一个构造分片。
10.一种保护隐私数据的布尔算术分享转换方法,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,所述方法由所述三个参与方中的第三方执行,包括:
通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
基于所述两个第一随机分片之和确定第二随机数rr,并通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片,其有效位数为n+1;
利用所述隐私数据的本方分片以及所述两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
利用本方具有的第一随机分片和掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
11.一种保护隐私数据的布尔算术分享转换装置,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,所述装置设置于所述三个参与方中的第一方或第二方,包括:
本地运算单元,用于通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
第一联合计算单元,用于通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片;第二随机分片的有效位数为n+1;所述第二随机数为所述三个参与方中的第三方持有的两个第一随机分片之和;
联合加和计算单元,用于利用所述隐私数据的本方分片以及所述第一联合计算单元得到的两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
第二联合计算单元,用于利用所述本地运算单元得到的本方具有的第一随机分片和所述联合加和计算单元得到的掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
12.一种保护隐私数据的布尔算术分享转换装置,所述隐私数据被拆分为布尔分享的三个分片,各分片的长度为k比特,有效位数为n比特,n<k;三个参与方各自持有所述三个分片中的两个,且两两之间持有一个相同分片,所述装置设置于所述三个参与方中的第三方,包括:
本地运算单元,用于通过第一本地运算,得到第一随机数r'在对第二值取模的第二环中的算术分享的两个第一随机分片;所述第二值为2的n+1次幂;
第一联合计算单元,用于基于所述本地运算单元得到的两个第一随机分片之和确定第二随机数rr,并通过与其他两方进行的第一多方联合计算,得到第二随机数rr的布尔分享的两个第二随机分片,其有效位数为n+1;
联合加和计算单元,用于利用所述隐私数据的本方分片以及所述第一联合计算单元得到的两个第二随机分片,通过与其他两方联合进行低位n+1位的加和计算,得到掩蔽数据x'在所述第二环中的算术分享的两个分片;
第二联合计算单元,用于利用所述本地运算单元得到的本方具有的第一随机分片和所述联合加和计算单元得到的掩蔽数据x'的分片,通过与其他两方联合进行的第二多方联合计算,得到所述隐私数据的算术分享的两个结果分片。
13.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-10中任一项的所述的方法。
14.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项的所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310781956.9A CN116821961A (zh) | 2023-06-28 | 2023-06-28 | 保护隐私数据的布尔算术分享转换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310781956.9A CN116821961A (zh) | 2023-06-28 | 2023-06-28 | 保护隐私数据的布尔算术分享转换方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116821961A true CN116821961A (zh) | 2023-09-29 |
Family
ID=88142523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310781956.9A Pending CN116821961A (zh) | 2023-06-28 | 2023-06-28 | 保护隐私数据的布尔算术分享转换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116821961A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556441A (zh) * | 2023-11-21 | 2024-02-13 | 北京火山引擎科技有限公司 | 用于安全计算的数据处理方法、装置、介质及电子设备 |
-
2023
- 2023-06-28 CN CN202310781956.9A patent/CN116821961A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556441A (zh) * | 2023-11-21 | 2024-02-13 | 北京火山引擎科技有限公司 | 用于安全计算的数据处理方法、装置、介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111523145B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
US20140233727A1 (en) | Method for secure substring search | |
US20210243005A1 (en) | Fully homomorphic encryption method and device and computer readable storage medium | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
US8681986B2 (en) | Single-round password-based key exchange protocols | |
CN113259106B (zh) | 一种数据处理方法和系统 | |
KR20220054746A (ko) | 유사군 연산을 사용하여 암호화된 데이터에 대해 동등성 및 미만 연산을 수행하기 위한 시스템 및 방법 | |
JP2011164607A (ja) | シンボルシーケンスの編集距離のプライバシーを保護した計算の方法およびシステム | |
CN108055128B (zh) | Rsa密钥的生成方法、装置、存储介质及计算机设备 | |
CN112953700B (zh) | 一种提升安全多方计算效率的方法、系统及存储介质 | |
KR20220052858A (ko) | Aes 카운터 모드 암호화에서 쿼시그룹 연산으로 암호화된 정수들을 가산하고 비교하기 위한 시스템 및 방법 | |
CN116821961A (zh) | 保护隐私数据的布尔算术分享转换方法和装置 | |
JP6610277B2 (ja) | 共有鍵生成プログラム、共有鍵生成方法および情報処理端末 | |
CN107852324B (zh) | 用于加密消息的方法和加密节点 | |
JP2006259735A (ja) | Simd処理を用いた楕円曲線点8倍化 | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
CN115865311B (zh) | 一种恒定轮次安全多方计算协议的优化方法和系统 | |
Jalali et al. | Optimized supersingular isogeny key encapsulation on armv8 processors | |
CN113792322B (zh) | 一种安全两方比较方法及系统 | |
CN116821962A (zh) | 保护隐私数据的概率截断方法和装置 | |
CN116204910B (zh) | 插件化哈希加密方法、非易失性可读存储介质及电子设备 | |
CN116821184A (zh) | 保护隐私数据的安全索引查询方法和装置 | |
CN114095157B (zh) | 密钥管理方法、装置、计算机设备及可读存储介质 | |
CN114024674B (zh) | 两方安全比较的方法及系统 | |
CN112560106B (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 |