Documentation ¶
Overview ¶
Package ecc provides bls12-381, bls12-377, bls12-378, bn254, bw6-761, bls24-315, bls24-317, bw6-633, bls12-378, bw6-756, secp256k1 and stark-curve elliptic curves implementation (+pairing).
Also
- Multi exponentiation
- FFT
- Polynomial commitment schemes
- MiMC
- twisted edwards "companion curves"
- EdDSA (on the "companion" twisted edwards curves)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NafDecomposition ¶
NafDecomposition gets the naf decomposition of a big number
func NextPowerOfTwo ¶
NextPowerOfTwo returns the next power of 2 of n
func PrecomputeLattice ¶
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 SplitScalar ¶
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
Types ¶
type ID ¶
type ID uint16
ID represent a unique ID for a curve
func Implemented ¶
func Implemented() []ID
Implemented return the list of curves fully implemented in gnark-crypto
func (ID) ScalarField ¶
ScalarField returns the scalar field of the curve
type MultiExpConfig ¶
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 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. |
fp
Package fp contains field arithmetic operations for modulus = 0x30644e...7cfd47.
|
Package fp contains field arithmetic operations for modulus = 0x30644e...7cfd47. |
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.
|
Package fft provides in-place discrete Fourier transform. |
fr/fri
Package fri provides the FRI (multiplicative) commitment scheme.
|
Package fri provides the FRI (multiplicative) commitment scheme. |
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/kzg
Package kzg provides a KZG commitment scheme.
|
Package kzg provides a KZG commitment scheme. |
fr/mimc
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction.
|
Package mimc provides MiMC hash function using Miyaguchi–Preneel construction. |
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. |
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 twistededwards define unique identifier for twited edwards curves implemented in gnark-crypto
|
Package twistededwards define unique identifier for twited edwards curves implemented in gnark-crypto |