基于属性集的属性基加密:实用增强方案解析
1. 相关工作回顾
在属性基加密(ABE)领域,早期的研究为后续的发展奠定了基础。Sahai和Waters提出了首个ABE方案,该方案支持带有单个阈值门的策略,不过在其大宇宙构造中,策略里使用的阈值值
k
和门的大小
n
在设置阶段就已固定。Pirretti等人展示了如何克服
k
和
n
固定的限制,并将阈值访问策略应用于两个实际场景。Traynor等人通过将其应用于大规模条件访问系统,进一步证明了该方案的可扩展性。
Goyal等人首次定义了ABE的两种互补形式,即基于密钥策略的属性基加密(KP - ABE)和基于密文策略的属性基加密(CP - ABE),并给出了KP - ABE方案的构造。后来,Ostrovsky等人将该KP - ABE方案扩展以支持非单调布尔公式。Bethencourt等人给出了首个CP - ABE方案的构造,其方案支持所有单调布尔加密策略,且安全性在通用群模型中得到论证。
然而,现有的CP - ABE方案存在一定局限性。它们只能支持单一的用户属性集合,在捕获自然出现的“复合属性”时缺乏灵活性和效率。而且,没有一个现有的CP - ABE方案能够在单个密钥中支持给定数值属性的多个值分配。
为了解决这些问题,提出了CP - ASBE方案。该方案是首个将用户属性组织到密钥中,并允许用户对属性组合施加动态约束以满足策略的方案,在支持“复合属性”时具有更高的灵活性和效率,同时也是首个能够在单个密钥中支持给定数值属性的多个值分配的方案。
2. 预备知识
2.1 双线性映射
设
G1
、
G2
、
GT
是阶为素数
p
的循环(乘法)群,
g1
是
G1
的生成元,
g2
是
G2
的生成元。若映射
e : G1 × G2 → GT
满足以下性质,则称其为双线性映射:
1.
双线性性
:对于所有的
u ∈ G1
,
v ∈ G2
以及
a, b ∈ Zp
,有
e(ua, vb) = e(u, v)ab
。
2.
非退化性
:
e(g, h) ≠ 1
。
通常,
G1 = G2 = G
,若群运算和双线性映射
e
都能高效计算,则称
G
为双线性群。
2.2 密钥结构
在CP - ABE方案中,加密者为密文指定一个访问结构,即密文策略。只有拥有与满足该访问结构的属性相关联的秘密密钥的用户才能解密密文。
在现有的CP - ABE方案中,用户的密钥可以逻辑地看作是一组元素,每个元素对应一个关联属性,且只有单个集合内的元素可用于满足任何给定的密文策略,以实现抗合谋性。
而在CP - ASBE方案中,使用基于递归集合的密钥结构,集合中的每个元素要么是一个集合本身(即一个密钥结构),要么是一个对应属性的元素。为该密钥结构定义了深度的概念,类似于树的深度,用于限制递归。例如,深度为2的密钥结构示例如下:
{CS - Department, Grad - Student, {Course101, TA}, {Course525, Grad - Student}}
密钥结构为集合定义了唯一的标签。对于深度为2的密钥结构,只需为深度为2的集合任意分配一个索引,就足以唯一标识这些集合。单个属性继承其所在集合的标签,并通过其名称和继承的标签的组合来唯一定义。默认情况下,用户只能使用集合内的属性元素来满足给定的密文策略,但加密者可以通过在访问结构中指定翻译节点,允许组合多个集合的属性来满足访问结构。
2.3 访问结构
访问结构基于树构建,非叶节点是阈值门。每个非叶节点由其子节点和阈值值定义。当阈值值
kx = 1
时,阈值门为或门;当
kx = ncx
时,阈值门为与门。访问树还为节点的子节点定义了顺序。每个叶节点与一个属性相关联。
加密用户可以指定访问树中的某些节点为翻译节点。在没有指定翻译节点的情况下,密钥结构
ψ
满足访问树
T
的条件是
T(ψ)
返回一个非空的标签集合
S
。若存在指定的翻译节点,算法
T(ψ)
会进行相应修改,允许在满足一定条件时跨集合组合属性。
3. CP - ASBE方案概述
CP - ASBE方案由四个算法组成:
1.
Setup
:生成方案的主密钥和公钥。
2.
KeyGen
:根据主密钥、用户身份和属性集生成用户的秘密密钥。
3.
Encrypt
:根据公钥、消息和访问树生成密文。
4.
Decrypt
:若密钥结构满足访问树,则从密文中恢复消息。
其安全性通过消息不可区分性来衡量,在选择明文攻击下,若所有概率多项式时间的对手在特定游戏中的优势至多为可忽略不计,则称该方案是安全的。
4. CP - ASBE方案构造
4.1 设计挑战与思路
设计CP - ABE方案的一个关键挑战是防止用户合并他们的属性。BSW CP - ABE通过使用用户唯一的随机数绑定每个用户的所有属性密钥组件来实现这一点。在CP - ASBE方案中,不仅要防止不同集合属性的任意组合,还要支持访问树中指定的特定组合。关键思路是在密文(和密钥)中包含精心选择的额外值,允许用户组合属于同一用户的多个集合的属性,同时通过不同用户密钥之间的适当随机化水平来防止合谋攻击。
4.2 具体算法
-
Setup(d = 2)
:选择随机指数
α, βi ∈ Zp(i ∈ {1, 2}),设置公钥和主密钥如下:
PK = (G, g, h1 = gβ1, f1 = g^(1/β1), h2 = gβ2, f2 = g^(1/β2), e(g, g)α)
MK = (β1, β2, gα)
-
KeyGen(MK, A, u)
:
u是用户身份,A = {A0, A1, ..., Am}是密钥结构。选择随机数r{u} ∈ Zp用于用户u,为每个集合Ai选择随机数r{u}i ∈ Zp,为每个属性ai,j选择随机数r{u}i,j ∈ Zp。生成的密钥如下:
SKu = {A, D = g^((α + r{u})/β1), Di,j = g^(r{u}i) · H(ai,j)^(r{u}i,j), D′i,j = g^(r{u}i,j) for 0 ≤ i ≤ m, 1 ≤ j ≤ ni, Ei = g^((r{u} + r{u}i)/β2) for 1 ≤ i ≤ m}
-
Encrypt(PK, M, T)
:
M是消息,T是访问树。为树中的每个节点τ关联一个多项式qτ,根据节点的阈值值设置多项式的度数。生成的密文如下:
CT = {T, ˜C = M · e(g, g)α·s, C = h1^s, ¯C = h2^s, ∀y ∈ Y: Cy = g^qy(0), C′y = H(att(y))^qy(0), ∀x ∈ X: ˆCx = h2^qx(0)}
-
Decrypt(CT, SKu)
:首先运行树满足算法
T(A),若密钥结构满足访问树,则递归调用DecryptNode函数进行解密。具体步骤如下:
1. 若节点t是叶节点,检查属性是否存在于对应集合中,若存在则计算解密结果。
2. 若节点t是非叶节点:-
计算满足条件的子节点集合
Bt。 -
对
Bt中的节点递归调用DecryptNode函数。 - 若需要,进行集合间的翻译操作。
- 使用多项式插值计算最终结果。
-
计算满足条件的子节点集合
以下是CP - ASBE方案的整体流程mermaid图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([开始]):::startend --> B(Setup):::process
B --> C(KeyGen):::process
C --> D(Encrypt):::process
D --> E{密钥结构是否满足访问树}:::decision
E -->|是| F(Decrypt):::process
E -->|否| G([结束]):::startend
F --> G
5. 总结
CP - ASBE方案通过引入递归集合的密钥结构和翻译节点的概念,解决了现有CP - ABE方案在处理复合属性和数值属性多值分配方面的局限性。该方案在支持“复合属性”时具有更高的灵活性和效率,同时在安全性上也有一定的保障。通过精心设计的算法和随机化机制,有效防止了用户合谋攻击。然而,在实际应用中,还需要进一步考虑其性能优化和可扩展性等问题。
在后续的研究中,可以探索如何进一步优化算法的计算复杂度,提高方案在大规模系统中的性能。同时,也可以研究如何将该方案与其他安全技术相结合,以提供更全面的安全保障。此外,对于方案的安全性证明,可以在更严格的模型下进行验证,以增强方案的可信度。
总之,CP - ASBE方案为属性基加密领域带来了新的思路和解决方案,有望在未来的安全应用中发挥重要作用。
基于属性集的属性基加密:实用增强方案解析
6. 技术细节分析
6.1 密钥结构的优势
CP - ASBE方案的递归集合密钥结构相较于传统CP - ABE方案有显著优势。传统方案中用户密钥的元素只能在单个集合内使用,限制了属性组合的灵活性。而CP - ASBE的递归集合结构允许更复杂的属性组织,例如深度为2的密钥结构可以表示不同层次的属性关系。
| 方案类型 | 密钥结构特点 | 属性组合灵活性 |
|---|---|---|
| 传统CP - ABE | 单一集合元素,只能集合内使用 | 低 |
| CP - ASBE | 递归集合结构,可跨集合组合(通过翻译节点) | 高 |
这种结构使得在处理复合属性时更加高效,能够更好地适应现实世界中复杂的属性关系。例如,在一个学术场景中,学生的属性可能包括所属部门、学位状态以及所修课程等,这些属性可以通过递归集合结构进行合理组织。
6.2 翻译节点的作用
翻译节点是CP - ASBE方案的一个重要创新点。它允许加密者指定在访问结构中可以组合多个集合的属性。在解密过程中,翻译节点通过与密钥中的
Ei
元素和密文中的
ˆCx
元素配合,实现集合间属性的翻译。
以下是翻译节点在解密过程中的操作步骤:
1. 当遇到翻译节点时,检查不同集合的属性满足情况。
2. 根据
Ei
和
ˆCx
元素的值,计算集合间的翻译结果。
3. 将翻译后的结果用于后续的解密计算。
例如,在一个包含多个课程集合和学生基本信息集合的密钥结构中,若访问结构要求同时满足某课程和学生身份的条件,翻译节点可以使得这两个不同集合的属性能够组合起来满足条件。
7. 安全性分析
CP - ASBE方案的安全性基于消息不可区分性的概念。在选择明文攻击下,通过一个特定的游戏来衡量对手的优势。
游戏步骤如下:
1.
Setup
:挑战者运行
Setup
算法,将公共参数
PK
提供给对手。
2.
Phase 1
:对手多次查询对应属性集
A1, ..., Aq1
的私钥。
3.
Challenge
:对手提交两个等长消息
M0
和
M1
以及一个挑战访问结构
T ∗
,挑战者随机选择一个消息进行加密并将密文
CT
给对手。
4.
Phase 2
:重复
Phase 1
,但要求查询的属性集不满足挑战访问结构。
5.
Guess
:对手输出对挑战者选择消息的猜测。
对手的优势定义为
Pr[b′ = b] - 1/2
。若所有概率多项式时间的对手在该游戏中的优势至多为可忽略不计,则称该方案是安全的。
此外,该游戏可以扩展到选择密文攻击,通过在
Phase 1
和
Phase 2
中允许解密查询来实现。
8. 应用场景探讨
CP - ASBE方案在多个领域有潜在的应用价值。
8.1 学术领域
在学术机构中,学生和教师的信息包含多个层次的属性,如所属部门、课程信息、学位状态等。CP - ASBE方案可以用于加密学术资源,只有满足特定属性组合的用户才能访问。例如,只有计算机科学系的研究生才能访问某些高级课程的资料。
8.2 企业领域
企业中的数据可能需要根据员工的职位、部门、项目参与情况等属性进行加密。CP - ASBE方案可以实现更灵活的访问控制,例如只有某个项目组的经理和特定技术人员才能访问项目的核心数据。
8.3 医疗领域
医疗数据包含患者的个人信息、疾病诊断、治疗方案等敏感信息。CP - ASBE方案可以根据医生的职称、科室、患者授权等属性来控制医疗数据的访问,确保数据的安全性和隐私性。
以下是不同应用场景的对比表格:
| 应用领域 | 属性特点 | 访问控制需求 |
| ---- | ---- | ---- |
| 学术领域 | 多层次、复杂关系 | 灵活的属性组合访问 |
| 企业领域 | 职位、部门、项目相关 | 精细的权限控制 |
| 医疗领域 | 敏感、涉及隐私 | 严格的访问限制 |
9. 性能优化方向
虽然CP - ASBE方案在功能上有很大优势,但在性能方面仍有优化空间。
9.1 计算复杂度优化
目前的解密算法在处理复杂的访问结构和密钥结构时,计算复杂度较高。可以通过优化多项式插值算法、减少不必要的递归调用等方式来降低计算复杂度。
9.2 存储优化
密钥和密文的存储占用空间较大,特别是在密钥结构深度较大的情况下。可以研究更高效的存储方式,例如对重复属性进行压缩存储。
以下是性能优化的步骤列表:
1. 分析现有算法的计算瓶颈和存储瓶颈。
2. 研究并实现优化算法和存储方式。
3. 进行性能测试和验证,不断调整优化方案。
10. 总结与展望
CP - ASBE方案通过引入递归集合的密钥结构和翻译节点,解决了传统CP - ABE方案在处理复合属性和数值属性多值分配方面的不足。该方案在安全性和灵活性上都有显著提升,适用于多个领域的访问控制需求。
然而,方案在性能优化和可扩展性方面仍面临挑战。未来的研究可以集中在以下几个方面:
1. 进一步优化算法复杂度,提高方案在大规模系统中的性能。
2. 研究与其他安全技术的结合,提供更全面的安全保障。
3. 在更严格的模型下验证方案的安全性,增强方案的可信度。
相信CP - ASBE方案将为属性基加密领域带来更多的创新和发展,在未来的安全应用中发挥重要作用。
以下是CP - ASBE方案未来发展的mermaid图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A([当前CP - ASBE方案]):::startend --> B(性能优化):::process
A --> C(与其他技术结合):::process
A --> D(严格安全验证):::process
B --> E([未来优化方案]):::startend
C --> E
D --> E
超级会员免费看

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



