一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

保护数据隐私的双方联合进行数据处理的方法及装置与流程

2022-02-22 04:09:57 来源:中国专利 TAG:


1.本说明书涉及数据安全技术领域,尤其涉及一种保护数据隐私的双方联合进行数据处理的方法及装置。


背景技术:

2.在大数据背景下,常常需要将不同数据方的业务数据进行综合处理。例如,在基于机器学习的商户分类分析场景中,电子支付平台拥有商户的交易流水数据,电子商务平台存储有商户的销售数据,银行机构拥有商户的借贷数据,而模型方拥有建模的参数数据。在对多方数据进行联合处理的过程中,数据隐私的保护和安全性成为值得关注的问题。
3.在对多方数据进行联合处理的过程中,很多场景中需要对多方数据进行乘法计算,例如,在一个场景下,a方持有待处理的用户样本特征数据,b方持有数据处理模型,在通过该数据处理模型对样本特征数据实施处理时,需要对用户样本特征数据与该数据处理模型模型参数进行乘法计算。如果a方将样本数据直接发送至b方,会导致用户样本的特征取值被暴露,泄露用户隐私;如果b方将数据处理模型提供至a方进行使用,会导致数据处理模型的模型参数被暴露。
4.因此,希望提供改进的方案,在多方联合进行数据处理的过程中,保护各方隐私数据的安全。


技术实现要素:

5.本说明书一个或多个实施例提供了一种保护数据隐私的双方联合进行数据处理的方法及装置,以实现保护各方隐私数据的安全的同时,降低计算量。
6.根据第一方面,提供一种保护数据隐私的双方联合进行数据处理的方法,所述双方包括第一方和第二方,所述第一方持有隐私数据构成的原始矩阵,所述第二方持有隐私数据构成的n个原始向量,所述方法通过所述第一方执行,所述方法包括:从所述第二方接收加密综合向量,所述加密综合向量是使用所述第二方的公钥,利用同态加密算法对综合向量加密得到的,所述综合向量是,所述n个原始向量在对应的n个计算空间中的映射结果的组合,所述n个计算空间彼此不同且互相隔离;利用所述原始矩阵以及所述加密综合向量,确定加密结果向量;至少基于所述加密结果向量,确定数据处理结果,并将所述数据处理结果发送至所述第二方,使得所述第二方根据所述数据处理结果,获得所述原始矩阵与所述n个原始向量的相乘计算结果。
7.在一种可实施方式中,所述n个计算空间的空间大小,至少根据所述原始矩阵与各个原始向量中元素乘积的最大有效位宽而确定。
8.在一种可实施方式中,所述至少基于所述加密结果向量,确定数据处理结果,包括:生成n个随机向量,并将其相反数作为所述相乘计算结果的n个第一方分片;
将所述n个随机向量在所述n个计算空间的映射结果进行组合,得到综合随机向量;基于所述综合随机向量以及所述加密结果向量,确定所述数据处理结果,使得所述第二方获得所述相乘计算结果的n个第二方分片。
9.在一种可实施方式中,所述第一方持有1个原始矩阵;所述n个计算空间是,当前进制下n个不同位数的空间;所述将所述n个随机向量在所述n个计算空间的映射结果进行组合,包括:将所述n个随机向量中的第i随机向量的各个元素扩展第i空间对应的位数,得到第i随机映射结果;基于各随机映射结果的加和,确定所述综合随机向量。
10.在一种可实施方式中,所述第i空间相较于第i-1空间的位数之差,根据所述原始矩阵与第i-1原始向量中元素乘积的最大有效位宽,以及针对所述n个随机向量预设的超额掩盖位宽而确定。
11.在一种可实施方式中,所述第一方持有的原始矩阵为n个;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述确定加密结果向量,包括:利用中国剩余定理确定综合矩阵,所述综合矩阵满足,针对第i空间对应的第i模值取模的余数结果为第i原始矩阵;基于所述综合矩阵以及所述加密综合向量的同态运算,得到所述加密结果向量。
12.在一种可实施方式中,所述第一方持有的原始矩阵为n个;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述确定加密结果向量,包括:利用中国剩余定理确定综合矩阵,所述综合矩阵满足,针对第i空间对应的第i模值取模的余数结果为第i原始矩阵;基于所述综合矩阵以及所述加密综合向量的同态运算,得到所述加密结果向量;所述得到综合随机向量,包括:利用所述中国剩余定理确定所述综合随机向量,使得所述综合随机向量满足,针对第i空间对应的第i模值取值的余数结果为第i随机向量。
13.在一种可实施方式中,所述第i模值的位宽,根据所述第i原始矩阵与第i原始向量中元素乘积的最大有效位宽,以及针对所述n个随机向量预设的超额掩盖位宽而确定。
14.在一种可实施方式中,所述基于所述综合随机向量以及所述加密结果向量,确定所述数据处理结果,包括:生成目标随机向量,所述目标随机向量中各元素的位宽,根据所述最大有效位宽,所述超额掩盖位宽以及原始矩阵个数而确定;将所述目标随机向量与所述n个模值连乘,并将所得的连乘结果叠加至所述综合随机向量,得到扩展随机向量;将所述扩展随机向量,同态叠加至所述加密结果向量,得到所述数据处理结果。
15.根据第二方面,提供一种保护数据隐私的双方联合进行数据处理的方法,所述双方包括第一方和第二方,所述第一方持有隐私数据构成的原始矩阵,所述第二方持有隐私
数据构成的n个原始向量,所述方法通过所述第二方执行,所述方法包括:将所述n个原始向量在n个计算空间的映射结果进行组合,得到综合向量,所述n个计算空间彼此不同且互相隔离;使用第二方的公钥,利用同态加密算法对所述综合向量加密,得到加密综合向量,并将其发送至所述第一方;从所述第一方接收数据处理结果,所述数据处理结果是,所述第一方至少基于加密结果向量确定的,所述加密结果向量是基于所述原始矩阵以及所述加密综合向量确定的;对所述数据处理结果进行解密,并将其分解到所述n个计算空间,根据分解结果获得所述原始矩阵与所述n个原始向量的相乘计算结果。
16.在一种可实施方式中,所述n个计算空间的空间大小,至少根据所述原始矩阵与各个原始向量中元素乘积的最大有效位宽而确定。
17.在一种可实施方式中,所述数据处理结果是,所述第一方基于所述加密结果向量以及综合随机向量确定的,所述综合随机向量是,所述第一方将n个随机向量在所述n个计算空间的映射结果进行组合而得到的,所述n个随机向量的相反数作为所述相乘计算结果的n个第一方分片;所述根据分解结果获得所述原始矩阵与所述n个原始向量的相乘计算结果,包括:将分解结果中的n个向量作为所述相乘计算结果的n个第二方分片。
18.在一种可实施方式中,所述第一方持有1个原始矩阵;所述n个计算空间是,当前进制下n个不同位数的空间;所述得到综合向量,包括:将所述n个原始向量中的第i原始向量的各个元素扩展第i空间对应的位数,得到第i向量映射结果;基于各向量映射结果的加和,得到所述综合向量。
19.在一种可实施方式中,所述第一方持有n个原始矩阵;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述得到综合向量,包括:利用中国剩余定理确定所述综合向量,所述综合向量满足,针对第i空间对应的第i模值取模的余数结果为第i原始向量。
20.在一种可实施方式中,所述第二方持有原始向量集,所述n个原始向量是所述原始向量集中的部分向量,使得对应的所述n个计算空间的空间总和不大于所述同态加密算法对应的同态明文空间大小。
21.根据第三方面,提供一种保护数据隐私的双方联合进行数据处理的方法,所述双方包括第一方和第二方,所述第一方持有隐私数据构成的原始矩阵,所述第二方持有隐私数据构成的n个原始向量,所述方法包括:所述第二方将所述n个原始向量在n个计算空间的映射结果进行组合,得到综合向量;使用第二方的公钥,利用同态加密算法对所述综合向量加密,得到加密综合向量,并将其发送至所述第一方,所述n个计算空间彼此不同且互相隔离;所述第一方接收所述加密综合向量,利用所述原始矩阵以及所述加密综合向量,
确定加密结果向量;至少基于所述加密结果向量,确定数据处理结果,并将所述数据处理结果发送至所述第二方;所述第二方接收所述数据处理结果;对所述数据处理结果进行解密,并将其分解到所述n个计算空间,根据分解结果获得所述原始矩阵与所述n个原始向量的相乘计算结果。
22.在一种可选实施方式,所述至少基于所述加密结果向量,确定数据处理结果,包括:生成n个随机向量,并将其相反数作为所述相乘计算结果的n个第一方分片;将所述n个随机向量在所述n个计算空间的映射结果进行组合,得到综合随机向量;基于所述综合随机向量以及所述加密结果向量,确定所述数据处理结果;所述根据分解结果获得所述原始矩阵与所述n个原始向量的相乘计算结果,包括:将所述分解结果中的n个向量作为所述相乘计算结果的n个第二方分片。
23.在一种可选实施方式,所述第一方持有1个原始矩阵;所述n个计算空间是,当前进制下n个不同位数的空间;所述第二方得到综合向量,包括:将所述n个原始向量中的第i原始向量的各个元素扩展第i空间对应的位数,得到第i向量映射结果;基于各向量映射结果的加和,得到所述综合向量;所述第一方将所述n个随机向量在所述n个计算空间的映射结果进行组合,包括:将所述n个随机向量中的第i随机向量的各个元素扩展第i空间对应的位数,得到第i随机映射结果;基于各随机映射结果的加和,确定所述综合随机向量。
24.在一种可选实施方式,所述第一方持有1个原始矩阵;所述n个计算空间是,当前进制下n个不同位数的空间;所述第二方得到综合向量,包括:将所述n个原始向量中的第i原始向量的各个元素扩展第i空间对应的位数,得到第i向量映射结果;基于各向量映射结果的加和,得到所述综合向量。
25.在一种可选实施方式,所述第一方持有的原始矩阵为n个;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述第二方得到综合向量,包括:利用中国剩余定理确定所述综合向量,所述综合向量满足,针对第i空间对应的第i模值取模的余数结果为第i原始向量;所述第一方确定加密结果向量,包括:利用中国剩余定理确定综合矩阵,所述综合矩阵满足,针对第i空间对应的第i模值取模的余数结果为第i原始矩阵;基于所述综合矩阵以及所述加密综合向量的同态运算,得到所述加密结果向量。
26.根据第四方面,提供一种保护数据隐私的双方联合进行数据处理的装置,所述双
方包括第一方和第二方,所述第一方持有隐私数据构成的原始矩阵,所述第二方持有隐私数据构成的n个原始向量,所述装置部署在所述第一方,所述装置包括:第一接收模块,被配置为从所述第二方接收加密综合向量,所述加密综合向量是使用所述第二方的公钥,利用同态加密算法对综合向量加密得到的,所述综合向量是,所述n个原始向量在对应的n个计算空间中的映射结果的组合,所述n个计算空间彼此不同且互相隔离;第一确定模块,被配置为利用所述原始矩阵以及所述加密综合向量,确定加密结果向量;第二确定模块,被配置为至少基于所述加密结果向量,确定数据处理结果,并将所述数据处理结果发送至所述第二方,使得所述第二方根据所述数据处理结果,获得所述原始矩阵与所述n个原始向量的相乘计算结果。
27.根据第五方面,提供一种保护数据隐私的双方联合进行数据处理的装置,所述双方包括第一方和第二方,所述第一方持有隐私数据构成的原始矩阵,所述第二方持有隐私数据构成的n个原始向量,所述装置部署在所述第二方,所述装置包括:组合模块,被配置为将所述n个原始向量在n个计算空间的映射结果进行组合,得到综合向量,所述n个计算空间彼此不同且互相隔离;加密模块,被配置为使用第二方的公钥,利用同态加密算法对所述综合向量加密,得到加密综合向量,并将其发送至所述第一方;第二接收模块,被配置为从所述第一方接收数据处理结果,所述数据处理结果是,所述第一方至少基于加密结果向量确定的,所述加密结果向量是基于所述原始矩阵以及所述加密综合向量确定的;解密获得模块,被配置为对所述数据处理结果进行解密,并将其分解到所述n个计算空间,根据分解结果获得所述原始矩阵与所述n个原始向量的相乘计算结果。
28.根据第六方面,提供一种保护数据隐私的双方联合进行数据处理的系统,所述系统包括第一方和第二方,所述第一方持有隐私数据构成的原始矩阵,所述第二方持有隐私数据构成的n个原始向量,其中:所述第二方,被配置为将所述n个原始向量在n个计算空间的映射结果进行组合,得到综合向量,所述n个计算空间彼此不同且互相隔离;使用第二方的公钥,利用同态加密算法对所述综合向量加密,得到加密综合向量,并将其发送至所述第一方;所述第一方,被配置为接收所述加密综合向量,利用所述原始矩阵以及所述加密综合向量,确定加密结果向量;至少基于所述加密结果向量,确定数据处理结果,并将所述数据处理结果发送至所述第二方;所述第二方,还被配置为接收所述数据处理结果;对所述数据处理结果进行解密,并将其分解到所述n个计算空间,从而获得所述原始矩阵与所述n个原始向量的相乘计算结果。
29.根据第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
30.根据第八方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第二方面所述的方法。
31.根据第九方面,提供一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
32.根据第十方面,提供一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
33.根据本说明书实施例提供的方法及装置,第二方将其持有的n个原始向量映射于n个彼此不同且相互隔离的计算空间,第二方对所得映射结果进行组合得到综合向量,实现将n个原始向量编码成1个综合向量,并将综合向量进行同态加密后发送至第一方。该相互隔离的计算空间中数据的计算过程相互隔离,该综合向量集合有映射至不同计算空间的n个原始向量,后续对该综合向量进行计算,相当于在(计算过程)相互隔离的不同计算空间,对映射至该计算空间的原始向量进行计算。后续的,第一方利用其自身的原始矩阵和该加密综合向量进行同态运算,得到加密结果向量。该加密结果向量相当于对综合向量和原始矩阵的相乘结果进行加密所得到的向量。然后,至少基于加密结果向量,确定数据处理结果,并将其发送至第二方,使得第二方基于数据处理结果,获得原始矩阵与n个原始向量的相乘计算结果。以上过程中,双方都不会泄露其原始矩阵及原始向量的明文,因而实现了安全的隐私乘法运算。并且,通过将n个原始向量编码成1个综合向量,使得双方通过一次加解密和一次交互通信,实现对原始矩阵与n个原始向量的相乘,即实现将多个乘法运算转化成一个乘法运算,降低了通信量和计算量,提升了计算效率。
附图说明
34.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1a为相关技术中双方联合进行数据处理的过程示意图;图1b为本说明书披露的一个实施例的实施框架示意图;图2为双方进行矩阵相乘的示意图;图3为在一个实施例中双方联合进行数据处理的过程示意图;图4为在一个实施例中双方联合进行数据处理的过程示意图;图5为在一个实施例中双方联合进行数据处理的过程示意图;图6为对矩阵和向量进行拆分的过程示意图;图7为实施例提供的保护数据隐私的双方联合进行数据处理的装置的一种示意性框图;图8为实施例提供的保护数据隐私的双方联合进行数据处理的装置的另一种示意性框图;图9为实施例提供的保护数据隐私的双方联合进行数据处理的系统的一种示意性框图。
具体实施方式
36.下面将结合附图,详细描述本说明书实施例的技术方案。
37.如前所述,在多方联合进行数据处理过程中,数据隐私安全成为目前备受关注的问题。而在多种具体的数据处理运算中,数据矩阵(包括向量)之间的乘法运算,是多方联合处理中的常用运算,同时也是隐私数据保护的一个难点。例如,当一方持有某些业务对象的特征数据构成的特征矩阵,另一方持有对这些特征数据进行处理的参数矩阵,此时,为了进行联合业务处理,就需要对上述特征矩阵和参数矩阵进行安全的乘法运算。
38.目前存在的安全乘法运算,一般一次安全乘法运算过程仅是针对双方各自持有的一个矩阵(称为一组矩阵)进行运算,在双方需要针对多组矩阵进行相乘时,需要多次循环执行安全乘法运算过程。其中,相关技术中一次安全乘法运算过程,如图1a所示。其中,图1a展示了甲有矩阵x,乙有向量y的计算过程。具体为:乙生成同态加密算法下的公钥和私钥对(pk,sk),利用公钥pk,采用该同态加密算法对y加密,得到enc(y),将enc(y)发给甲;甲首先采用明文与密文的同态运算,将明文x乘以密文enc(y),得到密文enc(xy);并且,为了避免乙获得xy的明文,使用一个随机数对xy进行掩盖,即将所生成的随机数r同态叠加至密文enc(xy),得到密文enc(xy r),将-r作为第一方分片,之后,甲将密文enc(xy r)发送至乙。乙利用私钥sk对密文enc(xy r)进行解密,得到xy r,即第二方分片,至此,甲、乙各获得了xy的分片。在需要计算矩阵x分别与多个向量y的计算,或者需要多个矩阵x分别与多个向量y的计算的情况下,需要多次循环上述过程,即双方需要进行多次通信以及同态加密运算。
39.为此,本说明书实施例提供的处理方法,主要针对持有隐私数据的双方之间进行多矩阵(向量)的安全乘法运算的场景而设计。
40.图1b为本说明书披露的一个实施例的实施场景示意图。在该实施场景中,示意性示出了参与方a和b。各个参与方具体可以体现为具有计算、处理能力的设备、平台、服务器或设备集群。其中,参与方a拥有a方隐私数据构成的原始矩阵x,该原始矩阵x可以为1个或n个,参与方b拥有b方隐私数据构成的n个原始向量y,双方希望进行安全的矩阵相乘运算,也就是参与方a不泄露其原始矩阵x明文,参与方b不泄露其n个原始向量y明文,但是最终计算得到矩阵相乘的结果。
41.一种情况,原始矩阵x为1个,最终计算得到矩阵相乘的结果为:原始矩阵x分别与每个原始向量y的乘积,即x*y1,x*y2,

