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

一种去中心化的多服务器安全聚合系统和方法与流程

2022-11-23 15:10:21 来源:中国专利 TAG:


1.本发明涉及数据隐私保护领域,特别涉及一种联邦学习中的安全聚合方法。


背景技术:

2.联邦学习是一种分布式机器学习框架,它允许客户端不直接上传私有的训练数据,而是上传模型参数来共同训练模型。这样可以在一定程度上可以保护了客户端原始数据的隐私,但已有研究表明,攻击者仍可以通过上传的模型梯度来反推出原始的训练数据。
3.为了保护客户端私有参数的安全性,目前已有研究提出安全聚合协议,也就是在联邦学习中,可以在不泄露单个客户端的私有参数的情况下,使服务器获得全局模型参数。另外,为了防止聚合结果被恶意篡改,可验证的安全聚合协议越来越引起来关注。其中,基于可信第三方的安全聚合系统是一种方向,但现实中可能会有一些场景,并不存在可信第三方;另外还有一种方向,就是基于客户端与每个服务器之间均建立安全信道的多服务器安全聚合,但在现实中客户端多为手机或者物联网设备,与多服务器之间的这种安全信道昂贵且难以实现(客户端设备)。


技术实现要素:

4.本公开针对以上情况,提供一种去中心化的、且无需客户端与多服务器之间建立安全信道的安全聚合系统及方法,其能够在没有可信第三方和客户端与服务器之间安全信道的情况下,实现安全可验证的联邦学习聚合。
5.本公开提供的去中心化多服务器安全聚合系统,包括:客户端,服务器,以及由服务器共同进行维护的公告板系统,其中:
6.公告板,为各参与方的数据交互中介,所有参与方输出的数据均上传至公告板,并从公告板下载所需的数据;
7.客户端,用于生成同态变色龙随机数,计算自己私有输入的同态变色龙哈希值;并基于加法同态秘密共享,针对不同服务器分别生成自己私有输入和同态变色龙随机数的秘密共享份额,将二者经服务器的公钥加密生成密文,输出密文和所述同态变色龙哈希值;
8.服务器,用于与其他服务器共同参与生成同态变色龙哈希公共参数,并分发给所有参与方;生成自己的公私钥对并将公钥公开;对收集到的密文解密,将各客户端秘密共享份额进行秘密聚合,输出聚合结果;
9.该系统为公开可验证,任何一方均可利用公告板上公布的聚合结果和所述同态变色龙哈希公共参数及同态变色龙哈希值,对聚合结果进行秘密重构,并基于变色龙哈希函数的同态性对聚合结果进行验证。
10.进一步地,系统包括运行于所述客户端、服务器和可信第三方的密码组件,所述密码组件包括:
11.公钥加密模块,用于生成服务器的公私钥对,对客户端发送的消息进行加密,以及在服务器端进行解密;
12.加法同态秘密共享模块,用于基于加法同态秘密共享,客户端生成自己私有输入和同态变色龙随机数的秘密共享份额,并分发给服务器;在服务器端进行秘密聚合;以及对聚合结果进行秘密重构;
13.同态变色龙哈希模块,用于生成同态变色龙哈希公共参数和同态变色龙哈希值,以及基于变色龙哈希函数的同态性对聚合结果进行验证。
14.本公开还提供了对应上述系统的基于同态变色龙哈希的去中心化多服务器安全聚合方法,包括以下步骤:
15.公共参数生成:由多服务器共同生成同态变色龙哈希的公共参数,分发给所有参与方;
16.密钥生成:服务器生成自己的公私钥对,并公布公钥;
17.输入共享生成:客户端生成同态变色龙随机数,计算自己私有输入的同态变色龙哈希值;并基于加法同态秘密共享,针对不同服务器分别生成自己私有输入和同态变色龙随机数的秘密共享份额,二者利用服务器的公钥加密生成密文,输出密文和同态变色龙哈希值;
18.聚合:服务器解密收到的密文,对收到的各客户端秘密共享份额进行秘密聚合,输出聚合结果;
19.验证:利用公告板上公布的聚合结果和所述同态变色龙哈希公共参数及同态变色龙哈希值,对聚合结果进行秘密重构,并基于变色龙哈希函数的同态性对聚合结果进行验证;
20.其中,所有参与方输出的数据均输出至公告板,并从公告板下载所需的数据。
21.进一步地,所述公共参数生成采用针对经典离散对数问题的sigma协议经fiat-shamir转化后的零知识证明算法:
22.给定公共输入(g,h,p),其中p为素数且|p|=κ,g为的一个阶为p的子群的生成元,κ为安全参数;证明者向验证者证明他知道α使得h=g
α
23.prove(g,h,α)

