⑴ 隐私保护技术 同态加密
安全多方计算
同态加密
差分隐私
同态加密逐渐被认为是在 PPML 中实现安全多方计算的一种可行方法。
设 表示使用 作为加密密钥的加密函数。设 表示明文空间, 且 表示密文空间。一个安全密码系统若满足以下条件,则可被称为同态的(homomorphic):
对于 中的运算符 和 中的运算符 , 符号表示左边项等于或可以直接由右边项计算出来,而不需要任何中间解密。在本书中,我们将同态加密运算符设为 ,并且对密文的加法操作和乘法操作按如下方式重载:
加法:
标量乘法:
同态加密方法分为三类:部分同态加密 (Partially Homomorphic Encryption, PHE),些许同态加密 (Somewhat Homomorphic Encryption, SHE) 和全同态加密 (Fully Homomorphic Encryption, FHE)。
//待补充
⑵ 同态加密的实现原理是什么在实际中有何应用
同态加密是一种加密形式,它允许人们对密文进渗轮衡行特定的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。换言之,这项技术令人们可以在加密的数据中进行诸如检索、比较等操作,得出正确的结果,而在整个处理过程中无需对数据进行解密。其意义在于,真正从根本上解决将数据及其操作委托给第三方时的保密问题,例如对于各种云计算的应用。
这一直是密码学领域的一个重要课题,以往人们只找到一些部分实现这种操作的方法。而2009年9月桐族克雷格·金特里(Craig Gentry)的论文 从数学上提出了“全同态加密”的可行方法,即可以在不解密的条件下对加密数据进行任何可以在明文上进行的运算,使这项技术取得了决定性的丛做突破。人们正在此基础上研究更完善的实用技术,这对信息技术产业具有重大价值。
⑶ 同态加密的同态加密的相关概念
同态加密的思想起源于私密同态,代数同态和算术同态是私密同态的子集。
R 和 S 是域,称加密函数 E:R→S 为:
加法同态,如果存在有效算法⊕,E(x+y)=E(x)⊕E(y)或者 x+y=D(E(x)⊕E(y))成立,
并且不泄漏 x 和 y。
乘法同态,如果存在有效算法 ,E(x×y)=E(x) E(y)或者 xy=D(E(x) E(y))成立,
并且不泄漏 x 和 y。
混合乘法同态,如果存在有效算法 ,E(x×y)=E(x) y 或者 xy=D(E(x) y)成立,并
且不泄漏 x。
减法同态,如果存在有效算法○- ,E(x-y)=E(x)○- E(y)或者 x-y=D(E(x)○- E(y))成立,
并且不泄漏 x 和 y,则称 E 为减法同态。
除法同态,如果存在有效算法○/ ,E(x/y)=E(x)○/ E(y)或者 x/y=D(E(x)○/ E(y))成立,
并且不泄漏 x 和 y,则称 E 为减法同态。
代数同态,如果 E 既是加法同态又是乘法同态。
算术同态,如果 E 同时为加法同态、减法同态、乘法同态和除法同态。
⑷ 同态加密简介
同态加密是数据加密方式的一种,特点是允许数据在加密情况下实现数学或逻辑运算。
同态加密通常为非对称性加密。因此在介绍同态加密之前,简单介绍一下非对称性加密。非对称性加密分为三个步骤:
1. 生成一对钥匙,一个公钥pub和一个密钥priv;
2. 使用公钥pub加密原始数据,得到加密数据,公式:pub(原始数据)= 加密数据 ;
3. 使用密钥priv解密加密数据,得到原始数据,公式:priv( 加密数据 )= 原始数据 ;
同态加密允许对 加密数据 进行处理,得到的解密结果等价于在原始数据下做运算。以联邦学习用到的Paillier算法举例,假设我有两个数 和 ,我希望把它们扔给第三方做加法运算,即 + 。同时不希望第三方知道 、 及它们之和的具体值,同态加密可以派上用场,具体步骤如下:
1. (本地)生成一对钥匙,公钥pub和密钥priv,公钥用于加密,密钥用于解密;
2. (本地)使用公钥pub分别加密 和 ,得到 ( )和 ( );
3. (第三方)使用 函数处理 和 ,即 ;
4. (本地)使用密钥priv解密 ,即 ;
4中 = + 。第三方通过上述步骤3实现了 和 在加密状态下做加法的操作。
为了更直观认识上述步骤,假设 =100, =200,步骤就变成:
1. (本地)生成一对钥匙,公钥pub和密钥priv,公钥用于加密,密钥用于解密;
2. (本地)使用公钥pub分别加密 和 ,得到 =1234, =4321 (举例);
3.(第三方) 使用 函数处理 和 ,即 =12345678;
4. (本地)使用解密priv解密 ,得到 = 300。
第三方在不知道 =100和 =200,但是通过 函数依然可以在加密情况下实现相加运算。
⑸ 隐私计算-密码学-同态加密
近年来,随着大数据与人工智能的盛行,针对个人的个性化的推荐技术的不断发展,人们在享受便利的同时,也深深的感觉到无处不在的监控与监事,比如刚刚浏览了一个网站的商品,当去其他网站访问的时候就会推荐类似的产品;刚刚搜索了某件商品,在很多其他的场景中都会给你推荐。这种体验,谈不上不好,也谈不上多坏,但是如果仔细想想,就感觉自己的网上进行裸奔,个人隐私,一清二楚,毫无隐私可言,细思极恐。
不过随着广大用户对于个人隐私的重视程度不断加强,以及法律法规的不断完善,针对个人隐私的保护提出了更高的要求,什么样的数据可以采集、收集与使用,如何使用都是一个比较敏感的问题。十三届全国人大常委会第三十次会议表决通过了《 中华人民共和国个人信息保护法 》,并与2021年11月1日起施行。确立个人信息保护原则、规范处理活动保障权益、禁止“大数据杀熟”规范自动化决策、严格保护敏感个人信息、赋予个人充分权利等。新规施行后,违法的主体将 最高可处五千万以下或者上一年度营业额百分之五 以下的罚款。
鉴于上述情况,近年来隐私计算技术被不断的提及,源于其有优秀的数据保护作用,使得 “数据不出域、数据可用不可见、数据可算不可见” ,限定了数据的使用场景,防止了数据的泄露,而引起了业界的热捧。
隐私计算技术的演进历程如下图描述,以下是杨强教授在KDD 2021中国区的分享材料:
可以看到,隐私计算技术从1979年就开始了,最开始是安全多方计算、到差分隐私、到TEE, 再到最近火的不能再火的联邦学习 ,一系列的技术应运而生。那为啥现在隐私计算这么火呢。
注:隐私计算技术成熟度曲线
但是这些技术本身的安全加密都是采用共同的方法与策略,下面讲述下隐私计算的加密技术。
本文主要介绍同态加密,
众所周知,优秀的程序员需要 严谨的逻辑思维与具象能力 ,当然在材料的时候,可能需要适当的渲染。但是对于技术的理解,对技术的探索,严谨的逻辑与坚实的推理是非常重要的。所以,对于“数据加密”这个命题,需要进行一番探索。
如此三态合一,即可保障数据的全链路的生命周期安全 。
那么有没有办法解决数据计算的安全问题呢?答案就是 同态加密技术 。保障数据的运行态的安全,那么同态加密技术具体是如何实现,如何应用,并且有哪些限制呢?
什么是同态加密? ,引用Gentry大佬的原话:
同态加密(Homomorphic Encryption, HE),指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行某些特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算, 实现数据的“可算不可见” 。同态加密的实现效果如图所示。
举个例子: 国内某家大型的三甲医院,由于历史悠久,并且医术精湛,历史遗留了大量的用户病例数据 。如今思考基于这些病例数据进行建模分析。但是由于数据量特别巨大,医院本身的IT资源有限,计算能力不足。
这个时候,云厂商找了过来。但是对于医院来说,这些数据本身是用户的隐私信息,并且也是医院的核心价值,所以尽管云厂商再三保证数据安全, 但是医院还是不能够放心的将数据上传到云厂商进行计算 。
正当这个事情推进不下去的时候,云厂商从密码行业花大价钱招来某个大牛,大牛提出一个方案,这样吧,我们现在有 这样一门技术,不需要传输明文数据,只需要传输密文就好,而且加密秘钥由医院自己保存,我们基于上传的密文数据做不解密的密态运算( 并计算函数医院提供就好),这样数据不会泄露,云厂商对数据无感知,之后传回密文结果,医院自己解密就好 。医院一听非常高兴,那就这么办吧。
下面将核心流程描述下。
这里,大家可能有个问题,这个f应该是什么样的函数,有什么样的限制条件?HE方案是支持任意的数据处理方法f,还是说只支持满足一定条件的f呢?根据f的限制条件不同,HE方案实际上分为了两类:
Paillier加密算法是Pascal paillier[1]在1999年发明的概率公钥加密算法,该算法 基于复合剩余类的困难问题,是一种满足加法的同态加密算法 ,已经广泛应用在加密信号处理或第三方数据处理领域。
前面我们分析过 同态加密的核心流程 ,大家可以一起回忆一下。核心的函数包括:秘钥生成、明文加密、密文解密,下面我们来一步一步的分析,并且描述下,
秘钥的生成主要有如下的步骤,
下面介绍一个完整的同态运算,m由 组成,介绍下同态加密的是如何使用密文计算的。
⑹ 全同态加密和部分同态的加密有什么区别
区别:
1、部分同态既能做乘法又能做加法,但是不能同态计算任意的函数;全同态加密可以对密文进行无限次数的任意同态操作,也就是说它可以同态计算任意的函数。
2、部分同态加密能做的事情,全同态加密也能做;但是全同态加密一般计算开销比较大,所以部分同态加密方案够用的时候没必要选用全同态加密;
3、设计出全同态加密的协议是比设计部分同态加密的算法要难的。
同态加密规定
如果有一个加密函数f,把明文A变成密文A’,把明文B变成密文B’,也就是说f(A)=A’,f(B)=B’。另外还有一个解密函数,能够将f加密后的密文解密成加密前的明文。
对于一般的加密函数,如果我们将A’和B’相加,得到C’。我们用对C’进行解密得到的结果一般是毫无意义的乱码。
但是,如果f是个可以进行同态加密的加密函数, 我们对C’使用进行解密得到结果C, 这时候的C = A + B。这样,数据处理权与数据所有权可以分离,这样企业可以防止自身数据泄露的同时,利用云服务的算力。
⑺ Paillier同态加密算法
Paillier加密是一种公钥加密算法,基于复合剩余类的困难问题。其满足于加法同态,即密文相乘等于明文相加,即:
密钥生成
快速生成私钥
在密钥相同的情况下,可以快速生成密钥:
, 为欧拉函数,即
加密
解密
加法同态
Paillier加密的两个密文消息相乘的结果解密后得到两个消息相加的结果。
对于两个密文 和
其中 和 都是 中的元素,因此 也属于 , 并具有相同的性质,所以 可以看作是 加密的密文, 的解密结果为 。
总结
常见的同态加密算法中,Paillier算法和Benaloh算法仅满足加法同态,RSA算法和ElGamal算法只满足乘法同态,而Gentry算法则是全同态的。
https://en.wikipedia.org/wiki/Paillier_cryptosystem
https://blog.csdn.net/sinianluoye/article/details/82855059
http://www.cs.tau.ac.il/~fiat/crypt07/papers/Pai99pai.pdf