CN115442033A - 针对目标数据的共享形式转换方法及装置 - Google Patents
针对目标数据的共享形式转换方法及装置 Download PDFInfo
- Publication number
- CN115442033A CN115442033A CN202211063975.XA CN202211063975A CN115442033A CN 115442033 A CN115442033 A CN 115442033A CN 202211063975 A CN202211063975 A CN 202211063975A CN 115442033 A CN115442033 A CN 115442033A
- Authority
- CN
- China
- Prior art keywords
- party
- power
- boolean
- reference value
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本说明书实施例提供一种针对目标数据的共享形式转换方法及装置,在基于多方安全计算的业务处理过程中,针对以2为底数的预定幂次的目标数据的共享形式转换过程中,通过将布尔分片进行拆分得到和共享下的数值形式,然后利用拆分得到的数值确定两个参与方之间的交互数据,以由两个参与方进行用二进制数向其他数值转换的特性,进行安全乘法和多项式组合运算,从而避免大量数据通信,提供一种更加高效的B2A转换方式,提高安全计算的业务处理效率。
Description
技术领域
本说明书一个或多个实施例涉及安全计算技术领域,尤其涉及多方安全计算中针对目标数据的共享形式转换方法及装置。
背景技术
安全多方计算又称为多方安全计算,可以由多方共同计算出一个函数的结果,而不泄露这个函数中各方的输入数据,计算的结果公开给其中的一方或多方。安全多方计算的典型应用例如有隐私保护的多方数据的联合统计分析、机器学习等。这里的函数是一个统计运算的函数、一个机器学习算法等等。
在多方安全计算过程中,为了不泄露各方数据以及中间计算结果,可以将数据或中间结果以共享(share)形式由各方持有。单方持有一个数据分片,各方持有的分片融合在一起还原出相应数据。通常,计算保持在共享状态进行。如此,多方安全计算中的数据通信次数、通信量等均是影响安全计算效率的重要因素。
发明内容
本说明书一个或多个实施例描述了一种针对目标数据的共享形式转换方法及装置,用以解决背景技术提到的一个或多个问题。
根据第一方面,提供一种针对目标数据的共享形式转换方法,用于两方安全计算中,将目标数据在第一方、第二方的布尔共享形式转换为和共享形式,所述目标数据为2的预定幂次,第一方、第二方分别持有所述目标数据的第一布尔分片、第二布尔分片,所述方法由第一方执行,包括:针对所持有的第一布尔分片中的n个比特,按照与第二方协商一致的组数m分组并确定m个分组分别对应的m个第一参考值,其中,单个分组对应的比特位之间间隔为m,单个组对应的第一参考值由所对应的各个比特位构成的二进制数确定, m为非零偶数;分别与第二方基于安全乘法计算m个第一参考值与第二所相对应持有的m 个第二参考值的差的m次幂,得到各个m次幂分别对应的各个第一幂分片,单个第一幂分片与第二方得到的单个第二平方分片构成相应m次幂的和共享形式;对各个第一幂分片进行多项式求和,从而得到目标数据的第一和共享分片,其中,单个第一幂分片项的求和系数基于相应分组的最低位与所述第一布尔分片的最低位相比的偏移量确定,所述第一和共享分片与第二方对各个第二幂分片进行多项式求和得到的第二和共享分片构成所述目标数据的和共享形式。
在一个实施例中,单个组所对应的各个比特位由高位到低位排列构成单个二进制数,单个二进制数对应的单个第一参考值为该单个二进制数转换成十进制数或十六进制数的数值。
在一个实施例中,单个第一参考值与第二方的单个第二参考值对应相同的分组,所述利用所述m个第一参考值,分别与第二方基于安全乘法计算各个第一参考值与第二所相对应持有的第二参考值的差的m次幂包括:确定所述单个第一参考值与所述单个第二参考值之差的m次幂对应的第一展开项中,与所述第一展开项相关的第一乘数,其中,所述第一乘数为所述单个第一参考值的幂;利用所述第一乘数与由第二方基于所述单个第二参考值的幂确定的第二乘数执行安全乘法,从而得到所述第一展开项的第一分片,所述第一分片与第二方得到的第二分片构成所述第一展开项的和共享形式;基于所述单个第一参考值与所述第一展开项的第一分片的和,确定所述单个第一参考值与所述单个第二参考值之差的 m次幂的第一幂分片。
在一个实施例中,单个第一幂分片项的求和系数为2为底数相应偏移量为指数的幂次,相应偏移量为偏移比特数。
在一个实施例中,所述第一布尔分片、所述第二布尔分片中有且仅有1个比特为上的数值不相同。
在一个实施例中,所述第一布尔分片由多个参与方上的各个布尔分片依次执行异或操作得到。
根据第二方面,提供一种针对目标数据的共享形式转换装置,用于两方安全计算中,将目标数据在第一方、第二方的布尔共享形式转换为和共享形式,所述目标数据为2的预定幂次,第一方、第二方分别持有所述目标数据的第一布尔分片、第二布尔分片,所述装置设于第一方,包括:
分组单元,配置为针对所持有的第一布尔分片中的n个比特,按照与第二方协商一致的组数m分组并确定m个分组分别对应的m个第一参考值,其中,单个分组对应的比特位之间间隔为m,单个组对应的第一参考值由所对应的各个比特位构成的二进制数确定, m为非零偶数;
安全计算单元,配置为分别与第二方基于安全乘法计算m个第一参考值与第二所相对应持有的m个第二参考值的差的m次幂,得到各个m次幂分别对应的各个第一幂分片,单个第一幂分片与第二方得到的单个第二平方分片构成相应m次幂的和共享形式;
求和单元,配置为对各个第一幂分片进行多项式求和,从而得到目标数据的第一和共享分片,其中,单个第一幂分片项的求和系数基于相应分组的最低位与所述第一布尔分片的最低位相比的偏移量确定,所述第一和共享分片与第二方对各个第二幂分片进行多项式求和得到的第二和共享分片构成所述目标数据的和共享形式。
在一个实施例中,单个第一参考值与第二方的单个第二参考值对应相同的分组,所述安全计算单元进一步配置为:
确定所述单个第一参考值与所述单个第二参考值之差的m次幂对应的第一展开项中,与所述第一展开项相关的第一乘数,其中,所述第一乘数为所述单个第一参考值的幂;
利用所述第一乘数与由第二方基于所述单个第二参考值的幂确定的第二乘数执行安全乘法,从而得到所述第一展开项的第一分片,所述第一分片与第二方得到的第二分片构成所述第一展开项的和共享形式;
基于所述单个第一参考值与所述第一展开项的第一分片的和,确定所述单个第一参考值与所述单个第二参考值之差的m次幂的第一幂分片。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,在两方安全计算场景中所涉及的布尔共享向和共享形式转换(B2A)的场景中,考虑到常规转换协议的复杂性,以及2的预定幂次在布尔共享形式下的特殊性,提出一种新的转换方案,降低转换复杂度,提高多方安全计算的数据处理效率。其中,2的预定幂次在布尔共享形式下的特殊性为:两个布尔分片之间仅有一个比特上的数据是不同的。如此,可以考虑两个布尔共享分片转化成算术分片后的差值,对应着2的预定幂次。此外,还需考虑减法得到的差的符号问题。
具体地,为了保护数据隐私,可以将布尔共享分片中的比特拆分为多个分组,则两个参与方在各个分组中有且只有一个分组的一个比特上的数值是不同的,该分组的实际差不为0,而其他分组的实际差均为0。于是,可以通过两个参与方分别在这些分组比特位上的数值,构造基于减法运算的加法操作和偶数次幂操作,从而解决前述的差的符号问题,以在两个参与方分别得到两个和共享分片,构成2的预定次幂的和共享形式。这种共享形式转换的方式可以减少两个参与方在布尔共享和和共享形式转换的通信量,从而提高多方安全计算的业务处理效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出两方安全乘法的数据通信示意图;
图2示出根据一个实施例的由单个参与方执行的针对目标数据的共享形式转换方法流程图;
图3示出根据一个实施例的两个参与方执行的针对目标数据的共享形式转换方法的交互流程示意图;
图4示出根据另一个实施例的设于单个参与方的针对目标数据的共享形式转换装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的技术方案进行描述。
秘密共享(secret sharing)也称为秘密分割、秘密分享,其基本原理是将秘密(比如密钥、隐私数据等)拆分成多个份额(share),分别交给不同人保管。只有超过门限数量的各方将他们的share合并,才能恢复秘密;从少于门限数量的多方获取的share无法恢复秘密的任何信息。多方安全计算中,门限数量通常与参与方数量相同,秘密被拆分成的份额也可以称为分片。
秘密共享是多方安全计算过程中的重要手段。多方安全计算中常用的几种秘密共享形式例如有算术共享(Arithmetic Sharing)、布尔共享(Boolean Sharing)、姚氏共享(Yao's Sharing)。以下以共享秘密数据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)相关的一种共享方式,混淆电路可以通过布尔电路进行计算。仍以两个参与方(混淆方和计算方)为例,可以由混淆方设置全局字符串R,且R在表示0的字符串(如L0)上的作用结果为表示1的字符串(如L1),如R与L0的异或结果为L1。举例而言,秘密数据x的姚氏共享的一个分片x0可以是随机生成的字符串k0,另一个分片可以是k0与R作用在x上的作用结果的异或值k1(如记为)。
上述三种Sharing(共享方式)各有自己的优势和劣势。各种共享方式之间还可以相互转换。例如:
姚氏共享转换为布尔共享(Yao to Boolean Sharing,如简称Y2B),单个参与方在本地计算要是共享分片与表示0的字符串的异或结果,作为相应布尔共享分片;
布尔共享转换为姚氏共享(Boolean to Yao Sharing,如简称B2Y),持有布尔分片x0的第一方(如对应混淆方)随机生成姚氏分片k0,双方执行不经意传输协议(OT),并由第一方计算第二方将其所持有的布尔分片x1作为选择比特获得姚氏分片
算术共享转换为姚氏共享(Arithmetic to Yao Sharing,如简称A2Y),两方对x的两个分片x0、x1分别确定相应的姚氏共享分片,得到相应的两组姚氏分片(x0)0、(x0)1、(x1)0、(x1)1,然后各自在本地执行姚氏分片的加法操作,得到x的两个姚氏分片,如xY 0=(x0)0+(x1)0、xY 1=(x0)1+(x1)1;
算术共享转换为布尔共享(Arithmetic to Boolean Sharing,如简称A2B),A2B可以用Boolean加法电路实现(和A2Y)类似,或者使用Arithmetic比特抽取电路。由于Y2B 是没有开销(free)的,而姚氏共享在做加法时比布尔电路更加高效,因此可以依次使用 A2Y、Y2B叠加处理相应算术分片,得到相应的布尔分片,例如,算术分片xL经Y2B(A2Y (xL))处理得到布尔分片x0;
布尔共享转换为算术共享(Boolean to Arithmetic Sharing,如简称B2A)。B2A可以通过Boolean电路上的减法实现,但是这种方法开销太大。为了提升性能,两方可以使用基于OT的方法实现。在针对第i比特的第i次OT过程中,一方(如A方)作为发送方,向另一方(如B方)发送两个字符串si,0、si,1,并使它们满足: 另一方作为接受方输入本地布尔分片中第i比特的数值作为选择比特得到进而,发送方方计算接受方计算从而,将布尔共享形式转换为和共享形式;
等等。
各种共享方式之间的转换在此不再一一例举。
在多方安全计算的业务处理过程中,为了处理的便利,可以将业务数据的共享形式进行转换。常规技术中,对于2的预定次幂,通过以上常规的B2A转换协议进行转换,则在布尔共享分片有n比特的情况下,需执行n次OT,其通信量为离线的n(n+1)/2比特,以及在线的2n比特。
而考虑到2的预定次幂的二进制表示具有一定特殊性,即仅一个比特(如第t比特)为1,其余位为0。进一步地,其在两个参与方的布尔共享形式下,两个布尔分片仅在相应比特(如第t比特)上的数值不同,而其他比特的数值均为相同。据此,本说明书提供一种新的技术思路对2的预定次幂从布尔共享形式向和共享形式进行转换。
以下描述本说明书技术构思下的转换原理。假设两个参与方分别记为第一方和第二方。 2的预定次幂(记为t次幂)为目标数据x=2t,该目标数据在第一方、第二方构成布尔共享形式,如记为x=xL+xR mod2,或记为其中,表示异或操作,两个布尔分片xL、xR均为n个比特的字符串,每个比特取值为0或1。根据2的预定幂次的二进制表示可知,其仅有1个比特为1,其与比特均为0,例如2的1次幂表示为0010,2的2次幂为0100……,也就是说,xL、xR的n个比特中,只有1个比特是不同的。如x=0010(此时t=1),则xL、xR仅有从最后一位数的第2个比特是不同的。
如此,假设布尔分片中最右侧的比特(最低位)为第一个比特,且第一个比特用第0比特表示,则xL可以通过集合表示为xL=(x0 L,x1 L…xt L…xn-1 L),同理,xR可以通过集合表示为xR=(x0 R,x1 R…xt R…xn-1 R),第t比特为两个布尔分片xt L和xt R中相异的比特,其他比特均相同,但两个参与方相互不知道对方哪个比特与本地布尔分片相异。进一步地,将两个布尔分片看作二进制数表示,则单个布尔分片可以对应到一个八进制、十进制、十六进制等任一表示方式下的数值。如1011可以对应十进制数值11=1×20+1×21+0×22+1 ×23。两个布尔分片各自对应数值分别为:yL=x0 L×20+x1 L×21…xt L×2t…xn-1 L×2n-1;yR=x0 R×20+x1 R×21…xt R×2t…xn-1 R×2n-1。则有,yL-yR=xt L×2t-xt R×2t=(xt L-xt R)×2t=±2t。两个参与方各自调整yL、yR的符号,如为yL和-yR,或者-yL和yR,使得前面的符号为正 (即确定yL-yR的绝对值|yL-yR|),并用调整后的数值模2n,则可以得到x在两个参与方的和共享分片。
然而,两个参与方并不能得知哪个参与方需在本地调整数值的符号。如果通过安全比较确定yL和yR的大小,则可能泄露t的可能取值。例如,比较结果为yL小于yR,则可以确定t为第一方在布尔分片上值为0的比特之一,或者第二方在布尔分片上值为1的比特之一。由此,为了保护数据隐私,本说明书基于前文yL-yR=±2t的原理,采用对布尔分片的比特进行分割,并引入偶数次幂的计算,从而既能保护数据隐私,又能解决符号问题造成的无法转换问题。
在本说明书的技术构思下,可以将布尔分片的比特位数值分为偶数个分组,并分别计算其对应的数值作为参考值,然后,将两个布尔分片中两两对应的各组参考值进行数值差的偶数次幂的安全计算,并将数值差的偶数次幂作为多项式的项进行求和,从而得到各个和共享分片。以下以两个参与方,按照比特位的奇数和偶数位(2个分组),将布尔分片的比特位数值分为两组为例,描述本说明书的技术构思。
假设第一方用L标识,第二方用R标识,单个布尔分片由n个比特位构成,其中的比特位由低位向高位依次用下标0、1、2……n-1标识。假设n为偶数,则下标0、2、4…… n-2为偶数,而下标1、3……n-1为奇数,这里将下标为偶数的比特位称为偶数比特,则奇数对应奇数比特。
则,L方的偶数比特构成的二进制数例如可以对应数值:yL1=x0 L×20/2+x2 L×22 /2…… xn-2 L×2(n-2)/2;奇数比特构成的二进制数例如对应数值:yL2=x0 L×20/2+x1 L×22 /2……xn-1 L× 2(n-2)/2。根据二进制的数值表示规则,偶数比特对应的数值与这些比特位上的值在目标数据的布尔分片中代表的值相比,将各加数项取平方可以得到这些比特位上的值在目标数据的布尔分片中代表的数值,而奇数比特对应的数值与这些比特位上的值在目标数据的布尔分片中代表的值相比,将各加数项取平方后再乘以2可以得到这些比特位上的值在目标数据的布尔分片中代表的数值。
同理,R方的偶数比特构成的二进制数例如可以对应数值:yR1=x0 R×20/2+x2 R×22 /2…… xn-2 R×2(n-2)/2;奇数比特构成的二进制数例如可以对应数值为:yR2=x1 R×20/2+x3 R×22/2…… xn-1 R×2(n-2)/2。同样,R方的偶数比特对应的数值与这些比特位上的值在目标数据的布尔分片中代表的值相比,将各加数项取平方可以得到这些比特位上的值在目标数据的布尔分片中代表的值,而奇数比特对应的数值与这些比特位上的值在目标数据的布尔分片中代表的值相比,将各加数项取平方后再乘以2可以得到这些比特位上的值在目标数据的布尔分片中代表的值。
本说明书中,可以将L方或R方通过分组后的二进制数得到的数值称为参考值。
值得说明的是,在两个参与方相对应的两组数据yL1和yR1、yL2和yR2中,有且仅有一组数据是相等的(差为0),并且另一组数据中,两者相差对应下标为t的比特对应的项。在t为偶数的情况下,该相差的项的平方为2t,在t为偶数奇数的情况下,该相差的项的平方的2倍为2t。如此,则有:|yL-yR|=(yL1-yR1)2+2(yL2-yR2)2。可以理解,经过转化为平方计算,可以确保相应平方项的值为正,有效解决前文提到的符号问题。
为了在不泄露数据隐私的情况下进行安全计算,可以将该式展开,得到:
|yL-yR|=yL1 2+yR1 2-2 yL1×yR1+2yL2 2+2yR2 2-4yL2×yR2
=(yL1 2+2yL2 2)+(yR1 2+2yR2 2)-2(yL1×yR1)-4(yL2×yR2)
如此,由L方在本地计算第一项s1=(yL1 2+2yL2 2),由R方在本地计算第二项s2=(yR1 2+2yR2 2),且由L、R双方使用和共享形式下的安全乘法计算z1=(yL1×yR1)和z2= (yL2×yR2),从而在L方得到z1、z2各自的第一分片z1L、z2L,在R方得到z1、z2各自的第二分片z1R、z2R。进而,由L方在本地计算s1-2 z1L-4z2L模2N,作为2的预定次幂2t在模2n的和共享形式下的第一分片,由R方在本地计算s2-2 z1L-4z2L模2n,作为2的预定次幂2t在模2n的和共享形式下的第二分片。
在以上过程中,双方的交互涉及两次安全乘法计算,其通信量也取决于安全乘法的计算量。图1示出了两个参与方分别持有a和b情况下的安全乘法运算示例。在图1中,第一方持有数据a,第二方持有数据b,两方安全计算a×b,结果c以和共享方式分布在第一方(如持有分片c0)和第二方(如持有分片c1),且单方不知道对方存储的分片。在常规的计算中,还可以引入半可信的第三方(不能获取各个数据方的数据,因此不完全可信),该第三方例如为伪随机数生成服务器。
具体地,首先,第一方获取随机数u,第二方获取随机数v。其中,u和v可以由第三方(图1中的为随机数生成服务器)生成并分发给第一方、第二方,也可以由第一方、第二方在本地生成。第三方本地生成u、v或者从第一方、第二方获取u、v,计算u×v并按照和共享方式拆分得到随机分片z0、z1,则z0+z1=u×v=uv。第三方可以将z0、z1分别提供给第一方、第二方。假设第一方获得z0,第二方获得z1。其中,u、v可以看作分别针对a、 b的扰动项或噪声项,用e、f分别表示a、b添加噪声后的扰动结果。则第一方计算扰动结果e=a-u发送给第二方,第二方计算扰动结果f=b-v发送给第一方。进一步地,第一方可以计算a×b的一个和共享分片c0=uf+z0,第二方可以计算a×b的另一个和共享分片c1=eb+ z1。将e、f的表达式代入,则有:c0+c1=uf+z0+eb+z1=ub-uv+z0+ab-ub+z1=ab。也就是说, c0、c1构成a、b乘积的和共享形式。
在以上过程中,对于单个参与方而言,从第三方接收数据可以在离线状态下进行,因此离线(offline)接收数值数量为1,在数值通过n比特表示的情况下,通信量为n。两次安全乘法的离线通信量共2n比特。在线(online)进行一次安全乘法计算过程中,两个数据方相互交换一个数值,共交换2个数值,通信量为2n。两次安全乘法的通信量为2×2n=4n 比特。如此,与常规技术的转换方式相比,本说明书提出的B2A转换方式,由于离线通信量大幅减少,使得离线和在线总的通信量大大减少。
推而广之,针对单个布尔分片的n个比特位,还可以采用其他拆分方法拆分成其他组数。以任意非0的偶数m(m可以由两个参与方协商确定)组为例,假设与m的倍数一致的比特位作为一个分组,则L方可以经由以下方式拆分本地的布尔分片,以得到各组比特对应的数值。例如,一个分组可以包括下标为0、m、2m等等比特,另一个分组可以包括下标为1、m+1、2m+1等等比特……。于是,L方的布尔分片拆分为m个组,单个组的相邻比特之间间隔m,如第一组从最低位开始,可以包括以下比特:x0 L、xm L、x2m L等等,对应数值为:yL1'=x0 L×20+xm L×21+x2m L×22+x3m L×23+……;第二组从第1比特开始,可以包括以下比特:x1 L、xm+1 L、x2m+1 L等等,对应数值为:yL2'=x1 L×20+xm+1 L×21+x2m+1 L×22+x3m+1 L×23+……;第三组从第2比特开始,可以包括以下比特:x2 L、xm+2 L、x2m+2 L等等,对应数值为:yL3'=x2 L×20+xm+2 L×21+x2m+2 L×22+x3m+2 L×23+……。同理,R方可以得到yR1'、yR2'、yR3'等等。L方和R方的各个比特组对应的数据中,仅有一组数据是不相等的。则有:|yL'-yR'|=(yL1'-yR1')m+2(yL2'-yR2')m+22(yL2'-yR2') m+23(yL2'-yR2')m+……。同样,将各项拆分,可以转化成L方和R方的本地计算,以及多个安全乘法计算。这里,m为偶数可以保证幂的正数性质。然而,根据该式可知,m 值越大,拆分项数越多,计算越复杂,安全计算中涉及的安全乘法项越多,通信量也增加。因此,本说明书较优的实施例可以取m=2,经过两次安全乘法,但不排除在以上构思下将 m取其他值的可能性。
以下结合图2示出的一个实施例的由单个参与方执行的针对目标数据进行共享形式转换的流程,进一步描述本说明书的技术构思。这里,将多方安全计算中的两个参与方分别称为第一方、第二方。这里,第一方、第二方仅用于区分两个参与方,第一方可以是两个参与方中的任一方,第二方表示另一方。目标数据在两个参与方构成的布尔共享形式,目标数据是2的预定幂次。两个参与方分别持有目标数据的两个布尔分片,单个布尔分片对应n个比特表示。可以理解,布尔共享的两个分片按位执行异或操作可以得到目标数据的二进制形式。
由于在共享形式转换过程中,第一方和第二方可以同步执行相同的操作,因此,图2 示出的流程以第一方执行为例进行说明。如图2所示,该流程可以包括:步骤201,针对所持有的第一布尔分片中的n个比特,按照与第二方协商一致的组数m分组并确定m个分组分别对应的m个第一参考值,其中,单个分组对应的比特位之间间隔为m,单个组对应的第一参考值由所对应的各个比特位构成的二进制数确定,m为非零偶数;步骤202,分别与第二方基于安全乘法计算m个第一参考值与第二所相对应持有的m个第二参考值的差的m次幂,得到各个m次幂分别对应的各个第一幂分片,单个第一幂分片与第二方得到的单个第二平方分片构成相应m次幂的和共享形式;步骤203,对各个第一幂分片进行多项式求和,从而得到目标数据的第一和共享分片,其中,单个第一幂分片项的求和系数基于相应分组的最低位与第一布尔分片的最低位相比的偏移量确定,第一和共享分片与第二方对各个第二幂分片进行多项式求和得到的第二和共享分片构成目标数据的和共享形式。
首先,在步骤201,针对所持有的第一布尔分片中的n个比特,按照与第二方协商一致的组数m分组并确定m个分组分别对应的m个第一参考值。
其中,单个组对应的比特位之间间隔为m。这里,m可以是大于0的偶数。以m=2 为例,一个组中的各个比特位例如为0、m、2m、3m……,另一个组中的比特位例如为1、 m+1、2m+1、3m+1……,等等。可以理解,单个组的各个比特位可以代表一定的数值。在本说明书的技术构思下,为了不泄露各个比特代表的数值,可以基于对单个组的比特上的数值按照比特位由高到低的排列,构成一个新的二进制数,并将新的二进制数对应的数值确定为单个第一参考值。这里,第一参考值中的第一与第一方相对应,而非对参考值进行实质性限定。
在一个实施例中,可以将单个组的比特位上的数值组合成新的二进制数,从而确定该二进制数对应的参考值。例如第一布尔分片为10011011,m=2,比特位由低到高记为0至 7位,第一组比特位为由低到高的0、2、4、6,各个比特上的值从高位到地位排列为:0101,可以对应数值5作为该组的第一参考值,第二组比特位为由低到高的1、3、5、7,各个比特上的值从高位到地位排列为:1011,可以对应数值11作为该组的第一参考值,等等。在分组数量为m的情况下,第一方可以得到m个第一参考值。
同理,第二方可以以相同的方式处理本地的第二布尔分片,从而得到m个第二参考值。其中,第二布尔分片是与第一布尔分片构成目标数据的布尔共享形式的分片。m个第一参考值与m个第二参考值一一对应。具体地,两方在相同比特位的分组及参考值相对应,例如,第一方的基于第一布尔分片的比特位0、2、4、6得到的分组及第一参考值,与第二方的基于第二布尔分片的比特位0、2、4、6得到的分组及第二参考值相对应。
在步骤202,分别与第二方基于安全乘法计算m个第一参考值与第二所相对应持有的 m个第二参考值的差的m次幂,得到各个m次幂分别对应的各个第一幂分片。
可以理解,由于m为偶数,单个第一参考值与其对应的单个第二参考值的差的m次方恒为非负数。两个数的差的m次幂可以被展开为多项式的和(差可以看作求和的负数项)运算,因此,单个第一参考值与其对应的单个第二参考值的差的m次幂可以通过安全求和和安全乘法确定。在m=2的情况下,m次幂为平方运算,下面以平方为例进行描述。
在多方安全计算中,单个第一参考值与其对应的单个第二参考值的差的平方的计算有两种方式:一种是先计算第一参考值和第二参考值的差,再利用安全乘法计算两者的差的平方;另一种是如前文中将差的平方分解为第一参考值的平方项、第二参考值的平方项、第一参考值与第二参考值的乘积项。其中,该计算过程可以采用秘密共享、同态加密等安全计算方法进行。本说明书以秘密共享为例,两种方式都需要经过一次安全乘法,其中第二种方式仅涉及安全乘法中的通信,更有利于减少通信量。
经安全计算,在第一方和第二方分别得到单个第一参考值和单个第二参考值的差的m 次幂方的一个和共享分片,本说明书可以将其称为幂分片。进一步地,第一方得到的分片称为第一幂分片,第二方得到的分片可以称为第二幂分片。如此,针对m组第一参考值和第二参考值,第一方可以得到m个第一幂分片,第二方可以得到m个第二幂分片。单个第一幂分片与单个第二幂分片构成单组第一参考值和第二参考值的差的m次幂方值的和共享形式。
步骤203,对各个第一幂分片进行多项式求和,从而得到目标数据的第一和共享分片。
根据前文的原理可知,目标数据被转化成了第一布尔分片对应的数值与第二布尔分片对应的数值的差的绝对值,而由于第一布尔分片和第二布尔分片之间仅有一个比特位不同,也就是说,步骤202得到的各个m次幂方中仅有一个幂方的真实值不为0,从而,可以通过对各个幂方进行多项式求和,得到的和的模2N的结果与不为0的幂方单独模2N的结果是一致的。即,将各个幂方作为多项式中的项,按照合理的系数进行求和。
这里,结合各个参考值的确定方式,合理的系数可以与相应分组的最低位与第一布尔分片的最低位相比的偏移量相关。举例而言,m=2时,第一布尔分片的最低位为第0比特位,第一组的最低位为第0比特,两者的偏移为0,则相应系数可以为2的0次方,第二组的最低位为第1比特,两者的偏移为1,则相应系数可以为2的1次方。如得到的多项式为:[(yL1-yR1)2]L+2[(yL2-yR2)2]L。其中,[(yL1-yR1)2]L和[(yL2-yR2)2]L为第一方持有的两个第一幂分片。
同理,在m=4时,第一组对应偏移为0,则相应系数可以为2的0次方,第二组的偏移为1,则相应系数可以为2的1次方,第一组对应偏移为2,则相应系数可以为2的2 次方,第四组的偏移为3,则相应系数可以为2的3次方。在m为更大的偶数值时,其他幂分片对应的项可以是2的依次递增的其他次方,在此不再赘述。
第一方通过以上多项式求和,可以得到目标数据的第一和共享分片。相应地,第二方可以同步在本地对各个第二幂分片确定相应的系数,从而进行多项式求和得到第二和共享分片。该第一和共享分片和第二和共享分片可以构成目标数据在第一方和第二方的和共享形式。
值得说明的是,以上步骤中所涉及的和共享分片,均可以是相应数值模2N(N为预设整数,如N=64)的形式。
为了明确以上过程的通信量,图3示出了本说明书一个实施例的两个参与方执行的针对目标数据的共享形式转换方法的交互流程示意图。如图3所示,分组、确定各组对应的参考值,以及对各个幂分片进行多项式求和,第一方和第二方均在本地分别进行计算,不进行通信。而在第一方和第二方在第一参考值和第二参考值差的m次幂时,经过至少m 次安全乘法的通信交互。因此,以上过程中的通信量可以降低至最少m次安全乘法的通信量。
另外,以上转换过程还可以扩展到更多个参与方的安全计算过程。在多方安全计算过程中,图2示出的第一方、第二方各自可以对应至少一个参与方。也就是说,多个参与方中的部分参与方的布尔共享分片依次进行异或操作,可以得到一个合并的布尔共享分片,该合并后的布尔共享分片可以作为图2中的第一布尔共享分片,与另一部分参与方的布尔共享分片依次进行异或操作得到的另一个合并的布尔共享分片(如第二布尔共享分片),转换为和共享形式。
回顾以上过程,本说明书提供的技术构思,在针对以2为底数的预定幂次的目标数据的共享形式转换过程中,通过将布尔分片进行拆分得到和共享下的数值形式,然后利用拆分得到的数值确定两个参与方之间的交互数据,以由两个参与方进行用二进制数向其他数值转换的特性,进行安全乘法和多项式组合运算,从而避免进行大量数据通信,提供一种更加高效的B2A转换方式,提高安全计算的业务处理效率。
根据另一方面的实施例,还提供一种设于计算方的针对目标数据的共享形式转换装置。图4分别示出了根据一个实施例的针对目标数据的共享形式转换装置400。该装置400可以设于多方安全计算的多个参与方中的任一方。
如图4所示,设于多个参与方中持有预定数据集的第一和共享分片的第一方的装置400 包括:
分组单元401,配置为针对所持有的第一布尔分片中的n个比特,按照与第二方协商一致的组数m分组并确定m个分组分别对应的m个第一参考值,其中,单个分组对应的比特位之间间隔为m,单个组对应的第一参考值由所对应的各个比特位构成的二进制数确定,m为非零偶数;
安全计算单元402,配置为分别与第二方基于安全乘法计算m个第一参考值与第二所相对应持有的m个第二参考值的差的m次幂,得到各个m次幂分别对应的各个第一幂分片,单个第一幂分片与第二方得到的单个第二平方分片构成相应m次幂的和共享形式;
求和单元403,配置为对各个第一幂分片进行多项式求和,从而得到目标数据的第一和共享分片,其中,单个第一幂分片项的求和系数基于相应分组的最低位与第一布尔分片的最低位相比的偏移量确定,第一和共享分片与第二方对各个第二幂分片进行多项式求和得到的第二和共享分片构成目标数据的和共享形式。
在一个实施例中,单个第一参考值与第二方的单个第二参考值对应相同的分组,安全计算单元402进一步可以配置为:
确定单个第一参考值与单个第二参考值之差的m次幂对应的第一展开项中,与第一展开项相关的第一乘数,其中,第一乘数为单个第一参考值的幂;
利用第一乘数与由第二方基于单个第二参考值的幂确定的第二乘数执行安全乘法,从而得到第一展开项的第一分片,第一分片与第二方得到的第二分片构成第一展开项的和共享形式;
基于单个第一参考值与第一展开项的第一分片的和,确定单个第一参考值与单个第二参考值之差的m次幂的第一幂分片。
值得说明的是,图4所示的装置400与图2描述的方法相对应,图2的方法实施例中的相应描述同样适用于装置400,在此不再赘述。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行结合图2等所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行可执行代码时,实现结合图2等所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上的具体实施方式,对本说明书的技术构思的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本说明书的技术构思的具体实施方式而已,并不用于限定本说明书的技术构思的保护范围,凡在本说明书实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的技术构思的保护范围之内。
Claims (10)
1.一种针对目标数据的共享形式转换方法,用于两方安全计算中,将目标数据在第一方、第二方的布尔共享形式转换为和共享形式,所述目标数据为2的预定幂次,第一方、第二方分别持有所述目标数据的第一布尔分片、第二布尔分片,所述方法由第一方执行,包括:
针对所持有的第一布尔分片中的n个比特,按照与第二方协商一致的组数m分组并确定m个分组分别对应的m个第一参考值,其中,单个分组对应的比特位之间间隔为m,单个组对应的第一参考值由所对应的各个比特位构成的二进制数确定,m为非零偶数;
分别与第二方基于安全乘法计算m个第一参考值与第二所相对应持有的m个第二参考值的差的m次幂,得到各个m次幂分别对应的各个第一幂分片,单个第一幂分片与第二方得到的单个第二平方分片构成相应m次幂的和共享形式;
对各个第一幂分片进行多项式求和,从而得到目标数据的第一和共享分片,其中,单个第一幂分片项的求和系数基于相应分组的最低位与所述第一布尔分片的最低位相比的偏移量确定,所述第一和共享分片与第二方对各个第二幂分片进行多项式求和得到的第二和共享分片构成所述目标数据的和共享形式。
2.如权利要求1所述的方法,其中,单个组所对应的各个比特位由高位到低位排列构成单个二进制数,单个二进制数对应的单个第一参考值为该单个二进制数转换成十进制数或十六进制数的数值。
3.如权利要求1所述的方法,其中,单个第一参考值与第二方的单个第二参考值对应相同的分组,所述利用所述m个第一参考值,分别与第二方基于安全乘法计算各个第一参考值与第二所相对应持有的第二参考值的差的m次幂包括:
确定所述单个第一参考值与所述单个第二参考值之差的m次幂对应的第一展开项中,与所述第一展开项相关的第一乘数,其中,所述第一乘数为所述单个第一参考值的幂;
利用所述第一乘数与由第二方基于所述单个第二参考值的幂确定的第二乘数执行安全乘法,从而得到所述第一展开项的第一分片,所述第一分片与第二方得到的第二分片构成所述第一展开项的和共享形式;
基于所述单个第一参考值与所述第一展开项的第一分片的和,确定所述单个第一参考值与所述单个第二参考值之差的m次幂的第一幂分片。
4.如权利要求1所述的方法,其中,单个第一幂分片项的求和系数为2为底数相应偏移量为指数的幂次,相应偏移量为偏移比特数。
5.如权利要求1所述的方法,其中,所述第一布尔分片、所述第二布尔分片中有且仅有1个比特为上的数值不相同。
6.如权利要求1所述的方法,其中,所述第一布尔分片由多个参与方上的各个布尔分片依次执行异或操作得到。
7.一种针对目标数据的共享形式转换装置,用于两方安全计算中,将目标数据在第一方、第二方的布尔共享形式转换为和共享形式,所述目标数据为2的预定幂次,第一方、第二方分别持有所述目标数据的第一布尔分片、第二布尔分片,所述装置设于第一方,包括:
分组单元,配置为针对所持有的第一布尔分片中的n个比特,按照与第二方协商一致的组数m分组并确定m个分组分别对应的m个第一参考值,其中,单个分组对应的比特位之间间隔为m,单个组对应的第一参考值由所对应的各个比特位构成的二进制数确定,m为非零偶数;
安全计算单元,配置为分别与第二方基于安全乘法计算m个第一参考值与第二所相对应持有的m个第二参考值的差的m次幂,得到各个m次幂分别对应的各个第一幂分片,单个第一幂分片与第二方得到的单个第二平方分片构成相应m次幂的和共享形式;
求和单元,配置为对各个第一幂分片进行多项式求和,从而得到目标数据的第一和共享分片,其中,单个第一幂分片项的求和系数基于相应分组的最低位与所述第一布尔分片的最低位相比的偏移量确定,所述第一和共享分片与第二方对各个第二幂分片进行多项式求和得到的第二和共享分片构成所述目标数据的和共享形式。
8.如权利要求7所述的装置,其中,单个第一参考值与第二方的单个第二参考值对应相同的分组,所述安全计算单元进一步配置为:
确定所述单个第一参考值与所述单个第二参考值之差的m次幂对应的第一展开项中,与所述第一展开项相关的第一乘数,其中,所述第一乘数为所述单个第一参考值的幂;
利用所述第一乘数与由第二方基于所述单个第二参考值的幂确定的第二乘数执行安全乘法,从而得到所述第一展开项的第一分片,所述第一分片与第二方得到的第二分片构成所述第一展开项的和共享形式;
基于所述单个第一参考值与所述第一展开项的第一分片的和,确定所述单个第一参考值与所述单个第二参考值之差的m次幂的第一幂分片。
9.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-6中任一项的所述的方法。
10.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211063975.XA CN115442033A (zh) | 2022-08-31 | 2022-08-31 | 针对目标数据的共享形式转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211063975.XA CN115442033A (zh) | 2022-08-31 | 2022-08-31 | 针对目标数据的共享形式转换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115442033A true CN115442033A (zh) | 2022-12-06 |
Family
ID=84244632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211063975.XA Pending CN115442033A (zh) | 2022-08-31 | 2022-08-31 | 针对目标数据的共享形式转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115442033A (zh) |
-
2022
- 2022-08-31 CN CN202211063975.XA patent/CN115442033A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111539026B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN111523145B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
WO2022237450A1 (zh) | 多方安全计算方法、装置、设备及存储介质 | |
CN111737757B (zh) | 针对隐私数据进行安全运算的方法和装置 | |
CN116204912B (zh) | 基于全同态加密的数据处理方法和装置 | |
KR102154164B1 (ko) | 의사 랜덤 시퀀스 생성 방법 및 데이터 스트림의 코딩 또는 디코딩 방법 | |
CN115080615A (zh) | 基于多方安全计算的数据查询方法及装置 | |
CN111523144A (zh) | 针对多方的隐私数据进行安全运算的方法和装置 | |
CN115906126A (zh) | 多方安全计算中的数据处理的方法及装置 | |
Agrawal et al. | Elliptic curve cryptography with hill cipher generation for secure text cryptosystem | |
CN113722734A (zh) | 两方安全选择确定选择结果分片的方法、装置和系统 | |
US9419789B2 (en) | Method and apparatus for scalar multiplication secure against differential power attacks | |
CN113556225A (zh) | 一种基于哈希及密钥交换的高效psi方法 | |
CN115766009A (zh) | 多方安全计算中针对2的幂次求逆的方法及装置 | |
CN114337994A (zh) | 数据处理方法、装置及系统 | |
Nykolaychuk et al. | Residue number system asymmetric cryptoalgorithms | |
CN115442033A (zh) | 针对目标数据的共享形式转换方法及装置 | |
CN114221753B (zh) | 密钥数据处理方法和电子设备 | |
Catrina | Towards practical secure computation with floating-point numbers | |
CN113836595A (zh) | 两方安全比较的方法、装置和系统 | |
CN115766163A (zh) | 针对目标数据的共享形式转换方法及装置 | |
CN115766156A (zh) | 针对目标数据的共享形式转换方法及装置 | |
You et al. | Secure two-party computation approach for ntruencrypt | |
Lauter | How to Keep Your Secrets in a Post-Quantum World | |
RU2542926C1 (ru) | Способ шифрования сообщения, представленного в виде многоразрядного двоичного числа |
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 |