多方安全计算的方法、装置及系统
文献发布时间:2023-06-19 16:04:54
技术领域
本说明书一个或多个实施例涉及安全技术领域,尤其涉及一种多方安全计算的方法、装置及系统。
背景技术
多方安全计算(Secure Multi-Party Computation,MPC)又称为安全多方计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果公开给其中的一方或多方。
同态加密(Homomorphic encryption,HE)和秘密分享(Secret Sharing,SS)是在多方安全计算场景下使用最多的两种密码学协议。传统技术中,通常认为同态加密和秘密分享是两种独立的协议,明文要么使用同态加密加密,要么使用秘密分享加密,两者是不能结合使用的,这极大地影响了多方安全计算的性能。
发明内容
本说明书一个或多个实施例描述了一种多方安全计算的方法、装置及系统,可以实现同态加密和秘密分享的密态数据的相互转换,这使得同态加密和秘密分享可以结合一起使用,由此可以提升多方安全计算的性能。
第一方面,提供了一种多方安全计算的方法,包括:
第一方采用同态加密算法,基于其持有的第一秘钥对中的公钥,加密目标数据的第一明文分片,得到第一密文分片;其中,所述目标数据的第二明文分片由第二方拥有;
所述第一方将所述第一密文分片发送给所述第二方;
所述第二方对所述第一密文分片和所述目标数据的第二明文分片,进行所述同态加密算法下的同态加法运算,得到所述目标数据的密文数据,其中,所述密文数据通过所述第一秘钥对中的私钥解密。
第二方面,提供了一种多方安全计算的方法,包括:
采用同态加密算法,基于所述第一方持有的第一秘钥对中的公钥,加密目标数据的第一明文分片,得到第一密文分片;其中,所述目标数据的第二明文分片由第二方拥有;
将所述第一密文分片发送给所述第二方,以供所述第二方对所述第一密文分片和所述目标数据的第二明文分片进行所述同态加密算法下的同态加法运算,得到所述目标数据的密文数据,其中,所述密文数据通过所述第一秘钥对中的私钥解密。
第三方面,提供了一种多方安全计算的方法,包括:
从第一方接收第一密文分片;其中,所述第一密文分片是采用同态加密算法,基于所述第一方持有的第一秘钥对中的公钥,加密目标数据的第一明文分片得到;
对所述第一密文分片和所述目标数据的第二明文分片,进行所述同态加密算法下的同态加法运算,得到所述目标数据的密文数据,其中,所述密文数据通过所述第一秘钥对中的私钥解密。
第四方面,提供了一种多方安全计算的方法,包括:
第二方针对其拥有的密文数据生成第一随机数,并基于所述第一随机数,确定所述密文数据对应的目标数据的第二分片;其中,所述密文数据对应于采用同态加密算法基于第一方的第一公钥对所述目标数据加密的数据;
所述第二方基于所述密文数据和所述第一随机数,进行所述同态加密算法下的同态加法运算,并将得到的加密运算结果提供给所述第一方;
所述第一方基于所述第一公钥对应的第一私钥,解密所述加密运算结果,得到所述目标数据的第一分片。
第五方面,提供了一种多方安全计算的方法,包括:
针对其拥有的密文数据生成第一随机数,并基于所述第一随机数,确定所述密文数据对应的目标数据的第二分片;其中,所述密文数据对应于采用同态加密算法基于第一方的第一公钥对所述目标数据加密的数据;
基于所述密文数据和所述第一随机数,进行所述同态加密算法下的同态加法运算,得到加密运算结果;
将所述加密运算结果提供给所述第一方,以供所述第一方基于所述第一公钥对应的第一私钥,解密所述加密运算结果,得到所述目标数据的第一分片。
第六方面,提供了一种多方安全计算的系统,包括:
第一方,用于采用同态加密算法,基于其持有的第一秘钥对中的公钥,加密目标数据的第一明文分片,得到第一密文分片;其中,所述目标数据的第二明文分片由第二方拥有;
所述第一方,还用于将所述第一密文分片发送给所述第二方;
所述第二方,用于对所述第一密文分片和所述目标数据的第二明文分片,进行所述同态加密算法下的同态加法运算,得到所述目标数据的密文数据,其中,所述密文数据通过所述第一秘钥对中的私钥解密。
第七方面,提供了一种多方安全计算的装置,包括:
加密单元,用于采用同态加密算法,基于所述第一方持有的第一秘钥对中的公钥,加密目标数据的第一明文分片,得到第一密文分片;其中,所述目标数据的第二明文分片由第二方拥有;
发送单元,用于将所述第一密文分片发送给所述第二方,以供所述第二方对所述第一密文分片和所述目标数据的第二明文分片进行所述同态加密算法下的同态加法运算,得到所述目标数据的密文数据,其中,所述密文数据通过所述第一秘钥对中的私钥解密。
第八方面,提供了一种多方安全计算的装置,包括:
接收单元,用于从第一方接收第一密文分片;其中,所述第一密文分片是采用同态加密算法,基于所述第一方持有的第一秘钥对中的公钥,加密目标数据的第一明文分片得到;
运算单元,用于对所述第一密文分片和所述目标数据的第二明文分片,进行所述同态加密算法下的同态加法运算,得到所述目标数据的密文数据,其中,所述密文数据通过所述第一秘钥对中的私钥解密。
第九方面,提供了一种多方安全计算的系统,包括:
第二方,用于针对其拥有的密文数据生成第一随机数,并基于所述第一随机数,确定所述密文数据对应的目标数据的第二分片;其中,所述密文数据对应于采用同态加密算法基于第一方的第一公钥对所述目标数据加密的数据;
所述第二方,还用于基于所述密文数据和所述第一随机数,进行所述同态加密算法下的同态加法运算,并将得到的加密运算结果提供给所述第一方;
所述第一方,用于基于所述第一公钥对应的第一私钥,解密所述加密运算结果,得到所述目标数据的第一分片。
第十方面,提供了一种多方安全计算的装置,包括:
生成单元,用于针对其拥有的密文数据生成第一随机数,并基于所述第一随机数,确定所述密文数据对应的目标数据的第二分片;其中,所述密文数据对应于采用同态加密算法基于第一方的第一公钥对所述目标数据加密的数据;
运算单元,用于基于所述密文数据和所述第一随机数,进行所述同态加密算法下的同态加法运算,得到加密运算结果;
发送单元,用于将所述加密运算结果提供给所述第一方,以供所述第一方基于所述第一公钥对应的第一私钥,解密所述加密运算结果,得到所述目标数据的第一分片。
第十一方面,提供了一种计算机存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面至第五方面中任一方面的方法。
第十二方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面至第五方面中任一方面的方法。
本说明书一个或多个实施例提供的多方安全计算的方法、装置及系统,可以实现同态加密和秘密分享的密态数据的相互转换,这使得可以结合使用同态加密和秘密分享执行多方安全计算,由此可以提升多方安全计算的性能,且可以提高多方安全计算的多样性。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的基于秘密分享的加法运算示意图;
图2示出根据一个实施例的基于秘密分享的乘法运算示意图;
图3为本说明书披露的一个实施例的实施场景示意图;
图4为本说明书披露的另一个实施例的实施场景示意图;
图5示出根据一个实施例的多方安全计算的方法交互图;
图6示出根据一个实施例的多方安全计算的方法交互图;
图7示出根据一个实施例的多方安全计算的系统示意图;
图8示出根据一个实施例的多方安全计算的装置示意图;
图9示出根据另一个实施例的多方安全计算的装置示意图;
图10示出根据另一个实施例的多方安全计算的系统示意图;
图11示出根据再一个实施例的多方安全计算的装置示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在描述本说明书实施例提供的方案之前,先对秘密分享和同态加密两种多方安全计算方法作以下说明。
秘密分享是指将秘密以适当的方式拆分,拆分后的每一个份额(也称分片)由不同的参与方管理,单个参与方无法恢复秘密,只有若干个参与方一同协作才能恢复秘密。如果一个系统将秘密分为n份,只要其中任意t份秘密就可以恢复出完整的秘密,而如果少于t份秘密则不能得到关于秘密的任何信息,我们称其为一个(t-n)阈值方案(有时写为(n-t)阈值方案)。
秘密分享是一类算法,其可以包括Arithmetic sharing(算术秘密分享,以下简称A-sharing)和Booleansharing(布尔秘密分享),与本方案相关的是A-sharing。A-sharing的主要思想如下:
原始的秘密是一个数字(假设称为A),秘密拆分就是把A用加法的形式拆分,满足a1+a2+…+an=A,每个a
假设有2个秘密A和B,且假设每个参与方都有自己本地的秘密分片a
以下结合例子对上述基于秘密分享的加法运算进行说明。
图1示出根据一个实施例的基于秘密分享的加法运算示意图。图1中,参与方1拥有数据A=3,参与方2拥有数据B=5,此外,针对A,参与方1将其拆分为两个秘密分片:a1=2和a2=1,并且参与方1拥有秘密分片a1=2,参与方2拥有秘密分片a2=1。以及针对B,参与方2将其拆分为两个秘密分片:b1=4和b2=1,并且参与方1拥有秘密分片b1=4,参与方2拥有秘密分片b2=1。那么如果要计算A+B,参与方1可以本地计算a1+b1=2+4=6,参与方2可以本地计算a2+b2=1+1=2。最后,合并参与方1和参与方2各自计算的本地分片,即可得到计算结果:6+2=8。
基于秘密分享的乘法运算,除拥有秘密的两个参与方外,通常还需要第三方参与,该第三方用于向两个参与方分发辅助数值对,以下结合例子进行说明。
图2示出根据一个实施例的基于秘密分享的乘法运算示意图。图2中,参与方1拥有秘密X,参与方2拥有秘密W。在乘法运算开始前,第三方可以生成辅助数值对:U1、V1和P1(其中,U1*V1=P1),并将其提供给参与方1。同理,可以向参与方2提供U2、V2和P2。之后,在进行乘法运算的过程中,参与方1可以向参与方2提供秘密X的秘密分片X2=X-X1,其中,X1是参与方1拥有的秘密分片。同理,参与方2可以向参与方1提供秘密W的秘密分片W1=W-W2,其中,W2是参与方2拥有的秘密分片。接着,参与方1可以计算D1=X1-U1,以及计算E1=W1-V1,并将D1和E1提供给参与方2,以及参与方2向参与方1提供D2和E2。从而参与方可以计算得到本方分片Z1=P1+E*U1+D*V1+D*E,其中,D=D1+D2,E=E1+E2。同理,参与方2计算本方分片Z2=P2+E*U2+D*V2。最后,合并参与方1和参与方2的本方分片,即计算Z1+Z2,即可得到计算结果X*W。
由上述内容可以看出,在上述乘法运算开始前,参与方1拥有X1和W1,参与方2拥有X2和W2。在运算之后,参与方1拥有Z1,参与方2拥有Z2。即在整个运算过程中,参与方1和参与方2均无法获知对方的秘密。
总结来说,基于秘密分享的多方安全计算方法(简称基于秘密分享的方法)一般包括如下步骤:
第一,两个参与方各自将其拥有的数据进行拆分,并将其中的一个秘密分片提供给对方,自己保留另一个秘密分片。
第二,两个参与方各自基于其拥有的秘密分片进行本地计算,得到各自的结果分片。
第三,将两个参与方的结果分片合并,得到计算结果。
综上所述,基于秘密分享的方法具有如下优点:1.计算种类比较丰富,比如支持加法运算和乘法运算。2.数据量没有膨胀,即拆分前后数据量一致(基于同态加密的方法所得到的密文的数据量通常远远大于明文)。
同态加密是一种加密形式,它允许人们对密文进行特定形式的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。换言之,这项技术令人们可以在加密的数据中进行代数计算并得出正确的结果,而在整个处理过程中无需对数据进行解密。
同秘密分享一样,同态加密也是一类算法,同态加密可进一步分为全同态加密和半同态加密。
其中,全同态加密算法是指同时支持对密文进行加法和乘法的同态加密算法,也即算法同时满足:Enc(a)+Enc(b)=Enc(a+b)和Enc(a)*Enc(b)=Enc(a*b)。
上述半同态加密算法是指只支持对密文进行一种运算的同态加密算法。其通常又可进一步分为加法同态加密算法和乘法同态加密算法。这里的加法同态加密算法例如可以为Paillier算法、Okamoto-Uchiyama(OU)算法或者
本方案将以加法同态加密算法(以下简称AHE或者HE)为例,来说明同态加密和秘密分享的密态数据的相互转换。因此以下针对加法同态加密算法作进一步说明。
所谓加法同态加密算法,是指可以对密文进行加法运算并得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。举例来说,Alice拥有数据a和b,那么Alice可以利用AHE加密原始数据得到Enc(a)和Enc(b),之后Alice把密文发给Bob,Bob虽然看不到原始数据,但可以直接对密文进行计算,例如Bob可以执行Enc(a)+Enc(b),其值等价于Enc(a+b),Bob计算得到Enc(a)+Enc(b)后,其值仍旧是加密的,Bob可以在这个密文上进一步做更多加法运算。
具体点讲,AHE在初始化阶段会生成公钥和私钥,公钥用于加密数据和对密文进行计算,私钥可以解密数据。密文运算阶段,AHE支持密文+密文,密文+明文,密文*明文三种运算,但不支持密文*密文运算。
总结来说,基于同态加密的多方安全计算方法(基于同态加密的方法)一般包括如下步骤:
第一,参与方1生成AHE的公钥和私钥。利用公钥加密其拥有的数据,并将加密得到的密文和公钥一同提供给参与方2。
第二,参与方2对接收的密文和其拥有的数据进行同态计算,得到加密运算结果。
第三,参与方2将加密运算结果提供给参与方1,参与方1利用私钥解密,从而得到对应的明文运算结果。
综上所述,基于同态加密的方法具有如下优点:1.计算过程是纯本地行为,不依赖于网络(基于秘密分享的方法通常有数次网络通信,从而在网络不畅的情况下性能比较低)。2.支持稀疏矩阵。基于秘密分享的方法在拆分后所有稀疏矩阵都变成了稠密矩阵,数据量大大增加。而在同态加密的方法中,接收密文的一方(如,上述参与方2)拥有的数据一直保存在本地,例如该方的数据是稀疏的,那么该方可以直接对本地稀疏矩阵进行计算,性能优于基于秘密分享的方法。
总之,同态加密和秘密分享各有优缺点,为进一步提升多方安全计算的性能,需要对该两者进行结合使用,以实现该两者的优势互补。
本说明书实施例提供的方案,可以实现同态加密和秘密分享的密态数据的相互转换,这使得可以结合使用同态加密和秘密分享执行多方安全计算,由此可以提升多方安全计算的性能,且可以提高多方安全计算的多样性。以下进行详细说明。
图3为本说明书披露的一个实施例的实施场景示意图。图3中的第一方和第二方可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。
图3中,第一方拥有目标数据X的第一明文分片
首先,第一方可以预先生成第一秘钥对:SK和PK,其中,SK是私钥,由第一方持有;PK是公钥,对外公开。之后,第一方可以采用同态加密算法,基于其持有第一秘钥对中的公钥SK,加密第一明文分片
在上述步骤执行完成后,第二方拥有目标数据X的密文数据[X],第一方持有用于解密密文数据[X]的私钥SK。
当然,上述第一方和第二方也可以互换,即由第二方生成第一秘钥对和加密第二密文分片,以及由第一方执行明文-密文间运算或者密文间运算。应理解,在第一方和第二方互换之后,第一方拥有目标数据X的密文数据[X],第二方持有用于解密密文数据[X]的私钥SK。
图4为本说明书披露的另一个实施例的实施场景示意图。图4中的第一方和第二方可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。
图4中,第二方拥有密文数据[X],该密文数据[X]对应于采用同态加密算法基于第一方的第一公钥PK对目标数据X加密的数据。第一方持有第一公钥PK对应的第一私钥SK。也即,目标数据当前处于同态加密的密态。本说明书实施例通过执行以下步骤,可以将同态加密的密态数据转换为秘密分享的密态数据。
首先,第二方生成第一随机数r,并将r或者-r作为目标数据X对应的第二分片。之后,第二方可以计算[X]+r=[X+r],或者计算[X]-r=[X-r],并将[X+r]或者[X-r]提供给第一方。从而第一方基于第一私钥SK进行解密,得到目标数据的第一分片
综上,本说明书实施例提供的方案,可以实现同态加密和秘密分享的密态数据的相互转换。
以下以图3示出的实施场景为例,对本说明书实施例提供的方案进行详细说明。
图5示出根据一个实施例的多方安全计算的方法交互图。如图5所示,该方法至少可以包括如下步骤:
步骤502,第一方采用同态加密算法,基于其持有的第一秘钥对中的公钥,加密目标数据的第一明文分片,得到第一密文分片。
上述同态加密算法可以是由第一方和第二方预先协商确定,其例如可以为Paillier算法、Okamoto-Uchiyama(OU)算法或者
在执行步骤502之前,第一方可以针对上述同态加密算法生成对应的参数,这里的参数包括公钥PK和私钥SK,该公钥PK和私钥SK构成第一秘钥对。之后,第一方可以采用同态加密算法,基于其持有第一秘钥对中的公钥SK,加密目标数据X的第一明文分片
需要说明,上述目标数据X的第二明文分片
步骤504,第一方将第一密文分片发送给第二方。
在一个示例中,第一方可以将上述公钥PK和第一密文分片[
当然,在实际应用中,第一方也可以在生成第一秘钥对之后,将其中的公钥PK发送给第二方。
步骤506,第二方对第一密文分片和目标数据的第二明文分片,进行同态加密算法下的同态加法运算,得到目标数据的密文数据。
其中,该密文数据通过第一秘钥对中的私钥解密。
在一个示例中,上述进行同态加密算法下的同态加法运算可以包括:对第一密文分片和第二明文分片进行同态加密算法下加法运算对应的明文-密文间运算。
即执行计算:[
在另一个示例中,上述进行同态加密算法下的同态加法运算可以包括:采用同态加密算法,基于公钥对第二明文分片进行加密,得到第二密文分片。对第一密文分片和第二密文分片进行同态加密算法下加法运算对应的密文间运算。
即先对第二明文分片
在上述步骤执行完成后,第二方拥有目标数据X的密文数据[X],第一方持有用于解密密文数据[X]的私钥SK。
当然,上述第一方和第二方也可以互换,即由第二方生成第一秘钥对和加密第二密文分片,以及由第一方执行明文-密文间运算或者密文间运算。应理解,在第一方和第二方互换之后,第一方拥有目标数据X的密文数据[X],第二方持有用于解密密文数据[X]的私钥SK。
至此,就实现了将秘密分享的密态数据转换为同态加密的密态数据,且在转换的过程中,双方都无法获取明文的目标数据以及对方的明文分片。
以下再以图4示出的实施场景为例,对本说明书实施例提供的方案进行详细说明。
图6示出根据一个实施例的多方安全计算的方法交互图。如图6所示,该方法至少可以包括如下步骤:
步骤602,第二方针对其拥有的密文数据生成第一随机数,并基于该第一随机数,确定密文数据对应的目标数据的第二分片。
其中,上述密文数据[X]对应于采用同态加密算法基于第一方的第一公钥PK对目标数据X加密的数据。这里的第一公钥PK可以是由第一方预先针对该同态加密算法预先生成的。该第一公钥PK具有对应的第一私钥SK,第一私钥SK第一方持有,而第一公钥PK对外公开。
以目标数据X为N位二进制数为例来说,上述第一随机数r可以为N+40位以上的二进制数。举例来说,假设目标数据X为64位二进制数,那么第一随机数r至少为104位以上的二进制数。再假设目标数据X为128位二进制数,那么第一随机数r至少为168位以上的二进制数。
需要说明,在第一随机数r的位数超过目标数据X的位数40以上时,可以使第一随机数r完全掩盖掉目标数据X,由此可以确保密态数据间转换的安全性。
上述确定密文数据对应的目标数据的第二分片可以包括:将上述生成的第一随机数r直接确定为目标数据X的第二分片;或者也可以将第一随机数的相反数-r,确定为目标数据X的第二分片。
步骤604,第二方基于密文数据和第一随机数,进行同态加密算法下的同态加法运算,并将得到的加密运算结果提供给第一方。
具体地,在第二分片为:
应理解,上述同态加法运算可以是同态加密算法下加法运算对应的明文-密文间运算,也可以是同态加密算法下加法运算对应的密文间运算。
以第二分片为:
对密文数据[X]和第一随机数的相反数-r,进行同态加密算法下加法运算对应的明文-密文间运算。即执行计算:[X]+(-r)=[X+(-r)]。
或者,采用同态加密算法,基于第一公钥PK对第一随机数的相反数-r进行加密,得到密文随机数[-r]。对密文数据[X]和密文随机数[-r],进行同态加密算法下加法运算对应的密文间运算。即执行计算:[X]+[-r]=[X+(-r)]。
需要说明,这里的第一公钥PK可以是由第一方预先生成后发送给第二方的。
再以第二分片为:<-r>为例来说,对密文数据[X]和第一随机数r,进行同态加密算法下的同态加法运算可以包括:
对密文数据[X]和第一随机数r,进行同态加密算法下加法运算对应的明文-密文间运算。即执行计算:[X]+r=[X+r]。
或者,采用同态加密算法,基于第一公钥PK对第一随机数r进行加密,得到密文随机数[r]。对密文数据[X]和密文随机数[r],进行同态加密算法下加法运算对应的密文间运算。即执行计算:[X]+[r]=[X+r]。
步骤606,第一方基于第一公钥对应的第一私钥,解密加密运算结果,得到目标数据的第一分片。
即基于第一私钥SK,解密[X+(-r)]或者[X+r],得到
此外,由于第一分片
需要说明,由于r的位数足够大,从而第一方无法从
至此,就实现了将同态加密的密态数据转换为秘密分享的密态数据,且在转换的过程中,双方都无法获取明文的目标数据以及对方的明文分片。
综上所述,本说明书实施例提供的方案,可以实现同态加密和秘密分享的密态数据的相互转换,这使得可以结合使用同态加密和秘密分享执行多方安全计算,由此可以提升多方安全计算的性能,且可以提高多方安全计算的多样性。
与上述多方安全计算的方法对应地,本说明书一个实施例还提供的一种多方安全计算的系统,如图7所示,该系统可以包括:
第一方702,用于采用同态加密算法,基于其持有的第一秘钥对中的公钥,加密目标数据的第一明文分片,得到第一密文分片,其中,目标数据的第二明文分片由第二方704拥有。
第一方702,还用于将第一密文分片发送给第二方704。
第二方704,用于对第一密文分片和目标数据的第二明文分片,进行同态加密算法下的同态加法运算,得到目标数据的密文数据,其中,该密文数据通过第一秘钥对中的私钥解密。
第二方704具体用于:
对第一密文分片和第二明文分片,进行同态加密算法下加法运算对应的明文-密文间运算。
第二方704还具体用于:
采用同态加密算法,基于公钥对第二明文分片进行加密,得到第二密文分片;
对第一密文分片和第二密文分片,进行同态加密算法下加法运算对应的密文间运算。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的多方安全计算的系统,可以提升多方安全计算的性能。
与上述多方安全计算的方法对应地,本说明书一个实施例还提供的一种多方安全计算的装置,设置于第一方。如图8所示,该装置可以包括:
加密单元802,用于采用同态加密算法,基于第一方持有的第一秘钥对中的公钥,加密目标数据的第一明文分片,得到第一密文分片;其中,目标数据的第二明文分片由第二方拥有。
发送单元804,用于将第一密文分片发送给第二方,以供第二方对第一密文分片和目标数据的第二明文分片进行同态加密算法下的同态加法运算,得到目标数据的密文数据,其中,该密文数据通过第一秘钥对中的私钥解密。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的多方安全计算的装置,可以提升多方安全计算的性能。
与上述多方安全计算的方法对应地,本说明书一个实施例还提供的一种多方安全计算的装置,设置于第二方。如图9所示,该装置可以包括:
接收单元902,用于从第一方接收第一密文分片,其中,该第一密文分片是采用同态加密算法,基于第一方持有的第一秘钥对中的公钥,加密目标数据的第一明文分片得到。
运算单元904,用于对第一密文分片和目标数据的第二明文分片,进行同态加密算法下的同态加法运算,得到目标数据的密文数据,其中,该密文数据通过第一秘钥对中的私钥解密。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的多方安全计算的装置,可以提升多方安全计算的性能。
与上述多方安全计算的方法对应地,本说明书一个实施例还提供的一种多方安全计算的系统,如图10所示,该系统可以包括:
第二方1004,用于针对其拥有的密文数据生成第一随机数,并基于第一随机数,确定密文数据对应的目标数据的第二分片,其中,该密文数据对应于采用同态加密算法基于第一方1002的第一公钥对目标数据加密的数据。
第二方1004具体用于:
将第一随机数确定为目标数据的第二分片。
第二方1004还具体用于:
将第一随机数的相反数,确定为目标数据的第二分片。
第二方1004,还用于基于密文数据和第一随机数,进行同态加密算法下的同态加法运算,并将得到的加密运算结果提供给第一方1002。
第二方1004具体用于:
对密文数据和第一随机数的相反数,进行同态加密算法下的同态加法运算。
第二方1004还具体用于:
对密文数据和第一随机数,进行同态加密算法下的同态加法运算。
第二方1004还具体用于:
对密文数据和第一随机数,进行同态加密算法下加法运算对应的明文-密文间运算。
第二方1004还具体用于:
采用同态加密算法,基于第一公钥对第一随机数进行加密,得到密文随机数;
对密文数据和密文随机数,进行同态加密算法下加法运算对应的密文间运算。
第一方1002,用于基于第一公钥对应的第一私钥,解密加密运算结果,得到目标数据的第一分片。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的多方安全计算的系统,可以提升多方安全计算的性能。
与上述多方安全计算的方法对应地,本说明书一个实施例还提供的一种多方安全计算的装置,设置于第二方。如图11所示,该装置可以包括:
生成单元1102,用于针对其拥有的密文数据生成第一随机数,并基于第一随机数,确定密文数据对应的目标数据的第二分片,其中,该密文数据对应于采用同态加密算法基于第一方的第一公钥对目标数据加密的数据。
运算单元1104,用于基于密文数据和第一随机数,进行同态加密算法下的同态加法运算,得到加密运算结果。
发送单元1106,用于将加密运算结果提供给第一方,以供第一方基于第一公钥对应的第一私钥,解密加密运算结果,得到目标数据的第一分片。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的多方安全计算的装置,可以提升多方安全计算的性能。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图5或图6所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图5或图6所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。