所谓的同态加密(HE,homomorphic encryption)是指:对明文m加密,得到密文c,满足f©是f(m)的密文,其中f是任意属于某个函数族F的函数,明文可以是单个明文,也可以是明文向量,对应的为单个密文和密文向量。而对应的函数族F为该方案的同态函数族,即该同态加密方案所支持的能够同态计算的所有函数的集合。比如f(x)=x+2,我们要加密的c为明文m的密文。则f©=c+2,是m+2的密文。
同态函数的简单分类
根据加密方案对支持的函数族的不同,可以将同态加密分为多种。
比较主流的同态方案有加法同态、乘法同态、部分全同态和全同态。
加法同态:该加密方案支持的同态函数族为所有可以仅由加法实现的函数。目前使用比较广泛的是paillier加法同态。
乘法同态:该加密方案支持的同态函数族为所有可以仅由乘法实现的函数。比如经典的RSA加密方案。
部分全同态(partially fully homomorphic encryption, somewhat homomorphic encryption or leveled fully homomorphic encryption):该方案支持的同态函数族为有限次数的加法和有限次乘法能够实现的函数。
全同态:该方案能够支持的同态函数族所有的加法和乘法可以实现的函数。比如BGV、BFV、CKKS。
同态加密一般是非对称加密,当然也有对称加密的同态方案。
下面的描述采用非对称加密,即公钥系统的术语描述。对称加密是公钥和私钥相等的对称加密。
形式化定义
一个完整的同态方案由密钥生成算法,加密算法,解密算法和同态计算算法4部分构成。