基于矩阵迹的安全内积计算

一种通用且高效的内积安全方法

摘要

安全内积,即所有项均为加密形式的内积计算,是各种隐私保护应用的核心技术。本文提出了一种通用且高效的方法,利用矩阵迹性质来计算向量(或矩阵)的安全内积。事实上,我们的方法不仅适用于基于 LWE和基于环LWE的同态加密方案,而且比之前已知的方法更加高效。

关键词: 带误差学习(LWE) · Homomorphic加密 · 矩阵迹 · Secure内积

1 引言

动机

两个向量 $U=(u_1,…, u_w)$ 和 $V=(v_1,…, v_w)$ 的内积定义为
$$
〈U, V〉 \overset{\text{def}}{=} u_1v_1+ \cdots + u_wv_w,
$$
是统计计算中最基本且有用的操作之一。例如,它可用于计算汉明权重、相关性和距离。当向量 $U$ 和 $V$ 包含敏感信息,且计算必须在不安全环境(如云服务器)中进行时,就需要安全内积计算,以便在不泄露信息的情况下外包数据和计算。
安全内积[15,16]已知在隐私保护模式匹配和安全统计分析(如协方差分析)中具有应用。

安全内积的相关工作

已经提出了多种类型的同态加密(HE)方案:加法同态加密 [13], 乘法同态加密[7], 支持在密文上进行加法和乘法运算的部分同态加密 [1,3,11] 以及支持对加密数据进行任意计算的全同态加密(FHE)[5,8–10]。
尽管FHE可用于执行安全内积计算,目前已知的方案均不实用,且普遍认为当前最先进的实现仍远未达到实际应用水平[6]。

在本研究中,我们基于实用的部分同态加密方案,特别是基于LWE或基于环LWE的部分同态加密方案(例如,见[1,11]),提出了安全内积计算,这些方案具有抵御量子计算机攻击的潜力。在这些方案中,我们采用了以下方法:

朴素方法 。一种支持对密文进行加法和乘法操作的部分同态加密方案可用于执行以下计算:
$$
\text{Enc}(u_1)\text{Enc}(v_1)+ \cdots + \text{Enc}(u_w)\text{Enc}(v_w)
$$
等于
$$
\text{Enc}(u_1v_1+ \cdots + u_wv_w)= \text{Enc}(〈U, V〉).
$$
这种朴素解法效率不高,因为向量的每个分量都必须被加密。

打包方法 。存在几种可用于环-LWE-基于方案 [11,14–16] 或 LWE-基于方案 [4] 的打包方法。例如,在 [14], 中描述的方法中,一个明文
$$
m= \sum_{i=0}^{n−1} m_i x^i \in R_p=\mathbb{Z} p[x]/(x^n+ 1)
$$
被修改为两种不同的形式
$$
\text{pm}^{(1)}(m):= \sum
{i=0}^{n−1} m_i x^i, \quad \text{pm}^{(2)}(m):= - \sum_{i=0}^{n−1} m_i x^{n−i}.
$$
由于 $x^n= -1$,对于明文 $u=\sum_{i=0}^{n−1} u_i x^i$ 和 $v=\sum_{i=0}^{n−1} v_i x^i,$,$\text{pm}^{(1)}(u)$ 与 $\text{pm}^{(2)}(v)$ 的乘积是
$$
\text{pm}^{(1)}(u) \cdot \text{pm}^{(2)}(v)= \sum_{i=0}^{n−1} u_iv_i+(\text{inconstant terms}).
$$
因此,通过mod $x$,可以利用 $R_p$-乘法计算系数向量$(u_0,…, u_{n−1})$和$(v_0,…, v_{n−1})$的内积。注意,该方法要求一个明文对应双密文,因此比朴素方法更高效。然而,由于该方法依赖于基于环LWE的同态加密方案中多项式明文的特定编码,因此不适用于其他同态加密方案,例如标准基于LWE或基于陷门的方案。
另一方面,基于LWE的同态加密中打包密文的协议适用于安全内积。然而,它不适用于基于环LWE的方案。

张量积方法 Aono-Hayashi-Phong-Wang方案 [1] 是一种基于LWE的公钥加密(PKE)方案[12]的同态变体,支持多次加法同态计算以及针对向量的一次性张量积同态计算。 $U=(u_1,…, u_w)$ 和 $V=(v_1,…, v_w)$ 的张量积是一个方阵
$$
U^T V= \begin{bmatrix}
u_1v_1 & \cdots & u_1v_w \
\vdots & \ddots & \vdots \
u_wv_1 & \cdots & u_wv_w
\end{bmatrix},
$$
其对角线上的元素 $u_iv_i(i= 1,…, w)$ 可用于计算等于张量积的迹的内积。
这种方法比朴素方法更高效。然而,如果我们使用原始张量积方法来计算内积,则在解密过程中需要计算许多额外的元素 $u_iv_j(i \ne j)$。因此,仍有改进的空间。

