3  联邦学习中的数据安全问题
回顾联邦学习的起源,它同时具备两个动机:解决“联邦”场景下的方法框架问题,以及解决隐私保护问题。前面两节分别介绍框架部分的方法与局限性,本节介绍隐私保护中的数据安全部分,而模型安全部分则放到下一节介绍。
需要指出的是,通常所谓的“数据不出门”是一个不够严谨的说法:它只是表明原始数据本身不会被传递。但出于“有用性”要求,要绝对防止信息泄露却并无可能[13];因此,在前面介绍的各种联邦学习方案中,与原始数据密切相关的信息不可避免要发送出去,从而使得攻击者或“诚实但好奇”的参与方有可能根据这些信息反推原始数据或提取与原始数据有关的信息,导致各种安全问题。
因此,仍需对各个应用场景的安全需求进行分级,并根据实际需要和资源约束情况选择使用相应的安全协议。
数据安全算法主要是各种多方安全计算(MPC)协议,实际应用中也有非MPC的协议。按照所能提供的安全保证,可以对这些方法作如图表 4所示的区分。
接下来,我们按照安全保证级别从高到底分别介绍代表性的协议。

图表 4 联邦学习中常见数据安全协议的保证级别
3.1  恶意多数安全:SPDZ协议
SPDZ是一个先于联邦学习而存在的多方安全计算协议,读作[Speed-Z],为四位发明者姓氏首字母拼合而成,最早发表于2011年[14],后来又先后优化为SPDZ2[15]以及MASCOT[16]。协议分为不涉及被计算数据和逻辑的预处理阶段,以及需要数据和计算逻辑的“在线”阶段。在线阶段很高效,因此后续的效率升级都是针对预处理阶段。

SPDZ的基本方法是秘密分享。假设有n个参与方,第i个参与方Pi持有被分享数V的一个分量Vi,而所有这些分量加起来1等于被分享值:

1一般需要在域上计算,本文从略,下同

跟加性秘密分享方法(见3.5)不同的是,SPDZ能够同时支持加法和乘法,构成了完备的多项式计算能力。在秘密分享的基础上计算加法很简单,各参与方对自己掌握的分量执行相加运算即可;但计算乘法需要打开所谓的Beaver乘法三元组[17]。这是符合乘法关系的三个数,由各参与方秘密分享持有,一般在预处理阶段生成。使用三元组存在较大的网络通信开销。
SPDZ协议使用消息鉴别码机制和承诺协议,能够在恶意多数情况下保证作弊行为极大概率会被发现(统计安全性);并且这个保证无须依赖公信第三方来提供。这使得SPDZ协议特别适合在具有潜在业务竞争关系或者彼此信任度不是特别高的机构间开展联邦学习合作。而在线计算所需之Beaver乘法三元组则在预处理阶段生成,同样无须公信第三方;由于相关技术比较复杂且多次优化,此处不作介绍。
在部署上,各参与方可以直接作为SPDZ节点参与,也可以采用两个、三个或多个SPDZ安全计算节点,供各方以秘密分享的方式提供数据给节点作进一步计算。
在实际应用中,由于SPDZ仅支持加法和乘法,存在较大局限性,特别是在处理ReLU、MaxPooling等函数的时候。例如,TensorFlow Encrypted对SPDZ的实现(Pond)使用了切比雪夫多项式近似方法来逼近ReLU函数。如果场景允许放宽安全要求,则可以考虑采用ABY3或者SecureNN协议。
3.2  恶意少数安全:ABY