1.一种云环境下保护隐私的多方深度学习计算代理方法,其特征是,各个参与方基于自身数据集运行深度学习算法,计算得出梯度参数值,并将利用乘法同态ElGamal加密方案加密后的梯度参数上传到服务器;当参与者将梯度参数上传到云服务器时,同时生成该参数的签名,签名满足聚合性,即云服务器能够计算出梯度参数和的签名;云计算服务器在密文上计算得出所有用户的梯度参数和,并将结果返回给用户,用户解密后得到最终的梯度参数和,并通过检查结果和聚合签名是否是有效的消息和签名对来验证其正确性;其中,包含4个子算法,表述如下:
K
·参数初始化算法(pk,sk,w0)←Init(1):基于安全参数K,初始化算法会生成一个公钥pk,用于编码每个参与者的输入,生成匹配密钥sk,并将sk分解为两部分,分别对应于服务器和用户的私钥,同时,初始化算法随机机产生神经网络的初始权向量w0;
·本地训练算法 每个用户Pi在其自己的数据集DBi上运行深度学习算法 并上传加密的梯度参数 到云服务器;
·参数交换算法 根据加密算法的同态属性,云服务器计算所有用户上传的梯度参数总和,并利用密钥sks解密后得到 发送给用户;
·参数更新算法 每个用户利用其自己的密钥skp解密梯度参数和,获得用于更新神经网络权重的梯度向量Δw;
其中:
K K K
·(pk,sk,w0)←Init(l):输入安全参数l ,Init(l)输出pk,sk和w0,其中pk是ElGamal加密系统的公钥,sk是相应的秘密密钥分成两部分,sks和skp,sks是服务器的密钥,skp是参与者的密钥,w0是神经网络的初始参数向量,使用Diffie‑Hellman密钥交换协议来生成pk和sk,具体的参数生成过程描述如下:(1)乘法循环群 生成元是g, 其中p是安全素数;
(2)对于每个参与者Pi,1≤i≤n,选择一个随机数xi∈RZp‑1,计算 并在所有参与者之间分享,因此,每个参与者计算 作为秘钥,并将 发送给云服务器S;
(3)云服务器S选择一个随机数xs∈RZp‑1作为其密钥sks并发送 给参与者,公钥私钥sk=(sks,skp);
k
(4)加密过程:c1=g,
(5)解密过程:云服务器首先计算 参与者下载 并计算· 每个参与者Pi基于自身的数据集DBi以及当前权(i) (i)
重参数向量W运行深度学习算法,获得ΔW ,其中,ΔW 是指基于数据集DBi的神经网络参(i)
数的梯度向量, 表示向量ΔW 的第j个参数,根据梯度向量的可加性,基于聚合数据集 的梯度向量表示为: 为了满足参(i)
数隐私性,每个参与者在将其上传到云服务器之前需要对Δw 进行加密处理,同时,必须确保云服务器在密文上计算所有梯度向量的总和 ElGamal加密满足乘同态的,需要的是加法同态加密,因此,Pi首先计算 然后利用ElGamal对其进行加密,获得
· 云服务器收到参与者发送的梯度参数后,利用ElGamal加密的同态性计算出梯度向量和,并利用其私钥sks对结果进行一次解密操作,具体的计算过程描述如下,服务器首先计算:然后,利用其私钥sks解密得到:· 参与者收到服务器计算的 后,利用其私钥skp,计算:
ΔW
从g 中检索最终的梯度向量Δw,参与者必须解决离散对数问题,对于离散对数问题最有效的方法是Pollard的rho算法,其计算复杂度为 其中p是群的阶。
2.如权利要求1所述的云环境下保护隐私的多方深度学习计算代理方法,其特征是,具体步骤细化如下:(1)所有参与者初始化神经网络的所有参数,并将ElGamal加密的密钥分发给云服务器和所有参与者;(2)每个参与者在本地运行深度学习算法,计算基于单个数据集的所有权重参数的梯度向量;(3)所有参与者加密自己的梯度向量,并将密文上传到云服务器;云服务器根据参与者上传的密文数据,计算得出加密的基于聚合数据集的梯度向量,并使用自身的密钥对其进行解密;(4)每个参与者从云服务器下载聚合梯度向量,进一步解密得到最终的梯度向量,每个参与者进入步骤(2)进行下一次迭代,直到学习过程达到最佳。
3.如权利要求1所述的云环境下保护隐私的多方深度学习计算代理方法,其特征是,聚合签名相关参数设置如下:系统参数分别包括 其生成元分别是g1,g2,双线性映射以及哈希函数 进一步地:
k k
· 输入安全参数1 ,Init(l )输出pkenc,skenc,pksig,sksig,w0,其中(pkenc,skenc)是ElGamal加密系统的密钥对,skenc被拆分为和 分配方法和前述协议一致, 是服务器的密钥, 是参与者的密钥,是参与者的Pi签名密钥对,其中, w0是初始参数向量;
· 每个参与者Pi基于自身
(i)
的数据集DBi以及当前权重参数向量W运行深度学习算法,获得ΔW ,并计算对应的密文(i) (i)
同时,Pi计算梯度参数ΔW 的签名σ(ΔW ):· 各参与方从云服务器获取到梯度向量 解密得到梯度向量ΔW,并且,利用聚合签名对计算结果进行验证,验证过程如下:(1)
(2)
(3)计算下述等式是否成立来验证服务器返回结果的正确性