ibe: Implementation of the Boneh-Boyen identity-based-encryption scheme.

(Joint work with David Wu & Ankur Taly).

This patch adds a package that defines interfaces for
identity-based-encryption (IBE) and provides an implementation of those
interfaces using the Boneh-Boyen (BB1) scheme described in "Efficient
Selective Identity-Based Encryption Without Random Oracles" by Dan Boneh
& Xavier Boyen (http://crypto.stanford.edu/~dabo/papers/bbibe.pdf).
Specifically, the operations defined in Section 4.3 of that paper.

This code was originally implemented by David Wu, with some
restructuring and benchmarks added by the author of this patch.

Benchmark results on my 2015 MacBook Pro with a 3.1GHz Intel Core i7:
BenchmarkExtractBB1-4	     100	  20243772 ns/op (20ms)
BenchmarkEncryptBB-4 	     100	  23291797 ns/op (23ms)
BenchmarkDecryptBB-4 	      30	  38485444 ns/op (38ms)

Initial experimentation by David Wu suggests that using a more efficient
(C-based) implementation of the Naehric-Niederhagen-Schwabe pairing
library can improve performance by a factor of 10x. Incorporating that
and other missing features (like Marshaling/Unmarshaling functions to
help persist the PrivateKey and Params) is left for a future commit.

the Boneh-Boyen

Change-Id: I2ee4a55cfcd742d963ff3e79f717c188892b247c
4 files changed
tree: 098a9d0a51f511d1b7bf48a216b0cb0f3e9d23ad
  1. cmdline/
  2. dbutil/
  3. envvar/
  4. host/
  5. ibe/
  6. metadata/
  7. netconfig/
  8. netstate/
  9. set/
  10. textutil/
  11. toposort/
  12. vlog/
  13. .gitignore
  14. .godepcop
  15. AUTHORS
  16. CONTRIBUTING
  17. CONTRIBUTORS
  18. LICENSE
  19. PATENTS
  20. README.md
  21. VERSION
README.md

This repository contains general purpose libraries used by the Vanadium project. TEST