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

一种联邦学习的聚合验证方法与流程

2022-06-22 15:09:18 来源:中国专利 TAG:


1.本发明属于信息加密技术领域,具体涉及一种联邦学习的聚合验证方法。


背景技术:

2.联邦学习是一种分布式机器学习框架,其允许参与其中的客户端不直接上传私有的训练数据,而是上传模型参数来共同训练模型。这样可以有效保护客户端原始数据的隐私。但现有研究表明,攻击者仍可以通过上传的模型相关参数来反推出原始的训练数据。
3.为了保护客户端私有参数的安全性,目前通常采用可验证的安全聚合协议对交互的数据进行处理,从而在不泄露单个客户端的私有参数的情况下,使得服务器获得全局模型参数。现有的可验证的安全聚合协议采用承诺方案来保证在服务器聚合的一致性,这导致安全聚合协议在聚合阶段和验证阶段需要分享额外打开承诺的相关消息,进而增加了通信量和交互轮数,降低了聚合速率。


技术实现要素:

4.为了解决现有技术存在的信息交互次数多、聚合效率低的问题,本发明提供了一种联邦学习的聚合验证方法,其具有聚合验证交互次数少、聚合验证效率更高等特点
5.根据本发明具体实施方式提供的一种联邦学习的聚合验证方法,包括:
6.每个客户端将生成的两个公私钥对中的两个公钥发送到服务器中,所述服务器将接收到的公钥集合向和所述服务器连接的各所述客户端进行广播,由收到所述公钥集合的客户端构成第一客户端集合;
7.对所述第一客户端集合中任一客户端:在秘密份额中加入该客户端变色龙哈希函数的随机数的秘密份额,各所述客户端将生成的各秘密份额密文发送到所述服务器,所述服务器将接收到的所述秘密份额密文集合向和所述服务器连接的各所述客户端进行广播,由收到所述秘密份额密文集合的客户端构成第二客户端集合;
8.对所述第二客户端集合中任一客户端:将该客户端的变色龙哈希函数的公共参数、随机数和模型参数作为变色龙哈希函数的输入,生成所述模型参数的同态变色龙哈希值;
9.所述服务器将接收到的模型参数密文与所述同态变色龙哈希值的集合向和所述服务器连接的各所述客户端进行广播,由收到所述模型参数密文与所述同态变色龙哈希值的集合的客户端构成第三客户端集合;
10.对所述第三客户端集合中任一客户端:对接收到的其他客户端的秘密份额密文解密,将解密的秘密份额发送至所述服务器,由发送完成后仍与所述服务器连接的客户端构成第四客户端集合;
11.在所述服务器中对属于所述第二客户端集合但不属于第三客户端集合的客户端进行秘密份额的重构和解密;
12.基于解密得到的随机数和其他秘密值对所述第三客户端集合中各客户端的模型
参数进行聚合,得到聚合结果;
13.将所述聚合结果和所述第三客户端集合中各客户端的随机数发送至所述第四客户端集合中的各客户端;
14.对所述第四客户端集合中任一客户端:以该客户端的变色龙哈希函数的公共参数、所述聚合结果以及所述第三客户端集合中各客户端的随机数的和值作为变色龙哈希函数的输入,生成所述聚合结果的同态变色龙哈希值,并将所述聚合结果的同态变色龙哈希值和所述第三客户端集合中各客户端的同态变色龙哈希值的乘积进行比较。
15.进一步地,所述联邦学习的聚合验证方法还包括:
16.对所述服务器:若构成当前待广播数据集合或所述第四客户端集合的客户端的数量小于预设秘密分享阈值,则不对所述待广播数据集合进行广播,所述待广播数据集合为所述公钥集合、所述秘密份额密文集合和所述模型参数密文与所述同态变色龙哈希值集合中的任一个。
17.进一步地,所述联邦学习的聚合验证方法还包括:
18.对任一客户端集合中的任一客户端:若构成当前接收到的数据集合的客户端数量小于所述预设秘密分享阈值,则中止与所述服务器间的数据传输,所述接收到的数据集合为所述公钥集合、所述秘密份额密文集合和所述模型参数密文与所述同态变色龙哈希值集合中的任一个。
19.进一步地,所述对所述第一客户端集合中任一客户端:在秘密份额中加入该客户端变色龙哈希函数的随机数的秘密份额,各所述客户端将生成的各秘密份额密文发送到所述服务器,包括:
20.基于该客户端的第一私钥和每个其他客户端的第一公钥计算所述客户端分别与所述其他客户端间的第一对称密钥,基于各所述第一对称密钥分别对与每个所述其他客户端间的秘密份额进行加密生成秘密份额密文:
21.k
i1,j1

