基于同态加密和秘密共享的联邦学习隐私保护方法技术

技术编号:29047163 阅读:46 留言:0更新日期:2021-06-26 06:04
本发明专利技术公开了基于同态加密和秘密共享的联邦学习隐私保护方法,所述方法包括基于同态加密的梯度保护方法和基于秘密共享的随机数保护方法两部分,主要针对初始化阶段、模型训练阶段、模型聚合阶段和模型更新阶段四个阶段。通过采用基于同态加密的梯度保护方法,实现了对梯度的保护,同时可以完成梯度密文的聚合,既有效防止梯度隐私信息的泄露,又能实现梯度的安全聚合;通过基于秘密共享的随机数保护方法,对梯度密文实现了保护,同时又对梯度密文保护的随机数进行了保护,可以有效防止聚合服务器,密钥生成服务器和参与方之间的共谋攻击,进一步保障了三者交互过程中梯度信息的安全性。安全性。安全性。

【技术实现步骤摘要】
基于同态加密和秘密共享的联邦学习隐私保护方法


[0001]本专利技术属于联邦学习安全
,具体涉及基于同态加密和秘密共享的联邦学习隐私保护方法,该方法提出基于同态加密的梯度保护方法和基于秘密共享的随机数保护方法这两个技术,既可保证参与方上传梯度的安全性,又可防止参与方梯度信息泄露给密钥分发者。

技术介绍

[0002]深度学习作为人工智能的一个分支,需要足够的数据量来进行训练,然而,由于隐私问题,这种条件往往无法满足,例如,在医疗领域,由于医疗数据往往是非常敏感的,通常包含个人隐私信息,在多个医疗中心进行数据共享的过程中,就会导致病人的隐私泄露,而病人并不希望自己的隐私泄露给其他人,而在2018年5月25日,欧盟开始实施2016年公布的通用数据保护条例(GDPR),禁止欧盟内部个人隐私数据的自由流动。
[0003]基于上述原因,需要一种隐私保护的方法来扩充数据,并能够支持深度学习的过程。为了满足这一要求,谷歌在2016年提出了联邦学习,一种隐私保护的分布式深度学习框架,在联邦学习中,各个参与方不共享本地数据,仅通过上传模型参数更新(如梯度等)实现联合建模,可以一定程度保护训练数据的隐私和安全。然而,已有研究表明攻击者能通过上传更新的模型参数反推出参与方的本地原始数据,例如,聚合服务器有能力利用聚合结果去分析获取参与方上传数据的统计特征,仍会导致参与方的隐私泄漏,因而如何保护各参与方共享的模型参数是一个重要问题。此外,当恶意的聚合服务器和密钥分发者发起共谋攻击时,参与方的梯度信息就会泄露,从而导致参与方的隐私泄露,因此,隐私保护问题已成为真正关系到联邦学习技术能够持续发展和广泛应用的关键。现有的隐私保护方法虽可一定程度地解决联邦学习的用户隐私保护问题,但大多数方法无法抵抗聚合服务器和密钥分发者的共谋攻击。

技术实现思路

[0004]针对现有联邦学习中存在的隐私泄露问题,本专利技术提出一种基于同态加密和秘密共享的联邦学习隐私保护方法,应用基于同态加密的梯度保护方法和基于秘密共享的随机数保护方法,保证参与方训练数据的安全性,防止参与方训练数据隐私信息的泄露。
[0005]在现有的横向联邦学习应用中,主要有客户

服务器场景和对等网络场景,客户

服务器主要是参与方与聚合服务器交互的典型场景。为此,本专利技术的隐私保护方法主要是针对客户