我们的贡献

我们的技术大量使用了矩阵迹性质(见第2.1节)。利用这些性质,在解密过程中可消除张量积中的额外元素,从而显著降低了解密的计算开销。据我们所知,这是首次在同态加密中应用矩阵迹性质。我们的结果如下:
(1) 我们提出了一种用于向量(或矩阵)安全内积计算的通用方法(见第3节)。
(2) 该方法适用于基于LWE(见第4节)和基于环LWE(见第5节)的同态加密方案,这些方案具有抵抗量子计算机攻击的潜力。(3) 我们的方法在效率上优于朴素解法、原始张量积方法(见[1])以及现有的打包方法(见[14])。例如,在劳特-内赫里格-瓦伊昆塔纳坦方案[11], (一种基于环LWE的方案)上,我们在第6节中从计算和通信开销方面将我们的方法与现有方法进行了比较。

2 预备知识

在本文中,方案中操作的数据是(离散)环或域 $R$ 中的元素, $SK$、 $PK$、 $M$ 和 $CT \subset R$ 分别是私钥、公钥、消息和密文的空间。符号$f: R \mapsto R$ 表示函数 $f$ 将 $a \in R$ 映射到元素 $f(a) \in R$。而符号$\text{Alg}(·) \rightarrow b$ 表示 $b$ 是算法 $\text{Alg}$ 的输出。对于概率算法,例如定义2中定义的加密算法$\text{Enc}(pk, m) \rightarrow CT$, 每次执行可能输出不同的值。

2.1 线性代数基础

设 $R^{m\times n}$ 表示元素属于 $R$ 的 $m\times n$ 矩阵构成的集合。对于矩阵$A \in R^{m\times n}$,我们用带下标的小写字母表示其$(i, j)$-元素:$a_{ij}$。相应地,我们常用记号$(a_{ij})_{m\times n}$ 来定义矩阵 $A$。

对于一个方阵 $C=(c_{ij}) {n\times n} \in R^{n\times n}$,其迹定义为 $\text{Tr}(C)=\sum {i=1}^n c_{ii}$。以下性质是显然的,请参见例如 [2]:
矩阵迹的性质: 对于任意矩阵 $A \in R^{m\times n}, B \in R^{n\times m}, C, C’ \in R^{n\times n}$ 和方阵 $C_{11}, C_{22}$,我们有
(1) $\text{Tr}(AB)= \text{Tr}(BA)$.
(2) $\text{Tr}(C)= \text{Tr}(C^T)$.
(3) $\text{Tr}(C+ C’)= \text{Tr}(C)+ \text{Tr}(C’)$.
(4) $\text{Tr}\left(\begin{bmatrix}C_{11} & * \ * & C_{22}\end{bmatrix}\right) = \text{Tr}(C_{11}) + \text{Tr}(C_{22})$.

定义 1。 对于矩阵 $U、 V \in R^{m\times w}$,它们的内积定义为
$$
〈U, V〉 F:=\sum {i,j} u_{ij}v_{ij}= \text{Tr}(UV^T)= \text{Tr}(U^T V). \tag{1}
$$
这里,后缀 $F$ 代表弗罗贝尼乌斯,因为它通常被称为“弗罗贝尼乌斯内积”。
注意,当 $m= 1$ 时,公式(1) 给出两个向量的标准内积
$$
〈U, V〉:= \sum_{j=1}^w u_jv_j= UV^T= \text{Tr}(U^T V),
$$
对于两个行向量 $U, V \in R^{1\times w}$,其中 $U^T V$ 是张量积。

2.2 公钥同态加密与正确性论证

定义 2(PHE 方案)。 一个支持函数族 $\mathcal{F}$ 计算的公钥同态加密(PHE)方案由以下(可能是概率性的)多项式时间算法组成:
基本的 PKE 部分算法:
• $\text{KeyGen}(1^\lambda) \rightarrow (pk, sk)$:公钥与私钥的密钥对。
• $\text{加密算法Enc}(pk, M)\rightarrow CT$:概率加密算法
• $\text{Dec}(sk, CT)\rightarrow M$:解密算法。
同态部分算法: 对于每个$\text{Fun} \in \mathcal{F}$,存在函数$\text{Func}$和$\text{DecFun}$,使得
• $\text{Func}(CT_1,\dots, CT_N)\rightarrow CT_{\text{Fun}}$:函数值的密文
• $\text{函数解密}(sk, CT_{\text{Fun}}) \rightarrow M_{\text{Fun}}$:解密 $CT_{\text{Fun}}$ 以获得明文函数值 $\text{Fun}(M_1,\dots, M_N)$。
函数$\text{Func}$的像可能不是 $CT$ 的子集。

