PALISADE Lattice Crypto Library  1.11.9
A lattice crypto library for software engineers by software engineers.
Public Member Functions | List of all members
lbcrypto::LPAlgorithmParamsGenBGVrns< Element > Class Template Reference

Parameter generation for BGVrns. More...

#include <bgvrns.h>

Inheritance diagram for lbcrypto::LPAlgorithmParamsGenBGVrns< Element >:
Inheritance graph
[legend]
Collaboration diagram for lbcrypto::LPAlgorithmParamsGenBGVrns< Element >:
Collaboration graph
[legend]

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
 

Detailed Description

template<class Element>
class lbcrypto::LPAlgorithmParamsGenBGVrns< Element >

Parameter generation for BGVrns.

Constructor & Destructor Documentation

◆ LPAlgorithmParamsGenBGVrns()

template<class Element >
lbcrypto::LPAlgorithmParamsGenBGVrns< Element >::LPAlgorithmParamsGenBGVrns ( )
inline

Default constructor

Member Function Documentation

◆ ParamsGen() [1/2]

template<class Element >
bool lbcrypto::LPAlgorithmParamsGenBGVrns< Element >::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
inlinevirtual

Method for computing all derived parameters based on chosen primitive parameters.

Parameters
cryptoParamsthe crypto parameters object to be populated with parameters.
evalAddCountnumber of EvalAdds assuming no EvalMult and KeySwitch operations are performed.
evalMultCountnumber of EvalMults assuming no EvalAdd and KeySwitch operations are performed.
keySwitchCountnumber of KeySwitch operations assuming no EvalAdd and EvalMult operations are performed.
dcrtBitsnumber of bits in each CRT modulus
nring dimension in case the user wants to use a custom ring dimension

Implements lbcrypto::LPParameterGenerationAlgorithm< Element >.

◆ ParamsGen() [2/2]

template<class Element >
bool lbcrypto::LPAlgorithmParamsGenBGVrns< Element >::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
virtual

Method for computing all derived parameters based on chosen primitive parameters.

Parameters
cryptoParamsthe crypto parameters object to be populated with parameters.
cyclOrderthe cyclotomic order.
ptmthe plaintext modulus
numPrimesnumber of modulus towers to support.
relinWindowthe relinearization window
modethe distribution of the secret (RLWE, OPTIMIZED or SPARSE)
ksTechthe key switching technique used (e.g., BV or GHS)
firstModSizethe bit-size of the first modulus
dcrtBitsthe bit-width for tower's moduli.
numLargeDigitsthe number of digits for hybrid key-switching.

Reimplemented from lbcrypto::LPParameterGenerationAlgorithm< Element >.


The documentation for this class was generated from the following file: