基于两方安全计算的隐私保护逻辑回归方法

时间:2023-10-10 14:20:05 来源:网友投稿

沈文旭,张继军,毛 重

(空军航空大学 教研保障中心,长春 130022)

由于用于模型训练的样本数量越多、质量越高,模型的性能越强,因此多个数据拥有方希望共同训练模型的需求日趋强烈.在这种需求下,由于训练的样本来自多个数据拥有者,因此数据的隐私保护问题至关重要[1].如何在多个数据方间安全、可靠、高效地开展机器学习建模任务,已逐渐成为该领域的研究热点[2-3].目前,该类研究统称为隐私保护机器学习(privacy-preserving machine learning,PPML).

逻辑回归是目前常用的一种机器学习算法,常用于医疗辅助诊断和金融分析等领域.当多个数据方想共同训练一个逻辑回归模型时,可借助安全多方计算(secure multi-party computation,MPC)[4-5]的相关技术完成联合建模工作.安全多方计算能保证输入隐私性与计算的正确性,是用于联合建模的一种潜在技术.近年来,由于混淆电路(garbled circuits,GC)与不经意传输(oblivious transfer,OT)的快速发展,使得在实际问题中应用安全多方计算成为可能.

基于MPC的安全推理框架可在保证模型参数与客户输入数据隐私性的前提下,客户获得模型的预测结果.在该类框架中,服务器与客户端之间运行安全多方计算的相关协议,完成模型的预测过程.CryptoNets[6]是一种基于同态加密(homomorphic encryption,HE)的隐私保护方案,其使用平方函数近似ReLU和Sigmoid函数,影响了模型的准确性.GAZELLE[7]优化了同态计算,并使用加法同态加密完成部分计算.Delphi[8]设置了一个预处理阶段,在该阶段集中进行GAZELLE中繁重的同态加密计算.CrypTFlow2[9]使用不经意传输实现比较运算,解决了已有工作在实现ReLU时通信开销较大的弊端.MiniONN[10]是一个混合的框架,其采用了秘密共享(secret sharing,SS)、同态加密和混淆电路的相关技术.Chameleon[11]引入了一个可信第三方在离线阶段辅助生成乘法三元组,极大减少了离线阶段所需的时间.

基于MPC的安全训练框架至少需要两个服务器(计算方)参与.在训练开始前,参与方将隐私数据以秘密共享的形式发送至各服务器,之后服务器间运行MPC的相关协议完成模型的训练过程.SecureML[12]是基于两方安全计算(secure two-party computation,2PC)的框架.该框架在满足半诚实安全模型下,允许多个参与方共同训练线性回归、逻辑回归和神经网络模型.与SecureML类似,QUOTIENT[13]也是半诚实安全模型下的框架,其将模型的参数表示为三元组{-1,1,0},并使用OT完成相应的乘法计算.ABY3[14]是基于三方安全计算(secure three-party computation,3PC)的PPML框架,在三方的情况下,传统的混淆电路无法部署,因此ABY3设计了新的混淆电路协议.SecureNN[15]是恶意敌手安全模型下的PPML框架,其使用秘密共享技术完成神经网络中的所有计算.

目前,基于MPC的隐私保护方案面临以下挑战: 在Beaver协议中[16],使用预先生成的乘法三元组计算乘法,而生成乘法三元组消耗的时间较长; 对于逻辑回归算法,在安全多方计算中计算Sigmoid函数与Softmax函数需要消耗大量时间; 在逻辑回归算法中,涉及到矩阵间的计算,传统方案未采取特殊的技术加速该过程.

为更高效、准确、安全地完成逻辑回归模型的联合建模任务,本文提出一种基于两方安全计算的方案.该方案采用Beaver协议计算乘法,因此需要在离线阶段提前生成乘法三元组.本文优化了现有的离线阶段协议: 对于基于不经意传输的离线阶段,提出一种新的压缩方法,以加快该方案的执行效率; 对于基于同态加密的离线阶段,本文将其向量化,以提升计算效率.对于逻辑回归模型中的Sigmoid函数和Softmax函数,由于其在安全多方计算中难以计算,因此在计算过程中采用近似函数进行代替,使用线性函数代替Sigmoid函数和Softmax函数中的指数函数.由于逻辑回归算法中涉及矩阵与向量间的计算,所以本文将所有的协议向量化,以提升联合建模过程中的计算效率.此外,为获得更快的计算速度,本文使用CUDA(compute unified device architecture)加速所有的计算.

1.1 两方安全计算

在MPC中,各参与方可在保证自己输入不泄露的前提下,进行一个约定函数的计算.在协议运行过程中,即使一方或多方被控制、攻击,MPC仍能保证各方输入数据的隐私性.秘密共享[18-19]的主要思想是将数据拆分为n部分,每部分由不同的参与方保管.PPML常用的几种秘密共享如下.

