34、合取广播与基于属性加密技术解析

合取广播与基于属性加密技术解析

1. 背景与相关研究

在加密技术领域,广义身份基加密(GIBE)框架有着重要地位,它能将任何被定义为 GIBE 的原语高效扩展为析取多权威版本。研究表明,基于密钥策略的属性基加密(KP - ABE)也属于 GIBE 框架。不过,从空间加密实例化的 KP - ABE 的密钥大小与访问结构大小呈线性关系,而访问结构大小可能呈指数级增长。

Chase 曾提出过合取设置下的多权威 ABE。在合取设置中,每个权威的属性空间是不相交的;而在析取设置中,所有权威的属性空间相同。并且,合取设置下的私钥需从所有权威收集元素来创建,析取设置下私钥可由每个权威单独推导。

2. 新的加密原语:广播 ABE

我们提出了一种名为合取广播与基于属性加密(Conjunctive Broadcast and Attributed Based Encryption)的新原语,简称为广播 ABE(Broadcast ABE)。简单来说,它是在 ABE 的基础上合取地添加了广播加密(BE)的维度。

广播 ABE 能有效解决两个关键问题:一是可作为具有直接撤销机制的 ABE 系统,二是可实现析取多权威 ABE。

在广播 ABE 中,私钥会关联一个用户索引 ID,密文会关联一个用户索引集 S,此外还分别关联一组属性和一个访问结构(在基于密文策略的 ABE(CP - ABE)中是密文关联访问结构、私钥关联属性集,在 KP - ABE 中则相反)。只有当 ABE 部分的属性条件满足,并且 ID 属于 S 时,才能进行解密。同时,广播 ABE 还能以合适的方式实现私钥委托。

2.1 实现直接可撤销 ABE

为实现直接可撤销的 ABE 方案,我们将 ID 用作每个私钥的唯一序列号。当用户请求密钥时,权威机构会选择一个未使用的 ID 并返回 sk(ID,y)。加密时,发送方将集合 S 设置为 U \ R(U 是用户索引的全集,R 是被撤销序列号的集合),属性相关部分按常规方式处理。这样,只有被撤销的用户(ID 属于 R)无法解密。

2.2 实现析取多权威 ABE

为实现析取多权威 ABE 方案,我们将 ID 用作每个权威的身份。权威的 sk(ID,⊤) 是其密钥,为用户生成密钥时,权威通过正确指定属性部分来委托密钥 sk(ID,y)。发送方在一组可信权威集 S 下加密时,会在用户索引集 S 以及根据 KP - ABE 或 CP - ABE 确定的适当属性集或访问结构下进行加密。

3. 研究方法与方案

我们提出了两种具体的广播密钥策略 ABE 方案和两种具体的广播密文策略 ABE 方案。每种广播密钥策略 ABE 方案是将 Boneh - Gentry - Waters 或 Sahai - Waters 的最先进广播加密方案与 Goyal 等人的 KP - ABE 进行代数组合;每种广播密文策略 ABE 方案是将 Boneh - Gentry - Waters 或 Sahai - Waters 的广播加密方案与 Waters 的 CP - ABE 进行代数组合。

这些组合并非简单的将 BE 和 ABE 进行 AND 双重加密,因为这种简单组合容易受到两个攻击者的合谋攻击,我们的方案采用了更复杂的代数组合方式。

4. 效率分析

我们的第一个广播 KP - ABE 方案在密文和私钥大小方面与 Goyal 等人的原始 KP - ABE 效率几乎相同,但公钥大小与用户索引全集大小 n 呈线性关系。第二个广播 KP - ABE 方案将公钥大小降低到与原始 KP - ABE 几乎相同,而密文仅需额外增加 2|R| 个群元素。这些是文献中首个完全功能的直接可撤销 KP - ABE 方案,广播 CP - ABE 变体也有类似的性能表现,特别是我们的可撤销 CP - ABE 方案优于之前的方法。

5. 预备知识
5.1 访问结构和线性秘密共享
  • 访问结构 :设 P = {P1, P2, …, Pn} 是一组参与方。如果对于所有的 B、C,当 B 属于集合 A 且 B 是 C 的子集时,C 也属于 A,则集合 A 是单调的。访问结构(或单调访问结构)是集合 A(或单调集合 A),且 A 是 2^P 去掉空集后的子集。A 中的集合称为授权集,不在 A 中的集合称为未授权集。
  • 线性秘密共享方案(LSSS) :设 P 是一组参与方,M 是一个 ℓ×k 的矩阵,ρ 是一个将矩阵行映射到参与方的函数。一个用于访问结构 A 的秘密共享方案 Π 是 Zp 上的线性秘密共享方案,由 (M, ρ) 表示,它包含两个多项式时间算法:
    • Share(M,ρ):输入要共享的 s 属于 Zp,随机选择 y2, …, yk 属于 Zp,令 v = (s, y2, …, yk),输出 Mv 作为 ℓ 个共享的向量,其中第 i 行 Mi 与 v 的乘积 λρ(i) 属于参与方 ρ(i)。
    • Recon(M,ρ):输入属于 A 的集合 S,令 I = {i | ρ(i) 属于 S},输出重建常数 {(i, μi)}i∈I,满足线性重建性质:∑i∈I μi · λρ(i) = s。
5.2 双线性映射和一些假设
  • 双线性映射 :设 G、GT 是素数阶 p 的乘法群,g 是 G 的生成元。双线性映射 e : G × G → GT 满足:一是双线性,即对于所有 u、v 属于 G,a、b 属于 Z,有 e(ua, vb) = e(u, v)^(ab);二是非退化性,即 e(g, g) ≠ 1。如果 G 中的群运算可以高效计算,且存在 GT 使得双线性映射 e 可以高效计算,则称 G 是双线性群。
  • 决策 BDHE 假设 :在素数阶 p 的双线性群 G 中,决策 q - BDHE 问题如下:挑战者选择一个生成元 g 属于 G 和随机指数 s、α,攻击者得到向量 Y = [g, gs, gα, g(α^2), …, g(α^q), g(α^(q + 2)), …, g(α^(2q))] 和一个元素 Z 属于 GT,判断 Z 是否等于 e(g, g)^(α^(q + 1)s)。一个输出 b 属于 {0, 1} 的算法 A 在解决决策 q - BDHE 问题中的优势为 ϵ,如果 | Pr[A(Y, e(g, g)^(α^(q + 1)s)) = 0] - Pr[A(Y, Z) = 0] | ≥ ϵ。如果没有多项式时间算法在解决该问题时有不可忽略的优势,则称决策 q - BDHE 假设在 G 中成立。
  • 决策 MEBDH 假设 :在素数阶 p 的双线性群 G 中,决策 q - MEBDH 问题如下:挑战者选择一个生成元 g 属于 G 和随机指数 s、α、a1, …, ar,攻击者得到向量 X 和一个元素 Z 属于 GT,判断 Z 是否等于 e(g, g)^(αs)。一个输出 b 属于 {0, 1} 的算法 A 在解决决策 q - MEBDH 问题中的优势为 ϵ,如果 | Pr[A(X, e(g, g)^(αs)) = 0] - Pr[A(X, Z) = 0] | ≥ ϵ。如果没有多项式时间算法在解决该问题时有不可忽略的优势,则称决策 q - MEBDH 假设在 G 中成立。
6. 广播 ABE 的定义和应用
6.1 广播密钥策略 ABE

设 U 是所有用户索引的集合,N 是所有属性的集合,A 是允许使用的关于 N 的访问结构集合。一个 (U, A) 广播密钥策略属性基加密(BKP - ABE)方案由四个默认算法(Setup、Encrypt、KeyGen、Decrypt)组成,可能还包括一个可选的额外算法 Delegate。
- Setup :这是一个随机算法,除了隐式的安全参数外不接受其他输入,输出公钥 pk 和主密钥 msk。
- Encrypt :输入一个用户索引集 S 属于 U、一组属性 ω 属于 N、一条消息 M 和公钥 pk,输出密文 ct。
- KeyGen :输入一个用户索引 ID 属于 U、一个访问结构 A 属于 A、主密钥 msk 和公钥 pk,输出私钥 sk(ID,A)。
- Decrypt :输入在用户集 S 和属性集 ω 下加密的密文 ct、用户索引 ID 和访问控制结构 A 的解密密钥 sk(ID,A) 以及公钥 pk,如果 ω 属于 A 且 ID 属于 S,则输出消息 M。
- Delegate :输入一个私钥 sk(x,y) 和一个新的下标 (x′, y′),输出一个新的密钥 sk(x′,y′)。该算法定义在一些序列上,如 sk(⊤,⊤) → sk(ID,⊤) → sk(ID,A) 等。

