请考虑两个参与方,即P_0和P_1。 P_0和P_1分别具有明文p_a和p_b。
P_0加密p_a以使其具有公共密钥c_a = Enc(p_a)
,并将其发送到P_1。
P_1执行multiply_plain(c_a, p_b, c)
,然后执行sub_plain_inplace(c, p_R)
(其中p_R是隐藏a和b的乘积的随机明文多项式),然后将c发送到P_0。
尽管产品被p_R掩盖了,但是c中的噪声能否将有关p_b的信息透露给P_0?
如果是,那么如何避免这种泄漏?有没有办法向c添加随机噪声以淹没p_b对c中噪声的影响?
SEAL中是否具有使用较大间隔的噪声进行加密的功能?如果有的话,也许我可以用额外的噪声加密p_R以淹没影响。
答案 0 :(得分:1)
是的,即使添加了新的加密技术,噪声理论上也可以显示有关产品输入的信息。同态加密方案通常不设计为在此类MPC协议中提供输入隐私。我还不清楚这种“攻击”在现实的应用场景中执行的可行性(病理情况除外)。
为避免此问题并为您可能想从BFV方案中构建的协议获得半诚实的安全性,您确实可以按照您的建议进行操作:通过添加人为大的加密来淹没噪声噪声。例如,使用here(第5.2节)来证明协议的安全性。另请参见this paper中的引理1。
Ducas和Stehle在this paper中描述了一种基于引导的更高级方法。由于BGV和BFV中的引导程序都非常严格(并且在SEAL中未实现),因此我认为这种方法不可行,除非在某些非常罕见的情况下。