在加密数据上进行神经网络的训练

在加密数据上进行神经网络的训练

前言

本文介绍一下目前如何使用加密数据进行神经网络的训练,并简要介绍各种应用场景、已有工具框架等内容。

介绍

当前,基于云的神经网络服务部署逐渐成为主流,在这种情况下,数据和模型由不同方拥有。但是,MLaaS的场景下会产生许多数据隐私问题。举个简单例子来讲,第三方开发了一个深度学习预测模型,对患者的医学数据进行某种疾病的检测。由于法律法规和个人隐私需求的限制,医院无法直接传输明文医学数据给第三方用于模型输入,也不应将检测结果暴露给患者以外的第三方。通过同态加密(HE),医院可以发送加密数据,使得第三方在加密数据上运行模型,而无需透露任何基础信息。

在加密数据上进行神经网络的训练_第1张图片

在过去一段时间,这种基于HE的机器学习方法逐渐成为研究重点,另一种技术书安全多方计算(MPC)。HE非常适合使用深度神经网络进行预测的任务。

一些应用场景

数据拥有者(DO)和云模型提供者(Cloud)

  1. 加密的数据,加密的模型:DO将HE加密的数据发送到Cloud。然后,Cloud根据加密数据计算模型以产生加密输出,将输出发送给DO,DO使用私钥对其进行解密。
  2. 未加密的数据,加密的模型:Cloud将已加密的模型发送给DO,然后DO在不现实任何数据的情况下在本地运行模型,以生成加密的输出。DO不会获得任何有关模型的任何信息,并且可以由密钥的所有者(如模型的所有者)解密输出。
  3. 加密数据,加密模型:一个DO或多个DO将数据联合起来输入加密网络进行预测,Cloud返回加密预测结果,需要多个密钥才能解密。类似于联邦学习。

https://medium.com/swlh/faster-neural-networks-on-encrypted-data-with-intel-he-transformer-and-tensorflow-9fdc9eb1a888
第一个应用场景是最具有代表性的,因为它是MLaaS在同态加密下的直接应用。与MPC相比,HE的优势在于不需要维持通信来进行计算,但是缺点也同样明显,那就是计算量的代价、可计算函数的局限性、同态乘法的误差增长。总体而言,HE方案的主要瓶颈是计算能力,而MPC则是通信。

什么是同态加密

同态加密(HE,homomorphic encryption)是密码学里一种特殊的加密模式,同态加密使我们可以将加密后的密文发给任意的第三方进行计算,并且在计算前不需要解密,即:在密文上进行计算。 虽然同态加密的概念最早出现于30年前,但是第一个支持在密文上进行任意运算的全同态加密框架出现较晚,在2009年由Craig Gentry提出。

同态加密的分类

  1. 部分同态加密(PHE)指同态加密算法只对加法或乘法(其中一种)有同态的性质。PHE的优点是原理简单、易实现,缺点是仅支持一种运算(加法或乘法)。可以应用在联邦学习中服务器的聚合操作。
  2. 层次同态加密算法(LHE)一般支持有限次数的加法和乘法运算。LHE的优点是同时支持加法和乘法,并且因为出现时间比PHE晚,所以技术更加成熟、一般效率比FHE要高很多、和PHE效率接近或高于PHE,缺点是支持的计算次数有限。
  3. 全同态加密算法(FHE)支持在密文上进行无限次数的、任意类型的计算。FHE的优点是支持的算子多并且运算次数没有限制,缺点是效率很低,目前还无法支撑大规模的计算。
  4. 基于格的同态加密算法(RLWE)支持有限次数的加法和乘法运算。RLWE的有点是密文结果较短,效率较与传统方法要好,缺点是该问题在密文中添加了噪声项,在加法特别是乘法期间,噪声项迅速增长,会导致最终无法再解密。

USENIX-18 GAZELLE: A Low Latency Framework for SecureNeural Network Inference
Efficient Multi-Key Homomorphic Encryption with Packed Ciphertexts with Application to Oblivious Neural Network Inference

同态加密在机器学习中的应用

1.联邦学习(PHE)

在联邦学习中,多方联合训练模型一般需要交换中间结果,如果直接发送明文的结果可能会有隐私泄露风险。在这种场景下,同态加密就可以发挥很重要的作用。多方直接将中间结果用同态加密算法进行加密,然后发送给第三方进行聚合,再将聚合的结果返回给所有参与者,不仅保证了中间结果没有泄露,还完成了训练任务(第三方可以通过优化系统设计去除)。

在联邦学习中,因为只需要对中间结果或模型进行聚合,一般使用的同态加密算法为PHE(多见为加法同态加密算法),例如在FATE中使用的Paillier即为加法同态加密算法。为了更好地展示同态加密在联邦学习中的应用,我们在此展示一个同态加密在联邦学习推荐系统中的应用。在加密数据上进行神经网络的训练_第2张图片
在传统的推荐系统中,用户需要上传浏览记录、评价信息来实现个性化推荐,但是这些信息均属于个人的隐私数据,直接上传会带来很大的安全隐患。在联邦推荐系统中,每个用户将数据保存在本地,只上传特定的模型梯度。这样虽然避免了隐私数据的直接泄露,但是还是透露了梯度信息给云服务器。同时我们发现,从数学上可以证明,使用连续两次更新的梯度即可反推出用户的评分信息。这种情况下,就必须使用同态加密对用户上传的梯度进行保护,即用户在上传梯度前使用加法同态加密算法对梯度信息进行加密,然后云服务器将所有用户的密文梯度进行聚合(相加),再将更新后的模型返还给各个用户解密,完成训练更新。

这个框架目前使用的公私钥加密方案是存在问题的,当server和其中一个client进行共谋时,私钥会泄露。因此后续可以采用私钥秘密分享的方法进行设计。

2. 密态机器学习(LHE和FHE)

密态计算中使用的同态加密算法多为LHE和FHE。其实全同态加密研究的初衷,就是为了实现安全的云计算,即对云算力有需求的用户可以将本地的数据全部加密,然后上传到云端,然后云端的服务器即可按照用户指令完成计算,整个过程用户的数据不会泄露给云端,从而完成“绝对安全”的云计算服务。

但是由于目前FHE效率比较低,所以使用全同态加密进行云计算远远没有达到应用的级别。机器学习在云计算中有着广阔的市场,而机器学习有训练和推理两种需求,训练过程一般数据较多、计算量很大,而推理则数据量相对较小、计算量也小,所以目前研究主要集中在密态下的机器学习推理,并且目前已经有速度比较快的方案 (USENIX-18 GAZELLE);而密态下的机器学习训练研究稀少,是一个比较难解决的问题。

一些开源的密态机器学习方案实现

  1. IntelAI/he-transformer:
    对加密数据进行本地机器学习,支持多种加密模式,如Microsoft的SEAL-CKKS的同态方案和ABY的MPC方案。并有开源实现和论文支持。
  2. Facebook/CrypTen:
    主要是采用了安全多方计算来实现数据隐私保护下的机器学习任务。目前还在原型阶段。

你可能感兴趣的:(secureML)