ka.agree(sk
i1
,pk
j1
)
22.其中k
i1,j1
为所述第一对称密钥,i1和j1为所述第一客户端集合中的客户端标识,ka.agree()为密钥协商算法,sk
i1
为所述客户端的第一私钥,pk
j1
为所述其他客户端的第一公钥;
23.通过
[0024][0025]
得到所述秘密份额密文,其中ct
i1,j1
为所述秘密份额密文,se.enc()为密文加密算法,k
i1,j1
为所述第一对称密钥,i1和j1为所述第一客户端集合中的客户端标识,为所述客户端的第二私钥的秘密份额,为第一种子参数的秘密份额,为所述客户端变色龙哈希函数的随机数的秘密份额。
[0026]
进一步地,所述模型参数密文的生成过程,包括:对所述第二客户端集合中任一客户端:基于该客户端的第二私钥和每个其他客户端的第二公钥计算所述客户端分别与所述其他客户端间的第二对称密钥,将所述第二对称密钥作为所述客户端的伪随机生成器的第二种子参数,基于所述客户端的所述第一种子参数和所述第二种子参数对所述客户端的模
型参数进行加密生成模型参数密文:
[0027]
mak
i2,j2

ka.agree(msk
i2
,mpk
j2
)
[0028]
其中mak
i2,j2
为所述第二对称密钥,i2和j2为所述第二客户端集合中的客户端标识,ka.agree()为密钥协商算法,msk
i2
为所述客户端的第二私钥,mpk
j2
为所述其他客户端的第二公钥;
[0029]
通过
[0030][0031]
得到所述模型参数密文,其中msx
i2
为所述模型参数密文,x
i2
为所述客户端的模型参数,prg(b
i2
)为第一伪随机比特串,prg()为所述伪随机生成器,b
i2
为所述客户端的第一种子参数,u2为所述第二客户端集合,prg(mak
i2,j2
)为第二伪随机比特串,mak
i2,j2
为所述客户端的第二种子参数,mod为模运算,b为模型参数的维度,
[0032]
进一步地,所述将所述客户端的变色龙哈希函数的公共参数、所述随机数和所述模型参数作为变色龙哈希函数的输入,生成所述模型参数的同态变色龙哈希值,包括:通过
[0033]
ch
i2

ch.hash(chpp,x
i2
,r
i2
)
[0034]
得到所述模型参数的同态变色龙哈希值,其中ch
i2
为所述模型参数的同态变色龙哈希值,ch.hash()为变色龙哈希函数,chpp为变色龙哈希函数的公共参数,x
i2
为所述客户端的模型参数,r
i2
为所述客户端的随机数。
[0035]
进一步地,所述在所述服务器中对属于所述第二客户端集合但不属于第三客户端集合的客户端进行秘密份额的重构和解密,包括:
[0036]
对属于所述第二客户端集合但不属于第三客户端集合的客户端进行第二私钥的秘密份额的重构和解密,得到所述客户端的第二对称密钥:
[0037][0038]
其中mskj为所述第二私钥,j为属于所述第二客户端集合但不属于第三客户端集合的客户端的标识,ss.recon()为秘密重构算法,为所述第二私钥的秘密份额,为u4为所述第四客户端集合,t为所述秘密重构算法的预设秘密分享阈值;
[0039]
通过
[0040]
mak
j,i3

