支持双向隐私保护的机器学习安全聚合预测方法及***
技术领域
本申请涉及机器学习技术领域,特别是涉及支持双向隐私保护的机器学习安全聚合预测方法及***。
背景技术
本部分的陈述仅仅是提到了与本申请相关的背景技术,并不必然构成现有技术。
在大数据与机器学习等技术的推动下,人工智能技术改变了人们的生活方式,如人脸,语音识别,推荐***,无人汽车等。但随之而来的是个人隐私信息的滥用,泄露事件频发。机器学习,深度学习算法的性能都依赖于提前收集的大量训练数据,这些数据可能涉及到用户敏感信息,如医疗记录,用户信贷记录等。大量研究表明,机器学习模型极易受到恶意攻击,由于机器学习模型隐含了训练数据的信息,攻击者可以通过分析模型,反向获取到有关训练数据的隐私信息。如Tramer等人通过查询预测API攻击如Amazon,BigML的在线机器学习预测服务(MLaas),并成功提取了与原始模型近似的机器学习模型。Fredrikson等人通过分析分类器输出的概率信息来揭示原始的训练数据,shokri设计的membershipinference attack训练多个影子模型判断一条数据是否出现在训练集中。而一旦模型参数或训练数据被泄露,会对于企业和个人造成严重的安全威胁和损失。
随着机器学习中各种隐私威胁的揭露,大量研究工作致力于解决机器学习下隐私保护问题,如Papernot等人提出了一种隐私保护的机器学习框架,Private Aggregationof Teacher Ensembles(PATE),“教师-学生”半监督迁移模型。PATE基于以下思想,若是在不相交数据集上训练的多个独立模型对于同一输入数据,在输出上具有高度的一致性,则不会泄露相关隐私训练数据。因此该框架通过划分隐私数据集,并在隐私子集上训练多个独立的教师模型,通过满足差分隐私的聚合机制将知识迁移到学生模型上,即通过教师模型给学生的公共数据预测标签,教师模型可被视为是一种机器学习即服务。敌手只能接触到基于公开数据训练的学生模型,因此保护了隐私训练数据的安全。直观上PATE提供了强大的隐私保证,且具有灵活的扩展性,但同时该框架也具有一定的局限性。
首先,隐私性上,PATE通过一个可信的聚合器聚合多个教师的预测结果,可是现实中并不存在完全可信的实体,若聚合器是恶意或者半诚实的,预测结果直接会被泄露。二是在学生模型没有公开的数据,或者学生模型持有的数据也是隐私的情况下,就无法保证学生模型数据的隐私性。设想一家医院希望训练一个机器学习模型帮助推断患者病情,并通过其他医院(教师)帮助自己(学生)标记数据集,然而由于患者的数据无法直接公开给其他医院(教师),这种情况下PATE框架便无法提供有效的隐私保证。且若敌手腐化学生,通过教师的预测结果反向攻击教师模型(成员推断攻击),教师模型和其训练数据的隐私性也无法保证。上述问题造成了双向的隐私泄露。在性能上,由于PATE框架通过差分隐私提供了隐私保证,但为了控制隐私成本,也限制了可预测数据的量。此外PATE框架只能在本地部署,即教师模型只能在本地提供预测,这就需要教师在预测时保持在线。
发明内容
为了解决现有技术的不足,本申请提供了支持双向隐私保护的机器学习安全聚合预测方法及***;
第一方面,本申请提供了支持双向隐私保护的机器学习安全聚合预测方法;
支持双向隐私保护的机器学习安全聚合预测方法,包括:
计算服务器接收客户端发送的待预测数据的数据份额;
所述计算服务器对数据份额进行处理,得到预测结果份额;
所述计算服务器对预测结果份额进行盲化处理,得到盲化预测结果份额;
所述计算服务器将盲化预测结果份额发送给聚合服务器;
所述聚合服务器对盲化预测结果份额进行移除盲化处理和加噪声处理,将结果反馈给客户端。
第二方面,本申请提供了支持双向隐私保护的机器学习安全聚合预测***;
支持双向隐私保护的机器学习安全聚合预测***,包括:客户端、计算服务器和聚合服务器;
计算服务器接收客户端发送的待预测数据的数据份额;所述计算服务器对数据份额进行处理,得到预测结果份额;所述计算服务器对预测结果份额进行盲化处理,得到盲化预测结果份额;所述计算服务器将盲化预测结果份额发送给聚合服务器;所述聚合服务器对盲化预测结果份额进行移除盲化处理和加噪声处理,将结果反馈给客户端。
与现有技术相比,本申请的有益效果是:
1、提出了一种可以提供双向隐私保护的安全框架,该框架可以保护隐私训练模型(教师模型)和隐私输入(学生输入)的安全性。对于模型提供者,服务器无法获取完整的模型参数,用户无法通过预测结果攻击模型和原始训练数据,对于用户,隐私输入无法被模型持有者和服务器获取。
2、避免了以往方法通过添加差分隐私进行保护造成的高昂的隐私成本。该框架通过计算预测向量所含信息熵,根据熵值高低动态地对预测向量添加噪声,可有效抵抗如成员推理攻击,且不会影响可预测数据的量。
3、该框架通过结合SGX技术,确保了计算过程中,即使存在某个服务器被恶意敌手腐化的情况,也无法获得有价值的信息,同时保护了计算过程中的预测输出(教师预测)。
4、增加了PATE框架的灵活性,服务器在离线阶段接收并存储模型份额,模型持有者(教师)无需加入到在线预测过程中。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为第一个实施例的离线阶段方法流程图;
图2为第一个实施例的在线预测计算流程图;
图3为第一个实施例的SecureNN基础协议之间的依赖性;
图4为第一个实施例的预测结果优化流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
术语解释:
SecureNN:SecureNN是由Wagh等人在2018年提出的一个三方安全计算协议,可支持神经网络的训练与预测。该协议主要基于秘密共享技术,相较于以往协议只能支持半诚实敌手下的安全性,SecureNN协议确保了即使存在恶意敌手腐化任意单个服务器,也无法了解诚实客户端的输入或输出。该协议包含了三个服务器,其中S0,S1在协议执行开始时持有2-out-of-2的秘密输入份额,并在结束计算时持有2-out-of-2的秘密输出份额,S2协助其他两个服务器进行协议执行。对于非线性激活函数,除了使用线性多项式拟合非线性激活函数外,对于ReLu函数,SecureNN通过先计算其导数间接计算,减少了使用线性函数拟合带来的计算误差。图3表示了SecureNN基础协议之间的依赖性。以下是一些秘密共享技术的原语。
共享值:对于一个a的共享值<a>,我们有<a>0+<a>1≡a(modF),其中<a>0,<a>1,a∈F,F是一个有限域。
分享share0(a):Si选择一个值r∈F,则<a>i=a-r,并将r发送给S1-i,在S1-i中<a>1-i=r。
重建Reci(a):S1-i将共享值<a>1-i发送给Si,Si计算a=<a>0+<a>1。
加法操作<c>=<a>+<b>:Si可以本地直接计算<c>i=<a>i+<b>i
乘法操作<c>=<a>·<b>:乘法计算需借助预先生存的乘法三元组<u>i,<v>i,<z>i,其中<z>i=<u>i·<v>imod F。Si需先计算<e>i=<a>i-<u>i,<f>i=<b>i-<v>i,而后双方在本地计算Rec(e)和Rec(f),并将<c>i=-i·e·f+f·<u>i+e·<v>i+<z>i
Intel SGX:Intel软件保护扩展,是一组添加到Intel体系结构中的新指令和内存访问机制。这些扩展允许应用程序实例化一个安全区,称为Enclave。使得这些操作的执行在安全的环境下,即使存在特权***或者恶意程序,也能提供机密性和完整性保护,确保在其中的代码和数据不被恶意篡改和获取。在创建Enclave之前,Enclave代码和数据是可被随意检查和分析的。一旦应用程序的代码和数据加载到一个Enclave中,所有外部软件对它的访问都会受到保护,任何企图访问和修改Enclave中的内容都是被禁止的。SGX提供两种认证机制,本地认证与远程认证,确保被认证的应用可以安全的运行在可信的环境中。
实施例一
本实施例提供了支持双向隐私保护的机器学习安全聚合预测方法;
支持双向隐私保护的机器学习安全聚合预测方法,包括:
S101:计算服务器接收客户端发送的待预测数据的数据份额;
S102:所述计算服务器对数据份额进行处理,得到预测结果份额;
S103:所述计算服务器对预测结果份额进行盲化处理,得到盲化预测结果份额;
S104:所述计算服务器将盲化预测结果份额发送给聚合服务器;
S105:所述聚合服务器对盲化预测结果份额进行移除盲化处理和加噪声处理,将结果反馈给客户端。
作为一个或多个实施例,所述方法S101步骤之前,还包括:
S1001:模型持有方将本地已经训练好的机器学习模型分成若干个模型份额;并将模型份额发送给对应的计算服务器;
S1002:聚合服务器在可信区中随机生成盲化矩阵,并将盲化矩阵发送给对应的计算服务器。
进一步地,所述S1001步骤之前还包括:
S1000:聚合服务器创建可信区Enclave,模型持有方与计算服务器进行远程认证,确保计算服务器运行在安全SGX环境中。
进一步地,所述S1001:模型持有方将本地已经训练好的模型分成两个模型份额;是指模型持有方,采用秘密共享将本地已经训练好的模型分成若干个模型份额。
示例性的,所述S1001:模型持有方将本地已经训练好的模型分成两个模型份额;具体实施方式为:
Pi在本地使用秘密共享将模型Wi分成两个模型份额,即Pi随机选择一个r∈ZL,其中Z是一个环,L=264,计算模型份额share0(Wi)=Wi-r(mod L),share1(Wi)=r,并将模型份额发给两个计算服务器S0,S1。计算服务器无法直接接触到原始模型,只能获得模型份额。
示例性的,所述S1002:聚合服务器在可信区中随机生成盲化矩阵,并将盲化矩阵发送给对应的计算服务器;具体实现方式为:
聚合服务器在Enclave中随机生成盲化矩阵mask0和mask1,通过安全信道将盲化矩阵发送给计算服务器。
盲化矩阵会在计算服务器完成预测计算后,保护预测结果份额,避免在聚合服务器的不可信区中被攻击。
应理解的,盲化矩阵,是用来保护预测份额的一个随机矩阵。在可信的Enclave中生成,然后通过安全信道发送给两个计算服务器,计算服务器完成模型预测后,盲化预测结果份额。
考虑到若没有盲化矩阵,两个服务器计算完成预测份额share0(Yi);预测份额share1(Yi)直接发送给聚合服务器。
不可信的聚合服务器可以直接重建预测结果Yi=share0(Yi)+share1(Yi),从而直接泄露了用户预测结果的隐私;另一方面,敌手也可以通过预测结果使用如membershipinference attack,间接攻击训练模型。
加入盲化矩阵的保护后,不可信的服务器只能接收到盲化预测份额,重建后获得盲化预测结果Ymask=share0(Yi)+mask0+share1(Yi)+mask1=Yi+mask,且盲化矩阵的移除只能在Encalve中进行,因此不会泄露预测结果。
盲化矩阵的生成方式:从均匀分布中随机采样一个随机矩阵,该矩阵数据类型需与预测秘密份额数据类型一致。
应理解的,Encalve:intel SGX程序由两个部分组成,不可信的应用和可信的Enclave,intel sgx指令在运行时会在一个特定的保护内存区域创建一个可信的encalve,用来存放需要被保护的数据和代码,可以有效防止数据的泄露。
进一步地,所述S1000、S1001和S1002都在离线阶段完成,如图1所示。
作为一个或多个实施例,所述S101:计算服务器接收客户端发送的待预测数据的数据份额;具体步骤包括:
第一计算服务器接收客户端发送的待预测数据的第一数据份额;第二计算服务器接收客户端发送的待预测数据的第二数据份额。
示例性的,所述S101:计算服务器接收客户端发送的待预测数据的数据份额;具体步骤包括:
客户端首先与计算服务器进行远程认证,确保计算服务器硬件安全真实性和完整性,证明通过后,客户端C将待预测数据x,分成两个数据份额share0(x)=r和share1(x)=x-r(mod L),发送给服务器S0,S1。
share(),共享操作,客户端为保护本地隐私输入x,选择一个随机值r∈ZL,其中Z是一个环,L=264,作为第一个秘密份额share0(x);
再计算x-r(mod L)作为第二份秘密份额share1(x),将这两个秘密份额发送服务器,其中,mod是模运算。
作为一个或多个实施例,所述S102:所述计算服务器对数据份额进行处理,得到预测结果;具体步骤包括:
第一计算服务器基于第一数据份额,计算出第一预测结果;第二计算服务器基于第二数据份额,计算出第二预测结果。
示例性的,所述S102:所述计算服务器对数据份额进行处理,得到预测结果份额;具体步骤包括:
服务器S0,S1,S2,基于SecureNN协议进行安全三方预测计算,并获得预测结果份额share0(Yi)和share0(Yi)。
应理解的,本申请中服务器之间的计算,本质上就是基于秘密份额的计算。
在进行安全多方计算前,S0,拥有模型秘密份额share0(Wi)和来自用户的数据份额share0(x),S1拥有模型秘密份额share1(Wi)和用户待预测数据份额share1(x)。两个服务器在S2协助下,通过SecureNN协议,完成交互计算,计算出各自的预测结果share0(Yi)和share0(Yi)。
SecureNN协议中包含了基于秘密共享的加法,乘法,矩阵乘法,激活函数,隐私比较等基础协议,可以完成机器学习预测计算。
作为一个或多个实施例,所述S103:所述计算服务器对预测结果份额进行盲化处理,得到盲化预测结果份额;具体步骤包括:
第一计算服务器对第一预测结果份额进行盲化处理,得到第一盲化预测结果份额;第二计算服务器对第二预测结果份额进行盲化处理,得到第二盲化预测结果份额。
进一步地,第一计算服务器对第一预测结果份额进行盲化处理,得到第一盲化预测结果份额;是指:第一计算服务器,通过第一盲化矩阵对第一预测结果份额进行盲化处理,得到第一盲化预测结果份额。
进一步地,第二计算服务器对第二预测结果份额进行盲化处理,得到第二盲化预测结果份额;是指:第二计算服务器,通过第二盲化矩阵对第二预测结果份额进行盲化处理,得到第二盲化预测结果份额。
示例性的,所述S103:所述计算服务器对预测结果份额进行盲化处理,得到盲化预测结果份额;具体步骤包括:
计算服务器S
0,S
1使用预先得到的盲化矩阵盲化各自拥有的预测结果份额,即
应理解的,这里如果不对预测结果份额进行盲化保护,聚合服务器在获得share0(Yi)和share1(Yi)后,可直接重建Yi=share0(Yi)+share1(Yi),泄露预测结果。
进一步地,所述S103:所述计算服务器对预测结果份额进行盲化处理,得到盲化预测结果份额;具体步骤包括:
所述计算服务器采用盲化矩阵,对预测结果份额进行盲化处理,得到盲化预测结果份额。
进一步地,所述盲化矩阵的获取步骤包括:
聚合服务器在可信区随机生成盲化矩阵。
作为一个或多个实施例,所述S104:所述计算服务器将盲化预测结果份额发送给聚合服务器;具体步骤包括:
第一计算服务器将第一盲化预测结果份额发送给聚合服务器;第二计算服务器将第二盲化预测结果份额发送给聚合服务器。
作为一个或多个实施例,所述S105:所述聚合服务器对盲化预测结果份额进行移除盲化处理和加噪声处理,将结果反馈给客户端;具体步骤包括:
S1051:聚合服务器在不可信区中对第一盲化预测结果份额和第二盲化预测结果份额重建盲化预测结果,得到第三盲化预测结果份额;
S1052:聚合服务器在可信区对第三盲化预测结果份额进行移除盲化处理,得到中间结果;聚合服务器基于中间结果,计算出聚合预测结果;
S1053:聚合服务器对聚合预测结果进行加噪声处理,并将加噪声处理后的聚合预测结果发送给客户端。
进一步地,所述S1051聚合服务器在不可信区中对第一盲化预测结果份额和第二盲化预测结果份额重建盲化预测结果,得到第三盲化预测结果份额;具体步骤包括:
聚合服务器获得盲化后预测结果份额,并在不可信区中预先重建盲化预测结果即Ymask=share0(Yi)+mask0+share1(Yi)+mask1=Yi+mask。
应理解的,这里由于在不可信区中没有盲化矩阵,因此不会泄露预测结果Yi。
进一步地,所述S1052:聚合服务器在可信区对第三盲化预测结果份额进行移除盲化处理,得到中间结果;具体步骤包括:
聚合服务器在可信区Encalve中移除盲化矩阵,获得预测结果:
Yi=Ymask-mask。
进一步地,所述S1052:聚合服务器基于中间结果,计算出聚合预测结果;具体步骤包括:
聚合服务器使用软投票方法,计算投票后的聚合预测结果
相对于硬投票方式,软投票具有更高的准确度。
进一步地,所述S1053:聚合服务器对聚合预测结果进行加噪声处理,并将加噪声处理后的聚合预测结果发送给客户端;具体步骤包括:
聚合服务器先计算结果的熵值
对于熵值较高的预测结果,会添加更少噪声,反之对于熵值较低的预测结果,则添加更大的噪声。
根据熵值高低,聚合服务器计算对应的噪音系数
其中d为训练数据的类的分布;
最后聚合服务器对预测结果加噪,即Y′a=Ya+N*c*(d-Ya),其中c为一个控制系数,控制噪音添加的大小。
为解决PATE框架在教师模型到学生模型知识迁移上存在的隐私泄露问题,解决PATE框架的性能局限性,本申请提出了一种结合秘密共享和可信计算SGX的方案,本方案是一种安全三方计算框架,包含两个计算服务器和一个聚合服务器。在离线阶段模型持有方(教师)使用秘密共享将技术将隐私模型分成两个模型份额上传存储在两个计算服务器中,此外聚合服务器在可信区中生成盲化矩阵,发送给两个计算服务器,以保护预测结果。如图2所示,在线预测阶段,客户端(学生)同样将待预测的隐私数据以份额形式上传至两个服务器中进行预测计算,计算服务器通过盲化矩阵保护预测结果份额,聚合服务器接收盲化后的预测份额并在可信区中移除盲化矩阵,聚合来自多个隐私模型的预测结果,并对聚合结果添加噪声进行优化保护如图4所示,返还给客户端。
本申请分为三部分,模型持有方,服务器(包括两个ω计算服务器和一个聚合服务器),客户端具体步骤如下:
1、模型持有方Pi将本地已训练好的模型Wi分成两个模型份额share0(Wi)和share1(Wi)发送给计算服务器S0,S1。
2、聚合服务器S2在可信区Encalve中随机生成盲化矩阵mask0,mask1,mask=mask0+mask1,并通过安全信道发送给计算服务器S0,S1。
3、客户端C将待预测数据x,分成两个数据份额share0(x)和share1(x),发送给服务器S0,S1。
4、服务器S0,S1在拥有的模型份额上计算预测结果即share0(Yi)和share1(Yi),其中为Y为预测向量=(y1,y2,.....yj),j为预测结果的类别,y为预测概率。
5、服务器S0,S1盲化预测结果份额即:
将盲化后结果发送给聚合服务器。
6、聚合服务器在不可信区中计算盲化预测结果Ymask=share0(Yi)+mask0+share1Yi+mask1=Yi+mask
7、聚合服务器在可信区Encalve中移除盲化Yi=Ymask-mask
9、聚合服务器对聚合结果进行优化,加入噪声,降低预测结果的信息熵,将加噪后的预测结果Y′a发送给客户端C。
表1算法1:框架的执行
实施例二
本实施例提供了支持双向隐私保护的机器学习安全聚合预测***;
支持双向隐私保护的机器学习安全聚合预测***,包括:客户端、计算服务器和聚合服务器;
计算服务器接收客户端发送的待预测数据的数据份额;所述计算服务器对数据份额进行处理,得到预测结果份额;所述计算服务器对预测结果份额进行盲化处理,得到盲化预测结果份额;所述计算服务器将盲化预测结果份额发送给聚合服务器;所述聚合服务器对盲化预测结果份额进行移除盲化处理和加噪声处理,将结果反馈给客户端。
上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。