PALISADE Lattice Crypto Library
1.11.9
A lattice crypto library for software engineers by software engineers.
|
Parameter generation for BGVrns. More...
#include <bgvrns.h>
Public Member Functions | |
LPAlgorithmParamsGenBGVrns () | |
bool | ParamsGen (shared_ptr< LPCryptoParameters< Element >> cryptoParams, int32_t evalAddCount=0, int32_t evalMultCount=0, int32_t keySwitchCount=0, size_t dcrtBits=0, uint32_t n=0) const |
bool | ParamsGen (shared_ptr< LPCryptoParameters< Element >> cryptoParams, usint cyclOrder, usint ptm, usint numPrimes, usint relinWindow, MODE mode, KeySwitchTechnique ksTech=BV, usint firstModSize=0, usint dcrtBits=0, uint32_t numLargeDigits=4) const |
template<class Archive > | |
void | save (Archive &ar) const |
template<class Archive > | |
void | load (Archive &ar) |
std::string | SerializedObjectName () const |
template<> | |
bool | ParamsGen (shared_ptr< LPCryptoParameters< Poly >> cryptoParams, usint cyclOrder, usint ptm, usint numPrimes, usint relinWindow, MODE mode, KeySwitchTechnique ksTech, usint firstModSize, usint dcrtBits, uint32_t numLargeDigits) const |
template<> | |
bool | ParamsGen (shared_ptr< LPCryptoParameters< NativePoly >> cryptoParams, usint cyclOrder, usint ptm, usint numPrimes, usint relinWindow, MODE mode, enum KeySwitchTechnique ksTech, usint firstModSize, usint dcrtBits, uint32_t numLargeDigits) const |
template<> | |
bool | ParamsGen (shared_ptr< LPCryptoParameters< DCRTPoly >> cryptoParams, usint cyclOrder, usint ptm, usint numPrimes, usint relinWindow, MODE mode, enum KeySwitchTechnique ksTech, usint firstModSize, usint dcrtBits, uint32_t numLargeDigits) const |
Public Member Functions inherited from lbcrypto::LPParameterGenerationAlgorithm< Element > | |
virtual bool | ParamsGen (shared_ptr< LPCryptoParameters< Element >> cryptoParams, usint cyclOrder, usint numPrimes, usint scaleExp, usint relinWindow, MODE mode, KeySwitchTechnique ksTech, usint firstModSize, RescalingTechnique rsTech) const |
virtual bool | ParamsGen (shared_ptr< LPCryptoParameters< Element >> cryptoParams, usint cyclOrder, usint numPrimes, usint scaleExp, usint relinWindow, MODE mode, KeySwitchTechnique ksTech=BV, usint firstModSize=60, RescalingTechnique=APPROXRESCALE, uint32_t numLargeDigits=4) const |
template<class Archive > | |
void | save (Archive &ar, std::uint32_t const version) const |
template<class Archive > | |
void | load (Archive &ar, std::uint32_t const version) |
std::string | SerializedObjectName () const |
Parameter generation for BGVrns.
|
inline |
Default constructor
|
inlinevirtual |
Method for computing all derived parameters based on chosen primitive parameters.
cryptoParams | the crypto parameters object to be populated with parameters. |
evalAddCount | number of EvalAdds assuming no EvalMult and KeySwitch operations are performed. |
evalMultCount | number of EvalMults assuming no EvalAdd and KeySwitch operations are performed. |
keySwitchCount | number of KeySwitch operations assuming no EvalAdd and EvalMult operations are performed. |
dcrtBits | number of bits in each CRT modulus |
n | ring dimension in case the user wants to use a custom ring dimension |
Implements lbcrypto::LPParameterGenerationAlgorithm< Element >.
|
virtual |
Method for computing all derived parameters based on chosen primitive parameters.
cryptoParams | the crypto parameters object to be populated with parameters. |
cyclOrder | the cyclotomic order. |
ptm | the plaintext modulus |
numPrimes | number of modulus towers to support. |
relinWindow | the relinearization window |
mode | the distribution of the secret (RLWE, OPTIMIZED or SPARSE) |
ksTech | the key switching technique used (e.g., BV or GHS) |
firstModSize | the bit-size of the first modulus |
dcrtBits | the bit-width for tower's moduli. |
numLargeDigits | the number of digits for hybrid key-switching. |
Reimplemented from lbcrypto::LPParameterGenerationAlgorithm< Element >.