一:什么是同态加密(Homomorphic Encryption)
Craig Gentry给出的直观定义:
A way to delegate processing of your data, without giving away access to it.
二:同态加密有什么用处?
- 用户向云服务商付款,得到了处理的结果;
- 云服务商挣到了费用,并在不知道用户数据的前提下正确处理了数据;
但是,这么好的特性肯定会带来一些缺点。同态加密现在最需要解决的问题在于:效率。效率一词包含两个方面,一个是加密数据的处理速度,一个是这个加密方案的数据存储量。
业界如何评价全同态加密的构造?在此引用一个前辈的话:
如果未来真的做出了Practical Fully Homomorphic Encryption,那么Gentry一定可以得到图灵奖。三:同态加密具体如何定义?
我们在云计算应用场景下面进行介绍:
- Alice对数据进行加密。并把加密后的数据发送给Cloud;
- Alice向Cloud提交数据的处理方法,这里用函数f来表示;
- Cloud在函数f下对数据进行处理,并且将处理后的结果发送给Alice;
- Alice对数据进行解密,得到结果。
- KeyGen函数:密钥生成函数。这个函数应该由Alice运行,用于产生加密数据Data所用的密钥Key。当然了,应该还有一些公开常数PP(Public Parameter);
- Encrypt函数:加密函数。这个函数也应该由Alice运行,用Key对用户数据Data进行加密,得到密文CT(Ciphertext);
- Evaluate函数:评估函数。这个函数由Cloud运行,在用户给定的数据处理方法f下,对密文进行操作,使得结果相当于用户用密钥Key对f(Data)进行加密。
- Decrypt函数:解密函数。这个函数由Alice运行,用于得到Cloud处理的结果f(Data)。
- Fully Homomorphic Encryption (FHE):这意味着HE方案支持任意给定的f函数,只要这个f函数可以通过算法描述,用计算机实现。显然,FHE方案是一个非常棒的方案,但是计算开销极大,暂时还无法在实际中使用。
- Somewhat Homomorphic Encryption (SWHE):这意味着HE方案只支持一些特定的f函数。SWHE方案稍弱,但也意味着开销会变得较小,容易实现,现在已经可以在实际中使用。
四:什么叫做安全的HE?
HE方案的最基本安全性是语义安全性(Semantic Security)。直观地说,就是密文(Ciphertext)不泄露明文(Plaintext)中的任意信息。如果用公式表述的话,为:
知乎er一大坨的答案中已经间接提到了,HE方案是不可能做到CCA2安全的。那么,HE方案能不能做到CCA1安全呢?至今还没有CCA1安全的FHE方案,但是在2010年,密码学家们就已经构造出了CCA1的SWHE方案了
五:举个SWHE的例子?

其中r是加密过程中选的一个随机数,g是一个生成元,h是公钥。如果我们有两个密文:
我们把这两个密文的第一部分相乘,第二部分相乘,会得到:
也就是说,m1的密文m2的密文相乘得到的的密文正好是m1m2所对应的密文。这样,用户解密后得到的就是m1m2的结果了。而且注意,整个运算过程只涉及到密文和公钥,运算过程不需要知道m1m2的确切值。所以我们说Elgamal具有乘同态性质。但是很遗憾,其没有加同态性质。
例:加密函数E,明文x,y
内容来自:https://www.zhihu.com/question/27645858
https://baike.baidu.com/item/%E5%90%8C%E6%80%81%E5%8A%A0%E5%AF%86/6380351