ka.agree(mskj,mpk
i3
)
[0041]
得到所述客户端的第二对称密钥,其中mak
j,i3
为所述客户端的第二对称密钥,ka.agree()为密钥协商算法,mskj为所述第二私钥,mpk
i3
为所述第三客户端集合中客户端的第二公钥,i3为所述第三客户端集合中的客户端的标识;
[0042]
对所述第三客户端集合中客户端的第一种子参数的秘密份额和随机数的秘密份额分别进行重构,得到所述客户端的第一种子参数和随机数:
[0043]
[0044]
其中b
i3
为所述客户端的第一种子参数,ss.recon()为秘密重构算法,为所述客户端的第一种子参数的秘密份额,i3为所述第三客户端集合中的客户端的标识,i4为所述第四客户端集合中的客户端的标识,u4为所述第四客户端集合,t为所述秘密重构算法的预设秘密分享阈值。
[0045]
进一步地,所述基于解密得到的随机数和其他秘密值对所述第三客户端集合中各客户端的模型参数进行聚合,得到聚合结果,包括:
[0046]
基于解密得到的所述客户端的第二对称密钥、所述客户端的第一种子参数和随机数对所述第三客户端集合中各客户端的模型参数进行聚合,得到聚合结果:
[0047][0048]
其中为y所述聚合结果,x
i3
为所述第三客户端集合中客户端的模型参数,i3为所述第三客户端集合中的客户端的标识,u3为所述第三客户端集合,msx
i3
为所述第三客户端集合中客户端的模型参数密文,prg(b
i3
)为所述第三客户端集合中第一伪随机比特串,prg(mak
j,i3
)为属于所述第二客户端集合但不属于第三客户端集合的客户端的第二伪随机比特串,
[0049]
进一步地,对所述第四客户端集合中任一客户端:以该客户端的变色龙哈希函数的公共参数、所述聚合结果以及所述第三客户端集合中各客户端的随机数的和值作为变色龙哈希函数的输入,生成所述聚合结果的同态变色龙哈希值,并将所述聚合结果的同态变色龙哈希值和所述第三客户端集合中各客户端的同态变色龙哈希值的乘积进行比较,包括:通过
[0050][0051]
进行比较,其中为所述聚合结果的同态变色龙哈希值,为所述第三客户端集合中各客户端的同态变色龙哈希值的乘积。
[0052]
进一步地,所述联邦学习的聚合验证方法还包括:
[0053]
对所述第二客户端集合中任一客户端:基于该客户端的第一对称密钥对接收到的其他客户端与所述客户端的秘密份额密文进行解密,得到两个客户端标识,若解密得到的两个客户端标识与所述客户端自身的标识以及所述客户端自身的标识不对应相同,则中止秘密份额密文的解密。
[0054]
本发明所提供的联邦学习的聚合验证方法,可以在密钥分享阶段生成的秘密份额密文中加入客户端变色龙哈希函数随机数的秘密份额,在模型参数密文的生成阶段中由随机数、变色龙哈希函数的公共参数和模型参数作为变色龙哈希函数的输入,生成模型参数的同态变色龙哈希值。在服务器的解密阶段服务器对客户端解密出的秘密份额中随机数的秘密份额进行解密得到相应的随机数。在验证阶段客户端将服务器解密得到的随机数、模
型参数的聚合结果和变色龙哈希函数的公共参数作为输入得到聚合结果的同态变色龙哈希值,将参与聚合过程的各客户端的模型参数的同态变色龙哈希值相乘后,与聚合结果的同态变色龙哈希值进行比较,根据变色龙哈希函数的同态性对聚合结果进行验证。与现有的验证方案相比较,并不需要再分享额外打开承诺的相关消息,减少了信息交互轮数同时提高了聚合速率。
附图说明
[0055]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0056]
图1是根据一示例性实施例提供的联邦学习的聚合验证方法的流程图;
[0057]
图2是根据一示例性实施例提供的联邦学习的聚合验证方法的具体交互的流程图。
具体实施方式
[0058]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参照图1所示,本发明的实施例提供了一种联邦学习的聚合验证方法,该方法可以包括以下步骤:
[0059]
101、每个客户端将生成的两个公私钥对中的两个公钥发送到服务器中。
[0060]
102、服务器将接收到的公钥集合向和服务器连接的各所述客户端进行广播,由收到公钥集合的客户端构成第一客户端集合。对第一客户端集合中任一客户端:
[0061]
103、在秘密份额中加入该客户端变色龙哈希函数的随机数的秘密份额,各客户端将生成的各秘密份额密文发送到服务器。
[0062]
104、服务器将接收到的秘密份额密文集合向和服务器连接的各客户端进行广播,由收到秘密份额密文集合的客户端构成第二客户端集合。对第二客户端集合中任一客户端:
[0063]
105、将该客户端的变色龙哈希函数的公共参数、随机数和模型参数作为变色龙哈希函数的输入,生成模型参数的同态变色龙哈希值。
[0064]
106、服务器将接收到的模型参数密文与同态变色龙哈希值的集合向和服务器连接的各客户端进行广播,由收到模型参数密文与同态变色龙哈希值的集合的客户端构成第三客户端集合。对第三客户端集合中任一客户端:
[0065]
107、对接收到的其他客户端的秘密份额密文解密,将解密的秘密份额发送至服务器,由发送完成后仍与服务器连接的客户端构成第四客户端集合。
[0066]
108、在服务器中对属于第二客户端集合但不属于第三客户端集合的客户端进行秘密份额的重构和解密;
[0067]
109、基于解密得到的随机数和其他秘密值对第三客户端集合中各客户端的模型
参数进行聚合,得到聚合结果;
[0068]
1010、将聚合结果和第三客户端集合中各客户端的随机数发送至第四客户端集合中的各客户端。对第四客户端集合中任一客户端:
[0069]
1011、以该客户端的变色龙哈希函数的公共参数、聚合结果以及第三客户端集合中各客户端的随机数的和值作为变色龙哈希函数的输入,生成聚合结果的同态变色龙哈希值,并将聚合结果的同态变色龙哈希值和第三客户端集合中各客户端的同态变色龙哈希值的乘积进行比较。
[0070]
具体的,在进行聚合验证的过程中,需要用到的密码算法包括:
[0071]
对称加密算法(se.kgen,se.enc,se.dec):
[0072]
se.kgen(1
κ
)

k:以安全参数1
κ
为输入,输出对称密钥k;。
[0073]
se.enc(k,m)

ct:以对称密钥k和消息m作为输入,产生密文ct;
[0074]
se.dec(k

,ct)
→m′
:以对称密钥k’和密文消息ct作为输入,输出消息m

满足ct=se.enc(k

,m

)。
[0075]
密钥协商协议(ka.param,ka.kgen,ka.agree):
[0076]
ka.param(1
κ
)

kapp:以安全参数1
κ
为输入,输出公共参数kapp;
[0077]
ka.kgen(kapp)

(pk,sk):该算法为用户生成它的公私钥对(pk,sk);
[0078]
ka.agree(ski,pkj)
→ki,j
:该算法以用户i的私钥ski和用户j的公钥pkj为输入,输出一个协商密钥(私钥)k
i,j

[0079]
密钥协商协议是为了用户i和用户j产生相同的密钥k
i,j
,也就是
[0080]ki,j
=ka.agree(ski,pkj)=ka.agree(skj,pki)=k
j,i
[0081]
在本发明中经密钥协商算法协商出的密钥可作为客户端i和客户端j之间产生的会话密钥以及客户端i和客户端j成对产生的mask值。
[0082]
秘密分享方案(ss.share,ss.recon):
[0083]
秘密分享算法以秘密值s和阈值t以及用户集合u作为输入,输出对于每个用户i∈u的秘密份额其中|u|=n。
[0084]
用户集合当|v|≥t秘密重构算法可以恢复秘密值s,否则输出为空(即

)。
[0085]
伪随机生成器prg可以将一个短的随机串x扩张成一个长的伪随机比特串prg(x)。
[0086]
变色龙哈希算法(ch.gen,ch.hash,ch.hashcheck,ch.adapt):
[0087]
ch.gen(1
κ
)

(chpp,td):该算法以安全参数κ为输入,输出公共参数chpp和陷门td。
[0088]
ch.hash(chpp,m,r)

hash:以公共参数chpp,待哈希的消息m和随机数r为输入,输出hash。
[0089]
ch.hashcheck(chpp,m,r,hash)

0/1:如果验证通过该算法输出1,如果未通过验证,则输出0。
[0090]
ch.adapt(td,m,r,hash,m

)
→r′
:该算法以陷门td,哈希值hash,原消息m和原随机数r和新的消息m’,可以输出一个新的随机数r’使得ch.hashcheck(chpp,m

,r

,hash)=1。
[0091]
与一般性的哈希函数相比,除了需要满足抗碰撞性外,还需要满足变色龙性质,也就是对于任意给定的m和m’,对于任意的r可以找到
[0092]r’←
ch.adapt(td,m,r,hash,m

)满足
[0093]
ch.hash(chpp,m,r)=ch.hash(chpp,m

,r

)。
[0094]
以及满足同态性,也就是
[0095]
ch.hash(chpp,m1 m2,r1 r2)=ch.hash(chpp,m1,r1)
·
ch.hash(chpp,m2,r2)。
[0096]
基于上述加密算法,参照图2所示的聚合验证的流程,在进行聚合前首先进行公共参数的生成,初始化一个安全参数κ,输入向量其中r为模数,d为向量的维度;聚合值其中b≥n
·
r,n为每轮参与训练的客户端的数量。
[0097]
生成密钥协商公共参数ka.param(1
κ
)

kapp。
[0098]
运行变色龙哈希公共参数生成算法运ch.gen(1
κ
)

chpp。
[0099]
在密钥生成及分发阶段:
[0100]
对于客户端i:根据kapp分别生成两对公私钥对(pki,ski)

ka.kgen(kapp)和(mpki,mski)

ka.kgen(kapp),将pki和mpki发送给服务器。
[0101]
对于服务器:将接收到消息的客户端集合记为u1即第一客户端集合,将广播到集合u1中的客户端。
[0102]
在密钥分享阶段:
[0103]
对于客户端i:接收到来自服务器端的消息为生成伪随机生成器prg的种子,随机抽取bi。为计算同态变色龙哈希值,随机抽取ri。通过秘密分享算法生成mski,bi和ri的秘密份额。计算与客户端j∈u1\{i}之间的对称密钥k
i,j

ka.agree(ski,pkj),并计算对应的秘密份额密文),并计算对应的秘密份额密文将密文ct
i,j
发送给服务器,并在本地进行存储。
[0104]
对于服务器:将接收到消息的客户端集合记为u2即第二客户端集合,将接收到的ct
i,j
对应发送给集合u2中的客户端。
[0105]
在双重mask密文和同态变色龙哈希值收集阶段:
[0106]
对于客户端i:计算对称密钥mak
i,j

ka.agree(mski,mpkj),将密钥mak
i,j
作为伪随机生成器prg的种子,然后生成模型参数密文机生成器prg的种子,然后生成模型参数密文其中是指模运算。计算模型参数的同态变色龙哈希值chi。将生成的msxi和chi发送给服务器。
[0107]
对于服务器:将接收到消息的客户端集合记为u3即第三客户端集合,将接收到的广播至集合u3中的客户端。
[0108]
在解密阶段:
[0109]
对于客户端i:根据对称密钥k
i,j

