一种数据隐私保护的无服务器异步联邦学习方法

文档序号:29710296发布日期:2022-04-16 17:08阅读:131来源:国知局
一种数据隐私保护的无服务器异步联邦学习方法

1.本发明涉及信息安全和联邦学习技术领域,关于数据隐私保护的无服务器异步联邦学习问题,涉及广播加密、群密钥协商、联邦学习,具体涉及到扩展的动态贡献广播加密,差分隐私数据保护和异步联邦学习的一种数据隐私保护的无服务器异步联邦学习方法。


背景技术:

2.近年来,机器学习在各个领域发挥着重要作用。传统的机器学习假设训练数据集中由一个组织/节点来训练一个机器学习模型。随着车联网、物联网、医疗等一系列新应用的出现,越来越多的数据由不同的组织生成,由于安全、隐私、经济或监管的因素,在许多情况下,打破数据集之间的壁垒是非常困难的,甚至是不可能的。因此,越来越需要将模型参数的优化分散到多个组织/节点上进行机器学习模型的训练。
3.联邦学习是一种流行的技术,用于打破数据集之间的壁垒,在保护数据隐私的同时,实现在多个分散的数据集上进行机器学习模型训练。根据模型更新方法的不同,联邦学习可分为同步更新方法和异步更新方法。同步联邦学习面临着几个挑战,第一个是单点故障,第二个是高时延,最后同步联邦学习通常不适合动态群体,因为在训练过程中,客户可能会加入和离开群体,异步联邦学习可能需要或不需要服务器,更适合难以保持同步通信的场景。
4.联邦学习在实际应用中面临数据隐私和模型准确性的挑战。数据隐私在联邦学习中尤为重要,通常基于代价高昂的加密方案或差分隐私来解决。第一类方法通常基于秘密共享、同态加密等,通信和计算成本较高。第二类方法通常通过在训练过程中注入噪声来实现数据隐私。与第一种方案相比,基于差分隐私的方案更适合于无服务器异步联邦学习,因为可以有效地处理组动态问题,而且不涉及代价高昂的密码方案,然而如果在原始更新中添加太多的噪声,模型的准确性会很低,而如果添加太少的噪声,则对模型更新的隐私保护将不够。这就需要在模型准确性和数据隐私之间进行权衡。一个有吸引力的方法是使用安全通道来保证受干扰模型更新的保密性。但现有的解决方案只提到了对安全通道的需求,而没有讨论如何建立这样的通道。所以,需要更有效的方法来提高无服务器异步联邦学习模型的准确性。


技术实现要素:

5.本发明主要讨论无服务器异步联邦学习。在这种设置下,客户端可以在没有服务器的情况下直接交换更新模型,也可以在没有全局同步的情况下自主聚合收到的模型。因此,消除了单点故障和高时延的挑战,而且允许客户在学习过程中加入或离开。
6.本发明的目的在于:为了解决无服务器异步联邦学习中的数据隐私和模型准确性问题,提出了一种有效的提高数据隐私和模型准确性的无服务器异步联邦学习方案。
7.实现本发明目的的具体方案是:
8.一种数据隐私保护的无服务器异步联邦学习方法,包括如下实体:客户端,生成系
统参数和颁发证书的机构即可信机构ca,所述的方法包括下列步骤:
9.步骤1:全局设置
10.ca根据初始的安全参数λ运行算法生成系统参数para;ca选择一个签名方案σ;生成一个主公私钥对(msk,mpk)对应于签名方案σ;签名方案σ用于建立认证通道,并用于ca为系统中的节点颁发证书;
11.步骤2:注册
12.节点生成公私钥对ca为该节点生成使用其主私钥msk签名的证书;
13.步骤3:群组建立
14.客户端被划分为不同的群组;客户端初始化群组;每个客户端发布的成员消息必须使用签名方案σ签名;支持组加入退出,一个或多个客户端可以使用群组加入或群组退出协议加入或离开一个群组;
15.步骤4:训练与聚合阶段
16.对于具有初始模型参数向量或最优模型参数向量的客户端,基于本地数据集训练生成模型更新,然后将噪声添加到模型更新中获得干扰后的模型更新,对干扰模型加密并选择其它客户端作为目标子集交换模型;客户端解密收到的模型更新,对模型进行聚合和验证得到最优的模型参数向量;其中:
17.所述步骤1具体包括:
18.输入一个安全参数λ,ca根据λ选取阶为素数q的循环乘法群g1,g2,g
t
,存在双线性映射双线性映射满足以下性质:
19.①
双线性:g1和g2分别为群g1,g2中的元素,是阶为q的正整数集合,a和b为中元素,对任意的g1∈g1,g2∈g2,均有成立;
20.②
非退化性:存在g1∈g1,g2∈g2满足不等于1
gt