作为最终结果.乘法三元组不依赖任何数据,所以可在计算开始前提前生成三元组,该过程称为离线阶段.

GC是为两方安全计算服务的技术,参与方有混淆器与评估器.计算时首先将目标函数转换为布尔电路的形式,由单个门开始,加密整个电路.在加密时,混淆器为每个门生成混淆表.评估器与混淆器间运行不经意传输协议,评估器得到对应的秘钥后,可以正确解密混淆表的其中一项,并将该项作为结果.

OT[20]是密码学的基本协议源语之一,最常用的为1-out-of-2 OT,其中包括发送方与接收方两种角色.发送方有一对消息m0和m1,接收方持有一个选择比特b,协议运行结束后接收方获得消息mb.在整个过程中,发送方无法得知b值,同时接收方也无法获得任何关于m1-b的信息.本文使用(⊥;mb)←OT(m0,m1;b)表示该过程.

1.2 模型概述

本文提出的基于两方安全计算的隐私保护逻辑回归方案如图1所示.在该方案中,所有运算均由两个非共谋的计算服务器Server0(S0)和Server1(S1)完成.计算服务器可由参与建模任务的数据拥有方担任,也可由独立的第三方提供.

图1 基于两方安全计算的隐私保护逻辑回归方案Fig.1 Privacy-preserving logistic regression scheme based on two-party secure computation

在建模任务开始前,需要完成两项预处理工作: 1) 数据预处理,在该阶段所有的参与方作为客户端将自身的数据拆分为算术秘密共享的形式,然后将拆分后的数据上传至S0和S1,所有的参与方不必再参与后续的计算过程; 2) 完成离线阶段的计算,生成乘法三元组,为后续的计算提供支持.当所有的预处理工作完成后,S0和S1开始执行建模任务.在该过程中,S0和S1之间运行相应的两方安全计算协议,同步完成所有计算.

1.3 威胁模型

在安全多方计算中,根据参与计算方的行为可将其分为以下几类: 诚实的协议参与者、半诚实的协议参与者和恶意参与者.在实际应用中,主要存在半诚实协议参与者和恶意参与者,因此设计了半诚实模型和恶意敌手模型[21-23].

在半诚实模型中,参与者严格遵守协议的执行流程.参与者掌握自身的输入信息,并且会保留协议运行过程中与自身有关的中间数据.该模型中的参与者可能会根据自身的输入及中间数据推导其他的额外信息,但攻击者不会主动攻击或者联合其他参与方破坏协议的执行.在恶意敌手模型中,参与者掌握自身的输入信息和协议运行过程中与自身有关的中间数据,并且可能会尝试监听其他信道上的信息.在该模型中,攻击者不一定遵守协议的运行规则,攻击者可能会通过修改输入数据,或者恶意篡改中间计算结果等方法分析、窃取其他参与方的数据; 或者提前终止并拒绝参加协议的执行以迫使协议终止.

本文对现有离线阶段的两种方案进行了相应的改进,以提高计算效率.对在安全多方计算中难以计算的激活函数,本文使用近似函数进行代替.最终,本文构造了基于两方安全计算隐私保护逻辑方案,该方案能高效、安全地训练模型,并且满足半诚实模型.

2.1 离线阶段

由于本文用Beaver协议计算乘法,因此需要一个单独的离线阶段生成所需的乘法三元组.目前的主流方案有基于同态加密和不经意传输两种.

2.1.1 基于HE的离线阶段

为加快模型的训练速度,一般采用mini-batch技术.假设输入为X|B|×d(每批数据的样本数量为|B|,每个样本的特征个数为d),模型的参数矩阵为Wd×n.在逻辑回归算法中,需计算X|B|×d×Wd×n,借助向量化后的三元组〈Z|B|×n〉=〈U|B|×d〉×〈Vd×n〉可完成计算.首先Si计算〈E〉i=〈X〉i-〈U〉i和〈F〉i=〈W〉i-〈V〉i,然后执行E=Rec(〈E〉)和F=Rec(〈F〉),最后Si计算

-i·E×F+〈X〉i×F+E×〈W〉i+〈Z〉i.

在生成三元组时,需计算

〈Z〉=〈U〉×〈V〉=(〈U〉0+〈U〉1)×(〈V〉0+〈V〉1),

关键是计算其中的交叉项〈U〉0×〈V〉1和〈U〉1×〈V〉0,〈U〉i×〈V〉i可由Si在本地进行计算.下面以计算〈U〉0×〈V〉1为例(〈U〉1×〈V〉0的计算可采用相同方法)介绍基于HE的离线阶段方案.

