Skip to content

Latest commit

 

History

History
49 lines (34 loc) · 1.55 KB

File metadata and controls

49 lines (34 loc) · 1.55 KB

libbbs

Specification-compliant and performant C implementation of the BBS signature scheme with little to no third party dependencies.1

Provides a library libbbs implementing the BLS12-381-SHA-256 and BLS12-381-SHAKE-256 cipher suite.

The API is documented in include/bbs.h and the manual. See bbs(7).

Build / Install from source

Build dependencies:

  • cmake
  • blst (automatically downloaded / statically linked)
$ mkdir build && cd build
$ cmake ..
$ make
$ make test         (recommended)
$ sudo make install

Benchmark

Within build:

make bench

Benchmark (bbs_bench_individual) on Lenovo ThinkPad T14s Gen1 using clang:

  • 2 messages each of size 64 bytes
  • Disclosing first message only
  • Runtime averaged over 1000 iterations without warmup
Function SHA256 (ms) SHAKE256 (ms)
key generation (SK & PK) 0.174 0.172
sign 0.522 0.514
verify 1.299 1.288
proof generation 1.190 1.178
proof verification 1.643 1.631

Footnotes

  1. The calling application needs to provide a source of randomness via getentropy(3). On modern POSIX platforms, this function is included in libc.