,x*y
i-1
,x*yi,x*y
i 1


,x*yn。
42.另一种情况,该原始矩阵x为n个,最终计算得到矩阵相乘的结果为:每一组的第i原始矩阵xi与第i原始向量yi的乘积,即x1*y1,x2*y2,

,x
i-1
*y
i-1
,xi*yi,x
i 1
*y
i 1


,xn*yn。
43.在一种示例性场景中,参与方a和b分别为模型拥有方和数据拥有方,相应的,原始矩阵x和n个原始向量y中的隐私数据,分别为机器学习模型的模型参数数据和业务对象的特征数据。在另一种示例性场景中,参与方a和参与方b也可以是共同进行模型联合训练的对等方,各自拥有一部分模型参数和特征数据。或者,参与方a和参与方b也可以是其他隐私数据持有方,为了进行某种数据处理,而需要进行安全的乘法运算。
44.在以上各种场景中,出于隐私数据保护的目的,参与方a不能泄露其原始矩阵x,参与方b不能泄露其n个原始向量y,双方希望共同计算矩阵乘法结果,原始矩阵x分别与每个原始向量y的乘积。
45.为此,根据本说明书的实施例,持有n个原始向量y的参与方b,将n个原始向量y在对应的n个计算空间中的映射结果进行组合,得到综合向量y,对该综合向量y进行同态加密,将加密后的加密综合向量[y]发送给参与方a。参与方a用其自身的原始矩阵x,对该加密
综合向量[y]进行同态运算,得到加密结果向量[z];然后至少基于加密结果向量[z],确定数据处理结果[u],并将数据处理结果[u]发送至参与方b。参与方b对数据处理结果[u]进行解密,并将其分解到n个计算空间,得到分解结果,根据分解结果,获得原始矩阵与n个原始向量的相乘计算结果,即原始矩阵与n个原始向量相乘的结果。
[0046]
以上过程中,双方都不会泄露其原始矩阵及原始向量的明文,因而实现了安全的隐私乘法运算。并且,通过将n个原始向量编码成1个综合向量,使得双方通过一次加解密和一次交互通信,实现对原始矩阵与n个原始向量的相乘,即实现将多个乘法运算转化成一个乘法运算,降低了通信量和计算量,提升了计算效率。并且,将多个乘法运算转化成一个乘法运算,充分利用了同态加密算法对应的同态明文空间,提升了对该空间的利用率。
[0047]
下面描述以上方案的具体实现过程。
[0048]
图2示出双方进行矩阵相乘的示意图。延续图1b的示例,图2示出了参与方a和参与方b,参与方a维护有隐私数据构成的原始矩阵x;参与方b维护有隐私数据构成的n个原始向量y,各原始向量yi均为q维向量。
[0049]
一种情况下,参与方a维护的原始矩阵x为1个,该原始矩阵x为p*q维矩阵,相应的,双方希望安全地计算原始矩阵x与每一原始向量y的乘积,即x*y1,x*y2,

,x*y
i-1
,x*yi,x*y
i 1


,x*yn,其中,x*yi均为p维的向量,此情况如图2中的场景(a)所示。
[0050]
另一种情况下,参与方a维护的原始矩阵x为n个,各原始矩阵xi均为p*q维矩阵,相应的,双方希望安全地计算每一组的第i原始矩阵xi与第i原始向量yi的乘积,即x1*y1,

,x
i-1
*y
i-1
,x2*y2,

,xi*yi,x
i 1
*y
i 1


