基于格的重加密函数混淆
摘要
程序混淆是一种编译器,可将程序转换为难以理解的形式,同时保持其原始功能。尽管Barak et al.提出了通用的不可能性结果,但针对某些特定函数族的安全混淆已被提出。重加密函数是一种有用的原语,可将一个实体的密文转换为另一实体公钥下的密文。Hohenberger et al.在TCC’07上构造了一种特殊重加密函数,并基于经典困难性假设对其进行了安全混淆。本文中,我们基于标准带误差学习(LWE)假设构造了一个新的重加密函数并实现其安全混淆。LWE已被证明可归约为标准格问题,而标准格问题被认为能够抵御量子密码分析,即具有后量子安全性。此外,我们详细讨论了代理重加密与重加密函数的混淆这两种密码学原语之间的关系。版权所有 © 2014 John Wiley & Sons, Ltd.
关键词
混淆;重加密;格
引言
混淆最初在计算机编程领域被研究,可以被视为一种将程序代码转换为难以理解的形式同时保持原始功能的编译器。然而,在计算机编程领域,通常使用简单的置换和添加冗余来混淆程序,缺乏形式化分析和安全证明。在Barak et al.[1]将混淆的概念引入密码学领域后,是否存在针对密码学函数的安全混淆器成为了最引人注目且有趣的问题之一。如果存在安全混淆,则有许多有趣的應用,例如将私钥加密转化为公钥加密、实现全同态加密以及软件保护[2]。Barak et al.提出的混淆形式化安全要求定义为“虚拟黑盒性质”,即从混淆程序中能够计算出的任何信息,也可以通过预言机访问原始程序高效地计算出来。然而,在这种强定义下,已证明对所有函数族的通用混淆是不可能的。因此,后续的研究主要集中在适当地放宽混淆的定义,使其达到合理且有意义的程度[3–5],并针对特定函数族实现安全混淆。
对于函数[2,6,7]。尽管存在一般性的不可能性结果,但对于某些简单函数仍存在安全混淆方法,例如点函数[3,8–12]和超平面成员谓词函数[13]。此外,在其他放宽的定义下,已提出对复杂密码学函数的安全混淆方案,例如加密签名[6,14]和重加密[7]。另外,基于某些硬件假设,也取得了一些关于安全混淆的一般性成果[15–17]。最近,基于多线性假设,在通用编码模型中提出了通用混淆结果[18–20]。
首个针对复杂密码学函数的安全混淆方案由 Hohenberger et al.在[7]中提出。文献[7]中提出了一个新定义,称为“平均情况下的虚拟黑盒性质”(ACVBP),该定义仅要求对电路族中的随机电路进行混淆。这一放宽的定义对于许多密码学函数仍然有意义,因为电路的随机选择对应于密码学密钥的随机选取。该论文中构造了一个特定的重加密函数,并对其进行了安全混淆。重加密函数是一种有用的原语,可将发给一方的密文转换为另一方公钥下的密文。考虑Alice希望邮件服务器将其邮件转发给Bob的情况,她可以生成一个重加密函数的混淆版本。
邮件服务器利用混淆程序可以转换电子邮件,同时无法获取关于Alice的私钥的任何信息。Hohenberger et al. 构造的安全性基于经典的判定性线性假设。
我们的工作
我们的工作主要包含两个部分:
(1)首先,我们构建了一种新的重加密函数,并基于标准的带误差学习(LWE)假设对其进行安全混淆。LWE已被证明可归约到标准格问题。据我们所知,目前尚不存在针对重加密函数的基于格的混淆方案。基于格的密码学构造在后量子密码学中被广泛研究,因其安全性基于最坏情况下的困难性且结构简洁。许多基于格的密码学构造,如公钥加密[21–23]、基于身份的加密[24]、数字签名[25,26]以及群签名[27]已被提出,其安全性证明均基于短整数解问题或 LWE问题[23,28],而这些问题可归约到格中的标准困难问题。
(2)作为一种与重加密函数混淆类似的原语,代理重加密(PRE)由Blaze、Bleumer 和 Strauss在[29]中首次提出。这一新原语允许半可信代理将发给 Alice的密文转换为发给Bob的密文,而无需获取明文消息。然而,代理无法获知任何关于使用任一密钥加密的消息信息。在公钥加密和基于身份的加密背景下,已存在许多PRE方案[30–33]。最近,提出了两个基于格的PRE方案[34,35]。我们将详细讨论这两种原语之间的关系与差异。
本文的其余部分组织如下。在第2节中,我们简要介绍了本文所使用的安全假设和定义。第3节构建了一个特殊重加密功能性。第4节描述并分析了重加密功能性的混淆器。在第5节中,我们讨论了代理重加密与重加密函数的混淆之间的关系。最后,在第6节中给出了结论。
2. 预备知识
在本部分中,我们首先简要介绍在我们的构造中使用的安全假设,即LWE假设以及分布的定义,即离散正态分布。LWE假设主要应用于基于格的密码系统,并且可以归约到格中的标准困难问题。然后我们描述本文所使用的混淆定义,该定义源自[7]中的定义。
2.1. 带误差学习假设
定义2.1 (As,分布) . 对于正整数n和q, 2,一个向量s ∈ Znq,以及一个在Zq上的概率分布 ,定义 As,为如下分布在Znq×Zq上:随机均匀选择一个向量a ∈ Znq,一个误差项x ∼ ,,并输出(a,⟨a,s⟩+x)。
存在两个版本:LWE问题的搜索版本和决策版本。
定义2.2 (LWEq,问题 搜索版本) . LWEs问题≡ LWEq, n维中的搜索版本定义如下:给定访问一个预言机的权限,该预言机可产生来自≡As, ≡的独立样本,其中s为均匀随机选择的s ∈ Znq,要求以显著概率输出s,该概率涵盖预言机和算法的所有随机性。
定义2.3 (LWEq,问题 决策版本) . LWEs问题≡ LWEq, n维中的决策版本定义如下:给定访问一个预言机的权限,该预言机可产生来自≡As, ≡的独立样本,其中s为均匀随机选择的s ∈Znq,判断有序对(ai,bi)是来自均匀分布,还是由分布≡As,≡生成。
LWE问题首次被提出于工作[23]中,雷格夫证明了当误差从离散正态分布中采样时,存在一个从最坏情况下的近似格问题到求解LWE的随机实例的量子归约。另一项工作提出了从某些非标准格问题到LWE的经典归约[36]。此外,在[23]中证明了LWE问题的决策版本与搜索版本一样困难。
有许多基于LWE问题构建的加密方案和基于身份的加密方案[21–24]。
2.2. 离散正态分布
接下来,我们给出本文中将使用的离散正态分布的定义。
定义2.4 (连续正态分布[25])。中心位于Rm 中 v 、标准差为 σ 的连续正态分布由以下函数定义:
$$
\rho_{v,\sigma}(x)= \frac{1}{(2\pi\sigma^2)^{m/2}} e^{- | x-v |^2 / 2\sigma^2}.
$$
当 v= 0, it is written as $\rho_{\sigma}(x)$.
定义2.5 (离散正态分布 [25])。中心位于某个 v ∈Zm、标准差为 σ > 0 的 Zm 上的离散正态分布定义为 $D_{Z^m,v,\sigma}(x)=\rho_{v,\sigma}(x)/\rho_{\sigma}(Z^m)$,其中 $\rho_{\sigma}(Z^m)=\sum_{z∈Z^m}\rho_{\sigma}(z)$。
引理2.1 。设 c ≥ 1和 C = c ⋅ exp((1−c²)/2) < 1,则对于任意实数 s > 0 和任意 n ≥ 1,
$$
Pr[|D_{Z^n,s}|≥ c ⋅ \sqrt{n}s] ≤ C^n
$$
2.3. 混淆定义
定义2.6 (平均情况混淆 [7])。混淆器 Obf 是函数族C的安全平均情况混淆器,如果它满足以下三个要求:
-
功能性 。“以压倒性概率,Obf(C) 在所有输入上的行为与 C 几乎完全相同”。存在一个可忽略函数 neg(n),使得对于任意输入长度 n,对于任意 C ∈ Cn
$$
Pr_{\text{coins of Obf}} [\exists x ∈ {0, 1}^n : Δ((Obf(C))(x), C(x)) ≥ neg(n)] ≤ neg(n)
$$ -
多项式慢化 。混淆 Obf(C)的执行时间受限于原始函数 C 执行时间的多项式。
-
ACVBP 。若满足以下条件,则C的混淆器Obf符合ACVBP。对于每个PPT区分器D、每个多项式p(·)、所有足够大的n ∈ N以及每个z ∈{0,1}^{poly(n)},均存在一个PPT模拟器S。
$$
\left|Pr_{C←C_n; C’←Obf(C)}[D(C’, z)= 1] - Pr_{C←C_n; C’‘←S(1^n, z)}[D(C’‘, z)= 1]\right| < \frac{1}{p(n)}
$$
在第3节中,我们构造了一个特殊的重加密函数,并基于LWE假设,在此混淆的平均情况定义下证明了该重加密函数的混淆安全性。
3. 一种特殊的加密方案和重加密功能性
在本节中,我们构造了一种特殊的加密方案和一种基于 [21](图1)中的基于格的加密方案的重加密功能性,然后为此提出了一个安全混淆方案。
3.1 特殊加密方案 …
我们的特殊加密方案…在图2中进行了描述。该加密算法支持两种形式的密文,并通过额外输入β ∈ {0, 1}来选择其中一种形式。对于第一种形式,加密和解密算法与基于格的加密…1在[21]中的相同。对于第二种形式,加密和解密基于扩展加密方案…2,我们将在图3中首先对其进行描述。
加密方案…2 是对…1 的扩展,用于对更大的数进行加密。这里我们仅给出方案描述,详细参数将在安全性证明部分讨论。
接下来,我们描述基于这两个加密方案的特殊加密方案⋯⋯该加密方案由四个算法组成的元组 = (Setup,KeyGen,Enc,Dec) 构成。
该特殊加密方案…满足选择明文攻击(CPA)安全性。由于存在两种密文形式,因此我们从两个方面证明其CPA安全性。
定理1 . 设q为 λ位素数且l = ⌈2λ/2⌉ + ⌈2λ/2⌉。q ≥5l²r(m + 1), α ≤ 1/√(r⋅m + 1) ∧ logn⌋且 χ= N_α,以及 m ≥ 2nlgq。则在判定性LWEq,χ困难的假设下,该加密方案… 是CPA安全的。
证明 。我们针对两种不同的密文形式证明了CPA安全性。
(1)对于第一种形式的密文,密文由Enc1算法生成。首先,我们证明公钥分布在统计上接近于Znq上的均匀分布。根据[21](完整版本)中的推论5.4,令m ≥ 2nlgq,则对于除占比为2q⁻ⁿ以外的所有A ∈ Zn×mq,以及任意r ≥ √(logm),当e ∼ DZm,r时,伴随式U = Ae mod q的分布在统计上接近于Znq上的均匀分布。其次,语义安全几乎可以直接从LWE困难性假设得出。我们断言,对于任意比特b = 0或1所对应的密文(c1, c2),在假设 LWEq,χ困难的前提下,攻击者的整体视图(A, c1, U, c2)与均匀分布不可区分。注意到该视图 A, c1=AᵀS +x mod q, U, c2 =UᵀS +x+b ⌊q/2⌋ mod q 仅包含m + 1个来自LWE分布As,χ,在假设LWEq困难性的前提下与均匀分布不可区分,从而证明了第一类密文的CPA安全性。
(2)对于第二类密文,密文由两部分组成。第一部分Ci,j是通过Enc2算法得到的密文矩阵。因此我们首先证明Enc2算法的CPA安全性。其语义安全性证明与前述通过Enc1算法对第一类密文的证明类似。Enc2方案(A, C1=AᵀS +x mod q, U, C2=UᵀS+x+b⌊q/l+1⌋ mod q)的视图仅包含m+1个来自LWE分布As,χ ,的样本,在假设LWEq困难性的前提下这些样本与均匀分布不可区分,χ。因此,第一部分Ci,j是CPA安全的。注意到第二部分C(m+1)m+1 = PᵀQ +x +b ⌊q/2⌋ mod q是当P和Q未知时,与Zq中的随机元素不可区分。因此,第二类密文也满足CPA安全性。
定理2 。设q为 λ位素数,且l = ⌈2λ/2⌉ + ⌈2λ/2⌉。若q ≥5l²r(m + 1), α ≤ 1/√(r⋅m + 1) ∧ logn⌋且 χ=N_α,以及m ≥ 2nlgq,则…的解密算法以压倒性概率是正确的。
证明 。我们证明两种不同密文形式的正确性。
(1) 对于第一种形式的密文,解密算法计算 c₂ – eᵀc₁=x – eᵀx +b ⌊q/2⌋,因此当 x – eᵀx 与 0 (模q)的距离至多为(例如)q/5l²时,输出 b。根据引理2.1,我们有 ∥e∥ ≤ √(rm)(除指数级小的概率外)。现在,由 χ= N_α 的定义可知,xi = ⌊qy_i⌋e mod q,其中 yi 是均值0、方差为 α² 的独立正态变量。于是 ∥x – y∥ ≤ √(m)σ,根据柯西‐施瓦茨不等式,x – eᵀx 与 q(eᵀy mod 1) 的距离至多为 √(r(m + 1))/2<q/10l²。因此,只需证明 eᵀy < 1/ 10 在压倒性概率下成立即可。由于 yi 相互独立, eᵀy 服从均值为 0、标准差为 ∥e∥ ⋅ α ≤ √(rm) ⋅ α ≤ 1/√(log n⌋) 的正态分布。因此,根据正态变量的尾部不等式,eᵀy > 1/10 的概率可以忽略不计,证毕。故解密算法输出正确的 b。
(2) 对于第二类密文,我们首先证明第一部分 Ci,j 可以通过 Dec2 算法正确解密。该证明与前面提到的 Dec1 的证明类似。Dec2 算法计算 c₂–eᵀc₁=x– eᵀx+B ⌊q/(l+1)⌋,而 x– eᵀx 处于距离 0(模 q)至多为 q/5l²,在我们选择的 q 和 α 下具有压倒性概率。因此, Dec2 算法可以正确解密 B∈{0, …, l}。当第一部分 Ci,j被正确解密后,⋯ 的解密算法计算 C(m+1)m+1– Σi∈[1,m]Σj∈ 1,l j ⋅ 2^(j–1)=x+ b ⌊q/2⌋。因此可以获得正确的 b。
此外,在后续的乘法算法中,输出密文是通过最多l Enc2个密文的同态加法计算得到的。因此,我们要求在执行l次同态加法操作后,Enc2密文仍然能够被正确解密。观察到(x₁+…+ xl) – eᵀ(x₁+…+ xl) 模q下与0的差值至多为 q/(5l),且具有压倒性概率,因此乘法算法的输出密文可以被正确解密。
3.2. 重加密功能性 FRE
回想一下,混淆是相对于一个电路类而言的。现在我们为加密方案…定义一个特殊的重加密电路类,该类可以被轻松分析。
设(PK1,SK1)和(PK2,SK2)为通过独立运行 KeyGen算法生成的两对密钥。当给定一个使用PK1正确加密生成的密文时,重加密电路FRE会解密该密文,然后对结果消息使用第二个公钥PK2重新加密。更正式地,重加密电路RESK1,PK2在输入为c₁= Enc(PK1,0, b)时,计算b= Dec(SK1,c₁),然后计算c₂= Enc(PK2,1,b),最后输出密文c₂。当将 RESK1,PK2应用于密钥查询时,它输出(PK1,PK2)。对于其他格式错误的输入,它返回?。
通过允许攻击者访问重加密预言机,重加密函数的语义安全性可轻松地从加密方案的CPA安全性中获得。然而,由于重加密电路涉及秘密信息,因此不能直接发布或委托给另一方。对重加密电路进行安全混淆可以解决这一问题。
基于格的重加密函数混淆
4. 重加密功能的混淆
4.1. 混淆构造
从上述对重加密函数 FRE 的描述中,我们可以提取出一个电路族 RE(params,(A₁,U₁),(A₂,U₂),e₁):在输入密钥查询时,它输出 (params, (A₁, U₁), (A₂, U₂));在输入一级密文 CA 时,它使用 e₁ 解密得到 b,然后输出二级密文 CB。该电路族 RE(params,(A₁,U₁),(A₂,U₂),e₁) 的混淆器描述如下:
Obf(RE(params,(A₁,U₁),(A₂,U₂),e₁))
- 从电路的描述中获取密钥 (params, (A₁,U₁),(A₂,U₂),e₁)。
- 使用公钥 (A₂,U₂) 下的 Enc2 算法对 e₁ 进行加密。即,
$$
o_{i,j} = \text{Enc} 2((e_1) {i,j}),\quad i \in [1, m],\ j \in [1, \ell]
$$
这里,$(e_1) {i,j}$ 表示 $e_1$ 模 $q$ 的第 $i$ 个元素的第 $j$ 位“比特”。混淆结果是 $o {i,j}$。
混淆器使用参数构造混淆电路 $(o_{i,j},\text{params},(A_1, U_1),(A_2, U_2))$
(1) 在密钥查询时,输出 (参数, (A₁,U₁), (A₂,U₂))。
(2) 在输入一级密文 $C_A=(0,c_1,c_2)$ 时,选择随机的 $S’ \in \mathbb{Z}_q^n$ 来重新随机化密文,即
$$
c’_1 = c_1 + A_1^T S’ \mod q \
c’_2 = c_2 + U_1^T S’ \mod q
$$
(3) 利用 $o_{i,j} = \text{Enc} 2((e_1) {i,j})$ 和 $c’ 1$ 进行计算
$$
C {i,j} = \text{Enc}_2\left(\left[(e_1)_i \cdot c’_1[i]\right]_j\right),\quad i \in [1, m],\ j \in [1, \ell]
$$
这里,$\left[(e_1)_i \cdot c’_1[i]\right]_j$ 表示的是 $e_1$ 的第 $i$ 个元素与 $c’_1$ 的第 $i$ 个元素相乘后对 $q$ 取模的结果的第 $j$ 位“比特”。该过程由图4中描述的 MULTIPLY算法完成。
(4) 输出第二层密文
$$
C_B = \left(1, C_{i,j}, c’_2\right)
$$
4.2. 混淆分析
我们证明混淆 Obf(RE(params,(A₁,U₁),(A₂,U₂),e₁)) 满足定义2.6中平均情况混淆的三个要求。
功能属性 。我们从混淆器的操作中可以看出,
$$
c’_1 = A_1^T(S + S’) + x \mod q \
c’_2 = U_1^T(S + S’) + x + b \left\lfloor \frac{q}{2} \right\rfloor \mod q
$$
是用户A的密文 $C_A$ 的正确重新随机化。
然后,根据MULTIPLY算法的描述,每个 $C’_{i,j}$ 的计算过程最多涉及 $l$ 次对Enc2密文的同态加法。因此,根据定理2的证明,它可以被正确解密。
因此我们观察到在步骤3中,
$$
\sum_{i\in[1,m]} \sum_{j\in[1,\ell]} (e_1) i \cdot c’_1[i]_j \cdot 2^{j-1}
= \sum {i\in[1,m]} (e_1)_i \cdot c’_1[i] \mod q
= e_1^T c’_1 \mod q
= U_1^T(S + S’) + e_1^T x \mod q
$$
因此,输出 $C_B$ 是用户 B 的有效密文,从而满足功能属性。
多项式慢化属性 。在表I和表II中,我们列出了原始重加密电路RE(params,(A₁,U₁),(A₂,U₂),e₁)和混淆电路 Obf(RE(params,(A₁,U₁),(A₂,U₂),e₁))的计算和存储开销。在表I中,Tm表示执行一次模乘法所需的时间,Ta表示执行一次模加法所需的时间。从表中可以看出,混淆电路所需的模乘法次数更少,因此混淆电路的执行时间在原始电路执行时间的多项式范围内。然而,混淆电路的存储开销大于原始重加密电路,因为它需要 $2mn + 2n + \ell + 1 + m(m)$ 个 $\mathbb{Z}_q$ 中的元素。如表III所示,对于合适的参数,混淆电路的存储开销在原始电路存储开销的多项式范围内。
ACVBP 。上述混淆器在决策性LWEq,χ假设下满足 ACVBP。
我们构造一个PPT模拟器S,该模拟器仅具有对电路 RE(params,(A₁,U₁),(A₂,U₂),e₁) 的预言机访问。S随机选择 $e’ \in \mathbb{Z} q^m$,并输出
$$
\text{fake} {i,j} = \text{Enc} 2\left((e’) {i,j}\right),\quad i \in [1, m],\ j \in [1, \ell]
$$
然后我们需要证明这两个分布对于任何PPT区分器D在计算上是不可区分的。
我们通过一系列不可区分的结果的混合来证明这一点。首先,我们证明
命题1 。在LWEq,χ假设下,对于没有解密密钥的概率多项式时间区分器而言,两个分布 $(PK_A,PK_B,o_{i,j},\text{params},z)$ 和 $(PK_A,PK_B,\text{fake}_{i,j},\text{params},z)$ 是计算上不可区分的。
该命题可依据定理1中Enc2方案的CPA安全性轻松证明。如果Enc2的密文之间的统计距离为 $\epsilon$,则这两个分布之间的统计距离至多为 $m\ell\epsilon$。
然后我们证明
命题2 。在判定性LWEq,χ假设下,Nice(DR,n,z) ≈ Junk(DR,n,z),其中 Nice(DR,n,z)/Junk(DR,n,z) 与前述实验 Nice(DC,n,z)/Junk(DC,n,z) 几乎相同,区别仅在于区分器具有对随机预言机R的预言机访问,而非对C的访问。
我们看到,预言机R可以在没有任何辅助信息的情况下被完美模拟,因此该预言机实际上对区分器毫无帮助。因此,命题1中的不可区分性结果意味着 Nice(DR,n,z) ≈ Junk(DR,n,z)。
最后,我们回到最初的实验中,在该实验中区分器具有对重加密预言机C的预言机访问。在此之前,为了证明第三个命题,我们提出了一个判定性双LWE假设,该假设认为:给定两个LWE元组,判断它们是否对应于同一个s是困难的。
定义4.1 (判定性双LWE假设)。给定两个LWE元组 $(A_1, A_1s_1+e_1),(A_2, A_2s_2+e_2)$,其优势
$$
\text{Adv} = \left|\Pr[s_1=s_2:(A_1, A_1s_1+ e_1, A_2, A_2s_2+ e_2)] - \Pr[s_1 \neq s_2:(A_1, A_1s_1+ e_1, A_2, A_2s_2+ e_2)]\right|
$$
可以忽略不计。
该结果可以基于判定性LWE假设轻松证明。(A₂, A₂s₂+e₂) 和 (A₂, A₂s₁+e₂) 在统计上均与均匀分布不可区分。因此我们有
$$
(A_2, A_2s_2+ e_2) \approx_s (A_2, A_2s_1+ e_2)
$$
因此,
$$
(A_1, A_1s_1+ e_1, A_2, A_2s_2+ e_2) \approx_s (A_1, A_1s_1+ e_1, A_2, A_2s_1+ e_2)
$$
这证明了优势是可忽略的。
然后,当区分器具有对重加密预言机 C 的预言机访问时,我们给出命题3。
命题3 。对于任意PPT区分器D,令AdvC和AdvR分别为D在给定重加密预言机C或随机预言机R时区分 Nice与Junk的优势,即
$$
\text{Adv}_C = \text{Adv}\left(\text{Nice}(D_C, n, z), \text{Junk}(D_C, n, z)\right) \
\text{Adv}_R = \text{Adv}\left(\text{Nice}(D_R, n, z), \text{Junk}(D_R, n, z)\right)
$$
则存在一个攻击者A,其以至少为 $ \frac{1}{2}+\frac{1}{4}(\text{Adv}_C - \text{Adv}_R) $ 的概率破解判定性双LWE问题。
不失一般性,假设 $\text{Adv} C > \text{Adv}_R$。攻击者 A 接收一个判定性双LWE元组
$$
\Gamma = (A^ \in \mathbb{Z}_q^{n\times m}, A^{ T}s_1+ x_1 \in \mathbb{Z}_q^m, A^ e^ \in \mathbb{Z}_q^{n\times m}, (A^ e^ )^Ts_2+x_2 \in \mathbb{Z}_q^m)
$$
作为输入,然后
- A选择 $A_1 \in \mathbb{Z}_q^{n\times m}$;$e_1 \sim D {\mathbb{Z}^m,r}$;$e’ \in \mathbb{Z} q^m$,并设置 $PK_A = (A_1, U_1= A_1e_1 \mod q)$,$PK_B = (A^ , U_2= A^ e^* \mod q)$。然后在PKB下计算有效的混淆 $(o {i,j}, i \in [1,m],j \in [1, \ell]) \leftarrow \text{Enc} 2((e_1) {i,j})$ 以及虚假混淆 $(\text{fake} {i,j}, i \in [1,m],j \in [1, \ell]) \leftarrow \text{Enc}_2((e’) {i,j})$ under PKB。
- A采样一个挑战比特 $w \in {0, 1}$ 以决定运行 Nice 还是 Junk。如果 $w= 1$,则 A运行 $D^O(PK_A,PK_B,o_{i,j},\text{params},z)$。如果 $w= 0$,则 A运行 $D^O(PK_A,PK_B,\text{fake}_{i,j},\text{params},z)$,其中预言机 O定义如下。当 D以输入 $(c_1,c_2)$ 查询预言机 O 时,攻击者 A按如下方式响应:
(1) 选择随机 $S_0 \in \mathbb{Z}_q^n$ 以重新随机化密文,即:
$$
c’_1 = c_1 + A_1^T S_0 \mod q \
c’_2 = c_2 + U_1^T S_0 \mod q
$$
(2) 利用 $o_{i,j} = \text{Enc} 2((e_1) {i,j})$ 和 $c’ 1$ 进行计算
$$
C {i,j} = \text{Enc}_2\left(\left[(e_1)_i \cdot c’_1[i]\right]_j\right),\quad i \in [1, m],\ j \in [1, \ell]
$$
(3) Re-randomize each $C_{i,j}=(C_{1,i,j}, C_{2,i,j})$. That is,
$$
C’ {i,j}= \left(C {1,i,j}+ A^{ T}s_1+ x_1 \mod q,\ C_{2,i,j}+(A^ e^*)^Ts_2+ x_2 \mod q\right)
$$
- 最终,D输出 $w’ \in {0,1}$。如果 $w= w’$,A输出 1。否则,如果 $w \neq w’$,A输出 0。
我们看到,当输入实例 $\Gamma=(A^ \in \mathbb{Z}_q^{n\times m}, A^{ T}s_1+ x_1 \in \mathbb{Z} q^m, A^ e^ \in \mathbb{Z}_q^{n\times m}, (A^ e^ )^Ts_2+ x_2 \in \mathbb{Z}_q^m)$ 满足 $s_1= s_2$ 时,在步骤3中,对每个 $C {i,j}$ 的操作都只是正确地重新随机化。因此,上述 A 的步骤正确地模拟了重加密预言机C。
$$
\Pr[A(\Gamma)= 1|\Gamma \in \text{doubleLWE}] = \frac{1}{2} \left( \Pr[\text{Nice}(D_C)= 1] + \Pr[\text{Junk}(D_C)= 0] \right) = \frac{1}{2} + \frac{\text{Adv} C}{2}
$$
如果 Γ不是双LWE元组($s_1 \neq s_2$),则 $C’ {i,j}$ 将被转换为与 $C_{i,j}$ 无关的随机数的加密。因此A正确地模拟了预言机R。类似地,我们有
$$
\Pr[A(\Gamma)= 1]= \frac{1}{2} + \frac{\text{Adv}_R}{2}
$$
因此,基于decisional double LWE假设和命题3,我们得出 $|\text{Adv}_C – \text{Adv}_R|$ 是可忽略的。由命题2可知, AdvR是一个可忽略函数,因此AdvC也是可忽略的。从而我们证明了平均情况下的虚拟黑盒性质。
5. 与代理重加密的关系
代理重加密最初由Blaze、Bleumer 和 Strauss在[29]中提出。这一新原语允许半可信代理将发给Alice的密文转换为发给Bob的密文,而无需获取明文消息。然而,代理无法获知任何关于使用任一密钥加密的消息内容。在PRE中,Alice和Bob必须为代理设置一个代理密钥rkA→B,以便代理进行密文转换。代理密钥生成算法有时需要Alice的私钥和Bob的公钥,而在某些情况下则需要Alice和Bob双方的私钥。通过代理密钥,代理无法计算或推断出Alice和Bob的长期私钥。目前已存在许多PRE方案[30–32],应用于公钥加密和基于身份的加密场景中。最近,提出了两个基于格的PRE方案[34,35]。在这两个基于格的方案中,代理密钥生成需要双方的私钥。
重加密函数的混淆是一个公开程序,它允许任何人(接收者Bob除外)将发给Alice的密文转换为在 Bob公钥下的相同消息的密文。该混淆的生成由 Alice完成,且仅需要Alice的私钥和Bob的公钥。混淆的安全性要求定义为混淆输出与真实重加密预言机之间的不可区分性。接收者Bob作为区分者的情况不予考虑,这与[6,7]中的定义相同。重加密函数的混淆首次在[7]中提出,并在[37]中提出了一个多用重加密的混淆器。据我们所知,我们的构造是首个基于格的重加密函数的混淆方案。
上述两种密码原语实现了类似的功能性。然而,它们主要存在两点不同:
(1) 这两种原语的安全要求不同。在代理重加密中,要求无法从代理密钥计算或推断出委托者的长期私钥。而在重加密函数的混淆中,要求任何能够从混淆程序中计算出的内容,也可以通过黑盒访问重加密预言机来计算。从这个意义上说,混淆的安全定义更强,因为它要求既不能泄露关于私钥的非黑盒信息,也不能泄露黑盒信息。例如,即使存在一个安全的PRE方案,受委托者的代理密钥也不能直接用作混淆程序。尽管私钥无法被计算出来,但代理密钥可能会泄露某些黑盒信息,从而使得能够区分混淆程序与真实的黑盒。最近的基于格的PRE方案[35]满足PRE的安全要求,但代理密钥 rki,j 不满足混淆的安全要求(该代理密钥可通过 A·rki,j= ui–uj 进行验证,这使得其可与真实的重加密预言机相区分)。而在一个更强的PRE定义中,要求即使代理与接收者共谋,也无法计算或推断出委托者的长期私钥。从这个意义上说,这一定义比混淆更强,因为混淆并未考虑接收者作为区分者的情况。[34,35]中的基于格的PRE方案均不满足这种考虑代理与接收者共谋的强定义。
(2) 在代理重加密方案中,代理密钥生成可分为两种情况。在第一种情况下,仅使用第一方的私钥和第二方的公钥。在第二种情况下,需要双方的私钥,并且这两方需要交互以生成代理密钥。而在重加密函数的混淆中,混淆程序由第一方生成,并且仅需要第一方的私钥和第二方的公钥。
从上述比较可以看出,在给定情况下,这两种原语可以相互转换。如果一个PRE方案满足代理密钥生成仅需第一方的私钥和第二方的公钥,并且代理密钥满足混淆的不可区分性要求,那么该代理密钥可作为重加密函数的安全混淆使用。然而,最近的两个基于格的PRE方案并不满足这些转换条件,因此无法直接用作混淆。相反,安全混淆可用作代理密钥,在不考虑代理与接收者共谋的情况下,满足PRE的安全定义。
6. 结论
在本文中,我们首次提出了基于格的重加密功能性的混淆。构造了一个特殊重加密函数,并对其进行了安全混淆。该构造被证明在决策性LWE假设下满足平均情况虚拟黑盒性质。除了我们的构造中所使用的加密方案外,其他加密方案如[22,23]也可以类似地用于构造重加密函数并进行安全混淆。此外,我们详细讨论了代理重加密与重加密函数的混淆之间的关系,并指出了它们在哪些情况下可以相互转换。
534

被折叠的 条评论
为什么被折叠?



