有限域同态加密方案的优化与比较
1 不同乘法方法的复杂度
不同乘法方法的计算复杂度有所不同,具体如下表所示:
| 方法 | NTTs | 整数乘法 | 浮点运算 |
| — | — | — | — |
| MultOld | 14k + 7 | (10k² + 26k + 9)n | (10k + 3)n |
| MultNew | 14k | (9k² + 15k)n | 7kn |
| MultNewLeveled | 14ℓ | (4kℓ + 5ℓ² + 2k + 18ℓ)n | (2k + 5ℓ)n |
在算法中,从 Q 到 Qℓ 再到 Pℓ 的模数切换可以合并为从 Q 直接到 Pℓ 的单次模数切换,这样能将整数乘法的数量从 (kℓ + ℓ² + 2ℓ)n 减少到 (kℓ + ℓ)n。同时,通过在噪声估计中增加额外的 log k 位,可以采用近似模数切换,避免使用浮点校正技术。
2 BFV 乘法中的懒缩放优化
在 BFV 乘法中,可以通过分离张量积和缩放操作来优化某些评估电路。以两个密文向量的内积电路为例,传统方法是先对密文对进行乘法(张量积和缩放),然后将结果相加(模 RQ)。而懒缩放方法则是先对密文对应用张量积子例程,然后将结果相加(模 RQP),最后仅执行一次昂贵的缩放子例程。
具体操作步骤如下:
1. 对密文对应用张量积子例程。
2. 将张量积结果相加(模 RQP)。
3. 执行一次缩放子例程。
这种方法不会影响乘法噪声 vtensor,并且由于只进行一次缩放,内积的总噪声实际上会降低。实验结果表明,这种优化可以使内积运算