我们要求解密的标准正确性,即如果 Setup 输出 (pk, msk),则对于所有消息空间中的 M、ID 属于 U、A 属于 A、ω 属于 N、S 属于 U,有 Decrypt[Encrypt(S, ω, M, pk), (S, ω), KeyGen(ID, A, msk, pk), (ID, A), pk] = M。对于定义了 Delegate 的方案,还要求该算法输出的 sk(ID,A) 与 KeyGen 算法输出的具有相同的分布。

BKP - ABE 的选择性安全概念通过以下游戏定义:
1. Init :对手声明目标用户索引集 S⋆ 和目标属性集 ω⋆。
2. Setup :挑战者运行 ABE 的 Setup 算法并将公钥 pk 交给对手。
3. Phase 1 :对手可以请求用户索引和访问结构对 (ID, A) 的私钥,条件是 ω⋆ 不属于 A 或 ID 不属于 S⋆。对于定义了 Delegate 的方案,对手还可以请求 sk(ID,⊤)(ID 不属于 S⋆)和 sk(⊤,A)(ω⋆ 不属于 A)的密钥。
4. Challenge :对手提交两条等长的消息 M0 和 M1,挑战者随机选择一位 b,计算在目标对 (S⋆, ω⋆) 下 Mb 的挑战密文 ct⋆ 并交给对手。
5. Phase 2 :重复 Phase 1。
6. Guess :对手输出对 b 的猜测 b′。

对手在这个游戏中的优势定义为 Pr[b = b′] - 1/2。这个概念可以扩展到处理选择密文攻击,通过在 Phase 1 和 Phase 2 允许解密查询。如果所有多项式时间对手在上述游戏中的优势最多是可忽略的,则称 BKP - ABE 方案在选择性安全概念下是安全的。

6.2 广播密文策略 ABE

设 U、N、A 与之前定义相同。(U, A) 广播密文策略属性基加密(BCP - ABE)方案的定义与 BKP - ABE 基本相同,只是访问结构和属性集的角色互换。即私钥分配给用户索引 ID 和属性集 ψ 的对,密文对应于用户集 S 和访问结构 A 的对。只有当 ψ 属于 A 且 ID 属于 S 时才能进行解密,安全概念的定义可以直接从密钥策略情况进行调整。

6.3 解决动机问题
  • 直接可撤销 ABE :将 ID 作为每个私钥的唯一序列号。用户请求密钥时,权威选择未使用的 ID 并返回 sk(ID,y)。加密时,发送方将 S 设置为 U \ R,属性部分按常规处理,确保被撤销的用户(ID 属于 R)无法解密。
  • 析取多权威 ABE :使用广播 ABE,其中 sk(ID,⊤) 是权威的密钥。权威通过委托 sk(ID,y) 为用户生成密钥。发送方在一组可信权威集 S 下加密时,根据 KP - ABE 或 CP - ABE 确定适当的属性集或访问结构进行加密。
7. 广播密钥策略 ABE 方案

我们提出了两个广播密钥策略 ABE 方案:
- BKP - ABE1 :是 Boneh - Gentry - Waters 的广播加密和 Goyal 等人的 KP - ABE 的组合,用户索引全集 U = [n] = {1, …, n}。
- BKP - ABE2 :是 Sahai - Waters 的广播加密和 Goyal 等人的 KP - ABE 的组合,用户索引全集 U = Zp。U = Zp 意味着该原语在广播维度上可以看作是基于身份的版本,实际使用中可以将任何字符串哈希到 Zp 中。

两个方案的属性全集 N = Zp,都可以处理任何线性秘密共享访问结构,我们将其全集记为 ALSSS。在每个方案中,设 m 是允许与密文关联的目标属性集的最大大小,m′ = m - 1。

7.1 BKP - ABE1 方案的构造
  • Setup
    1. 算法首先选择一个随机生成元 g 属于 G 和一个随机的 α 属于 Zp。
    2. 计算 gi = g(α^i) 属于 G,其中 i = 1, 2, …, n, n + 2, …, 2n。
    3. 随机选择 γ 属于 Zp 并设置 v = gγ 属于 G。
    4. 随机选择 h0, …, hm′ 属于 G。
    5. 公钥 pk = [g, g1, …, gn, gn + 2, …, g2n, v, h0, …, hm′],主密钥 msk = (α, γ),输出 (pk, msk)。定义函数 F : Zp → G 为 F(x) = ∏(j = 0 到 m′) h(j)^(x^j)。
  • Encrypt
    1. 输入用户索引集 S 属于 U 和属性集 ω 属于 N,选择一个随机的 s 属于 Zp。
    2. 计算密文 ct = [C, C(1), {C(2)k}k 属于 ω, C(3)],其中:
      • C = M · e(gn, g1)^s
      • C(1) = gs
      • C(2)k = F(k)^s
      • C(3) = (v ∏(j 属于 S) gn + 1 - j)^s
  • KeyGen :输入用户索引 ID 属于 U 和 LSSS 访问结构 (N, π) 属于 ALSSS。设 N 是 ℓo × ko 的矩阵。