,xn*yn,其中,x*yi均为p维的向量,此情况如图2中的场景(b)所示。
[0051]
图3示出在一个实施例中双方联合进行数据处理的过程示意图。
[0052]
为了进行安全矩阵乘法,首先,在步骤s301,第二方将n个原始向量在n个计算空间的映射结果进行组合,得到综合向量y。其中,上述n个计算空间需要是相互隔离的不同计算空间。在图3的例子中,第二方为参与方b。第二方b将n个原始向量中的第i原始向量映射至n个计算空间的第i空间中,以便在第i空间中针对第i原始向量进行计算。由于n个计算空间彼此不同且互相隔离,即该相互隔离的计算空间中数据的计算过程相互隔离,即在第i空间针对第i原始向量进行的计算,不影响在其他计算空间针对相应原始向量的计算,并且不受在其他计算空间针对相应原始向量的计算的影响。
[0053]
第二方b将n个原始向量在n个计算空间的映射结果进行组合,即实现将映射至n个计算空间的n个原始向量,编码成一个向量,得到综合向量。该综合向量相当于集合有映射至不同计算空间的n个原始向量。结合n个计算空间彼此不同且相互隔离,即计算过程相互隔离,互不影响,使得后续对该综合向量进行计算,相当于在n个计算空间中分别对相应的各个原始向量进行计算,且在不同计算空间对各个原始向量的计算相互隔离,互不影响。一种情况中,n个计算空间的具体类型与第一方a持有的原始矩阵x的个数相关。其中,综合向量也可称为综合原始向量。
[0054]
在本说明书的一种实施例中,不同计算空间是用于针对不同原始向量y进行计算的空间,该计算空间的空间大小,根据原始矩阵x与各个原始向量y的元素乘积的最大有效位宽而确定。
[0055]
接着,在步骤s302,第二方b使用其持有的公钥,利用同态加密算法对综合向量加
密(即同态加密),得到加密综合向量[y]b。其中,第二方b可以选用同态加密算法e,并生成该加密算法下的公钥pk-b和私钥sk-b。然后,使用公钥pk-b,利用同态加密算法e,对综合向量y进行同态加密,得到加密综合向量[y]b。
[0056]
在本文中,用[]表示加密,角标表示加密采用的公钥标识。可以理解,加密综合向量[y]b中包含各个位置的密文元素,各个密文元素是对综合向量y的对应位置的原始元素进行上述同态加密得到的。
[0057]
接着,在步骤s303,第二方b将加密综合向量[y]b发送给第一方a。由于该向量已经经过加密,因此,该步骤中的通信不会泄露参与方b中的隐私数据。
[0058]
然后,在步骤s304,第一方a利用原始矩阵x以及加密综合向量[y]b,确定加密结果向量。具体的,第一方a对其拥有的原始矩阵x中的明文元素与加密综合向量[y]b中的密文元素,进行行列间的同态加和运算,得到加密结果向量[z]b。在希望计算x*y(即x与每个y)的乘积矩阵的情况下,上述行列间的同态加和运算为:用原始矩阵x中各个行的明文元素,对加密综合向量[y]b的各个列的密文元素进行同态加和运算,得到上述加密结果向量[z]b。
[0059]
上述同态加和运算,是前述同态加密算法e对应的明文与密文之间的同态操作运算,其作用可以使得,通过明文矩阵x和密文向量[y]b的行列间同态加和运算得到的加密结果向量[z]b对应于,使用同样的公钥pk-b,利用同态加密算法e对明文x*y加密得到的向量,也就是,[z]b=[x*y]b。这是同态加密算法的“同态性”所决定的。下面具体描述该过程。
[0060]
需要理解,同态加密算法是这样一种加密函数,对明文进行运算后再加密,与加密后对密文进行相应的运算,结果是等价的。例如,用同样的公钥pk加密和得到和,如果满足:(1)那么则认为,该加密算法满足加法同态,其中为对应的同态加操作。
[0061]
例如,paillier算法是一种常用的满足加法同态的加密算法。paillier算法满足:,则密文的相乘对应于同态加法操作。
[0062]
容易验证,paillier加密算法还满足:;(2)上式(2)可以作为paillier算法下,明文与密文之间的同态加和运算的基础。
[0063]
例如,假定原始矩阵x包含某一行q个明文元素,加密综合向量[y]b包含的一列q个密文元素,其中任意密文ci是对综合向量y中对应的元素yi加密得到,即ci=e
pk-b
(yi)。那么,上述明文元素和密文元素之间的同态加和运算可以如下实现:(3)即,分别使用第i明文元素xi对第i密文元素ci进行幂操作,得到q个幂操作结果;基于q个幂操作结果的连乘,得到同态加和结果z,作为加密综合向量[y]b中的一个元素。
[0064]
结合上述公式(2)可以看到,上述公式(3)又可以写为:
ꢀꢀꢀꢀꢀꢀ
(4)
如此,利用原始矩阵x中第j行的明文元素,与加密综合向量[y]b中的该列密文元素进行上述同态加和运算后得到的结果,可以作为加密综合向量中第j行的元素zj,并且如公式(4)所示,该元素zj实际上等于,原始矩阵x和综合向量y的明文x*y中对应元素的加密值。
[0065]
因此,通过明文的原始矩阵x和加密综合向量[y]b的行列间同态加和运算得到的加密结果向量[z]b对应于,使用同样的公钥pk-b,利用同态加密算法e对原始矩阵x和综合向量y的乘积加密得到的向量,也就是可以得到如下公式(5):[z]b=[x*y]bꢀꢀꢀꢀꢀꢀꢀꢀ
(5)。
[0066]
以上结合paillier算法进行了同态加和运算的描述。可以理解,已经存在多种同态加密算法,其中具有加法同态性质的加密算法均可以用于本方案中。例如,与paillier类似的其他一些基于椭圆曲线加密的算法,也满足加法同态性。此外,gentry算法作为一种准全同态加密算法,既满足加法同态还满足乘法同态。相应的,不同的同态加密算法具有不同的同态加和运算形式。例如,如果有同态加密算法的同态加操作对应于常规加法,上述明文元素和密文元素的同态加和运算可以对应于,明文元素与密文元素的线性组合。
[0067]
如此,在以上的步骤s304,第一方a计算得到加密结果向量[z]b。
[0068]
然后,在步骤s305,第一方a至少基于加密结果向量[z]b,确定数据处理结果[u]b。其中,数据处理结果[u]b也是使用同态加密算法加密的数据,即为密文,不会泄露第一方a和第二方b的隐私数据。
[0069]
在步骤s306,第一方a将该数据处理结果[u]b发送至第二方b。
[0070]
然后,在步骤s307,第二方b在接收到该数据处理结果[u]b之后,使用其私钥sk-b对该数据处理结果[u]b进行解密,得到数据处理结果明文u。
[0071]
然后,在步骤s308,将数据处理结果明文u分解到n个计算空间,得到分解结果,其中分解结果包括n个分解向量,每个计算空间对应一个分解向量,每个分解向量至少根据原始矩阵x以及映射至对应计算空间的原始向量确定。
[0072]
在步骤s309,第二方b根据分解结果获得原始矩阵x与n个原始向量y的相乘计算结果。在原始矩阵x为一个的情况下,第二方b可以根据该n个分解向量中的第i向量得到原始矩阵x与第i原始向量yi的相乘计算结果。在原始矩阵x为n个情况下,第二方b可以根据该n个分解向量中的第i向量,得到第i原始矩阵xi与第i原始向量yi的相乘计算结果。对于上述根据分解结果获得原始矩阵x与n个原始向量y的相乘计算结果的验证,将在后续进行说明。
[0073]
在一种情况中,在允许第二方b获得原始矩阵x与每个原始向量y的乘积明文的情况下,步骤s305可以具体设置为,将加密结果向量[z]b,确定为数据处理结果。进一步的,在步骤s306,可以具体设置为,第一方a将数据处理结果即加密结果向量[z]b发送至第二方b。
[0074]
在步骤s307,具体设置为,第二方b接收到该加密结果向量[z]b之后,使用其私钥sk-b对该加密结果向量[z]b进行解密,得到结果向量z即数据处理结果明文,即原始矩阵x与综合向量y的乘积。
[0075]
然后,在步骤s308,具体设置为,第二方b将结果向量z分解到n个计算空间,得到分解结果。在步骤s309,具体设置为第二方b根据分解结果获得原始矩阵x与n个原始向量y的相乘计算结果。
[0076]
在另一种情况中,为了保护原始矩阵x与每个原始向量y的相乘计算结果明文,以
及保护第一方a和第二方b隐私数据安全,第一方a在得到加密结果向量[z]b之后,可以使用随机向量对加密结果向量[z]b进行掩盖,使得第二方b无法获得原始矩阵x与每个原始向量y的相乘计算结果明文。
[0077]
相应的,在该情况下,在步骤s305,可以具体设置为,步骤s3051,第一方a生成n个随机向量r,并将其相反数-r作为该相乘计算结果的n个第一方分片;以便于后续结合第二方b的n个第二方分片获得相乘计算结果。
[0078]
步骤s3052,第一方a将n个随机向量r在n个计算空间的映射结果进行组合,得到综合随机向量r。该步骤,将n个随机向量在n个计算空间的映射结果进行组合,即分别将n个随机向量r中的第i随机向量ri,映射至第i计算空间中,进而进行组合,以将n个随机向量编码成一个向量,得到综合随机向量r。
[0079]
步骤s3053,第一方a基于综合随机向量r以及加密结果向量[z]b,确定数据处理结果[u]b。一种实现中,第一方a使用同样的公钥pk-b,利用同态加密算法e对综合随机向量r进行同态加密,得到加密综合随机向量[r]b。随后,将加密综合随机向量[r]b同态叠加至加密结果向量[z]b,得到数据处理结果[u]b。
[0080]
相应的,在步骤s306,第一方a将该数据处理结果[u]b发送至第二方b。然后,在步骤s307,第二方b在接收到该数据处理结果[u]b之后,使用其私钥sk-b对该数据处理结果[u]b进行解密,得到数据处理结果明文u。在步骤s308,将数据处理结果明文u分解到n个计算空间,得到分解结果。在步骤s309,根据该分解结果确定n个第二方分片。如此,第一方和第二方各自得到第一方分片和第二方分片,两方分片共同作为原始矩阵和n个原始向量的相乘计算结果。
[0081]
在上述实现方式中,第一方a为了保护第一方a和第二方b的隐私数据安全,而生成随机向量r,以对原始矩阵x与n个原始向量y的元素乘积进行掩盖。在此情况下,为了保证掩盖效果,需要随机向量r的有效位宽大于原始矩阵x与n个原始向量y的元素乘积的最大有效位宽。相应的,可以设置一个位宽,用于使得随机向量的位宽大于原始矩阵x与n个原始向量y的元素乘积的最大有效位宽,可以称该位宽为超额掩盖位宽。相应的,该随机向量r的有效位宽,根据原始矩阵x与各个原始向量y中元素乘积的最大有效位宽,以及该超额掩盖位宽而确定,例如,可以设置为原始矩阵x与各个原始向量y中元素乘积的最大有效位宽,以及该超额掩盖位宽的和。
[0082]
其中,针对不同的随机向量r,可以设置不同的超额掩盖位宽d,即第i随机向量r对应第i超额掩盖位宽di;也可以针对所有的随机向量r设置相同的超额掩盖位宽d。以下涉及随机向量r的实施例以针对不同的随机向量r,设置的超额掩盖位宽d相同的情况为例进行说明。不同的随机向量r,可以设置的超额掩盖位宽d不同的情况的计算过程与其相似,不再进行赘述。
[0083]
在本说明书的具体实施例中,计算空间的具体类型可以根据第一方所持有的原始矩阵x的个数确定。例如,在第一方a持有1个原始矩阵x,即需要计算原始矩阵x与每个原始向量y的相乘计算结果(乘积)即x*y1,x*y2,

x*yn的情况下,n个计算空间可以选取当前进制下n个不同位数的空间,以通过n个不同位数的空间,实现对n个原始向量y的计算过程的隔离。
[0084]
在第一方a持有n个原始矩阵x的情况下,即需要计算n个原始矩阵x中第i原始矩阵
xi与n个原始向量y中的第i原始向量yi的乘积的情况下,n个计算空间可以选取对应于互质的n个模值的取模空间,以通过互质的n个模值的取模空间,实现对n个原始向量y的计算过程的隔离。
[0085]
下面针对上述两种情况,描述实现安全矩阵乘法的并行处理的具体实施例。
[0086]
图4示出在一个实施例中双方联合进行数据处理的过程示意图,其中,第一方a持有1个原始矩阵x,需要计算原始矩阵x与每个原始向量y的相乘计算结果(乘积)即x*y1,x*y2,

x*yn。
[0087]
在该实施例中,选取n个计算空间为,当前进制下n个不同位数的空间。当前进制可以是任一进制,例如为二进制,十进制等。以下实施例通过e进制表示当前进制。上述n个计算空间对应的位数分别记为i1,i2,

,in。简单起见,假定i1,i2,

