同态加密技术总结
同态加密的概念
同态加密(Homomorphic Encryption)是很久以前密码学界就提出来的一个问题。早在1978年,Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzos就以银行为应用背景提出了这个概念。其中Ron Rivest和Leonard Adleman分别就是著名的RSA算法中的R和A。
同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
第一个构造出全同态加密(Fully Homomorphic Encryption)的Craig Gentry给出的直观定义是:
A way to delegate processing of your data, without giving away access to it.
一种不需要访问数据本身就可以加工数据的方法
同态加密的具体过程
图1.云场景下同态加密过程
以云计算应用场景为例,如图1所示。Alice通过Cloud,以Homomorphic Encryption(以下简称HE)处理数据的整个处理过程大致是这样的:
- Alice对数据进行加密。并把加密后的数据发送给Cloud;
- Alice向Cloud提交数据的处理方法,这里用函数f来表示;
- Cloud在函数f下对数据进行处理,并且将处理后的结果发送给Alice;
- Alice对数据进行解密,得到结果。
据此,我们可以很直观的得到一个HE方案应该拥有的函数:
- KeyGen函数:密钥生成函数。这个函数应该由Alice运行,用于产生加密数据Data所用的密钥Key。同时应该还有一些公开常数PP(Public Parameter);
- Encrypt函数&#