注: 现有的PHE方案根据所支持的函数类型进行分类, $\mathcal{F}$ 如下所示:加法型部分同态加密(例如,[13]),当 $\mathcal{F}$ 仅包含加法函数时;乘法型部分同态加密(例如,[7]),当 $\mathcal{F}$ 仅包含乘法函数时;有限次同态加密(例如,[1,3,9,14]),当 $\mathcal{F}$ 是低次多项式族时。
对于PHE方案,选择明文攻击下的不可区分性(IND-CPA)是基本的安全要求。第4和5节中提到的PHE方案分别在LWE假设和环上学习误差问题假设下被证明是IND-CPA安全的。在我们提出的方法中,由于同态计算的输入由密文组成,相应的IND-CPA安全的PHE方案不会被削弱。

定义3(部分同态加密的正确性)。 定义 $\mathcal{F}_2$ 中的PHE方案(在 内)若满足以下两个条件,则称其是正确的:
• For any $M \in M$ and $(pk, sk)\leftarrow \text{KeyGen}(1^\lambda)$,
$$
\text{Dec}(sk, \text{Enc}(pk, M))= M
$$
以压倒性概率成立。
• 对于任意函数 $\text{Fun} \in \mathcal{F}$ 在 $M$ 上以及$M_i \in M$ 的密文 $CT_i= \text{Enc}(pk, M_i)$, 存在在$CT$ 上的相应算法对$(\text{Func},\text{DecFun})$ ,使得
$$
\text{DecFun}(sk, \text{Func}(CT_1,\dots, CT_N))= \text{Fun}(\text{Dec}(sk, CT_1),\dots, \text{Dec}(sk, CT_N))
$$
以压倒性概率成立。

形式化正确性及方案所需的正确性条件: 对处理后的密文 $\text{Func}(CT_1,\dots, CT_N)$ 的解密有时可能无法得到预期结果,因为密文可能由于计算而被破坏,例如噪声溢出,这种情况在我们对同态加密进行可处理计算时会发生。例如,基于 LWE 和基于环LWE的方案会遭受此问题。在具体方案中,设置合适的参数可以高概率地解决该问题。然而,当讨论通用构造时,此类噪声论证会使讨论变得复杂。为了避免这些问题,我们将PKE中的Dec算法分解为两部分:
$$
\text{Dec}= \varepsilon \circ \mu,
$$
其中 $\mu: SK \times CT \rightarrow M’$ 是解密函数,将密文映射为带有噪声的元素,而 $\varepsilon: M’\rightarrow M$ 是提取或去噪函数。此外,我们将使用函数解密$\text{DecFun}$ 的分解形式
$$
\text{DecFun}= \varepsilon’ \circ \mu_{\text{Fun}}.
$$

定义4(全同态加密的形式正确性)。 设公钥加密中解密函数的分解为解密 = $\varepsilon \circ \mu$。那么,当且仅当对于任意函数函数$\text{Fun} \in \mathcal{F}$,存在一个函数对$(\text{函数计算c}, \mu_{\text{Fun}})$ 满足时,$\mathcal{F}$ 内的PHE方案是形式上正确的
$$
\mu_{\text{Fun}}(sk, \text{Func}(CT_1,\dots, CT_N))= \text{Fun}(\mu(sk, CT_1),\dots, \mu(sk, CT_N)) \tag{2}
$$
对于任意密文$CT_i= \text{Enc}(pk, M_i)$ ,均来自任意 $M_i \in M$。在本文中,我们将对函数$\text{Fun}$ 的实现函数对称为$(\text{Func}, \mu_{\text{Fun}})$。
之所以需要这样做,原因很容易理解。在典型情况下,存在一个去噪函数 $\varepsilon’$ 来完成函数解密:$\text{DecFun}= \varepsilon’\circ\mu_{\text{Fun}}$。此外,如果该过程是透明的,即误差项(例如噪声)足够小,则先计算后去噪与先去噪后计算是等价的。在这种情况 下,公式(2)可得
$$
\varepsilon’ \circ \mu_{\text{Fun}}(sk, \text{Func}(CT_1,\dots, CT_N))= \text{Fun}(\varepsilon \circ \mu(sk, CT_1),\dots, \varepsilon \circ \mu(sk, CT_N)).
$$
这正是定义3。
也就是说,就具体方案而言,存在一个关于参数的条件,使得形式上正确的方案满足正确性。我们将此类条件称为方案所需的正确性条件(本文中不再对此进行论述)。

3 我们的用于安全内积的通用方法

基于矩阵迹的性质,可以通过张量积同态计算获得通用且高效的内积计算。我们在第3.1节中提出一种通用构造。然后,在第3.2节中介绍一种更一般化方案的构造概述。

3.1 构造矩阵(或向量)内积部分同态加密的通用方法

我们提供了一种通用方法来构造一种同态加密方案,该方案可安全地计算两个矩阵(或向量)明文的内积。为此,本小节中我们将消息空间 $M \subset R^{m\times l}$ 固定为一个有限离散环(或有限域) $R$。