ka.agree(ski,pkj),对其接收到的进行解密和进行模型参数密文的解密,将第三客户端集合中的bj和rj的秘密份额以及从第二客户端集合中掉线的集合中的mskj的秘密份额发送至服务器中。
[0110]
对于服务器:将接收到消息的客户端集合记为u4,进行秘密的重构得到聚合值并发送至第四客户端集合中的客户端中。
[0111]
最后在客户端中基于接收到y以及验证验证是否成立。
[0112]
整个过程在密钥分享阶段生成的秘密份额密文中加入客户端变色龙哈希函数随机数的秘密份额,在模型参数密文的生成阶段中由随机数、变色龙哈希函数的公共参数和模型参数作为变色龙哈希函数的输入,生成模型参数的同态变色龙哈希值。在服务器的解密阶段服务器对客户端解密出的秘密份额中随机数的秘密份额进行解密得到相应的随机数。在验证阶段客户端将服务器解密得到的随机数、模型参数的聚合结果和变色龙哈希函数的公共参数作为输入得到聚合结果的同态变色龙哈希值,将参与聚合过程的各客户端的模型参数的同态变色龙哈希值相乘后,与聚合结果的同态变色龙哈希值进行比较,根据变色龙哈希函数的同态性对聚合结果进行验证。与现有的验证方案相比较,并不需要再分享额外打开承诺的相关消息,减少了信息交互轮数同时提高了聚合速率。
[0113]
在本发明的一些具体实施例中,为了在聚合过程中保护诚实参与方的私有模型参数(如梯度)的安全性,防止被上述敌手推测出。以及协议可以容忍部分客户端中途掉线,即部分客户端中途掉线,不影响联邦学习的正常运行。
[0114]
对服务器:若构成当前待广播数据集合或第四客户端集合的客户端的数量小于预设秘密分享阈值,则不对待广播数据集合进行广播,待广播数据集合为公钥集合、秘密份额密文集合和模型参数密文与同态变色龙哈希值集合中的任一个。
[0115]
对任一客户端集合中的任一客户端:若构成当前接收到的数据集合的客户端数量小于预设秘密分享阈值,则中止与服务器间的数据传输,接收到的数据集合为公钥集合、秘密份额密文集合和模型参数密文与同态变色龙哈希值集合中的任一个。以及
[0116]
对于第二客户端集合中任一客户端:基于该客户端的第一对称密钥对接收到的其他客户端与客户端的秘密份额密文进行解密,得到两个客户端标识,若解密得到的两个客户端标识与客户端自身的标识以及客户端自身的标识不对应相同,则中止秘密份额密文的解密。
[0117]
这样能够保护诚实参与方的私有模型参数(如梯度)的安全性,防止被上述敌手推测出。还能保证聚合完整性让敌手无法让一个诚实的客户端接受一个伪造的聚合结果。并且在聚合过程中可以容忍部分客户端中途掉线,即部分客户端中途掉线,不影响联邦学习的正常运行。
[0118]
在经过完善后一个完整的聚合验证过程如下:在上述共公共参数生成阶段中加入秘密分享阈值t
[0119]
在密钥生成及分发阶段:
[0120]
对于客户端i:kapp分别生成两对公私钥对(pki,ski)

ka.kgen(kapp)和(mpki,mski)

ka.kgen(kapp),将pki和mpki发送给服务器。
[0121]
对于服务器:将接收到消息的客户端集合记为u1,如果|u1|<t,那么中止后续的处理步骤。广播到集合u1中的客户端。
[0122]
在密钥分享阶段:
[0123]
对客户端i1:接收到来自服务器端的消息首先验证是否|u1|≥t和是否所有的公钥均不同,防止服务器伪造客户端数据;否则中止后续的处理步骤。
[0124]
随机抽取bi生成伪随机生成器prg的种子,为计算变色龙哈希值,随机抽取r
i1
。通过秘密分享算法生成msk
i1
,b
i1
和r
i1
的秘密份额。其中的秘密份额。其中的秘密份额。其中计算与客户端j1∈u1\{i1}之间的对称密钥
[0125]ki1,j1

ka.agree(sk
i1
,pk
j1
)
[0126]
其中k
i1,j1
为第一对称密钥,i1和j1为第一客户端集合中的客户端标识,ka.agree()为密钥协商算法,sk
i1
为客户端的第一私钥,pk
j1
为其他客户端的第一公钥;
[0127]
通过
[0128][0129]
得到秘密份额密文,其中ct
i1,j1
为所述秘密份额密文,se.enc()为密文加密算法,k
i1,j1
为第一对称密钥,i1和j1为第一客户端集合中的客户端标识,为客户端的第二私钥的秘密份额,为第一种子参数的秘密份额,为客户端变色龙哈希函数的随机数的秘密份额。
[0130]
将密文ct
i1,j1
发送给服务器,并在本地进行存储。
[0131]
对于服务器将接收到消息的客户端集合记为u2,如果|u2|<t,那么中止后续的处理过程。将接收到的ct
i1,j1
对应发送给集合u2中的客户端。
[0132]
在双重mask密文和同态变色龙哈希值收集阶段:
[0133]
对于客户端i2:
[0134]
首先对于接收到来自服务器端的消息验证是否|u2|≥t。如果|u2|<t,则终止后续的处理过程。在验证通过后计算对称密钥
[0135]
mak
i2,j2

ka.agree(msk
i2
,mpk
j2
)
[0136]
其中mak
i2,j2
为第二对称密钥,i2和j2为第二客户端集合中的客户端标识,ka.agree()为密钥协商算法,msk
i2
为客户端的第二私钥,mpk
j2
为其他客户端的第二公钥;
[0137]
通过
[0138][0139]
得到模型参数密文,其中msx
i2
为模型参数密文,x
i2
为客户端的模型参数,prg(b
i2
)为第一伪随机比特串,prg()为所述伪随机生成器,b
i2
为客户端的第一种子参数,u2为第二客户端集合,prg(mak
i2,j2
)为第二伪随机比特串,mak
i2,j2
为客户端的第二种子参数,mod为模运算,b为模型参数的维度,
[0140]
通过
[0141]
ch
i2

ch.hash(chpp,x
i2
,r
i2
)
[0142]
得到模型参数的同态变色龙哈希值,其中ch
i2
为模型参数的同态变色龙哈希值,ch.hash()为变色龙哈希函数,chpp为变色龙哈希函数的公共参数,x
i2
为客户端的模型参数,r
i2
为客户端的随机数。如果上述过程中的任意操作失败,那么直接中止后续的操作,否则将生成的msx
i2
和ch
i2
发送给服务器。
[0143]
对于服务器:
[0144]
将接收到消息的客户端集合记为u3,如果|u3|<t,那么中止后续的处理流程,在验证通过后将msx
i2
和ch
i2
的集合发送至u3中的客户端。
[0145]
在解密阶段:
[0146]
对于客户端i3:
[0147]
查看收到的客户端集合u3的大小是否大于等于t,如果小于t那么直接中止后续的处理流程。在验证通过后每个客户端可根据可以根据对称密钥k
i,j

ka.agree(ski,pkj)对接收到的进行解密得到验证是否i2=i

且j2=j

,若不满足,则直接中止后续的处理流程。在验证通过后将解密得到的相关秘密份额发送给服务器。
[0148]
对于服务器:
[0149]
将接收到消息的客户端集合记为u4,如果|u4|<t,那么中止后续的处理流程。在验证通过后对属于第二客户端集合但不属于第三客户端集合的客户端进行第二私钥的秘密份额的重构和解密,得到客户端的第二对称密钥:
[0150][0151]
其中mskj为第二私钥,j为属于第二客户端集合但不属于第三客户端集合的客户端的标识,ss.recon()为秘密重构算法,为第二私钥的秘密份额,为u4为第四客户端集合,t为秘密重构算法的预设秘密分享阈值。
[0152]
通过
[0153]
mak
j,i3

