ecc

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2026 License: Apache-2.0 Imports: 4 Imported by: 1,047

Documentation

Overview

Package ecc provides bls12-381, bls12-377, bn254, bw6-761, bls24-315, bls24-317, bw6-633, secp256k1, secp256r1, grumpkin and stark-curve elliptic curves implementations.

Also

  • Bilinear pairing
  • Multi exponentiation
  • FFT
  • Polynomial commitment schemes
  • MiMC and Poseidon2 hash functions
  • twisted edwards "companion curves"
  • ECDSA
  • EdDSA (on the "companion" twisted edwards curves)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NafDecomposition

func NafDecomposition(a *big.Int, result []int8) int

NafDecomposition gets the naf decomposition of a big number

func NextPowerOfTwo added in v0.5.0

func NextPowerOfTwo(n uint64) uint64

NextPowerOfTwo(n) = 2^⌈log₂(n)⌉ or 2ᵏ where 2ᵏ⁻¹ < n ≤ 2ᵏ

func PrecomputeLattice

func PrecomputeLattice(r, lambda *big.Int, res *Lattice)

PrecomputeLattice res such that res.V1, res.V2 are short vectors satisfying v11+v12.λ=v21+v22.λ=0[r]. cf https://www.iacr.org/archive/crypto2001/21390189.pdf

func PrecomputeLattice4 added in v0.20.0

func PrecomputeLattice4(res *Lattice4)

PrecomputeLattice4 sets res.Det and the rounding constants (b1..b4) for a 4-dimensional lattice basis stored in res.V. The constants correspond to the first column of adj(res.V)/det(res.V), used for the closest vector approximation to (s,0,0,0).

func SplitScalar

func SplitScalar(s *big.Int, l *Lattice) [2]big.Int

SplitScalar outputs u,v such that u+vlambda=s[r]. The method is to view s as (s,0) in ZxZ, and find a close vector w of (s,0) in <l>, where l is a sub Z-module of ker((a,b) → a+b.λ[r]): then (u,v)=w-(s,0), and u+v.λ=s[r]. cf https://www.iacr.org/archive/crypto2001/21390189.pdf

func SplitScalarFour added in v0.20.0

func SplitScalarFour(s *big.Int, l *Lattice4) [4]big.Int

SplitScalarFour computes k0,k1,k2,k3 such that k0+k1*lambda1+k2*lambda2+k3*lambda1*lambda2 = s [r]. It uses a closest vector approximation in a 4-dimensional lattice.

func WnafDecomposition added in v0.20.0

func WnafDecomposition(a *big.Int, window uint, result []int8) int

WnafDecomposition gets the wNAF decomposition of a big number. 2 <= window <= 8 is the wNAF window size.

Types

type ID

type ID uint16

ID represent a unique ID for a curve

const (
	UNKNOWN ID = iota
	BN254
	BLS12_377
	BLS12_381
	BLS24_315
	BLS24_317
	BW6_761
	BW6_633
	STARK_CURVE
	SECP256K1
	GRUMPKIN
	SECP256R1
)

do not modify the order of this enum

func IDFromString added in v0.13.0

func IDFromString(s string) (ID, error)

IDFromString returns the ID corresponding to the string representation of the curve ID. It returns UNKNOWN if the string does not match any known curve ID.

func (ID) BaseField added in v0.8.0

func (id ID) BaseField() *big.Int

BaseField returns the base field of the curve

func (ID) ScalarField added in v0.8.0

func (id ID) ScalarField() *big.Int

ScalarField returns the scalar field of the curve

func (ID) String

func (id ID) String() string

String returns the string representation of the ID

type Lattice

type Lattice struct {
	V1, V2 [2]big.Int
	Det    big.Int
	// contains filtered or unexported fields
}

Lattice represents a Z module spanned by V1, V2. det is the associated determinant.

type Lattice4 added in v0.20.0

type Lattice4 struct {
	V   [4][4]big.Int
	Det big.Int
	// contains filtered or unexported fields
}

Lattice4 represents a Z module spanned by V[0], V[1], V[2], V[3]. The vectors are stored as columns: V[col][row]. det is the associated determinant.

