CP-ABE:密文策略属性基加密(Bethencourt-Sahai-Waters 2007)

深入解读 Bethencourt-Sahai-Waters 2007 年提出的 Ciphertext-Policy Attribute-Based Encryption(CP-ABE),从 KP-ABE 到 CP-ABE 的范式反转,到基于 LSSS 的访问结构实现。

什么是属性基加密(ABE)?

属性基加密(Attribute-Based Encryption, ABE)是一种基于属性的公钥加密方案。与传统公钥加密(PKI)不同,ABE 不再用「某个用户身份」来标识公钥和私钥,而是用一组属性(Attributes)

核心思想:加密时指定一个「谁能解密」的策略,解密时用户的私钥包含其拥有的属性。当用户属性满足策略时,即可解密。

ABE 有两种基本范式:

范式策略在哪含义
KP-ABE(密钥策略)私钥中用户私钥绑定策略,密文携带属性
CP-ABE(密文策略)密文中密文绑定策略,用户私钥携带属性

论文背景

ABE 的概念最早由 Sahai 和 Waters(2005) 提出,但他们的方案是 KP-ABE 范式:用户的私钥中包含访问策略,而密文只携带一组属性。

KP-ABE 的问题:数据所有者(加密者)无法控制「谁能访问」。策略是预先嵌入在用户密钥里的,这意味着你必须知道所有合法用户的属性集合才能生成密钥——这对实际场景非常不友好。

Bethencourt、Sahai、Waters(2007) 在论文 “Ciphertext-Policy Attribute-Based Encryption” 中提出了 CP-ABE,将策略与属性的角色完全反转

  • 密文携带访问策略(Access Policy)
  • 用户私钥携带属性集合

这样,数据所有者在加密时就能精确控制「只有满足这个策略的用户才能解密」,而用户只需持有自己的属性密钥即可。

CP-ABE 的核心创新

1. 角色反转

1
2
3
4
5
6
7
KP-ABE(2005):
  密文 <- 属性集合 {医生, 内科}
  私钥 <- 访问策略「医生 AND 内科」

CP-ABE(2007):
  密文 <- 访问策略「医生 AND 内科」
  私钥 <- 属性集合 {医生, 内科}

2. 基于 LSSS 的访问结构

论文使用 线性秘密共享方案(LSSS, Linear Secret Sharing Scheme) 来表达任意单调访问结构。

LSSS 的核心:用一个矩阵 M 和一个向量 v 来表示访问策略:

  • 矩阵的每一行对应一个属性
  • 向量 v 是秘密的编码,满足 M * λ = (s, 0, 0, …, 0)
  • 一个属性集合满足策略,当且仅当存在一组系数使对应行线性组合出 v

示例:策略「(A AND B) OR (C AND D)」对应的 LSSS 矩阵:

属性向量
1A(1, 0)
2B(1, 0)
3C(0, 1)
4D(0, 1)

3. 双线性配对上的构造

方案基于 双线性配对(Bilinear Pairing)DBDH(Decisional Bilinear Diffie-Hellman) 假设:

  • 加密阶段:将明文与访问策略结合,生成携带策略的密文
  • 密钥生成:根据用户属性集合生成私钥
  • 解密阶段:利用双线性配对验证属性是否满足策略,并恢复明文

方案组成

Setup(系统初始化)

生成系统公共参数 PK 和主密钥 MK

1
2
PK = (g, e(g,g)^α, {H(i)=g^a_i | i ∈ U})
MK = (α, a_1, ..., a_|U|)

KeyGen(密钥生成)

对用户属性集 S,生成私钥:

1
D_S = {D = g^r * H(σ_j)^r | j ∈ S}, D_tilde = g^r

Encrypt(加密)

给定明文 M 和访问策略 A,生成密文:

1
CT = (A, C = M * e(g,g)^(α*s), C_tilde = g^s, {C_j = g^(a_j*λ_j)})

其中 λ_j 是 LSSS 矩阵对应的秘密共享值。

Decrypt(解密)

用户用私钥 D_S 解密:

  1. 检查属性集 S 是否满足策略 A
  2. 若满足,找到对应行和系数 {w_j}
  3. 通过配对运算恢复共享值
  4. 从共享值中恢复明文 M

安全性

论文在 标准模型 下证明了选择性安全(Selective Security),基于 DBDH 假设

安全性证明使用 归约(Reduction) 技术:假设存在一个能攻破 CP-ABE 的攻击者 A,则可以构造一个解决 DBDH 问题的算法 B,从而矛盾。

应用价值

CP-ABE 在以下场景有重要应用:

场景说明
云存储访问控制数据上传时指定策略,云服务商无法绕过策略解密
电子健康记录按角色和权限属性精细控制病历访问
物联网数据分发按设备属性加密,满足条件的设备自动解密
数字版权管理按用户订阅属性控制内容访问

局限与后续发展

论文中的原始方案存在以下限制:

  1. 选择性安全:攻击者必须先声明挑战属性集,实际中可能不够强
  2. 密文膨胀:密文大小与策略复杂度成正比
  3. 密钥托管问题:主密钥持有者可生成任意属性密钥
  4. 不支持非单调策略:只能表达单调访问结构(AND/OR),无法表达 NOT

后续改进方向

  • 双系统加密:达到自适应安全(Adaptive Security)
  • 密钥策略与密文策略的融合:支持更灵活的策略表达
  • 可撤销 ABE:解决密钥托管和用户撤销问题
  • 高效实现:减少双线性配对计算次数

学习心得

这篇论文是属性基加密领域的里程碑之作。从 KP-ABE 到 CP-ABE 的范式反转看似简单,但实现起来需要在双线性配对上做大量精巧的数学构造。特别是将 LSSS 与加密结合的设计,展现了密码学方案设计中「抽象代数工具 + 密码学假设」的经典范式。

理解了这篇论文后,再去看后续的 ABE 变体(如内积 ABE、功能加密等)会顺畅很多——它们大多是在这个基础上做的扩展和加强。


论文原文:Bethencourt, J., Sahai, A., & Waters, B. (2007). Ciphertext-Policy Attribute-Based Encryption. IEEE Symposium on Security and Privacy, 40-53.

论文链接:https://ieeexplore.ieee.org/abstract/document/4223236

Powered by Hugo & Theme Stack
使用 Hugo 构建
主题 StackJimmy 设计