ka.agree(mskj,mpk
i3
)
[0154]
得到客户端的第二对称密钥,其中mak
j,i3
为客户端的第二对称密钥,ka.agree()为密钥协商算法,mskj为第二私钥,mpk
i3
为第三客户端集合中客户端的第二公钥,i3为第三客户端集合中的客户端的标识。
[0155]
对第三客户端集合中客户端的第一种子参数的秘密份额和随机数的秘密份额分别进行重构,得到客户端的第一种子参数和随机数:
[0156][0157]
其中b
i3
为客户端的第一种子参数,ss.recon()为秘密重构算法,为客户端的第一种子参数的秘密份额,i3为第三客户端集合中的客户端的标识,i4为第四客户端集合中的客户端的标识,u4为第四客户端集合,t为秘密重构算法的预设秘密分享阈值。
[0158]
对于第三客户端集合中的每个客户端,使用秘密分享算法重构出秘密:
[0159][0160]
基于解密得到的客户端的第二对称密钥、客户端的第一种子参数和随机数对第三客户端集合中各客户端的模型参数进行聚合,得到聚合结果:
[0161][0162]
其中为y聚合结果,x
i3
为第三客户端集合中客户端的模型参数,i3为第三客户端集合中的客户端的标识,u3为第三客户端集合,msx
i3
为第三客户端集合中客户端的模型参数密文,prg(b
i3
)为第三客户端集合中第一伪随机比特串,prg(mak
j,i3
)为属于第二客户端集合但不属于第三客户端集合的客户端的第二伪随机比特串,
[0163]
对第四客户端集合中任一客户端:通过
[0164][0165]
进行验证比较,其中为聚合结果的同态变色龙哈希值,为第三客户端集合中各客户端的同态变色龙哈希值的乘积。在验证通过后说明聚合过程可靠,聚合得到的模型可以进行使用。
[0166]
在本发明的具体实现过程中,可采用基于离散对数假设的同态变色龙哈希算法:
[0167]
其中为一个阶为p的循环群,g1,g2,

,gd,h为群元素,陷门αi满足其中i∈[d]。
[0168]
其中向量m=(mi,m2,

,md),
[0169][0170]
如果则输出1,否则输出0。
[0171][0172]
该变色龙哈希函数能够满足正确性、同态性和抗碰撞性。
[0173]
密钥协商协议(ka.param,ka.kgen,ka.agree)可采用为:
[0174]
ka.param(1
κ
)

kapp,其中其中,为一个生成元为g的p阶循环群,h为一个哈希算法,可采用sha-256、sm3等。
[0175]
[0176]
ka.agree(ski,pkj)
→ki,j
,其中ski=xi为用户i的私钥,为用户j的公钥,用户i,j协商密钥
[0177]
伪随机生成器prg可以采用aes-ctr等。
[0178]
对称加密算法可使用aes或国密算法sm4等。
[0179]
该聚合过程的可验证性可根据变色龙哈希算法的同态性和抗碰撞性来进行。例如:如果存在敌手可以伪造聚合结果使得某个诚实的客户端i接受验证通过,也就是
[0180][0181]
由于chj均为客户端诚实所产生的,也就是chj=ch.hash(chpp,xj,rj),根据变色龙哈希函数的同态性,可知
[0182][0183]
将得到和均满足变色龙哈希值为h
*
,这与变色龙哈希的抗碰撞性相矛盾,也就证明了聚合结果的可验证性。
[0184]
通过采用变色龙哈希函数,避免使用承诺方案从而在验证阶段,只需一轮即可,避免了承诺打开的额外通信轮数。同时基于离散对数构建的哈希算法输出为一个群元素与输入参数m的长度无关。这样增加了可验证性,同时保证了联邦学习的每轮训练中额外增加的通信量o(n),与模型参数向量d的大小无关。
[0185]
本发明上述实施例所提供的联邦学习的聚合验证方法,通过采用变色龙哈希函数,避免使用承诺方案从而在验证阶段,只需一轮即可避免了承诺打开的额外通信轮数,同时减少协议交互的通信量,提高了验证的效率。
[0186]
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0187]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0188]
本发明各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
[0189]
本发明各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
[0190]
本发明所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0191]
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
[0192]
另外,在本发明各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
[0193]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0194]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0195]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0196]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献