定理1. 考虑一个由$\text{ParamGen}(1^\lambda)$、$\text{KeyGen}(1^\lambda)$、加密算法$\text{Enc}(pk, M)$ 和 解密$(sk, CT)$ 构成的公钥加密方案,其消息空间为 $M \subset R^{m\times l}$,密文空间为 $CT \subset R^{m\times(n+l)}$,私钥空间为 $SK$。存在两个映射 $g: CT \mapsto R^{m\times n} \times R^{m\times l}$ (该映射将密文解析为大小分别为 $m \times n$ 和 $m \times l$ 的两个矩阵)和 $f: SK \mapsto R^{n\times l}$。假设对于解密 $= \varepsilon \circ \mu$,其解密函数 $\mu$ 由矩阵乘法定义
$$
\mu(S, CT)= g(CT) \cdot[f(S) \quad J], \tag{3}
$$
对于密文 $CT$ 和私钥 $sk= S$,其中 $J$ 是大小为$l \times l$ 的常数矩阵。那么,对于$\text{Enc}(pk, U)= C=(C_1, C_2)$ 和 $\text{Enc}(pk, V)= D=(D_1, D_2)\in R^{m\times n}\times R^{m\times l}$,该方案在以下算法下对弗罗贝尼乌斯内积函数 $〈U, V〉_F= \text{Tr}(UV^T)$ 是形式上正确的:
• $\text{内积Pc}(C, D) \rightarrow ip:=(W_1, W_2, \xi)$,其中
$$
W_1= C^T_1 D_1, \quad W_2= C^T_1 D_2+ D^T_1 C_2, \quad \xi= 〈C_2J, D_2J〉_F.
$$
• $\text{DecIP}(sk, ip) \rightarrow 〈U, V〉_F:= \text{Tr}(W_1 \cdot S^ + W_2 \tilde{S})+ \xi$,其中 $S^ = f(S)f(S)^T$ 和 $\tilde{S}= Jf(S)^T$ 是预计算的。

证明。 形式正确性可验证如下:
$$
〈\text{Dec}(S, C), \text{Dec}(S, D)〉_F= 〈U, V〉_F= \text{Tr}(U^T \cdot V)= \text{Tr}([f(S) \quad J]^T C^T D[f(S) \quad J]) \
\overset{(1)}{=} \text{Tr}(C^T D[f(S) \quad J][f(S) \quad J]^T)= \text{Tr}\left(\begin{bmatrix}C^T_1 D_1 & C^T_1 D_2 \ C^T_2 D_1 & C^T_2 D_2\end{bmatrix}\begin{bmatrix}f(S)f(S)^T & f(S)J^T \ Jf(S)^T & JJ^T\end{bmatrix}\right) \
= \text{Tr}\left(\begin{bmatrix}C^T_1 D_1S^ + C^T_1 D_2 \tilde{S} & * \ * & C^T_2 D_1 \tilde{S}^T+ C^T_2 D_2JJ^T\end{bmatrix}\right) \
\overset{(4)}{=} \text{Tr}(C^T_1 D_1S^
+ C^T_1 D_2 \tilde{S})+ \text{Tr}(C^T_2 D_1 \tilde{S}^T+ C^T_2 D_2JJ^T) \
\overset{(3)}{=} \text{Tr}(C^T_1 D_1S^ )+ \text{Tr}(C^T_1 D_2 \tilde{S})+ \text{Tr}(C^T_2 D_1 \tilde{S}^T)+ \text{Tr}(C^T_2 D_2JJ^T) \
\overset{(1)}{=} \text{Tr}(C^T_1 D_1S^
)+ \text{Tr}(C^T_1 D_2 \tilde{S})+ \text{Tr}(\tilde{S}^T C^T_2 D_1)+ \text{Tr}(D_2JJ^T C^T_2) \
\overset{(2)}{=} \text{Tr}(C^T_1 D_1S^ )+ \text{Tr}(C^T_1 D_2 \tilde{S})+ \text{Tr}(D^T_1 C_2 \tilde{S})+ \text{Tr}((C_2J)(D_2J)^T) \
\overset{(3)}{=} \text{Tr}(C^T_1 D_1S^
+(C^T_1 D_2+ D^T_1 C_2) \tilde{S})+ 〈C_2J, D_2J〉_F \
= \text{Tr}(W_1S^*+ W_2 \tilde{S})+ \xi= \text{DecIP}(S; \text{InnerPc}(C, D)).
$$
这里,$=(i)$ 意味着等式在第 $i$ 个性质($i= 1,2,3,4$)下成立,如第2.1节所述。证明完成。

3.2 迈向更通用的构造

