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

您所在的位置:网站首页 同态加密的定义和特点 (二)联邦学习的安全机制

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

2023-07-14 00:08| 来源: 网络整理| 查看: 265

目录一、基于同态加密(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\))-差分隐私定义

其中隐私保护预算\(\epsilon\)用于控制算法M在邻近数据集\(D\)和\(D^{'}\)上获得相同输出的概率比值,\(\epsilon\)值越小,获得相同输出的概率越接近,因此用户无法通过输出结果来区分输入数据来自哪一个数据集,即无法察觉数据集的微小变化,从而达到隐私保护的目的。\(\epsilon\)值越大,隐私保护程度越低。

中心化差分隐私串行组合

中心化差分隐私并行组合

本地化差分隐私

中心化差分隐私是定义在任意两个数据集的输出相似性上的,而本地化差分隐私是定义在本地数据任意两条记录的输出相似性上的。本地化差分隐私也拥有中心化差分隐私的串行组合和并行组合特性。

差分隐私的实现机制

目前实现差分隐私保护的主流方法是添加扰动噪声数据。

中心化差分隐私与本地化差分隐私的实现方法非常不同。中心化差分隐私需要保护全体数据的隐私,有全局敏感性的概念,采用的扰动机制包括高斯噪声机制、拉普拉斯噪声机制、指数噪声机制等。本地化差分隐私没有全局隐私敏感性的概念,采用的扰动机制一般是随机响应。

本节只讨论中心化差分隐私的实现机制。

全局敏感度

要想知道算法函数\(M\)需要添加多少噪声才能提供(\(\epsilon, \delta\))-差分隐私保护,就需要先定义该算法在当前数据上的全局敏感度,可分为\(L_1\)全局敏感度和\(L_2\)全局敏感度。

不管是\(L_1\)还是\(L_2\)敏感度,其结果与提供的数据集无关,只由函数本身决定。 当全局敏感度较大时,说明数据集的细微变化可能导致函数\(M\)的输出有很大不同,因此需要添加较大的噪声数据,才能使函数\(M\)提供\(\epsilon, \delta\)-差分隐私保护。全局敏感度较小时,只需要添加较小的噪声数据。

拉普拉斯机制

高斯机制

指数机制

噪声机制总结

高斯机制和拉普拉斯机制都是面向数值型查询结果的,直接在结果上添加噪声即可。指数机制是面向非数值型的。

机器学习中的差分隐私

在机器学习领域应用差分隐私算法,关键问题是何时、何阶段添加噪声数据。差分隐私算法根据噪声扰动使用方式和使用阶段的不同,可分为以下几类:

输入扰动:噪声数据被加入训练数据。 目标扰动:噪声数据被加入学习算法的目标函数。 算法扰动:噪声数据被加入中间值,例如迭代算法中的梯度。 输出扰动:噪声数据被加入训练后的输出参数。 三、基于安全多方计算(Secure Multi-Party Computation, MPC)的安全机制

MPC是密码学的一个子领域,目的是多个参与方从各自的隐私输入中计算某个函数的结果,而不将这些输入数据展示给其它方。基于MPC,对于任何函数功能需求,都可以在不泄露除输出以外的信息的前提下计算它。

MPC最初用来计算一个安全两方计算问题,即百万富翁问题:两个百万富翁都想比较到底谁更富有,又不想让别人知道自己有多少钱,如何在没有可信第三方的情况下解决这个问题。该问题后来被推广到了多人场景。

当前主要有三种常用的隐私计算框架来实现安全多方计算。即秘密共享、不经意传输、混淆电路。

秘密共享(Secret Sharing,SS)

秘密共享又称密钥共享,指将要共享的秘密在一个用户群体里进行合理分配,以达到由所有成员共同掌管秘密的目的。比如将原始秘密值分成n份交给n各参与方,当且仅当有至少t个秘密值组合在一起时才能重构被共享的秘密。

(t,n)门限秘密共享方案 。

对于数据集合A,有n个用户的集合(1,2,...,n) ,一个(t,n)门限秘密共享方案包括分享和重构两个环节。

分享。借助一个算法M将原始数据m拆分成n个部分(\(s_1, s_2,...,s_n\)),将它们下发给n个用户。 重构。借助一个算法F从n个用户中任意选取t个用户的秘密值,构成一个t元组,这个t元组作为F的输入,能还原原始数据m。更一般地,对于任意m,对于任意的t个用户集合(\(i_1,i_2,...,i_t\))\(\in\)(1,2,...,n),满足: \(P_r\{F(s_{i_1},s_{i_2},...,s_{i_t})==m\}=1\) 这里t被称为门限值。

当前秘密共享方案研究就在于如何高效地构造(t,n)门限秘密共享方案。这些方案包括算术秘密共享、Shamir秘密共享、二进制秘密共享等多种方式。

t=1:这是最简单的形式,只需要给每个用户原始数据m即可。 t=n:较常用的方案是,将原始数据m编码成一个二进制表示s,对于前n-1个用户,任意生成和s长度相等的二进制表示\(s_i\),即第i个用户的秘密值,对于第n个用户,将其秘密值设置为: \(s_n=s XOR s_1 XOR s_2 XOR...XOR s_{n-1}\) 由异或运算的性质,二进制表示与自身异或为0,与0异或为本身,且异或满足结合律。因此将n个用户的秘密值求异或即可重构出原始数据。 t=k:实现形式很多,比如Shamir的基于拉格朗日插值法的实现,Blakley则利用多维空间点的性质建立。这种情况更有用,只要获得一定数量的秘密值才可以获得密钥,且当某些秘密碎片丢失或被毁时仍有可能获得密钥。 不经意传输(Oblivious Transfer, OT)

不经意传输中,发送方拥有一个“消息-索引”对\((M_1,1),(M_2,2),...,(M_N,N)\),在每次传输时,接收方选择一个满足\(1\le i\le N\)的索引i,并接收\(M_i\)。接收方不知道发送方数据库的信息,发送方整个过程中也不知道接收方选择接收的信息。

"n个中取1"不经意传输。 发送方A:有一个输入表(\(x_1,...,x_n\)) 接收方B:从(1,...,n)中选择索引i,意思是B想接收输入中的\(x_i\) 整个过程中A不知道B的选择i,B也不知道A中除了\(x_i\)以外的其它输入。 当n=2时,两个中取1个不经意传输可以执行任何的安全两方计算操作。 混淆电路(Garbled Circuit, GC)

所有可计算问题(函数)都可以转化为各个不同的电路,而电路是由一个个门组成的,如与门、或门、非门、与非门等。 混淆电路可以看成一种基于不经意传输的两方安全计算协议。能够在不依赖第三方的前提下,允许两个互不信任方在各自私有输入上对任何函数进行求值。GC中心思想是将计算电路分解为产生阶段和求值阶段。两个参与方各自负责一个阶段,而在每个阶段中的电路都被加密处理,所以任何一方都不能从其它方获取信息,但可以根据电路获取结果。GC由一个不经意传输协议和一个分组密码组成。电路的复杂度至少是随输入内容大小的增大而线性增长的。GC也被扩展用于多方问题。

四、安全机制性能效率对比

比较三种常见安全机制,同态加密、差分隐私和安全多方计算(以秘密共享策略来讲解)。

计算性能:从计算角度看,计算耗时主要在求梯度上。对于同态加密,计算在密文状态下进行(例如,进行不同参与方梯度融合时在密文状态下进行,防止通过梯度信息反推原始数据导致信息泄露),密文比明文计算耗时更长。差分隐私通过添加噪声数据进行计算,效率与直接明文计算没有区别。秘密共享在明文状态下进行,计算性能不受影响 通信性能:同态加密传输密文,比明文占用比特数更多,传输效率更慢。差分隐私传输带噪声明文数据,跟明文传输几乎没区别。秘密共享会将数据拆分向多方传输,需要多次数据传输才能完成。 安全性:在联邦学习的训练过程中,通过模型参数的交互来进行训练,而不是交换原始数据,但即使只有模型参数或梯度,也能反向破解原始的输入数据。同态加密传输密文数据,安全性最可靠,秘密共享将模型参数数据拆分,只有当恶意客户端超过一定数量且相互串通,才有信息泄露的风险,差分隐私对模型参数添加噪声数据,但添加的噪声会直接影响模型的性能。噪声小时性能损失小,安全性变差;噪声大时性能损失大,但安全性变强。 五、Python安全计算库



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3