zww308 / jTR-ABE

Traceable and Revocable Attribute-based Encryption in Java

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

jTR-ABE

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.

Notes

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.

Dependencies

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.

Build

To build jTR-ABE:

$ mvn compile

To install it into a local maven repository run:

$ mvn install

Common Problems

JPBC-PBC library can not be found or loaded: Remove the system JNA library or patch JPBC to work with newest JNA.

About

Traceable and Revocable Attribute-based Encryption in Java

License:GNU General Public License v2.0


Languages

Language:Java 100.0%