我们在第3.1节讨论的方案假设所有计算都是针对矩阵进行的。在本小节中,我们说明更一般的论证是可能的。
固定一个由定义2中的$\text{Add}$、$\text{Mul} \in \mathcal{F}$ 构成的PHE方案。我们展示如何高效地实现矩阵内积的安全内积,如图1所示。我们的目标是计算两个矩阵 $M_1$ 和 $M_2 \in R^{m\times l}$ 的内积。

步骤1 (构造嵌入/提升函数)。 PHE方案可通过嵌入/提升函数用于加密矩阵:对于每个空间$X \in{SK, PK,M, CT}$,我们定义一对嵌入函数 1 $\text{Emb}_X$:
嵌入函数可能是一个概率算法。然而,为了避免复杂性,我们将其视为确定性函数。

示意图0

图1. 通用方法的概述

$R^{ \times } \mapsto X$ 和一个提升函数$\text{Lif}_X$: $X \mapsto R^{ \times }$。每个空间中矩阵的大小可以不同。为了使该方案形式上正确,必须满足以下条件:
$$
\text{Lif}_X \circ \text{Emb}_X:= \text{id},
$$
其中,$\text{id}$ 是 $R^{ \times }$ 上的恒等映射。特别地,我们令 $m_i=\text{Emb}_M(M_i)$,因此 $M_i= \text{Lif}_M(m_i)$ 成立。

步骤2 (通过定理1构造实现函数)。 为了利用第3.1节中的通用构造,我们定义解密函数的提升。对于原始方案中的 $\mu$,我们在定理1中构造一对函数 $f$,使得
$$
\text{Lif} M(\mu(S, CT))= g(CT) \cdot[f(S) \quad I].
$$
利用这些函数,我们通过$\text{InnerPc}$ 和 $\text{DecIP}$ 在定理 1 中如下定义实现内积的函数:
$$
\text{NewInnerPc}(CT_1, CT_2)= ip:= \text{InnerPc}(\text{Lif}
{CT}(CT_1), \text{Lif} {CT}(CT_2))
$$
and
$$
\text{NewDecIP}(S, ip):= \text{DecIP}(\text{Lif}
{SK}(S), ip).
$$
显然,它们满足
$$
\text{NewDecIP}(S, \text{NewInnerPc}(CT_1, CT_2)) := \text{DecIP}(\text{Lif} {SK}(S), \text{InnerPc}(\text{Lif} {CT}(CT_1), \text{Lif}_{CT}(CT_2))) \
\overset{\text{Th1}}{==} \text{Tr}(W_1S^*+ W_2 \tilde{S})+ \xi= 〈\text{Lif}_M(\mu(S, CT_1)), \text{Lif}_M(\mu(S, CT_2))〉_F.
$$

步骤3 (定义一个去噪函数). 最后,我们构造一个去噪函数 $\varepsilon_{IP}: R\rightarrow R$。如果它具有透明性,则成立
$$
\varepsilon_{IP}(〈\text{Lif} M(\mu(S, CT_1)), \text{Lif}_M(\mu(S, CT_2))〉_F) \
= 〈\text{Lif}_M(\varepsilon \circ \mu(S, CT_1)), \text{Lif}_M(\varepsilon \circ \mu(S, CT_2))〉_F \
= 〈\text{Lif}_M(m_1), \text{Lif}_M(m_2)〉_F= 〈M_1, M_2〉_F.
$$
总之,我们证明了只要具备以下函数,就可以利用任何部分同态加密(PHE)构造一个安全内积方案:步骤1中的提升和嵌入函数,步骤2中的 $g$ 和 $f$,以及步骤3中的去噪函数 $\varepsilon
{IP}$。

4 应用于基于LWE的同态加密方案

在本节中,我们展示如何利用第3.1节所述的通用方法,构造一个形式上正确的 PHE方案,以支持向量内积计算。该方案基于现有的基于LWE的方案,即 Aono-Hayashi-Phong-Wang方案[1],如图2所示,它是文献[12]中的公钥加密方案的一个同态变体。

图2. Aono-Hayashi-Phong-Wang方案 [1]

我们引入一些符号:对于一个导出 $s> 0$,令$\mathbb{Z} {(0,s^2)}$ 表示在整数 $\mathbb{Z}$ 上的离散高斯分布,其概率密度函数与$\exp(-\pi x^2/s^2)$ 成正比。2符号$y \leftarrow_g \mathbb{Z} {(0,s^2)}$ 和 $Y \leftarrow_g \mathbb{Z}^{n\times m} {(0,s^2)}$ 分别表示从离散高斯分布中采样一个整数 $y$,以及矩阵 $Y$ 的每个元素均独立地从离散高斯分布中采样。对于集合 $D$, $Y \leftarrow \$ D$ 表示 $Y$ 从 $D$ 中均匀采样。我们考虑分解$\text{Dec} = \varepsilon \circ \mu$,其中
$$
\mu(S, c=(c_1, c_2)):= c_1S+ c_2 \mod q=(c_1, c_2) \cdot[S\quad I] \mod q
$$
该定义与概率密度函数正比于$\exp(-x^2 /2s^2)$ 的正态分布 $N(0, s^2)$ 不一致。然而,这在密码学家中是一种传统。