,in从小到大排列。如此,n个计算空间可以表示为()。
[0088]
如图4所示,为了进行安全矩阵乘法,首先,在步骤s401,第二方b将n个原始向量中的第i原始向量yi的各个元素扩展n个计算空间中第i空间对应的位数ii,得到第i映射原始向量。因此,第i映射原始向量可以表示为。
[0089]
然后,在步骤s402,基于各映射原始向量的加和,确定综合向量y。如此,可以通过如下公式(6)表示综合向量:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)如前所述,n个计算空间需互相隔离,以保证将各个空间的映射结果组合在一起时,各空间的映射结果不会彼此影响。因此,对于公式(6)所示的映射和组合而言,需保证n个计算空间的位数(i1,i2,

,in)之间,具有足够大的间隔,使得各个空间满足隔离条件,即在任意的第i空间中,在后续乘以对应的矩阵元素和向量元素后(以及叠加随机向量后),不会溢出到下一空间。
[0090]
在一个实施例中,人为地将上述n个计算空间的位数间隔设置为足够大,以确保满足上述隔离条件。
[0091]
在一种实现方式中,根据原始矩阵x与各个原始向量中元素乘积的最大有效位宽(即位数)来确定各个计算空间的位数。例如,可以根据原始矩阵x与第i-1原始向量中元素乘积的最大有效位宽,确定第i空间相较于第i-1空间的位数之差。
[0092]
进一步的,在添加随机向量r的情况下,还进一步考虑随机向量的超额掩盖位宽。具体地,在一个实施例中,可以如此设置各个空间的位数间隔:根据原始矩阵x与第i-1原始向量中元素乘积的最大有效位宽t
i-1
,以及针对n个随机向量预设的超额掩盖位宽d,确定第i空间相较于第i-1空间的位数之差。例如,令t
i-1
=t
i-1
d,可以表示乘积计算对第i-1空间的展宽影响,那么则可以根据以下公式(7)确定第i空间的位数:ii=i
i-1
t
i-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)如此,在设置第1个空间的位数i1之后,可以按照上述公式(7),依次确定出i2,i3,

,in,从而确定出n个计算空间的位数。
[0093]
为了计算的简单,通常可以设定i1=0,=1,即第1个空间不进行位数扩展。于是,可以按照下式(8)确定第i空间(i》1)的位数:ii
=t1 t2

t
i-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)如此,综合向量y可以通过如下公式(9)表示: (9)在一个实施例中,为了进一步确保空间的隔离,在根据公式(7)确定第i空间的位数时,在t
i-1
基础上附加额外位宽w
i-1
。在这样的情况下,第i空间可以表示为:,相应的,公式(9)可以进一步修改为以下公式(10):
ꢀꢀ
(10)在又一实施例中,综合考虑原始矩阵x与各个原始向量中元素乘积的最大有效位宽,以及超额掩盖位宽d和/或额外位宽w,确定位数间隔t,该位数间隔t确保各个空间中的计算都不会发生空间溢出。于是,可以将n个计算空间的位数设置为,基于该位数间隔t等间隔递增,也就是,任意第i空间相较于第i-1个空间的位数之差均为t。在这样的情况下,公式(9)可以简单地改写为公式(11):
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)以上举例描述了n个计算空间的多种位数设置方式。根据公式(6),通过将第i原始向量的的各元素扩展第i空间对应的位数,而将第i原始向量的各元素映射至第i空间;进一步的,通过将n个原始向量在n个计算空间的映射结果进行组合,实现将n个原始向量编码成一个向量,得到综合向量。
[0094]
然后,在步骤s403,第二方b使用其持有的公钥pk-b,利用同态加密算法e对综合向量y加密(即同态加密),得到加密综合向量[y]b。
[0095]
该综合向量y的各元素,均包括映射于不同计算空间的原始向量y的相同位置处的元素,使得后续对该综合向量各元素的计算,相当于在不同计算空间中,对映射至该计算空间的原始向量的各元素的计算。由于,加密综合向量[y]b中包含的各个位置的密文元素是对综合向量y的对应位置的原始元素进行上述同态加密得到的,加密综合向量可以通过如下公式(12)表示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)接着,在步骤s404,第二方b将加密综合向量[y]b发送给第一方a。由于该向量已经经过加密,因此,该步骤中的通信不会泄露参与方b中的隐私数据。
[0096]
在步骤s405,第一方a利用原始矩阵x以及加密综合向量[y]b,确定加密结果向量[z]b。即第一方a用原始矩阵x中各个行的明文元素,对加密综合向量[y]b的各个列的密文元素进行同态加和运算,得到上述加密结果向量。即相当于使用同样的公钥pk-b,利用同态加密算法e对原始矩阵x和综合向量y的乘积加密,得到加密结果向量,也就是,[z]b=[x*y]b。结合公式(6)和公式(12),可得如下公式(13):
ꢀꢀꢀ
(13)然后,在步骤s406,第一方a生成n个随机向量r1,r2…rn
,并将其相反数作为所述相乘计算结果的n个第一方分片。也就是,第一方获得n个第一方分片:-r1,-r2…‑rn

[0097]
在步骤s407,第一方a将n个随机向量中的第i随机向量ri的各个元素扩展第i空间
对应的位数,得到第i随机映射结果《ri》。具体映射过程参见第i原始向量的映射过程,在此不再赘述。
[0098]
在步骤s408,基于各随机映射结果《ri》的加和,确定综合随机向量r。其中,r可以通过如下公式(14)表示:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)在步骤s409,第一方a基于综合随机向量r以及加密结果向量[z]b,确定数据处理结果[u]b。本步骤中,第一方a使用同样的公钥pk-b,利用同态加密算法e,将综合随机向量r同态叠加至加密结果向量[z]b,确定出数据处理结果[u]b。基于同态加密算法的同态性,数据处理结果[u]b表示为,[u]
b= [z r]b。进而,结合公式(13)和(14),可得如下公式(15):
ꢀꢀ
(15)在步骤s410,第一方a将该数据处理结果[u]b发送至第二方b。
[0099]
然后,在步骤s411,第二方b在接收到该数据处理结果[u]b之后,使用其私钥sk-b对该数据处理结果[u]b进行解密,得到数据处理结果明文u。
[0100]
然后,在步骤s412,第二方b将数据处理结果明文u分解到n个计算空间,得到分解结果。本步骤中,第二方b将数据处理结果明文u进行当前进制展开,得到分解结果。将数据处理结果明文u进行当前进制展开,可以通过如下公式(16)表示:
ꢀꢀꢀꢀꢀꢀꢀ
(16)结合公式(15)和(16)可以得到,分解结果中的第i个分解向量满足:ui=。
[0101]
接着,在步骤s413,第二方b将分解结果中的n个向量作为相乘计算结果的n个第二方分片。其中,第i个第二方分片即为,也即。结合第一方持有的第i个第一方分片-ri,可以得到,两方第i个分片之和,等于原始矩阵x与第i原始向量的乘积向量。
[0102]
本实施例,通过将n个原始向量扩展n个彼此不同且相互隔离的计算空间对应的位数,即将第i原始向量映射至第i空间,并将各原始向量在各个计算空间的映射结果进行组合,实现将n个原始向量编码成一个向量,进而通一个矩阵和一个向量的运算,得到原始矩阵x与各个原始向量的相乘计算结果,在保证各方隐私数据的安全计算的同时,降低了通信量以及计算量,提升了计算效率。
[0103]
在本说明书的另一实施例中,在第一方a不生成随机向量r的情况下,可以不执行步骤s406至s408,且在步骤s409中可以直接将加密结果向量[z]b,确定为数据处理结果,其他步骤均相同,在此不再赘述。相应的,在该类情况下,第二方b可以直接基于数据处理结果得到原始矩阵x与各个原始向量的相乘计算结果明文。
[0104]
图5示出在另一个实施例中双方联合进行数据处理过程的示意图,其中,第一方a持有n个原始矩阵x,第二方b持有n个原始向量,双方需要计算原始矩阵x中第i原始矩阵xi与n个原始向量y中第i原始向量yi的相乘计算结果(乘积)即x1*y1,x2*y2,

