基于属性的加密(CP-ABE)
ABE(Attribute-based Encryption)
CP-ABE:将访问策略嵌入密文
KP-ABE:将访问策略嵌入密钥
一次加密,多人共享,根据解密者是否具有某些属性,来判断能否解密
访问控制树
访问树T的节点x,子节点数记为num_x,阈值记为k_x
阈值是什么?
树中每个非叶结点都代表一个条件,假设一个条件“年龄大于a并且小于b”,如果阈值为2,那么只有同时满足>a <b两个条件才能“通过”(即继续向下走)
显然叶节点阈值只能是1,因为相当于下面没有分支了
例子:
假设现有一份共享数据,只有当访问者满足以下2个条件时才能访问:
1.两个实验室的老师
2.计算机学院研二的硕士且属于这两个实验室
节点2/3代表阈值2(就是前面说的那两个条件),子节点3
根节点生成一个随机多项式,然后有3个子节点,就把1,2,3带入,得到了新的秘密数传递下去。
而下一层左边的阈值是3,多项式次数就是2,常数项就是传下来的秘密数。右边因为次数是0,f(x)就是一个常数14。
用户可以根据这棵树解出秘密值
比如我同时满足“计算机学院研二硕士”,就知道左下子树的函数的三个点(1,19) (2,44) (3,83),可以求出常数项(拉格朗日插值法,其实就是知道k个点可以解k-1次方程),我就知道了常数项(秘密数)是8
然后我还是两个实验室之一的学生,又可以知道右边的秘密数是14,两个点去解1次方程,又可以知道上面那个秘密值是5
基于属性的加密(CP-ABE)
https://isolator-1.github.io/2024/03/18/crypto/CP-ABE/