基于多方安全计算的深度学习用户梯度聚合方法技术

技术编号:34512956 阅读:9 留言:0更新日期:2022-08-13 20:59
一种基于多方安全计算的深度学习用户梯度聚合方法,在深度学习中用户对梯度向量添加随机数后,使用多密钥同态加密算法对用户梯度向量进行加密。同时利用可验证秘密共享算法对通过验证的用户添加的随机数求和,参数服务器拿到梯度密文向量之后使用主密钥进行解密,对用户梯度向量去除随机数后求平均。这样既能够解决多方深度学习中单一密钥环境中的梯度聚合会泄露用户隐私的问题,防止梯度聚合过程中参数服务器获取用户隐私的同时,使用添加随机数后去除随机数的方式,而不是添加无法去除的噪声,保护了梯度的真实性和完整性,最终的聚合结果准确性将不受影响。合结果准确性将不受影响。合结果准确性将不受影响。

【技术实现步骤摘要】
基于多方安全计算的深度学习用户梯度聚合方法


[0001]本专利技术属于计算
,更进一步涉及电数字数据处理
中的一种基于多方安全计算的深度学习用户梯度聚合方法。本专利技术可用于多方协作的深度学习中,通过对用户上传的梯度数据加密并进行多方安全计算,获得用户梯度聚合结果。

技术介绍

[0002]深度学习的日渐发展和大规模应用于金融、电网、广告、投资,大数据与深度学习结合下的数据挖掘变得更加普及。深度学习的价值在于其可以对海量的用户数据进行分析和预测,但是海量数据交互会带来巨大的隐私风险。比如深度学习的服务提供商能获取到用户数据,从而泄露用户的隐私。目前针对深度学习上的隐私保护方法有下列两种:基于加密的隐私保护技术和基于数据扰动机制的隐私保护技术。数据扰动技术也即差分隐私是指在对原始数据进行噪声添加,外部敌手即使获得数据也不能对该数据进行分析,从而无法得到用户的敏感信息,但数据的真实性和完整性会遭受破坏。而同态加密和安全多方计算均为加密技术,对用户的数据进行加密,防止隐私泄露。安全多方计算在用户不提供个人数据的情况,多方联合计算结果。同态加密提供了在加密数据上的计算操作,无需解密,且不影响数据的精确性。
[0003]LeTrieuPhong在其发表的论文“Privacy

Preserving Deep Learning via Additively Homomorphic Encryption”(Journal:IEEE Transactions on Information Forensics and Security 2018,Volume:13,Page:1333

1345)中提出了一个使用同态加密对深度学习系统进行隐私保护的方法。该方法应用于神经网络的异步梯度下降算法。参与者在本地使用自己的数据进行模型训练,之后将获得的梯度参数加密之后存储在云服务器上。由于同态特性,加密之后的数据可以进行密文下的计算。之后将获得的计算结果返回给参与者。参与者解密之后获得更新的梯度数据,用于更新本地模型。该方法虽然通过同态加密实现了对参与者数据的隐私保护。但是,该方法仍然存在的不足之处是,所有参与者使用的密钥都是一样的,当有参与者被攻击或者有参与者退出模型训练,其余参与者梯度聚合过程中将会有隐私泄露的风险,云服务器可能会获得用户隐私。
[0004]武汉理工大学在其申请的专利文献“一种基于深度学习的差分隐私保护方法及装置”(申请号CN202110663663.1,公布号CN113468592A)中公开了一种基于深度学习的差分隐私保护方法。该方法根据训练模型梯度确定梯度累计平方和矩阵;从而多种模型参数的隐私预算以及自适应学习率;对梯度进行梯度裁剪,获得多个裁剪梯度,基于隐私预算添加噪声,获得噪声梯度;基于梯度下降公式和噪声梯度对模型参数进行迭代更新,获得目标深度学习模型。通过该方法可以进行模型训练,也可以达到个体隐私保护的目的。该方法存在的不足之处是,由于对梯度裁剪之后获得噪声梯度,破坏了梯度的真实性和完整性,影响梯度聚合的准确性。

