数据处理方法、装置、设备、存储介质及程序产品制造方法及图纸

技术编号:33876456 阅读:13 留言:0更新日期:2022-06-22 17:04
本发明专利技术公开了一种数据处理方法、装置、设备、存储介质及程序产品,所述方法包括:接收所述多个参与方中的第二参与方发送的加密后的数据,确定用于与所述加密后的数据进行运算的本地数据;将所述加密后的数据拆分为多个第一子数据,将所述本地数据拆分为多个第二子数据;通过多个线程,并行根据多个第一子数据和第二子数据进行同态加法运算和/或半同态乘法运算,得到加密后的运算结果;输出所述加密后的运算结果,以使获取到所述运算结果的参与方对所述运算结果进行解密后得到明文结果。本发明专利技术可以快速、准确地确定同态密文的运算结果,缩短密文运算所花费的时间,提升运算效率,满足同态密文运算的处理要求。足同态密文运算的处理要求。足同态密文运算的处理要求。

【技术实现步骤摘要】
数据处理方法、装置、设备、存储介质及程序产品


[0001]本专利技术涉及数据处理
,尤其涉及一种数据处理方法、装置、设备、存储介质及程序产品。

技术介绍

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

Party Computation,SMC)用于解决一组互不信任的参与方之间保护隐私的协同计算问题。多个参与方可以在不公开各自业务数据的情况下,利用安全多方计算来实现对业务数据的协同计算。
[0003]多方安全计算在隐私保护机器学习中广泛应用,所谓的隐私保护机器学习,就是构建一个隐私保护机器学习系统,使得拥有数据的多个参与方能够联合训练一个或多个模型,并且任意一方的数据不会泄露给其他参与者。这能在保证隐私数据不泄露的情况下,提升参与者们本地模型的任务表现,打破数据孤岛。
[0004]为了保证隐私保护效果,参与方需要对数据加密后再进行交互计算,由于参与计算的密文数据较大,密文运算所花费的时间较久,效率低下。

技术实现思路

