BGV加密方案是一个整数全同态加密方案,其加密域可以是格或多项式环,基于LWE或者RLWE困难问题。BGV采用的主要思想是将明文嵌入在最低比特位,然后通过模运算取出明文。比如密文为,私钥为
,那么,其解密结构为
,其中t是明文空间的模 ,p是密文空间的模。因为t是远远小于p的,所以只要te足够小,那么直接用t模就可以取出明文。为了便于描述,下面的都是在分圆多项式环
上。
密钥的选择
设噪声分布为,s是在噪声分布中采样的一个随机数。那么私钥
。
随机从环上选取a,和噪声e,计算,其中t是明文空间的模。那么公钥为
。
加密
假设我们要加密一个明文m。
选取噪声u,,
,计算
,
;
密文。
解密
有密文和私钥
,
加解密正确性证明
扫描二维码关注公众号,回复:
14271593 查看本文章

加法同态
有密文和
分别是由
和
加密而来。考虑他们的解密结构
,
,则
与私钥的内积
显然是
的一个有效密文。
但是,噪声显然比原来要增加大概一倍,是呈现线性增加的。所以,随着加法次数的增加,噪声会越来越大,直到淹没明文,变成无效密文。
乘法同态
有密文和
分别是由
和
加密而来。
则,
考虑,是
的一个有效密文,但是,此时,私钥为
,比原来的私钥维度增加了。
从上式可以看出,密文的噪声是指数级增加的,而且,密文的维度也在不断增加。这对于高效计算乘法是非常不利的。而密文的重线性化,使得密文的维度维持在跟直接加密一样。
对于噪声的解决方案主要有两种,一个是模交换技术,另一个是自举重加密。
模交换是通过减小密文域模的大小来减少噪声,而自举重加密则是将密文进行同态解密后再加密,以获得新的密文,这样就跟直接加密的密文一样了。