服务器场景,它们的交互方式如图1所示。本专利技术方法主要针对初始化阶段、模型训练阶段、模型聚合阶段和模型更新阶段四个阶段。
[0006]在初始化阶段,每个参与方向指定的密钥生成服务器请求生成密钥对,指定的服务器收集所有请求,并记录请求的数量,把请求的数量发送给各个参与方,然后从所有的密钥生成服务器中(包括它自己)随机选择一个密钥生成服务器。之后,被选择的密钥生成服务器生成密钥,然后将密钥对分发给每个参与方,与此同时,公钥被发送到聚合服务器。之
后,每个参与方在本地初始化模型参数,生成随机数及其共享。
[0007]模型训练阶段,在每轮训练中,每个参与方用初始化的模型参数在本地训练模型,并计算梯度。他们加密梯度和随机数,并将梯度中每个元素与随机数相乘得到盲化的梯度密文。
[0008]在模型聚合阶段,每个参与方向聚合服务器发送盲化的梯度密文,与此同时,每个参与方将共享上传给所有密钥生成服务器,一个共享给一个密钥生成服务器。每个密钥生成服务器将收到的共享相加并把加完的共享保存在本地。聚合服务器聚合盲化的梯度密文,并把聚合的结果分发给各个参与方。与此同时,每个密钥生成服务器将共享的加和分发给各个参与方,参与方们对从各个密钥生成服务器发来的共享的加和进行求和得到所有随机数的和。
[0009]在模型更新阶段,每个参与方对聚合的梯度密文进行解密,并减去所有随机数的和,得到聚合梯度。之后,每个参与方更新模型。如果未达到训练的轮数,每个参与方返回模型训练阶段继续下一轮的训练,否则,训练终止。
[0010]1.基于同态加密的梯度保护方法
[0011]基于同态加密的梯度保护方法包含密钥生成算法、梯度加密和盲化算法、梯度解密算法和梯度密文聚合算法四部分,如图2所示。
[0012]其中,密钥生成算法是核心,直接影响生成密钥的长度,而密钥长度则关系到聚合服务器、密钥生成者或参与方对其他参与方梯度解密的计算复杂度,对参与方梯度等隐私信息的保护起到至关重要的作用。密钥生成的过程如图2(a)。首先,初始化两个大素数p、q满足gcd(p
·
q,(p

1)
·
(q

1))=1。其次,计算n=p
·
q和λ=lcm(p

1,q

1)。然后,定义函数L(x)=(x

1)/n,取小于n2的正整数g,并保证μ=(L(g
λ
mod n2))
‑1mod n存在。最后,得到公钥pk=(n,g)和私钥sk=(λ,μ)。
[0013]梯度加密和盲化算法是在参与方得到公钥pk和私钥sk后,利用公钥pk对梯度进行加密运算,如图2(b)。先获取模型的梯度,设为G,G为大于等于0且小于n的正整数。然后随机选择r满足0<r<n且r∈Z
*n2
。接着计算得到梯度密文c=g
G
·
r
n mod n2和随机数密文c
randnum
=g
randnum
·
r
n mod n2,最后计算盲化的梯度密文c
blind
=c
·
c
randnum mod n2。
[0014]梯度解密算法也是在参与方得到公钥pk和私钥sk后,利用公钥pk和私钥sk对梯度进行解密运算,通过pk和sk解密得到梯度密文G=L(c
λ
mod n2)
·
μ,同时对解密的梯度进行去盲,如图2(c)。
[0015]梯度聚合算法采用同态加密算法中密文的同态性对梯度进行聚合计算,如图2(d)。设参与方的梯度密文为c1,c2,

,c
n
,即聚合梯度为c
agg
=c1·
c2·

