1. 同态加密

内容参考于https://mp.weixin.qq.com/s/pOtCtwphPnKesef3iaLpCQ

同态加密是允许在加密后的密文上进行运算,且解密后和直接在原始数据上运算结果相同

1.1 部分同态加密

主要是为乘法同态(RSA加密)加法同态(Paillier加密)

注意:加法同态是密文上的乘=明文上的加

image-20230723134242350

image-20230723134330157

1.2 全同态加密

全同态加密可以在密文上进行加法和乘法的操作。

容错学习(LWE,Learning With Error)问题:给定一个秘密的向量s,以及一个随机选取的向量a,还有一个符合某种分布的一个错误e,或者把它叫做噪声。将这一个随机选取的向量和秘密向量进行一个内积,再将噪声加上,将这两项发送给另一方,另一方是无法通过a和b来计算得出s的。

RLWE问题就是将LWE问题迁移到了环上,Rq是一个整数的多项式,除掉一个分源多项式,在系数上模掉一个模数q。

BGV,BFV和CKKS三种加密算法都是基于RLWE的加密方案,区别在于前两者的明文空间都在中Rt,CKKS的明文空间是R,不受该限制。另外主要的区别就在于BGV,BFV是在一个有限域内的精确运算。然后CKKS是一个浮点数上或者说复数空间上的一个近似的运算,因为它会把最后的噪声也当作明文的一部分输出出来。

image-20230723134523621

1.3.1 CKKS全同态加密

image-20230723142236003

CKKS算法中,假设两边的明文是0.3和0.5,各放大10倍,通过运算,得到8,不过引入了噪声,也就是最后的0.223/10,这是无法删除的。

图片

2. 应用场景

image-20230814104615631