基于属性的加密(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/
Author
Isolator
Posted on
March 18, 2024
Licensed under