同態加密理論首次在1978年提出,是一種能保護數據隱私的加密算法。
1.什麼是同態加密算法?
-
如果有一個加密函數 f , 把明文A變成密文A’, 把明文B變成密文B’,也就是說f(A) = A’ ,f(B) = B’ 。另外還有一個解密函數,能夠將 f 加密後的密文解密成加密前的明文。
-
對於一般的加密函數,如果我們將A’和B’相加,得到C’。對C’進行解密得到的結果一般是毫無意義的亂碼。
-
但是,如果 f 是個可以進行同態加密的加密函數, 對C’使用解密函數進行解密得到結果C, 這時候的C = A + B。
作用:這樣,數據處理權與數據所有權可以分離,這樣企業可以防止自身數據泄露的同時,利用雲服務的算力。
2.同態加密算法的分類
(1)如果滿足 f(A)+f(B)=f(A+B), 將這種加密函數叫做加法同態。
(2)如果滿足 f(A)×f(B)=f(A×B), 將這種加密函數叫做乘法同態。
如果一個加密函數f只滿足加法同態,就只能進行加減法運算;
如果一個加密函數f只滿足乘法同態,就只能進行乘除法運算;
3、全同態加密算法
如果一個算法能滿足:
1)加法同態
2)乘法同態
那麼,稱之爲全同態算法。
也就是說,如果一個加密函數同時滿足加法同態和乘法同態,稱爲全同態加密。
加法同態加密是針對數值的一種非對稱加密
-
傳統區塊鏈上,用戶的賬戶餘額沒有經過加密直接存儲在區塊上,導致用戶的賬戶完全暴露在所有節點上,同時,用戶在發起交易時,交易信息中的交易金額也是完全公開的,區塊鏈上的驗證節點會對用戶的賬戶餘額和交易金額進行數學判斷,從而驗證交易的合法性。這種方式在實現了區塊鏈去中心化、信息不可篡改的基本功能外,用戶的賬戶隱私完暴露在區塊鏈的所有節點上。
-
對區塊鏈上金額數值進行加法同態加密,驗證節點在不需要知道交易金額的具體數值或者其他任何隱藏信息的情況下,可以對密文進行正確的加法操作,這樣區塊鏈上所有的用戶餘額和交易金額都以同態密文的形式存在,除了擁有私鑰的可信第三方機構外,所有節點都只能驗證交易而無法得知具體數值,這將有效的保護用戶的賬戶隱私。
同態加密相關論文:Full Homomorphic Encryption Using Ideal Lattices——Craig Gentry