(a,z):证明者以g,h和私有输入α作为输入,其中(a,z):证明者以g,h和私有输入α作为输入,其中
24.(1)证明者随机选取并计算a=gr;
25.(2)对于哈希函数计算e=h(g,h,a);
26.(3)计算z=r e
·
α;
27.(4)输出证明(a,z);
28.verify(g,h,a,z)

0/1:验证者以g,h和证明(a,z)为输入,
29.(1)根据上述哈希函数h(
·
),计算e=h(g,h,a);
30.(2)验证等式gz=a
·
he是否成立;
31.(3)如果上述等式成立,则接受证明输出1,否则拒绝证明,输入0;
32.服务器sj随机选取并计算得到利用prove(g,hj,αj)

(aj,zj),将(hj,aj,zj)公开;
33.服务器sj或客户端ci均可运行零知识验证算法verify(g,h
j’,aj′
,zj′
),在对于j

∈{1,2,

m}均验证通过的情况下,得到作为同态变色龙哈希的公共参数chpp,其中j=1,

m,m为聚合系统中多服务器的个数。
34.进一步地,该方法还包括将客户端的私有输入参数打包为一个单独的大整数的步骤。
35.进一步地,采用rsa公钥加密算法进行公私钥对生成、公钥加密和密文解密。
36.进一步地,所述加法同态秘密共享采用shamir秘密分享方法,用于生成秘密共享份额,秘密聚合,以及聚合结果的秘密重构。
37.采用基于离散对数假设的同态变色龙哈希算法进行聚合验证信息的生成及聚合结果的验证,具体包括:
38.公共参数生成:ch.gen(1
κ
)

(chpp=(p,g,g,h),td=α),其中,1
κ
为安全参数;chpp为公共参数;td为陷门;g为一个阶为p的循环群的生成元;h为群元素,的生成元;h为群元素,是模p的整数集合;
39.哈希值计算:ch.hash((p,g,g,h),x,r)

(ch=g
xhr
),其中,ch为哈希值,x为待哈希的消息;r为随机数,
40.所述哈希算法还满足:对于任意给定的x和x

,对于任意的r可以找到r

