Specification-compliant and performant C implementation of the BBS signature scheme with little to no third party dependencies.
Provides a library libbbs implementing the BLS12-381-SHA-256 and BLS12-381-SHAKE-256 cipher suite.
Dependencies:
cmake(build only)gmp(optional, faster than the default)
mkdir build
cd build
cmake .. # Without GMP or
cmake -DRELIC_ARITH="gmp" .. # (if you have gmp)Within build:
make installWithin build:
make
make testWithin build:
./test/bbs-test-benchBenchmark (bbs_bench_individual) on M1 Pro 2021 16GB with -DRELIC_ARITH="gmp":
- 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 | 1,995 | 1,888 |
| verify | 3,877 | 3,829 |
| proof generation | 3,289 | 3,220 |
| proof verification | 4,532 | 4,482 |