最后,定义去噪函数 $\varepsilon_{IP}(a) := a \mod p$,从而完成如下方案。

一种面向向量的基于LWE的构造: 所提出的方法包含以下算法$\text{ParamGen}(1^\lambda) \rightarrow pp$、$\text{KeyGen}(1^\lambda) \rightarrow(pk, sk)$、加密算法$\text{Enc}(pk, m) \rightarrow c$、解密$\text{Dec}(sk, c) \rightarrow m$ (如图2所示),以及$\text{内积P}(c, c’) \rightarrow ip$ 和$\text{DecIP}(sk, ip) \rightarrow〈m, m’〉$,其定义如下:
给定向量 $U=(u_1,…, u_l)$ 和 $V=(v_1,…, v_l)$ 的密文 $\in \mathbb{Z}^{1\times l} p$ $C=(C_1, C_2)$,$= \text{Enc}(pk, U)$ $D=(D_1, D_2)$,$= \text{Enc}(pk, V) \in \mathbb{Z}^{1\times(n+l)}_q$,我们定义
• $\text{内积Pc}(C, D):=((W_1, W_2) \xi) = ip$,其中
$$
W_1= C^T_1 \cdot D_1:=(\alpha
{ij}) {n\times n} \mod q, \
W_2= C^T_1 \cdot D_2+ D^T_1 \cdot C_2:=(\beta
{ij}) {n\times l} \mod q, \quad \xi= 〈C_2, D_2〉 \mod q.
$$
• $\text{DecIP}(S; ip)$:
$$
〈U, V〉= \text{Tr}(W_1\cdot S^ +W_2\cdot S^T)+\xi= \sum_{i=1}^n \left( \sum_{k=1}^n \alpha_{ik}\gamma_{ki}+ \sum_{j=1}^l \beta_{ij} s_{ij} \right)+\xi \mod q,
$$
其中用于 $S=(s_{ij})_{n\times l}$ 的解密密钥 $S^
= SS^T:=(\gamma
{ij})_{n\times n}$ 是预计算的。
返回明文 $U$ 和 $V$ 的内积
$$
〈U, V〉= 〈U, V〉 \mod p.
$$

5 应用于基于环LWE的部分同态加密方案

在本节中,我们进一步证明了我们的通用构造方法可以应用于非基于矩阵的方案。为了使用第3.2节中描述的框架,我们需要明确给出五个函数$\text{Emb}$、$\text{Lif}$、$g$、 $\varepsilon_{IP}$。
让我们考虑基于Lauter-Naehrig-Vaikuntanathan环上学习误差问题的方案[11]在环 $R_q= \mathbb{Z}_q[x]/$ 中,其中素数为 $q$。特别地,我们使用 $R=\mathbb{Z}[x]/(x^n+ 1)$。在本节中,多项式 $n$ 的次数是固定的。该方案的概要如图3所示。

以下符号列表可能对理解有所帮助。对于多项式 $u= u(x) = u_0+ u_1x+ \cdots + u_{n−1} x^{n−1} \in R$,其变量向量和系数向量分别定义为 $X= (1, x,…, x^{n −1})$ 和 $u=(u_0, u_1,…, u_{n−1})$。显然, $u= u \cdot X^T$ 成立。$u \leftarrow_g R_{(0,s^2)}$ 表示环上的离散高斯分布,即 $u$ 的每个系数均独立地从 $\mathbb{Z}_{(0,s^2)}$ 中采样得到。

