全同态加密和半同态加密的区别

信息安全 加密 同态加密
2021-08-27 10:54:24

全同态加密和半同态加密有什么区别?

3个回答

如果您对更数学的定义感到满意:

全同态加密保留了环结构。

这意味着我们有一个环 (R,+,*),其中 R 是我们操作的位,(R,+) 是一个阿贝尔群,而 (R,*) 是一个幺半群通过位的加法和乘法,可以创建与非门。如果您有 NAND 门,您可以导出所有其他布尔门,因此能够对加密数据进行所有计算。

另一方面,半同态加密仅支持一个操作,因此您无法创建与非门,这意味着您无法对加密数据进行所有计算。

简而言之,“同态加密方案”意味着您能够对加密消息应用操作,并在消息被解密后查看这些操作的结果。

通常,这些操作与算术相关(众所周知,这是图灵完备的,意味着您可以在其中编码任何程序)。

由于算术运算符是“加法”和“乘法”(减法和除法是这些运算符的对偶)。完全同态加密方案能够对加密消息执行加法和乘法(现代的也可以使用异或和许多其他操作)

半同态加密方案”仅支持两个运算符之一。例如,RSA 加密方案对于乘法是同态的(但显然不是对于加法)。

通常当您谈论“半同态加密”时,它可能意味着两件事:

  • 您不支持完全同态加密的所有操作(例如加法但不支持乘法),因为您的用例只需要它们的子集,这将降低同态加密的(巨大)开销。

  • 您的系统具有同态行为,但由于添加到数据中的污点/噪声,您操作某些数据的次数越多,它们的安全性就越低(即,您必须增加密码大小以进行补偿,或者您将不得不丢弃给定数量的操作后的数据,因为它们不再被视为“安全”)

没有更多的上下文,很难说出你在问哪一个。