Traceable and Revocable Attribute-based Encryption in Java
This software package implements an ABE scheme by Liu and Wong: Practical Attribute-Based Encryption: Traitor Tracing, Revocation, and Large Universe. The flavor is Ciphertext-Policy (CP-ABE). The implementation supports non-monotonic access structures (AC), which is not part this scheme. We borrow techniques from Yamada et al. (http://eprint.iacr.org/2014/181) to achieve this property.
jTR-ABE is a rewrite of an early version of JCPABE which itself is a complete rewrite of an earlier Java cpabe implementation) which is a port of Bethencourt's libbswabe.
It supports
- Traceability of traitors (publishers of decryption keys or decryption boxes),
- User revocation,
- Policies with expressive threshold or boolean formulas and numerical attributes.
The main functionality is accessible in the trabe.Cpabe class.
This is research software and should not be used in application where actual security is required.
Download the source of JPBC from here (JCPABE has only been tested with version 2.0.0). Install it into your local maven repository using
$ mvn install
(only the sub projects jpbc-plaf, jpbc-api and jpbc-pbc are needed)
It is also recommended to install the PBC wrapper for JPBC to improve the performance (as explained here). Note: in Ubuntu the GMP dependency package is called libgmp10.
To build jTR-ABE:
$ mvn compile
To install it into a local maven repository run:
$ mvn install
JPBC-PBC library can not be found or loaded: Remove the system JNA library or patch JPBC to work with newest JNA.