bls

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2024 License: MPL-2.0 Imports: 7 Imported by: 25

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

func BatchVerify(suite pairing.Suite, publics []kyber.Point, msgs [][]byte, sig []byte) error

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL