在纵向联邦学习中,参与建模的各方首先需要对齐样本,这也是联合建模的前提。由于各数据方用来对齐的字段几乎都是身份识别信息,所以如何避免个人信息的泄露,是实现隐私保护的关键。
实践中常见的方式有两类:基于哈希函数的普通对齐方式和基于非对称加密算法的隐私保护对齐方式。
在应用实践中,最常用的方式是基于哈希(Hash)函数的对齐方式。由于哈希函数本身具有单向性、不可逆性,因此用于对齐的身份识别信息经过哈希运算后是很难反向推出原始信息的。在实践中,双方首先按约定的方式,对身份识别信息进行哈希运算,然后将相应的结果发给对方,与己方结果进行对比,得到对齐结果。双方进行哈希运算后对齐的身份识别信息如图2-2-1所示。
图2-2-1 双方进行哈希运算后对齐的身份识别信息
因为对齐的双方事实上是知道对齐的身份识别信息内容形式和哈希函数的,所以一方在拿到对方的哈希运算结果后,可以使用查表等暴力破解方式,对未对齐样本的信息进行破解,从而得到不属于自己的对方的样本身份识别信息。
加盐是一种常用的密码保护机制。具体实现过程如下:每一个样本生成一个随机字符串,进行哈希运算后,拼接在身份识别信息字段的哈希运算结果前或者后,然后再对此结果进行哈希运算。加盐主要用在密码和证书的验证等有标识信息的场合,需要有标识信息配合,如用户名,以便查找“盐”的信息。在样本对齐场景中,这种保护机制并不适用。
一种可行的解决方式是增加共同信任的第三方。对齐双方按事先设定的方式,将序号和身份识别信息的哈希运算结果发给第三方。第三方不知道需要对齐的双方用来对齐的身份识别信息形式和使用的具体加密方式,只负责匹配结果并分别返回双方序号对应的结果。
非对称加密算法是现在计算机通信安全的基石。加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。这种加密算法被称为“非对称加密算法”。一般过程如下:
● 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
● 甲方获取乙方的公钥,然后用它对信息加密。
● 乙方得到加密后的信息,用私钥解密。
如果公钥加密的信息只有私钥解得开,那么只要私钥不泄露,通信就是安全的。
Rivest、Shamir和Adleman设计了RSA公钥加密算法,其可以实现非对称加密。RSA公钥加密算法是使用得最广泛的“非对称加密算法”,其基本原理、安全性证明和加/解密过程的介绍请参看附录1。通过非对称加密算法和哈希函数算法的组合,可以设计更加安全的样本对齐方法,从而避免采用普通对齐方式时被暴力破解。这里以RSA公钥加密算法和哈希函数算法的组合为例,介绍相应的样本对齐方法,如图2-2-2所示。
图2-2-2 基于RSA公钥加密算法的样本对齐方法
本算法的有效性和隐私保护的安全性都基于RSA公钥加密算法的原理。在RSA公钥加密算法安全性的基础上,可以严格保证结果的隐私安全。A和B双方都只知道自己和对方相同样本的信息,对对方独有的样本,没有有效的手段可以得到原始字段信息。在本算法中,关键步骤是A方在进行哈希运算后对本方结果用仅有自己知道的随机数保护,B方对本方已进行哈希运算的信息利用密钥加密后,再进行哈希运算,从而利用密钥和哈希运算保护本方信息不能被暴力破解。