CKKS和BFV支持向量级加密,而paillier只支持标量级加密
CKKS(Cheon-Kim-Kim-Song)和BFV(Brakerski/Fan-Vercauteren)支持向量级加密,而Paillier只支持标量级加密,这是因为这三种同态加密方案在设计上对数据的处理方式有所不同。
Paillier 加密
- Paillier 是一种部分同态加密方案,它支持对密文进行加法操作以及密文与明文之间的乘法操作。
- 在Paillier中,每个密文通常代表一个单独的数值(标量)。因此,当你需要加密一组数值时,你必须逐个地加密这些数值。
- 由于这种一对一的加密方式,Paillier 不具备直接批量处理多条数据的能力,这就是为什么说它只支持标量加密。
CKKS 和 BFV 加密
- CKKS 和 BFV 都是基于整数环上的全同态加密方案,它们能够支持更复杂的同态运算,并且可以通过某些技术实现高效的批处理。
- 向量级加密:这两个方案都利用了所谓的“打包”或“批处理”技术。这意味着可以将多个数值(如一个向量)编码成单个密文,然后对这个密文进行同态运算,从而同时对整个向量中的所有元素执行相同的操作。
- CKKS 特别适合于近似计算,例如在机器学习模型中处理浮点数。它使用复数表示来打包数据,允许在一个密文中存储和处理多个值。
- BFV 则更适合于精确的整数算术。它也支持将多个整数打包到一个密文中,这样可以在不牺牲安全性的情况下提高效率。
综上所述,CKKS 和 BFV 支持向量级加密是因为它们能够通过特殊的编码方式将多个数据点封装进一个密文中,从而允许一次对多个数据点进行加密和解密操作。相比之下,Paillier 每次只能加密和处理单个数值,因此被认为是仅支持标量加密。