属性基加密(ABE)基础知识
属性基加密(ABE)的分类
属性基加密(ABE)的思想来源于模糊身份基加密(FIBE),属性基加密的思想是让密文和密钥与属性集合和访问结构产生关联,当且仅当属性集合满足访问结构的时候,方能解密成功。那么根据这其中两两的对应关系,又可以将属性基加密分为两类,即密钥策略属性基加密(KP-ABE)和密文策略属性基加密(CP-ABE)。
-
KP-ABE: 用户的密钥中蕴含访问结构(访问策略),密文中对应着一系列属性集合,当且仅当密文的属性集合满足用户密钥的访问结构时,用户才能解密成功。细想下来,用户是主体,只有特定的密文才能与之匹配,从而解密。
-
CP-ABE: 用户的密钥对应着一系列属性的集合,密文中蕴含着访问结构(策略),当且仅当用户的属性集合满足密文的访问结构时,用户才能解密成功。细想下来,密文是主体,只有特定的密钥才能与之匹配,从而解密。
二者对比可以发现,CP-ABE中数据拥有者(加密明文得到密文的人)可以根据自己的需求,定义合适的访问结构,让他所期待的一群用户能够解密,这正好适合构建云环境或者雾环境中数据的安全共享方案,描述的是一对多、多对多的数据共享场景。
ABE的优点是降低公钥管理难度;一次加密、多人共享;一对多、多对多;知道接收群组的规模与总体用户的身份信息即可,无需知道接收方的具体身份信息。
当然,ABE的缺点其实也是显而易见的,只要主密钥泄露,系统也就被完全攻破了。
ABE之所以采用主密钥+属性密钥的形式,是为了方便外包以及撤销;而撤销是为了是为了设置有效期,实现访问控制。
双线性映射
双线性映射是基于Diffie-Hellman难题构建属性基加密算法的数学基础,此处的模糊身份基加密也用到了该数学基础。
令为两个阶为的乘法循环群,为的生成元,一个从到的映射是双线性的,当其满足以下三点:
- 双线性:和有;
- 非退化性:;
- 可计算性:,存在有效的算法计算。
相关概念:
合数阶群双线性映射
素数阶群双线性映射
补充
- 若,称该映射为 非对称双线性映射
- 若,称该映射为 对称双线性映射
单调访问结构
令 为一系列参与者的集合(属性基加密里边指的是属性),一个集合是单调的,当其满足:,如果且,则。一个访问结构(单调访问结构)是的幂集的非空子集,即,在中的集合为授权集合,不在的集合为非授权集合。
例如:假设有用户,只有 合作,或者 合作可以恢复秘密, 当然也可以恢复秘密,但是 不是 的超集。
可以理解为在包含所需要的属性的基础上,包含的属性更多,也依然符合这一访问结构。(即为授权集合)
与门访问结构(And-Gate)
访问控制树(Access Tree)
线性秘密共享(LSSS)
令 为一系列参与者的集合, 上的一个秘密共享方案 是线性的,当且仅当满足如下两个条件:
- 每个参与者关于秘密值 的份额构成 上的一给向量;
- 存在一个秘密共享方案 的分享生成矩阵 ,函数 将矩阵的第 行映射到一个 上的属性,即 。给定一个列向量 ,其中 是需要共享的秘密值,在上随机选取,向量是根据秘密共享方案的份份额,第份份额是属于属性,即为和的内积。
线性秘密共享方案具有线性重构的特性。假设一个线性秘密共享方案代表一个访问结构,令表示一个授权的属性集合,索引集合定义为。根据线性重构的性质,则存在一系列常数的集合,使得。而且这些常数能在多项式时间内找到。对于任何非授权的集合,找不到满足条件的一组常数。
本质还是矩阵运算。
离散对数难题
令,为一个乘法循环群,群的阶数为,群的一个生成元为,离散对数难题说的是:给定,对于任何多项式时间的攻击者,其计算出指数的概率是可忽略的,即由计算出是困难的。
拉格朗日插值法
任意给定阶多项式函数,已知给定个取值点(互不重复):,其中时。可以通过以下插值方式恢复多项式:
其中为拉格朗日系数:
任意多于个取值点都能复原多项式。
辅助理解:视频
安全模型(安全游戏/挑战)
-
按照攻击者能力划分:选择明文攻击、选择密文攻击、适应性/非适应性选择密文攻击
-
按照安全目标划分:单向安全性、不可区分安全性、非延展安全性
模糊身份基加密中是选择身份模型(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) 作为访问结构,进而依赖特定的难题,完成安全性的规约证明。
详细请看:关于ABE中的安全性证明
可证明安全理论
- 计算安全性
- 可证明安全性
- 无条件安全性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!