LIBFENC -- The Functional Encryption Library
The functional encryption library is an extensible library implementing several functional encryption schemes. Functional encryption is a new class of encryption that includes Attribute-Based (ABE) and Identity-Based encryption (IBE).
The library known as libfenc has a few dependencies: the Pairing-based Crypto (PBC) library which you can download at http://crypto.stanford.edu/pbc/download.html, and the GNU Multi-Precision (GMP) library which you can download at http://gmplib.org/. Your operating system may have packages for installing these automatically. If not, Follow the README documents found within the libraries to install on your system.
Within the sub-directories you will find very useful tools and documentation to help you get acclimated with the libfenc source code. The following describes what is contained in each directory:
./ : the libfenc source code that implements a few cryptosystems based on ABE. This code is research quality and is currently in pre-release stage.
doc : this directory provides documentation for the libfenc design as well as the libfenc API and a useful tutorial for how to use the API under various ABE schemes.
doc/research : this directory provides the research papers of the ABE cryptosystems that the library implements.
misc : sample scripts to build the PBC and GMP in Mac OS X environments for standard (Intel) and mobile platforms (ARM).
tools : a tool chain that uses the CP- and KP-ABE schemes implemented by libfenc. This directory contains abe-setup (initializes the scheme parameters - master public and private parameters), abe-keygen (generates ABE private-keys for users), abe-enc (performs encryption on files under various policies), and abe-dec (performs corresponding decryption).
Currently, the library works well on 32-bit systems but we have a few notable bugs on 64-bit systems.
If you have feature suggestions, bug reports, questions, or want to let us know how your using the library, you can reach us at libfenc-devel at googlegroups dot com.
Please see the INSTALL text file for directions on how to install the library for varied *unix operating systems.