21.②
可计算性:存在有效算法,对于均可计算
22.选择g1∈g1,g2∈g2,q,b1,...,bn∈g1其中q,b1,...,bn均为群g1中的元素,并且设置集合b={b1,...,bn},正整数n是最大的组的大小;ca生成t个形为(r
γ
,p
γ
,f
γ
)的元组,每一个都对应一个协商的组的大小;元组(r
γ
,p
γ
,f
γ
)对应的组大小是正整数t,则系统参数的生成如下:
23.1)任取一个整数i,且1≤i≤t,随机选取正整数1)任取一个整数i,且1≤i≤t,随机选取正整数是阶为q的正整数集合,计算中间值
24.2)任取两个整数i,j,且1≤i,j≤t,i≠j,计算中间值
25.3)令r
γ
={r

}
i∈{1,...,t}
,p
γ
={p

}
i∈{1,...,t}

26.4)令f

={f
ijγ
}
{1≤i≤t,i≠j}
,f
γ
={f

}
{1≤j≤t}

27.5)ca公开系统参数:
[0028][0029]
ca选择一个签名方案σ,并生成一个主公私钥对(msk,mpk)与签名方案σ相对应,
该签名方案用于建立身份认证通道,并用于ca为系统中的节点颁发证书;ca发布完整的系统参数fpara=(para,mpk,σ);
[0030]
所述步骤2具体包括:
[0031]
一个客户端节点,将生成其对应于签名方案σ的公私密钥对ca将为节点生成一个使用其主私钥msk签名的证书;
[0032]
所述步骤3具体包括:
[0033]
客户端即参与无服务器异步联邦学习的节点被划分为不同的群组,根据节点位置和k-means算法对客户端进行分组;对于有k个客户端的群组,首先需要协商群组的大小t,与所述系统参数fpara中的元组(r
γ
,p
γ
,f
γ
)对应,(r
γ
,p
γ
,f
γ
)是由ca在设置阶段生成的元组;客户端使用initialize(v1,

,vk)协议初始化群组,协议包括两个步骤:
[0034]
第一步:取1≤i≤k并且i为正整数,第i个客户端首先做如下操作:
[0035]
1)随机选取正整数
[0036]
2)计算中间值g2∈g2;
[0037]
3)取1≤j≤t,计算中间值
[0038]
4)公开消息
[0039]
第二步:取1≤i≤k并且i为正整数,第i个客户端执行如下操作:
[0040]
1)计算公共加密密钥:
[0041][0042]
2)取1≤i≤t,计算中间值:
[0043][0044]
3)令作为解密密钥;
[0045]
4)设loc为t长的标志字符串,如果一个客户端是第i组成员,则令[loc]i=1;
[0046]
5)第i个客户端存储的信息为:
[0047][0048]
当外部一个或多个客户端加入到第l群组作为第i个客户端节点时,需要设置[loc]i=1,协议有三个步骤:
[0049]
第一步:当外部节点加入到系统中时,要执行以下操作:
[0050]
1)随机选取正整数
[0051]
2)计算中间值
[0052]
3)取正整数j,且1≤j≤t,计算中间值
[0053]
4)将消息发送给群组中的所有客户端节点;
[0054]
第二步:当群组中的每个客户端vj得到消息集合{m1,...,ms},将并行执行如下操作:
[0055]
1)更新公钥加密密钥:
[0056][0057]
2)令1≤m≤t,计算中间值
[0058]
3)更新其新的解密密钥为:
[0059][0060]
4)设置[loc]i=1,1≤i≤s;
[0061]
群组中最低索引的客户端节点需要将自己保持的信息分别发送给s个新的群组客户端v
i1
,v
i2
,...,v
is

