Skip to content

JScript-w/COMP6453_bbs_plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BBS+ Signature

Introduction

We have implemented two versions of the BBS+ signature scheme using the BLS12-381 elliptic curve. Details of these two versions can be found at:

BLS12_V1

BLS12_V2

Installation

Requirements

  • Python 3.10+
  • uv package manager (recommended)
  • Linux/macOS/WSL environment (due to limitations of py_ecc on Windows)

Install dependencies

uv sync

Activate the virtual environment (first time):

source .venv/bin/activate

Run the main program to test:

uv run main.py

Usage

After running, an interactive CLI menu appears:

1. basic                 # Basic signing and verification
2. selective_disclosure  # Selective disclosure (if implemented)
3. update                # Key update (if implemented)
4. bench                 # Performance benchmark for sign/verify
0. Exit
Input test type number:

Choose a test type and input the curve type:

1. BLS12_V1
2. BLS12_V2
3. ALL
0. Back
Input test curve number:

The system will run the test and output the time consumed for signing and verifying in milliseconds.


Benchmark Results

Two implementations were tested:

bls12_v1 (Faster)

Number of Attributes (n) Sign Time (ms) Verify Time (ms)
1 31.288 6188.981
5 92.619 6264.377
10 166.947 6343.696
20 308.661 6458.902

bls12_v2 (Dual secret-key)

Number of Attributes (n) Sign Time (ms) Verify Time (ms)
1 43.445 6177.910
5 101.797 6232.624
10 172.807 6327.362
20 325.710 6456.706

Note: Verification time remains high due to use of pure Python py_ecc pairing library. Consider switching to a C-based library like blst or mcl for faster pairing operations.


References

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages