Implementation of the pairing-based broadcast encryption with traitor tracing scheme described in GKRW17. This can be used as a library or command-line interface. Currently, this implementation only works with the BN254 pairing-friendly curve family.
First, you will need the following libraries:
- RELIC (must be installed with cmake option -DFP_PRIME=254 to have RELIC use a BN254 curve)
- libsodium
- JSON for Modern C++
This project should be compiled with C++11 or greater. There is a Makefile that may need to be customized to your particular system.
This library is an alpha proof of concept ONLY and should not be used in production. Several potential vulnerabilities:
- RELIC random point generation potentially biased
- Parameter and secret key generation leaks information via a timing attack.