Skip to content
This repository has been archived by the owner on Jun 10, 2020. It is now read-only.
/ bls12-381 Public archive
forked from kilic/bls12-381

FORK with dedis/kyber wrapper: High-speed BLS12-381 implementation in Go

License

Notifications You must be signed in to change notification settings

drand/bls12-381

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CircleCI

This is a fork implementing a kyber/dedis wrapper for this library (among other things)

High speed bls12-381 implementation in go.

Pairing Instance

A Group instance or a pairing engine instance is not suitable for concurrent processing since an instance has its own preallocated memory for temporary variables. A new instance must be created for each thread.

Base Field

x86 optimized base field is generated with kilic/fp and for native go is generated with goff. Generated codes are slightly edited in both for further requirements.

Scalar Field

Standart big.Int module is currently used for scalar field implementation. x86 optimized faster field implementation is planned to be added.

Serialization

Point serialization is in line with zkcrypto library.

Mapping to G1 and G2 Point

Simplified SWU method and try and increment method are available for both G1 and G2.

Benchmarks

test results badge

on 3.1 GHz i5

BenchmarkPairing  1034837 ns/op

About

FORK with dedis/kyber wrapper: High-speed BLS12-381 implementation in Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 80.1%
  • Assembly 19.9%