[0062]
第三步:当v
il
,1≤l≤s接收到信息计算解密密钥
[0063][0064]
然后存储消息
[0065]
当外部一个或多个客户端离开群组时,被移除的客户端v
l
,其中1≤l≤s,首先需要公开信息然后第j(j≠i)个客户端执行以下操作:
[0066]
1)令
[0067]
2)将公共加密密钥更新为:
[0068][0069]
3)将第j个客户端的解密密钥更新为:
[0070][0071]
4)设置[loc]i=0,1≤i≤s;
[0072]
客户端节点被划分成了不同的群组,每个群组中客户端的加入和离开遵循同样的规则,不同的群组拥有不同的群密钥;
[0073]
所述步骤4具体包括:
[0074]
具有初始模型参数向量或最优模型参数向量的客户端,基于其本地数据集训练生成初始模型更新,然后将噪声添加到初始模型中,以获得受干扰的模型;每个组设置一个标识符gid,协议输入{ui,gidi,pki,loc}
1≤i≤q
,为了交换模型更新,客户端执行以下步骤:
[0075]
当i=1,客户端将加密的会话密钥发送给带有标识符gid客户端u,具体步骤如下:
[0076]
1)选择计算
[0077]
[0078]

[0079]
2)计算密文:
[0080][0081]
3)发送元组(w1,w2,u)到组中的客户端,计算实际会话密钥:
[0082][0083]
当i≥2,客户端向q个群组发送加密消息,1≤i≤q,具体步骤如下:
[0084]
1)选择假设pki是第i个群对应的群公钥,计算
[0085][0086]

[0087]
2)计算密文:
[0088][0089]
3)发送元组到gidi的组,计算实际会话密钥:
[0090][0091]
其中di由发送方随机为每个群组进行选择;
[0092]
当一个客户端接收到消息,将解密密文获得加密密钥,协议输入其中j和sj表示组中第j个客户端,并使用gidi和其解密密钥,具体执行以下步骤:
[0093]
当i=1,集合u中第j个客户端具体解密步骤如下:
[0094]
1)计算
[0095]
2)计算会话密钥:
[0096][0097]
当i≥2,1≤i≤q,集合u中第j个客户端具体解密步骤如下:
[0098]
1)计算
[0099]
2)计算会话密钥:
[0100][0101]
客户端利用会话密钥加密干扰后的模型更新,发送给选择的目标客户端,目标客户端收到密文之后,利用会话密钥解密,对利用差分隐私加噪过的模型更新进行基于质量的聚合方法对模型进行聚合和验证,得到最优的模型参数向量,具体步骤如下:
[0102]
假设存在n个客户端v={v1,v2,...,vn},并且每个客户端都有自己的数据集每个客户端想学习自己的最终模型wi=f(θ,;),客户端需要找
到使损失函数lj(f(θ,x),y)为数据样本(xj,yj)随θ的损失值;客户端利用随机梯度下降计算损失函数更新θ,使得损失函数fi(θ)最小化;每个客户端通过计算临时聚合小化;每个客户端通过计算临时聚合是客户端选择的不同比例值,来使得模型向最优方向更新,对临时聚合模型利用本地数据集进行精度验证,选择精度最高的作为本轮迭代最终模型。
[0103]
本发明基于质量的聚合方法和扩展的动态贡献广播加密方案,允许客户端直接交换更新模型而不需要服务器,并自动聚合接收到的模型不需要全局同步,包括如下实体:客户端,生成系统参数和颁发证书的机构即可信机构ca,总结为下列步骤:
[0104]
(1)全局设置
[0105]
ca根据初始的安全参数λ运行算法生成系统参数para;ca选择一个签名方案σ;生成一个主公私钥对(msk,mpk)对应于签名方案σ;签名方案σ用于建立认证通道,并用于ca为系统中的节点颁发证书;
[0106]
(2)注册
[0107]
节点生成公私钥对ca为该节点生成使用其主私钥msk签名的证书。
[0108]
(3)群组建立
[0109]
客户端被划分为不同的群组;客户端初始化群组;每个客户端发布的成员消息必须使用签名方案σ签名;支持组加入退出,一个或多个客户端可以使用群组加入或群组退出协议加入或离开一个群组;
[0110]
(4)训练与聚合阶段
[0111]
对于具有初始模型参数向量或最优模型参数向量的客户端,基于本地数据集训练生成模型更新,然后将噪声添加到模型更新中获得干扰后的模型更新,对干扰模型加密并选择其它客户端作为目标子集交换模型;客户端解密收到的模型更新,对模型进行聚合和验证得到最优的模型参数向量。
[0112]
本发明使得客户端能够直接交换他们的模型更新而不需要服务器,并自动聚合接收到的模型更新而不需要全局同步,可以有效检测客户端接收到的更新是否为低质量的模型更新。此外扩展动态贡献广播加密方案用于在客户端之间建立安全通道,以增强数据私密性,其还支持低延迟的客户批加入和离开。该方法有效地避免了低质量模型更新,并保证了在模型精度和数据隐私之间的权衡。本发明满足安全性强,模型精度高等特点。
附图说明
[0113]
图1为本发明流程图。
具体实施方式
[0114]
以下结合附图对本发明进行详细描述。
[0115]
参阅图1,本发明的数据隐私保护的无服务器异步联邦学习方法,包括如下实体:
客户端,生成系统参数和颁发证书的机构即可信机构ca,具体包括下列步骤:
[0116]
(1)全局设置
[0117]
输入一个安全参数λ,ca根据λ选取阶为素数q的循环乘法群g1,g2,g
t
,存在双线性映射双线性映射满足以下性质:
[0118]
a)双线性:g1和g2分别为群g1,g2中的元素,是阶为q的正整数集合,a和b为中元素,对任意的g1∈g1,g2∈g2,均有成立;
[0119]
b)非退化性:存在g1∈g1,g2∈g2满足不等于1
gt

