
差分隐私因其理论背景清晰和算法简单等优点,在隐私保护中备受欢迎。
不过,差分隐私主要抵抗推理过程中的模型推理攻击,防止模型结果在某个用户的数据上出现过拟合的现象,从而避免该用户数据被恶意敌手进行分析,但在传输过程中使用的数据还是明文状态的数据,尽管增加了扰动,但数据还是对多方可见的。
如果仅仅使用差分隐私对训练数据或者训练过程中的梯度进行处理后直接进行传输,那么极有可能对数据隐私造成影响,这有可能带来合规性风险。
这也是差分隐私仅仅在横向联邦学习中广泛使用的原因,因为横向联邦学习只传输模型训练的结果,从训练结果中窥探训练数据的模型推理攻击方式则可以通过差分隐私避免,而纵向联邦学习会传输每次迭代的梯度,通过在明文状态下的梯度可以计算出训练数据的某些准确值(如标签)。
所以,差分隐私在某些场景(如纵向联邦学习)中的使用非常受限,如果想对数据隐私进行保护,那么需要使用密码学方法。
密码学作为一门古老的学科,已经有数百年的发展。在最早期,古典密码只是一种用于私密消息传输的简单手段。
随着人们对隐私保护的需求增加,密码学逐渐发展成了一门系统的科学,并在金融和军事等多个方面影响着社会的发展和人类的生活。
1976年,Diffie提出了公钥密码学的概念,将密码学的研究和应用带入了一个新阶段。 公钥密码学为加密通信提供了众多的功能,比如数字签名技术、密钥交换技术以及与云计算场景契合的同态加密等。 其中,同态加密在多方协同训练的机器学习中得到了广泛应用,尤其是半同态加密,已经在多种场景的实际应用中表现出了实用性。 |
一、密码学简介
在介绍同态加密之前,我们先简单了解一些密码学中的专业术语和密码学的基本概念,这有助于我们理解联邦学习中隐私保护的原理、困难点以及同态加密算法的优势。
密码学研究为公开信道上的安全通信提供了众多解决方案,其主要思想是将机密消息从明文状态加密得到其密文形式,使得消息在公开的信道上进行传输时不会泄露明文的信息。
密码学分为对称密码学和公钥密码学两条分支:
其中在对称密码学中,加密过程和解密过程使用同一把密钥,因此加密方和解密方如何在不安全的公开信道上共享密钥便成了一个难题。
公钥密码学的提出解决了这个问题。在公钥密码学中,加密方在对消息进行加密时,使用的是解密方的公钥(公钥是公开的),解密方在收到密文之后,使用自己的私钥进行解密。
但是由于公钥密码学的密钥尺寸和加密效率问题,相比之下,对称密码算法在实际应用中的性能表现更好。
因此,公钥密码算法就被赋予除了加密之外的使命——为对称密码算法的密钥传输提供保护。
如果使用密钥封装算法,将对称密码算法的密钥作为消息进行加密后传输给另一方,那么另一方在得到密文后通过私钥进行解密,便在公开信道上实现了密钥的共享,从而解决了对称密码算法中共享密钥的难题。
二、同态加密算法的优势
同态加密算法是一种具有特殊性质的加密算法,其特殊性质主要表现在对密文的可操作性上。
具体来说,使用同一个同态加密算法得到的两个密文,可以在不解密的情况下,进行加法或乘法的操作,其结果与直接在明文状态下进行加法或乘法之后再进行加密的结果是相同的。(密文运算)
同态加密算法这个特殊的性质可以保证在云计算场景中的客户端放心地使用云服务器的计算能力,同时还能保证自己的敏感数据不会泄露。
另外,由于近些年来机器学习在工业界的大量应用,引起了众多领域对数据隐私的密切关注。
其中,很多领域(如金融、医疗等)既希望共享数据以提高机器学习的效果,又要求敏感数据不能泄露。
如果使用传统的加密算法(如AES)直接将敏感数据加密后发送给合作的业务方,那么在失去了统计特征的密文上,机器学习将无法有效地学习,而同态加密算法很好地解决了这个问题。
事实上,已有众多相关研究采用同态加密算法有效地实现了多方进行敏感数据分析的合作,包括在避免泄露用户信息的条件下训练模型和推理。
更具体地说,同态加密又可分为:
半同态加密(Partial HomomorphicEncryption,PHE)和全同态加密(Full Homomorphic Encryption,FHE)。
半同态是指只能在一种运算上(加法或乘法)保持同态性质,但在另一种运算上则不满足该性质。
换言之,半同态就是指加法同态或者乘法同态。
所谓全同态则是指在加法和乘法两种运算上均满足同态性质。
全同态加密目前已经成为密码学的一个独立的研究领域,获得了学术界和业界众多专家学者的关注。
但是由于全同态加密的效率问题,目前在联邦学习中使用较多的还是半同态加密。
三、全同态加密算法
半同态加密算法仅支持密文上的某一种运算,但机器学习场景的计算过程是相当复杂的,比如某些非线性的激活函数。
如果想在数据的密文状态上完成非线性激活函数的运算,那么半同态加密算法无法保证计算结果的正确性,因此便产生了对全同态加密算法的需求。
全同态加密算法是指在不解密的情况下,可以进行任意次的加法和乘法操作,同时保证在解密后与明文做相同操作的结果是相等的。
从理论上讲,能够进行任意次的加法和乘法操作,便意味着可以使用电路等方法实现其他任意复杂的运算。
但由于这个过于理想的属性,从半同态加密算法到全同态加密算法的发展道路不是一帆风顺的,其间密码学专家和学者做了多种尝试,直到2009年才由Gentry构造出了第一个全同态密码算法。
但该算法复杂的电路实现导致加密时的噪声扩张速度过快,从而影响了解密的正确性。
后来,Gentry和Halevi对算法中的自举技术等方面进行了改进,从理论上解决了解密错误的问题,但由于自举技术的实现过程十分复杂,且十分耗时,因此并不能对密文进行任意次的操作,这导致全同态加密算法的实用性受到了影响。
因此,目前同态加密的实际应用依然以半同态加密为主。
四、半同态加密算法在联邦学习中的应用
半同态加密算法在机器学习领域的应用已经相对成熟,为密码算法在实际应用中出现的不兼容性提供了众多解决方法。
首先,看一下密码算法在实际场景中的直接应用会导致哪些不兼容的问题。
密码学是一门基于数论的科学,密码算法的设计一般都在某个特殊的代数结构上进行(比如有限域),也就是说,明文空间和密文空间中的元素都是“整数”,不存在小数。
第一个不兼容性出现在数字类型上。
机器学习中的数据大多存在小数,如果想使用密码算法进行加密,那么必须先将小数编码至整数。
常用的编码方案就是所有数同乘一个大整数(如10n),使得有效位均在小数点之前。
第一个不兼容性很容易理解和解决,虽然编码操作会导致某些小数点后位数较多的数据产生误差,但是只要保证使用的系数足够大,便可将该误差控制在可以接受的范围内。
第二个不兼容性仍然来自代数结构。
在密码学中,在代数结构中的运算都带有模操作,但在实际场景中对模操作的需求则比较少,密码算法的直接应用引入的模操作会导致解密错误。
因此,需要对密码算法的参数进行设置,以保证模数N足够大,使得明文以及明文的运算结果始终小于N,从而保证在实际应用中不会出现因模操作导致的解密错误。
具体来讲,我们无须保证所有中间结果均小于N,只需保证输入的明文以及待解密的运算结果小于N即可。

举个例子,假如某加法同态加密算法的明文空间为ZN,我们在使用该算法进行加密时,必须保证所有的明文均为[0,N-1]中的整数。 如上图:明文m1和m2,另外,我们希望得到的计算结果m3也应在该范围内,否则得到的结果可能是m3-N。 |
由于全同态加密算法实用性的限制,在联邦学习中,主要使用半同态加密算法实现对联邦其他参与方私有数据的操作。
半同态加密技术主要应用在纵向联邦学习中。
在纵向联邦学习中,不同的参与方有不同的特征,为了实现协同训练,在训练过程中,不同的参与方之间需要传输中间结果以聚合所有特征的效果,但这些中间结果往往会被恶意的联邦成员用来推理分析用户的隐私数据。
为了避免隐私的泄露,联邦学习使用半同态加密算法对中间值进行处理,只传输中间结果的密文。
得益于半同态加密算法的性质,隐私不仅得到了保护,其他参与方仍然能通过中间结果的密文值完成协议内容。
在横向联邦学习中,同态加密的应用较少,而核心技术一般为差分隐私或者安全多方计算。
同态加密算法作为一种辅助技术,对差分隐私的噪声进行加密,而算法的隐私保护更多的是由差分隐私本身和安全多方计算完成的。


