mirror of
https://github.com/luxfi/lattice.git
synced 2026-09-24 00:25:44 +00:00
19 lines
997 B
Go
19 lines
997 B
Go
// Package rlwe implements the generic cryptographic functionalities and operations that are common to R-LWE schemes.
|
|
// The other implemented schemes extend this package with their specific operations and structures.
|
|
package rlwe
|
|
|
|
import (
|
|
"github.com/luxfi/lattice/v6/ring"
|
|
"github.com/luxfi/lattice/v6/ring/ringqp"
|
|
)
|
|
|
|
type EvaluatorProvider interface {
|
|
DecomposeNTT(level, levelP, pCount int, c1 ring.Poly, isNTT bool, BuffDecompQP []ringqp.Poly)
|
|
CheckAndGetGaloisKey(galEl uint64) (evk *GaloisKey, err error)
|
|
GadgetProductLazy(levelQ int, cx ring.Poly, gadgetCt *GadgetCiphertext, ct *Element[ringqp.Poly]) (err error)
|
|
GadgetProductHoistedLazy(levelQ int, BuffQPDecompQP []ringqp.Poly, gadgetCt *GadgetCiphertext, ct *Element[ringqp.Poly]) (err error)
|
|
AutomorphismHoistedLazy(levelQ int, ctIn *Ciphertext, c1DecompQP []ringqp.Poly, galEl uint64, ctQP *Element[ringqp.Poly]) (err error)
|
|
ModDownQPtoQNTT(levelQ, levelP int, p1Q, p1P, p2Q ring.Poly)
|
|
AutomorphismIndex(uint64) []uint64
|
|
}
|