一個朋友問我的,我就學習了一下,在此做下筆記。
同態加密
如果我們有一個加密函數$f$,把明文$A$變成密文${A}'$,把明文$B$變成密文${B}'$,也就是說$f(A)={A}'$, $f(B)={B}'$。另外我們還有一個加解密函數$f^{-1}$,能夠將$f$加密后的密文解密成加密前的明文。
對於一般的加密函數,如果我們將${A}'$和${B}'$相加,得到${C}'$。我們用$f^{-1}$對${C}'$進行解密得到的結果一般是毫無意義的亂碼。
但是,如果$f$是個可以進行同態加密的加密函數,我們對${C}'$使用$f^{-1}$進行解密得到結果$C$,這時候的$C=A+B$。
(可見,這個同態與群論里的同態概念是相同的)
同態分類
a) 如果滿足$f(A)+f(B)=f(A+B)$,我們稱這種加密函數為加法同態
b) 如果滿足$f(A) \times f(B) = f(A \times B)$,我們稱這種加密函數為乘法同態
如果一個加密函數同時滿足加法同態和乘法同態,稱為全同態加密。那么使用這個加密函數可完成各種加密后的運算(加減乘除、多項式求值、指數、對數、三角函數)。
全同態的應用
1. 安全代理計算
將數據全同態加密之后傳輸給雲端,在雲端計算(全都是密文),再將計算結果(也是密文)返回給用戶,用戶解密得到真正的結果。
參考資料
參考鏈接:https://baike.baidu.com/item/%E5%85%A8%E5%90%8C%E6%80%81%E5%8A%A0%E5%AF%86/8892160