(二)联邦学习的安全机制


目录
  • 一、基于同态加密(Homomorphic Encryption, HE)的安全机制
    • 同态加密的定义
    • 同态加密的分类
      • 部分同态加密PHE
      • 些许同态加密SHE
      • 全同态加密FHE
  • 二、基于差分隐私(Differential Privacy, DP)的安全机制
    • 中心化差分隐私
      • 中心化差分隐私的(\(\epsilon,\delta\))-差分隐私定义
      • 中心化差分隐私串行组合
      • 中心化差分隐私并行组合
    • 本地化差分隐私
    • 差分隐私的实现机制
      • 全局敏感度
      • 拉普拉斯机制
      • 高斯机制
      • 指数机制
      • 噪声机制总结
    • 机器学习中的差分隐私
  • 三、基于安全多方计算(Secure Multi-Party Computation, MPC)的安全机制
    • 秘密共享(Secret Sharing,SS)
      • (t,n)门限秘密共享方案 。
    • 不经意传输(Oblivious Transfer, OT)
    • 混淆电路(Garbled Circuit, GC)
  • 四、安全机制性能效率对比
  • 五、Python安全计算库

一、基于同态加密(Homomorphic Encryption, HE)的安全机制

同态加密指的是直接对加密数据进行处理,然后再解密,得到的结果跟直接处理明文的效果相匹配。如下图所示,同态加密处理流程和明文状态处理流程的区别在于数据输入之前的加密和输出之后的解密步骤。

同态加密的定义

一个同态加密方案由一个四元组组成:
H={KeyGen,Enc,Dec,Eval}

  • KeyGen是密钥生成函数。其输入是密钥生成元g。对于非对称同态加密,输出密钥对{pk,sk}=KeyGen(g),pk是用于明文加密的公钥,sk是用于密文解密的私钥。对于对称同态加密,只生成一个密钥sk=KeyGen(g),同时用于明文加密和密文解密。
  • Enc是加密函数。对于非对称加密,其输入是公钥pk和明文m,输出密文\(c=Enc_{pk}(m)\)。对于对称同态加密,使用密钥sk和明文m作为输入,输出密文\(c=Enc_{sk}(m)\)
  • Dec是解密函数。对于非对称和对称同态加密,使用私钥sk和密文c用作输入,输出明文\(m=Dec_{sk}(c)\)。这里的明文一般已经经过计算了,跟输入的明文肯定是不同的。
  • Eval是评估函数。输入密文c和公钥pk,输出与明文对应的密文(输入密文输出还密文,或许应该是输出与密文对应的明文?),用于验证加密算法的正确性。

一个安全密码系统如果满足以下条件,则可称为是同态的:

\(\forall\)\(m_1\),\(m_2\) \(\in\) M, \(Enc_{pk}(m_1 \bigodot_{M} m_2) \leftarrow Enc_{pk}(m_1) \bigodot_{C} Enc_{pk}(m_2)\)

其中\(Enc_{pk}()\)表示使用公钥作为加密密钥的加密函数,M表示明文空间,C表示密文空间。\(\bigodot_{M}\)\(\bigodot_{C}\)分别表示操作符\(\bigodot\)在明文空间M和密文空间C上的运算。上式的意思是,同态密码系统的特点是,先在明文空间上运算再加密,和先解密再在密文空间上运算的结果是一致的。

为简化表述,用[[v]]表示对明文v的同态加密结果,用同一个运算符表示在明文空间和密文空间上的运算符号,比如\(+\)\(\times\)等运算。可以定义加法同态运算和乘法同态运算。

  • 加法同态运算 对于在明文空间M中的任意两个元素u和v,其加密结果是[[u]]和[[v]],满足:
    \(Dec_{sk}([[u]]+[[v]])=Dec_{sk}([[u+v]])=u+v\)
    即不管是先加密再运算,还是直接运算再加密,最后解密出来的结果都与直接运算是相同的。
  • 乘法同态运算 对于在明文空间M中的任意两个元素u和v,其加密结果是[[u]]和[[v]],满足:
    \(Dec_{sk}([[u]]\times[[v]])=Dec_{sk}([[u\times v]])=u\times v\)

同态加密的分类

可分为三类:部分同态加密(Partially Homomorphic Encryption, PHE)、些许同态加密(Somewhat Homomorphic Encryption, SHE)、全同态加密(Fully Homomorphic Encryption, FHE)。

部分同态加密PHE

也称为半同态加密,部分同态加密中(M,\(\bigodot_{M}\))和(C,\(\bigodot_{C}\))都可以构成一个群。
群定义:对于一个集合和一个群乘运算组成的二元组,如果它们满足封闭性、结合律、单位元、逆元,四个条件,则它们构成一个群。
因此,部分同态加密PHE中(M,\(\bigodot_{M}\))和(C,\(\bigodot_{C}\))都满足群的四个条件,以(C,\(\bigodot_{C}\))为例,得:

且操作符\(\bigodot_{C}\)无限次用于密文空间PHE是一种群同态技术。

  • 加法同态。如果明文上的运算符是加法运算符,则该方案称为加法同态的。对应密文上的运算符也是加法运算符。满足加法同态的加密算法一般也满足标量乘法同态,因为标量乘法运算可以转换为有限次加法运算。
  • 乘法同态。明文上运算是乘法运算,则该加密算法被称为乘法同态的,且对应密文上也是乘法运算。典型的乘法同态加密算法典型的如RSA加密算法和ElGamal加密算法。
    部分同态加密PHE的特点是要求其加密操作符运算只需要满足加法同态或者乘法同态中的一个即可,不需要同时满足。

些许同态加密SHE

SHE是指经过同态加密后的密文数据,在其上执行的操作只能是有限的次数。这是因为SHE为了安全性使用了噪声数据,在密文上的每一次操作都会增加密文上的噪声量,乘法操作是增长噪声量的主要手段。但经过多次运算,噪声量会超过上限值,此时解密操作就不能得到正确结果了。

全同态加密FHE

全同态加密算法FHE允许对密文进行无限次的加法和乘法运算操作,加法和乘法运算是完备的,任何函数都可以转换为仅包含加法和乘法的形式。所以理论上FHE能够计算任何函数功能。
FHE算法的设计可以分为四种:

  • Ideal Lattice-based FHE:基于理想格的全同态加密。
  • Approximate-GCD based FHE:该方案安全性基于AGCD假设和稀疏子集和假设。
  • (R)LWE-based FHE:与上边两种方案相比,该方案被称为第二代全同态加密技术。该方案基于(R)LWE构造,通过引入再线性化技术和维数模约减技术实现了乘法的同态加密,提升了效率。
  • 基于近似特征向量技术实现的FHE:前面的加密方案都需要借助计算密钥的辅助来实现全同态加密,但计算密钥的大小制约了全同态加密的性能。例如GSW,无须计算密钥。这是第三代全同态加密方案。

二、基于差分隐私(Differential Privacy, DP)的安全机制

差分隐私采用一种随机机制,使得当输入中单个样本改变之后,输出分布不会有太大变化。如下图所示,对于差别只有一条记录的两个数据集,查询它们获得相同的输出的概率非常接近,这样用户及时获取了输出结果,也无法通过结果推测输入数据来自哪一方。

差分隐私提供了一种信息理论安全性保障,即函数的输出结果对数据集里的任何特定记录都不敏感。因此差分隐私能被用于抵抗成员推理攻击。按照数据收集方式的不同,可以分为中心化差分隐私和本地化差分隐私。中心化差分隐私是各参与方把本地数据发送给可信第三方,由可信第三方进行差分隐私处理。本地化差分隐私则是各参与方分别进行差分隐私处理,然后将扰动数据发送给第三方,第三方不要求是可信的。

中心化差分隐私

中心化差分隐私的(\(\epsilon,\delta\))-差分隐私定义