属性基加密(ABE)基础知识


属性基加密(ABE)的分类

属性基加密(ABE)的思想来源于模糊身份基加密(FIBE),属性基加密的思想是让密文和密钥与属性集合和访问结构产生关联,当且仅当属性集合满足访问结构的时候,方能解密成功。那么根据这其中两两的对应关系,又可以将属性基加密分为两类,即密钥策略属性基加密(KP-ABE)密文策略属性基加密(CP-ABE)

  • KP-ABE: 用户的密钥中蕴含访问结构(访问策略),密文中对应着一系列属性集合,当且仅当密文的属性集合满足用户密钥的访问结构时,用户才能解密成功。细想下来,用户是主体,只有特定的密文才能与之匹配,从而解密。

  • CP-ABE: 用户的密钥对应着一系列属性的集合,密文中蕴含着访问结构(策略),当且仅当用户的属性集合满足密文的访问结构时,用户才能解密成功。细想下来,密文是主体,只有特定的密钥才能与之匹配,从而解密。

二者对比可以发现,CP-ABE中数据拥有者(加密明文得到密文的人)可以根据自己的需求,定义合适的访问结构,让他所期待的一群用户能够解密,这正好适合构建云环境或者雾环境中数据的安全共享方案,描述的是一对多、多对多的数据共享场景。

ABE的优点是降低公钥管理难度;一次加密、多人共享;一对多、多对多;知道接收群组的规模与总体用户的身份信息即可,无需知道接收方的具体身份信息。
当然,ABE的缺点其实也是显而易见的,只要主密钥泄露,系统也就被完全攻破了。

双线性映射

双线性映射是基于Diffie-Hellman难题构建属性基加密算法的数学基础,此处的模糊身份基加密也用到了该数学基础。

\(\mathbb{G}_1,\mathbb{G}_2\)为两个阶为\(p\)的乘法循环群,\(g\)\(\mathbb{G}_1\)的生成元,一个从\(\mathbb{G}_1\)\(\mathbb{G}_2\)的映射\(e:\mathbb{G}_1 \times \mathbb{G}_1\rightarrow \mathbb{G}_2\)是双线性的,当其满足以下三点:

  • 双线性:\(\forall g, h \in \mathbb{G}_1\)\(a,b \in \mathbb{Z}_p\)\(e\left ( g^a, h^b \right ) = e\left ( g, h \right )^{ab}\)
  • 非退化性:\(e\left ( g, h \right ) \neq 1\)
  • 可计算性:\(\forall g, h \in \mathbb{G}_1\),存在有效的算法计算\(e\left ( g, h \right ) \in \mathbb{G}_2\)

相关概念:

合数阶群双线性映射

素数阶群双线性映射

补充

  • \(G_1 \neq G_2\),称该映射为 非对称双线性映射
  • \(G_1 = G_2\),称该映射为 对称双线性映射

单调访问结构

\(\left \{ P_1,P_2,…,P_n \right \}\)为一系列参与者的集合(属性基加密里边指的是属性),一个集合\(\mathbb{A} \subseteq 2^ { \left \{ P_1,P_2,…,P_n \right \}}\)是单调的,当其满足:\(\forall B,C\),如果\(B\in \mathbb{A}\)\(B\subseteq C\),则\(C\in \mathbb{A}\)。一个访问结构(单调访问结构)是\(\left \{ P_1,P_2,…,P_n \right \}\)的幂集的非空子集,即\(\mathbb{A} \subseteq 2^ { \left \{ P_1,P_2,…,P_n \right \} \setminus \left \{\varnothing \right \}}\),在\(\mathbb{A}\)中的集合为授权集合,不在\(\mathbb{A}\)的集合为非授权集合。

例如:假设有用户\(\left\{1,2,3,4\right\}\),只有(1,2)合作,或者(3,4)合作可以恢复秘密,(1,3,4)当然也可以恢复秘密,但是(1,3,4)不是((1,2),(3,4))的超集。

可以理解为在包含所需要的属性的基础上,包含的属性更多,也依然符合这一访问结构。(即为授权集合)

与门访问结构(And-Gate)

访问控制树(Access Tree)

线性秘密共享(LSSS)

离散对数难题

\(\alpha \in \mathbb{Z}_{p}\)\(G\)为一个乘法循环群,群的阶数为\(p\),群的一个生成元为\(g\),离散对数难题说的是:给定\(g,g^a \in G\),对于任何多项式时间的攻击者,其计算出指数\(a\)的概率是可忽略的,即由\(g,g^a \in G\)计算出\(a\)是困难的。

拉格朗日插值法


任意给定\(k\)阶多项式函数,已知给定\(k+1\)个取值点(互不重复):\(\left ( x_0,y_0 \right ),\left ( x_1,y_1 \right ),…,\left ( x_k,y_k \right )\),其中\(i \neq j\)\(x_i \neq x_j\)。可以通过以下插值方式恢复多项式:
其中\(l_j\left ( x \right )\)为拉格朗日系数:

\[l_j\left ( x \right )=\prod _{i=0,i\neq j}^k \frac{x-x_i}{x_j-x_i}= \frac{x-x_0}{x_j-x_0}...\frac{x-x_{j-1}}{x_j-x_{j-1}}\cdot \frac{x-x_{j+1}}{x_j-x_{j+1}}...\frac{x-x_k}{x_j-x_k} \]

任意多于\(k+1\)个取值点都能复原多项式。

辅助理解:视频

安全模型(安全游戏/挑战)

  • 按照攻击者能力划分:选择明文攻击、选择密文攻击、适应性/非适应性选择密文攻击

  • 按照安全目标划分:单向安全性、不可区分安全性、非延展安全性
    模糊身份基加密中是选择身份模型(selective-ID),而属性基加密中是选择集合模型(selective-set)。而且上述模型有两个地方需要注意:

  • 在CP-ABE模型没有Init阶段(在模糊身份基加密的模型中有init阶段),称之为选择明文攻击下不可区分安全(IND-CPA)。如果在Init阶段攻击者声明想要挑战的访问结构,则称之为选择安全模型。很显然,选择安全模型描述的安全性弱一些。

  • 若是在Phase 1阶段还适应性地查询密文,则称之为适应性选择密文攻击安全模型1(CCA1),若是继续在Phase 2阶段还适应性地查询密文,则称之为适应性选择密文攻击安全模型2(CCA2)。很显然,就安全性而言,IND-CPA、CCA1、CCA2依次增强。

安全性证明

密码学中构建方案,通常将方案的安全性规约到某个数学困难问题,用反证法的思想,当难题是困难的,那么攻破方案就是困难的。FIBE方案是在选择身份模型下将方案规约到MBDH问题。(除此之外还有DL、BDH、DBDH等安全假设)。

Waters论文中详细介绍了三种具体方案的构造,但是前两种被学者们“开发”的多,因此在这里着重介绍前两种。第一种基于Decisional q-PBDHE困难假设,第二种基于BDHE假设。无论是哪一种构造,方案的安全模型是和CP-ABE里边的安全模型是一样的。这些实现都将线性秘密共享(LSSS) 作为访问结构,进而依赖特定的难题,完成安全性的规约证明。

详细请看:

可证明安全理论

  • 计算安全性
  • 可证明安全性
  • 无条件安全性