一种数据保护方法、系统、电子设备及存储介质与流程
未命名
09-10
阅读:71
评论:0

1.本技术涉及数据处理技术领域,尤其涉及一种数据保护方法、系统、电子设备及存储介质。
背景技术:
2.医疗数据包含了患者大量的隐私信息,医疗机构需要保证医疗数据不被泄露的情况下对医疗数据共享。目前有多种医疗数据保护技术可以很好地保护医疗数据的安全,使医疗数据得到最大化的利用,例如,同态加密算法。但是,使用同态加密算法时,用于进行同态加密的服务器会被“侧信息道攻击—reveal”的方式窃取服务器端的隐私加密数据,从而导致医疗数据被泄露,患者隐私被窃取。
技术实现要素:
3.本技术实施例提供一种数据保护方法、系统、电子设备及存储介质,用于保护服务器端的加密数据。
4.第一方面,提供一种数据保护方法,应用于服务器,服务器为联邦学习服务器,以及服务器包括英特尔软件保护扩展程序intel sgx生成的可信执行环境;包括:生成公共参数和主密钥,向多个客户端发送公共参数,公共参数用于指示客户端根据公共参数生成客户端的公钥和客户端的私钥;接收多个客户端分别发送的第一加密模型信息和客户端的公钥,并根据主密钥、公共参数和多个客户端的公钥分别解密多个客户端分别对应的第一加密模型信息,得到多个第一模型信息;第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;根据多个第一模型信息获得第一全局模型信息;第一全局模型信息用于优化客户端的本地模型信息;根据多个客户端的公钥分别加密第一全局模型信息,得到多个第一加密全局模型信息,以及向多个客户端分别发送以对应公钥加密获得第一加密全局模型信息;第一加密全局模型信息用于使客户端获得第一全局模型信息。
5.可选的,上述数据保护方法,还包括:接收多个客户端分别发送的第二加密模型信息;根据主密钥、公共参数和多个客户端的公钥分别解密多个客户端分别对应的第二加密模型信息,获得多个客户端的第二模型信息;第二加密模型信息,表示根据客户端的公钥和公共参数加密后的第二模型信息;第二模型信息,表示根据客户端的学习效率、信息平均梯度和第一全局模型信息优化第一模型信息的结果;信息平均梯度,根据第一加密全局模型信息获得;根据多个客户端的第二模型信息获得第二全局模型信息,根据多个客户端的公钥加密分别第二全局模型信息,获得多个客户端对应的第二加密全局模型信息;第二全局模型信息用于优化客户端的第二模型信息;向多个客户端分别发送多个客户端对应的第二加密全局模型信息;第二加密全局模型信息用于使客户端获得第二全局模型信息。
6.可选的,上述“根据多个第一模型信息获得第一全局模型信息”,包括:对多个第一模型信息进行加权平均计算,获得第一全局模型信息。
7.由上述内容可知,在本技术的上述方法中,服务器中包括intel sgx的可信执行空间,可以防止多个客户端信息共享的过程中联邦学习的中间结果暴露,还可以防止因服务器端被攻击,保护了多个客户端的信息安全。同时,本技术的方法中采用多密钥的方案,在多个客户端数据共享的过程中,服务器根据主密钥、公共参数和客户端的公钥解密客户端发送的第一加密模型信息,在联邦学习服务器中可以以明文状态计算,不需要在密文状态下使用同态加密算法计算,节省了算力;采用多密钥的方法,只需客户端将加密后的信息和客户端的公钥发送到服务器端,不需要用户预先共享公私钥对和加密的信息,第三方即使窃取了客户端发送的公钥和加密信息,也无法对加密信息进行解密,从而提高用户体验,保护数据安全。
8.第二方面,提供一种数据保护方法,应用于客户端,包括:接收服务器发送的公共参数,根据公共参数生成客户端的公钥和客户端的私钥;公共参数为服务器在英特尔软件保护扩展程序intel sgx生成的可信执行环境中生成;根据客户端的公钥和公共参数加密客户端的第一模型信息,得到第一加密模型信息;第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;向服务器发送第一加密模型信息和客户端的公钥;接收服务器发送的第一加密全局模型信息,并解密第一加密全局模型信息,获得第一全局模型信息;第一全局模型信息用于优化客户端的本地模型信息。
9.可选的,上述“解密第一加密全局模型信息,得到第一全局模型信息”,包括:根据客户端的私钥和公共参数,解密第一加密全局模型信息,获得第一全局模型信息。
10.可选的,上述数据保护方法还包括:根据第一加密全局模型信息,获得信息平均梯度;根据客户端的学习效率、信息平均梯度和第一全局模型信息优化第一模型信息,获得第二模型信息;根据客户端的公钥和公共参数加密第二模型信息,得到第二加密模型信息;向服务器发送第二加密模型信息。
11.由上述内容可知,在本技术的上述方法中,采用了多密钥的方案,客户端只需要将客户端的公钥和加密信息发送至服务器,不需要共享客户端的私钥。第三方即使窃取了客户端的公钥和加密信息,也无法获取用户的隐私,从而提高用户体验,保护数据安全。
12.第三方面,提供一种数据保护方法,应用于数据保护系统,数据保护系统包括服务器和多个客户端;服务器与多个客户端进行通信;服务器为联邦学习服务器,以及服务器包括英特尔软件保护扩展程序intel sgx生成的可信执行环境,方法包括:服务器生成公共参数和主密钥,向多个客户端发送公共参数;客户端接收服务器发送的公共参数,客户端根据公共参数,生成客户端的公钥和客户端的私钥;根据客户端的公钥和公共参数对客户端的第一模型信息加密,得到第一加密模型信息;第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;向服务器发送第一加密模型信息;服务器接收多个客户端发送的多个客户端对应的第一加密模型信息,根据主密钥、公共参数和多个客户端对应的客户端的公钥的解密多个客户端对应的第一加密模型信息,得到多个第一模型信息;根据多个第一模型信息获得第一全局模型信息;服务器根据多个客户端分别对应的客户端的公钥对第一全局模型信息分别加密,得到多个客户端分别对应的多个第一加密全局模型信息;向多个客户端发送多个客户端分别对应的第一加密全局模型信息;第一全局模型信息用于优化客户端的本地模型信息;客户端接收服务器发送的第一加密全局模型信息,解密第一加密全局模型信息,获得第一全局模型信息。
13.第四方面,提供一种数据保护系统,包括服务器和多个客户端;服务器与多个客户端进行通信;服务器为联邦学习服务器,以及服务器包括英特尔软件保护扩展程序intel sgx生成的可信执行环境;服务器,用于生成公共参数和主密钥,向多个客户端发送公共参数;客户端,用于接收服务器发送的公共参数,根据公共参数,生成客户端的公钥和客户端的私钥;根据客户端的公钥和公共参数对客户端的第一模型信息加密,得到第一加密模型信息;向服务器发送第一加密模型信息;第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;服务器,接收多个客户端发送的多个客户端对应的第一加密模型信息,根据主密钥、公共参数和多个客户端对应的客户端的公钥的解密多个客户端对应的第一加密模型信息,得到多个第一模型信息;根据多个第一模型信息获得第一全局模型信息;服务器根据多个客户端分别对应的客户端的公钥对第一全局模型信息分别加密,得到多个客户端分别对应的多个第一加密全局模型信息;向多个客户端发送多个客户端分别对应的第一加密全局模型信息;第一全局模型信息用于优化客户端的本地模型信息;客户端,用于接收服务器发送的第一加密全局模型信息,解密第一加密全局模型信息,获得第一全局模型信息。
14.第五方面,提供一种电子设备,包括:存储器和处理器;存储器用于存储计算机执行指令;当电子设备运行时,处理器执行存储器存储的计算机执行指令,以使电子设备执行如第一方面或第二方面及任一种实现方式中的数据保护方法。
15.第六方面,提供一种计算机可读存储介质,包括:计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如第一方面或第二方面及任一种实现方式中的数据保护方法。
16.本技术中第三方面至第六方面的描述的有益效果,可以参考第一方面和第二方面的有益效果分析,此处不再赘述。
附图说明
17.附图用来提供对本技术技术方案的进一步理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。
18.图1为本技术实施例提供的一种数据保护系统结构示意图;
19.图2为本技术实施例提供的一种数据保护方法示意图;
20.图3为本技术实施例提供的一种加密联邦学习流程示意图;
21.图4为本技术实施例提供的一种数据保护方法示意图;
22.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
23.下面将结合本技术实施例中的附图,对本技术实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.在本技术的描述中,除非另有说明,“/”表示“或”的意思,例如,a/b可以表示a或b。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a
和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。需要说明的是,本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。
25.需要说明的是,本技术中,被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
26.在本技术实施例中,“指示”可以包括直接指示和间接指示。例如,以下文中第一控制信息为例,第一控制信息可以直接携带信息a的本身或者其索引,以实现直接指示信息a的目的。或者,第一控制信息也可以携带与信息a存在关联关系的信息b,从而在指示信息b的同时实现间接指示信息a的目的。
27.为保护数据安全的同时使数据得到最大化的利用,现有联邦学习算法、同态加密算法以及英特尔的软件保护拓展等数据保护方法。但联邦学习算法只是保护了训练数据的隐私,虽然联邦学习算法没有发送任何原始数据,但是每次迭代都会暴露中间结果,攻击者可以根据这些暴露的结果以及结果之间的差异性推算一些不应该泄露的信息,这将会对数据安全和隐私安全造成威胁。同态加密计算在密文状态下计算,计算过程复杂,代价太高,而且同态加密的服务器可以被侧信息道攻击——reveal的方式窃取服务器端的隐私加密数据。英特尔intel的软件保护拓展(software protection extension,sgx)技术中,需要预先共享公私钥对以及加密的信息,如果被恶意第三方窃取,用户的隐私信息会造成泄露。
28.基于上述问题,本技术实施例提供了一种数据保护方法。该方法中,在联邦学习服务器中设置intel sgx的可信执行空间,且采用多密钥的方案,会在服务器端生成一个主密钥和公共参数。在多个客户端信息共享的过程中,客户端根据公共参数生成客户端的公钥和客户端的私钥,客户端根据客户端的公钥和公共参数加密客户端的明文生成客户端的密文。在intel sgx的可信执行空间内,联邦学习服务器可以通过主密钥解密客户端上传的密文进行明文计算。
29.由上述内容可知,本技术实施例的方案中,在联邦学习服务器中设置intel sgx的可信执行空间,可以防止在联邦学习的过程中暴露中间结果,还可以防止服务器被侧信息道攻击——reveal的方式窃取服务器端的隐私加密数据。采用多密钥的方式,在多个客户端信息共享的过程中,服务器根据主密钥、公共参数和客户端的公钥解密客户端发送的第一加密模型信息,在联邦学习服务器中可以以明文状态计算,不需要在密文状态下进行同态加密计算,节省了算力;以及,只需客户端将加密后的信息和客户端的公钥发送到服务器端,不需要预先共享公私钥对以及加密的信息,即使第三方窃取了客户端的公钥和加密后的信息,也无法对加密后的信息进行解密,从而提高了用户体验,保护了数据的安全。
30.本技术实施例提供的数据保护方法可以应用于数据保护系统中。参见图1所示,该数据保护系统可以包括多个客户端和一个服务器,服务器可以是联邦学习服务器,联邦学习服务器使用联邦平均算法,对应多个客户端使用联邦学习算法共享本地模型信息。同时,服务器中包括intel sgx生成的可信执行环境。
31.以数据保护系统中包括两个客户端为例,第一客户端101和第二客户端102分别与服务器110通信,具体的通信方式可以包括有线通信方式或无线通信方式等。并且,第一客
户端101和第二客户端102还可以分别与服务器110进行信息交互。第一客户端101和第二客户端102分别通过神经网络,根据需要共享的信息生成第一客户端101的本地模型信息和第二客户端102的本地模型信息。服务器可以对第一客户端101的本地模型信息和第二客户端102的本地模型信息进行加权平均计算,生成第一客户端101和第二客户端102的本地模型信息集,本地模型信息集可以用于使客户端扩充本地模型信息。此时,为保护数据安全,服务器中设置intel sgx的可信执行空间,服务器在可信执行空间中进行解密、加权平均计算以及加密等动作;以及在服务器中生成公共参数和主密钥,客户端可以根据公共参数生成公钥和私钥,在客户端和服务器信息交互的过程中只需要共享客户端的公钥,即使第三方窃取了加密后的信息和公钥,也无法解密,可以防止客户端和服务器之间进行信息交互时信息泄露。如此,既保证了第一客户端101的本地模型信息和第二客户端102的本地模型信息以及两个客户端本地模型信息集的安全,也不影响两个客户端之间信息的共享。
32.服务器110生成公共参数和主密钥,向第一客户端101和第二客户端102发送公共参数。
33.第一客户端101接收服务器110发送的公共参数,根据公共参数生成第一客户端101的公钥1和第一客户端101的密钥1,第一客户端101根据公钥1和公共参数对第一客户端101的第一模型信息1加密,得到第一加密模型信息1;第一客户端101向服务器110发送第一加密模型信息1;第一模型信息1,表示第一客户端101的本地模型信息1。
34.第二客户端102接收服务器110发送的公共参数,根据公共参数生成第二客户端102的公钥2和第二客户端102的密钥2,第二客户端102根据公钥2和公共参数对第二客户端102的第一模型信息2加密,得到第一加密模型信息2;第二客户端102向服务器110发送第一加密模型信息2;第一模型信息2,表示第二客户端102的本地模型信息2。
35.服务器110接收第一客户端101的第一加密模型信息1,服务器110在intel sgx的可信执行空间中,使用主密钥解密算法,根据主密钥、公共参数公钥1解密第一加密模型信息1,得到第一模型信息1。
36.服务器110接收第二客户端102的第一加密模型信息2,服务器110在intel sgx的可信执行空间中,使用主密钥解密算法,根据主密钥、公共参数公钥2解密第一加密模型信息2,得到第一模型信息2。
37.服务器110对第一模型信息1和第一模型信息2进行加权平均计算,获得第一全局模型信息;服务器110根据公钥1和公钥2分别加密第一全局模型信息,得到第一加密全局模型信息1和第一加密全局模型信息2。
38.服务器110向第一客户端101发送第一加密全局模型信息1,服务器110向第二客户端102发送第一加密全局模型信息2。
39.第一客户端101接收服务器110发送的第一加密全局模型信息1,第一客户端101根据私钥1和公共参数解密第一加密全局模型信息1,得到第一全局模型信息。
40.第二客户端102接收服务器110发送的第一加密全局模型信息2,第二客户端102根据私钥2和公共参数解密第一加密全局模型信息2,得到第一全局模型信息。
41.第一客户端101根据第一全局模型信息,获得信息平均梯度,第一客户端101根据第一客户端101的学习效率、信息平均梯度和第一全局模型信息优化第一模型信息1,获得第二模型信息1;第一客户端101向服务器110发送第二模型信息1。
42.第二客户端102根据第一全局模型信息,获得信息平均梯度,第二客户端102根据第二客户端102的学习效率、信息平均梯度和第一全局模型信息优化第一模型信息2,获得第二模型信息2;第二客户端102向服务器110发送第二模型信息2。
43.由上述内容可知,基于上述数据保护系统实现本技术实施例提供的数据保护方法时,服务器110包含intel sgx的可信执行空间,可以防止联邦学习的过程中暴露中间结果,也可以防止服务器端被攻击。采用多密钥的方式,在服务器中对多个客户端的第一模型信息进行加权平均计算的过程中,服务器可以根据主密钥、公共参数和客户端的公钥解密客户端上传的密文,以明文的方式对多个客户端的第一模型信息进行加权平均计算,不需要在密文状态下进行同态加密计算,节省了算力。同时,采用多密钥的方式,客户端不需要预先共享公私钥对以及加密的信息,只需要共享客户端的公钥和加密后的信息,即使客户端的公钥和加密后的信息被第三方窃取,第三方也无法对加密后的信息进行解密。
44.以上述方法应用于服务器为例,服务器可以是联邦学习服务器,服务器中包括intel sgx的可以执行空间,参见图2所示,该方法包括如下步骤s101-s106。
45.s101、生成公共参数和主密钥,向多个客户端发送公共参数。
46.其中,公共参数用于指示客户端根据公共参数生成客户端的公钥和客户端的私钥。多个客户端为需要进行信息共享的客户端。
47.示例性的,服务器生成公共参数和主密钥后,服务器将公共参数发送到需要信息共享的客户端a和客户端b。
48.在一些实施例中,服务器生成公共参数和主密钥可以使用如下方法:给定一个符合非对称加密算法标准的安全参数n,使n=pq,生成公式为:
49.p=2p
′
+1,q=2q
′
+1
50.其中p,q,p
′
,q
′
皆为素数。选择一个随机数g使g
p
′q′
mod n2=1+kn,k∈[1,n-1],g是群的随机数明文空间的范围为生成公共参数pp=(n,k,g)和主密钥mk(mastersecret key)=(p
′
,q
′
)。
[0051]
s102、接收多个客户端分别发送的第一加密模型信息和客户端的公钥,根据主密钥、公共参数和客户端的公钥分别解密多个客户端分别对应的第一加密模型信息,得到多个第一模型信息。
[0052]
其中,第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息。由服务器对多个客户端的本地模型信息进行加权平均计算,得到一个全局模型信息。全局模型信息可以被客户端用于扩充本地模型信息,以达到获取其他客户端的本地模型信息的目的。
[0053]
在一些实施例中,服务器根据主密钥、公共参数和公钥解密第一加密模型信息,包括以下步骤:
[0054][0055]
其中k-1
表示k取模于n的相反数;然后计算:
[0056]
[0057]
定义δ为p
′q′
取模于n的相反数,令v1∶=a1r mod n。最后得到明文m1:
[0058][0059]
示例性的,服务器接收到客户端a发送的第一加密模型信息a和公钥a和客户端b发送的第一加密模型信息b和公钥b。根据主密钥、公共参数和公钥a解密第一加密模型信息a,得到第一模型信息a;根据主密钥、公共参数和公钥b,解密第一加密模型信息b,得到第一模型信息b。
[0060]
由上述内容可知,本技术实施例提供的上述方法,多个客户端将需要共享的信息使用公钥加密后发送到服务器,即使第三方恶意窃取了公钥和加密后的信息,因为没有解密需要的私钥,无法对加密后的信息进行解密。避免了intel sgx方法因为需要预先共享公私钥对和加密后的信息,导致用户隐私被泄露的问题,提升了用户体验。
[0061]
s103、根据多个第一模型信息获得第一全局模型信息。
[0062]
在一些实施例中,服务器对多个第一模型信息进行加权平均计算,获得第一全局模型信息。
[0063]
示例性的,服务器对客户端a的第一模型信息a和客户端b的第一模型信息b进行加权平均计算,得到第一全局模型信息。
[0064]
在一些实施例中,服务器通过联邦平均算法,对第一模型信息1和第一模型信息2进行加权平均计算,获得第一全局模型信息g,可以使用如下公式:
[0065][0066]
其中,k代表客户端的索引值,用pk表示客户端k上数据的索引集,长度为nk,nk=|pk|,n=∑knk。
[0067]
s104、根据多个客户端的公钥分别加密第一全局模型信息,得到多个客户端分别对应的第一加密全局模型信息。
[0068]
示例性的,根据客户端a的公钥a加密第一全局模型信息,得到第一加密全局模型信息a,根据客户端b的公钥b加密第一全局模型信息,得到第一加密全局模型信息b。
[0069]
s105、向多个客户端分别发送多个客户端分别对应的第一加密全局模型信息。
[0070]
示例性的,向客户端a发送以客户端a的公钥加密的第一加密全局模型信息a,向客户端b发送以客户端b的公钥加密的第一加密全局模型信息b。
[0071]
上述第一加密全局模型信息用于使客户端根据客户端的私钥和公共参数解密第一加密全局模型信息,获得第一全局模型信息。第一全局模型信息用于使客户端根据公共参数、信息平均梯度和第一全局模型信息扩充第一模型信息,获得第二模型信息。
[0072]
s106、重复执行对多个客户端发送的加密信息解密、加权平均计算以及使用多个客户端的公钥加密后发送到对应的客户端的过程,直至客户端的本地模型信息收敛。
[0073]
其中,本地模型信息收敛可以是客户端根据全局模型信息优化本地模型信息预设次数,也可以是客户端的本地模型准确率趋于稳定,此时,多个客户端的信息共享完成,客户端的本地模型信息扩充完成
[0074]
示例性的,预设次数为30次。在客户端根据服务器生成的全局模型信息优化本地模型30次后,客户端的本地模型收敛,即,客户端的本地模型扩充完成。
[0075]
示例性的,在第n次、第n+1次、第n+2次对客户端本地模型信息的优化中,相邻两次优化中客户端的本地模型信息准确率变化都小于预设值,此时,确定客户端的本地模型信息收敛。
[0076]
以图3的加密联邦学习流程示意图为例,示例性的,参见图3所示,服务器根据主密钥、公共参数以及客户端1的公钥、客户端2的公钥、客户端3的公钥和客户端4的公钥分别解密第一加密模型信息1、第一加密模型信息2、第一加密模型信息3和第一加密模型信息4,获得第一模型信息1、第一模型信息2、第一模型信息3和第一模型信息4。
[0077]
其中,客户端的第一加密模型信息,是根据客户端的公钥和公共参数加密客户端的第一模型信息得到的,第一模型信息表示客户端的本地模型信息;公共参数还用于使客户端生成客户端的公钥和客户端的私钥;主密钥和公共参数是服务器在intel sgx的可信执行空间中生成的。
[0078]
进一步的,服务器通过联邦平均算法,对第一模型信息1、第一模型信息2、第一模型信息3和第一模型信息4进行加权平均计算,得到第一全局模型信息。
[0079]
更进一步的,服务器根据客户端1的公钥加密第一全局模型信息,得到第一加密全局模型信息1;服务器根据客户端2的公钥加密第一全局模型信息,得到第一加密全局模型信息2;服务器根据客户端3的公钥加密第一全局模型信息,得到第一加密全局模型信息3;服务器根据客户端4的公钥加密第一全局模型信息,得到第一加密全局模型信息4。
[0080]
更进一步的,服务器将第一加密全局模型信息1、第一加密全局模型信息2、第一加密全局模型信息3和第一加密全局模型信息4,分别发送给对应的客户端1、客户端2、客户端3和客户端4。
[0081]
其中,第一加密全局模型信息使客户端获得第一全局模型信息,第一全局模型信息被用于优化客户端的本地模型信息。
[0082]
更进一步的,重复执行上述步骤,直至客户端的本地模型信息收敛,各个客户端完成信息共享。
[0083]
由上述内容可知,在本技术实施例提供的上述方法中,在服务器中设置intel sgx的可信执行空间,可以防止联邦学习的中间结果暴露,也可以防止服务器端被攻击。同时,采用多密钥的方案,根据主密钥、公共参数和客户端的公钥解密客户端上传的密文,在明文状态下对多个客户端发送的第一模型信息进行加平均计算,不需要使用同态加密算法进行计算,节省了算力;客户端只需要共享公钥和加密后的信息,在公钥和加密后的信息被第三方窃取的情况下也可以保证客户端的信息安全。
[0084]
以上述方法应用于客户端为例,该方法的执行主体为客户端时,参见图4所示,该方法包括如下s201-s206。
[0085]
s201、接收服务器发送的公共参数,根据公共参数生成客户端的公钥和客户端的私钥。
[0086]
其中,公共参数在服务器在intel sgx的可信执行空间中生成。
[0087]
在一些实施例中,客户端根据公共参数生成客户端的公钥和客户端的密钥,可以使用如下方法:根据公共参数,选择一个随机数计算:
[0088]
h=gamod n2[0089]
得到公钥2pk=h和私钥sk1=a。
[0090]
在一些实施例中,客户端根据公钥和公共参数对第一客户端101的第一模型信息1加密,得到第一加密模型信息1,可以使用如下方法:
[0091]
a=grmod n2[0092]
b=hr(1+mn)mod n2[0093]
其中,m为第一模型信息1,第一加密模型信息为c(a,b),r为随机数且
[0094]
s202、根据客户端的公钥和公共参数加密客户端的第一模型信息,得到第一加密模型信息。
[0095]
其中,第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;多个客户端的本地模型信息由服务器进行加权平均计算,得到一个全局模型信息。客户端可以根据全局模型信息扩充本地模型信息,以达到信息共享的目的。
[0096]
示例性的,客户端1根据公共参数生成了客户端1的公钥和客户端1的私钥。由客户端1的公钥和公共参数加密客户端1的第一模型信息,得到第一加密模型信息。第一加密模型信息可以被服务器根据客户端1的公钥、公共参数以及主密钥解密。
[0097]
由上述内容可知,本技术实施例提供的上述方法,客户端根据客户端的公钥和公共参数加密第一模型信息生成的第一加密模型信息,可以被服务器以主密钥、客户端的公钥和公共参数解密。采用多密钥的方案,不需要预先共享客户端的私钥,即使在客户端共享本地模型信息的过程中,客户端的公钥和第一加密模型信息被窃取,第三方也无法获得客户端的信息,保护了客户端的隐私安全。
[0098]
s203、向服务器发送第一加密模型信息和客户端的公钥。
[0099]
在一些实施例中,第一加密模型信息用于使服务器获得第一模型信息,第一模型信息用于使服务器获得第一全局模型信息。
[0100]
其中,第一全局模型信息为服务器根据多个客户端的第一模型信息获得的。
[0101]
示例性的,多个客户端向服务器发送多个客户端各自对应的第一加密模型信息,使服务器根据多个客户端对应的公钥、公共参数和主密钥分别解密多个客户端各自对应的第一加密模型信息,获得多个客户端对应的第一模型信息;多个客户端对应的第一模型信息,用于使服务器获得第一全局模型信息。
[0102]
s204、接收服务器发送的第一加密全局模型信息,解密第一加密全局模型信息,获得第一全局模型信息。
[0103]
其中,第一加密全局模型信息表示服务器根据客户端的公钥加密后的第一全局模型信息。
[0104]
在一些实施例中,客户端根据客户端的私钥和公共参数,解密第一加密全局模型信息,获得第一全局模型信息。计算公式表示为:
[0105][0106]
其中,第一加密全局模型信息为g(a,b),私钥为sk=a。
[0107]
s205、客户端根据第一全局模型信息,获得信息平均梯度,根据客户端的学习效率、信息平局梯度和第一全局模型信息,优化客户端的第一模型信息,得到第二模型信息。
[0108]
示例性的,客户端根据第一全局模型信息ω
t
,获得信息平均梯度gk,根据客户端的学习效率η、信息平均梯度gk和第一全局模型信息ω
t
优化客户端的第一模型信息,即客户端的本地模型信息,优化后的客户端的本地模型信息表示为第二模型信息。
[0109]
在一些实施例中,客户端采用随机梯度下降法,根据客户端获得的第一全局模型信息g
t
获得信息平均梯度fk,计算公式为:
[0110][0111]
其中,fk表示信息平均梯度,k代表第一客户端101的索引值,g
t
代第一全局模型信息。
[0112]
s206、重复执行将优化后的本地模型信息加密后发送到服务器,解密服务器发送的全局模型信息,并根据全局模型信息优化本地模型信息的过程,直至本地模型信息收敛。
[0113]
示例性的,向服务器发送第二模型信息,接收服务器发送的第二加密全局模型信息,根据客户端的私钥和公共参数解密第二加密全局模型信息,获得第二全局模型信息ω
t+1
,根据第二全局模型信息获得信息平均梯度g
k+1
,根据客户端的学习效率η、信息平均梯度g
k+1
和第二全局模型信息ω
t+1
再次优化本地模型信息,得到第三信息,重复上述步骤,直至本地模型信息收敛。
[0114]
其中,本地模型信息收敛可以是客户端根据全局模型信息优化本地模型信息预设次数,也可以是客户端的本地模型准确率趋于稳定,此时,多个客户端的信息共享完成,客户端的本地模型信息扩充完成
[0115]
示例性的,预设次数为30次。在客户端根据服务器生成的全局模型信息优化本地模型30次后,客户端的本地模型收敛,即,客户端的本地模型扩充完成。
[0116]
示例性的,在第n次、第n+1次、第n+2次对客户端本地模型信息的优化中,相邻两次优化中客户端的本地模型信息准确率变化都小于预设值,此时,确定客户端的本地模型信息收敛。
[0117]
由上述内容可知,本技术实施例提供的上述方法中,采用多密钥的方案,客户端不需要预先共享加密的信息、客户端的公钥和客户端的私钥,只需要将客户端的公钥和加密信息发送到服务器,避免了用户信息被第三方恶意窃取。
[0118]
上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0119]
本技术实施例可以根据上述方法示例对通信装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0120]
图5为本技术实施例提供的服务器的结构示意图,如图5所示,该服务器包括:处理
器501,总线504。可选的,该服务器还可以包括存储器502;可选地,该服务器还可以包括通信接口503。处理器501,可以是实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器501可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器501也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。通信接口503,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,wlan)等。存储器502,可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable 15read-only memory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。作为一种可能的实现方式,存储器502可以独立于处理器501存在,存储器502可以通过总线504与处理器501相连接,用于存储指令或者程序代码。处理器501调用并执行存储器502中存储的指令或程序代码时,能够实现本技术实施例提供的数据保护方法。另一种可能的实现方式中,存储器502也可以和处理器501集成在一起总线504,可以是扩展工业标准结构(extended industry standard 25architecture,eisa)总线等。总线504可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0121]
本技术的一些实施例提供了一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质中存储有计算机程序指令,计算机程序指令在计算机上运行时,使得计算机执行如上述实施例中任一实施例的方法。
[0122]
示例性的,上述计算机可读存储介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disk,23cd)、数字通用盘(digital versatile disk,dvd)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmable read-only memory,eprom)、卡、棒或钥匙驱动器等)。本公开描述的各种计算机可读存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读存储介质。术语“机器可读存储介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
[0123]
本技术实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述实施例中任一实施例的方法。
[0124]
以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
技术特征:
1.一种数据保护方法,其特征在于,应用于服务器,所述服务器为联邦学习服务器,以及所述服务器包括英特尔软件保护扩展程序intel sgx生成的可信执行环境;所述方法包括:生成公共参数和主密钥,向多个客户端发送所述公共参数,所述公共参数用于指示所述客户端根据所述公共参数生成所述客户端的公钥和所述客户端的私钥;接收所述多个客户端分别发送的第一加密模型信息和客户端的公钥,并根据所述主密钥、所述公共参数和所述多个客户端的公钥分别解密所述多个客户端分别对应的第一加密模型信息得到多个第一模型信息;所述第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;根据所述多个第一模型信息获得第一全局模型信息;所述第一全局模型信息用于优化所述客户端的本地模型信息;根据所述多个客户端的公钥分别加密所述第一全局模型信息,得到多个第一加密全局模型信息,以及向多个客户端分别发送以对应公钥加密获得第一加密全局模型信息;所述第一加密全局模型信息用于使所述客户端获得第一全局模型信息。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收所述多个客户端分别发送的第二加密模型信息,根据所述主密钥、所述公共参数和所述多个客户端的公钥分别解密所述多个客户端分别对应的第二加密模型信息,获得多个客户端的第二模型信息;所述第二加密模型信息,表示根据客户端的公钥和所述公共参数加密后的第二模型信息;所述第二模型信息,表示根据所述客户端的学习效率、信息平均梯度和所述第一全局模型信息优化所述第一模型信息的结果;所述信息平均梯度,根据所述第一加密全局模型信息获得;根据所述多个客户端的第二模型信息获得第二全局模型信息,根据所述多个客户端的公钥分别加密第二全局模型信息,获得多个客户端对应的第二加密全局模型信息;所述第二全局模型信息用于优化所述客户端的第二模型信息;向所述多个客户端分别发送所述多个客户端对应的第二加密全局模型信息;所述第二加密全局模型信息用于使所述客户端获得第二全局模型信息。3.根据权利要求1所述的方法,其特征在于,所述根据所述多个第一模型信息获得第一全局模型信息,包括:根据联邦平均算法,对所述多个第一模型信息进行加权平均计算,获得第一全局模型信息。4.一种数据保护方法,其特征在于,应用于客户端;所述方法包括:接收服务器发送的公共参数,根据所述公共参数生成所述客户端的公钥和所述客户端的私钥;所述公共参数在所述服务器在英特尔软件保护扩展程序intel sgx生成的可信执行环境中生成;根据所述客户端的公钥和所述公共参数加密所述客户端的第一模型信息,得到第一加密模型信息;所述第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;向所述服务器发送所述第一加密模型信息和所述客户端的公钥;接收所述服务器发送的第一加密全局模型信息,并解密所述第一加密全局模型信息,
获得第一全局模型信息;所述第一全局模型信息用于优化所述客户端的本地模型信息。5.根据权利要求4所述的方法,其特征在于,所述解密所述第一加密全局模型信息,得到第一全局模型信息,包括:根据所述客户端的私钥和所述公共参数,解密所述第一加密全局模型信息,获得第一全局模型信息。6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:根据所述第一全局模型信息,获得信息平均梯度;根据所述客户端的学习效率、所述信息平均梯度和所述第一全局模型信息优化所述第一模型信息,获得第二模型信息;根据所述客户端的公钥和所述公共参数加密所述第二模型信息,得到第二加密模型信息;向所述服务器发送所述第二加密模型信息。7.一种数据保护方法,其特征在于,应用于数据保护系统,所述数据保护系统包括服务器和多个客户端;所述服务器与所述多个客户端进行通信;所述服务器为联邦学习服务器,以及所述服务器包括英特尔软件保护扩展程序intel sgx生成的可信执行环境,所述方法包括:所述服务器生成公共参数和主密钥,向所述多个客户端发送所述公共参数;所述客户端接收所述服务器发送的所述公共参数,所述客户端根据所述公共参数,生成客户端的公钥和客户端的私钥;根据客户端的公钥和所述公共参数对客户端的第一模型信息加密,得到第一加密模型信息;向所述服务器发送所述第一加密模型信息;所述第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;所述服务器接收所述多个客户端发送的所述多个客户端对应的第一加密模型信息,根据所述主密钥、公共参数和所述多个客户端对应的客户端的公钥的解密所述多个客户端对应的第一加密模型信息,得到多个第一模型信息;根据所述多个第一模型信息获得第一全局模型信息;所述服务器根据所述多个客户端分别对应的客户端的公钥对所述第一全局模型信息分别加密,得到所述多个客户端分别对应的多个第一加密全局模型信息;向所述多个客户端发送所述多个客户端分别对应的第一加密全局模型信息;所述第一全局模型信息用于优化所述客户端的本地模型信息;所述客户端接收所述服务器发送的所述第一加密全局模型信息,解密所述第一加密全局模型信息,获得所述第一全局模型信息。8.一种数据保护系统,其特征在于,包括服务器和多个客户端;所述服务器与所述多个客户端进行通信;所述服务器为联邦学习服务器,以及所述服务器包括英特尔软件保护扩展程序intel sgx生成的可信执行环境;所述服务器,用于生成公共参数和主密钥,向所述多个客户端分别发送所述公共参数;所述客户端,用于接收所述服务器发送的所述公共参数,根据所述公共参数,生成客户端的公钥和客户端的私钥;根据客户端的公钥和所述公共参数对客户端的第一模型信息加密,得到第一加密模型信息;向所述服务器发送所述第一加密模型信息;所述第一模型信息,表示通过神经网络,根据客户端共享的信息生成的客户端的本地模型信息;所述服务器,接收多个所述客户端发送的多个所述客户端分别对应的第一加密模型信
息,根据所述主密钥、公共参数和多个所述客户端对应的客户端的公钥的解密多个所述客户端对应的第一加密模型信息,得到多个第一模型信息;根据所述多个第一模型信息获得第一全局模型信息;根据多个所述客户端分别对应的客户端的公钥对所述第一全局模型信息分别加密,得到多个所述客户端分别对应的多个第一加密全局模型信息;向多个所述客户端发送多个所述客户端分别对应的第一加密全局模型信息;所述第一全局模型信息用于优化所述客户端的本地模型信息;所述客户端,用于接收所述服务器发送的所述第一加密全局模型信息,解密所述第一加密全局模型信息,获得所述第一全局模型信息。9.一种电子设备,其特征在于,所述电子设备包括:处理器和用于存储所述处理器可执行指令的存储器;所述处理器被配置为执行所述指令,使得所述电子设备执行如权利要求1-3中任一项所述的数据保护方法,或者执行如权利要求4-6中任一项所述的数据保护方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-3中任一项所述的数据保护方法,或者执行权利要求4-6中任一项所述的数据保护方法。
技术总结
本申请提供一种数据保护方法、系统、电子设备及存储介质,涉及数据处理技术领域,用于使多个客户端在保密的情况下共享本地模型信息。该方法包括:生成公共参数和主密钥,向多个客户端发送公共参数,指示客户端根据公共参数分别生成客户端的公钥和私钥;接收多个客户端分别发送的第一加密模型信息和客户端的公钥,根据主密钥、公共参数和客户端的公钥分别解密多个客户端对应的第一加密模型信息,得到多个第一模型信息;根据多个第一模型信息获得第一全局模型信息;根据多个客户端的公钥分别加密第一全局模型信息,得到多个第一加密全局模型信息,并向多个客户端分别发送以对应公钥加密的第一加密全局模型信息。的第一加密全局模型信息。的第一加密全局模型信息。
技术研发人员:张谦
受保护的技术使用者:中国联合网络通信集团有限公司
技术研发日:2023.05.16
技术公布日:2023/9/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/