CN112149160B - 基于同态伪随机数的联邦学习隐私保护方法及系统 - Google Patents

基于同态伪随机数的联邦学习隐私保护方法及系统 Download PDF

Info

Publication number
CN112149160B
CN112149160B CN202010886968.4A CN202010886968A CN112149160B CN 112149160 B CN112149160 B CN 112149160B CN 202010886968 A CN202010886968 A CN 202010886968A CN 112149160 B CN112149160 B CN 112149160B
Authority
CN
China
Prior art keywords
client
gradient value
key
secret
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010886968.4A
Other languages
English (en)
Other versions
CN112149160A (zh
Inventor
万志国
葛均易
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN202010886968.4A priority Critical patent/CN112149160B/zh
Publication of CN112149160A publication Critical patent/CN112149160A/zh
Application granted granted Critical
Publication of CN112149160B publication Critical patent/CN112149160B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了基于同态伪随机数的联邦学习隐私保护方法及系统,n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;n和t均为正整数;si表示第i个客户端的秘密份额;每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;客户端接收服务器反馈回来的更新后的模型。

Description

基于同态伪随机数的联邦学习隐私保护方法及系统
技术领域
本申请涉及隐私保护技术领域,特别是涉及基于同态伪随机数的联邦学习隐私保护方法及系统。
背景技术
本部分的陈述仅仅是提到了与本申请相关的背景技术,并不必然构成现有技术。
大数据、云计算和深度学习等新技术的出现促进了人工智能、机器学习的蓬勃发展,但是数据安全和隐私问题却严重制约着人工智能和机器学习的实际应用。目前出于担心数据泄露的风险,政府、公司、个人的数据共享和利用极为有限,大量的数据得不到有效地利用。由于审批流程、商业竞争、个人隐私等因素,政府部门、公司、个人的数据实现真正的共享利用仍然存在很大的阻碍,数据源之间难以打破的壁垒导致了“数据孤岛”的现象。此外,随着大数据的发展,重视数据隐私和安全已成为世界性的趋势,如何保护数据共享和利用过程中的数据隐私是目前亟待破解的难题。
针对“数据孤岛”和“数据隐私保护”的问题,谷歌提出了联邦学习算法技术。联邦学习(Federated Learning)本质上是一种分布式机器学习技术,在进行机器学习训练模型的过程中,各参与方分别使用自有数据训练更新模型,并通过共享各自的训练结果实现对所有数据的训练。各方无需共享原始数据,数据无需离开本地,只需共享模型更新参数,即可完成数据联合训练,建立共享的机器学习模型。
尽管联邦学习无需传输原始数据,只需传输模型的更新梯度值,但是这些更新梯度值来自于原始数据,因此这些模型更新梯度值依然可能泄露数据信息。为了解决这个问题,谷歌提出了使用伪随机数保护模型更新梯度值的方案,但是这种方法的复杂度过高,无法适用于大规模联邦学习的场景。
发明内容
为了解决现有技术的不足,本申请提出了基于同态伪随机数的联邦学习隐私保护方法及系统;设计一种安全高效的联邦学习隐私保护方法,满足目前联邦学习对数据共享的迫切需求,具有重要的意义和巨大的应用价值。
第一方面,本申请提供了基于同态伪随机数的联邦学习隐私保护方法;
基于同态伪随机数的联邦学习隐私保护方法,包括:
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;n和t均为正整数;si表示第i个客户端的秘密份额;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
客户端接收服务器反馈回来的更新后的模型。
第二方面,本申请提供了基于同态伪随机数的联邦学习隐私保护系统;
基于同态伪随机数的联邦学习隐私保护系统,包括:服务器和若干个客户端;
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;n和t均为正整数;si表示第i个客户端的秘密份额;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
服务器收集聚合所有客户端发送的更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用聚合梯度值对机器学习模型的参数进行更新,将更新后的机器学习模型的参数发给各个客户端。
第三方面,本申请还提供了客户端。
一种客户端,其被配置为:
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;n和t均为正整数;si表示第i个客户端的秘密份额;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
客户端接收服务器反馈回来的更新后的机器学习模型。
第四方面,本申请还提供了服务器。
一种服务器,其被配置为:收集聚合所有客户端发送的更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用聚合梯度值对机器学习模型的参数进行更新,将更新后的机器学习模型的参数发给各个客户端。
与现有技术相比,本申请的有益效果是:
1.本申请使用可验证的秘密分享技术(VSS),保证了密钥的安全性和完整性,秘密份额的持有者可以恢复出密钥。
2.本申请应用基于分层的聚合方法,降低了通信成本。
3.本申请所使用的技术保证了服务器在计算梯度值的过程中,客户端的数据不会泄露,高效且安全的保护了客户端的数据隐私。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本申请无集群的基于同态伪随机数的联邦学习隐私保护方案的流程示意图;
图2为本申请无集群的基于同态伪随机数的联邦学习隐私保护方案的流程示意图;
图3为本申请有集群的基于同态伪随机数的联邦学习隐私保护方案的流程示意图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
术语解释:
1.可验证的秘密分享(Verifiable Secret Sharing,VSS):是一种分发、保存和恢复秘密的方法,是实现安全多方计算的一种重要工具。参数为(t,n)的可验证秘密分享方案使得n个参与者共享秘密s,每个参与者得到s的一个秘密份额;至少t个参与者才能恢复出s,而小于t个参与者则无法恢复秘密s。在秘密分发的过程中,各成员pi(1≤i≤n)能够对分发的秘密分片的正确性进行验证(Verify),实现了可验证秘密分享。
2.密钥同态伪随机函数(key-homomorphicPRFs):密钥同态伪随机函数是一种新的密码技术,可应用于代理重新加密和可更新加密等。伪随机函数(Pseudorandomfunction,PRF)F(k,x)输出的值与真正的随机数无法区分,并且具有以下性质:F(k1,x)+F(k2,x)=F(k1+k2,x),x∈{0,1}l
Figure BDA0002655868660000061
k为密钥。
3.总密钥:即系统中服务器掌握的密钥,至少t个参与者才能恢复出该密钥。
4.秘密份额:总密钥的一部分,每个参与者都会得到各自的秘密份额。
5.更新梯度值:即训练过程中,通过反向传播算法计算更新的目标函数梯度值。
6.更新梯度值合:更新梯度值加权求和后的结果。
7.更新梯度值密文:使用F(k,x)对更新梯度值进行加密的结果。
8.F(k,x):客户端和服务器以k为密钥产生伪随机数的函数(Pseudorandomfunction,PRF)。
9.f(x):参与者获得的秘密份额,是总密钥的一部分。
10.fi(x):f(x)的一部分。参与者相互广播fi(x),进而构造出各自的秘密份额。
11.密钥恢复公式:
Figure BDA0002655868660000062
Li为拉格朗日参数。
12.随机梯度下降(SGD):梯度下降法是求解无约束最优化问题的一种常用方法,是一种迭代算法,每一步需要求解目标函数的梯度向量。随机梯度下降是随机取样替代完整的样本,主要作用是提高迭代速度。
实施例一,本实施例提供了基于同态伪随机数的联邦学习隐私保护方法;
基于同态伪随机数的联邦学习隐私保护方法,包括:
S101:n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;n和t均为正整数;si表示第i个客户端的秘密份额;
S102:每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
S103:每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
S104:客户端接收服务器反馈回来的更新后的机器学习模型的参数。
进一步地,所述S101中,服务器只知道密钥s,而不知道秘密份额si
进一步地,所述S103步骤之后,所述S104步骤之前,还包括S103-4,所述S103-4的概要步骤包括:
服务器收集聚合所有客户端发送的更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用聚合梯度值对机器学习模型的参数进行更新,将更新后的机器学习模型的参数发给各个客户端。
进一步地,S103-4具体步骤包括:
服务器收集聚合所有客户端发送的更新梯度值密文,对所有客户端发送的更新梯度值密文加权求和得到聚合梯度值密文,然后使用自己的总密钥产生伪随机数,用该随机数F(s,x)对聚合梯度值密文进行解密,得到聚合梯度值明文,使用此聚合梯度值对模型进行更新;将更新后的模型发给各个客户端,转到S102进行下一轮联邦学习,直到模型收敛。
进一步地,所述S101:n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;具体步骤包括:
S1011:每个客户端i选择秘密参数ai,j,1≤j≤t-1;构造多项式fi(x)=ai,0+ai,1x+ai,2x2+…+ai,t-1xt-1,x为客户端ID,t为门限值。
S1012:客户端i向客户端j发送fi(j),且fi(i)只有客户端i知道。
S1013:每个客户端i,收集其他客户端j发送的fj(i),得到:
Figure BDA0002655868660000081
f(i)即为客户端i得到的秘密份额si,由拉格朗日插值法恢复出密钥s,并把密钥s发送给服务器。
进一步地,所述S103:每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;具体步骤包括:
S1031:客户端以秘密份额si作为种子生成随机数F(si,x);
S1032:客户端使用随机数F(si,x)对得到的更新梯度值gi进行加密,即
Figure BDA0002655868660000082
ni为客户端拥有的数据条数,Li为拉格朗日插值参数,并将
Figure BDA0002655868660000083
更新梯度值密文发送给服务器。
进一步地,所述S103-4详细步骤包括:
S103-41:服务器收集客户端发送的更新梯度值密文,并对密文进行加权求和,得到聚合更新梯度值密文
Figure BDA0002655868660000084
Figure BDA0002655868660000085
n是所有数据的数量;
S103-42:服务器以总密钥s为种子的密钥同态伪随机函数得到随机数F(s,x),又由密钥恢复公式
Figure BDA0002655868660000086
和密钥同态伪随机函数的特性可知:
Figure BDA0002655868660000087
即服务器能够抹去掩盖值
Figure BDA0002655868660000088
恢复出正确的聚合更新梯度值明文;
S103-43:服务器根据随机梯度下降法,利用聚合梯度值明文更新模型,并将更新后的模型发送给客户端。
进一步地,所述S101:n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;允许被替换为:
S2011:n(n≥1)个的客户端分成m(m≥1)个不同的集群,每个集群内有q个客户端
Figure BDA0002655868660000091
每个集群都选定一个客户端作为集群头;
S2012:所有集群的集群头使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成m份,每个集群头获得自己的秘密份额si;至少t个集群头参与恢复密钥s,并把密钥s发送给服务器端。服务器端只知道密钥s,而不知道秘密份额si
进一步地,所述S2012的具体步骤包括:
S20121:每个集群头i选择秘密参数ai,j,1≤j≤t-1;构造多项式fi(x)=ai,0+ai,1x+ai,2x2+…+ai,t-1xt-1,x为集群头ID,t为门限值;
S20122:集群头i向集群头j发送fi(j),且fi(i)只有集群头i知道;
S20123:每个集群头i,收集其他集群头j发送给其的fj(i),得到
Figure BDA0002655868660000092
Figure BDA0002655868660000093
f(i)即为集群头得到的秘密份额si,由拉格朗日插值法即可恢复出密钥s,并把密钥s发送给服务器端。
进一步地,所述S102:每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;允许被替换为:
S2021:在每个集群内部,客户端使用可验证秘密分享VSS产生一个密钥k′i,把密钥k′i分割成q份,每个客户端获得自己的秘密份额ki,至少t个客户端参与恢复密钥k′i,并把密钥k′i发送给集群头;集群头只知道密钥k′i,而不知道秘密份额ki
S2022:客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值。
进一步地,所述S2021的具体步骤包括:
S20211:在每个集群内部,客户端i选择参数bi,j,1≤j≤t-1;构造多项式fi(x)=bi,0+bi,1x+bi,2x2+…+bi,t-1xt-1,x为集群头ID,t为门限值;
S20212:客户端i向客户端j发送fi(j),且fi(i)只有客户端i知道;
S20213:对客户端i,收集其他客户端j发送到fj(i),得到
Figure BDA0002655868660000101
Figure BDA0002655868660000102
f(i)即为客户端得到的秘密份额ki,由拉格朗日插值法即可恢复出密钥k′i,并把k′i发送给所在集群的集群头。
进一步地,所述S103:每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;允许被替换为:
S2031:客户端以秘密份额ki作为种子使用密钥同态伪随机函数产生一个随机数F(ki,x);并用该随机数F(ki,x)对更新梯度值进行加密,然后将更新梯度值密文发送给所在集群的集群头;
S2032:集群头收集并聚合所有更新梯度值密文,以密钥k′i作为种子使用密钥同态伪随机函数产生一个随机数F(k′i,x),利用F(k′i,x)恢复出一个聚合更新梯度值明文;
集群头以秘密份额si作为种子使用密钥同态伪随机函数产生一个随机数F(si,x),用该随机数F(si,x)对得到的聚合更新梯度值明文进行加密并将其发送给服务器端。
进一步地,所述S2031的具体步骤包括:
S20311:客户端以秘密份额ki作为种子生成随机数F(ki,x);
S20312:客户端使用随机数F(ki,x)对得到的更新梯度值gi进行加密,即
Figure BDA0002655868660000111
ni为客户端拥有的数据条数,Li为拉格朗日插值参数,并发送给集群头。
进一步地,所述S2032的具体步骤包括:
S20321:集群头收集并聚合客户端发送的更新梯度值密文
Figure BDA0002655868660000112
n是所有数据的数量。
S20322:集群头以密钥k′i作为种子使用密钥同态伪随机函数产生一个随机数F(k′i,x),并利用F(k′i,x)恢复出一个聚合更新梯度值明文g′i
S20323:集群头以秘密份额si作为种子使用密钥同态伪随机函数产生一个随机数F(si,x)。
S20324:集群头利用随机数F(si,x)对聚合更新梯度值明文g′i进行加密,即得到更新梯度值密文
Figure BDA0002655868660000113
并将其发送给服务器端,其中ni为集群大小,Li为拉格朗日插值参数。
进一步地,所述S103-4,允许被替换为:
S203-4:服务器端收集聚合所有集群头发送的聚合更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用此聚合梯度值对模型进行更新,将更新后的模型发给各个客户端。
进一步地,所述S203-4,具体步骤包括:
S203-41:服务器端收集集群头发送的更新梯度值密文,对密文进行加权求和
Figure BDA0002655868660000114
进一步地,由步骤S20324中集群头得到的更新梯度值密文:
Figure BDA0002655868660000121
计算出:
Figure BDA0002655868660000122
S203-42:服务器端以总密钥s为种子使用密钥同态伪随机函数产生随机数F(s,x),又由公式
Figure BDA0002655868660000123
和密钥同态伪随机函数的特性可知:
Figure BDA0002655868660000124
即服务器端能够抹去掩盖值
Figure BDA0002655868660000125
恢复出正确的聚合更新梯度值明文。
S203-43:服务器端根据随机梯度下降法(SGD),利用聚合梯度值明文对模型进行更新,将更新后的模型发给各个客户端。
实施例二,本实施例提供了基于同态伪随机数的联邦学习隐私保护系统;
基于同态伪随机数的联邦学习隐私保护系统,包括:服务器和若干个客户端;
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
服务器收集聚合所有客户端发送的更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用聚合梯度值对模型进行更新,将更新后的模型发给各个客户端。
实施例三,本实施例还提供了客户端。
一种客户端,其被配置为:
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
客户端接收服务器反馈回来的更新后的模型。
实施例四,本实施例还提供了服务器。
一种服务器,其被配置为:收集聚合所有客户端发送的更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用聚合梯度值对模型进行更新,将更新后的模型发给各个客户端。
本申请的技术方案实现多个客户端在运行联邦学习时,客户端各自在自己的数据上进行多轮模型训练,将得到的更新梯度值加密后发送给服务器,服务器聚合解密更新梯度值,并根据随机梯度下降算法对模型进行更新,将更新后的模型发送给客户端,重复上述过程,直至模型收敛。通过联邦学习得到最终的训练模型,同时每个客户端的更新梯度值不会暴露给服务器或者其他客户端。
实施例五,本实施例提供了有集群的基于同态伪随机数的联邦学习隐私保护系统;
若干个客户端被划分成不同的集群,每个集群选定一个客户端为集群头,多个客户端在运行联邦学习时,客户端各自在自己的数据上进行多轮模型训练,将得到的更新梯度值加密后发送给所在集群的集群头;集群头将集群内的所有更新梯度值进行聚合加密后发送给服务器端;
服务器端接收所有集群头发送的聚合更新梯度值密文,恢复出聚合更新梯度值明文,并根据聚合更新梯度值对模型进行更新,将更新后的模型发送给客户端,重复上述过程,直至模型收敛;通过联邦学习得到最终的训练模型,同时每个客户端的更新梯度值不会暴露给服务器端或者其他客户端。
n(n≥1)个的客户端分成m(m≥1)个不同的集群,每个集群内有q个客户端
Figure BDA0002655868660000141
每个集群都选定一个客户端作为集群头;
所有集群的集群头使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成m份,每个集群头获得自己的秘密份额si;至少t个集群头参与恢复密钥s,并把密钥s发送给服务器端。服务器端只知道密钥s,而不知道秘密份额si
在每个集群内部,客户端使用可验证秘密分享VSS产生一个密钥k′i,把密钥k′i分割成q份,每个客户端获得自己的秘密份额ki,至少t个客户端参与恢复密钥k′i,并把密钥k′i发送给集群头;集群头只知道密钥k′i,而不知道秘密份额ki
客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
客户端以秘密份额ki作为种子使用密钥同态伪随机函数产生一个随机数F(ki,x);并用该随机数F(ki,x)对更新梯度值进行加密,然后将更新梯度值密文发送给所在集群的集群头;
集群头收集并聚合所有更新梯度值密文,以密钥k′i作为种子使用密钥同态伪随机函数产生一个随机数F(k′i,x),利用F(k′i,x)恢复出一个聚合更新梯度值明文;集群头以秘密份额si作为种子使用密钥同态伪随机函数产生一个随机数F(si,x),用该随机数F(si,x)对得到的聚合更新梯度值明文进行加密并将其发送给服务器端;
服务器端收集聚合所有集群头发送的聚合更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用此聚合梯度值对模型进行更新,将更新后的模型发给各个客户端。
实施例六,本实施例还提供了客户端。
客户端,其被配置为:若干个客户端被划分成不同的集群,每个集群选定一个客户端为集群头,多个客户端在运行联邦学习时,客户端各自在自己的数据上进行多轮模型训练,将得到的更新梯度值加密后发送给所在集群的集群头;集群头将集群内的所有更新梯度值进行聚合加密后发送给服务器端;
客户端,其被配置为:n(n≥1)个的客户端分成m(m≥1)个不同的集群,每个集群内有q个客户端
Figure BDA0002655868660000151
每个集群都选定一个客户端作为集群头;
所有集群的集群头使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成m份,每个集群头获得自己的秘密份额si;至少t个集群头参与恢复密钥s,并把密钥s发送给服务器端。服务器端只知道密钥s,而不知道秘密份额si
在每个集群内部,客户端使用可验证秘密分享VSS产生一个密钥k′i,把密钥k′i分割成q份,每个客户端获得自己的秘密份额ki,至少t个客户端参与恢复密钥k′i,并把密钥k′i发送给集群头;集群头只知道密钥k′i,而不知道秘密份额ki
客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
客户端以秘密份额ki作为种子使用密钥同态伪随机函数产生一个随机数F(ki,x);并用该随机数F(ki,x)对更新梯度值进行加密,然后将更新梯度值密文发送给所在集群的集群头;
集群头收集并聚合所有更新梯度值密文,以密钥k′i作为种子使用密钥同态伪随机函数产生一个随机数F(k′i,x),利用F(k′i,x)恢复出一个聚合更新梯度值明文;集群头以秘密份额si作为种子使用密钥同态伪随机函数产生一个随机数F(si,x),用该随机数F(si,x)对得到的聚合更新梯度值明文进行加密并将其发送给服务器端。
实施例七,本实施例还提供了服务器端。
服务器端,其被配置为:接收所有集群头发送的聚合更新梯度值密文,恢复出聚合更新梯度值明文,并根据聚合更新梯度值对模型进行更新,将更新后的模型发送给客户端,重复上述过程,直至模型收敛;通过联邦学习得到最终的训练模型,同时每个客户端的更新梯度值不会暴露给服务器端或者其他客户端。
实施例1.1
本申请无集群的基于同态伪随机数的联邦学习隐私保护方案,如图1所示,包括步骤如下:
1.系统初始化:设定6个客户端和服务器进行初始化,获得各自密钥。设定门限值t=3。
6个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成6份,每个客户端获得自己的秘密份额si。例如6个客户端协同产生多项式f(x)=1+3*x+x2,客户端ID分别为1,2,3,4,5,6,所以客户端获得的秘密份额分别为:s1=5,s2=11,s3=19,s4=29,s5=41,s6=55;6个客户端分为两个组:ID为1,2,3的客户端分为一组,客户端的拉格朗日参数分别为:L1=3,L2=-3,L3=1;ID为4,5,6的客户端分为一组,客户端的拉格朗日参数分别为:L4=15,L5=-24,L6=10。
进一步地,每组3个客户端协同恢复密钥s=1,并把密钥s发送给服务器。
Figure BDA0002655868660000171
2.客户端机器学习:客户端进行机器学习得到更新梯度值,加密后上传到服务器。
客户端i在本地使用自己的数据进行机器学习,获得更新梯度值gi。客户端拥有的数据条数ni分别为:n1=101,n2=132,n3=129,n4=87,n5=154,n6=92。更新梯度值gi分别为:
Figure BDA0002655868660000172
Figure BDA0002655868660000173
Figure BDA0002655868660000174
进一步地,客户端i以秘密份额si为种子,使用密钥同态伪随机函数产生随机数F(si,x)。
Figure BDA0002655868660000175
Figure BDA0002655868660000176
Figure BDA0002655868660000177
进一步地,客户端i使用随机数F(si,x)对更新梯度值明文gi进行加密
Figure BDA0002655868660000181
得到更新梯度值密文
Figure BDA0002655868660000182
Figure BDA0002655868660000183
Figure BDA0002655868660000184
进一步地,客户端i将更新梯度值密文发送给服务器。
3.服务器计算梯度值:服务器收集聚合更新梯度值密文,对其解密并计算正确的梯度值。
服务器收集客户端发送的更新梯度值密文,并对密文进行加权求和,得到聚合更新梯度值密文
Figure BDA0002655868660000185
Figure BDA0002655868660000186
进一步地,根据
Figure BDA0002655868660000187
可计算出
Figure BDA0002655868660000188
Figure BDA0002655868660000189
进一步地,服务器以密钥s为种子的密钥同态伪随机函数可得到随机数
Figure BDA00026558686600001810
又由公式
Figure BDA00026558686600001811
和密钥同态伪随机函数的特性可知:
Figure BDA00026558686600001812
即服务器可以抹去掩盖值
Figure BDA00026558686600001813
恢复出正确的聚合更新梯度值明文
Figure BDA00026558686600001814
进一步地,服务器根据随机梯度下降公式(SGD),利用聚合梯度值明文对模型进行更新,将更新后的模型发给客户端。
实施例1.2
本申请无集群的基于同态伪随机数的联邦学习隐私保护方案,如图2所示,包括步骤如下:
1.系统初始化:设定6个客户端和服务器进行初始化,获得各自密钥。设定门限值t=3。
6个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成6份,每个客户端获得自己的秘密份额si。例如6个客户端协同产生多项式f(x)=3+x+x2,客户端ID分别为1,2,3,4,5,6,所以客户端获得的秘密份额分别为:s1=5,s2=9,s3=15,s4=23,s5=33,s6=45;6个客户端分为两个组:ID为1,2,3的客户端分为一组,客户端的拉格朗日参数分别为:L1=3,L2=-3,L3=1;ID为4,5,6的客户端分为一组,客户端的拉格朗日参数分别为:L4=15,L5=-24,L6=10。
进一步地,每组3个客户端协同恢复密钥s,并把密钥s发送给服务器。ID为6的客户端掉线,导致第二组客户端由于数量小于门限值t=3,无法恢复出密钥,此时剩余5个客户端应重新分组,ID为1,2,3的客户端分为一组,客户端的拉格朗日参数分别为:L1=3,L2=-3,L3=1;ID为3,4,5的客户端分为一组,客户端的拉格朗日参数分别为:L3′=5,L4=-9,L5=5。两组客户端分别协同恢复出密钥s=3,
Figure BDA0002655868660000191
Figure BDA0002655868660000192
2.客户端机器学习:客户端进行机器学习得到更新梯度值,加密后上传到服务器。
客户端i在本地使用自己的数据进行机器学习,获得更新梯度值gi。客户端拥有的数据条数ni分别为:n1=234,n2=120,n3=98,n4=405,n5=240。更新梯度值gi分别为:
Figure BDA0002655868660000193
Figure BDA0002655868660000194
进一步地,客户端i以秘密份额si为种子,使用密钥同态伪随机函数产生随机数F(si,x),
Figure BDA0002655868660000195
Figure BDA0002655868660000196
进一步地,客户端i使用随机数F(si,x)对更新梯度值明文gi进行加密
Figure BDA0002655868660000201
得到更新梯度值密文
Figure BDA0002655868660000202
Figure BDA0002655868660000203
Figure BDA0002655868660000204
进一步地,客户端i将更新梯度值密文发送给服务器。
3.服务器计算梯度值:服务器收集聚合更新梯度值,对其解密并计算正确的梯度值。
服务器收集客户端发送的更新梯度值密文,并对密文进行加权求和,得到聚合更新梯度值密文
Figure BDA0002655868660000205
Figure BDA0002655868660000206
Figure BDA0002655868660000207
进一步地,根据
Figure BDA0002655868660000208
可计算出
Figure BDA0002655868660000209
Figure BDA00026558686600002010
Figure BDA00026558686600002011
进一步地,服务器以密钥s为种子的密钥同态伪随机函数可得到随机数
Figure BDA00026558686600002012
又由密钥恢复公式和密钥同态伪随机函数的特性可知:F(∑Lisi,x)=F(s,x),即服务器可以抹去掩盖值
Figure BDA00026558686600002013
恢复出正确的聚合更新梯度值明文
Figure BDA00026558686600002014
进一步地,服务器根据随机梯度下降公式(SGD),利用聚合梯度值明文对模型进行更新,将更新后的模型发给客户端。
实施例1.3
本申请有集群的基于同态伪随机数的联邦学习隐私保护方案,如图3所示,包括步骤如下
1、系统初始化:客户端,集群头,服务器端进行初始化,获得各自密钥。设定门限值t=3。
客户端分成4个集群,每个集群都选定一个客户端作为集群头。
进一步地,4个集群头使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成4份,每个集群头获得自己的秘密份额si。例如4个集群头协同产生多项式f(x)=2+3*x+x2,集群头ID分别为1,2,3,4,所以集群头获得的秘密份额分别为:s1=6,s2=12,s3=20,s4=30;集群头的拉格朗日参数分别为:L1=4,L2=-6,L3=4,L4=-1。
进一步地,集群头协同恢复出密钥s=2,发送给服务器端。
Figure BDA0002655868660000211
Figure BDA0002655868660000212
进一步地,在集群内部,客户端Uj与其他客户端应用VSS技术产生密钥k′i,把密钥k′i分割成q份,客户端Uj获得k′i的分片Ki,j。例如在ID为1的集群内6个客户端协同产生多项式f(x)=1+2*x+x2,客户端ID分别为1,2,3,4,5,6,所以客户端获得的秘密份额分别为:K1,1=4,K1,2=9,K1,3=16,K1,4=25,K1,5=36,K1,6=49;6个客户端分为两个组:ID为1,2,3的客户端分为一组,客户端的拉格朗日参数分别为:L1,1=3,L1,2=-3,L1,3=1;ID为4,5,6的客户端分为一组,客户端的拉格朗日参数分别为:L1,4=15,L1,5=-24,L1,6=10。
进一步地,在该集群内部,每组3个客户端协同恢复密钥k′1=2,发送给集群头。
Figure BDA0002655868660000213
Figure BDA0002655868660000214
2、客户端机器学习:客户端进行机器学习得到更新梯度值,加密后上传到集群头,集群头收集聚合更新梯度值,对其重新加密后上传到服务器端。
客户端Uj在本地利用自己的数据进行机器学习,获得更新梯度值gi,j。客户端拥有的数据条数nj分别为:n1=51,n2=46,n3=75,n4=88,n5=62,n6=73。更新梯度值g1,j分别为:
Figure BDA0002655868660000221
Figure BDA0002655868660000222
Figure BDA0002655868660000223
进一步地,客户端Uj以秘密份额Ki,j为种子使用密钥同态伪随机函数产生随机数F(Ki,j,x)。
Figure BDA0002655868660000224
Figure BDA0002655868660000225
Figure BDA0002655868660000226
进一步地,客户端Uj用随机数F(Ki,j,x)对更新梯度值gi,j进行加密
Figure BDA0002655868660000227
Figure BDA0002655868660000228
得到
Figure BDA0002655868660000229
并把
Figure BDA00026558686600002210
上传给集群头。
Figure BDA00026558686600002211
Figure BDA00026558686600002212
Figure BDA00026558686600002213
进一步地,集群头收集聚合所在集群内客户端发送的更新梯度值
Figure BDA00026558686600002214
ID为1的集群头聚合的更新梯度值密文为
Figure BDA00026558686600002215
进一步地,集群头以密钥k′i作为种子使用密钥同态伪随机函数产生一个随机数F(k′i,x),并利用F(k′i,x)恢复出更新梯度值明文g′i。ID为1的集群头恢复出的更新梯度值明文为
Figure BDA00026558686600002216
进一步地,集群头以秘密份额si作为种子使用密钥同态伪随机函数产生一个随机数F(si,x),并利用F(si,x)对g′i进行加密
Figure BDA00026558686600002217
得到
Figure BDA00026558686600002218
ID为1的集群头产生随机数
Figure BDA00026558686600002219
Figure BDA0002655868660000231
进一步地,集群头把
Figure BDA0002655868660000232
发送给服务器端。
3、服务器端计算梯度值;服务器端收集聚合更新梯度值,对其解密并计算正确的梯度值。
服务器端收集集群头发送的更新梯度值密文,并对其进行加权求和,得到聚合更新梯度值密文
Figure BDA0002655868660000233
Figure BDA0002655868660000234
进一步地,根据
Figure BDA0002655868660000235
可计算出
Figure BDA0002655868660000236
Figure BDA0002655868660000237
进一步地,服务器端以密钥s为种子的密钥同态伪随机函数可得到随机数
Figure BDA0002655868660000238
又由公式
Figure BDA0002655868660000239
和密钥同态伪随机函数的特性可知:
Figure BDA00026558686600002310
即服务器端可以抹去掩盖值
Figure BDA00026558686600002311
恢复出正确的聚合更新梯度值明文
Figure BDA00026558686600002312
进一步地,服务器端根据随机梯度下降公式(SGD),利用聚合梯度值明文对模型进行更新,将更新后的模型发给客户端。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (5)

1.基于同态伪随机数的联邦学习隐私保护方法,其特征是,包括:
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;n和t均为正整数;si表示第i个客户端的秘密份额;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
客户端接收服务器反馈回来的更新后的模型;
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;具体步骤包括:
S1011:每个客户端i选择秘密参数ai,j,1≤j≤t-1;构造多项式fi(x)=ai,0+ai,1x+ai,2x2+…+ai,t-1xt-1,x为客户端ID,t为门限值;
S1012:客户端i向客户端j发送fi(j),且fi(i)只有客户端i知道;
S1013:每个客户端i,收集其他客户端j发送的fj(i),得到:
Figure FDA0003801881690000011
f(i)即为客户端i得到的秘密份额si,由拉格朗日插值法恢复出密钥s,并把密钥s发送给服务器;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;具体步骤包括:
S1031:客户端以秘密份额si作为种子生成随机数F(si,x);
S1032:客户端使用随机数F(si,x)对得到的更新梯度值gi进行加密,即
Figure FDA0003801881690000021
ni为客户端拥有的数据条数,Li为拉格朗日插值参数,并将
Figure FDA0003801881690000022
更新梯度值密文发送给服务器;
所述机器学习模型的参数更新步骤详细步骤包括:
S103-41:服务器收集客户端发送的更新梯度值密文,并对密文进行加权求和,得到聚合更新梯度值密文
Figure FDA0003801881690000023
Figure FDA0003801881690000024
m是所有数据的数量;
S103-42:服务器以总密钥s为种子的密钥同态伪随机函数得到随机数F(s,x),又由密钥恢复公式
Figure FDA0003801881690000025
和密钥同态伪随机函数的特性可知:
Figure FDA0003801881690000026
即服务器能够抹去掩盖值
Figure FDA0003801881690000027
恢复出正确的聚合更新梯度值明文;
S103-43:服务器根据随机梯度下降法,利用聚合梯度值明文更新模型,并将更新后的模型发送给客户端。
2.如权利要求1所述的方法,其特征是,在将更新梯度值密文发送给服务器步骤之后,在客户端接收服务器反馈回来的更新后的模型步骤之前;还包括:机器学习模型的参数更新步骤;所述机器学习模型的参数更新步骤;包括:
服务器收集聚合所有客户端发送的更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用聚合更新梯度值对机器学习模型的参数进行更新,将更新后的机器学习模型的参数发给各个客户端。
3.如权利要求1所述的方法,其特征是,n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;允许被替换为:
S2011:n个的客户端分成m个不同的集群,每个集群内有q个客户端,每个集群都选定一个客户端作为集群头;
S2012:所有集群的集群头使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成m份,每个集群头获得自己的秘密份额si;至少t个集群头参与恢复密钥s,并把密钥s发送给服务器端;服务器端只知道密钥s,而不知道秘密份额si
所述S2012的具体步骤包括:
S20121:每个集群头i选择秘密参数ai,j,1≤j≤t-1;构造多项式fi(x)=ai,0+ai,1x+ai, 2x2+…+ai,t-1xt-1,x为集群头ID,t为门限值;
S20122:集群头i向集群头j发送fi(j),且fi(i)只有集群头i知道;
S20123:每个集群头i,收集其他集群头j发送给其的fj(i),得到
Figure FDA0003801881690000031
Figure FDA0003801881690000032
f(i)即为集群头得到的秘密份额si,由拉格朗日插值法即可恢复出密钥s,并把密钥s发送给服务器端;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;允许被替换为:
S2021:在每个集群内部,客户端使用可验证秘密分享VSS产生一个密钥k′i,把密钥k′i分割成q份,每个客户端获得自己的秘密份额ki,至少t个客户端参与恢复密钥k′i,并把密钥k′i发送给集群头;集群头只知道密钥k′i,而不知道秘密份额ki
S2022:客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
所述S2021的具体步骤包括:
S20211:在每个集群内部,客户端i选择参数bi,j,1≤j≤t-1;构造多项式fi(x)=bi,0+bi,1x+bi,2x2+…+bi,t-1xt-1,x为集群头ID,t为门限值;
S20212:客户端i向客户端j发送fi(j),且fi(i)只有客户端i知道;
S20213:对客户端i,收集其他客户端j发送到fj(i),得到
Figure FDA0003801881690000041
Figure FDA0003801881690000042
f(i)即为客户端得到的秘密份额ki,由拉格朗日插值法即可恢复出密钥k′i,并把k′i发送给所在集群的集群头;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;允许被替换为:
S2031:客户端以秘密份额ki作为种子使用密钥同态伪随机函数产生一个随机数F(ki,x);并用该随机数F(ki,x)对更新梯度值进行加密,然后将更新梯度值密文发送给所在集群的集群头;
S2032:集群头收集并聚合所有更新梯度值密文,以密钥k′i作为种子使用密钥同态伪随机函数产生一个随机数F(k′i,x),利用F(k′i,x)恢复出一个聚合更新梯度值明文;
集群头以秘密份额si作为种子使用密钥同态伪随机函数产生一个随机数F(si,x),用该随机数F(si,x)对得到的聚合更新梯度值明文进行加密并将其发送给服务器端;
所述S2031的具体步骤包括:
S20311:客户端以秘密份额ki作为种子生成随机数F(ki,x);
S20312:客户端使用随机数F(ki,x)对得到的更新梯度值gi进行加密,即
Figure FDA0003801881690000051
ni为客户端拥有的数据条数,Li为拉格朗日插值参数,并发送给集群头;
所述S2032的具体步骤包括:
S20321:集群头收集并聚合客户端发送的更新梯度值密文
Figure FDA0003801881690000052
n是所有数据的数量;
S20322:集群头以密钥k′i作为种子使用密钥同态伪随机函数产生一个随机数F(k′i,x),并利用F(k′i,x)恢复出一个聚合更新梯度值明文g′i
S20323:集群头以秘密份额si作为种子使用密钥同态伪随机函数产生一个随机数F(si,x);
S20324:集群头利用随机数F(si,x)对聚合更新梯度值明文g′i进行加密,即得到更新梯度值密文
Figure FDA0003801881690000053
并将其发送给服务器端,其中ni为集群大小,Li为拉格朗日插值参数;
所述机器学习模型的参数更新步骤,允许被替换为:
S203-4:服务器端收集聚合所有集群头发送的聚合更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用此聚合梯度值对模型进行更新,将更新后的模型发给各个客户端;
所述S203-4,具体步骤包括:
S203-41:服务器端收集集群头发送的更新梯度值密文,对密文进行加权求和
Figure FDA0003801881690000054
由步骤S20324中集群头得到的更新梯度值密文:
Figure FDA0003801881690000055
计算出:
Figure FDA0003801881690000061
S203-42:服务器端以总密钥s为种子使用密钥同态伪随机函数产生随机数F(s,x),又由公式
Figure FDA0003801881690000062
和密钥同态伪随机函数的特性可知:
Figure FDA0003801881690000063
即服务器端能够抹去掩盖值
Figure FDA0003801881690000064
恢复出正确的聚合更新梯度值明文;
S203-43:服务器端根据随机梯度下降法SGD,利用聚合梯度值明文对模型进行更新,将更新后的模型发给各个客户端。
4.基于同态伪随机数的联邦学习隐私保护系统,其特征是,包括:服务器和若干个客户端;
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;n和t均为正整数;si表示第i个客户端的秘密份额;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
服务器收集聚合所有客户端发送的更新梯度值密文,以总密钥s作为种子使用密钥同态伪随机函数产生一个随机数F(s,x),用该随机数F(s,x)进行对更新梯度值密文处理,恢复出聚合更新梯度值明文,使用聚合梯度值对机器学习模型的参数进行更新,将更新后的机器学习模型的参数发给各个客户端;
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;具体步骤包括:
S1011:每个客户端i选择秘密参数ai,j,1≤j≤t-1;构造多项式fi(x)=ai,0+ai,1x+ai,2x2+…+ai,t-1xt-1,x为客户端ID,t为门限值;
S1012:客户端i向客户端j发送fi(j),且fi(i)只有客户端i知道;
S1013:每个客户端i,收集其他客户端j发送的fj(i),得到:
Figure FDA0003801881690000071
f(i)即为客户端i得到的秘密份额si,由拉格朗日插值法恢复出密钥s,并把密钥s发送给服务器;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;具体步骤包括:
S1031:客户端以秘密份额si作为种子生成随机数F(si,x);
S1032:客户端使用随机数F(si,x)对得到的更新梯度值gi进行加密,即
Figure FDA0003801881690000072
ni为客户端拥有的数据条数,Li为拉格朗日插值参数,并将
Figure FDA0003801881690000073
更新梯度值密文发送给服务器;
所述机器学习模型的参数更新步骤详细步骤包括:
S103-41:服务器收集客户端发送的更新梯度值密文,并对密文进行加权求和,得到聚合更新梯度值密文
Figure FDA0003801881690000074
Figure FDA0003801881690000075
m是所有数据的数量;
S103-42:服务器以总密钥s为种子的密钥同态伪随机函数得到随机数F(s,x),又由密钥恢复公式
Figure FDA0003801881690000076
和密钥同态伪随机函数的特性可知:
Figure FDA0003801881690000081
即服务器能够抹去掩盖值
Figure FDA0003801881690000082
恢复出正确的聚合更新梯度值明文;
S103-43:服务器根据随机梯度下降法,利用聚合梯度值明文更新模型,并将更新后的模型发送给客户端。
5.一种客户端,其特征是,其被配置为:
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;n和t均为正整数;si表示第i个客户端的秘密份额;
每个客户端均进行联邦学习,每个客户端在本地使用各自的数据进行机器学习模型训练,产生更新梯度值;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;
客户端接收服务器反馈回来的更新后的模型;
n个客户端使用可验证秘密分享VSS产生一个密钥s,把密钥s分割成n份,每个客户端获得自己的秘密份额si;至少t个客户端参与恢复密钥s,并把密钥s发送给服务器;具体步骤包括:
S1011:每个客户端i选择秘密参数ai,j,1≤j≤t-1;构造多项式fi(x)=ai,0+ai,1x+ai,2x2+…+ai,t-1xt-1,x为客户端ID,t为门限值;
S1012:客户端i向客户端j发送fi(j),且fi(i)只有客户端i知道;
S1013:每个客户端i,收集其他客户端j发送的fj(i),得到:
Figure FDA0003801881690000083
f(i)即为客户端i得到的秘密份额si,由拉格朗日插值法恢复出密钥s,并把密钥s发送给服务器;
每个客户端以秘密份额si作为种子,使用密钥同态伪随机函数产生一个伪随机数F(si,x);并用随机数F(si,x)对更新梯度值进行加密得到更新梯度值密文,然后将更新梯度值密文发送给服务器;具体步骤包括:
S1031:客户端以秘密份额si作为种子生成随机数F(si,x);
S1032:客户端使用随机数F(si,x)对得到的更新梯度值gi进行加密,即
Figure FDA0003801881690000091
ni为客户端拥有的数据条数,Li为拉格朗日插值参数,并将
Figure FDA0003801881690000092
更新梯度值密文发送给服务器;
所述机器学习模型的参数更新步骤详细步骤包括:
S103-41:服务器收集客户端发送的更新梯度值密文,并对密文进行加权求和,得到聚合更新梯度值密文
Figure FDA0003801881690000093
Figure FDA0003801881690000094
m是所有数据的数量;
S103-42:服务器以总密钥s为种子的密钥同态伪随机函数得到随机数F(s,x),又由密钥恢复公式
Figure FDA0003801881690000095
和密钥同态伪随机函数的特性可知:
Figure FDA0003801881690000096
即服务器能够抹去掩盖值
Figure FDA0003801881690000097
恢复出正确的聚合更新梯度值明文;
S103-43:服务器根据随机梯度下降法,利用聚合梯度值明文更新模型,并将更新后的模型发送给客户端。
CN202010886968.4A 2020-08-28 2020-08-28 基于同态伪随机数的联邦学习隐私保护方法及系统 Active CN112149160B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010886968.4A CN112149160B (zh) 2020-08-28 2020-08-28 基于同态伪随机数的联邦学习隐私保护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010886968.4A CN112149160B (zh) 2020-08-28 2020-08-28 基于同态伪随机数的联邦学习隐私保护方法及系统

Publications (2)

Publication Number Publication Date
CN112149160A CN112149160A (zh) 2020-12-29
CN112149160B true CN112149160B (zh) 2022-11-01

Family

ID=73889499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010886968.4A Active CN112149160B (zh) 2020-08-28 2020-08-28 基于同态伪随机数的联邦学习隐私保护方法及系统

Country Status (1)

Country Link
CN (1) CN112149160B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112347500B (zh) * 2021-01-11 2021-04-09 腾讯科技(深圳)有限公司 分布式系统的机器学习方法、装置、系统、设备及存储介质
CN112865953B (zh) * 2021-02-01 2022-05-17 浙江大学 基于辅助服务器的安全多方计算方法、装置和系统
CN113037460B (zh) * 2021-03-03 2023-02-28 北京工业大学 基于同态加密和秘密共享的联邦学习隐私保护方法
CN112906052B (zh) * 2021-03-09 2022-12-23 西安电子科技大学 联邦学习中多用户梯度置换的聚合方法
CN113051590B (zh) * 2021-03-19 2024-03-26 华为技术有限公司 一种数据处理方法和相关设备
CN113032833B (zh) * 2021-04-14 2023-02-17 同盾控股有限公司 用户查询方法和装置、存储介质、电子设备
CN113642738B (zh) * 2021-08-12 2023-09-01 上海大学 基于层次式网络结构的多方安全协作机器学习方法及系统
CN113630250B (zh) * 2021-08-23 2023-04-25 济南大学 基于数据加密的模型训练方法及系统
CN113449329A (zh) * 2021-08-31 2021-09-28 国网浙江省电力有限公司信息通信分公司 基于安全分享的联邦学习场景下的能源数据融合计算方法
US11882211B2 (en) 2021-09-29 2024-01-23 Seagate Technology Llc Multiple evaluation threshold function secret sharing
CN114090943A (zh) * 2021-11-22 2022-02-25 杭州萝卜智能技术有限公司 基于区间分组的随机摇号及摇号结果验证方法、系统
CN114285556B (zh) * 2021-12-15 2023-12-01 西藏北纬科技有限公司 一种基于联邦学习的隐私保护特征工程方法
CN114168988B (zh) * 2021-12-16 2024-05-03 大连理工大学 一种联邦学习模型聚合方法及电子装置
CN114444069B (zh) * 2021-12-17 2023-04-07 中国科学院信息工程研究所 一种恶意模型下高效的阈值安全多方计算方法
CN113965314B (zh) * 2021-12-22 2022-03-11 深圳市洞见智慧科技有限公司 同态加密处理方法及相关设备
CN114648130B (zh) * 2022-02-07 2024-04-16 北京航空航天大学 纵向联邦学习方法、装置、电子设备及存储介质
CN114817958B (zh) * 2022-04-24 2024-03-29 山东云海国创云计算装备产业创新中心有限公司 一种基于联邦学习的模型训练方法、装置、设备及介质
CN117061133A (zh) * 2022-05-06 2023-11-14 华为技术有限公司 一种模型安全聚合方法及装置
CN115130814B (zh) * 2022-05-10 2023-05-02 中南大学 一种纵向数据融合的隐私计算方法及系统
CN114978533B (zh) * 2022-05-12 2023-06-30 西安邮电大学 基于有权重分层异步联邦学习的可验证安全聚合方法
CN115378707B (zh) * 2022-08-23 2024-03-29 西安电子科技大学 基于门限同态的自适应采样联邦学习隐私保护方法
CN116208345B (zh) * 2023-05-04 2023-08-22 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于秘密共享的群组认证方法及相关设备
CN116886271B (zh) * 2023-09-07 2023-11-21 蓝象智联(杭州)科技有限公司 一种用于纵向联邦XGboost模型训练的梯度聚合方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105450394A (zh) * 2015-12-30 2016-03-30 中国农业大学 一种基于门限秘密共享的份额更新方法及装置
CN110674528A (zh) * 2019-09-20 2020-01-10 深圳前海微众银行股份有限公司 联邦学习隐私数据处理方法、设备、系统及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572253B (zh) * 2019-09-16 2023-03-24 济南大学 一种联邦学习训练数据隐私性增强方法及系统
CN110955907B (zh) * 2019-12-13 2022-03-25 支付宝(杭州)信息技术有限公司 一种基于联邦学习的模型训练方法
CN111563265A (zh) * 2020-04-27 2020-08-21 电子科技大学 一种基于隐私保护的分布式深度学习方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105450394A (zh) * 2015-12-30 2016-03-30 中国农业大学 一种基于门限秘密共享的份额更新方法及装置
CN110674528A (zh) * 2019-09-20 2020-01-10 深圳前海微众银行股份有限公司 联邦学习隐私数据处理方法、设备、系统及存储介质

Also Published As

Publication number Publication date
CN112149160A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN112149160B (zh) 基于同态伪随机数的联邦学习隐私保护方法及系统
CN109684855B (zh) 一种基于隐私保护技术的联合深度学习训练方法
CN113037460B (zh) 基于同态加密和秘密共享的联邦学习隐私保护方法
Mandal et al. PrivFL: Practical privacy-preserving federated regressions on high-dimensional data over mobile networks
Bonawitz et al. Practical secure aggregation for privacy-preserving machine learning
CN110572253A (zh) 一种联邦学习训练数据隐私性增强方法及系统
CN111935156B (zh) 一种联邦学习的数据隐私保护方法
CN113434873A (zh) 一种基于同态加密的联邦学习隐私保护方法
CN113420232B (zh) 一种面向隐私保护的图神经网络联邦推荐方法
CN108847934B (zh) 一种多维量子同态加密方法
CN115392487A (zh) 基于同态加密的隐私保护非线性联邦支持向量机训练方法及系统
CN112819058B (zh) 一种具有隐私保护属性的分布式随机森林评估系统与方法
Wu et al. Towards efficient secure aggregation for model update in federated learning
CN111104968B (zh) 一种基于区块链的安全svm训练方法
CN113240129A (zh) 一种面向多类型任务图像分析的联邦学习系统
CN110399738B (zh) 具有隐私保护的分布式在线优化算法
CN117421762A (zh) 基于差分隐私和同态加密的联邦学习隐私保护方法
CN116628744A (zh) 一种具有轻量级验证机制的隐私保护联邦学习方法
Cheung et al. Fedsgc: Federated simple graph convolution for node classification
CN114978533A (zh) 基于有权重分层异步联邦学习的可验证安全聚合方法
CN116882524A (zh) 一种满足参与方的个性化隐私保护需求的联邦学习方法和系统
CN118445844A (zh) 一种联邦学习数据隐私保护方法、装置及可读存储介质
CN116561799A (zh) 一种基于云服务器的多方隐私集合运算方法
CN108880782B (zh) 一种云计算平台下最小值的保密计算方法
Ghavamipour et al. Federated synthetic data generation with stronger security guarantees

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant