通过密文-明文同态运算泄漏

Leakage through Ciphertext-Plaintext Homomorphic Operations

考虑两方,即P_0和P_1。 P_0和P_1分别有明文p_a和p_b。
P_0 用它的 public 密钥加密 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 来淹没影响。

是的,理论上噪声可以揭示有关产品输入的信息,即使在为其添加了新的加密之后也是如此。同态加密方案通常不是为了在此类 MPC 协议中提供输入隐私而设计的。我不清楚这个 "attack" 在实际应用场景中执行的可行性如何(病理情况除外)。

为了避免这个问题并为您可能想要从 BFV 方案构建的协议获得半诚实的安全性,您确实可以按照您的建议进行操作:淹没噪音 通过添加具有人为大噪声的加密。这用于例如 here (section 5.2) to prove the security of the protocol. See also Lemma 1 in this paper

Ducas 和 Stehle 在 this paper 中描述了一种更高级的基于引导的方法。由于 BGV 和 BFV 中的自举都非常受限(并且未在 SEAL 中实现),我认为这种方法不实用,除非在一些非常罕见的情况下。