当不允许除法运算时,如何在 HELib 或 SEAL 等同态加密库中实现截断?
我有两个浮点数a=2.3,b=1.5
,我将它们缩放为具有 2 位精度的整数。因此我的编码器看起来基本上是这样encode(x)=x*10^2
的。假设enc(x)
是加密函数,则enc(encode(a))=enc(230)
和enc(encode(b))=enc(150)
。
在乘法时,我们获得了巨大的价值,a*b=enc(23*15)=enc(34500)
因为比例因子也相乘。这意味着我的输入呈指数增长,除非我可以截断结果,因此trunate(enc(34500))=truncate(enc(345))
.
我认为这样的截断函数是不可能的,因为它不能用多项式表示。尽管如此,我想知道如何在数学上执行这种截断是否有任何技巧,或者它是否只是一个未解决的问题?