·
c
n mod n2。
[0016]2.基于秘密共享的随机数保护方法
[0017]基于秘密共享的随机数保护方法主要是参与方与密钥生成服务器之间的交互方式。首先,每个参与方在本地生成随机数randnum,如图3(a),然后,将自己随机数randnum通过加法秘密共享算法进行计算,得到randnum的共享randnum
share
,并发给密钥生成服务器,然后密钥生成服务器进行共享的加和,如图3(b),接着,密钥生成服务器把加完的共享发给各个参与方,各个参与方把收到的共享的加和相加,得到所有随机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于同态加密和秘密共享的联邦学习隐私保护方法,其特征在于:包括以下步骤:步骤1:初始化阶段;参与方在本地完成各种参数的初始化,包括模型参数、密钥对、随机数和共享;步骤1.1:模型参数的初始化;(1)参与方在本地初始化神经网络模型nn,学习率α和训练轮数epoch,每个参与方的nn,α和epoch都是一样的;步骤1.2:密钥对的初始化;(1)密钥生成服务器完成公钥pk和私钥sk的生成,并下发给各个参与方,每个参与方获得的pk和sk都是一样的;步骤1.3:随机数及其共享的初始化;(1)参与方在本地生成随机数,假设随机数的生成函数为f(year,month,day,hour,minute,second),该函数基于年、月、日、天、小时、分钟、秒;参与方基于这些参数生成随机数randnum;如果randnum=0,将会重新生成直到randnum不为0;(2)参与方在本地对自己生成的随机数创建共享,参与方通过加法秘密共享将randnum分为EdgeNum份,其中EdgeNum为密钥生成服务器的个数,使得所有共享的和等于randnum;要求参与方生成的所有共享都不为0;步骤2:模型训练阶段;参与方在本地进行模型训练,然后在每轮训练中计算梯度,并对梯度进行加密和盲化,然后将随机数的共享和盲化的梯度密文上传;步骤2.1:梯度计算;(1)设参与方的训练数据集为D,参与方随机选取D的子集D*,对D*计算损失函数,然后根据损失函数对模型参数求导得到梯度;步骤2.2:梯度的加密和盲化;(1)参与方利用公钥pk对梯度和随机数进行加密,然后对梯度密文进行盲化,即利用同态加密的同态性对梯度密文和随机数密文进行乘法运算,得到盲化的梯度密文;步骤2.3:随机数的共享和盲化的梯度密文的上传;(1)每个参与方将随机数的共享依次上传到密钥生成服务器,一个共享给一个密钥生成服务器,然后将盲化的梯度密文上传到聚合服务器;步骤3:模型聚合阶段;聚合服务器对梯度密文进行聚合,同时每个密钥生成服务器将受到的共享值相加,并保存在本地,然后聚合服务器将聚合的梯度密文发给各个参与方,同时,所有密钥生成服务器将自己加完的共享发给各个参与方;步骤3.1:梯度密文的聚合;(1)聚合服务器将收到的梯度密文进行聚合,即对收到的梯度密文进行同态加密的密文乘法运算,得到聚合的梯度密文;步骤3.2:共享值的相加;(1)密钥生成服务器对收到的参与方的随机数的共享进行加和运算,并将加完的共享值保存在本地;步骤3.3:聚合梯度密文和共享值加和的下发;
(1)聚合服务器将聚合梯度密文发给各个参与方,同时,密钥生成服务器将randnum
sumj
,j=1,2,

,EdgeNum下发给各个参与方;步骤4:模型更新阶段;参与方在本地计算得到所有随机数的和,并解密聚合梯度密文然后更新模型参数;步骤4.1:计算所有随机数的和;(1)参与方根据得到的共享的加和来计算所有随机数的和;步骤4.2:解密聚合的梯度密文;(1)参与方在本地利用公钥pk和私钥sk对聚合的梯度密文进行解密运算,同时,用解密的结果减去所有随机数的和得到聚合梯度的结果;步骤4.3:模型参数的更新;(1)参与方利用聚合梯度的结果更新模型参数,更新完成后,如果达到预定的训练轮数epoch,则训练完成,如果未达到预定的训练轮数epoch,则返回模型训练阶段继续下一轮训练。2.根据权利要求1所述的基于同态加密和秘密共享的联邦学习隐私保护方法,其特征在于,所述步骤2.1梯度计算包括以下步骤:(1)参与方获得数据集D的随机子集D*,设D={(x
i
,y
i
)|i=1,2,

,p},D
*
={(x1,y1)|i=1,2,

,q},q<p,其中x
i
代表数据,y
i
代表标签;(2)参与方对数据集D*里面的数据计算输出值,并根据输出值和标签得到损失函数;(3)参与方通过损失函数对模型进行求导得到梯度值G。3.根据权利要求1所述的基于同态加密和秘密共享的联邦学习隐私保护方法,其特征在于,所述...

【专利技术属性】
技术研发人员:林莉张笑盈
申请(专利权)人:北京工业大学
类型:发明
国别省市:

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

1