具有更短公钥的整数全同态加密
1. 方案选择与正确性
1.1 公钥参数选择
在方案设计中,对于公钥参数 $q_0$ 的选择有两种方式。一种不太实际的方式暂不考虑,另一种是将 $q_0$ 选为 $(\gamma - \eta) / \lambda^2$ 个随机素数的乘积,每个素数大小为 $\lambda^2$ 比特。选择 $\lambda^2$ 比特的因子而非 $\lambda$ 比特,是因为像 ECM 这样的分解算法在因子大小上具有亚指数复杂度,能高效提取 $\lambda$ 比特的素因子。在实现中,为防止此类攻击,可安全地将 $q_0$ 生成为例如 1000 比特素数的乘积。
1.2 正确性定义
对于给定电路或电路集,定义了正确的同态方案。将允许的电路定义为:对于任意 $i \geq 1$ 和任意一组绝对值均小于 $\tau^i \cdot 2^{i(\rho’ + 2)}$ 的整数输入,广义电路的输出绝对值至多为 $2^{i(\eta - 3 - n)}$,其中 $n = \lceil \log_2(\lambda + 1) \rceil$,记允许电路的集合为 $C_E$。
1.3 方案正确性引理
引理表明,上述方案对于 $C_E$ 是正确的。“新鲜”密文(由 Encrypt 输出)的噪声至多为 $\tau \cdot 2^{\rho’ + 2}$,对允许电路应用 Evaluate 输出的密文噪声至多为 $2^{\eta - 3 - n} < p / (4(\lambda + 1))$。虽然 $p / 2$ 的界限足以确保正确解密,但这个更强的界限有助于后续证明该方案可引导版本的正确性。