原文链接:TFHE Deep Dive - Part I - Ciphertext types
TFHE最初是FHEW方案的优化,后来逐渐加宽了方向,其安全性基于格困难问题LWE及其变体RLWE。实际上如今大部分FHE方案都是基于LWE的并使用带噪声密文。但是TFHE区别于其他方案的地方在于其可以非常快的自举,能在评估函数同时降低噪声。
讨论自举的细节需要看一些文章,所以别急着读懂这个操作,先让我们从TFHE的密文开始。
一些定义
一些数学术语需要明确:
-
是模分圆多项式的整数多项式环,是的幂。实际上,其包含次数直到的整数多项式。
- ,此时系数是模的,我们一般用来表示。
- 我们的模约简是以0为中心的,比如模就是用同余类
- 是高斯概率分布,其均值为,标准差为,如果,则我们简记为。
- 我们使用小写字母来表示(取模)整数,用大写字母来表示多项式。
- 我们标记从到包含的整数元素为。
- 我们分别使用MSB和LSB来表示最高有效位和最低有效位。
- 我们定义操作为取最近整数值。
TFHE密文
在TFHE中我们使用三种密文:LWE、RLWE和RGSW密文。为什么我们用三种密文呢?简而言之,其各有不同属性用于同态操作,我们之后会提到。这都是基于LWE和其变体的。
本文会给出概括的定义来帮助你理解我们操作的内容,这些密文不仅用于TFHE,也用于其他基于LWE的FHE方案。
- GLWE(概括的LWE):一个LWE和RLWE密文的概括
- GGSW(概括的GSW):一个RSGW密文的概括
- GLev:一个中间密文形式,对于更好理解GGSW密文很有用,下面会大量使用此密文。
让我们开始吧!
GLWE
此部分概括LWE和RLWE为GLWE。
首先我们需要一个密钥。对于GLWE密文,密钥形式是一个列表,包含个中的随机多项式:
特别地,中元素之系数可取均匀二元分布、均匀三元分布、高斯分布或均匀分布。
注意这些类型密钥任意一种都可以找到参数确定其安全级别。
本文和TFHE原文都用均匀二元分布采样。
现在看如何加密消息。和是正整数有,定义。在TFHE中,二者通常取二之幂,若不是需在编码时舍入。我们称位密文模(大的),为明文模(小的),为缩放因子(scaling factor)。密钥加密消息的GLWE密文是一个元组:
其元素,满足,服从的均匀随机分布,和之系数服从高斯分布。一般称为掩码(mask),为主体(body)。多项式就是我们有时候称为的编码。为计算我们将消息当做的元素。我们每次加密消息都取样新的随机性(对于掩码和噪声误差),所以每次加密(即使对于相同消息)也是不同的。这对于安全性很重要。在密钥与相同的编码和高斯噪声的标准差的GLWE加密的集合,记为。
现在我们拥有一个在密钥下加密的密文,解密则用以下计算:
- ,
- 。
观察到消息是的最高位部分(由于的相乘)而是最低位部分。所以当(就是其系数都有),第二步就会正确解密。噪声如果不满足条件就会解密失败。下面图片展现了的第i个系数。
小例子
为更好理解GLWE密文此处举例,仅用于观察,并不满足安全性。
选择,,则。取和。
我们从均匀二元分布取样密钥,含个多项式,次数小于。
加密消息,其次数小于,系数取值范围为:
取离散高斯分布噪声(小系数):
为了加密,我们计算主体:
我们在上计算,在模和模上多项式操作,为了取模,可以观察到。所以:
同样的:
继续计算:
然后:
所以加密为:
那么当我们解密,则计算,得到:
则:
这就是消息的解密,解密很顺利因为噪音(绝对值)小于。
不重要(Trivial)GLWE密文
下面文中我们有时会用不重要GLWE密文。这些密文并非真正的加密,某种意义上他们隐藏了信息,但是更多的视为占位符:他们确实有着GLWE密文外形,但是消息是明文形式。一个消息的不重要密文是将所有置0,等于:
当然,我们不用这种密文加密敏感信息!后面我们会展示如何用这个东西将公共信息加入到同态计算中。
LWE和RLWE
现在给出LWE和RLWE。
当演示和的GLWE就得到了LWE,对于可以观察到(resp.)就是(resp.)。
对于和是二之幂我们得到RLWE。
公钥加密
上面都是私钥加密,公钥也能加密。实际上公钥是0的加密。为了加密信息,将这些0的加密随机组合并添加所需信息就足够了。本系列文章不用公钥加密,所以不考虑更多细节。详情见原文此处链接有一篇论文。
GLev
GLev密文在FHE中使用有一段时日了。其首次提出于CLOT21,用于表示GLWE和GGSW密文的中间形式,也可以概括为BGV的二之幂的加密。
一个GLev密文包含冗余:由一个相同信息加密的GLWE密文的列表组成,具有不同但非常精确的缩放因子。定义特定的需要两个参数:基底,一般是二之幂,和一个层级数:
(个人注释:此处原文公式给出的GLWE之间的符号是叉乘,但是根据上下文应该是逗号,我翻阅原文也是逗号,可能是我没理解他这个叉乘的含义,可能指代的是外积或张量积,下文GGSW也做了更改)
如果he不是二之幂则舍入,密钥和GLWE密文相同,若需解密,则用相应的缩放因子解密即可。用密钥加密相同消息,用标准差为的高斯分布噪音,基底为层级位的Glev加密集合记为。
Lev和RLev
二者和GLWE变成LWE和RLWE的规则一样。
GGSW
现在GLWE和GLev密文我们都知道了,那么理解GGSW就很容易了。
- GLWE密文是的元素的向量(或一个一维矩阵),
- GLev密文是一个GLWE密文向量(或一个元素的二维矩阵),
- GGSW是一个GLev密文的向量(或一个元素的三维矩阵,或一个GLWE密文的二维矩阵)。
我们再增加一点冗余对于三维结构。
特别地,对于GGSW,每一个GLev密文加密和密钥的乘积,最后一个GLev加密:
密钥和GLWE和GLev的密文相同,为了解密就解密最后一个GLev的密文,对于相同消息,用密钥加密,用标准差为的高斯分布噪音,基底为层级位的GGSW加密集合记为。
GSW和RGSW
与之前一样转换方法。