[0120]
c)可计算性:存在有效算法,对于均可计算
[0121]
选择g1∈g1,g2∈g2,q,b1,...,bn∈g1其中q,b1,...,bn均为群g1中的元素,并且设置集合b={b1,...,bn},正整数n是最大的组的大小;ca生成t个形为(r
γ
,p
γ
,f
γ
)的元组,每一个都对应一个协商的组的大小;元组(r
γ
,p
γ
,f
γ
)对应的组大小是正整数t,则系统参数的生成如下:
[0122]
1)任取一个整数i,且1≤i≤t,随机选取正整数1)任取一个整数i,且1≤i≤t,随机选取正整数是阶为q的正整数集合,计算中间值
[0123]
2)任取两个整数i,j,且1≤i,j≤t,i≠j,计算中间值
[0124]
3)令r
γ
={r

}
i∈{1,...,t}
,p
γ
={p

}
i∈{1,...,t}

[0125]
4)令f

={f
ijγ
}
{1≤i≤t,i≠j}
,f
γ
={f

}
{1≤j≤t}

[0126]
5)ca公开系统参数:
[0127][0128]
本发明的无服务器异步联邦学习方法中,假设ca是完全可信的,ca选择一个签名方案σ,并生成一个主公私钥对(msk,mpk)与签名方案σ相对应,该签名方案用于建立身份认证通道,并用于ca为系统中的节点颁发证书;ca发布完整的系统参数fpara=(para,mpk,σ);一个客户端节点,将生成其对应于签名方案σ的公私密钥对ca将为节点生成一个使用其主私钥msk签名的证书;客户端即参与无服务器异步联邦学习的节点被划分为不同的群组,根据节点位置和k-means算法对客户端进行分组;对于有k个客户端的群组,首先需要协商群组的大小t,与所述系统参数fpara中的元组(r
γ
,p
γ
,f
γ
)对应,(r
γ
,p
γ
,f
γ
)是由ca在设置阶段生成的元组;客户端使用initialize(v1,

,vk)协议初始化群组,协议包括两个步骤:
[0129]
第一步:取1≤i≤k并且i为正整数,第i个客户端首先做如下操作:
[0130]
1)随机选取正整数
[0131]
2)计算中间值
[0132]
3)取1≤j≤t,计算中间值
[0133]
4)公开消息
[0134]
第二步:取1≤i≤k并且i为正整数,第i个客户端执行如下操作:
[0135]
1)计算公共加密密钥:
[0136][0137]
2)取1≤i≤t,计算中间值:
[0138][0139]
3)令作为解密密钥;
[0140]
4)设loc为t长的标志字符串,如果一个客户端是第i组成员,则令[loc]i=1;
[0141]
5)第i个客户端存储的信息为:
[0142][0143]
当外部一个或多个客户端加入到第l群组作为第i个客户端节点时,需要设置[loc]i=1,协议有三个步骤:
[0144]
第一步:当外部节点加入到系统中时,要执行以下操作:
[0145]
1)随机选取正整数
[0146]
2)计算中间值
[0147]
3)取正整数j,且1≤j≤t,计算中间值
[0148]
4)将消息发送给群组中的所有客户端节点;
[0149]
第二步:当群组中的客户端vj得到消息集合{m1,...,ms},将执行如下操作:
[0150]
1)更新公钥加密密钥:
[0151][0152]
2)令1≤m≤t,计算中间值
[0153]
3)更新其新的解密密钥为:
[0154][0155]
4)置[loc]i=1,1≤i≤s;
[0156]
群组中最低索引的客户端节点需要将自己保持的信息分别发送给s个新的群组客户端v
i1
,v
i2
,...,v
is