=(x-x

αr)/α满足:ch.hash(chpp,x,r)=ch.hash(chpp,x

,r

);以及:
41.ch.hash(chpp,x1 x2,r1 r2)=ch.hash(chpp,x1,r1)
·
ch.hash(chpp,x2,r2)
42.对于聚合结果,则验证ch.hash(chpp,y,r)=π
i∈[1,n]
chi是否成立,其中y,r为聚合结果,n为客户端数量。
[0043]
本公开提供的去中心化多服务器安全聚合系统及方法,通过多服务器共同生成公共参数,由公告板系统传递和获取数据,进而通过加法同态秘密共享和公钥加密,保证客户端与多服务器之间信息传递与聚合的安全性、正确性,由此,客户端与服务器之间不再依赖于可信第三方,并且不依赖于专用的安全信道,系统架构更加简单易实现;其次,采用同态变色龙哈希进行聚合验证,保证聚合的完整性,相较于目前常用的验证方案,该方法减少了需要提交传送的群元素,减少了通信负担。由此实现了多服务器聚合系统简捷、安全、高效的综合优化方案。
附图说明
[0044]
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例方式中,相同的参考标号通常代表相同部件。
[0045]
图1显示根据本公开的安全聚合系统实施例结构示意图;
[0046]
图2显示根据本公开的安全聚合方法实施例流程图。
具体实施方式
[0047]
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的
优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0048]
本公开提供了一种主要针对多服务器联邦学习场景的安全聚合系统。
[0049]
敌手模型:假设所有客户端均诚实地执行协议,敌手可以控制最多t-1(t为秘密共享阈值)个服务器。其目标有两个:1)推断出诚实客户端方的私有模型参数(如梯度);2)让诚实客户端接受一个伪造的聚合结果。
[0050]
与此相应,安全聚合要做到:保证诚实客户端私有模型参数的安全性,防止被敌手推测出;保证聚合完整性,即避免让诚实客户端接受伪造的聚合结果。另外,现实世界中参与训练的客户端可能会由于网络条件不好或电量不足等有中途掉线的情况,还希望尽量减少此类情况带来的影响。
[0051]
具体地,以医疗辅助诊断场景为示例,如附图1所示,m家医院/医疗机构sj(j=1,..m)和n个患者的医疗设备ci(i=1,..n)进行联合训练,患者医疗设备(客户端)、医院/医疗机构(服务器)构成多服务器联邦学习系统。为了防止医院/医疗机构勾结篡改联邦学习的聚合结果,以及提高系统交互效率,本实施例构建的安全聚合系统特征如下:
[0052]
(1)以系统公告板作为数据传递的桥梁,即所有参与方输出的数据均上传至所述公告板,并从公告板下载所需的数据。
[0053]
该公告板由多服务器共同维护,所有用户(客户端/服务器)均可上传或下载公告板上的所有数据。本实施例中,客户端与服务器通过公告板输出和获取数据,进而通过秘密共享和公钥加密等手段保证数据安全,从而使得客户端与服务器之间不再依赖于必须建立安全信道。
[0054]
(2)多服务器共同生成同态变色龙哈希公共参数并分发给所有参与方。
[0055]
(3)客户端ci:生成同态变色龙随机数,计算自己私有输入的同态变色龙哈希值;并基于加法同态秘密共享,针对不同服务器分别生成自己私有输入和同态变色龙随机数的秘密共享份额,将二者经公钥加密生成密文{ct
i,j
}
j∈[1,m]
,输出密文和所述同态变色龙哈希值。
[0056]
(4)服务器sj:生成自己的公私钥对,并将公钥公布;对收集到的各客户端密文以自己的私钥进行解密;同样基于加法同态秘密共享,对各客户端的秘密共享份额进行秘密聚合并输出聚合结果yj。
[0057]
(5)系统为公开可验证,参与方中的任何一方,均可利用公告板上发出的聚合结果和同态变色龙哈希公共参数及同态变色龙哈希值,对聚合结果进行秘密重构,并基于变色龙哈希函数的同态性对聚合结果进行验证,输出验证结果。
[0058]
本实施例中,系统的上述安全聚合功能由运行于客户端、服务器的密码组件完成。其包含的计算模块包括:
[0059]
·
公钥加密模块(pke.kgen,pke.enc,pke.dec),满足ind-cpa安全性(即选择明文攻击的不可区分性)
[0060]
为了实现客户端ci与服务器sj之间的安全通信,公钥加密模块对于客户端ci将要发送给sj的消息m
i,j
,用sj的公钥pkj进行加密,得到只有服务器sj才能解密的密文ct
i,j
;服务器收到密文后利用其私钥skj完成解密。
[0061]
具体包括子模块:
[0062]
pke.kgen(1
κ
)

(sk,pk):以安全参数1
κ
为输入,输出一对公私钥对(sk,pk);
[0063]
pke.enc(pk,m)

ct:以公钥pk和消息m为输入,产生密文ct;
[0064]
pke.dec(sk,ct)

m:以私钥sk和密文消息ct为输入,解密出消息m。
[0065]
·
加法同态秘密共享模块(ss.share,ss.eval,ss.recon)
[0066]
为了防止敌手推断客户的私有模型参数或聚合结果被恶意篡改,该模块用于将客户端的私有参数和验证信息进行分解,生成针对不同服务器的秘密共享份额,在服务器端进行秘密聚合,以及对聚合结果的秘密重构。具体包括子模块:
[0067]067]
秘密共享份额生成,以秘密值xi和阈值t以及服务器集合{sj}
j∈[1,m]
作为输入,为每个服务器sj生成秘密份额,其中j∈[1,m];
[0068][0068]
基于加法同态性质,给定一系列分享给同一服务器sj的秘密份额输出一个加法聚合份额yj;
[0069]
ss.recon(t,{yj}
j∈τ
)

y:秘密重构,给定阈值t,和一系列聚合共享值yj,其中j满足当|τ|≥t时,输出否则y=


[0070]
·
同态变色龙哈希模块
[0071]
用于产生聚合验证信息,以及对聚合结果进行验证。作为优选,本实施例中,基于现有的变色龙哈希算法,给出简化变色龙哈希函数(chameleon-hash)(ch.gen,ch.hash,ch.hashcheck,ch.adapt)的定义,具体包括:
[0072]
ch.gen(1
κ
)

(chpp,td):以安全参数为输入,输出公共参数chpp和陷门td;
[0073]
ch.hash(chpp,x,r)

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

0/1:如果验证通过,输出1,如果未通过验证,则输出0;
[0075]
ch.adapt(td,x,r,ch,x

)
→r′
:以陷门td,哈希值hash,原消息x和原随机数r和新的消息x

