CN113094735A - 隐私模型训练的方法 - Google Patents
隐私模型训练的方法 Download PDFInfo
- Publication number
- CN113094735A CN113094735A CN202110477135.7A CN202110477135A CN113094735A CN 113094735 A CN113094735 A CN 113094735A CN 202110477135 A CN202110477135 A CN 202110477135A CN 113094735 A CN113094735 A CN 113094735A
- Authority
- CN
- China
- Prior art keywords
- user
- ciphertext
- training
- model
- aggregation
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种隐私模型训练的方法、装置、计算机设备和存储介质。一个实施例的方法包括:基于待训练模型发布模型训练任务;接收各用户终端发送的训练加入请求,根据各用户终端的训练加入请求的请求时间,生成用户集合发送给各用户终端;将用户集合中的用户划分用户分组;在任何一次迭代训练过程中,接收用户集合内的各用户终端发送的携带用户端密文、模型参数密文及训练迭代次数的模型训练密文;基于各用户终端所属的用户分组,对各用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果;在密钥聚合处理结果验证通过时,对各用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。采用本方法能够提高模型训练时的安全性和稳定性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种隐私模型训练的方法、装置、计算机设备和存储介质。
背景技术
随着计算机领域的技术的发展,通过机器学习模型来进行相关处理日益成为计算机技术中的重要内容。在采用机器学习模型进行处理之前,需要提供样本集,并针对样本集执行模型训练过程以获得最终的机器学习模型。在传统的模型训练过程中,都是由某个独立的设备,例如终端或服务器来完成整个的训练过程,这种单一训练方式,容易导致样本集的数据的泄露,影响数据安全性。为此,出现了分布式学习的技术,其将用以进行训练的样本集分布在多个设备上,在每次训练过程中,由多个设备分别基于自身的数据集进行模型训练,并将模型训练的训练结果发送至训练服务器,由训练服务器对各设备的训练结果进行融合,获得当次的整体的模型训练结果,再将单词模型训练的结果给到各设备,重复下一次的迭代训练过程,直至训练结束。然而,传统的这种分布式训练模型的方式,存在安全性问题。
发明内容
基于此,有必要针对上述技术问题,提供一种隐私模型训练的方法、装置、计算机设备和存储介质。
一种隐私模型训练的方法,所述方法包括:
基于待训练模型发布模型训练任务;
接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将所述用户集合发送给各所述用户终端;
将所述用户集合中的用户划分为两个以上的用户分组;
在任何一次迭代训练过程中,接收用户集合内的各用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果;
在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
一些实施例中,根据各用户终端的训练加入请求的请求时间,生成用户集合,包括:
根据各用户终端的训练加入请求的请求时间,对各用户终端进行排序;
根据请求时间最早的第二预定数目个用户终端的用户,生成用户集合,所述用户集合中,包含各所述用户终端的排序信息。
一些实施例中,获取所述用户集合中的第一预定数目的用户,包括:根据用户集合中的各用户的排列顺序,依序获取用户集合中的第一预定数目的用户。
一些实施例中,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,还包括:
当最后一个用户分组中的用户小于第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到所述最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且所述用户集合中的任意一个用户最多加入两个用户分组。
一些实施例中,采用如下公式,对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果:
其中,为第一密钥聚合结果,e为双线性映射运算函数,为第四聚合密文,为第三聚合密文,为第一聚合密文,u为第一训练服务器私钥,为第二聚合密文,v为第二训练服务器私钥,为第一服务商参数,g为双线性映射时所选用的曲线上的点,β为第一选定随机数,xr为第二选定随机数,m为分组数目。
一些实施例中,采用如下公式,对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
其中,为第一密钥聚合结果,e为双线性映射运算函数,为第六聚合密文,为第五聚合密文,为第一聚合密文,u为第一训练服务器私钥,为第二聚合密文,v为第二训练服务器私钥,为第一服务商参数,g为双线性映射时所选用的曲线上的点,β为第一选定随机数,xr为第二选定随机数,m为分组数目。
一种隐私模型训练的方法,所述方法包括:
基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求;
接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组;
基于所属的用户分组,生成用户端密文;
在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果;
对所述模型迭代训练结果进行加密,获得模型参数密文;
向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数。
一些实施例中,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,包括:
获取所述用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至所述用户集合中的任意一个用户都加入了一个用户分组。
获取所述用户集合中的第一预定数目的用户,包括:所述用户集合中的各用户的排列顺序,依序获取所述用户集合中的第一预定数目的用户。
一些实施例中,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,还包括:
当最后一个用户分组中的用户小于第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且用户集合中的任意一个用户最多加入两个用户分组。
一些实施例中,通过如下公式获得所述第三密文部分:
其中,ci,3表示所述第三密文部分,si,1为第一共享密钥,g为双线性映射时所选用的曲线上的点,ri为第一随机数,Ai为分组用户信息,ti,1为第三随机数,ti,2为第四随机数。
一些实施例中,通过如下公式获得所述第四密文部分:
其中,ci,4为第四密文部分,si,2为第二共享密钥,Ai为分组用户信息,e为双线性映射运算函数,为第一服务商参数,g为双线性映射时所选用的曲线上的点,ri为第一随机数,g1为第一训练服务器公钥,g2为第二训练服务器公钥,ki为密钥聚合参数。
一些实施例中,通过如下公式获得所述第五密文部分:
其中,ci,5为第五密文部分,si,1为第一共享密钥,g为双线性映射时所选用的曲线上的点,r′i为第二随机数,Ai为分组用户信息,ti,1为第三随机数,ti,2为第四随机数。
一些实施例中,通过如下公式获得所述第六密文部分:
其中,ci,6为第六密文部分,si,2为第二共享密钥,Ai为分组用户信息,e为双线性映射运算函数,为第一服务商参数,g为双线性映射时所选用的曲线上的点,r′i为第二随机数,g1为第一训练服务器公钥,g2为第二训练服务器公钥,k′i为密钥聚合验证参数。
一种隐私模型训练的装置,所述装置包括:
任务发布模块,用于基于待训练模型发布模型训练任务;
用户集合确定模块,用于接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将所述用户集合发送给各所述用户终端;
服务端分组模块,用于将用户集合中的用户划分为两个以上的用户分组;
训练结果接收模块,用于在任何一次迭代训练过程中,接收所述用户集合内的各所述用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
密钥聚合模块,用于基于各用户终端所属的用户分组,对各用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,并对密钥聚合处理结果验证;
模型聚合模块,用于在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
一种隐私模型训练的装置,所述装置包括:
训练请求模块,用于基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求;
终端分组模块,用于接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组;
用户端密文生成模块,用于基于所属的用户分组,生成用户端密文;
模型训练模块,用于在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果;
训练结果加密模块,用于对模型迭代训练结果进行加密,获得模型参数密文;
训练结果发送模块,用于向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现如上所述的任一实施例中的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的任一实施例中的方法的步骤。
上述隐私模型训练的方法、装置、计算机设备和存储介质,其在进行分布式模型训练的过程中,对确定的模型训练的用户集合中的用户,将其划分为两个以上的用户分组,且在每次迭代训练结束后,是基于所属的用户分组生成用户端密文,将该用户端密文与对模型迭代训练结果进行加密得到的模型参数密文一起携带在模型参数密文中发送给训练服务器,从而大大有助于提高模型训练时的安全性和稳定性。
附图说明
图1-1、1-2为一个实施例中隐私模型训练的方法的应用环境图;
图2为一个实施例中隐私模型训练的方法的流程示意图;
图3为另一个实施例中隐私模型训练的方法的流程示意图;
图4为一个实施例中的隐私模型训练的装置的结构框图;
图5为另一个实施例中的隐私模型训练的装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的隐私模型训练的方法,可以应用于如图1所示的应用环境中。其中,训练服务器10与多个用户终端20通过网络。训练服务器10基于待训练模型发布模型训练任务,各用户终端20接收到各模型训练任务之后,要参与该模型训练任务时,发送训练接入请求。训练服务器10基于各用户终端的训练加入请求,选择加入训练的各用户终端。在模型训练过程中,训练服务器10将上一次训练后融合的训练结果M(t)(首次开始训练时,t=0,即发送的是初始模型M(0))发送给各用户终端20,各用户终端20基于自身产生的样本集进行模型训练,并将模型训练的结果发送给训练服务器10,训练服务器10基于各用户终端20的模型训练的结果进行融合,获得一次迭代训练的结果,然后将融合后的模型训练结果发送给各用户终端,进行下一次的模型迭代训练过程。其中,该应用环境还涉及模型服务商30,该模型服务商30作为提出训练需求的机构,用以提供待训练模型的初始模型M(0),并用以确定用以发布模型训练需求的训练服务器10。训练服务器10训练获得最终的模型M(T)之后,会将最终获得的模型M(T)反馈给模型服务商30。其中,该应用环境还涉及可信机构40,该可信机构为模型服务商30、训练服务器10以及各用户终端分配数字证书。其中,终端20可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备、车载终端等设备,服务器10可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种隐私模型训练的方法,以该方法应用于图1中的训练服务器10为例进行说明,包括以下步骤S201至步骤S206。
步骤S201:基于待训练模型发布模型训练任务。其中,待训练模型可以是由模型服务商提供给训练服务器,是用以进行训练的模型对象。
步骤S202:接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将用户集合发送给各用户终端。
在接收到训练服务器发布的模型训练任务之后,若需要加入该模型训练任务,则用户终端发送训练加入请求,该训练加入请求中同时包含有请求时间。
一个实施例中,根据各用户终端的训练加入请求的请求时间,生成用户集合,具体可以是根据各用户终端的训练加入请求的请求时间,对各用户终端进行排序;然后根据请求时间最早的第二预定数目个用户终端的用户,生成用户集合,所述用户集合中,包含各所述用户终端的排序信息。其中,第二预定数目,可以结合实际技术需要,例如训练需求进行设定。
从而,训练服务器在接收到各个用户的训练加入请求后,可根据训练加入请求的接收时间对各用户进行的排序,该排序也可以认为是各用户的回复次序,例如,最早接收到的用户的排序越靠前。然后根据各用户的回复次序,训练服务器生成包含第二预定数目n个用户的集合:U={(1,x1),(2,x2),...,(n,xn)}。其中,(1,x1)表示用户x1的排序为第1位,(2,x2)表示用户x2的排序为第2位,其他的以此类推。同时,训练服务器将用户集合U发送至集合中的所有用户{x1,x2,...,xn}。可以理解,训练服务器将该用户集合U发送给所有用户的同时,同时将所有用户的排序发送给了这些用户。
步骤S203:将所述用户集合中的用户划分为两个以上的用户分组。
可以采用各种可能的方式进行分组的划分。一个实施例中,将所述用户集合中的用户划分为两个以上的用户分组,包括如下步骤S2031和步骤S2032。
步骤S2031:将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目。
记第一预定数目为w,第二预定数目为n,一个实施例中,可以将第二预定数目与第一预定数目的比值向上取整,作为用户分组数,即用户分组数为其中,第一预定数目w,表示任意一个分组中至少包括有第一预定数目w个用户。从而,通过将预定第二预定数目与第一预定数目的比值向上取整的数目作为用户分组数,可以确保用户集合中的每个用户都至少被划分到一个用户分组中。
步骤S2032:将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
其中,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,包括:
获取所述用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至所述用户集合中的任意一个用户都加入了一个用户分组。
其中,获取所述用户集合中的第一预定数目的用户,可以是按照预定规则选取第一预定数目的用户,只要每一次选取的第一预定数目的用户不相同即可。在一个具体示例中,可以是根据所述用户集合中的各用户的排列顺序,依序获取所述用户集合中的第一预定数目的用户。
其中,在依序获取所述用户集合中的第一预定数目的用户来加入用户分组时,当最后一个用户分组中的用户小于所述第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且所述用户集合中的任意一个用户最多加入两个用户分组。
在一个具体示例中,一个实施例中,在对用户集合U进行分组时,可以是按照用户集合中各用户的排序,将各用户划分到对应的分组。例如,假设用户集合为U={(1,x1),(2,x2),...(,xw),(w+1,xw+1),......(2w,x2w),......,(n,xn)},此时,可以将用户{x1,x2...,xw}划分为一个用户分组,并将各用户{xw+1,xw+2,...,x2w}划分为一个用户分组,其他的以此类推,直至任何一个用户都划分到一个用户分组。可以理解的是,在某些情况下,可能回复的用户数目n并不能被分组中的用户数w整除,即最后一个分组中的用户数不足第一预定数目w,此时,可以从已分组的其他用户中,按照确定的规则选择不足的数量的用户加入该最后一个分组,以确保每个分组中的用户都能够达到该第一预定数目w。其中,这里的确定规则,本申请实施例不做的具体限定,只要能确保每个分组都有第一预定数目w,且每个用户最多只能加入两个分组即可。
在其他实施例中,训练服务器IDf在对用户集合U进行分组时,也可以采用其他的方式进行分组,只要能够确保训练服务器IDf和各用户xi所得到的分组结果相同、且每个分组中至少包含第一预定数目w个用户、且每个用户至少加入了其中一个分组且最多只能加入两个分组即可。
步骤S204:在任何一次迭代训练过程中,接收用户集合内的各用户终端发送的模型训练密文,模型训练密文携带用户端密文、模型参数密文以及训练迭代次数。
其中,用户端密文,可以是用户终端基于第一训练服务器公钥、第二训练服务器公钥、第一共享密钥、第二共享密钥、第一服务商参数、密钥聚合参数和密钥聚合验证参数,获得的用户端密文。模型参数密文,是用户终端对迭代训练获得的模型迭代训练结果进行加密获得的模型参数密文。训练迭代次数,是用户终端在模型训练过程中的迭代次数。
步骤S205:基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果。
一个实施例中,基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,可以包括如下步骤S2051至步骤S2059。
步骤S2051:对各所述用户终端的用户端密文中的第一密文部分进行聚合,获得第一聚合密文,所述第一密文部分为用户终端采用第一训练服务器公钥对第三随机数进行加密获得的密文结果。
步骤S2052:对各所述用户终端的用户端密文中的第二密文部分进行聚合,获得第二聚合密文,所述第二密文部分为用户终端采用第二训练服务器公钥对第四随机数进行加密获得的密文结果。
步骤S2053:对各用户终端的用户端密文中的第三密文部分进行聚合,获得第三聚合密文,第三密文部分为用户终端基于第一共享密钥对第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得的密文结果。
步骤S2054:对各所述用户端的用户端密文中的第四密文部分进行聚合,获得第四聚合密文,第四密文部分为用户终端基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得的密文结果。
一个实施例中,对用户集合中的各用户的第四密文部分进行的聚合处理,具体可以是乘积处理,用公式可以表示为:
步骤S2055:对各所述用户端的用户端密文中的第五密文部分进行聚合,获得第五聚合密文,第五密文部分为用户终端基于第一共享密钥对第二随机数、第三随机数、第四随机数以及所述分组用户信息进行加密,获得的密文结果。
一个实施例中,对用户集合中的各用户的第五密文部分进行的聚合处理,具体可以是乘积处理,用公式可以表示为:
步骤S2056:对各所述用户端的用户端密文中的第六密文部分进行聚合,获得第六聚合密文,所述第六密文部分为用户终端基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得的密文结果。
一个实施例中,对用户集合中的各用户的第五密文部分进行的聚合处理,具体可以是乘积处理,用公式可以表示为:
步骤S2057:对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果。
一个实施例中,可以利用训练服务器私钥,结合第一服务商参数和第二服务商参数,对第一聚合密文、第二聚合密文、第三聚合密文、第四聚合密文进行聚合解密,获得第一密钥聚合结果。一个具体示例中,可以采用如下公式,对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果:
其中,为第一密钥聚合结果,e为双线性映射运算函数,为第四聚合密文,为第三聚合密文,为第一聚合密文,u为第一训练服务器私钥,为第二聚合密文,v为第二训练服务器私钥,为第一服务商参数,g为双线性映射时所选用的曲线上的点,β为第一选定随机数,xr为第二选定随机数,m为分组数目。
步骤S2058:对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果。
一个实施例中,可以利用训练服务器私钥,结合第一服务商参数和第二服务商参数,对第一聚合密文、第二聚合密文、第五聚合密文、第六聚合密文进行聚合解密,获得第二密钥聚合结果。一个具体示例中,可以采用如下公式,对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
其中,为第一密钥聚合结果,e为双线性映射运算函数,为第六聚合密文,为第五聚合密文,为第一聚合密文,u为第一训练服务器私钥,为第二聚合密文,v为第二训练服务器私钥,为第一服务商参数,g为双线性映射时所选用的曲线上的点,β为第一选定随机数,xr为第二选定随机数,m为分组数目。
步骤S2059:在所述第一密钥聚合结果对所述第二密钥聚合结果验证通过时,将所述第二密钥聚合结果作为密钥聚合处理结果。
在采用第一密钥聚合结果对第二密钥聚合结果进行验证时,可以采用任何可能的方式进行验证。一些实施例中,可以是在第一密钥聚合结果与第二密钥聚合结果相同时,可以确定第二密钥聚合结果验证通过。
步骤S206:在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
一个实施例中,对各所述用户终端的模型参数密文进行的模型聚合处理具体可以是对各所述用户终端的模型参数密文进行求和处理。
在一个实施例中,如图3所示,提供了一种隐私模型训练的方法,以该方法应用于图1中的用户终端20为例进行说明,包括以下步骤S301至步骤S306。
步骤S301:基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求。
训练服务器在获得需要进行训练的初始模型,即待训练模型之后,会发布模型训练任务。在获得训练服务器发布的模型训练任务之后,如果该用户想要加入到训练过程中,该用户向训练服务器发送训练加入请求,该训练加入请求中包含有请求时间,还可以包含该用户的身份信息。
步骤S302:接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组。
其中,用户终端对用户集合划分用户分组的方式,与上述训练服务器划分用户分组的方式相同,即训练服务器和各用户终端划分得到的用户分组相同。
步骤S303:基于所属的用户分组,生成用户端密文。
其中,生成用户端密文时,可以是基于第一训练服务器公钥、第二训练服务器公钥、第一共享密钥、第二共享密钥、第一服务商参数、所述密钥聚合参数和所述密钥聚合验证参数,获得用户端密文。
一个实施例中,获得用户端密文的方式,可以包括步骤S3031至步骤S3037。
步骤S3031:生成第一随机数对和第二随机数对,所述第一随机数对包含第一随机数和第二随机数,所述第二随机数对包含第三随机数和第四随机数。
用户可以生成两对随机数,每对随机数包含两个随机数,分别记为第一随机数ri、第二随机数r′i、第三随机数ti,1和第四随机数ti,2,即 其中,指从两个随机数选择集合中分别选择随机数ri,r′i,指从两个随机数选择集合中分别选择随机数ti,1,ti,2。
步骤S3032:采用第一训练服务器公钥对第三随机数进行加密,获得第一密文部分。
步骤S3033:采用第二训练服务器公钥对第四随机数进行加密,获得第二密文部分。
步骤S3034:基于第一共享密钥对第一随机数、第三随机数、第四随机数以及分组用户信息进行加密,获得第三密文部分,其中,用户分组信息基于所属的用户分组中,与该用户分组内的其他用户之间的身份信息的差值确定。
一个实施例中,可以通过如下公式获得所述第三密文部分:
其中,ci,3表示第三密文部分,si,1为第一共享密钥,g为双线性映射时所选用的曲线上的点,ri为第一随机数,Ai为分组用户信息,ti,1为第三随机数,ti,2为第四随机数。
其中,分组用户信息Ai可以基于该用户xi所属的用户分组Uk中,该用户xi与其他分组内用户xj之间的身份信息的差值来确定,用公式可表示为:其中,在该公式中,xi表示用户xi的身份信息,xj表示分组Uk中用户xj的身份信息。
步骤S3035:基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、第一随机数和密钥聚合参数进行加密,获得第四密文部分。
一些实施例中,可以通过如下公式获得所述第四密文部分:
其中,ci,4为第四密文部分,si,2为第二共享密钥,Ai为分组用户信息,e为双线性映射运算函数,为第一服务商参数,g为双线性映射时所选用的曲线上的点,ri为第一随机数,g1为第一训练服务器公钥,g2为第二训练服务器公钥,ki为密钥聚合参数。
步骤S3036:基于所述第一共享密钥对所述第二随机数、所述第三随机数、所述第四随机数以及所述分组用户信息进行加密,获得第五密文部分。
一些实施例中,可以通过如下公式获得所述第五密文部分:
其中,ci,5为第五密文部分,si,1为第一共享密钥,g为双线性映射时所选用的曲线上的点,r′i为第二随机数,Ai为分组用户信息,ti,1为第三随机数,ti,2为第四随机数。
步骤S3037:基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、第二随机数和密钥聚合验证参数进行加密,获得第六密文部分。
一些实施例中,可以通过如下公式获得所述第六密文部分:
其中,ci,6为第六密文部分,si,2为第二共享密钥,Ai为分组用户信息,e为双线性映射运算函数,为第一服务商参数,g为双线性映射时所选用的曲线上的点,r′i为第二随机数,g1为第一训练服务器公钥,g2为第二训练服务器公钥,k′i为密钥聚合验证参数。
上述获得的用户端密文,包括第一密文部分、所述第二密文部分、所述第三密文部分、所述第四密文部分、所述第五密文部分以及所述第六密文部分。
步骤S304:在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果。其中,对待训练模型进行模型训练的过程,可以与任何可能的模型训练方式进行,本申请实施例不做具体限定。
步骤S305:对所述模型迭代训练结果进行加密,获得模型参数密文。
一个实施例中,模型迭代训练结果包括模型迭代训练之后的各维度的模型参数。此时,对模型迭代训练结果进行加密,获得模型参数密文,具体可以是对各维度的模型参数,分别进行加密,获得模型参数密文。即获得的模型参数密文,包括对模型迭代训练之后的各维度的模型参数进行加密获得的密文。
步骤S306:向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数。
其中,训练迭代次数,是对待训练模型进行模型训练过程中的迭代次数。
一些实施例中,向训练服务器发送模型训练密文之后,训练服务器基于各用户发送的模型训练密文进行模型融合,获得最终的模型训练结果之后,会将最终的模型训练结果发送给各用户终端,从而各用户终端会进入下一个模型训练过程。
基于如上所述的实施例,以下结合一个具体的应用示例进行详细说明,本申请实施例方案在具体应用实施时,可以包含四个部分:系统初始化、训练任务发布、模型密文生成以及模型密文聚合。
系统初始化时,涉及可信机构的初始化、边缘服务器(即训练服务器)的初始化以及模型服务商使用的设备(例如终端设备或者服务器,以下实施例中简称为模型服务商)的初始化。
其中,可信机构在进行初始化时,可以基于一个给定的安全参数k来进行加密系统的初始化。具体地,可信机构基于该给定的安全参数k生成双线性参数:(p,G,GT,e,g),其中p是与给定的安全参数k相关的质数,且|p|=k,参数g∈G,G为选用的曲线,例如椭圆曲线,g为曲线G上的一个点,e为双线性映射运算,且满足条件:e:G×G→GT。同时,可信机构生成可信机构的公私钥对(sk,pk)。其中,可信机构可以选择一个随机数s∈Zp作为可信机构私钥sk,即sk=s∈Zp,其中,Zp是随机数选择集合。然后在生成的可信机构私钥sk的基础上生成相应的公钥pk,用公式可表示为pk=gs∈G。即初始化之后,可信机构持有可信机构私钥sk、可信机构公钥pk,该可信机构公钥pk可以进行发布。
训练服务器IDf初始化的过程中,生成训练服务器的公私钥对,在该具体示例中,可以生成两对公私钥对,其中一对公私钥对可用于进行数据聚合,另一对公私钥对可用于对数据聚合结果进行验证。其中,训练服务器IDf可以选择两个随机数分别作为两个私钥,记为第一训练服务器私钥u和第二训练服务器私钥v,即训练服务器IDf的训练服务器私钥SKf满足其中,Zp指随机数选择集合,指从两个随机数选择集合中分别选择随机数u,v。训练服务器IDf在生成的训练服务器私钥SKf的基础上,生成相应的训练服务器公钥,分别记为第一训练服务器公钥g1、第二训练服务器公钥g2,用公式可表示为PKf=(g1=g1/u,g2=g1/v)∈G2。
模型服务商IDc在进行初始化时,基于第一预定数目w,选择第一预定数目加1个随机数,即选择w+1个随机数其中,Zp指随机数选择集合,指从w+1个随机数选择集合中分别选择随机数α1,α2,...,αw-1,β,xr。然后,基于其中的两个随机数:第一选定随机数β,第二选定随机数xr,计算第一服务商参数和第二服务商参数获得
此外,在初始化过程中,可信机构还为任意一个用户xi∈Zp,生成基于该用户的用户身份的用户私钥其中,s是可信机构与用户之间的共享密钥,xi是用户xi的用户信息。模型服务商IDc还基于w+1个随机数为该用户xi生成共享密钥对(si,1,si,2),该共享密钥对(si,1,si,2)包括第一共享密钥si,1和第二共享密钥si,2,生成的共享密钥对(si,1,si,2)会发送至用户xi。其中,第一共享密钥si,1可以基于上述第一预定数目加1个随机数中,除了第二选定随机数xr之外的其他随机数生成,第二共享密钥si,2可以基于第一服务商参数生成,用公式可以表示为:
其中,si为随机数,si∈Zp。
在完成上述初始化过程之后,即可进入后续的训练任务发布阶段。
在训练任务发布阶段,模型服务商IDc确定导航模型训练的训练时间和训练空间,并通过指定或者其他方式确定相应的训练服务器IDf,并将需要进行训练的初始模型M(0)发送至训练服务器IDf,训练服务器IDf发布训练任务。
在训练服务器IDf发布训练任务之后,如果一个用户xi想要加入到训练过程中,用户xi向训练服务器IDf发送训练加入请求,该训练加入请求中包含该用户xi的身份信息,同时还可以包含有请求时间。
训练服务器IDf接收到各个用户的训练加入请求后,根据训练加入请求的接收时间对各用户进行排序,生成包含第二预定数目n个用户的集合:U={(1,x1),(2,x2),...,(n,xn)},并将用户集合U发送至所有的用户{x1,x2,...,xn}。
基于生成的用户集合U,训练服务器IDf对用户集合U进行分组,从而将n个用户划分为个用户分组。同时,各用户xi接收到训练服务器IDf发送的用户集合U后,采用与训练服务器IDf同样的方式,将这n个用户划分为个用户分组。由于各用户xi知晓用户集合以及用户集合中的各用户的排序,因此,训练服务器IDf以及各用户xi对用户集合进行分组的结果会是相同的。
一个具体示例中,训练服务器IDf和各用户xi可以利用如下程序Algorithm 1、Algorithm 2和Algorithm 3来实现用户分组的划分。
在用户分组划分完成后,各用户xi即可进入模型训练过程,在模型训练过程中,在每一次完成模型训练的迭代过程,获得模型迭代训练结果后,会向训练服务器IDf发送模型迭代训练后得到的模型参数。其中,在将训练得到的模型参数发送给训练服务器IDf时,用户xi对该训练得到的模型参数进行加密和/或签名处理,再发送给训练服务器IDf。
为了能够对训练得到的模型参数进行加密,用户xi需要生成用户端密文。针对任意一个划分至用户分组Uk的用户xi,可以通过下述过程来生成用户端密文。
用户xi生成密钥聚合参数ki和密钥聚合验证参数k′j,并基于训练服务器公钥PKf=(g1,g2)、用户xi的共享密钥对(si,1,si,2)、第一服务商参数以及密钥聚合参数ki和密钥聚合验证参数k′i,获得用户端密文。其中,密钥聚合参数ki和密钥聚合验证参数k′i可以基于用户分组数来确定,例如用户xi基于用户分组数,选择两个不大于用户分组数的数值,分别作为密钥聚合参数ki和密钥聚合验证参数k′i,从而有
基于如上信息生成的用户端密文,包含六个部分(ci,1,ci,2,ci,3,ci,4,ci,5,ci,6):
其中,分组用户信息Ai可以基于该用户xi所属的用户分组Uk中,该用户xi与其他分组内用户xj之间的身份信息的差值来确定,用公式可表示为:其中,在该公式中,xi表示用户xi的身份信息,xj表示分组Uk中用户xj的身份信息。
如上所述,在将训练得到的模型参数发送给训练服务器IDf时,用户xi对该训练得到的模型参数进行签名处理,再发送给训练服务器IDf。为了进行签名,用户xi需要先生成对应的签名,具体可以是生成签名对(σi,1,σi,2),该签名对中包含第一用户签名σi,1和第二用户签名σi,2。
对各个维度的模型参数均采用密钥聚合参数ki进行加密,从而可以获得各个维度的模型参数密文。
在获得各个维度的模型参数密文后,从而可以结合获得的各模型维度的模型参数密文、上述用户端密文(ci,1,ci,2,ci,3,ci,4,ci,5,ci,6)、用户身份信息xi以及当前迭代次数t发送给训练服务器IDf,在发送之前,还可以基于签名对(σi,1,σi,2)进行签名处理,从而最终发送给训练服务器IDf的签名和加密后的信息可记为:
在模型训练过程中,训练服务器IDf获得各用户发送的密文信息msgi后,可获得n组密文信息,因此需要对这n组密文信息进行聚合处理。在进行聚合处理之前,对n个用户的用户端密文(ci,1,ci,2,ci,3,ci,4,ci,5,ci,6)进行密钥聚合处理,以验证共享密钥的准确性。
一个实施例中,训练服务器IDf进行密钥聚合处理时,可采用下述方式进行:
随后,训练服务器IDf利用训练服务器私钥SKf=(u,v),结合第一服务商参数和第二服务商参数对第一聚合密文第二聚合密文第三聚合密文第四聚合密文进行聚合解密,获得第一密钥聚合结果∑i∈Uki,用公式可记为:
然后,训练服务器IDf利用训练服务器私钥SKf=(u,v),结合第一服务商参数和第二服务商参数对第一聚合密文第二聚合密文第五聚合密文第六聚合密文进行聚合解密,获得第二密钥聚合结果∑i∈Uk‘i,用公式可记为:
随后,训练服务器IDf基于各用户的第一用户签名、第二用户签名,验证第二密钥聚合结果∑i∈Uk‘i的正确性,验证过程用公式可表示为:
基于模型参数密文聚合结果,对其进行解密,可获得模型参数聚合结果,用公式可表示为:
如上所述的本申请实施例的方案,还可以支持用户的离开,在检测到用户离开时,可以将该用户从用户集合中删除,一个实施例中,可以利用如下Algorithm 4的相关代码来实现用户离开的处理。
如上所述的本申请实施例的方案,可以用于各种分布式训练模型的场景,例如基于大数据的车辆定位系统。在基于大数据的车辆定位系统中,若公开发布利用车载传感器收集到的数据并进行训练的模型,会导致采集数据的泄露,进而导致客户的位置和身份的隐私暴露。基于本申请实施例的方案,模型训练方案在保障客户隐私的前提下进行,而且动态支持客户的加入和离开。而且,在实施过程中,还可以对恶意客户进行检测,针对检测到的恶意客户不加入训练过程,不加入用户集合,以降低恶意客户对系统性能的影响。具体检测恶意用户的方式,可以采用任何可能的方式进行,本申请实施例不做具体限定。
如上所述的本申请实施例的方案,为了实现基于传感器数据的生成模型的隐私保护和数据聚合,利用了基于秘密共享机制的加密算法,达到了安全和可验证的模型聚合的目的。同时,根据模型聚合结果,仍可以反映指定区域的车辆定位功能。而且,利用跳表技术对参与客户进行分组,通过进行客户分组,可以降低客户加入/离开联邦训练的过程中,对系统的性能所带来的影响;同时,在恶意客户存在的场景下,减少对可用的客户模型数目的影响,并降低相应的计算复杂度。
应该理解的是,虽然如上所述的各实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,这些流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
一个实施例中,如图4所示,提供了一种隐私模型训练的装置,所述装置可以设置于图1所示的训练服务器10上,所述装置包括:
任务发布模块401,用于基于待训练模型发布模型训练任务;
用户集合确定模块402,用于接收各用户终端发送的训练加入请求,根据各用户终端的训练加入请求的请求时间,生成用户集合,并将用户集合发送给各用户终端;
服务端分组模块403,用于将用户集合中的用户划分为两个以上的用户分组;
训练结果接收模块404,用于在任何一次迭代训练过程中,接收所述用户集合内的各所述用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
密钥聚合模块405,用于基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,并对所述密钥聚合处理结果验证通过;
模型聚合模块406,用于在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
一些实施例中,用户集合确定模块402,根据各用户终端的训练加入请求的请求时间,对各用户终端进行排序;根据请求时间最早的第二预定数目个用户终端的用户,生成用户集合,用户集合中包含各所述用户终端的排序信息。
一些实施例中,服务端分组模块403,包括:
服务端分组数确定模块,用于将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目;
服务端分组划分模块,用于将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
一些实施例中,服务端分组划分模块,获取用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至用户集合中的任意一个用户都加入了一个用户分组。
一些实施例中,服务端分组划分模块,按照所述用户集合中的各用户的排列顺序,依序获取所述用户集合中的第一预定数目的用户。
一些实施例中,服务端分组划分模块,还用于在最后一个用户分组中的用户小于所述第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且用户集合中的任意一个用户最多加入两个用户分组。
一些实施例中,密钥聚合模块405,包括:
第一密文聚合子模块,用于对各所述用户终端的用户端密文中的第一密文部分进行聚合,获得第一聚合密文,所述第一密文部分为用户终端采用第一训练服务器公钥对第三随机数进行加密获得的密文结果;
第二密文聚合子模块,用于对各所述用户终端的用户端密文中的第二密文部分进行聚合,获得第二聚合密文,所述第二密文部分为用户终端采用第二训练服务器公钥对第四随机数进行加密获得的密文结果;
第三密文聚合子模块,用于对各用户终端的用户端密文中的第三密文部分进行聚合,获得第三聚合密文,第三密文部分为用户终端基于第一共享密钥对第一随机数、第三随机数、第四随机数以及分组用户信息进行加密,获得的密文结果;
第四密文聚合子模块,用于对各用户端的用户端密文中的第四密文部分进行聚合,获得第四聚合密文,所述第四密文部分为用户终端基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得的密文结果;
第五密文聚合子模块,用于对各用户端的用户端密文中的第五密文部分进行聚合,获得第五聚合密文,第五密文部分为用户终端基于第一共享密钥对第二随机数、第三随机数、第四随机数以及分组用户信息进行加密,获得的密文结果;
第六密文聚合子模块,用于对各所述用户端的用户端密文中的第六密文部分进行聚合,获得第六聚合密文,所述第六密文部分为用户终端基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得的密文结果;
第一密钥聚合子模块,对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果;
第二密钥聚合子模块,对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
聚合结果确定模块,在所述第一密钥聚合结果对所述第二密钥聚合结果验证通过时,将所述第二密钥聚合结果作为密钥聚合处理结果。
一些实施例中,第一密钥聚合子模块,采用如下公式对所一聚合密文、第二聚合密文、第三聚合密文和第四聚合密文进行聚合处理,获得第一密钥聚合结果:
其中,为第一密钥聚合结果,e为双线性映射运算函数,为第四聚合密文,为第三聚合密文,为第一聚合密文,u为第一训练服务器私钥,为第二聚合密文,v为第二训练服务器私钥,为第一服务商参数,g为双线性映射时所选用的曲线上的点,β为第一选定随机数,xr为第二选定随机数,m为分组数目。
一些实施例中,第二密钥聚合子模块,采用如下公式对第一聚合密文、第二聚合密文、第五聚合密文和第六聚合密文进行聚合处理,获得第二密钥聚合结果:
其中,为第一密钥聚合结果,e为双线性映射运算函数,为第六聚合密文,为第五聚合密文,为第一聚合密文,u为第一训练服务器私钥,为第二聚合密文,v为第二训练服务器私钥,为第一服务商参数,g为双线性映射时所选用的曲线上的点,β为第一选定随机数,xr为第二选定随机数,m为分组数目。
一些实施例中,模型聚合模块,对各所述用户终端的模型参数密文进行求和处理,获得模型聚合结果。
在一个实施例中,如图5所示,提供了一种隐私模型训练的装置,所述装置可以设置于图2所示的用户终端10上,所述装置包括:
训练请求模块501,用于基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求;
终端分组模块502,用于接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组;
用户端密文生成模块503,用于基于所属的用户分组,生成用户端密文;
模型训练模块504,用于在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果;
训练结果加密模块505,用于对模型迭代训练结果进行加密,获得模型参数密文;
训练结果发送模块506,用于向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数。
一些实施例中,终端分组模块502,包括:
终端分组数确定模块,将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目;
终端分组划分模块,用于将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
一些实施例中,终端分组划分模块,获取用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至用户集合中的任意一个用户都加入了一个用户分组。
一些实施例中,终端分组划分模块,根据用户集合中的各用户的排列顺序,依序获取所述用户集合中的第一预定数目的用户。
一些实施例中,终端分组划分模块,还在最后一个用户分组中的用户小于所述第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到所述最后一个用户分组,直至任意一个用户分组中都包含所述第一预定数目个用户、所述用户集合中的任意一个用户都加入了至少一个用户分组、且所述用户集合中的任意一个用户最多加入两个用户分组。
一些实施例中,用户端密文生成模块503,基于第一训练服务器公钥、第二训练服务器公钥、第一共享密钥、第二共享密钥、第一服务商参数、所述密钥聚合参数和所述密钥聚合验证参数,获得用户端密文。
一些实施例中,用户端密文生成模块503,包括:
第一密文部分生成模块,用于采用所述第一训练服务器公钥对所述第三随机数进行加密,获得第一密文部分;
第二密文部分生成模块,用于采用所述第二训练服务器公钥对所述第四随机数进行加密,获得第二密文部分;
第三密文部分生成模块,用于基于所述第一共享密钥对所述第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得第三密文部分,所述用户分组信息基于所属的用户分组中,与该用户分组内的其他用户之间的身份信息的差值确定;
第四密文部分生成模块,用于基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第一随机数和所述密钥聚合参数进行加密,获得第四密文部分;
第五密文部分生成模块,用于基于所述第一共享密钥对第二随机数、第三随机数、第四随机数以及所述分组用户信息进行加密,获得第五密文部分;
第五密文部分生成模块,用于基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和所述密钥聚合验证参数进行加密,获得第六密文部分;
所述用户端密文,包括所述第一密文部分、所述第二密文部分、所述第三密文部分、所述第四密文部分、所述第五密文部分以及所述第六密文部分。
一些实施例中,训练结果加密模块505,用于对各维度的所述模型参数,分别进行加密,获得所述模型参数密文。
关于训练模型的装置的具体实现方式,可以参见上文中对于训练模型的方法的实施例中的说明,在此不再赘述。上述训练模型的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构可以包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储模型训练过程中的相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种隐私模型训练的方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种隐私模型训练的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,如上所述的计算机设备的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现如上所述的任一实施例中的训练模型的方法的步骤。
一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述的任一实施例中的训练模型的方法的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种隐私模型训练的方法,其特征在于,所述方法包括:
基于待训练模型发布模型训练任务;
接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将所述用户集合发送给各所述用户终端;
将所述用户集合中的用户划分为两个以上的用户分组;
在任何一次迭代训练过程中,接收所述用户集合内的各所述用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果;
在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
2.根据权利要求1所述的方法,其特征在于,将所述用户集合中的用户划分为两个以上的用户分组,包括:
将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目;
将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
3.根据权利要求2所述的方法,其特征在于,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,包括:
获取所述用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至所述用户集合中的任意一个用户都加入了一个用户分组。
4.根据权利要求1所述的方法,其特征在于,基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,包括:
对各所述用户终端的用户端密文中的第一密文部分进行聚合,获得第一聚合密文,所述第一密文部分为用户终端采用第一训练服务器公钥对第三随机数进行加密获得的密文结果;
对各所述用户终端的用户端密文中的第二密文部分进行聚合,获得第二聚合密文,所述第二密文部分为用户终端采用第二训练服务器公钥对第四随机数进行加密获得的密文结果;
对各所述用户终端的用户端密文中的第三密文部分进行聚合,获得第三聚合密文,所述第三密文部分为用户终端基于第一共享密钥对第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第四密文部分进行聚合,获得第四聚合密文,所述第四密文部分为用户终端基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第五密文部分进行聚合,获得第五聚合密文,所述第五密文部分为用户终端基于第一共享密钥对第二随机数、所述第三随机数、所述第四随机数以及所述分组用户信息进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第六密文部分进行聚合,获得第六聚合密文,所述第六密文部分为用户终端基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得的密文结果;
对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果;
对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
在所述第一密钥聚合结果对所述第二密钥聚合结果验证通过时,将所述第二密钥聚合结果作为密钥聚合处理结果。
5.根据权利要求1所述的方法,其特征在于,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果,包括:
对各所述用户终端的模型参数密文进行求和处理,获得模型聚合结果。
6.一种隐私模型训练的方法,其特征在于,所述方法包括:
基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求;
接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组;
基于所属的用户分组,生成用户端密文;
在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果;
对所述模型迭代训练结果进行加密,获得模型参数密文;
向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数。
7.根据权利要求6所述的方法,其特征在于,将所述用户集合中的用户划分为两个以上的用户分组,包括:
将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目;
将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
8.根据权利要求6所述的方法,其特征在于,所述生成用户端密文,包括:
基于第一训练服务器公钥、第二训练服务器公钥、第一共享密钥、第二共享密钥、第一服务商参数、密钥聚合参数和密钥聚合验证参数,获得用户端密文。
9.根据权利要求8所述的方法,其特征在于,基于第一训练服务器公钥、第二训练服务器公钥、第一共享密钥、第二共享密钥、第一服务商参数、所述密钥聚合参数和所述密钥聚合验证参数,获得用户端密文,包括:
生成第一随机数对和第二随机数对,所述第一随机数对包含第一随机数和第二随机数,所述第二随机数对包含第三随机数和第四随机数;
采用所述第一训练服务器公钥对所述第三随机数进行加密,获得第一密文部分;
采用所述第二训练服务器公钥对所述第四随机数进行加密,获得第二密文部分;
基于所述第一共享密钥对所述第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得第三密文部分,所述用户分组信息基于所属的用户分组中,与该用户分组内的其他用户之间的身份信息的差值确定;
基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第一随机数和所述密钥聚合参数进行加密,获得第四密文部分;
基于所述第一共享密钥对所述第二随机数、所述第三随机数、所述第四随机数以及所述分组用户信息进行加密,获得第五密文部分;
基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和所述密钥聚合验证参数进行加密,获得第六密文部分;
所述用户端密文,包括所述第一密文部分、所述第二密文部分、所述第三密文部分、所述第四密文部分、所述第五密文部分以及所述第六密文部分。
10.根据权利要求6所述的方法,其特征在于,所述模型迭代训练结果包括模型迭代训练之后的各维度的模型参数;
对所述模型迭代训练结果进行加密,获得模型参数密文,包括:
对各维度的所述模型参数,分别进行加密,获得所述模型参数密文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110477135.7A CN113094735B (zh) | 2021-04-29 | 2021-04-29 | 隐私模型训练的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110477135.7A CN113094735B (zh) | 2021-04-29 | 2021-04-29 | 隐私模型训练的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094735A true CN113094735A (zh) | 2021-07-09 |
CN113094735B CN113094735B (zh) | 2023-03-31 |
Family
ID=76681441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110477135.7A Active CN113094735B (zh) | 2021-04-29 | 2021-04-29 | 隐私模型训练的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094735B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116522382A (zh) * | 2023-04-17 | 2023-08-01 | 广州市安洛网络有限责任公司 | 一种应用程序用户信息保护方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180373882A1 (en) * | 2017-06-23 | 2018-12-27 | Thijs Veugen | Privacy preserving computation protocol for data analytics |
CN110263928A (zh) * | 2019-06-18 | 2019-09-20 | 中国科学技术大学 | 保护数据隐私的基于移动设备的分布式深度学习训练方法 |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及系统 |
CN111241580A (zh) * | 2020-01-09 | 2020-06-05 | 广州大学 | 一种基于可信执行环境的联邦学习方法 |
US20200226284A1 (en) * | 2019-01-11 | 2020-07-16 | Experian Information Solutions, Inc. | Systems and methods for secure data aggregation and computation |
CN111865815A (zh) * | 2020-09-24 | 2020-10-30 | 中国人民解放军国防科技大学 | 一种基于联邦学习的流量分类方法及系统 |
CN111935156A (zh) * | 2020-08-12 | 2020-11-13 | 科技谷(厦门)信息技术有限公司 | 一种联邦学习的数据隐私保护方法 |
CN112101531A (zh) * | 2020-11-16 | 2020-12-18 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的神经网络模型训练方法、装置及系统 |
CN112580821A (zh) * | 2020-12-10 | 2021-03-30 | 深圳前海微众银行股份有限公司 | 一种联邦学习方法、装置、设备及存储介质 |
-
2021
- 2021-04-29 CN CN202110477135.7A patent/CN113094735B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180373882A1 (en) * | 2017-06-23 | 2018-12-27 | Thijs Veugen | Privacy preserving computation protocol for data analytics |
US20200226284A1 (en) * | 2019-01-11 | 2020-07-16 | Experian Information Solutions, Inc. | Systems and methods for secure data aggregation and computation |
CN110263928A (zh) * | 2019-06-18 | 2019-09-20 | 中国科学技术大学 | 保护数据隐私的基于移动设备的分布式深度学习训练方法 |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及系统 |
CN111241580A (zh) * | 2020-01-09 | 2020-06-05 | 广州大学 | 一种基于可信执行环境的联邦学习方法 |
CN111935156A (zh) * | 2020-08-12 | 2020-11-13 | 科技谷(厦门)信息技术有限公司 | 一种联邦学习的数据隐私保护方法 |
CN111865815A (zh) * | 2020-09-24 | 2020-10-30 | 中国人民解放军国防科技大学 | 一种基于联邦学习的流量分类方法及系统 |
CN112101531A (zh) * | 2020-11-16 | 2020-12-18 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的神经网络模型训练方法、装置及系统 |
CN112580821A (zh) * | 2020-12-10 | 2021-03-30 | 深圳前海微众银行股份有限公司 | 一种联邦学习方法、装置、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116522382A (zh) * | 2023-04-17 | 2023-08-01 | 广州市安洛网络有限责任公司 | 一种应用程序用户信息保护方法和系统 |
CN116522382B (zh) * | 2023-04-17 | 2023-11-21 | 广州市安洛网络有限责任公司 | 一种应用程序用户信息保护方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113094735B (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111628868B (zh) | 数字签名生成方法、装置、计算机设备和存储介质 | |
TWI706279B (zh) | 多方安全計算方法及裝置、電子設備 | |
US11196541B2 (en) | Secure machine learning analytics using homomorphic encryption | |
CN111898137A (zh) | 一种联邦学习的隐私数据处理方法、设备及系统 | |
CN116561789B (zh) | 隐私数据的处理方法、装置、电子设备及可读存储介质 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN112182644A (zh) | 一种数据处理方法、装置和电子设备 | |
US11444752B2 (en) | Systems and methods for data encryption and decryption in data transmission | |
CN107248980B (zh) | 云服务下具有隐私保护功能的移动应用推荐系统及方法 | |
CN112163854B (zh) | 一种层级化基于区块链公钥可搜索加密方法及系统 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN111400728A (zh) | 应用于区块链的数据加密解密方法及装置 | |
US20150023498A1 (en) | Byzantine fault tolerance and threshold coin tossing | |
CN112801307B (zh) | 基于区块链的联邦学习方法、装置和计算机设备 | |
CN113094735B (zh) | 隐私模型训练的方法 | |
CN111475690B (zh) | 字符串的匹配方法和装置、数据检测方法、服务器 | |
US11133926B2 (en) | Attribute-based key management system | |
CN113434906B (zh) | 数据查询方法、装置、计算机设备及存储介质 | |
CN113094675B (zh) | 基于分布式模型训练的用户认证方法及装置 | |
CN115599959A (zh) | 数据共享方法、装置、设备及存储介质 | |
CN111125734B (zh) | 一种数据处理方法及系统 | |
Liu et al. | Video data integrity verification method based on full homomorphic encryption in cloud system | |
CN116095671B (zh) | 一种基于元宇宙的资源共享方法及其相关设备 | |
CN114095157B (zh) | 密钥管理方法、装置、计算机设备及可读存储介质 | |
CN115174260B (zh) | 数据验证方法、装置、计算机、存储介质和程序产品 |
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 |