本文的隐私保护技术,包括三种方法。
- 安全多方计算
- 同态加密
- 差分隐私
1.安全多方计算
安全多方计算最初是针对一个安全两方计算问题,即所谓的“百万富翁问题”被提出的,并于1982年有姚期智提出和推广。
安全多方计算允许我们计算私有输入值的函数,从而使每一方只能得到其相应的函数输出值,而不能得到其他方的输入值与输出值。
安全多方计算能够通过三种不同的框架来实现:
- 不经意传输(Oblivious Transfer,OT)
- 秘密共享(Secret Sharing,SS)
- 阈值同态加密(Threshold Homomorphic Encryption, THE)
(1) 不经意传输
在不经意传输中,发送方拥有一个“消息-索引”对。在每次传输时,接收方选择一个满足的索引 ,并接收。接收方不能得知光宇数据库的任何其他信息,发送方也不能了解光宇接收方选择的任何信息。
(2)秘密共享
秘密共享是通过将秘密值分割为随机多份,并将这些份分发给不同方隐藏秘密值的一种概念。因此,每一方只能拥有一个通过共享得到的值,即秘密值的一部分。根据具体的使用场合,需要所有或一定数量的共享数值来重新构造原始的秘密值。
秘密共享主要包括算术秘密共享、Shamir秘密共享 和 二进制秘密共享等方式。
(3)安全多方计算在PPML中的应用
大多数基于安全多方计算的PPML方法利用两阶段架构,包括离线阶段和在线阶段。大多数密码操作都在离线阶段执行,在离线阶段生成乘法三元组。之后,于在线阶段使用在线阶段生成的乘法三元组对机器学习模型进行训练。
2.同态加密
同态加密逐渐被认为是在PPML中实现安全多方计算的一种可行行为,是一种不需要对密文进行解密的密文计算解决方案。
同态加密方法是一种通过对相关密文进行有效操作(不需获知解密密钥),从而允许在加密内容上进行特定代数运算的加密方法。一个同态加密方法由一个四元组组成:
,
式中,KeyGen表示密钥生成函数。对于非对称同态加密,一个密钥生成元g被输入KeyGen,并输出一个密钥对,其中pk表示用于明文加密的公钥,sk表示用于揭秘的密钥。对于对称同态加密,只生成一个密钥。
Enc表示加密函数。对于非对称同态加密,一个加密函数以公钥pk和明文m作为输入,并产生一个密文作为输出。对于对称同态加密,加密过程会使用公共密钥sk和明文m作为输入,并生成密文。
Dec表示解密函数。对于非对称同态加密和对称同态加密,隐私密钥sk和密文c被用来作为生成相关明文的输入。
Eval表示评估函数。评估函数Eval将密文c和公共密钥pk(对于非对称同态加密)作为输入,并输出与明文对应的密文。
同态加密的分类。同态加密主要分为三类:
- 部分同态加密(PHE)。对于部分同态加密方法,和都是群。操作符能够无限次地用于密文。PHE是一种群同态技术,特别地,若是加法运算发,则该方案可被称为加法同态。
- 些许同态加密(SHE)。些许同态加密方法指一同态加密方法中地一些运算操作(如加法和乘法)只能执行有限次。SHE方法为了安全性,使用噪声数据。每一次在密文上地操作会增加密文地噪声量,而乘法操作是增加噪声量地主要技术手段。当噪声量超过一个上限值后,解密操作就不能得出正确结果了。这就是为什么大多数地SHE方法会要求限制计算操作的次数。
- 全同态加密(FHE)。全同态加密方法允许对密文进行无限次的加法运算和乘法运算操作。没有FHE能够被证明在任何功能下都是安全的,并且FHE具有针对不可区分的选择密文攻击的安全性。
3. 差分隐私
差分隐私最开始被开发出来用来促进在敏感数据上的安全分析。差分隐私的中心思想是,当敌手从数据库中查询个体信息时将其混淆,使得敌手无法从查询结果中辨别个体级别的敏感性。差分隐私提供了一种信息理论安全保障,即函数的输出结果对数据集中的任何特定记录都不敏感。因此,差分隐私都被用于抵抗成员推理攻击。
定义:差分隐私。对于只有一个记录不同的数据集和,一个随机化机制可保护差分隐私,并且对于所有的有:
式中,表示隐私预算;表示失败概率。
的值被称为隐私损失,其中ln表示自然对数运算。当时,便得到了性能更好的差分隐私。
差分隐私方法分类。主要有两种方法通过给数据加上噪声实现差分隐私。一种是根据函数的敏感性增加噪声;一种是根据离散值的指数分布选择噪声。
实值函数的敏感性可以表示为由于添加或删除单个样本,函数值可能发生变化的最大程度。
差分隐私算法可根据噪声扰动使用的方式和位置来进行分类:
- 输入扰动:噪声被加入训练模型。
- 目标扰动:噪声被加入学习算法的目标函数。
- 算法扰动:噪声被加入中间值,例如迭代算法中的梯度。
- 输出扰动:噪声被加入训练后的输出参数。