,可以输出一个新的随机数r

使得ch.hashcheck(chpp,x

,r

,hash)=1。
[0076]
本公开中要求的变色龙哈希函数与一般的哈希函数相比,除了需要满足抗碰撞性外,还需要满足变色龙性质,即对于任意给定的x和x

,对于任意的r可以找到:
[0077]r′←
ch.adapt(td,x,r,hash,x

)
[0078]
满足ch.hash(chpp,x,r)=ch.hash(chpp,x

,r

)。
[0079]
即该变色龙哈希函数需满足:正确性,r的计算不可区分性(r随机产生或通过ch.adapt(
·
)产生),以及抗碰撞性;此外,还要求具有同态性,也就是
[0080]
ch.hash(chpp,x1 x2,r1 r2)=ch.hash(chpp,x1,r1)
·
ch.hash(chpp,x2,r2)
[0081]
(6)作为优选,本实施例采用非交互模式,即客户端只提交一次信息即可,避免了参与训练的客户端由于中途掉线等情况带来的影响。
[0082]
附图2给出了可应用于上述多服务器安全聚合系统的聚合方法示例性实施例流程图。包括以下步骤:
[0083]
s101,公共参数生成:
[0084]
采用抗恶意勾结的多方安全计算生成同态变色龙哈希的公共参数chpp。
[0085]
考虑到服务器可能互相勾结情况,优选基于离散对数假设的同态变色龙哈希的公共参数chpp=(p,g,g,h)的一种生成方法:
[0086]
采用针对经典离散对数问题的sigma协议经fiat-shamir转化后的零知识证明算法:
[0087]
给定公共输入(g,h,p),其中p为素数且|p|=κ,g为的一个阶为p的子群的生成元,κ为安全参数;证明者向验证者证明他知道α使得h=g
α
[0088]
prove(g,h,α)

(a,z):证明者以g,h和私有输入α作为输入,其中(a,z):证明者以g,h和私有输入α作为输入,其中
[0089]
(1)证明者随机选取并计算a=gr;
[0090]
(2)对于哈希函数计算e=h(g,h,a);
[0091]
(3)计算z=r e
·
α;
[0092]
(4)输出证明(a,z);
[0093]
verify(g,h,a,z)

0/1:验证者以g,h和证明(a,z)为输入,
[0094]
(1)根据上述哈希函数h(
·
),计算e=h(g,h,a);
[0095]
(2)验证等式gz=a
·
he是否成立;
[0096]
(3)如果上述等式成立,则接受证明输出1,否则拒绝证明,输入0;
[0097]
服务器sj随机选取并计算得到利用prove(g,hj,αj)

(aj,zj),将(hj,aj,zj)公开;
[0098]
服务器sj或客户端ci均可运行零知识验证算法verify(g,hj′
,aj′
,zj′
),在对于j

∈{1,2,

m}均验证通过的情况下,得到作为同态变色龙哈希的公共参数chpp,其中j=1,

m,m为聚合系统中多服务器的个数。
[0099]
s102,密钥生成:
[0100]
给定安全参数1
κ
,服务器sj运行生成算法pke.kgen(1
κ
),生成自己的公私钥对(pkj,skj),并将公钥pkj进行公开。
[0101]
s103,输入共享生成:
[0102]
给定秘密共享算法阈值t,公共参数chpp以及服务器公钥列表{pkj}
j∈[1,m]
,客户端随机选取同态变色龙随机数,生成针对不同服务器的私有输入秘密共享份额和同态变色龙随机数秘密共享份额,计算私有输入的同态变色龙哈希值,基于加法同态秘密共享算法,将二者经服务器的公钥加密生成密文,输出密文及同态变色龙哈希值。
[0103]
具体包括以下步骤:
[0104]
(1)利用加法同态秘密共享算法,生成自己的私有输入xi对各服务器{sj}
j∈[1,m]

