PALISADE Lattice Crypto Library
1.11.9
A lattice crypto library for software engineers by software engineers.
|
Abstract interface for parameter generation algorithm. More...
#include <pubkeylp.h>
Public Member Functions | |
virtual 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 =0 |
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 |
virtual bool | ParamsGen (shared_ptr< LPCryptoParameters< Element >> cryptoParams, usint cyclOrder, usint ptm, usint numPrimes, usint relinWindow, MODE mode, KeySwitchTechnique ksTech=BV, usint firstModSize=60, usint dcrtBits=60, 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 |
Abstract interface for parameter generation algorithm.
Element | a ring element. |
|
pure virtual |
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 |
Implemented in lbcrypto::LPAlgorithmParamsGenNull< Element >, lbcrypto::LPAlgorithmParamsGenBGVrns< Element >, lbcrypto::LPAlgorithmParamsGenCKKS< Element >, lbcrypto::LPAlgorithmParamsGenBFVrnsB< Element >, lbcrypto::LPAlgorithmParamsGenBFVrns< Element >, and lbcrypto::LPAlgorithmParamsGenBFV< Element >.
|
inlinevirtual |
Method for computing all derived parameters based on chosen primitive parameters. This is intended for CKKS and DCRTPoly.
*cryptoParams | the crypto parameters object to be populated with parameters. |
cyclOrder | the cyclotomic order. |
numPrimes | number of modulus towers to support. |
scaleExp | the bit-width for plaintexts and DCRTPoly's. |
relinWindow | the relinearization window |
mode | |
ksTech | the key switching technique used (e.g., BV or GHS) |
firstModSize | the bit-size of the first modulus |
rsTech | the rescaling technique used (e.g., APPROXRESCALE or EXACTRESCALE) |
|
inlinevirtual |
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. |
numPrimes | number of modulus towers to support. |
scaleExp | the bit-width for plaintexts and DCRTPoly's. |
relinWindow | the relinearization window |
mode | |
ksTech | the key switching technique used (e.g., BV or GHS) |
firstModSize | the bit-size of the first modulus |
rsTech | the rescaling technique used (e.g., APPROXRESCALE or EXACTRESCALE) |
Reimplemented in lbcrypto::LPAlgorithmParamsGenCKKS< Element >.
|
inlinevirtual |
Method for computing all derived parameters based on chosen primitive parameters. This is intended for BGVrns
*cryptoParams | the crypto parameters object to be populated with parameters. |
cyclOrder | the cyclotomic order. |
numPrimes | number of modulus towers to support. |
relinWindow | the relinearization window |
mode | |
ksTech | the key switching technique used (e.g., BV or GHS) |
firstModSize | the bit-size of the first modulus |
dcrtBits | the bit-width of moduli. |
Reimplemented in lbcrypto::LPAlgorithmParamsGenBGVrns< Element >.