同態加密是指這樣一種加密函數,對明文進行環上的加法和乘法運算再加密,與加密后對密文進行相應的運算,結果是等價的。
全同態加密是指同時滿足加同態和乘同態性質,可以進行任意多次加和乘運算的加密函數。用數學公式來表達,即Dec(f(En(m1),En(m2),…,En(mk)))=f(m1,m2,…,mk),或寫成:f(En(m1),En(m2),…,En(mk))=En(f(m1,m2,…,mk)),如果f是任意函數,稱為全同態加密。
如果想做更多的計算,怎么辦呢?約減噪音,我想連小孩都會的有的常規想法。路線並不新穎,不知道是否讓你失望了。關鍵是怎么約減?
Gentry觀察到一個現象:如果解密的時候,輸入的不是密文,而是對密文加密后的密文,同樣,不是解密密鑰,而是加密后的密鑰,解密會輸出什么東西呢?
答案:一個新的密文,該新密文依然是對原明文的加密。最重要的是新密文的噪音總是恆定的。
說到這里,你反應過來了么。這意味着每次密文計算后,如果使用同態解密操作,將會輸出一個噪音恆定的新密文,這個新密文可以繼續計算,計算后再同態解密,再計算,周而復始,無窮盡也,所謂任意計算實現了。
把密文再加密,密鑰再加密后,輸入到解密函數中,輸出新的密文,這個方法就是Boostrapping技術,即:同態解密
Gentry構造的加密方案中,解密電路的深度太深,導致無法同態解密。為此,Gentry又發明出一個方法:壓縮電路,將解密電路的復雜度降低,使得可以同態執行解密電路。你說復雜不復雜。
隨后人們遵循Gentry 的思想提出了整數上的,小主理想上的,而且還進行了實現。但是依然很復雜。
然而,2012年有一個人Brakerski將全同態加密推上了頂峰,使之變的簡單了,而且將全同態加密構件建在LWE問題之上。
LWE問題是一個格上的平均性困難問題,可以被歸約到格上標准困難問題。也是抗量子的。目前主流的格上加密方案都是構建在LWE之上。
由於使用Boostrapping實現任意計算代價太高,而且現實中並不太需要任意計算,所以退而求其次,如果能夠執行多項式深度的同態計算,也是能夠滿足大多數需求的。所以隨后的LWE上的全同態加密不使用Boostrapping技術約減噪音,而是使用其它噪音約減技術,使得能夠進行多項式深度的密文計算,代價大大降低了。
總之,目前只有在格上建立的全同態加密方案是安全的。建立的方法就是首先建立一個有限同態加密方案(SWHE),然后使用噪音約減技術,使之成為一個能夠執行多項式深度同態計算的方案,稱之為層次型全同態加密。
全同態加密的效率也是飛速提高,目前執行一次乘法在毫秒級,密文與明文之比約為10^2。微軟去年初在人工神經網絡上執行密文計算,效果是令人滿意的。
全同態加密目前處在工程化研究階段,相信全同態加密很快就會進入實踐。
基於理想格提出一個全同態加密方案
理想格為何物?通俗的說就是一種困難問題,就像大整數難題一樣。
所謂的格(Lattice)就是整系數基的線性組合構成的點,通俗地說就是一個空間中的一些離散有規律的點。既然是離散的點,那么點之間一定有距離,距離產生美,從而產生了一些困難問題,例如:最短向量問題(SVP)。

如果是一個二維平面,那么尋找在格上尋找最短向量問題是簡單的,但是當維數變大的時候,例如200多維,尋找格上的最短向量問題就變的異常困難,稱之為格上標准困難問題,是一個指數級的困難問題。你可以想象一下,當你在迷宮里時(現實世界是3維的),找出口還不算很困難,但是當在一個200多維的迷宮里時,困難程度立刻指數級上升。
最令人感興趣的是,格上標准困難問題至今沒有量子算法可以破解或者撼動它,因此格上標准困難問題被認為是抗量子的。
格上的加密方案最大特征:是一個含有噪音的方案。加密時往里添加噪音,主要是為了進一步提高安全性。然而恰好是這個噪音,導致加密的形式與解密形式比較簡單。這種特性為構造全同態加密埋下了伏筆。