|
|
|
@ -35,33 +35,24 @@ p(z) = 36z^4 + 36z^3 + 24z^2 + 6z + 1. |
|
|
|
|
|
|
|
|
|
# Benchmark |
|
|
|
|
|
|
|
|
|
A benchmark of a BN curve BN254(2016/12/25). |
|
|
|
|
## The latest benchmark(2018/11/7) |
|
|
|
|
|
|
|
|
|
* x64, x86 ; Inte Core i7-6700 3.4GHz(Skylake) upto 4GHz on Ubuntu 16.04. |
|
|
|
|
* `sudo cpufreq-set -g performance` |
|
|
|
|
* arm ; 900MHz quad-core ARM Cortex-A7 on Raspberry Pi2, Linux 4.4.11-v7+ |
|
|
|
|
* arm64 ; 1.2GHz ARM Cortex-A53 [HiKey](http://www.96boards.org/product/hikey/) |
|
|
|
|
* Intel Core i7-7700 3.6GHz(Kaby Lake), Ubuntu 18.04.1 LTS on Windows 10 Vmware |
|
|
|
|
|
|
|
|
|
software | x64| x86| arm|arm64(msec) |
|
|
|
|
---------------------------------------------------------|------|-----|----|----- |
|
|
|
|
[ate-pairing](https://github.com/herumi/ate-pairing) | 0.21 | - | - | - |
|
|
|
|
mcl | 0.31 | 1.6 |22.6| 3.9 |
|
|
|
|
[TEPLA](http://www.cipher.risk.tsukuba.ac.jp/tepla/) | 1.76 | 3.7 | 37 | 17.9 |
|
|
|
|
[RELIC](https://github.com/relic-toolkit/relic) PRIME=254| 0.30 | 3.5 | 36 | - |
|
|
|
|
[MIRACL](https://github.com/miracl/MIRACL) ake12bnx | 4.2 | - | 78 | - |
|
|
|
|
[NEONabe](http://sandia.cs.cinvestav.mx/Site/NEONabe) | - | - | 16 | - |
|
|
|
|
curveType| binary|clang-6.0.0|gcc-7.3.0 |
|
|
|
|
---------|-------------------|-----------|--------- |
|
|
|
|
BN254| bin/bn\_test.exe| 900Kclk| 954Kclk |
|
|
|
|
BLS12-381|bin/bls12\_test.exe| 2340Kclk| 2680Kclk |
|
|
|
|
|
|
|
|
|
* compile option for RELIC |
|
|
|
|
``` |
|
|
|
|
cmake -DARITH=x64-asm-254 -DFP_PRIME=254 -DFPX_METHD="INTEG;INTEG;LAZYR" -DPP_METHD="LAZYR;OATEP" |
|
|
|
|
``` |
|
|
|
|
## Higher-bit BN curve benchmark by mcl |
|
|
|
|
* now investigating the reason why gcc is slower than clang. |
|
|
|
|
|
|
|
|
|
## Higher-bit BN curve benchmark |
|
|
|
|
|
|
|
|
|
For JavaScript(WebAssembly), see [ID based encryption demo](https://herumi.github.io/mcl-wasm/ibe-demo.html). |
|
|
|
|
|
|
|
|
|
paramter | x64| Firefox on x64|Safari on iPhone7| |
|
|
|
|
-----------|-----|---------------|-----------------| |
|
|
|
|
BN254 | 0.29| 2.48| 4.78| |
|
|
|
|
BN254 | 0.25| 2.48| 4.78| |
|
|
|
|
BN381\_1 | 0.95| 7.91| 11.74| |
|
|
|
|
BN462 | 2.16| 14.73| 22.77| |
|
|
|
|
|
|
|
|
@ -74,6 +65,27 @@ BN462 | 2.16| 14.73| 22.77| |
|
|
|
|
|
|
|
|
|
The other benchmark results are [bench.txt](bench.txt). |
|
|
|
|
|
|
|
|
|
## An old benchmark of a BN curve BN254(2016/12/25). |
|
|
|
|
|
|
|
|
|
* x64, x86 ; Inte Core i7-6700 3.4GHz(Skylake) upto 4GHz on Ubuntu 16.04. |
|
|
|
|
* `sudo cpufreq-set -g performance` |
|
|
|
|
* arm ; 900MHz quad-core ARM Cortex-A7 on Raspberry Pi2, Linux 4.4.11-v7+ |
|
|
|
|
* arm64 ; 1.2GHz ARM Cortex-A53 [HiKey](http://www.96boards.org/product/hikey/) |
|
|
|
|
|
|
|
|
|
software | x64| x86| arm|arm64(msec) |
|
|
|
|
---------------------------------------------------------|------|-----|----|----- |
|
|
|
|
[ate-pairing](https://github.com/herumi/ate-pairing) | 0.21 | - | - | - |
|
|
|
|
mcl | 0.31 | 1.6 |22.6| 3.9 |
|
|
|
|
[TEPLA](http://www.cipher.risk.tsukuba.ac.jp/tepla/) | 1.76 | 3.7 | 37 | 17.9 |
|
|
|
|
[RELIC](https://github.com/relic-toolkit/relic) PRIME=254| 0.30 | 3.5 | 36 | - |
|
|
|
|
[MIRACL](https://github.com/miracl/MIRACL) ake12bnx | 4.2 | - | 78 | - |
|
|
|
|
[NEONabe](http://sandia.cs.cinvestav.mx/Site/NEONabe) | - | - | 16 | - |
|
|
|
|
|
|
|
|
|
* compile option for RELIC |
|
|
|
|
``` |
|
|
|
|
cmake -DARITH=x64-asm-254 -DFP_PRIME=254 -DFPX_METHD="INTEG;INTEG;LAZYR" -DPP_METHD="LAZYR;OATEP" |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
# Installation Requirements |
|
|
|
|
|
|
|
|
|
* [GMP](https://gmplib.org/) and OpenSSL |
|
|
|
|