[0005]本专利技术的主要目的在于提供一种数据处理方法、装置、设备、存储介质及程序产品,旨在提高密文计算的效率。
[0006]为实现上述目的,本专利技术提供一种数据处理方法,应用于进行多方安全计算的多个参与方中的第一参与方,所述方法包括:
[0007]接收所述多个参与方中的第二参与方发送的加密后的数据,确定用于与所述加密后的数据进行运算的本地数据;
[0008]将所述加密后的数据拆分为多个第一子数据,将所述本地数据拆分为多个第二子数据;
[0009]通过多个线程,并行根据多个第一子数据和第二子数据进行同态加法运算和/或半同态乘法运算,得到加密后的运算结果;
[0010]输出所述加密后的运算结果,以使获取到所述运算结果的参与方对所述运算结果进行解密后得到明文结果。
[0011]可选的,所述方法还包括:
[0012]确定每个线程块包含的线程数量;
[0013]根据所述加密后的数据的位数以及每个线程的可处理位数,确定所述加密后的数据需要的线程数量;
[0014]根据所述加密后的数据需要的线程数量以及每个线程块包含的线程数量,确定需要的线程块的数量;
[0015]相应的,通过多个线程,并行对多个第一子数据和第二子数据进行同态加法运算和/或半同态乘法运算,包括:
[0016]根据需要的线程块的数量,调用相应数量的线程块,通过所调用的线程块中的多个线程并行对多个第一子数据和第二子数据进行同态加法运算和/或半同态乘法运算。
[0017]可选的,所述本地数据为用于与所述加密后的数据进行同态加法运算的、加密后的本地数据;
[0018]相应的,通过多个线程,并行根据多个第一子数据和第二子数据进行同态加法运算,包括:
[0019]为每一第一子数据分配一个线程,所述线程用于计算所述第一子数据与对应位的第二子数据的同态加法结果;
[0020]通过每一线程,在蒙哥马利域中将所述线程对应的第一子数据和第二子数据相乘后对公钥的平方取模,得到所述第一子数据和第二子数据的同态加法结果;
[0021]根据各个线程得到的第一子数据和第二子数据的同态加法结果,确定所述加密后的数据与本地数据的同态加法结果。
[0022]可选的,所述本地数据为用于与所述加密后的数据进行半同态乘法运算的本地数据;所述加密后的数据被拆分为第一数量的第一子数据,所述本地数据被拆分为第二数量的第二子数据;
[0023]相应的,通过多个线程,并行根据多个第一子数据和第二子数据进行半同态乘法运算,包括:
[0024]遍历第一数量的第一子数据和第二数量的第二子数据,得到第三数量的数据对,每一数据对包括一个第一子数据和一个第二子数据,所述第三数量为第一数量与第二数量的乘积;
[0025]为每一数据对分配一个线程;
[0026]通过每一线程,计算对应的数据对中的第一子数据的N次方并对公钥的平方取模,得到第一子数据与第二子数据的半同态乘法结果;其中,在所述第二子数据不大于预设值时,所述N为所述第二子数据,在所述第二子数据大于预设值时,所述N为第二子数据与公钥的差值;
[0027]根据各个线程得到第一子数据和第二子数据的半同态乘法结果,确定所述加密后的数据与本地数据的半同态乘法结果。
[0028]可选的,接收所述多个参与方中的第二参与方发送的加密后的数据,包括:
[0029]若所述第一参与方为所述多个参与方中的数据运算方,则接收所述多个参与方中的数据提供方发送的加密后的数据;
[0030]所述方法还包括:
[0031]若所述第一参与方为数据提供方,则将存储在本地的待计算数据拆分为多个第三子数据;
[0032]通过多个线程,并行对所述多个第三子数据进行加密操作,得到加密后的待计算数据;
[0033]将加密后的待计算数据发送给其它参与方,以使所述其它参与方根据所述加密后的待计算数据进行同态密文运算以得到加密后的运算结果;
[0034]所述方法还包括:
[0035]若所述第一参与方为拥有私钥的参与方,则从其它参与方获取加密后的运算结
果,并将获取到的所述加密后的运算结果拆分为多个第四子数据;
[0036]通过多个线程,并行对所述多个第四子数据进行解密操作,得到解密后的运算结果。
[0037]可选的,通过多个线程,并行对所述多个第三子数据进行加密操作,得到加密后的待计算数据,包括:
[0038]为每一第三子数据分配一个线程;
[0039]通过每一线程,将对应的第三子数据与公钥相乘,并将相乘结果加一后对公钥的平方取模,得到所述第三子数据对应的加密结果;
[0040]根据多个第三子数据对应的加密结果,得到加密后的待计算数据。
[0041]可选的,通过多个线程,并行对所述多个第四子数据进行解密操作,得到解密后的运算结果,包括:
[0042]为每一第四子数据分配一个线程;
[0043]通过每一线程,根据私钥对对应的第四子数据进行求幂操作,并根据求幂后的结果和公钥计算所述第四子数据对应的解密结果;
[0044]根据多个第四子程序对应的解密结果,得到解密后的运算结果。
[0045]可选的,若所述待计算数据为浮点型数据,则将存储在本地的待计算数据拆分为多个第三子数据,包括:
[0046]将所述浮点型数据转换为整型数据;
[0047]将转换得到的整型数据对公钥取余,得到编码后的数据;
[0048]对所述编码后的数据进行拆分,得到多个第三子数据;
[0049]相应的,在得到解密后的运算结果之后,所述方法还包括:
[0050]根据所述浮点型数据的属性信息以及公钥对解密后的运算结果进行处理,得到浮点型的解密后的运算结果。
[0051]本专利技术还提供一种数据处理装置,应用于进行多方安全计算的多个参与方中的第一参与方,所述装置包括:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于进行多方安全计算的多个参与方中的第一参与方,所述方法包括:接收所述多个参与方中的第二参与方发送的加密后的数据,确定用于与所述加密后的数据进行运算的本地数据;将所述加密后的数据拆分为多个第一子数据,将所述本地数据拆分为多个第二子数据;通过多个线程,并行根据多个第一子数据和第二子数据进行同态加法运算和/或半同态乘法运算,得到加密后的运算结果;输出所述加密后的运算结果,以使获取到所述运算结果的参与方对所述运算结果进行解密后得到明文结果。2.根据权利要求1所述的方法,其特征在于,还包括:确定每个线程块包含的线程数量;根据所述加密后的数据的位数以及每个线程的可处理位数,确定所述加密后的数据需要的线程数量;根据所述加密后的数据需要的线程数量以及每个线程块包含的线程数量,确定需要的线程块的数量;相应的,通过多个线程,并行对多个第一子数据和第二子数据进行同态加法运算和/或半同态乘法运算,包括:根据需要的线程块的数量,调用相应数量的线程块,通过所调用的线程块中的多个线程并行对多个第一子数据和第二子数据进行同态加法运算和/或半同态乘法运算。3.根据权利要求1所述的方法,其特征在于,所述本地数据为用于与所述加密后的数据进行同态加法运算的、加密后的本地数据;相应的,通过多个线程,并行根据多个第一子数据和第二子数据进行同态加法运算,包括:为每一第一子数据分配一个线程,所述线程用于计算所述第一子数据与对应位的第二子数据的同态加法结果;通过每一线程,在蒙哥马利域中将所述线程对应的第一子数据和第二子数据相乘后对公钥的平方取模,得到所述第一子数据和第二子数据的同态加法结果;根据各个线程得到的第一子数据和第二子数据的同态加法结果,确定所述加密后的数据与本地数据的同态加法结果。4.根据权利要求1所述的方法,其特征在于,所述本地数据为用于与所述加密后的数据进行半同态乘法运算的本地数据;所述加密后的数据被拆分为第一数量的第一子数据,所述本地数据被拆分为第二数量的第二子数据;相应的,通过多个线程,并行根据多个第一子数据和第二子数据进行半同态乘法运算,包括:遍历第一数量的第一子数据和第二数量的第二子数据,得到第三数量的数据对,每一数据对包括一个第一子数据和一个第二子数据,所述第三数量为第一数量与第二数量的乘积;为每一数据对分配一个线程;
通过每一线程,计算对应的数据对中的第一子数据的N次方并对公钥的平方取模,得到第一子数据与第二子数据的半同态乘法结果;其中,在所述第二子数据不大于预设值时,所述N为所述第二子数据,在所述第二子数据大于预设值时,所述N为第二子数据与公钥的差值;根据各个线程得到第一子数据和第二子数据的半同态乘法结果,确定所述加密后的数据与本地数据的半同态乘法结果。5.根据权利要求1

4任一项所述的方法,其特征在于,接收所述多个参与方中的第二参与方发送的加密后的数据,包括:若所述第一参与方为所述多个参与方中的数据运算方,则接收所述多个参与方中的数据提供方发送的加密后的数据;所述方法还包括:若所述第一参与方为数据提供方,则将存储在本地的待计算数...

【专利技术属性】
技术研发人员:陈振南陈瑞钦黄启军
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:

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

1