xn*yn。在一个实施例中,选取n个计算空间为,对应于n个模值的取模空间,该n个模值彼此互质。
[0105]
上述n个模值可以是随机选取的n个互质整数。为了保证取模空间彼此隔离,并且
在其中的计算不会溢出,该n个模值需选取的足够大,至少大于可能的各个元素乘积(以及加上可能的用于掩盖的随机向量元素)的大小。因此,一种实现方式中,在第一方a生成针对元素乘积进行掩盖的随机数向量r的情况下,n个模值中第i模值的位宽,根据第i原始矩阵xi与第i原始向量yi的元素乘积的最大有效位宽ti,以及针对n个随机向量预设的超额掩盖位宽d而确定。在一种情况中,为了避免计算过程中所产生中间值和/或结果的溢出,可以设置第i模值的位宽ti可以大于或者等于第i原始矩阵xi与第i原始向量yi的元素乘积的最大有效位宽ti,以及针对n个随机向量预设的超额掩盖位宽d的和。
[0106]
在另一实现方式中,在第一方a不生成随机数向量r的情况下,第i模值的位宽,根据第i原始矩阵xi与第i原始向量yi元素乘积的最大有效位宽ti而确定。同理,在该种情况下,为了避免计算过程中所产生中间值和/或结果的溢出,可以设置第i模值的位宽ti可以大于或者等于第i原始矩阵xi与第i原始向量yi的元素乘积的最大有效位宽ti。
[0107]
在图5所示的例子中,第一方a生成随机数向量r。为了进行安全矩阵乘法,首先,在步骤s501,第二方b利用中国剩余定理确定综合向量y,综合向量y满足,针对第i空间对应的第i模值取模的余数结果为n个原始向量中的第i原始向量yi。
[0108]
第一方a首先可以首先根据原始矩阵(或者原始向量)的个数n,以及前述位宽要求,确定n个互质的模值,分别为p1、p2……
pn,其中第i模值pi的位宽ti满足,大于或者等于第i原始矩阵xi与第i原始向量yi的元素乘积的最大有效位宽ti,和超额掩盖位宽d之和。
[0109]
进一步的,第一方a和第二方b均可以根据中国剩余定理,确定两个操作,其中,第一个操作,即编码操作crtencode可以表示为:e= crtencode(e1,e2...en),即,已知n个模值p1、p2……
pn和n个元素e1,e2...en,通过该编码操作可以确定一个综合结果e,使得该e满足,针对模值p1取模的余数结果为e1,针对模值p2取模的余数结果为e2,以此类推,针对模值pn取模的余数结果为en。在一种情况中,通过该编码操作可以得到多个满足该预设取模条件的e,为了节省计算空间,可以取位宽最小的e,作为所需的结果。
[0110]
第二个操作为第一个操作的逆过程,可称为解码操作crtdecode,可以通过如下公式表示,(e1,e2...en)= crtdecode(e)。即,已知上述n个模值p1、p2……
pn,和综合结果e,对e进行该解码操作,即得到针对模值p1取模的余数结果为e1,针对模值p2取模的余数结果e2,以此类推,针对模值pn取模的余数结果为en。
[0111]
第二方b在已知上述n个模值和n个原始向量的情况下,可以利用中国剩余定理下的编码操作,确定综合向量y,即y= crtencode(y1,y2...yn),该综合向量y满足,针对第i空间对应的第i模值pi取模的余数结果为第i原始向量yi,即综合向量y满足针对模值p1取模的余数结果为y1,针对模值p2取模的余数结果为y2,以此类推,针对模值pn取模的余数结果为yn。因此,该综合向量y,相当于n个原始向量映射到n个取模空间的结果的组合。
[0112]
然后,在步骤s502,第二方b使用其持有的公钥pk-b,利用同态加密算法e对综合向量y加密(即同态加密),得到加密综合向量[y]b。
[0113]
接着,在步骤s503,第二方b将加密综合向量[y]b发送给第一方a。由于该向量已经经过加密,因此,该步骤中的通信不会泄露参与方b中的隐私数据。
[0114]
在步骤s504,第一方a基于n个模值和其持有的n个原始向量,利用中国剩余定理确定综合矩阵,综合矩阵满足,针对第i空间对应的第i模值取模的余数结果为第i原始矩阵。其中,第一方a利用与第二方针对n个原始向量相同的处理方式,对n个原始矩阵进行处理,
以得到综合矩阵,即利用根据中国剩余定理下的编码操作确定综合矩阵s,s= crtencode(x1,x2...xn),如此综合矩阵s满足,针对模值p1取模的余数结果为x1,针对模值p2取模的余数结果为x2,以此类推,针对模值pn取模的余数结果为xn。
[0115]
在步骤s505,第一方a基于综合矩阵s以及加密综合向量[y]的同态运算,确定加密结果向量[z]b。即第一方a用综合矩阵s中各个行的明文元素,对加密综合向量[y]b的各个列的密文元素进行同态加和运算,得到上述加密结果向量。即相当于使用同样的公钥pk-b,利用同态加密算法e对综合矩阵s和综合向量y的乘积加密,得到加密结果向量[z]b,也就是,[z]b=[s*y]b。
[0116]
然后,在步骤s506,第一方a生成n个随机向量r1,r2…rn
,并将其相反数作为所述相乘计算结果的n个第一方分片。也就是,第一方获得n个第一方分片:-r1,-r2…‑rn

[0117]
在步骤s507,第一方a利用中国剩余定理确定综合随机向量r,使得综合随机向量r满足,针对第i空间对应的第i模值pi取值的余数结果为第i随机向量ri。其中,第一方a利用与针对n个原始矩阵相同的处理方式,对n个随机向量r进行处理,以得到综合随机向量r,即利用根据中国剩余定理的编码操作确定综合随机向量r,r= crtencode(r1,r2...rn),如此,综合随机向量r满足,针对第i空间对应的第i模值取模的余数结果为第i随机向量。
[0118]
在步骤s508,第一方a基于综合随机向量r以及加密结果向量[z]b,确定数据处理结果[u]b。本步骤中,第一方a可以使用同样的公钥pk-b,利用同态加密算法e,将综合随机向量r同态叠加至加密结果向量[z]b,确定出数据处理结果[u]b,也就是,[u]
b= [z r]b,具体的可以表示为,[u]
b= [s*y r]b。
[0119]
在步骤s509,第一方a将该数据处理结果[u]b发送至第二方b。
[0120]
然后,在步骤s510,第二方b在接收到该数据处理结果[u]b之后,使用其私钥sk-b对该数据处理结果[u]b进行解密,得到数据处理结果明文u。其中,u
=
s*y r。
[0121]
然后,在步骤s511,第二方b将数据处理结果明文u,针对第i空间对应的第i模值pi取余,以分解到第i空间,得到分解结果。其中,第二方b可以基于上述解码操作crtdecode,对数据处理结果明文u(s*y r)进行处理,将其分解到n个取模空间,以得到分解结果。
[0122]
具体的,对数据处理结果明文u(s*y r)针对第1空间对应的第1模值p1取余,即分解到第一空间,得到x1*y1 r1(s针对第1空间对应的第1模值p1取余为x1,y针对第1空间对应的第1模值p1取余为y1,r针对第1空间对应的第1模值p1取余为r1);对数据处理结果明文u(s*y r)针对第2空间对应的第2模值p2取余,即分解到第2空间,得到x2*y2 r2(s针对第2空间对应的第2模值p2取余为x2,y针对第2空间对应的第2模值p2取余为y2,r针对第2空间对应的第2模值p2取余为r2);依次类推,对数据处理结果明文u(s*y r)针对第n空间对应的第n模值pn取余,即分解到第n空间,得到xn*yn rn(s针对第n空间对应的第n模值pn取余为xn,y针对第n空间对应的第n模值pn取余为yn,r针对第n空间对应的第n模值pn取余为rn)。
[0123]
接着,在步骤s412,第二方b根据分解结果获得相应的第二方分片,以结合第一方分片和第二方分片获得n个原始矩阵与n个原始向量的相乘计算结果。例如结合第i个第二方分片xi*yi ri与第i个第一方分片-ri,确定第i原始矩阵xi与第i原始向量yi的相乘计算结果,xi*yi。
[0124]
本实施例,通过将n个原始向量y以及n个原始矩阵x,分别映射至n个取模空间,实现将n个原始向量和n个原始矩阵编码成一个向量以及一个矩阵,进而通过一个矩阵和一个
向量的运算,得到各个原始矩阵x与各个原始向量y的相乘计算结果,在保证各方隐私数据的安全计算的同时,降低了通信量以及计算量,提升了计算效率。
[0125]
在本说明书的另一实施例中,为了保证随机向量对各个原始矩阵x与各个原始向量y的相乘计算结果的掩盖效果,随机向量r的位宽不小于原始矩阵x与原始向量y元素乘积的最大有效位宽。相应的,也需要保证计算过程中,随机向量r对应的中间结果对原始矩阵x与原始向量y元素乘积的中间计算结果的掩盖效果。具体的,在步骤s508,可以具体设置为:在步骤5081,第一方a生成目标随机向量,目标随机向量中各元素的位宽,根据最大有效位宽,超额掩盖位宽以及原始矩阵个数而确定。
[0126]
在步骤5082,第一方a将目标随机向量与n个模值连乘,并将所得的连乘结果叠加至综合随机向量r,得到扩展随机向量。
[0127]
在步骤5083,第一方a将扩展随机向量,同态叠加至加密结果向量。
[0128]
其中,在取模空间中,第i取模空间对应的第i模值的位宽为gi(根据第i原始矩阵和第i原始向量的元素乘积的最大有效位宽以及第i随机向量的超额掩盖位宽而确定),相应的,综合矩阵s(各元素)的位宽为ngi,综合向量y的位宽为ngi,相应的,综合矩阵s与综合向量y的元素乘积s*y的位宽为2ngi。相应的需要保证叠加至s*y的向量的位宽超过2ngi。并且,考虑到计算空间的资源的节省,以及综合随机向量r的本身位宽ngi,可以根据最大有效位宽,超额掩盖位宽以及原始矩阵个数确定目标随机向量中各元素的位宽。例如,该目标随机向量中各元素的位宽可以不小于ngi。
[0129]
一种情况中,扩展随机向量的得到过程,可以通过如下公式(17)表示,k= k*p1*p2*p3... *p
n r
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(17)其中,k表示目标随机向量,k表示扩展随机向量,为p维,r为前述综合随机向量。
[0130]
在本说明书的另一实施例中,考虑到同态加密算法对应的同态明文空间大小有限,第一方a和第二方b之间可以预先至少基于原始矩阵与原始向量的元素乘积(在第一方a生成随机向量的情况下,还结合预设的超额掩盖位宽)的最大有效位宽,确定所有的原始矩阵与原始向量的元素乘积所需的空间。
[0131]
在该所需空间大于同态明文空间大小的情况下,确定需要分批计算原始矩阵与原始向量的相乘计算结果。相应的,至少根据各个原始矩阵与原始向量的元素乘积的最大有效位宽,确定其对应的计算空间的空间大小,进而,基于各个计算空间的空间大小,从第二方b持有原始向量集中筛选出n个原始向量,即该n个原始向量是原始向量集中的部分向量,使得对应的n个计算空间的空间总和不大于同态加密算法对应的同态明文空间大小。
[0132]
在本说明书的另一实施例中,在第一方a不生成随机向量r的情况下,可以不执行步骤s506至s507,且在步骤s508中可以直接将加密结果向量[z]b,确定为数据处理结果,其他步骤均相同,在此不再赘述。相应的,在该类情况下,第二方b可以直接基于数据处理结果得到各个原始矩阵与各个原始向量的相乘计算结果明文。
[0133]
在本说明书的另一实施例中,对于第一方和第二方仅联合计算一个原始矩阵和一个原始向量的相乘结果,可以是首先针对原始矩阵和原始向量进行拆分。其中,如图6所示,对原始矩阵进行横向切分,即按列切分,得到横向排列的3个子矩阵x1|x2|x3;对原始向量y进行纵向切分,即按行切分,得到纵向排列的3个子向量y1|y2|y3,则将原始矩阵*原始向量转化成计算x1*y1 x2*y2 x3*y3,相应的,可以利用本说明书实施例所提供的上述保护数据
隐私的双方联合进行数据处理的流程进行处理了。
[0134]
在本说明书的另一实施例中,计算空间为当前进制下n个不同位数的空间,或者为对应于n个模值的n个取模空间,该n个计算空间的作用都可以看成是将多个乘法映射成一个乘法。鉴于此,在计算多个矩阵与多个向量的相乘计算结果的情况下,还可以结合使用该当前进制下n个不同位数的空间,与n个不同的取模空间,即嵌套使用该两类空间,进行相应的计算。例如:第一方a包括原始矩阵x0、x2,第二方b包括原始向量y0、y1和y2,双方需要联合计算x0*y0,x0*y1和x2*y2的相乘计算结果。具体的,第一方a和第二方b可以首先联合计算x0*y0,x0*y1,第二方b对y0的各个元素扩展第1空间对应的位数,即前述的i1(i1=0),即不对y0扩展位数,对y1的各个元素扩展第2空间对应的位数,即前述的i2,以将y0映射至第1空间,将y1映射至第2空间,进而将映射至第1空间的y0的映射结果和映射至第2空间的y1的映射结果的加和,确定为初始综合向量y

