公钥定时释放属性基加密

公钥定时释放属性基加密

摘要

本文提出并研究了一种新的公钥定时释放属性基加密(PKTRABE)概念,可用于解决时间依赖的属性基加密问题。在我们的PKTRABE模型中,发送者对消息进行加密,使得只有在未来的某个指定时间之后,拥有特定属性的预期接收者才能解密该消息。我们首先解释了什么是PKTRABE,然后形式化了基本PKTRABE的概念及其安全游戏模型。最后,我们在随机预言模型下基于BDH和DBDH假设提出了两个具体的安全方案,并总结了结论与未来工作。

关键词: 定时释放 · Attribute-based加密 · Timetrapdoor · 双线性映射

1 引言

属性基加密(ABE)是一种新型的基于身份的加密(IBE),其中身份被视为一组描述性属性。在属性基加密中,用户的公钥和密文均被标记为一组描述性属性,仅当密文的属性与目标用户公钥的属性匹配时,对应的私钥才能解密该密文。此外,属性基加密系统的接收目标是一个用户组,发送者无需知晓该组中每个成员的具体身份,而不仅仅是个别用户。随着研究的发展,属性基加密方案能够提供越来越强大的方法,以实现多接收者数据安全和细粒度访问控制。

时间在时间敏感的实际应用中一直扮演着重要角色,但截至目前,关于与时间相关的属性基加密的研究尚未展开。此处的时间特性是指对消息进行加密,使得接收者只有在未来特定时间点之后才能解密密文,这被称为定时释放加密(TRE)。为解决与时间相关的属性基加密问题,我们提出了一种新的概念——公钥定时释放属性基加密,简称PKTRABE。PKTRABE是TRE和属性基加密的结合。在我们的PKTRABE密码系统中,发送者使用用户组的属性集合将消息与释放时间一起加密,使得只有预期的成员才能在预设的未来释放时间之后解密目标密文。

1.1 我们的贡献

本文的贡献在于通过结合现有密码机制TRE和基本的属性基加密来解决时间依赖的属性基加密问题。首先,我们形式化了PKTRABE的概念及其安全博弈模型。其次,我们提出了两种在随机预言模型下基于BDH和判定性双线性Diffie-Hellman假设可证明安全的PKTRABE构造方案。前者针对单时间服务器场景,而后者关注多时间服务器场景。

1.2 相关工作

我们对时间释放加密(TRE)和属性基加密(ABE)简要概述如下:

TRE允许发送者对消息进行加密,使得只有预定的接收者在预设时间之后才能解密。TRE问题最早由梅[11]于1993年提出,并由里维斯特等[12]在1996年进行了详细阐述。自那时以来,TRE在理论和实践方面都取得了巨大进展。在理论方面,相继提出了TRE的一些新概念。首个可扩展、服务器被动、用户匿名的TRE方案由陈和布莱克提出,首个具有预开启功能的TRE方案由黄等[4]于2005年提出。随后,张等[8]于2008年形式化了安全的公钥TRE概念。最近,安鲁[6]于2014年提出了可撤销的量子TRE。在实际应用方面,TRE已被用于茫然传输[14]和可搜索加密[10]。

属性基加密(ABE)允许用户基于用户属性对消息进行加密和解密。ABE的密码学机制最早由萨哈伊和沃特斯于2005年提出[13]。该原始ABE效率较低,且无法提供细粒度的访问控制。为解决这些问题,已有许多改进和扩展方案被提出。贝克等于2007年给出了两个更高效的ABE方案[1]。戈亚尔等于2006年提出了密钥策略属性基加密[7]。贝滕科特等于2007年提出了密文策略属性基加密,蔡斯也在同年提出了多机构属性基加密[2][5]。最近,李等于2013年将安全外包技术引入了属性基加密[9]。

1.3 组织结构

我们首先解释什么是PKTRABE。在第2节中,我们回顾了安全假设。在第3节中,我们形式化了PKTRABE的概念及其安全博弈模型。在第4和5节中,我们分别提供了两个PKTRABE的构造方案。最后,我们在第6节中进行总结。

2 预备知识

接下来,我们简要回顾双线性映射的定义,并讨论我们的方案安全性所基于的复杂性假设。

2.1 双线性映射

设 $G_1$ 和 $G_2$ 是两个阶为 $p$ 的乘法循环群,其中 $p$ 是一个大素数。双线性映射是一个映射 $e: G_1 \times G_1 \to G_2$,满足以下性质:

  • 可计算性 :存在一种有效算法,可对任意 $g, h$ 计算 $e(g, h) \in G_2$,其中 $g, h \in G_1$。
  • 双线性 :对于任意整数 $a, b \in \mathbb{Z}_p^*$,我们有 $e(g^a, h^b) = e(g, h)^{ab}$。
  • 非退化性 :如果 $g$ 是 $G_1$ 的生成元,则 $e(g, g)$ 是 $G_2$ 的生成元。

