CN113094735B - 隐私模型训练的方法 - Google Patents

隐私模型训练的方法 Download PDF

Info

Publication number
CN113094735B
CN113094735B CN202110477135.7A CN202110477135A CN113094735B CN 113094735 B CN113094735 B CN 113094735B CN 202110477135 A CN202110477135 A CN 202110477135A CN 113094735 B CN113094735 B CN 113094735B
Authority
CN
China
Prior art keywords
ciphertext
user
training
random number
key
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
CN202110477135.7A
Other languages
English (en)
Other versions
CN113094735A (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.)
Chinese University of Hong Kong Shenzhen
Original Assignee
Chinese University of Hong Kong Shenzhen
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 Chinese University of Hong Kong Shenzhen filed Critical Chinese University of Hong Kong Shenzhen
Priority to CN202110477135.7A priority Critical patent/CN113094735B/zh
Publication of CN113094735A publication Critical patent/CN113094735A/zh
Application granted granted Critical
Publication of CN113094735B publication Critical patent/CN113094735B/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/602Providing cryptographic facilities or services
    • 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
    • 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/64Protecting 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

隐私模型训练的方法
技术领域
本申请涉及计算机技术领域,特别是涉及一种隐私模型训练的方法、装置、计算机设备和存储介质。
背景技术
随着计算机领域的技术的发展,通过机器学习模型来进行相关处理日益成为计算机技术中的重要内容。在采用机器学习模型进行处理之前,需要提供样本集,并针对样本集执行模型训练过程以获得最终的机器学习模型。在传统的模型训练过程中,都是由某个独立的设备,例如终端或服务器来完成整个的训练过程,这种单一训练方式,容易导致样本集的数据的泄露,影响数据安全性。为此,出现了分布式学习的技术,其将用以进行训练的样本集分布在多个设备上,在每次训练过程中,由多个设备分别基于自身的数据集进行模型训练,并将模型训练的训练结果发送至训练服务器,由训练服务器对各设备的训练结果进行融合,获得当次的整体的模型训练结果,再将单词模型训练的结果给到各设备,重复下一次的迭代训练过程,直至训练结束。然而,传统的这种分布式训练模型的方式,存在安全性问题。
发明内容
基于此,有必要针对上述技术问题,提供一种隐私模型训练的方法、装置、计算机设备和存储介质。
一种隐私模型训练的方法,所述方法包括:
基于待训练模型发布模型训练任务;
接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将所述用户集合发送给各所述用户终端;
将所述用户集合中的用户划分为两个以上的用户分组;
在任何一次迭代训练过程中,接收用户集合内的各用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果;
在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
一些实施例中,根据各用户终端的训练加入请求的请求时间,生成用户集合,包括:
根据各用户终端的训练加入请求的请求时间,对各用户终端进行排序;
根据请求时间最早的第二预定数目个用户终端的用户,生成用户集合,所述用户集合中,包含各所述用户终端的排序信息。
一些实施例中,获取所述用户集合中的第一预定数目的用户,包括:根据用户集合中的各用户的排列顺序,依序获取用户集合中的第一预定数目的用户。
一些实施例中,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,还包括:
当最后一个用户分组中的用户小于第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到所述最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且所述用户集合中的任意一个用户最多加入两个用户分组。
一些实施例中,采用如下公式,对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果:
Figure 299619DEST_PATH_IMAGE001
其中,
Figure 926516DEST_PATH_IMAGE002
为第一密钥聚合结果,
Figure 571124DEST_PATH_IMAGE003
为双线性映射运算函数,
Figure 230776DEST_PATH_IMAGE004
为第四 聚合密文,
Figure 861609DEST_PATH_IMAGE005
为第三聚合密文,
Figure 985422DEST_PATH_IMAGE006
为第一聚合密文,
Figure 4194DEST_PATH_IMAGE007
为第一训练服务器私钥,
Figure 338092DEST_PATH_IMAGE008
为第二聚 合密文,
Figure 834933DEST_PATH_IMAGE009
为第二训练服务器私钥,
Figure 813253DEST_PATH_IMAGE010
为第一服务商参数,
Figure 675030DEST_PATH_IMAGE011
为双线性映射时所选用的曲 线上的点,
Figure 309273DEST_PATH_IMAGE012
为第一选定随机数,
Figure 672122DEST_PATH_IMAGE013
为第二选定随机数,
Figure 442631DEST_PATH_IMAGE014
为分组数目。
一些实施例中,采用如下公式,对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
Figure 226042DEST_PATH_IMAGE015
其中,
Figure 409899DEST_PATH_IMAGE016
为第二密钥聚合结果,
Figure 248542DEST_PATH_IMAGE003
为双线性映射运算函数,
Figure 76820DEST_PATH_IMAGE017
为第六聚 合密文,
Figure 405033DEST_PATH_IMAGE018
为第五聚合密文,
Figure 748290DEST_PATH_IMAGE006
为第一聚合密文,
Figure 843154DEST_PATH_IMAGE007
为第一训练服务器私钥,
Figure 588256DEST_PATH_IMAGE008
为第二聚合 密文,
Figure 352950DEST_PATH_IMAGE009
为第二训练服务器私钥,
Figure 183502DEST_PATH_IMAGE010
为第一服务商参数,
Figure 301631DEST_PATH_IMAGE011
为双线性映射时所选用的曲线 上的点,
Figure 963557DEST_PATH_IMAGE012
为第一选定随机数,
Figure 836835DEST_PATH_IMAGE013
为第二选定随机数,
Figure 863607DEST_PATH_IMAGE014
为分组数目。
一种隐私模型训练的方法,所述方法包括:
基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求;
接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组;
基于所属的用户分组,生成用户端密文;
在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果;
对所述模型迭代训练结果进行加密,获得模型参数密文;
向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数。
一些实施例中,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,包括:
获取所述用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至所述用户集合中的任意一个用户都加入了一个用户分组。
获取所述用户集合中的第一预定数目的用户,包括:所述用户集合中的各用户的排列顺序,依序获取所述用户集合中的第一预定数目的用户。
一些实施例中,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,还包括:
当最后一个用户分组中的用户小于第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且用户集合中的任意一个用户最多加入两个用户分组。
一些实施例中,通过如下公式获得所述第三密文部分:
Figure 644481DEST_PATH_IMAGE019
其中,
Figure 364175DEST_PATH_IMAGE020
表示所述第三密文部分,
Figure 346038DEST_PATH_IMAGE021
为第一共享密钥,
Figure 151183DEST_PATH_IMAGE011
为双线性映射时所选用 的曲线上的点,
Figure 1327DEST_PATH_IMAGE022
为第一随机数,
Figure 575528DEST_PATH_IMAGE023
为分组用户信息,
Figure 711980DEST_PATH_IMAGE024
为第三随机数,
Figure 801159DEST_PATH_IMAGE025
为第四随机 数。
一些实施例中,通过如下公式获得所述第四密文部分:
Figure 392677DEST_PATH_IMAGE026
其中,
Figure 759068DEST_PATH_IMAGE027
为第四密文部分,
Figure 941787DEST_PATH_IMAGE028
为第二共享密钥,
Figure 721525DEST_PATH_IMAGE023
为分组用户信息,
Figure 539570DEST_PATH_IMAGE003
为双线性 映射运算函数,
Figure 822784DEST_PATH_IMAGE010
为第一服务商参数,
Figure 707563DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,
Figure 709017DEST_PATH_IMAGE022
为第一 随机数,
Figure 314442DEST_PATH_IMAGE029
为第一训练服务器公钥,
Figure 514479DEST_PATH_IMAGE030
为第二训练服务器公钥,
Figure 507843DEST_PATH_IMAGE031
为密钥聚合参数。
一些实施例中,通过如下公式获得所述第五密文部分:
Figure 917965DEST_PATH_IMAGE032
其中,
Figure 654977DEST_PATH_IMAGE033
为第五密文部分,
Figure 709520DEST_PATH_IMAGE021
为第一共享密钥,
Figure 545889DEST_PATH_IMAGE011
为双线性映射时所选用的曲 线上的点,
Figure 521936DEST_PATH_IMAGE034
为第二随机数,
Figure 859376DEST_PATH_IMAGE023
为分组用户信息,
Figure 971688DEST_PATH_IMAGE024
为第三随机数,
Figure 726761DEST_PATH_IMAGE025
为第四随机数。
一些实施例中,通过如下公式获得所述第六密文部分:
Figure 986841DEST_PATH_IMAGE035
其中,
Figure 65656DEST_PATH_IMAGE036
为第六密文部分,
Figure 235737DEST_PATH_IMAGE028
为第二共享密钥,
Figure 476226DEST_PATH_IMAGE023
为分组用户信息,
Figure 489181DEST_PATH_IMAGE003
为双线性 映射运算函数,
Figure 27479DEST_PATH_IMAGE010
为第一服务商参数,
Figure 114383DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,
Figure 588090DEST_PATH_IMAGE034
为第二 随机数,
Figure 760445DEST_PATH_IMAGE029
为第一训练服务器公钥,
Figure 118746DEST_PATH_IMAGE030
为第二训练服务器公钥,
Figure 856894DEST_PATH_IMAGE037
为密钥聚合验证参数。
一种隐私模型训练的装置,所述装置包括:
任务发布模块,用于基于待训练模型发布模型训练任务;
用户集合确定模块,用于接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将所述用户集合发送给各所述用户终端;
服务端分组模块,用于将用户集合中的用户划分为两个以上的用户分组;
训练结果接收模块,用于在任何一次迭代训练过程中,接收所述用户集合内的各所述用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
密钥聚合模块,用于基于各用户终端所属的用户分组,对各用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,并对密钥聚合处理结果验证;
模型聚合模块,用于在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
一种隐私模型训练的装置,所述装置包括:
训练请求模块,用于基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求;
终端分组模块,用于接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组;
用户端密文生成模块,用于基于所属的用户分组,生成用户端密文;
模型训练模块,用于在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果;
训练结果加密模块,用于对模型迭代训练结果进行加密,获得模型参数密文;
训练结果发送模块,用于向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现如上所述的任一实施例中的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的任一实施例中的方法的步骤。
上述隐私模型训练的方法、装置、计算机设备和存储介质,其在进行分布式模型训练的过程中,对确定的模型训练的用户集合中的用户,将其划分为两个以上的用户分组,且在每次迭代训练结束后,是基于所属的用户分组生成用户端密文,将该用户端密文与对模型迭代训练结果进行加密得到的模型参数密文一起携带在模型参数密文中发送给训练服务器,从而大大有助于提高模型训练时的安全性和稳定性。
附图说明
图1-1、1-2为一个实施例中隐私模型训练的方法的应用环境图;
图2为一个实施例中隐私模型训练的方法的流程示意图;
图3为另一个实施例中隐私模型训练的方法的流程示意图;
图4为一个实施例中的隐私模型训练的装置的结构框图;
图5为另一个实施例中的隐私模型训练的装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的隐私模型训练的方法,可以应用于如图1所示的应用环境中。其中, 训练服务器10与多个用户终端20通过网络。训练服务器10基于待训练模型发布模型训练任 务,各用户终端20接收到各模型训练任务之后,要参与该模型训练任务时,发送训练接入请 求。训练服务器10基于各用户终端的训练加入请求,选择加入训练的各用户终端。在模型训 练过程中,训练服务器10将上一次训练后融合的训练结果
Figure 704765DEST_PATH_IMAGE038
(首次开始训练时,t=0,即 发送的是初始模型
Figure 52832DEST_PATH_IMAGE039
)发送给各用户终端20,各用户终端20基于自身产生的样本集进行 模型训练,并将模型训练的结果
Figure 11560DEST_PATH_IMAGE040
、…、
Figure 135374DEST_PATH_IMAGE041
Figure 826250DEST_PATH_IMAGE042
发送给训练服务器10,训练服 务器10基于各用户终端20的模型训练的结果进行融合,获得一次迭代训练的结果,然后将 融合后的模型训练结果发送给各用户终端,进行下一次的模型迭代训练过程。其中,该应用 环境还涉及模型服务商30,该模型服务商30作为提出训练需求的机构,用以提供待训练模 型的初始模型
Figure 707618DEST_PATH_IMAGE039
,并用以确定用以发布模型训练需求的训练服务器10。训练服务器10训 练获得最终的模型
Figure 532355DEST_PATH_IMAGE043
之后,会将最终获得的模型
Figure 448358DEST_PATH_IMAGE043
反馈给模型服务商30。其中,该应 用环境还涉及可信机构40,该可信机构为模型服务商30、训练服务器10以及各用户终端分 配数字证书。其中,终端20可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电 脑、便携式可穿戴设备、车载终端等设备,服务器10可以用独立的服务器或者是多个服务器 组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种隐私模型训练的方法,以该方法应用于图1中的训练服务器10为例进行说明,包括以下步骤S201至步骤S206。
步骤S201:基于待训练模型发布模型训练任务。其中,待训练模型可以是由模型服务商提供给训练服务器,是用以进行训练的模型对象。
步骤S202:接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将用户集合发送给各用户终端。
在接收到训练服务器发布的模型训练任务之后,若需要加入该模型训练任务,则用户终端发送训练加入请求,该训练加入请求中同时包含有请求时间。
一个实施例中,根据各用户终端的训练加入请求的请求时间,生成用户集合,具体可以是根据各用户终端的训练加入请求的请求时间,对各用户终端进行排序;然后根据请求时间最早的第二预定数目个用户终端的用户,生成用户集合,所述用户集合中,包含各所述用户终端的排序信息。其中,第二预定数目,可以结合实际技术需要,例如训练需求进行设定。
从而,训练服务器在接收到各个用户的训练加入请求后,可根据训练加入请求的 接收时间对各用户进行的排序,该排序也可以认为是各用户的回复次序,例如,最早接收到 的用户的排序越靠前。然后根据各用户的回复次序,训练服务器生成包含第二预定数目
Figure 559402DEST_PATH_IMAGE044
个用户的集合:
Figure 255963DEST_PATH_IMAGE045
。其中,
Figure 556494DEST_PATH_IMAGE046
表示用户
Figure 264687DEST_PATH_IMAGE047
的排序为第 1位,
Figure 625261DEST_PATH_IMAGE048
表示用户
Figure 543539DEST_PATH_IMAGE049
的排序为第2位,其他的以此类推。同时,训练服务器将用户集合
Figure 647761DEST_PATH_IMAGE050
发送至集合中的所有用户
Figure 958263DEST_PATH_IMAGE051
。可以理解,训练服务器将该用户集合U发送给所 有用户的同时,同时将所有用户的排序发送给了这些用户。
步骤S203:将所述用户集合中的用户划分为两个以上的用户分组。
可以采用各种可能的方式进行分组的划分。一个实施例中,将所述用户集合中的用户划分为两个以上的用户分组,包括如下步骤S2031和步骤S2032。
步骤S2031:将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目。
记第一预定数目为
Figure 552056DEST_PATH_IMAGE052
,第二预定数目为
Figure 895312DEST_PATH_IMAGE044
,一个实施例中,可以将第二预定数目与 第一预定数目的比值向上取整,作为用户分组数,即用户分组数为
Figure 209750DEST_PATH_IMAGE053
。其中,第一预定数目
Figure 17169DEST_PATH_IMAGE052
,表示任意一个分组中至少包括有第一预定数目
Figure 719546DEST_PATH_IMAGE052
个用户。从而,通过将预定第二预定数 目与第一预定数目的比值向上取整的数目作为用户分组数,可以确保用户集合中的每个用 户都至少被划分到一个用户分组中。
步骤S2032:将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
其中,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,包括:
获取所述用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至所述用户集合中的任意一个用户都加入了一个用户分组。
其中,获取所述用户集合中的第一预定数目的用户,可以是按照预定规则选取第一预定数目的用户,只要每一次选取的第一预定数目的用户不相同即可。在一个具体示例中,可以是根据所述用户集合中的各用户的排列顺序,依序获取所述用户集合中的第一预定数目的用户。
其中,在依序获取所述用户集合中的第一预定数目的用户来加入用户分组时,当最后一个用户分组中的用户小于所述第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且所述用户集合中的任意一个用户最多加入两个用户分组。
在一个具体示例中,一个实施例中,在对用户集合
Figure 737049DEST_PATH_IMAGE050
进行分组时,可以是按照用户 集合中各用户的排序,将各用户划分到对应的分组。例如,假设用户集合为
Figure 979812DEST_PATH_IMAGE054
,此时, 可以将用户
Figure 845000DEST_PATH_IMAGE055
划分为一个用户分组,并将各用户
Figure 655961DEST_PATH_IMAGE056
划分 为一个用户分组,其他的以此类推,直至任何一个用户都划分到一个用户分组。可以理解的 是,在某些情况下,可能回复的用户数目
Figure 708231DEST_PATH_IMAGE044
并不能被分组中的用户数
Figure 754684DEST_PATH_IMAGE052
整除,即最后一个分 组中的用户数不足第一预定数目
Figure 162794DEST_PATH_IMAGE052
,此时,可以从已分组的其他用户中,按照确定的规则选 择不足的数量的用户加入该最后一个分组,以确保每个分组中的用户都能够达到该第一预 定数目
Figure 206973DEST_PATH_IMAGE052
。其中,这里的确定规则,本申请实施例不做的具体限定,只要能确保每个分组都 有第一预定数目
Figure 808856DEST_PATH_IMAGE052
,且每个用户最多只能加入两个分组即可。
在其他实施例中,训练服务器
Figure 596683DEST_PATH_IMAGE057
在对用户集合
Figure 108567DEST_PATH_IMAGE050
进行分组时,也可以采用其他的 方式进行分组,只要能够确保训练服务器
Figure 120386DEST_PATH_IMAGE057
和各用户
Figure 412827DEST_PATH_IMAGE058
所得到的分组结果相同、且每个 分组中至少包含第一预定数目
Figure 925716DEST_PATH_IMAGE052
个用户、且每个用户至少加入了其中一个分组且最多只能 加入两个分组即可。
步骤S204:在任何一次迭代训练过程中,接收用户集合内的各用户终端发送的模型训练密文,模型训练密文携带用户端密文、模型参数密文以及训练迭代次数。
其中,用户端密文,可以是用户终端基于第一训练服务器公钥、第二训练服务器公钥、第一共享密钥、第二共享密钥、第一服务商参数、密钥聚合参数和密钥聚合验证参数,获得的用户端密文。模型参数密文,是用户终端对迭代训练获得的模型迭代训练结果进行加密获得的模型参数密文。训练迭代次数,是用户终端在模型训练过程中的迭代次数。
步骤S205:基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果。
一个实施例中,基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,可以包括如下步骤S2051至步骤S2059。
步骤S2051:对各所述用户终端的用户端密文中的第一密文部分进行聚合,获得第一聚合密文,所述第一密文部分为用户终端采用第一训练服务器公钥对第三随机数进行加密获得的密文结果。
一个实施例中,可以是对用户集合中的各用户的第一密文部分进行的聚合处理, 具体可以是乘积处理。用公式可以表示为:
Figure 620003DEST_PATH_IMAGE059
。其中,
Figure 802723DEST_PATH_IMAGE006
表示第 一聚合密文,
Figure 254564DEST_PATH_IMAGE060
表示第
Figure 384194DEST_PATH_IMAGE061
个用户终端的第一密文部分。
步骤S2052:对各所述用户终端的用户端密文中的第二密文部分进行聚合,获得第二聚合密文,所述第二密文部分为用户终端采用第二训练服务器公钥对第四随机数进行加密获得的密文结果。
一个实施例中,可以是对用户集合中的各用户的第二密文部分进行的聚合处理, 具体可以是乘积处理。用公式可以表示为:
Figure 995304DEST_PATH_IMAGE062
。其中,
Figure 552187DEST_PATH_IMAGE008
表示第 二聚合密文,
Figure 239127DEST_PATH_IMAGE063
表示第
Figure 172448DEST_PATH_IMAGE061
个用户终端的第二密文部分。
步骤S2053:对各用户终端的用户端密文中的第三密文部分进行聚合,获得第三聚合密文,第三密文部分为用户终端基于第一共享密钥对第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得的密文结果。
其中,对用户集合中的各用户的第三密文部分进行的聚合处理,具体可以是乘积 处理。用公式可以表示为:
Figure 372485DEST_PATH_IMAGE064
。其中,
Figure 37953DEST_PATH_IMAGE065
表示 第三聚合密文,
Figure 526703DEST_PATH_IMAGE066
表示第
Figure 326031DEST_PATH_IMAGE061
个用户终端的第三密文部分。
步骤S2054:对各所述用户端的用户端密文中的第四密文部分进行聚合,获得第四聚合密文,第四密文部分为用户终端基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得的密文结果。
一个实施例中,对用户集合中的各用户的第四密文部分进行的聚合处理,具体可以是乘积处理,用公式可以表示为:
Figure 505209DEST_PATH_IMAGE067
其中,
Figure 403895DEST_PATH_IMAGE068
表示第四聚合密文,
Figure 442258DEST_PATH_IMAGE069
表示第
Figure 717381DEST_PATH_IMAGE061
个用户终端的第四密文部分。
步骤S2055:对各所述用户端的用户端密文中的第五密文部分进行聚合,获得第五聚合密文,第五密文部分为用户终端基于第一共享密钥对第二随机数、第三随机数、第四随机数以及所述分组用户信息进行加密,获得的密文结果。
一个实施例中,对用户集合中的各用户的第五密文部分进行的聚合处理,具体可以是乘积处理,用公式可以表示为:
Figure 767377DEST_PATH_IMAGE070
其中,
Figure 899281DEST_PATH_IMAGE071
表示第五聚合密文,
Figure 97044DEST_PATH_IMAGE072
表示第
Figure 864274DEST_PATH_IMAGE061
个用户终端的第五密文部分。
步骤S2056:对各所述用户端的用户端密文中的第六密文部分进行聚合,获得第六聚合密文,所述第六密文部分为用户终端基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得的密文结果。
一个实施例中,对用户集合中的各用户的第五密文部分进行的聚合处理,具体可以是乘积处理,用公式可以表示为:
Figure 831093DEST_PATH_IMAGE073
其中,
Figure 133899DEST_PATH_IMAGE074
表示第六聚合密文,
Figure 756641DEST_PATH_IMAGE036
表示第
Figure 373567DEST_PATH_IMAGE061
个用户终端的第六密文部分。
步骤S2057:对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果。
一个实施例中,可以利用训练服务器私钥,结合第一服务商参数和第二服务商参数,对第一聚合密文、第二聚合密文、第三聚合密文、第四聚合密文进行聚合解密,获得第一密钥聚合结果。一个具体示例中,可以采用如下公式,对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果:
Figure 522789DEST_PATH_IMAGE075
其中,
Figure 121129DEST_PATH_IMAGE002
为第一密钥聚合结果,
Figure 293485DEST_PATH_IMAGE003
为双线性映射运算函数,
Figure 776418DEST_PATH_IMAGE004
为第四 聚合密文,
Figure 717830DEST_PATH_IMAGE005
为第三聚合密文,
Figure 503383DEST_PATH_IMAGE006
为第一聚合密文,
Figure 163034DEST_PATH_IMAGE007
为第一训练服务器私钥,
Figure 918501DEST_PATH_IMAGE008
为第二聚 合密文,
Figure 665484DEST_PATH_IMAGE009
为第二训练服务器私钥,
Figure 418676DEST_PATH_IMAGE010
为第一服务商参数,
Figure 627940DEST_PATH_IMAGE011
为双线性映射时所选用的曲 线上的点,
Figure 62464DEST_PATH_IMAGE012
为第一选定随机数,
Figure 978467DEST_PATH_IMAGE013
为第二选定随机数,
Figure 230457DEST_PATH_IMAGE014
为分组数目。
步骤S2058:对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果。
一个实施例中,可以利用训练服务器私钥,结合第一服务商参数和第二服务商参数,对第一聚合密文、第二聚合密文、第五聚合密文、第六聚合密文进行聚合解密,获得第二密钥聚合结果。一个具体示例中,可以采用如下公式,对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
Figure 599122DEST_PATH_IMAGE076
其中,
Figure 86604DEST_PATH_IMAGE016
为第二密钥聚合结果,
Figure 919430DEST_PATH_IMAGE003
为双线性映射运算函数,
Figure 280005DEST_PATH_IMAGE017
为第六 聚合密文,
Figure 73648DEST_PATH_IMAGE018
为第五聚合密文,
Figure 177871DEST_PATH_IMAGE006
为第一聚合密文,
Figure 130783DEST_PATH_IMAGE007
为第一训练服务器私钥,
Figure 85095DEST_PATH_IMAGE008
为第二聚 合密文,
Figure 428351DEST_PATH_IMAGE009
为第二训练服务器私钥,
Figure 133002DEST_PATH_IMAGE010
为第一服务商参数,
Figure 878104DEST_PATH_IMAGE011
为双线性映射时所选用的曲 线上的点,
Figure 518164DEST_PATH_IMAGE012
为第一选定随机数,
Figure 348717DEST_PATH_IMAGE013
为第二选定随机数,
Figure 591480DEST_PATH_IMAGE014
为分组数目。
步骤S2059:在所述第一密钥聚合结果对所述第二密钥聚合结果验证通过时,将所述第二密钥聚合结果作为密钥聚合处理结果。
在采用第一密钥聚合结果对第二密钥聚合结果进行验证时,可以采用任何可能的方式进行验证。一些实施例中,可以是在第一密钥聚合结果与第二密钥聚合结果相同时,可以确定第二密钥聚合结果验证通过。
步骤S206:在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
一个实施例中,对各所述用户终端的模型参数密文进行的模型聚合处理具体可以是对各所述用户终端的模型参数密文进行求和处理。
在一个实施例中,如图3所示,提供了一种隐私模型训练的方法,以该方法应用于图1中的用户终端20为例进行说明,包括以下步骤S301至步骤S306。
步骤S301:基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求。
训练服务器在获得需要进行训练的初始模型,即待训练模型之后,会发布模型训练任务。在获得训练服务器发布的模型训练任务之后,如果该用户想要加入到训练过程中,该用户向训练服务器发送训练加入请求,该训练加入请求中包含有请求时间,还可以包含该用户的身份信息。
步骤S302:接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组。
其中,用户终端对用户集合划分用户分组的方式,与上述训练服务器划分用户分组的方式相同,即训练服务器和各用户终端划分得到的用户分组相同。
步骤S303:基于所属的用户分组,生成用户端密文。
其中,生成用户端密文时,可以是基于第一训练服务器公钥、第二训练服务器公钥、第一共享密钥、第二共享密钥、第一服务商参数、所述密钥聚合参数和所述密钥聚合验证参数,获得用户端密文。
一个实施例中,获得用户端密文的方式,可以包括步骤S3031至步骤S3037。
步骤S3031:生成第一随机数对和第二随机数对,所述第一随机数对包含第一随机数和第二随机数,所述第二随机数对包含第三随机数和第四随机数。
用户可以生成两对随机数,每对随机数包含两个随机数,分别记为第一随机数
Figure 378039DEST_PATH_IMAGE022
、 第二随机数
Figure 251317DEST_PATH_IMAGE034
、第三随机数
Figure 631483DEST_PATH_IMAGE024
和第四随机数
Figure 553302DEST_PATH_IMAGE025
,即
Figure 7417DEST_PATH_IMAGE077
Figure 113914DEST_PATH_IMAGE078
。其中,
Figure 919059DEST_PATH_IMAGE077
指从两个随机数选择集合中分别选择随机数
Figure 126793DEST_PATH_IMAGE079
Figure 763310DEST_PATH_IMAGE078
指从两个 随机数选择集合中分别选择随机数
Figure 978391DEST_PATH_IMAGE080
步骤S3032:采用第一训练服务器公钥对第三随机数进行加密,获得第一密文部分。
一个实施例中,用第一训练服务器公钥
Figure 208515DEST_PATH_IMAGE029
对第三随机数
Figure 331192DEST_PATH_IMAGE024
进行加密获得的第一 密文部分
Figure 759899DEST_PATH_IMAGE060
,用公式可表示为:
Figure 598411DEST_PATH_IMAGE081
步骤S3033:采用第二训练服务器公钥对第四随机数进行加密,获得第二密文部分。
一个实施例中,用第二训练服务器公钥
Figure 112569DEST_PATH_IMAGE030
对第四随机数
Figure 38937DEST_PATH_IMAGE025
进行加密获得的第二 密文部分
Figure 525413DEST_PATH_IMAGE082
,用公式可表示为:
Figure 82296DEST_PATH_IMAGE083
步骤S3034:基于第一共享密钥对第一随机数、第三随机数、第四随机数以及分组用户信息进行加密,获得第三密文部分,其中,用户分组信息基于所属的用户分组中,与该用户分组内的其他用户之间的身份信息的差值确定。
一个实施例中,可以通过如下公式获得所述第三密文部分:
Figure 146067DEST_PATH_IMAGE019
其中,
Figure 502224DEST_PATH_IMAGE020
表示第三密文部分,
Figure 905524DEST_PATH_IMAGE021
为第一共享密钥,
Figure 430046DEST_PATH_IMAGE011
为双线性映射时所选用的 曲线上的点,
Figure 184376DEST_PATH_IMAGE022
为第一随机数,
Figure 327912DEST_PATH_IMAGE023
为分组用户信息,
Figure 648035DEST_PATH_IMAGE024
为第三随机数,
Figure 812300DEST_PATH_IMAGE025
为第四随机数。
其中,分组用户信息
Figure 975297DEST_PATH_IMAGE023
可以基于该用户
Figure 781579DEST_PATH_IMAGE084
所属的用户分组
Figure 159471DEST_PATH_IMAGE085
中,该用户
Figure 166741DEST_PATH_IMAGE084
与其他 分组内用户
Figure 630083DEST_PATH_IMAGE086
之间的身份信息的差值来确定,用公式可表示为:
Figure 505635DEST_PATH_IMAGE023
=
Figure 738034DEST_PATH_IMAGE087
。其中, 在该公式中,
Figure 664008DEST_PATH_IMAGE084
表示用户
Figure 411384DEST_PATH_IMAGE084
的身份信息,
Figure 28310DEST_PATH_IMAGE086
表示分组
Figure 787319DEST_PATH_IMAGE085
中用户
Figure 526605DEST_PATH_IMAGE086
的身份信息。
步骤S3035:基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、第一随机数和密钥聚合参数进行加密,获得第四密文部分。
一些实施例中,可以通过如下公式获得所述第四密文部分:
Figure 698960DEST_PATH_IMAGE088
其中,
Figure 40949DEST_PATH_IMAGE027
为第四密文部分,
Figure 247939DEST_PATH_IMAGE028
为第二共享密钥,
Figure 158126DEST_PATH_IMAGE023
为分组用户信息,
Figure 489882DEST_PATH_IMAGE003
为双线性 映射运算函数,
Figure 448610DEST_PATH_IMAGE010
为第一服务商参数,
Figure 306845DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,
Figure 325616DEST_PATH_IMAGE022
为第一 随机数,
Figure 160980DEST_PATH_IMAGE029
为第一训练服务器公钥,
Figure 720137DEST_PATH_IMAGE030
为第二训练服务器公钥,
Figure 636140DEST_PATH_IMAGE031
为密钥聚合参数。
步骤S3036:基于所述第一共享密钥对所述第二随机数、所述第三随机数、所述第四随机数以及所述分组用户信息进行加密,获得第五密文部分。
一些实施例中,可以通过如下公式获得所述第五密文部分:
Figure 497917DEST_PATH_IMAGE032
其中,
Figure 928898DEST_PATH_IMAGE033
为第五密文部分,
Figure 229430DEST_PATH_IMAGE021
为第一共享密钥,
Figure 452470DEST_PATH_IMAGE011
为双线性映射时所选用的曲 线上的点,
Figure 547464DEST_PATH_IMAGE034
为第二随机数,
Figure 731321DEST_PATH_IMAGE023
为分组用户信息,
Figure 835543DEST_PATH_IMAGE024
为第三随机数,
Figure 132664DEST_PATH_IMAGE025
为第四随机数。
步骤S3037:基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、第二随机数和密钥聚合验证参数进行加密,获得第六密文部分。
一些实施例中,可以通过如下公式获得所述第六密文部分:
Figure 726456DEST_PATH_IMAGE089
其中,
Figure 69713DEST_PATH_IMAGE036
为第六密文部分,
Figure 663112DEST_PATH_IMAGE028
为第二共享密钥,
Figure 408214DEST_PATH_IMAGE023
为分组用户信息,
Figure 907328DEST_PATH_IMAGE003
为双线性 映射运算函数,
Figure 675564DEST_PATH_IMAGE010
为第一服务商参数,
Figure 121589DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,
Figure 517935DEST_PATH_IMAGE034
为第二 随机数,
Figure 578164DEST_PATH_IMAGE029
为第一训练服务器公钥,
Figure 896013DEST_PATH_IMAGE030
为第二训练服务器公钥,
Figure 942466DEST_PATH_IMAGE037
为密钥聚合验证参数。
上述获得的用户端密文,包括第一密文部分、所述第二密文部分、所述第三密文部分、所述第四密文部分、所述第五密文部分以及所述第六密文部分。
步骤S304:在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果。其中,对待训练模型进行模型训练的过程,可以与任何可能的模型训练方式进行,本申请实施例不做具体限定。
步骤S305:对所述模型迭代训练结果进行加密,获得模型参数密文。
一个实施例中,模型迭代训练结果包括模型迭代训练之后的各维度的模型参数。此时,对模型迭代训练结果进行加密,获得模型参数密文,具体可以是对各维度的模型参数,分别进行加密,获得模型参数密文。即获得的模型参数密文,包括对模型迭代训练之后的各维度的模型参数进行加密获得的密文。
步骤S306:向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数。
其中,训练迭代次数,是对待训练模型进行模型训练过程中的迭代次数。
一些实施例中,向训练服务器发送模型训练密文之后,训练服务器基于各用户发送的模型训练密文进行模型融合,获得最终的模型训练结果之后,会将最终的模型训练结果发送给各用户终端,从而各用户终端会进入下一个模型训练过程。
基于如上所述的实施例,以下结合一个具体的应用示例进行详细说明,本申请实施例方案在具体应用实施时,可以包含四个部分:***初始化、训练任务发布、模型密文生成以及模型密文聚合。
***初始化时,涉及可信机构的初始化、边缘服务器(即训练服务器)的初始化以及模型服务商使用的设备(例如终端设备或者服务器,以下实施例中简称为模型服务商)的初始化。
其中,可信机构在进行初始化时,可以基于一个给定的安全参数
Figure 662161DEST_PATH_IMAGE090
来进行加密系 统的初始化。具体地,可信机构基于该给定的安全参数
Figure 378444DEST_PATH_IMAGE090
生成双线性参数:(
Figure 245906DEST_PATH_IMAGE091
),其中
Figure 33733DEST_PATH_IMAGE092
是与给定的安全参数
Figure 296349DEST_PATH_IMAGE090
相关的质数,且
Figure 308168DEST_PATH_IMAGE093
,参数
Figure 335030DEST_PATH_IMAGE094
Figure 864231DEST_PATH_IMAGE095
为选用的曲线,例 如椭圆曲线,
Figure 292938DEST_PATH_IMAGE011
为曲线
Figure 475658DEST_PATH_IMAGE095
上的一个点,
Figure 442346DEST_PATH_IMAGE003
为双线性映射运算,且满足条件:
Figure 571976DEST_PATH_IMAGE096
。 同时,可信机构生成可信机构的公私钥对
Figure 917507DEST_PATH_IMAGE097
。其中,可信机构可以选择一个随机数
Figure 739969DEST_PATH_IMAGE098
作为可信机构私钥
Figure 679106DEST_PATH_IMAGE099
,即
Figure 612427DEST_PATH_IMAGE100
,其中,
Figure 546885DEST_PATH_IMAGE101
是随机数选择集合。然后在生成 的可信机构私钥
Figure 249172DEST_PATH_IMAGE099
的基础上生成相应的公钥
Figure 737922DEST_PATH_IMAGE102
,用公式可表示为
Figure 271672DEST_PATH_IMAGE103
。即初始 化之后,可信机构持有可信机构私钥
Figure 201582DEST_PATH_IMAGE099
、可信机构公钥
Figure 365847DEST_PATH_IMAGE102
,该可信机构公钥
Figure 138631DEST_PATH_IMAGE102
可以进行 发布。
训练服务器
Figure 413754DEST_PATH_IMAGE057
初始化的过程中,生成训练服务器的公私钥对,在该具体示例中, 可以生成两对公私钥对,其中一对公私钥对可用于进行数据聚合,另一对公私钥对可用于 对数据聚合结果进行验证。其中,训练服务器
Figure 978597DEST_PATH_IMAGE057
可以选择两个随机数分别作为两个私钥, 记为第一训练服务器私钥
Figure 48184DEST_PATH_IMAGE007
和第二训练服务器私钥
Figure 308264DEST_PATH_IMAGE009
,即训练服务器
Figure 59182DEST_PATH_IMAGE057
的训练服务器私 钥
Figure 291581DEST_PATH_IMAGE104
满足
Figure 594386DEST_PATH_IMAGE105
,其中,
Figure 967861DEST_PATH_IMAGE101
指随机数选择集合,
Figure 584787DEST_PATH_IMAGE106
指从两个随 机数选择集合中分别选择随机数
Figure 734008DEST_PATH_IMAGE107
。训练服务器
Figure 410977DEST_PATH_IMAGE057
在生成的训练服务器私钥
Figure 521016DEST_PATH_IMAGE104
的基 础上,生成相应的训练服务器公钥,分别记为第一训练服务器公钥
Figure 472791DEST_PATH_IMAGE029
、第二训练服务器公钥
Figure 679782DEST_PATH_IMAGE030
,用公式可表示为
Figure 449024DEST_PATH_IMAGE108
模型服务商
Figure 108675DEST_PATH_IMAGE109
在进行初始化时,基于第一预定数目
Figure 129721DEST_PATH_IMAGE052
,选择第一预定数目加1 个随机数,即选择
Figure 191218DEST_PATH_IMAGE110
个随机数
Figure 882093DEST_PATH_IMAGE111
,其中,
Figure 91358DEST_PATH_IMAGE101
指随机数 选择集合,
Figure 588198DEST_PATH_IMAGE111
指从
Figure 189687DEST_PATH_IMAGE110
个随机数选择集合中分别选择随 机数
Figure 176098DEST_PATH_IMAGE112
。然后,基于其中的两个随机数:第一选定随机数
Figure 810341DEST_PATH_IMAGE012
,第二选定 随机数
Figure 48556DEST_PATH_IMAGE013
,计算第一服务商参数
Figure 819066DEST_PATH_IMAGE010
和第二服务商参数
Figure 976378DEST_PATH_IMAGE113
,获得
Figure 284868DEST_PATH_IMAGE114
此外,在初始化过程中,可信机构还为任意一个用户
Figure 123511DEST_PATH_IMAGE115
,生成基于该用户的 用户身份的用户私钥
Figure 76424DEST_PATH_IMAGE116
,其中,
Figure 607899DEST_PATH_IMAGE117
是可信机构与用户之间的共享密钥,
Figure 888839DEST_PATH_IMAGE084
是 用户
Figure 593490DEST_PATH_IMAGE084
的用户信息。模型服务商
Figure 338592DEST_PATH_IMAGE109
还基于
Figure 729384DEST_PATH_IMAGE110
个随机数
Figure 559937DEST_PATH_IMAGE111
,为该用户
Figure 802699DEST_PATH_IMAGE084
生成共享密钥对
Figure 667887DEST_PATH_IMAGE118
,该共享密钥 对
Figure 478848DEST_PATH_IMAGE118
包括第一共享密钥
Figure 593435DEST_PATH_IMAGE119
和第二共享密钥
Figure 577571DEST_PATH_IMAGE120
,生成的共享密钥对
Figure 484216DEST_PATH_IMAGE118
会发送至用户
Figure 528396DEST_PATH_IMAGE084
。其中,第一共享密钥
Figure 395858DEST_PATH_IMAGE119
可以基于上述第一预定数目加1个随机数中,除 了第二选定随机数
Figure 183685DEST_PATH_IMAGE013
之外的其他随机数生成,第二共享密钥
Figure 429990DEST_PATH_IMAGE120
可以基于第一服务商参数
Figure 707387DEST_PATH_IMAGE010
生成,用公式可以表示为:
Figure 734249DEST_PATH_IMAGE121
其中,
Figure 11253DEST_PATH_IMAGE122
为随机数,
Figure 439961DEST_PATH_IMAGE123
在完成上述初始化过程之后,即可进入后续的训练任务发布阶段。
在训练任务发布阶段,模型服务商
Figure 622680DEST_PATH_IMAGE109
确定导航模型训练的训练时间和训练空 间,并通过指定或者其他方式确定相应的训练服务器
Figure 340101DEST_PATH_IMAGE057
,并将需要进行训练的初始模型
Figure 469731DEST_PATH_IMAGE039
发送至训练服务器
Figure 815261DEST_PATH_IMAGE057
,训练服务器
Figure 559095DEST_PATH_IMAGE057
发布训练任务。
在训练服务器
Figure 560549DEST_PATH_IMAGE057
发布训练任务之后,如果一个用户
Figure 290608DEST_PATH_IMAGE084
想要加入到训练过程中, 用户
Figure 693907DEST_PATH_IMAGE084
向训练服务器
Figure 624954DEST_PATH_IMAGE057
发送训练加入请求,该训练加入请求中包含该用户
Figure 644863DEST_PATH_IMAGE084
的身份信 息,同时还可以包含有请求时间。
训练服务器
Figure 381875DEST_PATH_IMAGE057
接收到各个用户的训练加入请求后,根据训练加入请求的接收时 间对各用户进行排序,生成包含第二预定数目
Figure 328096DEST_PATH_IMAGE044
个用户的集合:
Figure 226782DEST_PATH_IMAGE045
,并将用户集合
Figure 999566DEST_PATH_IMAGE050
发送至所有的用户
Figure 212373DEST_PATH_IMAGE051
基于生成的用户集合
Figure 324685DEST_PATH_IMAGE050
,训练服务器
Figure 722169DEST_PATH_IMAGE057
对用户集合
Figure 841303DEST_PATH_IMAGE050
进行分组,从而将
Figure 920118DEST_PATH_IMAGE044
个用户 划分为
Figure 214833DEST_PATH_IMAGE053
个用户分组。同时,各用户
Figure 455321DEST_PATH_IMAGE058
接收到训练服务器
Figure 343643DEST_PATH_IMAGE057
发送的用户集合
Figure 960569DEST_PATH_IMAGE050
后,采用 与训练服务器
Figure 844211DEST_PATH_IMAGE057
同样的方式,将这
Figure 941087DEST_PATH_IMAGE044
个用户划分为
Figure 113442DEST_PATH_IMAGE053
个用户分组。由于各用户
Figure 596376DEST_PATH_IMAGE058
知晓用 户集合以及用户集合中的各用户的排序,因此,训练服务器
Figure 537787DEST_PATH_IMAGE057
以及各用户
Figure 57762DEST_PATH_IMAGE058
对用户集合 进行分组的结果会是相同的。
一个具体示例中,训练服务器
Figure 779730DEST_PATH_IMAGE057
和各用户
Figure 738459DEST_PATH_IMAGE058
可以利用如下程序Algorithm 1、 Algorithm 2和Algorithm 3来实现用户分组的划分。
Algorithm 1 Initialization //初始化
MaxLevel=1;NumNode=0
For i=1 to MaxLevel do
Header→forward[i]=header
end for
Algorithm 2 Insertion(lise,searchKey=j,newValue=
Figure 721327DEST_PATH_IMAGE124
,NumNode)
Local update[1]
NumNode:= NumNode+1;y=(list→level=1)→header
while y→forward[i]→key<searchKey do
y=y→forward[i]
end while
update[i]=y;y=y→forward[1]
y=makeNode(level=1,searchKey=j,newValue=
Figure 802415DEST_PATH_IMAGE124
)
y→forward[1]=update[1]→forward[1]
update[1]→forward[1]=y
Algorithm 3 Update(list,NumNode,Thershold)
newLevel=list→level+1;list→level=newLevel
local update[1,…,list→level]
y=(list→level=1) →header;IntUser=0
for i=1 to NumNode do
y=y→forward[1];IntUser:=IntUser+1
if(IntUser mod Threshold==1 and IntUser <=NumNode-Threshold) or(IntUser==NumNode-Threshold+1) then
z=(list→level=MaxLevel) →header
for i=list→Maxlevel downto 1 do
while z→forward[i] →key <y do
z=z→forward[i]
end while
update[i]=z
y→forward[i]=update[i] →forward[i]
update[i] →forward[i]=y
end for
end if
end for
v=(list→level=MaxLevel) →header
IntGroup=0
For j=1 to
Figure 683784DEST_PATH_IMAGE053
do
IntGroup:=IntGroup+1
v=v→forward[list→level=MaxLevel]
U[IntGroup]=
Figure 383887DEST_PATH_IMAGE125
Int=0
while i <Threshold do
int:=int+1
v1=v→forward[1]
U[IntGroup]=U[IntGroup]
end while
end for
在用户分组划分完成后,各用户
Figure 299890DEST_PATH_IMAGE126
即可进入模型训练过程,在模型训练过程中,在 每一次完成模型训练的迭代过程,获得模型迭代训练结果后,会向训练服务器
Figure 551880DEST_PATH_IMAGE127
发送模 型迭代训练后得到的模型参数。其中,在将训练得到的模型参数发送给训练服务器
Figure 608960DEST_PATH_IMAGE127
时, 用户
Figure 909491DEST_PATH_IMAGE126
对该训练得到的模型参数进行加密和/或签名处理 ,再发送给训练服务器
Figure 742318DEST_PATH_IMAGE127
为了能够对训练得到的模型参数进行加密,用户
Figure 102892DEST_PATH_IMAGE128
需要生成用户端密文。针对任 意一个划分至用户分组
Figure 896536DEST_PATH_IMAGE129
的用户
Figure 758DEST_PATH_IMAGE128
,可以通过下述过程来生成用户端密文。
用户
Figure 688091DEST_PATH_IMAGE128
生成密钥聚合参数
Figure 406517DEST_PATH_IMAGE130
和密钥聚合验证参数
Figure 749774DEST_PATH_IMAGE131
,并基于训练服务器公钥
Figure 454425DEST_PATH_IMAGE132
、用户
Figure 199527DEST_PATH_IMAGE128
的共享密钥对
Figure 574008DEST_PATH_IMAGE133
、第一服务商参数
Figure 466877DEST_PATH_IMAGE134
以及密钥聚合参 数
Figure 912902DEST_PATH_IMAGE130
和密钥聚合验证参数
Figure 463576DEST_PATH_IMAGE131
,获得用户端密文。其中,密钥聚合参数
Figure 133592DEST_PATH_IMAGE130
和密钥聚合验证参 数
Figure 185861DEST_PATH_IMAGE131
可以基于用户分组数来确定,例如用户
Figure 373260DEST_PATH_IMAGE128
基于用户分组数,选择两个不大于用户分组 数的数值,分别作为密钥聚合参数
Figure 92954DEST_PATH_IMAGE130
和密钥聚合验证参数
Figure 199451DEST_PATH_IMAGE131
,从而有
Figure 739016DEST_PATH_IMAGE135
在获得用户端密文时,用户
Figure 448215DEST_PATH_IMAGE128
可以同时结合两对随机数来生成,每对随机数包含 两个随机数,分别记为第一随机数
Figure 84733DEST_PATH_IMAGE136
、第二随机数
Figure 299814DEST_PATH_IMAGE137
、第三随机数
Figure 529938DEST_PATH_IMAGE138
和第四随机数
Figure 855877DEST_PATH_IMAGE139
,即
Figure 612480DEST_PATH_IMAGE140
Figure 998462DEST_PATH_IMAGE141
基于如上信息生成的用户端密文,包含六个部分
Figure 935457DEST_PATH_IMAGE142
第一部分
Figure 127403DEST_PATH_IMAGE143
是用第一训练服务器公钥
Figure 676197DEST_PATH_IMAGE144
对第三随机数
Figure 170763DEST_PATH_IMAGE138
进行加密获得的第一 密文部分
Figure 968955DEST_PATH_IMAGE143
,用公式可表示为:
Figure 902276DEST_PATH_IMAGE145
第二部分
Figure 492526DEST_PATH_IMAGE146
是用第二训练服务器公钥
Figure 220310DEST_PATH_IMAGE147
对第四随机数
Figure 771377DEST_PATH_IMAGE139
进行加密获得的第二 密文部分
Figure 508389DEST_PATH_IMAGE146
,用公式可表示为:
Figure 703878DEST_PATH_IMAGE148
第三部分
Figure 399302DEST_PATH_IMAGE149
是用第一共享密钥
Figure 375348DEST_PATH_IMAGE150
对第一随机数
Figure 335958DEST_PATH_IMAGE136
、第三随机数
Figure 448270DEST_PATH_IMAGE138
、第四随机 数
Figure 580174DEST_PATH_IMAGE139
、分组用户信息进行加密获得的第三密文部分
Figure 715620DEST_PATH_IMAGE149
,一个实施例中,第三密文部分用 公式可表示为
Figure 794435DEST_PATH_IMAGE151
第四部分
Figure 823571DEST_PATH_IMAGE152
是用第二共享密钥
Figure 329638DEST_PATH_IMAGE153
和训练服务器公钥
Figure 201648DEST_PATH_IMAGE154
,对第一服务商 参数
Figure 818574DEST_PATH_IMAGE134
、第一随机数
Figure 702217DEST_PATH_IMAGE136
、和密钥聚合参数
Figure 316869DEST_PATH_IMAGE130
进行加密获得的第四密文部分
Figure 489224DEST_PATH_IMAGE152
,一个实施 例中用公式可表示为
Figure 972158DEST_PATH_IMAGE155
第五部分
Figure 913569DEST_PATH_IMAGE156
是用第一共享密钥
Figure 184276DEST_PATH_IMAGE150
对第二随机数
Figure 906244DEST_PATH_IMAGE137
、第三随机数
Figure 864973DEST_PATH_IMAGE138
、第四随机 数
Figure 864153DEST_PATH_IMAGE139
以及分组用户信息进行加密获得的第五密文部分
Figure 414083DEST_PATH_IMAGE156
,一个实施例中用公式可表示 为
Figure 561031DEST_PATH_IMAGE157
第六部分
Figure 510401DEST_PATH_IMAGE158
是用第二共享密钥
Figure 223142DEST_PATH_IMAGE153
和训练服务器公钥
Figure 412815DEST_PATH_IMAGE154
,对第一服务商 参数
Figure 719163DEST_PATH_IMAGE134
、第二随机数
Figure 19694DEST_PATH_IMAGE159
、和密钥聚合验证参数
Figure 118100DEST_PATH_IMAGE160
进行加密获得的第六密文部分
Figure 898581DEST_PATH_IMAGE158
,一个 实施例中用公式可表示为
Figure 754541DEST_PATH_IMAGE161
其中,分组用户信息
Figure 921080DEST_PATH_IMAGE162
可以基于该用户
Figure 811676DEST_PATH_IMAGE126
所属的用户分组
Figure 280835DEST_PATH_IMAGE129
中,该用户
Figure 420829DEST_PATH_IMAGE126
与其他 分组内用户
Figure 63163DEST_PATH_IMAGE163
之间的身份信息的差值来确定,用公式可表示为:
Figure 995216DEST_PATH_IMAGE162
=
Figure 697592DEST_PATH_IMAGE164
。其 中,在该公式中,
Figure 590462DEST_PATH_IMAGE126
表示用户
Figure 708591DEST_PATH_IMAGE126
的身份信息,
Figure 308199DEST_PATH_IMAGE163
表示分组
Figure 243794DEST_PATH_IMAGE129
中用户
Figure 561643DEST_PATH_IMAGE163
的身份信息。
如上所述,在将训练得到的模型参数发送给训练服务器
Figure 499774DEST_PATH_IMAGE127
时,用户
Figure 750627DEST_PATH_IMAGE126
对该训练 得到的模型参数进行签名处理 ,再发送给训练服务器
Figure 794807DEST_PATH_IMAGE127
。为了进行签名,用户
Figure 537635DEST_PATH_IMAGE126
需要先 生成对应的签名,具体可以是生成签名对
Figure 325462DEST_PATH_IMAGE165
,该签名对中包含第一用户签名
Figure 961980DEST_PATH_IMAGE166
和 第二用户签名
Figure 98432DEST_PATH_IMAGE167
一个具体示例中,用户
Figure 390873DEST_PATH_IMAGE126
可以通过选择一个随机数
Figure 779129DEST_PATH_IMAGE168
来生成签名对,具 体可以结合用户私钥
Figure 207836DEST_PATH_IMAGE169
、密钥聚合验证参数
Figure 531501DEST_PATH_IMAGE160
、以及所选择的随机数
Figure 107976DEST_PATH_IMAGE170
、以及第一训练服 务器公钥
Figure 237606DEST_PATH_IMAGE144
来计算获得,一个实施例中用公式可表示为:
Figure 471885DEST_PATH_IMAGE171
Figure 825506DEST_PATH_IMAGE172
对用户
Figure 826960DEST_PATH_IMAGE126
,记其在第t次迭代第e个维度的模型参数是
Figure 697964DEST_PATH_IMAGE173
,那么其基于密钥聚 合参数
Figure 101264DEST_PATH_IMAGE130
对各模型参数
Figure 891365DEST_PATH_IMAGE173
进行加密后获得的相应的模型参数密文是
Figure 301487DEST_PATH_IMAGE174
其中
Figure 772919DEST_PATH_IMAGE175
是服从拉普拉斯分布的有界噪声。
对各个维度的模型参数均采用密钥聚合参数
Figure 93042DEST_PATH_IMAGE130
进行加密,从而可以获得各个维度 的模型参数密文。
在获得各个维度的模型参数密文后,从而可以结合获得的各模型维度的模型参数 密文、上述用户端密文
Figure 929411DEST_PATH_IMAGE142
、用户身份信息
Figure 905458DEST_PATH_IMAGE126
以及当前迭代次数
Figure 977319DEST_PATH_IMAGE176
发送给训练服务器
Figure 355210DEST_PATH_IMAGE127
,在发送之前,还可以基于签名对
Figure 847634DEST_PATH_IMAGE165
进行签名处理,从而最 终发送给训练服务器
Figure 373293DEST_PATH_IMAGE127
的签名和加密后的信息可记为:
Figure 186528DEST_PATH_IMAGE177
在模型训练过程中,训练服务器
Figure 356610DEST_PATH_IMAGE127
获得各用户发送的密文信息
Figure 659415DEST_PATH_IMAGE178
后,可获得 n组密文信息,因此需要对这n组密文信息进行聚合处理。在进行聚合处理之前,对
Figure 344474DEST_PATH_IMAGE179
个用户 的用户端密文
Figure 148351DEST_PATH_IMAGE142
进行密钥聚合处理,以验证共享密钥的准确 性。
一个实施例中,训练服务器
Figure 31994DEST_PATH_IMAGE127
进行密钥聚合处理时,可采用下述方式进行:
对用户集合中的各用户的第一密文部分
Figure 708963DEST_PATH_IMAGE143
进行聚合处理,具体可以是乘积处理, 获得第一聚合密文
Figure 819001DEST_PATH_IMAGE180
,用公式可以表示为:
Figure 974039DEST_PATH_IMAGE181
对用户集合中的各用户的第二密文部分
Figure 243346DEST_PATH_IMAGE146
进行聚合处理,具体可以是乘积处理, 获得第二聚合密文
Figure 91216DEST_PATH_IMAGE182
,用公式可以表示为:
Figure 194212DEST_PATH_IMAGE183
对用户集合中的各用户的第三密文部分
Figure 215258DEST_PATH_IMAGE184
进行聚合处理,具体可以是乘积处理, 获得第三聚合密文
Figure 11175DEST_PATH_IMAGE185
,用公式可以表示为:
Figure 967630DEST_PATH_IMAGE186
对用户集合中的各用户的第四密文部分
Figure 114578DEST_PATH_IMAGE152
进行聚合处理,具体可以是乘积处 理,获得第四聚合密文
Figure 673735DEST_PATH_IMAGE187
,用公式可以表示为:
Figure 855318DEST_PATH_IMAGE188
对用户集合中的各用户的第五密文部分
Figure 966362DEST_PATH_IMAGE189
进行聚合处理,具体可以是乘积处理, 获得第五聚合密文
Figure 397343DEST_PATH_IMAGE190
,用公式可以表示为:
Figure 697875DEST_PATH_IMAGE191
对用户集合中的各用户的第六密文部分
Figure 671647DEST_PATH_IMAGE158
进行聚合处理,具体可以是乘积处理, 获得第六聚合密文
Figure 766642DEST_PATH_IMAGE192
,用公式可以表示为:
Figure 950498DEST_PATH_IMAGE193
随后,训练服务器
Figure 477557DEST_PATH_IMAGE127
利用训练服务器私钥
Figure 102573DEST_PATH_IMAGE194
,结合第一服务商参数
Figure 696366DEST_PATH_IMAGE134
和第二服务商参数
Figure 39622DEST_PATH_IMAGE195
,对第一聚合密文
Figure 885219DEST_PATH_IMAGE180
、第二聚合密文
Figure 427058DEST_PATH_IMAGE182
、第三聚合密文
Figure 129435DEST_PATH_IMAGE185
、第四聚合密文
Figure 146939DEST_PATH_IMAGE187
进行聚合解密,获得第一密钥聚合结果
Figure 592963DEST_PATH_IMAGE196
,用公式可记为:
Figure 254889DEST_PATH_IMAGE197
然后,训练服务器
Figure 128167DEST_PATH_IMAGE127
利用训练服务器私钥
Figure 383699DEST_PATH_IMAGE194
,结合第一服务商参数
Figure 367836DEST_PATH_IMAGE134
和第二服务商参数
Figure 149847DEST_PATH_IMAGE195
,对第一聚合密文
Figure 194026DEST_PATH_IMAGE180
、第二聚合密文
Figure 419078DEST_PATH_IMAGE182
、第五聚合密文
Figure 269222DEST_PATH_IMAGE190
、第六聚合密文
Figure 843423DEST_PATH_IMAGE192
进行聚合解密,获得第二密钥聚合结果
Figure 996187DEST_PATH_IMAGE198
,用公式可记为:
Figure 23048DEST_PATH_IMAGE199
随后,训练服务器
Figure 676884DEST_PATH_IMAGE127
利用第一密钥聚合结果
Figure 26962DEST_PATH_IMAGE200
对第二密钥聚合结果
Figure 412944DEST_PATH_IMAGE201
进行验证,并在验证通过时,如第一密钥聚合结果与第二密钥聚合结果相同 时,将所述第二密钥聚合结果作为密钥聚合处理结果。
随后,训练服务器
Figure 254999DEST_PATH_IMAGE127
基于各用户的第一用户签名、第二用户签名,验证第二密 钥聚合结果
Figure 384629DEST_PATH_IMAGE198
的正确性,验证过程用公式可表示为:
Figure 605525DEST_PATH_IMAGE202
如果验证结果为验证通过或者说验证正确,则训练服务器
Figure 224726DEST_PATH_IMAGE127
基于各用户的模 型参数密文,进行模型参数密文的聚合操作,获得模型参数密文聚合结果
Figure 491759DEST_PATH_IMAGE203
,用公式可记 为:
Figure 847916DEST_PATH_IMAGE204
基于模型参数密文聚合结果,对其进行解密,可获得模型参数聚合结果,用公式可表示为:
Figure 985636DEST_PATH_IMAGE205
如上所述的本申请实施例的方案,还可以支持用户的离开,在检测到用户离开时,可以将该用户从用户集合中删除,一个实施例中,可以利用如下Algorithm 4 的相关代码来实现用户离开的处理。
Algorithm 4 Delete (list,searchKey=j,NumNode)
local update[1,…,list→MaxLevel]
NumNode:=NumNode-1;y=list→header
For i=list→MaxLevel downto 1 do
while y→forward[i] →key<searchKey do
y=y→forward[i]
end while
update[i]=y
end for
if y→key==searchKey then
for i==1 to list →MaxLevel do
update[i] →forward[i]=y→forward[i]
end for
free(y)
end if
如上所述的本申请实施例的方案,可以用于各种分布式训练模型的场景,例如基于大数据的车辆定位***。在基于大数据的车辆定位***中,若公开发布利用车载传感器收集到的数据并进行训练的模型,会导致采集数据的泄露,进而导致客户的位置和身份的隐私暴露。基于本申请实施例的方案,模型训练方案在保障客户隐私的前提下进行,而且动态支持客户的加入和离开。而且,在实施过程中,还可以对恶意客户进行检测,针对检测到的恶意客户不加入训练过程,不加入用户集合,以降低恶意客户对***性能的影响。具体检测恶意用户的方式,可以采用任何可能的方式进行,本申请实施例不做具体限定。
如上所述的本申请实施例的方案,为了实现基于传感器数据的生成模型的隐私保护和数据聚合,利用了基于秘密共享机制的加密算法,达到了安全和可验证的模型聚合的目的。同时,根据模型聚合结果,仍可以反映指定区域的车辆定位功能。而且,利用跳表技术对参与客户进行分组,通过进行客户分组,可以降低客户加入/离开联邦训练的过程中,对***的性能所带来的影响;同时,在恶意客户存在的场景下,减少对可用的客户模型数目的影响,并降低相应的计算复杂度。
应该理解的是,虽然如上所述的各实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,这些流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
一个实施例中,如图4所示,提供了一种隐私模型训练的装置,所述装置可以设置于图1所示的训练服务器10上,所述装置包括:
任务发布模块401,用于基于待训练模型发布模型训练任务;
用户集合确定模块402,用于接收各用户终端发送的训练加入请求,根据各用户终端的训练加入请求的请求时间,生成用户集合,并将用户集合发送给各用户终端;
服务端分组模块403,用于将用户集合中的用户划分为两个以上的用户分组;
训练结果接收模块404,用于在任何一次迭代训练过程中,接收所述用户集合内的各所述用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
密钥聚合模块405,用于基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,并对所述密钥聚合处理结果验证通过;
模型聚合模块406,用于在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果。
一些实施例中,用户集合确定模块402,根据各用户终端的训练加入请求的请求时间,对各用户终端进行排序;根据请求时间最早的第二预定数目个用户终端的用户,生成用户集合,用户集合中包含各所述用户终端的排序信息。
一些实施例中,服务端分组模块403,包括:
服务端分组数确定模块,用于将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目;
服务端分组划分模块,用于将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
一些实施例中,服务端分组划分模块,获取用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至用户集合中的任意一个用户都加入了一个用户分组。
一些实施例中,服务端分组划分模块,按照所述用户集合中的各用户的排列顺序,依序获取所述用户集合中的第一预定数目的用户。
一些实施例中,服务端分组划分模块,还用于在最后一个用户分组中的用户小于所述第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且用户集合中的任意一个用户最多加入两个用户分组。
一些实施例中,密钥聚合模块405,包括:
第一密文聚合子模块,用于对各所述用户终端的用户端密文中的第一密文部分进行聚合,获得第一聚合密文,所述第一密文部分为用户终端采用第一训练服务器公钥对第三随机数进行加密获得的密文结果;
第二密文聚合子模块,用于对各所述用户终端的用户端密文中的第二密文部分进行聚合,获得第二聚合密文,所述第二密文部分为用户终端采用第二训练服务器公钥对第四随机数进行加密获得的密文结果;
第三密文聚合子模块,用于对各用户终端的用户端密文中的第三密文部分进行聚合,获得第三聚合密文,第三密文部分为用户终端基于第一共享密钥对第一随机数、第三随机数、第四随机数以及分组用户信息进行加密,获得的密文结果;
第四密文聚合子模块,用于对各用户端的用户端密文中的第四密文部分进行聚合,获得第四聚合密文,所述第四密文部分为用户终端基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得的密文结果;
第五密文聚合子模块,用于对各用户端的用户端密文中的第五密文部分进行聚合,获得第五聚合密文,第五密文部分为用户终端基于第一共享密钥对第二随机数、第三随机数、第四随机数以及分组用户信息进行加密,获得的密文结果;
第六密文聚合子模块,用于对各所述用户端的用户端密文中的第六密文部分进行聚合,获得第六聚合密文,所述第六密文部分为用户终端基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得的密文结果;
第一密钥聚合子模块,对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果;
第二密钥聚合子模块,对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
聚合结果确定模块,在所述第一密钥聚合结果对所述第二密钥聚合结果验证通过时,将所述第二密钥聚合结果作为密钥聚合处理结果。
一些实施例中,第一密钥聚合子模块,采用如下公式对所一聚合密文、第二聚合密文、第三聚合密文和第四聚合密文进行聚合处理,获得第一密钥聚合结果:
Figure 41317DEST_PATH_IMAGE001
其中,
Figure 530067DEST_PATH_IMAGE200
为第一密钥聚合结果,
Figure 939183DEST_PATH_IMAGE206
为双线性映射运算函数,
Figure 993727DEST_PATH_IMAGE187
为第四 聚合密文,
Figure 157992DEST_PATH_IMAGE185
为第三聚合密文,
Figure 55409DEST_PATH_IMAGE180
为第一聚合密文,
Figure 330533DEST_PATH_IMAGE207
为第一训练服务器私钥,
Figure 770742DEST_PATH_IMAGE182
为第二聚 合密文,
Figure 840329DEST_PATH_IMAGE208
为第二训练服务器私钥,
Figure 241354DEST_PATH_IMAGE134
为第一服务商参数,
Figure 54590DEST_PATH_IMAGE209
为双线性映射时所选用的曲 线上的点,
Figure 349305DEST_PATH_IMAGE210
为第一选定随机数,
Figure 9700DEST_PATH_IMAGE211
为第二选定随机数,
Figure 960338DEST_PATH_IMAGE212
为分组数目。
一些实施例中,第二密钥聚合子模块,采用如下公式对第一聚合密文、第二聚合密文、第五聚合密文和第六聚合密文进行聚合处理,获得第二密钥聚合结果:
Figure 639581DEST_PATH_IMAGE076
其中,
Figure 726486DEST_PATH_IMAGE201
为第一密钥聚合结果,
Figure 341138DEST_PATH_IMAGE206
为双线性映射运算函数,
Figure 310231DEST_PATH_IMAGE192
为第六 聚合密文,
Figure 465269DEST_PATH_IMAGE190
为第五聚合密文,
Figure 859210DEST_PATH_IMAGE180
为第一聚合密文,
Figure 441501DEST_PATH_IMAGE207
为第一训练服务器私钥,
Figure 163469DEST_PATH_IMAGE182
为第二聚 合密文,
Figure 122198DEST_PATH_IMAGE208
为第二训练服务器私钥,
Figure 121378DEST_PATH_IMAGE134
为第一服务商参数,
Figure 936887DEST_PATH_IMAGE209
为双线性映射时所选用的曲 线上的点,
Figure 83835DEST_PATH_IMAGE210
为第一选定随机数,
Figure 269091DEST_PATH_IMAGE211
为第二选定随机数,
Figure 185094DEST_PATH_IMAGE212
为分组数目。
一些实施例中,模型聚合模块,对各所述用户终端的模型参数密文进行求和处理,获得模型聚合结果。
在一个实施例中,如图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 (22)

