在基于环上的同态加密方案,比如BGV,BFV或者CKKS,在经过乘法同态的时候,往往会导致密文的维度增加。比如由明文加密而成的密文
,明文
加密得到的密文为
,则
,维度变成了3。为了能高效的计算同态乘法,抑制密文增长,我们需要重线性化。
我们以CKKS为例
假设有密文和一次乘法后的密文
,私钥
,则对于
,解密为
,对于
,解密为
。(运算都是模p运算,p为明文空间的模,e为产生的噪声)
为了实现密文的重线性化,我们还需要一个辅助的密钥 ,其中
。
则对进行重线性化后的密文
。
证明如下:
由于e是噪声,相对于p来说很小,所以在有效解密时为0。故,新的密文是
的一个2维密文。