问题来自同态加密,有一个地方说同态加密只要保加法和保乘法就行了,因为(标题),那么为什么呢?


线性空间中,加法和乘法是人们定义的两种封闭运算


看到有两个答案说泰勒展开。这里提醒一下,不光滑的函数没有泰勒展开。

同态加密考虑保持加法和乘法是为了能够对电路(circuit)求值。

举个例子,如下所示,与、或、非门可以建模成有限域上的多项式。更复杂的(布尔)函数由门电路组合而成,也是多项式。在保持加法和乘法的情况下,同态加密能够保持多项式求值的结果。

x_1 land x_2 equiv x_1 cdot x_2 pmod 2

x_1 lor x_2 equiv 1 - (1-x_1)(1-x_2) pmod 2

lnot x_1 equiv 1-x_1 pmod 2


建议你看一下计算机导论课,会告诉你的


泰勒展开之后,其实还可以分割得再细致一点,任何函数只需加法和减法即可。

乘法在乘数与被乘数都为整数时,是可以用加法来实现的,建议用for循环。乘法的被乘数是转换成加法后for循环的重复次数。

除法(或涉及到实数/小数部分的乘法)是可以通过减法来实现的,建议用while循环。结果是减法while循环的重复次数。

哈哈,有点抬杠捣乱的意思了:-)


因为几乎任意函数都可以进行泰勒展开。泰勒展开就是利用多项式来逼近真实的函数,在计算的时候,为了计算速度,往往会利用泰勒来计算。由于泰勒只需要计算加法乘法和幂(幂又可以使用乘法计算),所以只需要加法和乘法即可。另外一点,由于计算机表示的精度有限,这种近似是可以接受的。

具体来说,是只用加法与演算法就可以计算一切,想想你的数学运算符是怎么构成的

想知道怎么推算的话私聊我


推荐阅读:
相关文章