1.一种隐私模型训练的方法,其特征在于,所述方法包括:
基于待训练模型发布模型训练任务;
接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将所述用户集合发送给各所述用户终端;
将所述用户集合中的用户划分为两个以上的用户分组;
在任何一次迭代训练过程中,接收所述用户集合内的各所述用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果;
在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果;
所述基于各所述用户终端所属的用户分组,对各所述用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,包括:
对各所述用户终端的用户端密文中的第一密文部分进行聚合,获得第一聚合密文,所述第一密文部分为用户终端采用第一训练服务器公钥对第三随机数进行加密获得的密文结果;
对各所述用户终端的用户端密文中的第二密文部分进行聚合,获得第二聚合密文,所述第二密文部分为用户终端采用第二训练服务器公钥对第四随机数进行加密获得的密文结果;
对各所述用户终端的用户端密文中的第三密文部分进行聚合,获得第三聚合密文,所述第三密文部分为用户终端基于第一共享密钥对第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第四密文部分进行聚合,获得第四聚合密文,所述第四密文部分为用户终端基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第五密文部分进行聚合,获得第五聚合密文,所述第五密文部分为用户终端基于第一共享密钥对第二随机数、所述第三随机数、所述第四随机数以及所述分组用户信息进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第六密文部分进行聚合,获得第六聚合密文,所述第六密文部分为用户终端基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得的密文结果;
对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果;
对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
在所述第一密钥聚合结果对所述第二密钥聚合结果验证通过时,将所述第二密钥聚合结果作为密钥聚合处理结果。
2.根据权利要求1所述的方法,其特征在于,将所述用户集合中的用户划分为两个以上的用户分组,包括:
将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目;
将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
3.根据权利要求2所述的方法,其特征在于,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,包括:
获取所述用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至所述用户集合中的任意一个用户都加入了一个用户分组。
4.根据权利要求1所述的方法,其特征在于,所述根据各用户终端的训练加入请求的请求时间,生成用户集合,包括:
根据各用户终端的训练加入请求的请求时间,对各用户终端进行排序;
根据请求时间最早的第二预定数目个用户终端的用户,生成用户集合,所述用户集合中,包含各所述用户终端的排序信息。
5.根据权利要求1所述的方法,其特征在于,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果,包括:
对各所述用户终端的模型参数密文进行求和处理,获得模型聚合结果。
6.根据权利要求3所述的方法,其特征在于,所述获取所述用户集合中的第一预定数目的用户,包括:根据用户集合中的各用户的排列顺序,依序获取用户集合中的第一预定数目的用户。
7.根据权利要求2所述的方法,其特征在于,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,包括:
当最后一个用户分组中的用户小于第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到所述最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且所述用户集合中的任意一个用户最多加入两个用户分组。
8.根据权利要求1所述的方法,其特征在于,采用如下公式,对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果:
Figure 531347DEST_PATH_IMAGE001
其中,
Figure 29324DEST_PATH_IMAGE002
为第一密钥聚合结果,/>
Figure 738654DEST_PATH_IMAGE003
为双线性映射运算函数,/>
Figure 689292DEST_PATH_IMAGE004
为第四聚合密文,/>
Figure 571798DEST_PATH_IMAGE005
为第三聚合密文,/>
Figure 360500DEST_PATH_IMAGE006
为第一聚合密文,/>
Figure 303048DEST_PATH_IMAGE007
为第一训练服务器私钥,/>
Figure 740983DEST_PATH_IMAGE008
为第二聚合密文,/>
Figure 99283DEST_PATH_IMAGE009
为第二训练服务器私钥,/>
Figure 571853DEST_PATH_IMAGE010
为第一服务商参数,/>
Figure 685302DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,/>
Figure 548216DEST_PATH_IMAGE012
为第一选定随机数,/>
Figure 772524DEST_PATH_IMAGE013
为第二选定随机数,/>
Figure 834021DEST_PATH_IMAGE014
为分组数目,/>
Figure 56055DEST_PATH_IMAGE015
为用户集合,/>
Figure 468581DEST_PATH_IMAGE016
为密钥聚合参数。/>
9.根据权利要求1所述的方法,其特征在于,采用如下公式,对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
Figure 496580DEST_PATH_IMAGE017
其中,
Figure 117311DEST_PATH_IMAGE018
为第二密钥聚合结果,/>
Figure 306984DEST_PATH_IMAGE003
为双线性映射运算函数,/>
Figure 206807DEST_PATH_IMAGE019
为第六聚合密文,/>
Figure 710600DEST_PATH_IMAGE020
为第五聚合密文,/>
Figure 12269DEST_PATH_IMAGE006
为第一聚合密文,/>
Figure 372843DEST_PATH_IMAGE007
为第一训练服务器私钥,/>
Figure 697645DEST_PATH_IMAGE008
为第二聚合密文,/>
Figure 67446DEST_PATH_IMAGE009
为第二训练服务器私钥,/>
Figure 958042DEST_PATH_IMAGE010
为第一服务商参数,/>
Figure 692780DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,/>
Figure 301616DEST_PATH_IMAGE012
为第一选定随机数,/>
Figure 911326DEST_PATH_IMAGE013
为第二选定随机数,/>
Figure 922008DEST_PATH_IMAGE014
为分组数目,/>
Figure 889964DEST_PATH_IMAGE015
为用户集合,/>
Figure 923779DEST_PATH_IMAGE021
为密钥聚合验证参数。
10.一种隐私模型训练的方法,其特征在于,所述方法包括:
基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求;
接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组;
基于所属的用户分组,生成用户端密文;
在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果;
对所述模型迭代训练结果进行加密,获得模型参数密文;
向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数;
所述生成用户端密文,包括:
生成第一随机数对和第二随机数对,所述第一随机数对包含第一随机数和第二随机数,所述第二随机数对包含第三随机数和第四随机数;
采用第一训练服务器公钥对所述第三随机数进行加密,获得第一密文部分;
采用第二训练服务器公钥对所述第四随机数进行加密,获得第二密文部分;
基于第一共享密钥对所述第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得第三密文部分,所述用户分组信息基于所属的用户分组中,与该用户分组内的其他用户之间的身份信息的差值确定;
基于所述第一训练服务器公钥、所述第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得第四密文部分;
基于所述第一共享密钥对所述第二随机数、所述第三随机数、所述第四随机数以及所述分组用户信息进行加密,获得第五密文部分;
基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得第六密文部分;
所述用户端密文,包括所述第一密文部分、所述第二密文部分、所述第三密文部分、所述第四密文部分、所述第五密文部分以及所述第六密文部分。
11.根据权利要求10所述的方法,其特征在于,将所述用户集合中的用户划分为两个以上的用户分组,包括:
将第二预定数目与第一预定数目的比值向上取整,获得用户分组数,所述第二预定数目为所述用户集合中的用户的数目,所述第一预定数目为预先设定的用户分组中需要包含的用户的数目;
将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组。
12.根据权利要求11所述的方法,其特征在于,将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,包括:
获取所述用户集合中的第一预定数目的用户,将该第一预定数目的用户加入一个用户分组后,获取下一批第一预定数目的用户加入下一个用户分组,直至所述用户集合中的任意一个用户都加入了一个用户分组;
获取所述用户集合中的第一预定数目的用户,包括:所述用户集合中的各用户的排列顺序,依序获取所述用户集合中的第一预定数目的用户。
13.根据权利要求10所述的方法,其特征在于,所述模型迭代训练结果包括模型迭代训练之后的各维度的模型参数;
对所述模型迭代训练结果进行加密,获得模型参数密文,包括:
对各维度的所述模型参数,分别进行加密,获得所述模型参数密文。
14.根据权利要求12所述的方法,其特征在于,所述将所述用户集合中的各用户,按照预定规则加入对应的用户分组,获得划分后的各用户分组,还包括:
当最后一个用户分组中的用户小于第一预定数目时,按照预定规则从其他用户分组中分别选取一个用户加入到最后一个用户分组,直至任意一个用户分组中都包含第一预定数目个用户、用户集合中的任意一个用户都加入了至少一个用户分组、且用户集合中的任意一个用户最多加入两个用户分组。
15.根据权利要求10所述的方法,其特征在于,通过如下公式获得所述第三密文部分:
Figure 635383DEST_PATH_IMAGE022
其中,
Figure 500571DEST_PATH_IMAGE023
表示所述第三密文部分,/>
Figure 577111DEST_PATH_IMAGE024
为第一共享密钥,/>
Figure 160539DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,/>
Figure 410255DEST_PATH_IMAGE025
为第一随机数,/>
Figure 333212DEST_PATH_IMAGE026
为分组用户信息,/>
Figure 642970DEST_PATH_IMAGE027
为第三随机数,/>
Figure 141124DEST_PATH_IMAGE028
为第四随机数。
16.根据权利要求10所述的方法,其特征在于,通过如下公式获得所述第四密文部分:
Figure 194530DEST_PATH_IMAGE029
其中,
Figure 34310DEST_PATH_IMAGE030
为第四密文部分,/>
Figure 452653DEST_PATH_IMAGE031
为第二共享密钥,/>
Figure 745094DEST_PATH_IMAGE026
为分组用户信息,/>
Figure 602192DEST_PATH_IMAGE003
为双线性映射运算函数,/>
Figure 234162DEST_PATH_IMAGE013
为第二选定随机数,/>
Figure 885723DEST_PATH_IMAGE010
为第一服务商参数,/>
Figure 931039DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,/>
Figure 263932DEST_PATH_IMAGE025
为第一随机数,/>
Figure 812725DEST_PATH_IMAGE032
为第一训练服务器公钥,/>
Figure 900766DEST_PATH_IMAGE033
为第二训练服务器公钥,/>
Figure 604018DEST_PATH_IMAGE016
为密钥聚合参数。
17.根据权利要求10所述的方法,其特征在于,通过如下公式获得所述第五密文部分:
Figure 802918DEST_PATH_IMAGE034
/>
其中,
Figure 206217DEST_PATH_IMAGE035
为第五密文部分,/>
Figure 402844DEST_PATH_IMAGE024
为第一共享密钥,/>
Figure 157173DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,/>
Figure 831868DEST_PATH_IMAGE036
为第二随机数,/>
Figure 355253DEST_PATH_IMAGE026
为分组用户信息,/>
Figure 785097DEST_PATH_IMAGE027
为第三随机数,/>
Figure 698827DEST_PATH_IMAGE028
为第四随机数。
18.根据权利要求10所述的方法,其特征在于,通过如下公式获得所述第六密文部分:
Figure 239530DEST_PATH_IMAGE037
其中,
Figure 883001DEST_PATH_IMAGE038
为第六密文部分,/>
Figure 218167DEST_PATH_IMAGE031
为第二共享密钥,/>
Figure 386236DEST_PATH_IMAGE026
为分组用户信息,/>
Figure 465051DEST_PATH_IMAGE003
为双线性映射运算函数,/>
Figure 963028DEST_PATH_IMAGE013
为第二选定随机数,/>
Figure 406779DEST_PATH_IMAGE010
为第一服务商参数,/>
Figure 622997DEST_PATH_IMAGE011
为双线性映射时所选用的曲线上的点,/>
Figure 505502DEST_PATH_IMAGE036
为第二随机数,/>
Figure 795669DEST_PATH_IMAGE032
为第一训练服务器公钥,/>
Figure 738217DEST_PATH_IMAGE033
为第二训练服务器公钥,/>
Figure 176152DEST_PATH_IMAGE021
为密钥聚合验证参数。
19.一种隐私模型训练的装置,所述装置包括:
任务发布模块,用于基于待训练模型发布模型训练任务;
用户集合确定模块,用于接收各用户终端发送的训练加入请求,并根据各用户终端的训练加入请求的请求时间,生成用户集合,并将所述用户集合发送给各所述用户终端;
服务端分组模块,用于将用户集合中的用户划分为两个以上的用户分组;
训练结果接收模块,用于在任何一次迭代训练过程中,接收所述用户集合内的各所述用户终端发送的模型训练密文,所述模型训练密文携带用户端密文、模型参数密文以及训练迭代次数;
密钥聚合模块,用于基于各用户终端所属的用户分组,对各用户终端的用户端密文进行密钥聚合处理,获得密钥聚合处理结果,并对密钥聚合处理结果验证;
模型聚合模块,用于在所述密钥聚合处理结果验证通过时,对各所述用户终端的模型参数密文进行模型聚合处理,获得模型聚合结果;
其中,所述密钥聚合模块,用于:
对各所述用户终端的用户端密文中的第一密文部分进行聚合,获得第一聚合密文,所述第一密文部分为用户终端采用第一训练服务器公钥对第三随机数进行加密获得的密文结果;
对各所述用户终端的用户端密文中的第二密文部分进行聚合,获得第二聚合密文,所述第二密文部分为用户终端采用第二训练服务器公钥对第四随机数进行加密获得的密文结果;
对各所述用户终端的用户端密文中的第三密文部分进行聚合,获得第三聚合密文,所述第三密文部分为用户终端基于第一共享密钥对第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第四密文部分进行聚合,获得第四聚合密文,所述第四密文部分为用户终端基于第一训练服务器公钥、第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第五密文部分进行聚合,获得第五聚合密文,所述第五密文部分为用户终端基于第一共享密钥对第二随机数、所述第三随机数、所述第四随机数以及所述分组用户信息进行加密,获得的密文结果;
对各所述用户端的用户端密文中的第六密文部分进行聚合,获得第六聚合密文,所述第六密文部分为用户终端基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得的密文结果;
对所述第一聚合密文、第二聚合密文、第三聚合密文和所述第四聚合密文进行聚合处理,获得第一密钥聚合结果;
对所述第一聚合密文、第二聚合密文、第五聚合密文和所述第六聚合密文进行聚合处理,获得第二密钥聚合结果;
在所述第一密钥聚合结果对所述第二密钥聚合结果验证通过时,将所述第二密钥聚合结果作为密钥聚合处理结果。
20.一种隐私模型训练的装置,所述装置包括:
训练请求模块,用于基于获取训练服务器发布的待训练模型的模型训练任务,发送训练接入请求;
终端分组模块,用于接收所述训练服务器返回的用户集合,并将所述用户集合中的用户划分为两个以上的用户分组;
用户端密文生成模块,用于基于所属的用户分组,生成用户端密文;
模型训练模块,用于在任何一次迭代训练过程中,对所述待训练模型进行模型训练,获得模型迭代训练结果;
训练结果加密模块,用于对模型迭代训练结果进行加密,获得模型参数密文;
训练结果发送模块,用于向训练服务器发送模型训练密文,所述模型训练密文携带所述用户端密文、所述模型参数密文以及训练迭代次数;
其中,所述用户端密文生成模块,用于:
生成第一随机数对和第二随机数对,所述第一随机数对包含第一随机数和第二随机数,所述第二随机数对包含第三随机数和第四随机数;
采用第一训练服务器公钥对所述第三随机数进行加密,获得第一密文部分;
采用第二训练服务器公钥对所述第四随机数进行加密,获得第二密文部分;
基于第一共享密钥对所述第一随机数、所述第三随机数、所述第四随机数以及分组用户信息进行加密,获得第三密文部分,所述用户分组信息基于所属的用户分组中,与该用户分组内的其他用户之间的身份信息的差值确定;
基于所述第一训练服务器公钥、所述第二训练服务器公钥、第二共享密钥、第一服务商参数、所述第一随机数和密钥聚合参数进行加密,获得第四密文部分;
基于所述第一共享密钥对所述第二随机数、所述第三随机数、所述第四随机数以及所述分组用户信息进行加密,获得第五密文部分;
基于所述第一训练服务器公钥、所述第二训练服务器公钥、所述第二共享密钥、所述第一服务商参数、所述第二随机数和密钥聚合验证参数进行加密,获得第六密文部分;
所述用户端密文,包括所述第一密文部分、所述第二密文部分、所述第三密文部分、所述第四密文部分、所述第五密文部分以及所述第六密文部分。
21.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-18任一项所述的方法的步骤。
22.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-18任一项所述的方法的步骤。
CN202110477135.7A 2021-04-29 2021-04-29 隐私模型训练的方法 Active CN113094735B (zh)

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 CN113094735A (zh) 2021-07-09
CN113094735B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522382B (zh) * 2023-04-17 2023-11-21 广州市安洛网络有限责任公司 一种应用程序用户信息保护方法和***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111241580A (zh) * 2020-01-09 2020-06-05 广州大学 一种基于可信执行环境的联邦学习方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3419211B1 (en) * 2017-06-23 2022-03-30 Flytxt B.V. Privacy preserving computation protocol for data analytics
US11620403B2 (en) * 2019-01-11 2023-04-04 Experian Information Solutions, Inc. Systems and methods for secure data aggregation and computation
CN110263928A (zh) * 2019-06-18 2019-09-20 中国科学技术大学 保护数据隐私的基于移动设备的分布式深度学习训练方法
CN110572253B (zh) * 2019-09-16 2023-03-24 济南大学 一种联邦学习训练数据隐私性增强方法及***
CN111935156B (zh) * 2020-08-12 2022-06-14 科技谷(厦门)信息技术有限公司 一种联邦学习的数据隐私保护方法
CN111865815B (zh) * 2020-09-24 2020-11-24 中国人民解放军国防科技大学 一种基于联邦学习的流量分类方法及***
CN112101531B (zh) * 2020-11-16 2021-02-09 支付宝(杭州)信息技术有限公司 基于隐私保护的神经网络模型训练方法、装置及***
CN112580821A (zh) * 2020-12-10 2021-03-30 深圳前海微众银行股份有限公司 一种联邦学习方法、装置、设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111241580A (zh) * 2020-01-09 2020-06-05 广州大学 一种基于可信执行环境的联邦学习方法

