概述
基于属性的加密(attribute-based ecryption, ABE)根据属性加密消息,无需关注接收者的身份,只有符合属性要求的用户才能解密密文,保证了数据的机密性。此外,ABE中的用户密钥与随机多项式或随机数相关,不同用户的密钥无法联合,防止用户合谋攻击。
但是由于基本的ABE无法支持灵活的访问控制策略,在ABE基础上,Goyal等人提出了KP-ABE(Key-Policy Attribute-Based Encryption,密钥策略属性基加密系统),密文对应于属性集合,而密钥对应于访问结构,解密当且仅当属性集合中的属性能够满足此访问结构。这种设计比较接近静态场景,此时密文用与其相关的属性加密存放在服务器上,当允许用户得到某些消息时,就分配一个特定的访问结构给用户,适用于视频点播、数据库访问。
访问结构(access structure):访问结构是安全系统研究的术语,系统的访问结构是指被授权的集合的结构。
而后,Bethencourt等人提出了CP-ABE(Ciphertext-Policy Attribute-Based Encryption,密文策略属性基加密系统),密文对应于访问结构,而密钥对应于属性集合,解密当且仅当属性集合中的属性能够满足此访问结构。这种设计比较接近于现实中的应用场景,可以假象每个用户根据自身条件或者属性从属性机构得到密钥,然后加密者来制定对消息的访问控制,信息拥有者可以规定密文访问策略,适用于消息分发场景。
CP-ABE
算法流程
CP-ABE包含了四个基本算法:Setup、Encrypt、KeyGen、Decrypt
- Setup:只接受隐式的安全参数作为输入。输出公共密钥 PK 和主密钥 MK 。
- Encrypt(PK, M, A):输入 PK,消息 M 和访问结构 A,对 M 进行加密,产生密文 CT。
- Key Generation(MK, S):输入主密钥 MK 和描述密钥的属性集合 S,输出私钥 SK。其中,SK 由属性来确定。
- Decrypt(PK, CT, SK):输入公共密钥 PK、包含访问结构 A 的密文 CT,以及私钥 SK。注意这里的私钥由属性集合 S 生成。如果 S 能够满足 A,则对 CT 进行解密并返回消息 M。
应用
传统公钥体系中公钥和私钥一一对应,需要使用接收者的公钥进行加密,接收者再使用自己的私钥进行解密。使用传统公钥体系分发消息时,需要为所有接收者进行一次加密操作。ABE属于公钥加密体系,但是与其他公钥算法不同的是,ABE的加密不需要使用特定接收者的公钥,而是使用属性来规定密文的访问策略,这样就避免了对同一消息的多次加密操作,因此适用于一对多的消息分发场景。
在分布式系统中,通常需要可信服务器存储访问控制系统所需要的数据,但是这些服务器一旦被攻陷,数据也就不再安全。而使用CP-ABE加密之后,可以提高数据的安全性,即使服务器不可信,也能保证信息不泄露。
此外,由于CP-ABE允许数据加密方规定访问结构,并且访问结构中的属性具有逻辑关系,因此可以满足细粒度的访问控制需求。
|
|