算法1基于HE的离线阶段算法.

输入: 矩阵〈U|B|×d〉和〈Vd×n〉;

输出: 〈Z|B|×n〉满足〈Z|B|×n〉=〈U|B|×d〉×〈Vd×n〉;

步骤1) fori=1,2,…,ddo

步骤2) forj=1,2,…,ndo

步骤3)S1对〈V〉1的每项vi,j进行加密Enc(vi,j),并将加密结果发送至S0;

步骤4) fori=1,2,…,|B| do

步骤5) forj=1,2,…,ndo

步骤6)S0选取随机数ri,j;

步骤8)S1解密收到的zi,j,并将加密结果作为输出〈zi,j〉1=Dec(zi,j);

步骤9)S0将ri,j作为输出〈zi,j〉0=(-ri,j).

对于三元组〈Z|B|×n〉=〈U|B|×d〉×〈Vd×n〉,如果使用Paillier同态加密算法直接计算,若不采用算法1中的方式,则在计算每一项〈ui,j〉0·〈vj,i〉1时通信量为2·|N|(N为密文大小),生成〈Z|B|×n〉=〈U|B|×d〉×〈Vd×n〉的通信量为4·|B|·d·n·|N|.而使用算法1的通信量为2·(|B|+d)·n·|N|,减少了计算过程中的通信量.

由于采用Paillier算法,在算法1中存在大量的模幂运算,使用CPU计算非常耗时.因此,本文使用CUDA加速算法1中的所有计算.实验结果表明,使用CUDA加速后,计算效率约提升了10倍.

2.1.2 基于OT的离线阶段

为提升效率,一般采用OT扩展协议.在OT扩展协议中,每个消息会被一个随机函数的输出掩盖(随机函数的输出至少为128比特).常用的随机函数包括SHA256或者AES.对于〈U〉0×〈V〉1,其中〈V〉1的某项vi,j会被〈U〉0中的uk,j(k=1,2,…,|B|)相乘,该情形可简化为A·b(A=(a1,a2,…,an),n=|B|),ai和b均为l比特的整数.在计算A·b时,b[k]都将作为计算ai·b(i=1,2,…,n)时第k次OT的选择比特,而ai·2k的低k位均为0,所以在执行OT时,只需考虑传输ai·2k的非零位.因此,对于消息

M0=(r1·2k,r2·2k,…,rn·2k),

M1=((ai+r1)·2k,(a2+r2)·2k,…,(an+rn)·2k),

算法2基于OT的离线阶段算法

输入:A=(a1,a2,…,an),b;

输出: 〈Z〉满足〈zi〉=ai·b;

步骤1) fork=1,2,…,l-1 do

步骤2)S0选择随机序列(r1,r2,…,rn);

步骤3)S0计算M0=(r1·2k,r2·2k,…,rn·2k)和

M1=((a1+r1)·2k,(a2+r2)·2k,…,(an+rn)·2k);

步骤5) fori=1,2,…,ndo

步骤7)S0和S1执行OT协议(⊥;m0)←OT(m0,m1;b[k]);

步骤8)S0计算〈zi〉0=〈zi〉0-ri·2k;

步骤9)S1计算〈zi〉1=〈zi〉1+b[k]·(ai+ri)·2k+ri·2k.

2.2 MPC友好的激活函数

图2 Sigmoid函数与近似线性函数Fig.2 Sigmoid function and approximate linear function

2.3 隐私保护逻辑回归

算法3隐私保护逻辑回归算法.

输入: 样本数据〈XN×d〉,标签〈YN×1〉,模型参数〈Wd×1〉;

输出:Wd×1;

步骤1)S0和S1将选取合适的|B|,将〈XN×d〉和〈YN×1〉分为t批数据,每批数据的样本量为|B|;

步骤2) fori=1,2,…,tdo

步骤4) forj=1,2,…,|B| do

步骤6)S0选取随机数r1,生成

步骤7)S1选取随机数r2,生成

步骤11)S0和S1使用预先生成的三元组计算〈W*〉=〈X*〉·(Y-Y*);

步骤12)W=Rec(〈W〉).

2.4 安全性证明