以下是 BKP - ABE1 方案的流程示意图:

graph TD;
    A[Setup] --> B[选择随机生成元 g 和随机 α];
    B --> C[计算 gi];
    C --> D[选择随机 γ 并设置 v];
    D --> E[选择随机 h0 到 hm′];
    E --> F[生成公钥 pk 和主密钥 msk];
    G[Encrypt] --> H[选择随机 s];
    H --> I[计算 C];
    H --> J[计算 C(1)];
    H --> K[计算 C(2)k];
    H --> L[计算 C(3)];
    M[KeyGen] --> N[输入 ID 和访问结构];

通过以上的广播 ABE 方案,我们可以更好地实现加密数据的安全管理和灵活访问控制,同时解决了直接撤销和多权威管理的问题,为加密技术在实际应用中的推广提供了有力的支持。

合取广播与基于属性加密技术解析

8. BKP - ABE2 方案的构造
  • Setup
    1. 选取随机生成元 ( g \in G ) 以及随机的 ( \alpha \in Z_p )。
    2. 计算 ( g_i = g^{(\alpha^i)} \in G ),其中 ( i = 1, 2, \cdots, 2n )。
    3. 随机选取 ( \gamma \in Z_p ),并设置 ( v = g^{\gamma} \in G )。
    4. 随机选取 ( h_0, \cdots, h_{m’} \in G )。
    5. 公钥 ( pk = (g, g_1, \cdots, g_{2n}, v, h_0, \cdots, h_{m’}) ),主密钥 ( msk = (\alpha, \gamma) ),输出 ( (pk, msk) )。同样定义函数 ( F: Z_p \to G ) 为 ( F(x)=\prod_{j = 0}^{m’} h_j^{(x^j)} )。
  • Encrypt
    1. 输入用户索引集 ( S \subseteq U ) 和属性集 ( \omega \subseteq N ),选择随机的 ( s \in Z_p )。
    2. 计算密文 ( ct = (C, C^{(1)}, {C^{(2)} k} {k \in \omega}, C^{(3)}) ),其中:
      • ( C = M \cdot e(g_n, g_1)^s )
      • ( C^{(1)} = g^s )
      • ( C^{(2)}_k = F(k)^s )
      • ( C^{(3)} = (v \prod_{j \in S} g_{n + 1 - j})^s )
  • KeyGen :输入用户索引 ( ID \in U ) 和 LSSS 访问结构 ( (N, \pi) \in A_{LSSS} )。设 ( N ) 是 ( \ell_0 \times k_0 ) 的矩阵。

以下是 BKP - ABE2 方案的流程示意图:

graph TD;
    A[Setup] --> B[选取随机生成元 g 和随机 α];
    B --> C[计算 gi];
    C --> D[选取随机 γ 并设置 v];
    D --> E[选取随机 h0 到 hm′];
    E --> F[生成公钥 pk 和主密钥 msk];
    G[Encrypt] --> H[选择随机 s];
    H --> I[计算 C];
    H --> J[计算 C(1)];
    H --> K[计算 C(2)k];
    H --> L[计算 C(3)];
    M[KeyGen] --> N[输入 ID 和访问结构];
9. 广播密文策略 ABE 方案

我们提出的广播密文策略 ABE 方案同样基于先进的广播加密方案与 CP - ABE 进行代数组合。
- BCP - ABE1 :结合了 Boneh - Gentry - Waters 的广播加密和 Waters 的 CP - ABE。
- BCP - ABE2 :结合了 Sahai - Waters 的广播加密和 Waters 的 CP - ABE。

这两个方案的属性全集同样为 ( N = Z_p ),能处理线性秘密共享访问结构。

