Skip to content
Java implementation of an attribute-based encryption scheme
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Add missing secret key Apr 21, 2016
gradle/wrapper Bump version of gradle Sep 21, 2015
src Remove references to benchmarks Apr 21, 2016
.gitignore Updated Javacc plugin, improved project structure Sep 21, 2015
LICENSE.txt add license May 11, 2015 readme update May 28, 2015
build.gradle Added dependency plugin Oct 5, 2015
gradlew added gradle build files Apr 30, 2015
gradlew.bat fixed line endings May 20, 2015
settings.gradle added gradle build files Apr 30, 2015



JCPABE is a Java implementation of the Attribute-based encryption scheme found in the paper from Bethencourt (2007). It started out as a fork of but has since been mostly rewritten.

It supports numerical attributes and an experimental form of area attributes.

The main functionality is accessible in the cpabe.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 JCPABE:

$ ./gradlew build

To install it into a local maven repository run:

$ ./gradlew 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.

You can’t perform that action at this time.