[FHE]基于LWE&RLWE的全同态加密方案设计大致思路

加密方案

LWE

方案公开参数:明文模数\(t\)、密文模数\(q\)、向量维数\(n\)

密钥空间为\(\mathbb{Z}^{n}_{q}\),即素数域\(\mathbb{Z}_{q}\)上的\(n\)维向量。
明文空间取\(\mathbb{Z}_{t}\),为素数与上的一个数。

加密的过程:
选取随机数\(\mathbf{a}\in\mathbb{Z}^{n}_{q}\)(和密文空间一样)。
计算\(b=\mathbf{a} \cdot \mathbf{s}+m+te \mod q\)其中\(\mathbf{s}\)为密钥,\(e\)为噪声,在\(\mathbf{Z}_q\)中满足高斯分布。
密文为\(c=(b,\mathbf{a})\),一共有\(n+1\)维。

解密的过程:
计算\(b-\mathbf{a} \cdot \mathbf{s} \equiv m+te \mod q\),将结果对\(t\)做取模运算得到\(m\)

R-LWE

方案公开参数:明文模数\(t\)、多项式\(X^N+1\),以及多项式环\(\mathcal{R}=\mathbf{Z}[X]/X^N+1\)
\(\mathcal{R}_{q}\)表示系数模\(q\)的多项式环\(\mathbb{Z}[X]_{q}/X^n+1\)

密钥空间为\(\mathcal{R}_{q}\),即选取密钥\(s \in \mathcal{R}_{q}\)
明文为一个多项式,明文空间为多项式环\(\mathcal{R}_{t}\)

加密的过程:
选取随机数\(a \in \mathcal{R}_{q}\)
计算\(b=as+m+te \in \mathcal{R}_{q}\)\(b\)也是系数模\(q\)的多项式环上的一个元素。
其中\(e\)是一个噪声多项式,其系数在\(\mathcal{R}_{q}\)上满足高斯分布。
密文为\(c=(b,a)\),为两个\(\mathcal{R}_{q}\)上的多项式,即\(c \in \mathcal{R}^{2}_{q}\)

解密的过程:

\(\mathcal{R}_{q}\)上计算\(b-as\),将结果\(b-as \equiv m+te\)的系数对\(t\)取模得到\(m \in \mathcal{R}_t\)

基于R-LWE问题的方案将向量编码为多项式。向量有\(n\)维(其中可以取\(n=\phi(N)\)\(\phi(\cdot)\)为欧拉函数,在CRT编码的情况下,在CKKS中是\(N/2\)),最多包含\(n\)个数据。
加密后得到\(\mathcal{R}^{2}_{q}\)上的一个密文,可以看作一个维度为\(2n\)的向量。

噪声问题

噪声的阈值

解密运算都是在模的意义下进行的。
\(q\)运算后得到\(m+te \mod q\),如果\((m+te)\)\(q\)来的小的话,可想而知\(m\)是一定可以被正确计算出来的(\(m\)在模\(t\)的空间中)。
另一方面,如果\((m+te)\)\(q\)大,则解密会产生错误。
举个例子:
在一个基于LWE的方案中,取模数\(t=13,q=41\),明文\(m=11 \in \mathbf{Z}_{13}\),噪声取自\(\mathbf{Z}_41\)
解密时计算\(11+13 \times e \mod 41\),如果噪声较小,比如\(e=2\),则\(m+te \equiv 37 \mod 41\),模\(t=13\)得到\(m=11\)
而如果噪声大一点,比如\(e=5\),得到\(m+te \equiv 76 \equiv 35 \mod 41\),再模上\(t=13\)得到\(m=9\).
或者取噪声\(e=10\),得到\(m+te \equiv 141 \equiv 18 \mod 41\),得到\(m=5\)

所以噪声控制的要求就是\(m+te<q\)

posted @ 2022-03-25 15:43  Akiho  阅读(443)  评论(0)    收藏  举报