type MultiExpConfig added in v0.5.0

type MultiExpConfig struct {
	NbTasks int // go routines to be used in the multiexp. can be larger than num cpus.
}

MultiExpConfig enables to set optional configuration attribute to a call to MultiExp

Directories

Path Synopsis
Package bls12377 efficient elliptic curve, pairing and hash to curve implementation for bls12-377.
Package bls12377 efficient elliptic curve, pairing and hash to curve implementation for bls12-377.
ecdsa
Package ecdsa provides ECDSA signature scheme on the bls12-377 curve.
Package ecdsa provides ECDSA signature scheme on the bls12-377 curve.
fflonk
Package fflonk provides fflonk commitment, based on shplonk.
Package fflonk provides fflonk commitment, based on shplonk.
fp
Package fp contains field arithmetic operations for modulus = 0x1ae3a4...000001.
Package fp contains field arithmetic operations for modulus = 0x1ae3a4...000001.
fp/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr
Package fr contains field arithmetic operations for modulus = 0x12ab65...000001.
Package fr contains field arithmetic operations for modulus = 0x12ab65...000001.
fr/fft
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
fr/fri
Package fri provides the FRI (multiplicative) commitment scheme.
Package fri provides the FRI (multiplicative) commitment scheme.
fr/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr/iop
Package iop provides an API to computations common to iop backends (permutation, quotient).
Package iop provides an API to computations common to iop backends (permutation, quotient).
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
fr/pedersen
Package pedersen allows to compute and verify Pedersen vector commitments
Package pedersen allows to compute and verify Pedersen vector commitments
fr/permutation
Package permutation provides an API to build permutation proofs.
Package permutation provides an API to build permutation proofs.
fr/plookup
Package plookup provides an API to build plookup proofs.
Package plookup provides an API to build plookup proofs.
fr/polynomial
Package polynomial provides polynomial methods and commitment schemes.
Package polynomial provides polynomial methods and commitment schemes.
fr/poseidon2
Package poseidon2 implements the Poseidon2 permutation
Package poseidon2 implements the Poseidon2 permutation
kzg
Package kzg provides a KZG commitment scheme.
Package kzg provides a KZG commitment scheme.
mpcsetup
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
shplonk
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
twistededwards
Package twistededwards provides bls12-377's twisted edwards "companion curve" defined on fr.
Package twistededwards provides bls12-377's twisted edwards "companion curve" defined on fr.
twistededwards/eddsa
Package eddsa provides EdDSA signature scheme on bls12-377's twisted edwards curve.
Package eddsa provides EdDSA signature scheme on bls12-377's twisted edwards curve.
Package bls12381 efficient elliptic curve, pairing and hash to curve implementation for bls12-381.
Package bls12381 efficient elliptic curve, pairing and hash to curve implementation for bls12-381.
bandersnatch
Package bandersnatch provides bls12-381's twisted edwards "companion curve" defined on fr.
Package bandersnatch provides bls12-381's twisted edwards "companion curve" defined on fr.
bandersnatch/eddsa
Package eddsa provides EdDSA signature scheme on bls12-381's twisted edwards curve.
Package eddsa provides EdDSA signature scheme on bls12-381's twisted edwards curve.
ecdsa
Package ecdsa provides ECDSA signature scheme on the bls12-381 curve.
Package ecdsa provides ECDSA signature scheme on the bls12-381 curve.
fflonk
Package fflonk provides fflonk commitment, based on shplonk.
Package fflonk provides fflonk commitment, based on shplonk.
fp
Package fp contains field arithmetic operations for modulus = 0x1a0111...ffaaab.
Package fp contains field arithmetic operations for modulus = 0x1a0111...ffaaab.
fp/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr
Package fr contains field arithmetic operations for modulus = 0x73eda7...000001.
Package fr contains field arithmetic operations for modulus = 0x73eda7...000001.
fr/fft
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
fr/fri
Package fri provides the FRI (multiplicative) commitment scheme.
Package fri provides the FRI (multiplicative) commitment scheme.
fr/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr/iop
Package iop provides an API to computations common to iop backends (permutation, quotient).
Package iop provides an API to computations common to iop backends (permutation, quotient).
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
fr/pedersen
Package pedersen allows to compute and verify Pedersen vector commitments
Package pedersen allows to compute and verify Pedersen vector commitments
fr/permutation
Package permutation provides an API to build permutation proofs.
Package permutation provides an API to build permutation proofs.
fr/plookup
Package plookup provides an API to build plookup proofs.
Package plookup provides an API to build plookup proofs.
fr/polynomial
Package polynomial provides polynomial methods and commitment schemes.
Package polynomial provides polynomial methods and commitment schemes.
fr/poseidon2
Package poseidon2 implements the Poseidon2 permutation
Package poseidon2 implements the Poseidon2 permutation
kzg
Package kzg provides a KZG commitment scheme.
Package kzg provides a KZG commitment scheme.
mpcsetup
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
shplonk
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
twistededwards
Package twistededwards provides bls12-381's twisted edwards "companion curve" defined on fr.
Package twistededwards provides bls12-381's twisted edwards "companion curve" defined on fr.
twistededwards/eddsa
Package eddsa provides EdDSA signature scheme on bls12-381's twisted edwards curve.
Package eddsa provides EdDSA signature scheme on bls12-381's twisted edwards curve.
Package bls24315 efficient elliptic curve, pairing and hash to curve implementation for bls24-315.
Package bls24315 efficient elliptic curve, pairing and hash to curve implementation for bls24-315.
ecdsa
Package ecdsa provides ECDSA signature scheme on the bls24-315 curve.
Package ecdsa provides ECDSA signature scheme on the bls24-315 curve.
fflonk
Package fflonk provides fflonk commitment, based on shplonk.
Package fflonk provides fflonk commitment, based on shplonk.
fp
Package fp contains field arithmetic operations for modulus = 0x4c23a0...300001.
Package fp contains field arithmetic operations for modulus = 0x4c23a0...300001.
fp/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr
Package fr contains field arithmetic operations for modulus = 0x196dea...c00001.
Package fr contains field arithmetic operations for modulus = 0x196dea...c00001.
fr/fft
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
fr/fri
Package fri provides the FRI (multiplicative) commitment scheme.
Package fri provides the FRI (multiplicative) commitment scheme.
fr/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr/iop
Package iop provides an API to computations common to iop backends (permutation, quotient).
Package iop provides an API to computations common to iop backends (permutation, quotient).
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
fr/pedersen
Package pedersen allows to compute and verify Pedersen vector commitments
Package pedersen allows to compute and verify Pedersen vector commitments
fr/permutation
Package permutation provides an API to build permutation proofs.
Package permutation provides an API to build permutation proofs.
fr/plookup
Package plookup provides an API to build plookup proofs.
Package plookup provides an API to build plookup proofs.
fr/polynomial
Package polynomial provides polynomial methods and commitment schemes.
Package polynomial provides polynomial methods and commitment schemes.
fr/poseidon2
Package poseidon2 implements the Poseidon2 permutation
Package poseidon2 implements the Poseidon2 permutation
kzg
Package kzg provides a KZG commitment scheme.
Package kzg provides a KZG commitment scheme.
mpcsetup
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
shplonk
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
twistededwards
Package twistededwards provides bls24-315's twisted edwards "companion curve" defined on fr.
Package twistededwards provides bls24-315's twisted edwards "companion curve" defined on fr.
twistededwards/eddsa
Package eddsa provides EdDSA signature scheme on bls24-315's twisted edwards curve.
Package eddsa provides EdDSA signature scheme on bls24-315's twisted edwards curve.
Package bls24317 efficient elliptic curve, pairing and hash to curve implementation for bls24-317.
Package bls24317 efficient elliptic curve, pairing and hash to curve implementation for bls24-317.
ecdsa
Package ecdsa provides ECDSA signature scheme on the bls24-317 curve.
Package ecdsa provides ECDSA signature scheme on the bls24-317 curve.
fflonk
Package fflonk provides fflonk commitment, based on shplonk.
Package fflonk provides fflonk commitment, based on shplonk.
fp
Package fp contains field arithmetic operations for modulus = 0x1058ca...ab2aab.
Package fp contains field arithmetic operations for modulus = 0x1058ca...ab2aab.
fp/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr
Package fr contains field arithmetic operations for modulus = 0x443f91...000001.
Package fr contains field arithmetic operations for modulus = 0x443f91...000001.
fr/fft
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
fr/fri
Package fri provides the FRI (multiplicative) commitment scheme.
Package fri provides the FRI (multiplicative) commitment scheme.
fr/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr/iop
Package iop provides an API to computations common to iop backends (permutation, quotient).
Package iop provides an API to computations common to iop backends (permutation, quotient).
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
fr/pedersen
Package pedersen allows to compute and verify Pedersen vector commitments
Package pedersen allows to compute and verify Pedersen vector commitments
fr/permutation
Package permutation provides an API to build permutation proofs.
Package permutation provides an API to build permutation proofs.
fr/plookup
Package plookup provides an API to build plookup proofs.
Package plookup provides an API to build plookup proofs.
fr/polynomial
Package polynomial provides polynomial methods and commitment schemes.
Package polynomial provides polynomial methods and commitment schemes.
fr/poseidon2
Package poseidon2 implements the Poseidon2 permutation
Package poseidon2 implements the Poseidon2 permutation
kzg
Package kzg provides a KZG commitment scheme.
Package kzg provides a KZG commitment scheme.
mpcsetup
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
shplonk
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
twistededwards
Package twistededwards provides bls24-317's twisted edwards "companion curve" defined on fr.
Package twistededwards provides bls24-317's twisted edwards "companion curve" defined on fr.
twistededwards/eddsa
Package eddsa provides EdDSA signature scheme on bls24-317's twisted edwards curve.
Package eddsa provides EdDSA signature scheme on bls24-317's twisted edwards curve.
Package bn254 efficient elliptic curve, pairing and hash to curve implementation for bn254.
Package bn254 efficient elliptic curve, pairing and hash to curve implementation for bn254.
ecdsa
Package ecdsa provides ECDSA signature scheme on the bn254 curve.
Package ecdsa provides ECDSA signature scheme on the bn254 curve.
fflonk
Package fflonk provides fflonk commitment, based on shplonk.
Package fflonk provides fflonk commitment, based on shplonk.
fp
Package fp contains field arithmetic operations for modulus = 0x30644e...7cfd47.
Package fp contains field arithmetic operations for modulus = 0x30644e...7cfd47.
fp/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr
Package fr contains field arithmetic operations for modulus = 0x30644e...000001.
Package fr contains field arithmetic operations for modulus = 0x30644e...000001.
fr/fft
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
fr/fri
Package fri provides the FRI (multiplicative) commitment scheme.
Package fri provides the FRI (multiplicative) commitment scheme.
fr/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr/iop
Package iop provides an API to computations common to iop backends (permutation, quotient).
Package iop provides an API to computations common to iop backends (permutation, quotient).
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
fr/pedersen
Package pedersen allows to compute and verify Pedersen vector commitments
Package pedersen allows to compute and verify Pedersen vector commitments
fr/permutation
Package permutation provides an API to build permutation proofs.
Package permutation provides an API to build permutation proofs.
fr/plookup
Package plookup provides an API to build plookup proofs.
Package plookup provides an API to build plookup proofs.
fr/polynomial
Package polynomial provides polynomial methods and commitment schemes.
Package polynomial provides polynomial methods and commitment schemes.
fr/poseidon2
Package poseidon2 implements the Poseidon2 permutation
Package poseidon2 implements the Poseidon2 permutation
kzg
Package kzg provides a KZG commitment scheme.
Package kzg provides a KZG commitment scheme.
mpcsetup
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
shplonk
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
twistededwards
Package twistededwards provides bn254's twisted edwards "companion curve" defined on fr.
Package twistededwards provides bn254's twisted edwards "companion curve" defined on fr.
twistededwards/eddsa
Package eddsa provides EdDSA signature scheme on bn254's twisted edwards curve.
Package eddsa provides EdDSA signature scheme on bn254's twisted edwards curve.
Package bw6633 efficient elliptic curve, pairing and hash to curve implementation for bw6-633.
Package bw6633 efficient elliptic curve, pairing and hash to curve implementation for bw6-633.
ecdsa
Package ecdsa provides ECDSA signature scheme on the bw6-633 curve.
Package ecdsa provides ECDSA signature scheme on the bw6-633 curve.
fflonk
Package fflonk provides fflonk commitment, based on shplonk.
Package fflonk provides fflonk commitment, based on shplonk.
fp
Package fp contains field arithmetic operations for modulus = 0x126633...70000d.
Package fp contains field arithmetic operations for modulus = 0x126633...70000d.
fp/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr
Package fr contains field arithmetic operations for modulus = 0x4c23a0...300001.
Package fr contains field arithmetic operations for modulus = 0x4c23a0...300001.
fr/fft
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
fr/fri
Package fri provides the FRI (multiplicative) commitment scheme.
Package fri provides the FRI (multiplicative) commitment scheme.
fr/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr/iop
Package iop provides an API to computations common to iop backends (permutation, quotient).
Package iop provides an API to computations common to iop backends (permutation, quotient).
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
fr/pedersen
Package pedersen allows to compute and verify Pedersen vector commitments
Package pedersen allows to compute and verify Pedersen vector commitments
fr/permutation
Package permutation provides an API to build permutation proofs.
Package permutation provides an API to build permutation proofs.
fr/plookup
Package plookup provides an API to build plookup proofs.
Package plookup provides an API to build plookup proofs.
fr/polynomial
Package polynomial provides polynomial methods and commitment schemes.
Package polynomial provides polynomial methods and commitment schemes.
fr/poseidon2
Package poseidon2 implements the Poseidon2 permutation
Package poseidon2 implements the Poseidon2 permutation
kzg
Package kzg provides a KZG commitment scheme.
Package kzg provides a KZG commitment scheme.
mpcsetup
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
shplonk
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
twistededwards
Package twistededwards provides bw6-633's twisted edwards "companion curve" defined on fr.
Package twistededwards provides bw6-633's twisted edwards "companion curve" defined on fr.
twistededwards/eddsa
Package eddsa provides EdDSA signature scheme on bw6-633's twisted edwards curve.
Package eddsa provides EdDSA signature scheme on bw6-633's twisted edwards curve.
Package bw6761 efficient elliptic curve, pairing and hash to curve implementation for bw6-761.
Package bw6761 efficient elliptic curve, pairing and hash to curve implementation for bw6-761.
ecdsa
Package ecdsa provides ECDSA signature scheme on the bw6-761 curve.
Package ecdsa provides ECDSA signature scheme on the bw6-761 curve.
fflonk
Package fflonk provides fflonk commitment, based on shplonk.
Package fflonk provides fflonk commitment, based on shplonk.
fp
Package fp contains field arithmetic operations for modulus = 0x122e82...00008b.
Package fp contains field arithmetic operations for modulus = 0x122e82...00008b.
fp/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr
Package fr contains field arithmetic operations for modulus = 0x1ae3a4...000001.
Package fr contains field arithmetic operations for modulus = 0x1ae3a4...000001.
fr/fft
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
Package fft provides in-place discrete Fourier transform on powers-of-two subgroups of 𝔽ᵣˣ (the multiplicative group (ℤ/rℤ, x) ).
fr/fri
Package fri provides the FRI (multiplicative) commitment scheme.
Package fri provides the FRI (multiplicative) commitment scheme.
fr/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr/iop
Package iop provides an API to computations common to iop backends (permutation, quotient).
Package iop provides an API to computations common to iop backends (permutation, quotient).
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
fr/pedersen
Package pedersen allows to compute and verify Pedersen vector commitments
Package pedersen allows to compute and verify Pedersen vector commitments
fr/permutation
Package permutation provides an API to build permutation proofs.
Package permutation provides an API to build permutation proofs.
fr/plookup
Package plookup provides an API to build plookup proofs.
Package plookup provides an API to build plookup proofs.
fr/polynomial
Package polynomial provides polynomial methods and commitment schemes.
Package polynomial provides polynomial methods and commitment schemes.
fr/poseidon2
Package poseidon2 implements the Poseidon2 permutation
Package poseidon2 implements the Poseidon2 permutation
kzg
Package kzg provides a KZG commitment scheme.
Package kzg provides a KZG commitment scheme.
mpcsetup
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
Package mpcsetup provides tools for multiparty setup ceremonies for various protocols, based on the MMPORPG paper https://eprint.iacr.org/2017/1050.pdf
shplonk
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
Package shplonk provides a SHPLONK commitment scheme, cf https://eprint.iacr.org/2020/081.pdf
twistededwards
Package twistededwards provides bw6-761's twisted edwards "companion curve" defined on fr.
Package twistededwards provides bw6-761's twisted edwards "companion curve" defined on fr.
twistededwards/eddsa
Package eddsa provides EdDSA signature scheme on bw6-761's twisted edwards curve.
Package eddsa provides EdDSA signature scheme on bw6-761's twisted edwards curve.
Package grumpkin efficient elliptic curve and hash to curve implementation for grumpkin.
Package grumpkin efficient elliptic curve and hash to curve implementation for grumpkin.
ecdsa
Package ecdsa provides ECDSA signature scheme on the grumpkin curve.
Package ecdsa provides ECDSA signature scheme on the grumpkin curve.
fp
Package fp contains field arithmetic operations for modulus = 0x30644e...000001.
Package fp contains field arithmetic operations for modulus = 0x30644e...000001.
fp/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr
Package fr contains field arithmetic operations for modulus = 0x30644e...7cfd47.
Package fr contains field arithmetic operations for modulus = 0x30644e...7cfd47.
fr/hash_to_field
Package htf provides hasher based on RFC 9380 Section 5.
Package htf provides hasher based on RFC 9380 Section 5.
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
fr/polynomial
Package polynomial provides polynomial methods and commitment schemes.
Package polynomial provides polynomial methods and commitment schemes.
fr/poseidon2
Package poseidon2 implements the Poseidon2 permutation
Package poseidon2 implements the Poseidon2 permutation
Package secp256k1 efficient elliptic curve implementation for secp256k1.
Package secp256k1 efficient elliptic curve implementation for secp256k1.
ecdsa
Package ecdsa provides ECDSA signature scheme on the secp256k1 curve.
Package ecdsa provides ECDSA signature scheme on the secp256k1 curve.
fp
Package fp contains field arithmetic operations for modulus = 0xffffff...fffc2f.
Package fp contains field arithmetic operations for modulus = 0xffffff...fffc2f.
fr
Package fr contains field arithmetic operations for modulus = 0xffffff...364141.
Package fr contains field arithmetic operations for modulus = 0xffffff...364141.
Package secp256r1 efficient elliptic curve implementation for the NIST SECP56R1 (or P-256) curve (https://std.neuromancer.sk/secg/secp256r1).
Package secp256r1 efficient elliptic curve implementation for the NIST SECP56R1 (or P-256) curve (https://std.neuromancer.sk/secg/secp256r1).
ecdsa
Package ecdsa provides ECDSA signature scheme on the secp256r1 curve.
Package ecdsa provides ECDSA signature scheme on the secp256r1 curve.
fp
Package fp contains field arithmetic operations for modulus = 0xffffff...ffffff.
Package fp contains field arithmetic operations for modulus = 0xffffff...ffffff.
fr
Package fr contains field arithmetic operations for modulus = 0xffffff...632551.
Package fr contains field arithmetic operations for modulus = 0xffffff...632551.
Package starkcurve efficient elliptic curve implementation for stark_curve.
Package starkcurve efficient elliptic curve implementation for stark_curve.
ecdsa
Package ecdsa provides ECDSA signature scheme on the stark-curve curve.
Package ecdsa provides ECDSA signature scheme on the stark-curve curve.
fp
Package fp contains field arithmetic operations for modulus = 0x800000...000001.
Package fp contains field arithmetic operations for modulus = 0x800000...000001.
fr
Package fr contains field arithmetic operations for modulus = 0x800000...c64d2f.
Package fr contains field arithmetic operations for modulus = 0x800000...c64d2f.
Package twistededwards define unique identifier for twisted edwards curves implemented in gnark-crypto
Package twistededwards define unique identifier for twisted edwards curves implemented in gnark-crypto

Jump to

Keyboard shortcuts

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