2.2 复杂性假设

BDH问题 [3] 在 $G_1$ 中的定义如下:给定输入元组 $(g, g^a, g^b, g^c) \in G_1$,输出 $e(g, g)^{abc} \in G_2$。攻击者 $\mathcal{A}$ 在 $G_1$ 中求解BDH问题的优势为 $\varepsilon$ 当且仅当
$$
\mathrm{Pr}[\mathcal{A}(g, g^a, g^b, g^c) = e(g, g)^{abc}] \geq \varepsilon
$$
其中概率是关于生成元 $g \in G_1^ $ 的随机选择、$a, b, c \in \mathbb{Z}_p^ $ 的随机选择,以及 $\mathcal{A}$ 所使用的随机比特而言的。

类似地,我们说一个挑战者 $\mathcal{B}$ 在 $G_1$ 中求解判定BDH(DBDH)问题具有优势 $\varepsilon$ 时:
$$
|\mathrm{Pr}[\mathcal{B}(g, g^a, g^b, g^c, e(g, g)^{abc}) = 0] - \mathrm{Pr}[\mathcal{B}(g, g^a, g^b, g^c, T) = 0]| \geq \varepsilon
$$
其中概率是关于生成元 $g \in G_1^ $ 的随机选择、$a, b, c \in \mathbb{Z}_p^ $ 的随机选择、$T \in G_1$ 的随机选择,以及 $\mathcal{B}$ 所消耗的随机比特而言的。

定义1。 我们说(判定性)$(t, \varepsilon)$-BDH假设在 $G_1$ 中成立,如果没有任何 $t$ 时间算法在 $G_1$ 中求解(判定性)BDH问题具有至少 $\varepsilon$ 的优势。

有时我们省略 $t$ 和 $\varepsilon$,直接在 $G_1$ 中提及BDH和判定性双线性Diffie-Hellman假设。

3 PKTRABE:定义

假设鲍勃作为教授需要为河南大学计算机学院计算机科学系的所有学生安排下周一的在线考试,但不幸的是,他必须去参加一个重要会议从下周一到下周三。在这种情况下,鲍勃可以采用PKTRABE机制来解决他的问题。

鲍勃提前发送以下消息:
$$
[\text{Enc}(ID’, ts_{pub}, r, M, T), T)
$$
其中 $ID’ = (\text{“Computer Science Department”}, \text{“Computer College”}, \text{“Henan University”})$ 为目标用户组的共同身份属性集,$ts_{pub}$ 为时间服务器的公钥,$r$ 为随机新鲜因子,$M$ 为测试题目,$T$ 为释放时间。所有预期的学生均可提前获取密文,并在未来的预设释放时间后进行解密。我们将此类系统称为非交互式PKTRABE。

定义2.

一个具有单个时间服务器的非交互式基本PKTRABE方案由以下多项式时间随机算法组成:

  • 系统建立 。输入一个安全参数,生成主密钥 $mk$ 和包含误差容限参数 $d$ 的公开参数 $params$。
  • TRSetup 。生成时间服务器的公钥/私钥 $(ts_{pub}, ts_{priv})$。
  • KeyGen 。输入主密钥 $mk$ 和身份标识 $ID$,生成与 $ID$ 相关联的私钥,记为 $D_{ID}$。
  • 加密 。对于公钥 $ID’$, $ts_{pub}$,释放时间 $T$ 和明文 $M$,生成密文 $(C, T)$。
  • RtTrd 。输入时间服务器的私钥 $ts_{priv}$ 和释放时间 $T$,生成时间陷门 $ST$。
  • 解密 。给定私钥 $D_{ID}$、时间陷门 $ST$ 以及使用身份 $ID’$ 加密的密文 $(C, T)$,且满足 $|ID \cap ID’| \geq d$,则输出明文 $M$ 或“拒绝”消息。