;进而利用中国剩余定理确定二次综合向量,该二次综合向量满足,针对第1空间对应的第1模值取模的余数结果为初始综合向量y

,针对第2空间对应的第2模值取模的余数结果为y2;并将二次综合向量发送至第一方a,以进行联合计算。上述过程,即实现利用上述当前进制下n个不同位数的空间,和对应于n个模值的n个取模空间共同实现乘法的安全计算。
[0135]
本说明书提供如下例子对本说明书实施例所提供的数据处理流程的有益效果进行说明。假设同态加密算法对应的同态明文空间大小为600位:对于n个计算空间为当前进制下的n个不同位数的空间的情况而言:假设原始矩阵x、原始向量y各自的有效位宽是30位,原始矩阵x的行数为1百万,并且xy最大有效位宽t为80位,预设的超额掩盖长度d为20位,每个计算空间的位宽g=100(80 20)位。则同态明文空间至少可以并行执行600/100=6个计算空间(乘法)。并行化之后,无论是传输量、还是同态加解密的次数都是原来的1/6,虽然会多一些转化操作,但是计算量相对同态加解密的计算量可以忽略。则上述例子中,若计算6个乘法,利用本说明书实施例所提供的数据处理流程大约计算效率大约可以提升6倍。
[0136]
对于n个计算空间为对应于n个模值的取模空间的情况而言:假设原始矩阵x、原始向量y各自的有效位宽是30位,原始矩阵x的行数为1百万,并且xy最大有效位宽t为80位,预设的超额掩盖长度d为20位,每个计算空间的位宽g=200(2*(80 20))位。则同态明文空间至少可以并行执行600/2/100=3个。并行化之后,无论是传输量、还是同态加解密的次数都是原来的1/3,虽然会多一些转化操作,但是计算量相对同态加解密的计算量可以忽略。则上述例子中,若计算6个乘法,利用本说明书实施例所提供的数据处理流程大约计算效率大约可以提升3倍。
[0137]
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
[0138]
相应于上述方法实施例,本说明书实施例,提供了一种保护数据隐私的双方联合进行数据处理的装置700,其示意性框图如图7所示,所述双方包括第一方和第二方,所述第一方持有隐私数据构成的原始矩阵,所述第二方持有隐私数据构成的n个原始向量,所述装
置部署在所述第一方,所述装置包括:第一接收模块710,被配置为从所述第二方接收加密综合向量,所述加密综合向量是使用所述第二方的公钥,利用同态加密算法对综合向量加密得到的,所述综合向量是,所述n个原始向量在对应的n个计算空间中的映射结果的组合,所述n个计算空间彼此不同且互相隔离;第一确定模块720,被配置为利用所述原始矩阵以及所述加密综合向量,确定加密结果向量;第二确定模块730,被配置为至少基于所述加密结果向量,确定数据处理结果,并将所述数据处理结果发送至所述第二方,使得所述第二方根据所述数据处理结果,获得所述原始矩阵与所述n个原始向量的相乘计算结果。
[0139]
在一种可选实施方式中,所述n个计算空间的空间大小,至少根据所述原始矩阵与各个原始向量中元素乘积的最大有效位宽而确定。
[0140]
在一种可选实施方式中,所述第二确定模块730,包括:生成单元(图中未示出),被配置为生成n个随机向量,并将其相反数作为所述相乘计算结果的n个第一方分片;组合单元(图中未示出),被配置为将所述n个随机向量在所述n个计算空间的映射结果进行组合,得到综合随机向量;第一确定单元(图中未示出),被配置为基于所述综合随机向量以及所述加密结果向量,确定所述数据处理结果,使得所述第二方获得所述相乘计算结果的n个第二方分片。
[0141]
在一种可选实施方式中,所述第一方持有1个原始矩阵;所述n个计算空间是,当前进制下n个不同位数的空间;所述组合单元,被具体配置为将所述n个随机向量中的第i随机向量的各个元素扩展第i-1空间对应的位数,得到第i随机映射结果;基于各随机映射结果的加和,确定所述综合随机向量。
[0142]
在一种可选实施方式中,所述第i空间相较于第i-1空间的位数之差,根据所述原始矩阵与第i-1原始向量中元素乘积的最大有效位宽,以及针对所述n个随机向量预设的超额掩盖位宽而确定。
[0143]
在一种可选实施方式中,所述第一方持有的原始矩阵为n个;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述第一确定模块720,被具体配置为利用中国剩余定理确定综合矩阵,所述综合矩阵满足,针对第i空间对应的第i模值取模的余数结果为第i原始矩阵;基于所述综合矩阵以及所述加密综合向量的同态运算,得到所述加密结果向量。
[0144]
在一种可选实施方式中,所述第一方持有的原始矩阵为n个;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述第一确定模块720,被具体配置为利用中国剩余定理确定综合矩阵,所述综合矩阵满足,针对第i空间对应的第i模值取模的余数结果为第i原始矩阵;基于所述综合矩阵以及所述加密综合向量的同态运算,得到所述加密结果向量;所述组合单元,被具体配置为利用所述中国剩余定理确定所述综合随机向量,使得所述综合随机向量满足,针对第i空间对应的第i模值取值的余数结果为第i随机向量。
[0145]
在一种可选实施方式中,所述第i模值的位宽,根据所述第i原始矩阵与第i原始向量中元素乘积的最大有效位宽,以及针对所述n个随机向量预设的超额掩盖位宽而确定。
[0146]
在一种可选实施方式中,所述第一确定单元,被具体配置为生成目标随机向量,所述目标随机向量中各元素的位宽,根据所述最大有效位宽,所述超额掩盖位宽以及原始矩阵个数而确定;将所述目标随机向量与所述n个模值连乘,并将所得的连乘结果叠加至所述综合随机向量,得到扩展随机向量;将所述扩展随机向量,同态叠加至所述加密结果向量,得到所述数据处理结果。
[0147]
相应于上述方法实施例,本说明书实施例,提供了一种保护数据隐私的双方联合进行数据处理的装置800,其示意性框图如图8所示,所述双方包括第一方和第二方,所述第一方持有隐私数据构成的原始矩阵,所述第二方持有隐私数据构成的n个原始向量,所述装置部署在所述第二方,所述装置包括:组合模块810,被配置为将所述n个原始向量在n个计算空间的映射结果进行组合,得到综合向量,所述n个计算空间彼此不同且互相隔离;加密模块820,被配置为使用第二方的公钥,利用同态加密算法对所述综合向量加密,得到加密综合向量,并将其发送至所述第一方;第二接收模块830,被配置为从所述第一方接收数据处理结果,所述数据处理结果是,所述第一方至少基于加密结果向量确定的,所述加密结果向量是基于所述原始矩阵以及所述加密综合向量确定的;解密获得模块840,被配置为对所述数据处理结果进行解密,并将其分解到所述n个计算空间,根据分解结果获得所述原始矩阵与所述n个原始向量的相乘计算结果。
[0148]
在一种可选实施方式中,所述n个计算空间的空间大小,至少根据所述原始矩阵与各个原始向量中元素乘积的最大有效位宽而确定。
[0149]
在一种可选实施方式中,所述数据处理结果是,所述第一方基于所述加密结果向量以及综合随机向量确定的,所述综合随机向量是,所述第一方将n个随机向量在所述n个计算空间的映射结果进行组合而得到的,所述n个随机向量的相反数作为所述相乘计算结果的n个第一方分片;所述解密获得模块840,被具体配置为将分解结果中的n个向量作为所述相乘计算结果的n个第二方分片。
[0150]
在一种可选实施方式中,所述第一方持有1个原始矩阵;所述n个计算空间是,当前进制下n个不同位数的空间;所述组合模块810,被具体配置为将所述n个原始向量中的第i原始向量的各个元素扩展第i空间对应的位数,得到第i向量映射结果;基于各向量映射结果的加和,得到所述综合向量。
[0151]
在一种可选实施方式中,所述第一方持有n个原始矩阵;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述组合模块810,被具体配置为利用中国剩余定理确定所述综合向量,所述综合向量满足,针对第i空间对应的第i模值取模的余数结果为第i原始向量。
[0152]
在一种可选实施方式中,所述第二方持有原始向量集,所述n个原始向量是所述原
始向量集中的部分向量,使得对应的所述n个计算空间的空间总和不大于所述同态加密算法对应的同态明文空间大小。
[0153]
相应于上述方法实施例,本说明实施例提供,一种保护数据隐私的双方联合进行数据处理的系统900,其示意性框图如图8所示,所述系统900包括第一方910和第二方920,所述第一方910持有隐私数据构成的原始矩阵,所述第二方920持有隐私数据构成的n个原始向量,其中:所述第二方920被配置为将所述n个原始向量在n个计算空间的映射结果进行组合,得到综合向量,所述n个计算空间彼此不同且互相隔离;使用第二方的公钥,利用同态加密算法对所述综合向量加密,得到加密综合向量,并将其发送至所述第一方910;所述第一方910被配置为接收所述加密综合向量,利用所述原始矩阵以及所述加密综合向量,确定加密结果向量;至少基于所述加密结果向量,确定数据处理结果,并将所述数据处理结果发送至所述第二方920;所述第二方920,还被配置为接收所述数据处理结果;对所述数据处理结果进行解密,并将其分解到所述n个计算空间,从而获得所述原始矩阵与所述n个原始向量的相乘计算结果。
[0154]
在一种可选实施方式中,所述n个计算空间的空间大小,至少根据所述原始矩阵与各个原始向量中元素乘积的最大有效位宽而确定。
[0155]
在一种可选实施方式中,所述第一方在至少基于所述加密结果向量,确定数据处理结果的过程中,被具体配置为:生成n个随机向量,并将其相反数作为所述相乘计算结果的n个第一方分片;将所述n个随机向量在所述n个计算空间的映射结果进行组合,得到综合随机向量;基于所述综合随机向量以及所述加密结果向量,确定所述数据处理结果;相应的,所述根据分解结果获得所述原始矩阵与所述n个原始向量的相乘计算结果,包括:将所述分解结果中的n个向量作为所述相乘计算结果的n个第二方分片。
[0156]
在一种可选实施方式中,所述第一方持有1个原始矩阵;所述n个计算空间是,当前进制下n个不同位数的空间;所述第二方得到综合向量的过程,被配置为:将所述n个原始向量中的第i原始向量的各个元素扩展第i空间对应的位数,得到第i向量映射结果;基于各向量映射结果的加和,得到所述综合向量;所述第一方将所述n个随机向量在所述n个计算空间的映射结果进行组合,包括:将所述n个随机向量中的第i随机向量的各个元素扩展第i空间对应的位数,得到第i随机映射结果;基于各随机映射结果的加和,确定所述综合随机向量。
[0157]
在一种可选实施方式中,所述第一方持有1个原始矩阵;所述n个计算空间是,当前进制下n个不同位数的空间;所述第二方得到综合向量的过程,被配置为:将所述n个原始向量中的第i原始向量的各个元素扩展第i空间对应的位数,得到第i向量映射结果;
基于各向量映射结果的加和,得到所述综合向量。
[0158]
在一种可选实施方式中,所述第i空间相较于第i-1空间的位数之差,根据所述原始矩阵与第i-1原始向量中元素乘积的最大有效位宽,以及针对所述n个随机向量预设的超额掩盖位宽而确定。
[0159]
在一种可选实施方式中,所述第一方持有的原始矩阵为n个;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述第一方确定加密结果向量的过程,被配置为:利用中国剩余定理确定综合矩阵,所述综合矩阵满足,针对第i空间对应的第i模值取模的余数结果为第i原始矩阵;基于所述综合矩阵以及所述加密综合向量的同态运算,得到所述加密结果向量;相应的,所述第二方得到综合向量的过程,被配置为:利用中国剩余定理确定所述综合向量,所述综合向量满足,针对第i空间对应的第i模值取模的余数结果为第i原始向量。
[0160]
在一种可选实施方式中,所述第一方持有的原始矩阵为n个;所述n个计算空间是,对应于n个模值的取模空间;所述n个模值互质;所述第一方确定加密结果向量的过程,被配置为:利用中国剩余定理确定综合矩阵,所述综合矩阵满足,针对第i空间对应的第i模值取模的余数结果为第i原始矩阵;基于所述综合矩阵以及所述加密综合向量的同态运算,得到所述加密结果向量;所述第一方得到综合随机向量的过程,被配置为:利用所述中国剩余定理确定所述综合随机向量,使得所述综合随机向量满足,针对第i空间对应的第i模值取值的余数结果为第i随机向量;相应的,所述第二方得到综合向量的过程,被配置为:利用中国剩余定理确定所述综合向量,所述综合向量满足,针对第i空间对应的第i模值取模的余数结果为第i原始向量。
[0161]
在一种可选实施方式中,所述第i模值的位宽,根据所述第i原始矩阵与第i原始向量中元素乘积的最大有效位宽,以及针对所述n个随机向量预设的超额掩盖位宽而确定。
[0162]
在一种可选实施方式中,所述第一方基于所述综合随机向量以及所述加密结果向量,确定所述数据处理结果的过程,被具体配置为:生成目标随机向量,所述目标随机向量中各元素的位宽,根据所述最大有效位宽,所述超额掩盖位宽以及原始矩阵个数而确定;将所述目标随机向量与所述n个模值连乘,并将所得的连乘结果叠加至所述综合随机向量,得到扩展随机向量;将所述扩展随机向量,同态叠加至所述加密结果向量,得到所述数据处理结果。
[0163]
上述装置、系统实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置、系统实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
[0164]
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书所提供的第一方侧的所述保护
数据隐私的双方联合进行数据处理的方法。
[0165]
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书所提供的第二方侧的所述保护数据隐私的双方联合进行数据处理的方法。
[0166]
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书所提供的第一方侧的所述保护数据隐私的双方联合进行数据处理的方法。
[0167]
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书所提供的第二方侧的所述保护数据隐私的双方联合进行数据处理的方法。
[0168]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0169]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0170]
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献