Also Published As

Publication number Publication date
CN113094735A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
US11038679B2 (en) Secure multi-party computation method and apparatus, and electronic device
Xu et al. VerifyNet: Secure and verifiable federated learning
CN111628868B (zh) 数字签名生成方法、装置、计算机设备和存储介质
Yang et al. Provable data possession of resource-constrained mobile devices in cloud computing
CN116561789B (zh) 隐私数据的处理方法、装置、电子设备及可读存储介质
CN109728906B (zh) 基于非对称密钥池的抗量子计算非对称加密方法和***
US11444752B2 (en) Systems and methods for data encryption and decryption in data transmission
CN113691502A (zh) 通信方法、装置、网关服务器、客户端及存储介质
CN107248980B (zh) 云服务下具有隐私保护功能的移动应用推荐***及方法
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN111767569A (zh) 区块链的访问授权方法及节点
CN108616362B (zh) 投票信息生成方法和装置
CN113094735B (zh) 隐私模型训练的方法
CN115834067A (zh) 一种边云协同场景中密文数据共享方法
CN111447058B (zh) 基于中国剩余定理的图书资源访问控制方法
Huang et al. Certificateless public verification for the outsourced data integrity in cloud storage
CN111769945A (zh) 基于区块链的拍卖处理方法和区块链节点
CN113792282B (zh) 身份数据验证方法、装置、计算机设备和存储介质
CN113434906B (zh) 数据查询方法、装置、计算机设备及存储介质
CN113094675B (zh) 基于分布式模型训练的用户认证方法及装置
CN115599959A (zh) 数据共享方法、装置、设备及存储介质
CN110995437B (zh) 基于etc***的用户信息录入方法、装置、设备和存储介质
US20230040203A1 (en) Method for deriving a partial signature with partial verification
CN113806755A (zh) 一种基于区块链的电力数据隐私保护与访问控制方法
CN118264412A (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