Attribute-based encryption is a type of public-key encryption in which the secret key of a user and the ciphertext are dependent upon attributes (e.g. the country in which he lives, or the kind of subscription he has). In such a system, the decryption of a ciphertext is possible only if the set of attributes of the user key matches the attributes of the ciphertext.
A crucial security aspect of attribute-based encryption is collusion-resistance: An adversary that holds multiple keys should only be able to access data if at least one individual key grants access.
The concept of attribute-based encryption was first proposed by Amit Sahai and Brent Waters  and later by Vipul Goyal, Omkant Pandey, Amit Sahai and Brent Waters. Recently, several researchers have further proposed Attribute-based encryption with multiple authorities who jointly generate users' private keys.
Types of attribute-based encryption schemes
In KP-ABE, users' secret keys are generated based on an access tree that defines the privileges scope of the concerned user, and data are encrypted over a set of attributes. However, CP-ABE uses access trees to encrypt data and users' secret keys are generated over a set of attributes.
Attribute-based encryption (ABE) can be used for log encryption. Instead of encrypting each part of a log with the keys of all recipients, it is possible to encrypt the log only with attributes which match recipients' attributes. This primitive can also be used for broadcast encryption in order to decrease the number of keys used.
Although ABE concept is very powerful and a promising mechanism, ABE systems suffer mainly from two drawbacks: non-efficiency and non-existence of attribute revocation mechanism.
Other main challenges are:
- Key coordination
- Key escrow
- Key revocation
Attribute revocation mechanism
Revocation of users in cryptosystems is a well-studied but nontrivial problem. Revocation is even more challenging in attribute-based systems, given that each attribute possibly belongs to multiple different users, whereas in traditional PKI systems public/private key pairs are uniquely associated with a single user. In principle, in an ABE system, attributes, not users or keys, are revoked. The following paragraph now discusses how the revocation feature can be incorporated.
A simple but constrained solution is to include a time attribute. This solution would require each message to be encrypted with a modified access tree T0, which is constructed by augmenting the original access tree T with an additional time attribute. The time attribute, ζ represents the current ‘time period’. Formally, the new access structure T0 is as follows: T0 = (T AND ζ). For example, ζ can be the ‘date’ attribute whose value changes once every day. It is assumed that each non-revoked user receives his fresh private keys corresponding to the ‘date’ attribute once each day directly from the mobile key server MKS (which is the central authority) or via the regional delegates. With a hierarchical access structure, the key delegation property of CP-ABE can be exploited to reduce the dependency on the central authority for issuing the new private keys to all users every time interval. There are significant trade-offs between the extra load incurred by the authority for generating and communicating the new keys to the users and the amount of time that can elapse before a revoked user can be effectively purged. This above solution has the following problems:
- Each user X needs to periodically receive from the central authority the fresh private key corresponding to the time attribute, otherwise X will not be able to decrypt any message.
- It is a lazy revocation technique the revoked user is not purged from the system until the current time period expires.
- This scheme requires an implicit time synchronization (a loose time synchronization may be sufficient) among the authority and the users.
Other concepts called 'attribute-based encryption'
A manuscript of Ari Juels and Michael Szydlo dated 2004 proposed a different, non-collusion-resistant notion of attribute-based encryption.
- What is Attribute-Based Encryption, Cryptography Stack Exchange Crypto SE (2014)
- Amit Sahai and Brent Waters, Fuzzy Identity-Based Encryption Cryptology ePrint Archive, Report 2004/086 (2004)
- Vipul Goyal, Omkant Pandey, Amit Sahai and Brent Waters, Attribute-Based Encryption for Fine-Grained Access Control of Encrypted Data ACM CCS (2006)
- Melissa Chase, Multi-authority Attribute-Based Encryption TCC (2007)
- Melissa Chase and Sherman S.M. Chow, Improving privacy and security in multi-authority attribute-based encryption ACM CCS (2009)
- Taeho Jung, Xiang-Yang Li, Zhiguo Wan, and Meng Wan, Privacy preserving cloud data access with multi-authorities IEEE INFOCOM (2013)
- Taeho Jung, Xiang-Yang Li, Zhiguo Wan, and Meng Wan, Control Cloud Data Access Privilege and Anonymity With Fully Anonymous Attribute-Based Encryption Transactions on Information Forensics and Security (2015)
- Allisso Lewko and Brent Waters, Decentralizing Attribute-Based Encryption EUROCRYPT (2011)
- Sascha Muller, Stefan Katzenbeisser, and Claudia Eckert, On multi-authority ciphertext-policy attribute-based encryption Bull. Korean Math. Soc. 46 (2009)
- Bethencourt, J.; Sahai, A.; Waters, B. (2007-05-01). "Ciphertext-Policy Attribute-Based Encryption". 2007 IEEE Symposium on Security and Privacy (SP '07): 321–334. doi:10.1109/SP.2007.11.
- Vipul Goyal, Omkant Pandey, Amit Sahai and Brent Waters, Attribute-Based Encryption for Fine-Grained Access Control of Encrypted Data Cryptology ePrint Archive, Report 2006/309 (2006)
- David Lubicz and Thomas Sirvent, Attribute-Based Broadcast Encryption Scheme Made Efficient First International Conference on Cryptology in Africa (2008)
- Ari Jules and Michael Szydlo, Attribute-Based Encryption: Using Identity-Based Encryption for Access Control Manuscript (2004) Archived February 21, 2014, at the Wayback Machine.