形式上,我们通过挑战者 $\mathcal{B}$ 与攻击者 $\mathcal{A}$ 之间的模拟游戏来定义对主动攻击者的安全性,如下所示:

  • 初始化 。攻击者 $\mathcal{A}$ 输出一个身份 $ID^ $ 和一个释放时间 $T^ $,并希望在此处接受挑战。
  • 系统建立 。挑战者 $\mathcal{B}$ 生成公共参数 $params$ 和 $ts_{pub}$,并将它们发送给 $\mathcal{A}$。
  • Phase1 。攻击者 $\mathcal{A}$ 发出查询 $q_1, q_2, …, q_m$,其中查询 $q_i$ 是以下之一:
    1. 私钥查询 $(ID_i)$,其中 $|ID_i \cap ID^ | < d$。$\mathcal{B}$ 通过运行算法KeyGen生成与身份标识 $ID_i$ 对应的私钥 $D_{ID_i}$。$\mathcal{B}$ 将 $D_{ID_i}$ 发送给 $\mathcal{A}$。
    2.
    时间陷门查询 $(T_i)$,其中 $T_i \neq T^ $。$\mathcal{B}$ 通过运行算法RtTrd生成与释放时间 $T_i$ 对应的时间陷门 $ST_i$。$\mathcal{B}$ 将 $ST_i$ 发送给 $\mathcal{A}$。
    3. 对身份 $ID^ $ 和释放时间 $T^ $ 进行解密查询 $(C_i, T_i)$。$\mathcal{B}$ 运行算法Dec,利用私钥 $D_{ID_i}$ 和时间陷门 $ST_i$ 对密文 $(C_i, T_i)$ 进行解密。$\mathcal{B}$ 将明文 $M$ 发送给 $\mathcal{A}$。

这些查询可以是自适应提出的;也就是说,每个查询 $q_i$ 可能依赖于对 $q_1, q_2, …, q_{i-1}$ 的回复。

  • 挑战 :$\mathcal{A}$ 输出两个等长的明文 $M_0, M_1 \in G_2$ 希望对其发起挑战。$\mathcal{B}$ 随机选择一个比特 $b \in {0, 1}$,并将挑战密文设置为 $(C^ , T^ ) = \text{Enc}(ID^ , ts_{pub}, r, M_b, T^ )$。$\mathcal{B}$ 将 $(C^ , T^ )$ 作为挑战发送给 $\mathcal{A}$。
  • 第二阶段 :$\mathcal{A}$ 提出额外查询 $q_{m+1}, …, q_{num}$ 并像第一阶段一样进行响应。
  • 猜测 :最后,攻击者输出一个猜测 $b’ \in {0, 1}$。$\mathcal{A}$ 在 $b = b’$ 时获胜。

我们将此类攻击者 $\mathcal{A}$ 称为IND-sID-T-CCA攻击者。我们定义攻击者 $\mathcal{A}$ 在攻击方案 $\mathcal{E}$ 时的优势为
$$
\mathrm{Adv}_{\mathcal{E},\mathcal{A}}^{CCA} = \left| \mathrm{Pr}[b = b’] - \frac{1}{2} \right|
$$
概率由挑战者 $\mathcal{B}$ 和攻击者 $\mathcal{A}$ 所使用的随机比特决定。

定义3。 我们称一个PKTRABE方案 $\mathcal{E}$ 是 $(t, q_{ID}, q_T, q_C, \varepsilon)$-选择性身份和释放时间、自适应选择密文安全的,如果对于任意运行时间为 $t$ 的IND-sID-T-CCA攻击者 $\mathcal{A}$,其最多进行 $q_{ID}$ 次私钥查询、$q_T$ 次释放时间查询和 $q_C$ 次解密查询,我们有 $\mathrm{Adv} {\mathcal{E},\mathcal{A}}^{CCA} < \varepsilon$。简而言之,我们称 $\mathcal{E}$ 是 $(t, q {ID}, q_T, q_C, \varepsilon)$-IND-sID-T-CCA安全的。

语义安全 。与前述游戏类似,我们定义PKTRABE系统的选择性身份和释放时间、选择明文安全性,但攻击者不允许发出任何解密查询。

定义4。 我们称一个PKTRABE方案 $\mathcal{E}$ 是 $(t, q_{ID}, q_T, \varepsilon)$-选择性身份和释放时间、自适应选择明文安全的,如果 $\mathcal{E}$ 是 $(t, q_{ID}, q_T, 0, \varepsilon)$-选择性身份和释放时间、选择密文安全的。简而言之,我们称 $\mathcal{E}$ 是 $(t, q_{ID}, q_T, \varepsilon)$-IND-sID-T-CPA安全的。

类似地,我们可以形式化具有多个时间服务器的PKTRABE及其安全模型的概念。

4 构造1:单个时间服务器

在本小节中,我们提出具体的单个时间服务器PKTRABE方案,并给出该方案的安全断言。

4.1 方案的描述