9.1 BCP - ABE1 方案的构造
  • Setup
    1. 选择随机生成元 ( g \in G ) 和随机的 ( \alpha \in Z_p )。
    2. 计算相关的群元素。
    3. 随机选取参数。
    4. 生成公钥 ( pk ) 和主密钥 ( msk )。
  • Encrypt
    1. 输入用户集 ( S \subseteq U ) 和访问结构 ( A \in A ),选择随机的 ( s \in Z_p )。
    2. 根据访问结构和属性集的关系,计算密文的各个部分。
  • KeyGen
    1. 输入用户索引 ( ID \in U ) 和属性集 ( \psi \subseteq N )。
    2. 生成私钥 ( sk_{(ID,\psi)} )。
  • Decrypt
    1. 输入密文 ( ct )、私钥 ( sk_{(ID,\psi)} ) 和公钥 ( pk )。
    2. 如果 ( \psi \in A ) 且 ( ID \in S ),则输出消息 ( M )。
9.2 BCP - ABE2 方案的构造

与 BCP - ABE1 类似,只是在广播加密部分采用了 Sahai - Waters 的方案。具体步骤如下:
- Setup :生成公钥和主密钥。
- Encrypt :根据输入生成密文。
- KeyGen :根据用户索引和属性集生成私钥。
- Decrypt :进行解密操作。

10. 安全证明概述

我们对提出的广播 ABE 方案进行了安全性分析。对于 BKP - ABE 和 BCP - ABE 方案,选择性安全概念通过特定的游戏来定义。在这些游戏中,对手与挑战者进行交互,通过一系列的步骤来测试方案的安全性。

以 BKP - ABE 为例,在选择性安全游戏中,对手首先声明目标用户索引集 ( S^{\star} ) 和目标属性集 ( \omega^{\star} )。挑战者运行 Setup 算法并给出公钥。对手在 Phase 1 和 Phase 2 可以请求满足一定条件的私钥。挑战者生成挑战密文,对手最后进行猜测。如果所有多项式时间对手在这个游戏中的优势最多是可忽略的,则称方案在选择性安全概念下是安全的。

完整的安全证明较为复杂,我们将其推迟到完整版本中给出。但基本思路是基于双线性映射和相关的假设(如决策 BDHE 假设和决策 MEBDH 假设),通过归约的方法将方案的安全性归约到已知的困难问题上。

11. 密钥委托算法

对于每个广播 ABE 方案,我们都定义了密钥委托算法 Delegate。该算法允许根据已有的私钥生成新的私钥。

以 BKP - ABE 为例,Delegate 算法可以在以下序列上进行操作:
- ( sk_{(\top,\top)} \to sk_{(ID,\top)} \to sk_{(ID,A)} )
- ( sk_{(\top,\top)} \to sk_{(\top,A)} \to sk_{(ID,A)} )
- ( sk_{(x,A)} \to sk_{(x,A’)} )

其中 ( ID \in U ),( A, A’ \in A ) 且 ( A \subseteq A’ ),( x ) 可以是 ( \top ) 或任何 ( ID \in U )。

密钥委托算法的具体实现步骤如下:
1. 输入一个私钥 ( sk_{(x,y)} ) 和一个新的下标 ( (x’, y’) )。
2. 根据方案的具体参数和算法,对私钥进行处理。
3. 输出新的密钥 ( sk_{(x’,y’)} )。

12. 效率性能比较

我们对提出的广播 ABE 方案进行了效率性能比较,主要从密文大小、私钥大小和公钥大小等方面进行分析。

方案 密文大小 私钥大小 公钥大小
BKP - ABE1 与原始 KP - ABE 接近 与原始 KP - ABE 接近 与用户索引全集大小 ( n ) 呈线性关系
BKP - ABE2 密文需额外增加 ( 2 R ) 个群元素
BCP - ABE1 - - -
BCP - ABE2 - - -

从比较结果可以看出,BKP - ABE2 在公钥大小上有明显优势,而 BKP - ABE1 在密文和私钥大小上与原始方案接近。广播 CP - ABE 变体也有类似的性能表现,并且我们的可撤销 CP - ABE 方案优于之前的方法。

综上所述,我们提出的合取广播与基于属性加密(广播 ABE)方案在解决直接撤销和析取多权威 ABE 问题上具有显著优势。通过将广播加密与属性基加密进行代数组合,我们不仅提高了方案的安全性,还在效率上取得了较好的平衡。未来,我们可以进一步研究如何优化这些方案,使其在更多的实际场景中得到应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值