本文介绍一下目前如何使用加密数据进行神经网络的训练,并简要介绍各种应用场景、已有工具框架等内容。
当前,基于云的神经网络服务部署逐渐成为主流,在这种情况下,数据和模型由不同方拥有。但是,MLaaS的场景下会产生许多数据隐私问题。举个简单例子来讲,第三方开发了一个深度学习预测模型,对患者的医学数据进行某种疾病的检测。由于法律法规和个人隐私需求的限制,医院无法直接传输明文医学数据给第三方用于模型输入,也不应将检测结果暴露给患者以外的第三方。通过同态加密(HE),医院可以发送加密数据,使得第三方在加密数据上运行模型,而无需透露任何基础信息。
在过去一段时间,这种基于HE的机器学习方法逐渐成为研究重点,另一种技术书安全多方计算(MPC)。HE非常适合使用深度神经网络进行预测的任务。
数据拥有者(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提出。
同态加密的分类
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
在联邦学习中,多方联合训练模型一般需要交换中间结果,如果直接发送明文的结果可能会有隐私泄露风险。在这种场景下,同态加密就可以发挥很重要的作用。多方直接将中间结果用同态加密算法进行加密,然后发送给第三方进行聚合,再将聚合的结果返回给所有参与者,不仅保证了中间结果没有泄露,还完成了训练任务(第三方可以通过优化系统设计去除)。
在联邦学习中,因为只需要对中间结果或模型进行聚合,一般使用的同态加密算法为PHE(多见为加法同态加密算法),例如在FATE中使用的Paillier即为加法同态加密算法。为了更好地展示同态加密在联邦学习中的应用,我们在此展示一个同态加密在联邦学习推荐系统中的应用。
在传统的推荐系统中,用户需要上传浏览记录、评价信息来实现个性化推荐,但是这些信息均属于个人的隐私数据,直接上传会带来很大的安全隐患。在联邦推荐系统中,每个用户将数据保存在本地,只上传特定的模型梯度。这样虽然避免了隐私数据的直接泄露,但是还是透露了梯度信息给云服务器。同时我们发现,从数学上可以证明,使用连续两次更新的梯度即可反推出用户的评分信息。这种情况下,就必须使用同态加密对用户上传的梯度进行保护,即用户在上传梯度前使用加法同态加密算法对梯度信息进行加密,然后云服务器将所有用户的密文梯度进行聚合(相加),再将更新后的模型返还给各个用户解密,完成训练更新。
这个框架目前使用的公私钥加密方案是存在问题的,当server和其中一个client进行共谋时,私钥会泄露。因此后续可以采用私钥秘密分享的方法进行设计。
密态计算中使用的同态加密算法多为LHE和FHE。其实全同态加密研究的初衷,就是为了实现安全的云计算,即对云算力有需求的用户可以将本地的数据全部加密,然后上传到云端,然后云端的服务器即可按照用户指令完成计算,整个过程用户的数据不会泄露给云端,从而完成“绝对安全”的云计算服务。
但是由于目前FHE效率比较低,所以使用全同态加密进行云计算远远没有达到应用的级别。机器学习在云计算中有着广阔的市场,而机器学习有训练和推理两种需求,训练过程一般数据较多、计算量很大,而推理则数据量相对较小、计算量也小,所以目前研究主要集中在密态下的机器学习推理,并且目前已经有速度比较快的方案 (USENIX-18 GAZELLE);而密态下的机器学习训练研究稀少,是一个比较难解决的问题。