假设一个潜在的半诚实敌手能控制算法3中的S0或S1以及m个参与方(m

算法3中的乘法三元组在离线阶段生成,与数据无关,并且是随机的.此外,算法3中所有发送、接收的数据也是随机的,因此敌手在现实世界与理想世界的视图是不可区分的.对于算法3中使用的GC和OT,其本身的安全性已有相应的证明,故略.综上可知,算法3满足半诚实模型.

本文用C++实现隐私保护逻辑回归: 矩阵间的计算用libtorch实现(PyTorch的C++版本,支持CUDA加速); GC和OT基于emp-toolkit(https://github.com/emp-toolkit)实现; Paillier同态加密基于cuda-fixnum(https://github.com/unzvfu/cuda-fixnum)实现.

实验使用的机器配置为: GTX1080Ti GPU,64 GB RAM.通过设置网络延迟和速率的方式,模拟广域网(LAN)和局域网(WAN)的环境.对于局域网,延迟设为0.05 ms,速度为300 MB/s; 对于广域网,平均延迟为50 ms,速度为25 MB/s.默认情况下学习率设为2-4,批大小设为|B|=128,ld=12.

本文采用的数据集为MNIST和GISETTE.MNIST是一个包含数字0~9的手写数据集,其中每个样本为28×28像素的图片,每个像素的值为0~255.整个数据集共有60 000张图片用于训练,10 000张图片用于验证.GISETTE则是由数据集MNIST构建的,其只包括数字4和9[29].

本文已优化了基于HE和OT的两种离线阶段方案,将其向量化,并使用CUDA加速计算.表1列出了本文的两种离线方案效率,其中的数据表示在训练总样本数(N)和每个样本特征数量(d)确定的情况下,生成算法3中需要三元组数据的耗时.由表1可见: 对于基于HE的离线阶段,与已有的工作[12]相比,本文算法的效率约提升10倍; 对于基于OT的离线阶段,与已有的工作[10,18]相比,在LAN中运行时,本文的效率提升了2~4倍; 当在LAN中运行时,基于HE的离线阶段比基于OT的离线阶段约慢了10倍; 当在WAN中运行时,基于 HE的离线阶段则比基于OT的离线阶段约快了6倍.因此,应根据部署的环境,在两种方案中合理地进行选择.

表1 离线阶段效率

表2列出了用算法3训练用于二分类任务的逻辑回归模型的性能.用MNIST训练用于二分类任务的逻辑回归模型时,将非零数字的样本标签设为1.训练的目标为识别数据集中的数字0和其他数字.在明文数据集上进行训练时,模型的准确率能达到99.1%.用算法3在2×106个样本上完成训练后,模型的准确率可达到98.6%.在LAN中运行的时间为267 s(不包括离线阶段所需的时间),在WAN中运行的时间为1 600 s.在数据集GISETTE上使用明文数据训练逻辑回归模型时,最终模型的准确率为98%.而使用算法3训练的情况下,设ld=10时,模型的准确率为86%,设ld=16时,模型的准确率为98%,与在明文数据上进行训练一致.此时训练的总样本数量为2×106个,训练时间为275 s.

表2 用算法3训练逻辑回归模型的性能

图3 不同ld设置下,在数据集MNIST 上训练时模型的准确率Fig.3 Accuracy of models trained on MNIST dataset under different ld settings

而在数据集MNIST上训练用于多分类任务的逻辑回归模型时,模型的准确率达到89%.图3为第一轮训练时,在每批数据上迭代训练后模型的准确率变化趋势.由图3可见,当ld=8时,模型的准确率已经与在明文上进行训练的准确率相当.

综上所述,本文提出了一个基于两方安全计算的隐私保护逻辑回归的训练方案,可允许多个参与方在不泄露自身隐私数据的前提下,共同完成逻辑回归模型的训练任务.首先优化了基于HE和OT的离线阶段,并将其向量化; 然后构造了MPC友好的近似函数,代替原有激活函数参和计算,提升了计算效率; 最后用CUDA加速本地的矩阵运算和同态加密的计算.实验结果表明,本文方案可以高效、安全地完成联合建模任务.

猜你喜欢三元组离线逻辑刑事印证证明准确达成的逻辑反思法律方法(2022年2期)2022-10-20逻辑中学生百科·大语文(2021年11期)2021-12-05创新的逻辑纺织科学研究(2021年7期)2021-08-14异步电机离线参数辨识方法防爆电机(2021年4期)2021-07-28呼吸阀离线检验工艺与评定探讨中国特种设备安全(2021年11期)2021-05-05特征标三元组的本原诱导子山西大学学报(自然科学版)(2021年1期)2021-04-21浅谈ATC离线基础数据的准备铁道通信信号(2020年6期)2020-09-21关于余挠三元组的periodic-模五邑大学学报(自然科学版)(2019年3期)2019-09-06离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素中成药(2018年2期)2018-05-09女人买买买的神逻辑37°女人(2017年11期)2017-11-14

推荐访问:隐私保护 逻辑 回归

版权所有:天豪文档网 2012-2024 未经授权禁止复制或建立镜像[天豪文档网]所有资源完全免费共享

Powered by 天豪文档网 © All Rights Reserved.。浙ICP备12036114号-1