秘密共享份额
[0105]
(2)随机抽取变色龙随机数ri,计算私有输入xi的同态变色龙哈希值chi←
ch.hash(chpp,xi,ri);
[0106]
(3)利用加法同态秘密共享算法,生成变色龙随机数ri对各服务器{sj}
j∈[1,m]
的秘密共享份额
[0107]
(4)对于j∈[1,m],利用服务器sj的公钥pkj,生成对应密文,生成对应密文
[0108]
(5)输出密文{ct
i,j
}
j∈[1,m]
及变色龙哈希值chi。
[0109]
s104,聚合
[0110]
服务器以自己的私钥对发送给自己的密文进行解密,同样利用加法同态秘密共享算法,对收集到的各客户端秘密共享份额进行聚合并输出。
[0111]
具体包括以下步骤:
[0112]
(1)服务器sj根据自己的私钥skj,对收集到的客户端密文{ct
i,j
}
i∈[1,n]
进行解密,得到其中i∈[1,n];
[0113]
(2)利用加法同态秘密共享算法,计算得到秘密共享聚合值(2)利用加法同态秘密共享算法,计算得到秘密共享聚合值和
[0114]
(3)输出(yj,rj)。
[0115]
s105,验证:
[0116]
利用公告板上公布的聚合结果和所述同态变色龙哈希公共参数及同态变色龙哈希值,对聚合结果进行秘密重构,并基于变色龙哈希函数的同态性对聚合结果进行验证。
[0117]
即根据给定公共参数chpp,阈值t,收集到的客户端变色龙哈希值{chi}
i∈[1,n]
,及服务器输出的共享聚合值和其中且|τ|≥t,利用变色龙哈希函数的同态性进行验证,具体包括以下步骤:
[0118]
(1)利用加法同态秘密共享的秘密重构算法,分别恢复出y

ss.recon(t,{yj}
j∈τ
)和r

ss.recon(t,{rj}
j∈τ
);
[0119]
(2)利用变色龙哈希算法的同态性验证等式ch.hash(chpp,y,r)=π
i∈[1,n]
chi是否成立;
[0120]
(3)如果上述等式成立则输出y,否则输出


[0121]
作为优选,本实施例中的公钥加密采用了rsa公钥加密算法。另外也可以考虑dh/ecdsa/ecdh/国密sm2算法,或者其他符合ind-cpa安全的公钥加密算法。
[0122]
作为优选,本实施例中的加法同态秘密共享采用了shamir的t-out-of-n秘密共享方案。
[0123]
另外,考虑到联邦学习中客户端的私有模型参数一般都为高维度(10k)小整数(3byte)的向量,本实施例优选对这样的向量打包为一个单独的大整数。从而适用于加法同态秘密共享计算和同态变色龙哈希计算。
[0124]
作为优选,本实施例采用了基于离散对数假设的同态变色龙哈希算法,包括:
[0125]
·
公共参数生成ch.gen(1
κ
)

(chpp=(p,g,g,h),td=α),其中g为为一个阶为p的循环群的生成原,h为群元素
[0126]
·
哈希值生成ch.hash((p,g,g,h),x,r)

(ch=g
xhr
),其中
[0127]
·
哈希验证ch.hashcheck((p,g,g,h),x,r,ch)

0/1,如果ch=g
xhr
则输出1,否则输出0;
[0128]
·
ch.adapt((p,g,g,h),α,x,r,ch,x

)
→r′
,其中r

=(x-x

αr)/α。
[0129]
可以看出该变色龙哈希满足正确性、同态性、抗碰撞性和不可区分性均基于离散对数的假设上。
[0130]
示例性实施例的聚合效果分析:
[0131]
(1)聚合结果的正确性。当所有参与方均诚实执行协议,根据加法同态秘密共享算法的正确性可以得出另外基于变色龙哈希算法的同态性,可以保证ch.hash(chpp,y,r)=π
i∈[1,n]
chi等式成立,成功输出
[0132]
(2)诚实客户端输入参数xi的安全性。在随机预言机模型下,本公开的安全性是建立在离散对数的假设和秘密分享算法的安全性上的。
[0133]
(3)聚合结果的可验证性。可验证性是根据变色龙哈希算法的同态性和抗碰撞性来获得。
[0134]
(4)更小的客户端通信负载。本公开优选采用非交互的安全聚合方式,在整个过程中,客户端只需提交一次即可,大幅度地节约了通信带宽。另外,注意到假设存在客户端与多服务器之间的安全信道,本公开采用变色龙哈希算法来实现,客户端只需向服务器上传3个群元素,比现有的基于安全信道的多服务器安全聚合系统少1个群元素。
[0135]
(5)去中心化公共参数安全性——抗恶意敌手和抗m-1服务器勾结:服务器只需要确保自己按照协议诚实运行,即可保证的分布与ch.gen(1
κ
)生成的公共参数分布一致(因为为随机生成,也是随机的)。
[0136]
上述技术方案只是本发明的示例性实施例,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施例所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献