使用矩阵
$$
K= \begin{bmatrix}
0 & 1 & 0 & \cdots & 0 \
0 & 0 & 1 & \cdots & 0 \
\vdots & \vdots & \vdots & \ddots & \vdots \
0 & 0 & 0 & \cdots & 1 \
-1 & 0 & 0 & \cdots & 0
\end{bmatrix},
$$
集合 $R$ 和 $\mathbb{Z}^{n\times n}$ 的一个子集可以被确定。更具体地说,将 $u(x) \in R$ 映射到 $u(K)$ 的规范映射 $F$ 是一个环同态。因此,对模 $q$ 进行自然限制可得到环同态:
$$
F_q: R_q \mapsto u(K) \mod q.
$$
我们称 $u \in R$ 系数循环矩阵的像为:
$$
F(u)= \begin{bmatrix}
u_0 & u_1 & \cdots & u_{n−1} \
-u_{n−1} & u_0 & \cdots & u_{n−2} \
\vdots & \vdots & \ddots & \vdots \
-u_1 & -u_2 & \cdots & u_0
\end{bmatrix}.
$$
我们可以看到矩阵的第$(i+ 1)$ 行是 $ux^i$ 的系数向量,且 $uX^T= F(u)X^T$ 成立。
对于元素 $u= \sum_{i=0}^{n−1} u_i x^i,$,令 $u(t)$ 表示具有移位系数 $u$ 的下一个元素:
$$
u(t):= - \sum_{i=0}^{n−1} u_i x^{n−i} \in R.
$$
很容易验证
$$
F(u(t))= F(u)^T.
$$
在第3.2节论证的步骤1中,环中的一个元素可以被视为从其系数循环矩阵嵌入而来。嵌入/提升函数均使用 $F$:
– $\text{Lif} M(m) := F(m) \in \mathbb{Z}^{n\times n}_p$,且 $\text{Emb}_M(F(m)) := m \in R_p$;
– $\text{Lif}
{CT}(c_1, c_2) :=(F(c_1) \quad F(c_2)) \in \mathbb{Z}^{n\times 2n} q$,且 $\text{Emb} {CT}(F(c_1) \quad F(c_2)) :=(c_1, c_2) \in R^2_q$;
– $\text{Lif} {SK}(S) := F(M) \in \mathbb{Z}^{n\times n}_q$,且 $\text{Emb} {SK}(F(S)) := F^{-1}(F(S)) = S \in R_q$。

在第3.2节论证的步骤2中,验证关系
$$
\text{Lif} M(\mu(S, CT))=(F(c_1), F(c_2))[F(S) \quad I] \mod q
$$
成立,这意味着定理 $f$ 中的函数1是恒等映射。因此,我们得到用于系数循环矩阵的实现函数 $\text{NewInnerPc}$ $\text{NewDecIP}$ 如下:
$$
\text{InnerPc}(F(C), F(D))= ip:=(F(W_1), F(W_2), \xi) \mod q, \
\text{DecIP}(F(S), ip)= \text{Tr}(F(W_1)F(S)F(S)^T+ F(W_2)F(S)^T )+ \xi_F \mod q,
$$
其中 $F(W_1) = F(C_1)^T F(D_1)$, $F(W_2) = F(C_1)^T F(D_2) + F(D_1)^T F(C_2)$,且 $\xi_F=〈F(C_2) F(D_2)〉_F \mod q$。由于 $F_q$ 是一个环同态映射,嵌入回后,我们得到在 $R_q$ 上实现函数。
最后,在第3.2节论证的步骤3中,定义去噪函数$\varepsilon
{IP}(B) := B \mod p$ 完成方案如下。

图3. 基于环LWE的劳特-内赫里格-瓦伊昆塔纳坦方案 [11]

一种用于 n维向量的基于环LWE的构造: 该方案包含算法$\text{ParamGen}(1^\lambda) \rightarrow pp$、 $\text{KeyGen}(1^\lambda) \rightarrow(pk, sk)$、加密算法$\text{Enc}(pk, m) \rightarrow c$、解密$\text{Dec}(sk, c) \rightarrow m$(如图3所示),以及$\text{内积P}(c, c’) \rightarrow ip$ 和$\text{DecIP}(sk, ip) \rightarrow 〈m, m’〉$,定义如下:
• $\text{内积P}(c, c’)$:对于 $c= \text{加密算法Enc}(pk, m) =(c_1, c_2)$ 和 $c’= \text{加密算法Enc}(pk, m’) =(d_1, d_2) \in R^2_q$,定义
$$
ip:=((W_1, W_2), \xi), \tag{4}
$$
where $W_1= c^{(t)}_1 d_1 \in R_q$, $W_2= d^{(t)}_1 c_2+ c^{(t)}_1 d_2 \in R_q$, $\xi= c^{(t)}_2 d_2 \mod x \in \mathbb{Z}_q$.
• $\text{DecIP}(S, ip)$:
$$
\text{IP}:=(W_1S^ + W_2S^{(t)} \mod x)+ \xi \mod q,
$$
其中$S^
= SS^{(t)} \in R_q$ 是预计算的。
返回明文 $m$ 和 $m’$ 的系数向量的内积
$$
〈m, m’〉:= \text{IP} \mod p.
$$
形式化正确性见附录A。

6 安全内积的比较

我们比较了三种方法:朴素、打包 [14], 和所提出的方法(见第5节)在劳特-内赫里格-瓦伊昆塔纳坦方案上的表现[11]。该方案支持 $R_p$ 中的同态加法和同态乘法。

对于 $(c_1, c_2) = \text{Enc}(pk, m)$,$(d_1, d_2) = \text{Enc}(pk, m’)$,同态乘法产生 $c_{\text{mul}}= \sum_{i=0}^2 C_i\omega^i= c_1d_1\omega^2+(c_1d_2+ c_2d_1)\omega+ c_2d_2$,其中 $\omega$ 表示一个符号变量,而解密时需要计算 $\text{DecM}(S, c_{\text{mul}}) :=\sum_{i=0}^2 \text{Dec}(S_i, C_i) \mod p.$。因此,在一次同态乘法之后,解密需要三次 $\text{Dec}$ 操作3。

