全同态加密

一个朋友问我的,我就学习了一下,在此做下笔记。

同态加密

如果我们有一个加密函数$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. 安全代理计算

将数据全同态加密之后传输给云端,在云端计算(全都是密文),再将计算结果(也是密文)返回给用户,用户解密得到真正的结果。

参考资料

用C++ NTL实现的全同态加密及相关论文

 

 

参考链接:https://baike.baidu.com/item/%E5%85%A8%E5%90%8C%E6%80%81%E5%8A%A0%E5%AF%86/8892160

 

posted @ 2020-07-31 16:49  Rogn  阅读(1112)  评论(0编辑  收藏  举报