我们基于上述定义的双线性映射构建一个非交互式PKTRABE方案。该构造基于[1]。我们的带随机预言机的PKTRABE方案工作如下:
系统建立 。给定安全参数 $k \in \mathbb{Z}^+$,执行以下步骤。
1. 取 $k$ 并生成一个素数 $p$。令 $(G_1, G_2)$ 为一个具有素数阶 $p$ 的乘法群,$e: G_1 \times G_1 \to G_2$ 为一个可接受的双线性映射,$g \in G_1$ 为任意生成元。
2. 选择 $g_1 \in_R G_1$。选取 $y \in_R \mathbb{Z} p^ $ 并计算 $g_2 = g^y$。
3. 选择以下密码学哈希函数:$H: {0, 1}^
\to G_1$。
4. 选择一个容差参数 $d$。
5. 定义拉格朗日系数 $\Delta
{a,S}(x)$,其中 $a \in \mathbb{Z} p^ $ 和元素集合 $S$ 属于 $\mathbb{Z}_p^ $:
$$
\Delta
{a,S}(x) = \prod_{\substack{b \in S \ b \neq a}} \frac{x - b}{a - b}
$$
6. 输出一个公共参数 $params = (p, G_1, G_2, g, g_1, g_2, e, d, H)$ 和一个私有主密钥 $mk = y$。

TRSetup 。选择 $s \in_R \mathbb{Z} p^*$ 作为私钥 $ts {priv}$,并将 $g^s$ 设为时间服务器的公钥 $ts_{pub}$。

密钥生成 。为身份 $ID = (\mu_1, \mu_2, …, \mu_n)$ 生成私钥时,执行以下步骤,其中 $\mu_i \in \mathbb{Z} p^*$:
1. 在 $\mathbb{Z}_p$ 上选择一个随机的拉格朗日插值多项式 $f(\cdot)$,其次数为 $d-1$,且满足 $f(0) = y$。
2. 对于 $i = 1,2,…, n$,计算
$$
D
{\mu_i} = (\gamma_{\mu_i}, \delta_{\mu_i}) = \left( H(\mu_i)^{f(\mu_i)}, g^{f(\mu_i)} \right)
$$
3. 输出私钥 $D_{ID} = (D_{\mu_1}, D_{\mu_2}, …, D_{\mu_n})$。

加密 。要使用身份标识 $ID’ = (\mu’ 1, \mu’_2, …, \mu’_n)$ 对消息 $M \in G_2$ 进行加密,选择随机新鲜因子 $r \in_R \mathbb{Z}_p^*$ 并输出密文 $(C, T) = (c_1, c_2, c {31}, c_{32}, …, c_{3n}, c_4, T)$,其中
- $c_1 = ID’$,
- $c_2 = g^r$,
- $c_{3i} = (g_1 H(\mu’_i))^r$ ($i = 1, 2, …, n$),
- $c_4 = e(g_1, g_2)^r \cdot CT$ 且 $CT = e(g^r, H(T)^r) M$。

RtTrd 。输出时间陷门 $ST = H(T)^s \in G_1$。

解密 。使用任意 $S \subseteq ID \cap ID’$ 对密文 $(C, T)$ 进行解密,使得 $|S| = d$,并计算
$$
CT = \frac{e\left( \prod_{\mu_i \in S} \gamma_{\mu_i}^{\Delta_{\mu_i,S}(0)}, c_2 \right)}{\prod_{\mu_i \in S} e(c_{3i}, \delta_{\mu_i}^{\Delta_{\mu_i,S}(0)})} \cdot c_4
$$
$$
M = \frac{CT}{e(c_2, ST)}
$$

4.2 方案的安全性

上述单个时间服务器方案是一种非交互式PKTRABE方案,在随机预言模型下针对选择明文攻击具有语义安全性。

定理1. 如果攻击者 $\mathcal{A}$ 在攻破上述PKTRABE方案时具有优势 $\varepsilon$,则可以构造一个挑战者 $\mathcal{B}$ 以至少 $\varepsilon’ = \varepsilon^2 / e$ 的概率求解BDH问题,其中 $e$ 是自然对数的底。
我们将在本文的完整版本中给出严格的证明。

5 构造2:多时间服务器

在本小节中,我们提出具体的多个时间服务器PKTRABE方案,并给出我们方案的安全断言。

5.1 方案的描述