为简便起见,我们在此设置向量维度 $w= n$。

朴素方法: 基于基于环LWE的方案,可以通过加密 $U’ i= u_i, V’_i= v_i \in R_p$ 来为 $U, V$ 轻松构造安全内积。由于该方案支持同态加法和乘法,
$$
\sum
{i=1}^n \text{Enc}(pk, U’ i) \cdot \text{Enc}(pk, V’_i)= \text{Enc}(pk, \sum {i=1}^n U’ iV’_i) \
= \text{Enc}(pk, \sum
{i=1}^n u_iv_i)= \text{Enc}(pk, 〈U, V〉).
\tag{5}
$$
该方法需要 $n − 1$ 次同态加法和 $n$ 次同态乘法,以及一次$\text{DecM}$ 解密操作。

打包方法: 在此上下文中可以使用多种打包方法 [11,14,16]。然而,由于 [11,16] 中的打包方法适用于更大的整数向量(远大于 $p$),我们采用 [14] 中所提出的方法。在此,一个明文 $m$ 按照第1节中描述的两种不同形式 $\text{pm}^{(1)}(m)$ 和 $\text{pm}^{(2)}(m)$ 进行修改。然后,对于明文 $u$ 和 $v$,$\text{Enc}(pk,\text{pm}^{(1)}(u))$ 与 $\text{Enc}(pk,\text{pm}^{(2)}(v))$ 的乘积等于
$$
\text{Enc}(pk, \text{pm}^{(1)}(u)\cdot \text{pm}^{(2)}(v))= \text{Enc}(pk,\sum_{i=0}^{n−1} u_iv_i+(\text{non-constant terms})).
\tag{6}
$$
因此,通过模 $x$,可以通过一次 $R_p$-乘法来计算系数向量$u$ 和 $v$ 的内积。
这意味着安全内积可通过一次同态乘法和一次$\text{DecM}$ 操作实现解密。
请注意,这种方法对一个明文需要两个密文,即 $m$ 的 $\text{Enc}(pk,\text{pm}^{(1)}(m))$ 和 $\text{Enc}(pk, \text{pm}^{(2)}(m))$。

提出的方法: 使用第5节中所提出的基于环LWE的构造,可以计算$\text{内积P}$ 的3 $R_q$-乘法和 $2n$ $\mathbb{Z}_q$-乘法,以及$\text{DecIP}$ 的 $2n$ $\mathbb{Z}_q$-乘法。$\text{DecIP}$。
由于在 $R_q$ 中,一次乘法运算可以通过基于FFT的方法使用 $O(n\log n)$ $\mathbb{Z}_q$ 次乘法运算完成,因此所提出的方法在理论上比朴素方法和打包方法更高效 (见表1)。实现上的比较将包含在完整版本论文中4。

表1. 劳特-内赫里格-瓦伊昆塔纳坦方案的比较 [11]

方法 外包同态计算 (操作) 解密 (操作) 用于安全内积的密文大小 (位) InnerP输出大小 (位)
朴素 $4nR_q$-Mul $2R_q$-Mul $n \cdot 4n\lceil\log_2 q\rceil$ $3n\lceil\log_2 q\rceil$
打包 [14] $4R_q$-Mul $2R_q$-Mul $2 \cdot 4n\lceil\log_2 q\rceil$ $3n\lceil\log_2 q\rceil$
我们的方式(第5节) $3R_q$-Mul + $n\mathbb{Z}_q$-Mul $2n\mathbb{Z}_q$-Mul $(2n+1)\lceil\log_2 q\rceil$ $4n\lceil\log_2 q\rceil$

$\text{内积P}$ 表示在密文上计算内积的算法(见公式(5)、(6)和(4)); $n$ 和 $q$ 是系统参数;假设向量维度固定为 $n$; $R_q$-Mul 和 $\mathbb{Z}_q$-Mul 分别表示在 $R_q$ 和 $\mathbb{Z}_q$ 上的乘法操作。

7 结论

本文提出了一种用于向量(或矩阵)安全高效内积计算的通用方法。我们证明了所提出的方法适用于基于LWE和基于环LWE的同态加密方案,这些方案具有抵御量子计算机攻击的潜力。安全内积已知可用于隐私保护模式匹配和安全统计分析。在未来的工作中,我们旨在将该方法应用于更多的PHE方案,并开发安全内积的新应用。
当前研究关注的是一个独立安全计算问题。由于同态计算的输入是密文,因此所使用的基于LWE和基于环LWE的PHE方案具有IND-CPA安全性,相应的PHE方案的安全性不会被削弱。然而,如果我们的方案作为子协议用于更大规模的计算中,则必须系统地研究其安全问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值