两方联合的数据处理方法及装置制造方法及图纸

技术编号:38090863 阅读:15 留言:0更新日期:2023-07-06 09:02
本说明书实施例披露一种两方联合的数据处理方法,用于对第一方持有的n个原始矩阵和第二方持有的n个m维列向量进行安全乘积运算。在该方法中,第一方基于所述n个原始矩阵确定m个重构矩阵,其中任意的第j个重构矩阵包括各个原始矩阵中的第j列元素;第二方通过对若干重构向量进行同态加密,确定对应的第一向量密文,并发送给第一方;之后,第一方基于所述第一向量密文和m个重构矩阵进行同态运算,得到乘积结果密文,用于构建所述安全乘积运算的结果。果。果。

【技术实现步骤摘要】
两方联合的数据处理方法及装置


[0001]本说明书一个或多个实施例涉及数据安全处理
,尤其涉及一种两方联合的数据处理的方法及装置。

技术介绍

[0002]安全多方计算(Secure Multi

Party Computation,简称MPC)又称为多方安全计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果公开给其中的一方或多方。MPC涉及的基础技术包括同态加密(Homomorphic Encryption,简称HE)、秘密共享(Secret Sharing,简称SS)等。
[0003]矩阵乘向量是常用的计算,比如用于机器学习中的逻辑回归建模和推理。基HE的矩阵向量乘法可以保护各参与方的隐私信息。
[0004]然而,目前基于HE计算矩阵向量乘法的方式性能有限,因此需要一种方案,可以更好地满足实际应用需求,如降低矩阵向量乘法的计算量等。

技术实现思路