我们基于上述定义的双线性映射构建一个非交互式PKTRABE方案。该构造基于[1]。我们的随机预言模型下的PKTRABE方案工作如下:
系统建立 。给定安全参数 $k \in \mathbb{Z}^+$,执行以下步骤。
1. 取 $k$ 并生成一个素数 $p$。令 $(G_1, G_2)$ 为一个具有素数阶 $p$ 的乘法群,$e: G_1 \times G_1 \to G_2$ 为一个可接受的双线性映射,$g \in G_1$ 为任意生成元。
2. 选择 $g_1 \in_R G_1$。选取 $y \in_R \mathbb{Z} p^ $ 并计算 $g_2 = g^y$。
3. 选择以下密码学哈希函数:$H: {0, 1}^
\to G_1$。
4. 选择一个容差参数 $d$。
5. 定义拉格朗日系数 $\Delta
{a,S}(x)$,其中 $a \in \mathbb{Z} p^ $ 和元素集合 $S$ 属于 $\mathbb{Z}_p^ $:
$$
\Delta
{a,S}(x) = \prod_{\substack{b \in S \ b \neq a}} \frac{x - b}{a - b}
$$
6. 输出一个公共参数 $params = (p, G_1, G_2, g, g_1, g_2, e, d, H)$ 和一个私钥主密钥 $mk = y$。

TRSetup 。选择 $s_i \in_R \mathbb{Z} p^*$ 作为私钥 $ts {i,priv}$,并将 $g^{s_i}$ 设置为第 $i$ 个时间服务器的公钥 $ts_{i,pub}$,其中 $i = 1,2,…, n$。

密钥生成 。为身份标识 $ID = (\mu_1, \mu_2, …, \mu_n)$ 生成私钥,其中 $\mu_i \in \mathbb{Z} p^*$,执行以下步骤。
1. 在 $\mathbb{Z}_p$ 上选择一个随机的拉格朗日插值多项式 $f(\cdot)$,其次数为 $d-1$,且满足 $f(0) = y$。
2. 对 $i = 1,2,…, n$,计算
$$
D
{\mu_i} = (\gamma_{\mu_i}, \delta_{\mu_i}) = \left( H(\mu_i)^{f(\mu_i)}, g^{f(\mu_i)} \right)
$$
3. 输出一个私钥 $D_{ID} = (D_{\mu_1}, D_{\mu_2}, …, D_{\mu_n})$。

加密 。要使用身份标识 $ID’ = (\mu’ 1, \mu’_2, …, \mu’_n)$ 对消息 $M \in G_2$ 进行加密,选择随机新鲜因子 $r \in_R \mathbb{Z}_p^*$,并输出密文 $(C, T) = (c_1, c_2, c {31}, c_{32}, …, c_{3n}, c_4, T)$,其中
- $c_1 = ID’$,
- $c_2 = g^r$,
- $c_{3i} = e(ts_{i,pub}, H(T)^r) \cdot c’ {3i}$ ($i = 1, 2, …, n$),
- $c_4 = e(g_1, g_2)^r M$ 且 $c’
{3i} = (g_1 H(\mu’_i))^r$。

RtTrd 。输出时间陷门 $S_{iT} = H(T)^{s_i} \in G_1$,其中 $i = 1, 2, …, n$。

解密 。使用任意 $S \subseteq ID \cap ID’$ 解密密文 $(C, T)$,使得 $|S| = d$,并计算
$$
c’ {3i} = \frac{c {3i}}{e(c_2, S_{iT})}
$$
$$
M = \frac{e\left( \prod_{\mu_i \in S} \gamma_{\mu_i}^{\Delta_{\mu_i,S}(0)}, c_2 \right)}{\prod_{\mu_i \in S} e(c’ {3i}, \delta {\mu_i}^{\Delta_{\mu_i,S}(0)})} \cdot c_4
$$

5.2 方案的安全性

上述多个时间服务器方案是一种非交互式PKTRABE方案,在随机预言模型下针对选择明文攻击具有语义安全性。

定理2. 如果攻击者 $\mathcal{A}$ 在攻破上述PKTRABE方案时具有优势 $\varepsilon$,则可构造一个挑战者 $\mathcal{B}$ 以至少 $\varepsilon’ = \varepsilon^{d+1} / e^d$ 的概率求解BDH问题,其中 $e$ 是自然对数的底数。
我们将在本文的完整版本中给出严格的证明。

6 结论与未来工作

我们提出了一种新的PKTRABE概念,可用于解决与时间相关的属性基加密问题。在我们的PKTRABE模型中,发送者对消息进行加密,使得包括具有发送者指定某些属性的指定接收者在内的任何人都无法在发送者选择的未来释放时间之前解密该消息。我们形式化了PKTRABE及其安全模型的概念,并分别提出了基于单个时间服务器和多个时间服务器的两种PKTRABE构造方案。

PKTRABE将具有许多实际应用。在本文中,我们仅研究基本的PKTRABE。在未来的工作中,我们将研究能够提供细粒度访问策略的此类PKTRABE。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值