Documentation ¶
Overview ¶
Package bls implements the Boneh-Lynn-Shacham (BLS) signature scheme which was introduced in the paper "Short Signatures from the Weil Pairing". BLS requires pairing-based cryptography.
Deprecated: This version is vulnerable to rogue public-key attack and the new version of the protocol should be used to make sure a signature aggregate cannot be verified by a forged key. You can find the protocol in kyber/sign/bdn. Note that only the aggregation is broken against the attack and a later version will merge bls and asmbls.
See the paper: https://crypto.stanford.edu/~dabo/pubs/papers/BLSmultisig.html
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BatchVerify ¶
BatchVerify verifies a large number of publicKey/msg pairings with a single aggregated signature. Since aggregation is generally much faster than verification, this can be a speed enhancement. Benchmarks show a roughly 50% performance increase over individual signature verification Every msg must be unique or there is the possibility to accept an invalid signature see: https://crypto.stackexchange.com/questions/56288/is-bls-signature-scheme-strongly-unforgeable/56290 for a description of why each message must be unique.
func NewSchemeOnG1 ¶
func NewSchemeOnG1(suite pairing.Suite) sign.AggregatableScheme
NewSchemeOnG1 returns a sign.Scheme that uses G1 for its signature space and G2 for its public keys
func NewSchemeOnG2 ¶
func NewSchemeOnG2(suite pairing.Suite) sign.AggregatableScheme
NewSchemeOnG2 returns a sign.Scheme that uses G2 for its signature space and G1 for its public key
Types ¶
This section is empty.