同态加密

 

同态加密(Homomorphic Encryption)是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。

同态加密_第1张图片

早在1978年,Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzos就以银行为应用背景提出了这个概念。其中的Ron Rivest和Leonard Adleman就是著名的RSA算法中的R和A

同态加密_第2张图片

 

与一般加密算法相比,同态加密除了能实现基本的加密操作之外,还能实现密文间的多种计算功能,即先计算后解密可等价于先解密后计算。这个特性对于保护信息的安全具有重要意义,利用同态加密技术可以先对多个密文进行计算之后再解密,不必对每一个密文解密而花费高昂的计算代价;利用同态加密技术可以实现无密钥方对密文的计算,密文计算无须经过密钥方,既可以减少通信代价,又可以转移计算任务,委托第三方对数据进行处理而不泄露信息;利用同态加密技术可以实现让解密方只能获知最后的结果,而无法获得每一个密文的消息,可以提高信息的安全性。

具有同态性质的加密函数是指两个明文a、b满足D(E(a)⊙E(b))=a⊕b的加密函数,其中E是加密运算,D是解密运算,⊙、⊕分别对应明文和密文域上的运算。当⊕代表加法时,称该加密为加同态加密:当⊕代表乘法时,称该加密为乘同态加密。

全同态加密是指同时满足加同态和乘同态性质,可以进行任意多次加和乘运算的加密函数。用数学公式来表达,即D(f(E(m1),E(m2),…,E(mk)))=f(m1,m2,…,mk),或写成:f(E(m1),E(m2),…,En(mk))=E(f(m1,m2,…,mk)),如果f是任意函数,称为全同态加密。

 

此外还有各种同态:

加法同态,如果存在有效算法⊕,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 同时为加法同态、减法同态、乘法同态和除法同态。

实际上我们没有必要支持这么多种运算才能称为全同态,

  • 从计算机原理考虑。计算机无论做何种运算,归根到底都是位运算。那么,计算机至少要支持哪些位运算,才能够支持所有的运算呢?实际上,一个计算机只要支持逻辑与运算(AND),以及异或运算(XOR),那么这个计算机理论上就可以实现计算机的其他运算了(我们称之为图灵完备性,Turing Completeness)

  • 从抽象代数考虑。我们只需要加法和乘法就可以完成全部运算了。但其实更严格的说,只要我们在一个域(Field)上构造HE,理论上我们就可以支持所有的f。

 

即使如此同态加密这一概念提出以来的三十年间一直没有突破,人们退而求其次,就是只能做加法,或者只能做乘法,这种方案称为单同态。例如,RSA就是乘法同态,Paillier就是加法同态。

Elgamal加密方案具有乘同态特性。Elgamal加密方案的密文形式为:

其中r是加密过程中选的一个随机数,g是一个生成元,h是公钥。如果我们有两个密文:

我们把这两个密文的第一部分相乘,第二部分相乘,会得到:

也就是说,相乘以后的密文正好是m1m2所对应的密文。这样,用户解密后得到的就是m1m2的结果了。而且注意,整个运算过程只涉及到密文和公钥,运算过程不需要知道m1m2的确切值。所以我们说Elgamal具有乘同态性质。但是很遗憾,其没有加同态性质。


直到2009年,斯坦福大学的博士生Craig Gentry基于理想格提出一个全同态加密方案。Fully Homomorphic Encryption Using Ideal Lattices. In the 41st ACM Symposium on Theory of Computing (STOC), 2009.

同态加密_第3张图片

 

所谓的格(Lattice)就是整系数基的线性组合构成的点,也就是一个空间中的一些离散有规律的点。离散的点之间的距离产生了一些困难问题,例如:最短向量问题(SVP)。

同态加密_第4张图片

如果是一个二维平面,那么寻找在格上寻找最短向量问题是简单的,但是当维数变大的时候,例如200多维,寻找格上的最短向量问题就变的异常困难,称之为格上标准困难问题,是一个指数级的困难问题。

 

Gentry首次设计出一个真正的全同态加密体制,即可以在不解密的条件下对加密数据进行任何可以在明文上进行的运算,使得对加密信息仍能进行深入和无限的分析,而不会影响其保密性。

 

以下场景来自知乎刘巍然的文章

 

同态加密_第5张图片

Alice通过Cloud,以Homomorphic Encryptio处理数据的整个过程大致是这样的:

 

  1. Alice对数据进行加密。并把加密后的数据发送给Cloud;

  2. Alice向Cloud提交数据的处理方法,这里用函数f来表示;

  3. Cloud在函数f下对数据进行处理,并且将处理后的结果发送给Alice;

  4. Alice对数据进行解密,得到结果。

在此场景中云端无法获知Alice的数据明文。

识别以下二维码关注信息安全club 公众号

同态加密_第6张图片

你可能感兴趣的:(同态加密)