C++ library for Optimal Ate Pairing on BLS48
bls48 is an Optimal Ate Pairing(OAP) on BLS Curve implementation in C++.
This implementation is based on the drafts below;
Furthermore, this implementation uses libsnark library.
We are motivated by the security consideration for pairing on any curve give by T. Kim.
Kim’s attack made us to update the security parameters or to use alternative curves in OAP.
BLS-48 cuerve is one of the pairing friendly curves, and recommended parameters for realizing 256-bit security is written in [Kiyomura].
This implementation relies on the following:
We have tested these only Linux so far(Ubuntu14.04).
For example, on a fresh install of Ubuntu 14.04, install the following packages:
$ sudo apt-get install build-essential git libgmp3-dev libprocps3-dev libgtest-dev python-markdown libboost-all-dev libssl-dev
In the case of Ubuntu 16.04, install the following packages:
$ sudo apt-get install build-essential git libgmp3-dev libprocps4-dev libgtest-dev python-markdown libboost-all-dev libssl-dev
Then, to compile, run:
$ make
Security Level | 100 | 256 |
Curve Parameter | BN256 | BLS48 |
Scalar Multiplication on G1 | 0.08[ms] | 2.32[ms] |
Scalar Multiplication on G2 | 1.11[ms] | 160.09[ms] |
Pairing | 2.81[ms] | 509[ms] |
Security Level | 100 | 256 |
Curve Parameter | BN256 | BLS48 |
Scalar Multiplication on G1 | 0.06[ms] | 3.05[ms] |
Scalar Multiplication on G2 | 1.24[ms] | 230.61[ms] |
Pairing | 4.05[ms] | 740.69[ms] |
Security Level | 100 | 256 |
Curve Parameter | BN256 | BLS48 |
Scalar Multiplication on G1 | 6.68[ms] | 41.15[ms] |
Scalar Multiplication on G2 | 24.23[ms] | 2643.23[ms] |
Pairing | 58[ms] | 8549.02[ms] |
Security Level | 100 | 256 |
Curve Parameter | BN256 | BLS48 |
Scalar Multiplication on G1 | 5.39[ms] | 38.42[ms] |
Scalar Multiplication on G2 | 21.81[ms] | 2660.55[ms] |
Pairing | 53.03[ms] | 8585.53[ms] |
Security Level | 100 | 256 |
Curve Parameter | BN256 | BLS48 |
Scalar Multiplication on G1 | 0[ms] | 1.07[ms] |
Scalar Multiplication on G2 | 0.14[ms] | 112.86[ms] |
Pairing | 2.11[ms] | 373.02[ms] |
Security Level | 100 | 256 |
Curve Parameter | BN256 | BLS48 |
Scalar Multiplication on G1 | 0[ms] | 1.5[ms] |
Scalar Multiplication on G2 | 0.9[ms] | 127.74[ms] |
Pairing | 2.25[ms] | 409.8[ms] |