技术实现思路

[0005]本专利技术的目的是针对上述现有技术的不足,提出一种基于多方安全计算的深度学习用户梯度聚合方法,用于解决现有技术中存在的单一密钥环境中梯度聚合会泄露用户隐私,以及上传梯度中添加噪声导致的最终聚合结果准确性不足的技术问题。
[0006]为实现上述目的,本专利技术的技术思路是,在深度学习中用户对梯度向量添加随机数后,使用多密钥同态加密算法对用户梯度向量进行加密。同时利用可验证秘密共享算法对通过验证的用户添加的随机数求和,参数服务器拿到梯度密文向量之后使用主密钥进行解密,对用户梯度向量去除随机数后求平均。这样既能够解决多方深度学习中单一密钥环境中的梯度聚合会泄露用户隐私的问题,防止梯度聚合过程中参数服务器获取用户隐私的同时,使用添加随机数后去除随机数的方式,而不是添加无法去除的噪声,保护了梯度的真实性和完整性,最终的聚合结果准确性将不受影响。
[0007]本专利技术采取的技术方法包括如下步骤:
[0008]步骤1,生成并分发公共参数和密钥:
[0009]步骤1.1,密钥生成中心利用同态BCP密码密钥生成算法,生成公共参数N和g与主密钥mk;密钥生成中心利用利用FeldmanVSS参数生成算法,生成公共参数p

,q

,g

,n和集合X;
[0010]步骤1.2,密钥生成中心将公共参数N,g和p

,q

,g

,n发给每个用户和参数服务器;
[0011]步骤1.3,密钥生成中心将密钥mk和集合X分别发给每个用户和参数服务器;
[0012]步骤2,生成用户公私钥对;
[0013]步骤2.1,每个用户利用密钥生成中心发送的同态BCP密码的公共参数,生成该用户的公钥参数h
i

[0014]步骤2.2,每个用户将公共参数N和g、整数b
i
、公钥参数h
i
组成该用户的公钥pk
i
=(N,g,h
i
),私钥sk
i
=b
i
,得到该用户的公私钥对(pk
i
,sk
i
);
[0015]步骤3,用户在梯度向量中添加随机数:
[0016]每个用户将随机数u添加到其梯度向量的每一个元素中,得到每个用户对应添加随机数后梯度向量。
[0017]步骤4,加密并传输用户数据:
[0018]步骤4.1,利用同态BCP密码算法,每个用户使用其公钥对添加随机数后梯度向量进行加密,得到由A和B两部分组成的每个用户密文梯度向量;
[0019]步骤4.2,每个用户将其密文梯度向量发送给同一个参数服务器;
[0020]步骤5,生成份额,设置门限值:
[0021]步骤5.1,参数服务器统计接收到的每个用户发送的密文梯度向量的总数n1,设定接受到密文梯度向量的用户随机数秘密恢复门限值k;
[0022]步骤5.2,参数服务器公开n1、门限值k以及接受到密文梯度向量的每个用户;
[0023]步骤6,用户分发共享值和广播值:
[0024]每个发送密文梯度向量的用户均生成其共享值和承诺广播值;每个发送密文梯度向量用户将其共享值发送给对应用户,将承诺广播值进行广播;
[0025]步骤7,发送秘密份额:
[0026]步骤7.1,每个发送密文梯度向量的用户,利用承诺广播值验证其收到的共享值,将所有通过验证的用户的共享值之和作为秘密份额,并公开未通过共享值验证的用户;
[0027]步骤7.2,每个发送密文梯度向量的用户,将其秘密份额发送给每个通过共享值验证的用户和参数服务器。
[0028]步骤8,验证秘密份额:
[0029]步骤8.1,每个通过共享值验证的用户,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多方安全计算的深度学习用户梯度聚合方法,其特征在于,在用户参与多方协作的深度学习场景下,使用多方安全计算为隐私保护的手段,对用户上传的梯度向量进行加密,在多方安全计算中利用多密钥同态和可验证秘密共享实现用户安全且准确的梯度数据聚合;该方法的具体步骤包括如下:步骤1,生成并分发公共参数和密钥:步骤1.1,密钥生成中心利用同态BCP密码密钥生成算法,生成公共参数N和g与主密钥mk;密钥生成中心利用利用Feldman VSS参数生成算法,生成公共参数p

,q

,g

,n和集合X;步骤1.2,密钥生成中心将公共参数N,g和p

,q

,g

,n发给每个用户和参数服务器;步骤1.3,密钥生成中心将密钥mk和集合X分别发给每个用户和参数服务器;步骤2,生成用户公私钥对;步骤2.1,每个用户利用密钥生成中心发送的同态BCP密码的公共参数,生成该用户的公钥参数h
i
;步骤2.2,每个用户将公共参数N和g、整数b
i
、公钥参数h
i
组成该用户的公钥pk
i
=(N,g,h
i
),私钥sk
i
=b
i
,得到该用户的公私钥对(pk
i
,sk
i
);步骤3,用户在梯度向量中添加随机数:每个用户将随机数u添加到其梯度向量的每一个元素中,得到每个用户对应添加随机数后梯度向量;步骤4,加密并传输用户数据:步骤4.1,利用同态BCP密码算法,每个用户使用其公钥对添加随机数后梯度向量进行加密,得到由A和B两部分组成的每个用户密文梯度向量;步骤4.2,每个用户将其密文梯度向量发送给同一个参数服务器;步骤5,生成份额,设置门限值:步骤5.1,参数服务器统计接收到的每个用户发送的密文梯度向量的总数n1,设定接受到密文梯度向量的用户随机数秘密恢复门限值k;步骤5.2,参数服务器公开n1、门限值k以及接受到密文梯度向量的每个用户;步骤6,用户分发共享值和广播值:每个发送密文梯度向量的用户均生成其共享值和承诺广播值;每个发送密文梯度向量用户将其共享值发送给对应用户,将承诺广播值进行广播;步骤7,发送秘密份额:步骤7.1,每个发送密文梯度向量的用户,利用承诺广播值验证其收到的共享值,将所有通过验证的用户的共享值之和作为秘密份额,并公开未通过共享值验证的用户;步骤7.2,每个发送密文梯度向量的用户,将其秘密份额发送给每个通过共享值验证的用户和参数服务器;步骤8,验证秘密份额:步骤8.1,每个通过共享值验证的用户,利用承诺广播值验证其收到的秘密份额,公开未通过秘密份额验证的用户;步骤8.2,利用拉格朗日插值法,参数服务器计算通过秘密份额验证的用户的秘密;步骤9,参数服务器得到全局梯度向量:步骤9.1,利用同态BCP密码算法,参数服务器用其主密钥mk,解密每个通过秘密份额验
证的用户的密文梯度向量;步骤9.2,参数服务器将解密后的秘密份额,去除每个通过验证用户的密文梯度向量中的随机数后,再将所有去除随机数的密文梯度向量加和求均值,生成全局梯度向量;步骤10,加密并传输全局梯度向量;步骤10.1,利用同态BCP密码算法,参数服务器对每个通过秘密份额验证的用户的全局梯度向量行加密,得到由A',B'两个部分组成的密文全局梯度向量;步骤10.2,参数服务器将密文全局梯度向量发送给每个通过秘密份额验证的用户;步骤11,用户得到全局梯度向量:每个通过秘密份额验证的用户,使用其公钥对密文全局梯度向量进行解密,得到全局梯度向量。2.根据权利要求1所述的基于多方安全计算的深度学习用户梯度聚合方法,其特征在于,步骤2.1中所述每个用户利用密钥生成中心发送的同态BCP密码的公共参数,生成该用户的公钥参...

【专利技术属性】
技术研发人员:罗雪王保仓陈艳格
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

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

1