一:什么是同態加密(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