[0157]
第三步:当v
il
,1≤l≤s接收到信息计算解密密钥
[0158][0159]
然后存储消息
[0160]
当外部一个或多个客户端离开群组时,被移除的客户端v
l
,其中1≤l≤s,首先需要公开信息然后第j(j≠i)个客户端执行以下操作:
[0161]
1)令
[0162]
2)将公共加密密钥更新为:
[0163][0164]
3)将第j个客户端的解密密钥更新为:
[0165][0166]
4)设置[loc]i=0,1≤i≤s;
[0167]
客户端节点被划分成了不同的群组,每个群组中客户端的加入和离开遵循同样的规则,不同的群组拥有不同的群密钥。
[0168]
具有初始模型参数向量或最优模型参数向量的客户端,基于其本地数据集训练生成初始模型更新,然后将噪声添加到初始模型中,以获得受干扰的模型;每个组设置一个标识符gid,协议输入{ui,gidi,pki,loc}
1≤i≤q
,为了交换模型更新,客户端执行以下步骤:
[0169]
当i=1,客户端将加密的会话密钥发送给带有标识符gid客户端u,具体步骤如下:
[0170]
1)选择计算
[0171][0172]

[0173]
2)计算密文:
[0174][0175]
3)发送元组(w1,w2,u)到组中的客户端,计算实际会话密钥:
[0176][0177]
当i≥2,客户端向q个群组发送加密消息,1≤i≤q,具体步骤如下:
[0178]
1)选择假设pki是第i个群对应的群公钥,计算
[0179][0180]

[0181]
2)计算密文:
[0182][0183]
3)发送元组到gidi的组,计算实际会话密钥:
[0184]
[0185]
其中di由发送方随机为每个群组进行选择。
[0186]
当一个客户端接收到消息,将解密密文获得加密密钥,协议输入其中j和sj表示组中第j个客户端,并使用gidi和其解密密钥,具体执行以下步骤:
[0187]
当i=1,集合u中第j个客户端具体解密步骤如下:
[0188]
1)计算
[0189]
2)计算会话密钥:
[0190][0191]
当i≥2,1≤i≤q,集合u中第j个客户端具体解密步骤如下:
[0192]
1)计算
[0193]
2)计算会话密钥:
[0194][0195]
客户端利用会话密钥加密干扰后的模型更新,发送给选择的目标客户端,目标客户端收到密文之后,利用会话密钥解密,对利用差分隐私加噪过的模型更新进行基于质量的聚合方法对模型进行聚合和验证,得到最优的模型参数向量,具体步骤如下:
[0196]
假设存在n个客户端v={v1,v2,...,vn},并且每个客户端都有自己的数据集每个客户端想学习自己的最终模型wi=f(θ,x),客户端需要找到使损失函数lj(f(θ,x),y)为数据样本(xj,yj)随θ的损失值;客户端利用随机梯度下降计算损失函数更新θ,使得损失函数fi(θ)最小化;每个客户端通过计算临时聚合小化;每个客户端通过计算临时聚合是客户端选择的不同比例值,来使得模型向最优方向更新,对临时聚合模型利用本地数据集进行精度验证,选择精度最高的作为本轮迭代最终模型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1