[0005]本说明书实施例描述一种两方联合的数据处理方法及装置,可以更好的满足实际应用需求,通过对批量矩阵向量乘法进行合理的编码设计,有效降低计算量。
[0006]根据第一方面,提供一种两方联合的数据处理方法,用于对第一方持有的n个原始矩阵和第二方持有的n个m维列向量进行安全乘积运算。所述方法由所述第一方执行,包括:基于所述n个原始矩阵,确定m个重构矩阵;其中任意的第j个重构矩阵包括各个原始矩阵中的第j列元素;从第二方接收第一密文向量,其通过对若干重构向量进行同态加密而得到;单个重构向量由所述n个m维列向量在同一行的n个元素构成;基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文,用于构建所述安全乘积运算的结果。
[0007]在一个实施例中,各个原始矩阵为k*m维,所述第一密文向量通过对单个重构向量进行加密而得到;其中,基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文,包括:基于所述m个重构矩阵和m个第一密文向量进行同态运算,得到所述乘积结果密文,其中包括与结果明文矩阵中的k行对应的k个第二密文向量,所述结果明文矩阵中的第i列为第i个原始矩阵和第i个m维列向量的乘积。
[0008]在一个具体的实施例中,基于所述m个重构矩阵和m个第一密文向量进行同态运算,得到所述乘积结果密文,包括:对所述m个重构矩阵中位于第h行的m个行向量和所述m个第一密文向量对应进行同态明密文向量乘法运算,得到m个第三密文向量;对所述m个第三密文向量进行同态求和,得到第h个第二密文向量。
[0009]在一个实施例中,各个原始矩阵为k*m维;其中,从第二方接收第一密文向量,包括:从第二方接收对多个第一拼接向量分别进行同态加密而得到的多个第一密文向量,其中多个第一拼接向量通过以t为单位将所述m个重构向量划分为多组后进行组内拼接而得到;其中,基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文,包
括:基于所述m个重构矩阵和所述多个第一密文向量进行同态运算,得到所述乘积结果密文,其中包括与结果明文矩阵中的相邻t行形成的第二拼接向量对应的第四密文向量,所述结果明文矩阵中的第i列为第i个原始矩阵和第i个m维列向量的乘积。
[0010]在一个具体的实施例中,基于所述m个重构矩阵和所述多个第一密文向量进行同态运算,得到乘积结果密文,包括:针对各个第一密文向量,以重构向量的长度为单位进行多次循环移位,得到多个移位密文向量;针对所述相邻t行,从所述m个重构矩阵中分别获取位于相同行的t个向量,得到m*t个行向量;基于所述多个第一密文向量和其中各个第一密文向量对应的多个移位密文向量,以及所述m*t个行向量进行同态运算,得到与所述相邻t行对应的第四密文向量,用于形成所述乘积结果密文。
[0011]在一个实施例中,在基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文之后,所述方法还包括:向所述第二方发送所述乘积结果密文,以使所述第二方对其解密得到乘积结果明文。
[0012]在另一个实施例中,在在基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文之后,所述方法还包括:生成随机数,作为乘积结果明文的第一秘密分享分片;对所述随机数和乘积结果密文进行同态减运算,得到同态运算结果;将所述同态运算结果发送至所述第二方,以使所述第二方通过对所述同态运算结果进行解密,得到所述乘积结果明文的第二秘密分享分片。
[0013]根据第二方面,提供一种两方联合的数据处理方法,用于对第一方持有的n个原始矩阵和第二方持有的n个m维列向量进行安全乘积运算。所述方法由所述第二方执行,包括:基于所述n个m维列向量,确定m个重构向量;单个重构向量由所述n个m维列向量在同一行的n个元素构成;对所述m个重构向量中的若干重构向量进行同态加密,得到对应的第一密文向量;向所述第一方发送所述第一密文向量,以使所述第一方基于所述第一密文向量和m个重构矩阵进行同态运算,得到乘积结果密文;其中任意的第j个重构矩阵包括各个原始矩阵中的第j列元素,所述乘积结果密文用于构建所述安全乘积运算的结果。
[0014]在一个实施例中,对所述m个重构向量中的若干重构向量进行同态加密,得到对应的第一密文向量,包括:对所述m个重构向量分别进行同态加密,得到m个第一密文向量。
[0015]在一个实施例中,对所述m个重构向量中的若干重构向量进行同态加密,得到对应的第一密文向量,包括:以t为单位将所述m个重构向量划分为多组后进行组内拼接,得到多个第一拼接向量;对所述多个第一拼接向量分别进行同态加密,得到多个第一密文向量。
[0016]在一个实施例中,在向所述第一方发送所述第一密文向量之后,所述方法还包括:从所述第一方接收所述乘积结果密文;对所述乘积结果密文进行解密,得到乘积结果明文。
[0017]在一个实施例中,在向所述第一方发送所述第一密文向量之后,所述方法还包括:从所述第一方接收同态运算结果,其由所述第一方对其本地生成的随机数和所述乘积结果密文进行同态减运算而得到;所述随机数被所述第一方用作乘积结果明文的第一秘密分享分片;对所述同态运算结果进行解密,得到所述乘积结果明文的第二秘密分享分片。
[0018]根据第三方面,提供一种两方联合的数据处理装置,用于对第一方持有的n个原始矩阵和第二方持有的n个m维列向量进行安全乘积运算;所述装置集成于所述第一方,包括:矩阵重构单元,配置为基于所述n个原始矩阵,确定m个重构矩阵;其中任意的第j个重构矩阵包括各个原始矩阵中的第j列元素;密文向量接收单元,配置为从第二方接收第一密文向
量,其通过对若干重构向量进行同态加密而得到;单个重构向量由所述n个m维列向量在同一行的n个元素构成;同态运算单元,配置为基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文,用于构建所述安全乘积运算的结果。
[0019]根据第四方面,提供一种两方联合的数据处理方法,用于对第一方持有的n个原始矩阵和第二方持有的n个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种两方联合的数据处理方法,用于对第一方持有的n个原始矩阵和第二方持有的n个m维列向量进行安全乘积运算,所述方法由所述第一方执行,包括:基于所述n个原始矩阵,确定m个重构矩阵;其中任意的第j个重构矩阵包括各个原始矩阵中的第j列元素;从第二方接收第一密文向量,其通过对若干重构向量进行同态加密而得到;单个重构向量由所述n个m维列向量在同一行的n个元素构成;基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文,用于构建所述安全乘积运算的结果。2.根据权利要求1所述的方法,其中,各个原始矩阵为k*m维,所述第一密文向量通过对单个重构向量进行加密而得到;其中,基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文,包括:基于所述m个重构矩阵和m个第一密文向量进行同态运算,得到所述乘积结果密文,其中包括与结果明文矩阵中的k行对应的k个第二密文向量,所述结果明文矩阵中的第i列为第i个原始矩阵和第i个m维列向量的乘积。3.根据权利要求2所述的方法,其中,基于所述m个重构矩阵和m个第一密文向量进行同态运算,得到所述乘积结果密文,包括:对所述m个重构矩阵中位于第h行的m个行向量和所述m个第一密文向量对应进行同态明密文向量乘法运算,得到m个第三密文向量;对所述m个第三密文向量进行同态求和,得到第h个第二密文向量。4.根据权利要求1所述的方法,其中,各个原始矩阵为k*m维;其中,从第二方接收第一密文向量,包括:从第二方接收对多个第一拼接向量分别进行同态加密而得到的多个第一密文向量,其中多个第一拼接向量通过以t为单位将所述m个重构向量划分为多组后进行组内拼接而得到;其中,基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文,包括:基于所述m个重构矩阵和所述多个第一密文向量进行同态运算,得到所述乘积结果密文,其中包括与结果明文矩阵中的相邻t行形成的第二拼接向量对应的第四密文向量,所述结果明文矩阵中的第i列为第i个原始矩阵和第i个m维列向量的乘积。5.根据权利要求4所述的方法,其中,基于所述m个重构矩阵和所述多个第一密文向量进行同态运算,得到乘积结果密文,包括:针对各个第一密文向量,以重构向量的长度为单位进行多次循环移位,得到多个移位密文向量;针对所述相邻t行,从所述m个重构矩阵中分别获取位于相同行的t个向量,得到m*t个行向量;基于所述多个第一密文向量和其中各个第一密文向量对应的多个移位密文向量,以及所述m*t个行向量进行同态运算,得到与所述相邻t行对应的第四密文向量,用于形成所述乘积结果密文。6.根据权利要求1所述的方法,其中,在基于所述m个重构矩阵和所述第一密文向量进
行同态运算,得到乘积结果密文之后,所述方法还包括:向所述第二方发送所述乘积结果密文,以使所述第二方对其解密得到乘积结果明文。7.根据权利要求1所述的方法,其中,在在基于所述m个重构矩阵和所述第一密文向量进行同态运算,得到乘积结果密文之后,所述方法还包括:生成随机数,作为乘积结果明文的第一秘密分享分片;对所述随机数和乘积结果密文进行同态减运算,得到同态运算结果;将所述同态运算结果发送至所述第二方,以使所述第二方通过对所述同态运算结果进行解密,得到所述乘积结果明文的第二秘密分享分片。8.一种两方联合的数据处理方法,用于对第一方持有的n个原始矩阵和第二方持有的n个m维列向量进行安全乘积运算,...

【专利技术属性】
技术研发人员:李漓春尹栋
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1