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

Template for crypto parameters. More...

#include <rlwe.h>

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

Public Member Functions

 LPCryptoParametersRLWE ()
 
 LPCryptoParametersRLWE (const LPCryptoParametersRLWE &rhs)
 
 LPCryptoParametersRLWE (shared_ptr< typename Element::Params > params, EncodingParams encodingParams, float distributionParameter, float assuranceMeasure, float securityLevel, usint relinWindow, int depth=1, int maxDepth=2, MODE mode=RLWE)
 
 LPCryptoParametersRLWE (shared_ptr< typename Element::Params > params, EncodingParams encodingParams, float distributionParameter, float assuranceMeasure, SecurityLevel stdLevel, usint relinWindow, int depth=1, int maxDepth=2, MODE mode=RLWE)
 
virtual ~LPCryptoParametersRLWE ()
 
float GetDistributionParameter () const
 
float GetAssuranceMeasure () const
 
float GetSecurityLevel () const
 
usint GetRelinWindow () const
 
int GetDepth () const
 
size_t GetMaxDepth () const
 
MODE GetMode () const
 
SecurityLevel GetStdLevel () const
 
const Element::DggType & GetDiscreteGaussianGenerator () const
 
void SetDistributionParameter (float distributionParameter)
 
void SetAssuranceMeasure (float assuranceMeasure)
 
void SetSecurityLevel (float securityLevel)
 
void SetStdLevel (SecurityLevel securityLevel)
 
void SetRelinWindow (usint relinWindow)
 
void SetDepth (int depth)
 
void SetMaxDepth (size_t maxDepth)
 
void SetMode (MODE mode)
 
bool operator== (const LPCryptoParameters< Element > &rhs) const
 
void PrintParameters (std::ostream &os) 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
 
- Public Member Functions inherited from lbcrypto::LPCryptoParameters< Element >
virtual const PlaintextModulus & GetPlaintextModulus () const
 
virtual const shared_ptr< typename Element::Params > GetElementParams () const
 
virtual const EncodingParams GetEncodingParams () const
 
virtual void SetPlaintextModulus (const PlaintextModulus &plaintextModulus)
 
virtual bool operator!= (const LPCryptoParameters< Element > &cmp) const
 
virtual void SetElementParams (shared_ptr< typename Element::Params > params)
 
virtual void SetEncodingParams (EncodingParams encodingParams)
 
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)
 

Protected Attributes

float m_distributionParameter
 
float m_assuranceMeasure
 
float m_securityLevel
 
usint m_relinWindow
 
int m_depth
 
uint32_t m_maxDepth
 
MODE m_mode
 
SecurityLevel m_stdLevel
 
Element::DggType m_dgg
 

Additional Inherited Members

- Static Public Member Functions inherited from lbcrypto::LPCryptoParameters< Element >
static uint32_t SerializedVersion ()
 
- Protected Member Functions inherited from lbcrypto::LPCryptoParameters< Element >
 LPCryptoParameters (const PlaintextModulus &plaintextModulus)
 
 LPCryptoParameters (shared_ptr< typename Element::Params > params, const PlaintextModulus &plaintextModulus)
 
 LPCryptoParameters (shared_ptr< typename Element::Params > params, EncodingParams encodingParams)
 
 LPCryptoParameters (LPCryptoParameters< Element > *from, shared_ptr< typename Element::Params > newElemParms)
 

Detailed Description

template<class Element>
class lbcrypto::LPCryptoParametersRLWE< Element >

Template for crypto parameters.

Template Parameters
Elementa ring element.

Constructor & Destructor Documentation

◆ LPCryptoParametersRLWE() [1/4]

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

Default Constructor

◆ LPCryptoParametersRLWE() [2/4]

template<class Element >
lbcrypto::LPCryptoParametersRLWE< Element >::LPCryptoParametersRLWE ( const LPCryptoParametersRLWE< Element > &  rhs)
inline

Copy constructor.

◆ LPCryptoParametersRLWE() [3/4]

template<class Element >
lbcrypto::LPCryptoParametersRLWE< Element >::LPCryptoParametersRLWE ( shared_ptr< typename Element::Params >  params,
EncodingParams  encodingParams,
float  distributionParameter,
float  assuranceMeasure,
float  securityLevel,
usint  relinWindow,
int  depth = 1,
int  maxDepth = 2,
MODE  mode = RLWE 
)
inline

Constructor that initializes values.

Parameters
&paramselement parameters.
&encodingParamsencoding-specific parameters
distributionParameternoise distribution parameter.
assuranceMeasureassurance level.
securityLevelsecurity level.
relinWindowthe size of the relinearization window.
depthis the depth of computation circuit supported for these parameters (not used now; for future use).
maxDepththe maximum power of secret key for which the relinearization key is generated
modemode for secret polynomial, defaults to RLWE.

◆ LPCryptoParametersRLWE() [4/4]

template<class Element >
lbcrypto::LPCryptoParametersRLWE< Element >::LPCryptoParametersRLWE ( shared_ptr< typename Element::Params >  params,
EncodingParams  encodingParams,
float  distributionParameter,
float  assuranceMeasure,
SecurityLevel  stdLevel,
usint  relinWindow,
int  depth = 1,
int  maxDepth = 2,
MODE  mode = RLWE 
)
inline

Constructor that initializes values - uses HomomorphicEncryption.org standard security levels

Parameters
&paramselement parameters.
&encodingParamsencoding-specific parameters
distributionParameternoise distribution parameter.
assuranceMeasureassurance level.
securityLevelsecurity level.
relinWindowthe size of the relinearization window.
depthis the depth of computation circuit supported for these parameters (not used now; for future use).
maxDepththe maximum power of secret key for which the relinearization key is generated
modemode for secret polynomial, defaults to RLWE.

◆ ~LPCryptoParametersRLWE()

template<class Element >
virtual lbcrypto::LPCryptoParametersRLWE< Element >::~LPCryptoParametersRLWE ( )
inlinevirtual

Destructor

Member Function Documentation

◆ GetAssuranceMeasure()

template<class Element >
float lbcrypto::LPCryptoParametersRLWE< Element >::GetAssuranceMeasure ( ) const
inline

Returns the values of assurance measure alpha

Returns
the assurance measure.

◆ GetDepth()

template<class Element >
int lbcrypto::LPCryptoParametersRLWE< Element >::GetDepth ( ) const
inlinevirtual

Returns the depth of computation circuit supported for these parameters (not used now; for future use).

Returns
the computation depth supported d.

Reimplemented from lbcrypto::LPCryptoParameters< Element >.

◆ GetDiscreteGaussianGenerator()

template<class Element >
const Element::DggType& lbcrypto::LPCryptoParametersRLWE< Element >::GetDiscreteGaussianGenerator ( ) const
inlinevirtual

Returns reference to Discrete Gaussian Generator

Returns
reference to Discrete Gaussian Generaror.

Reimplemented from lbcrypto::LPCryptoParameters< Element >.

◆ GetDistributionParameter()

template<class Element >
float lbcrypto::LPCryptoParametersRLWE< Element >::GetDistributionParameter ( ) const
inline

Returns the value of standard deviation r for discrete Gaussian distribution

Returns
the standard deviation r.

◆ GetMaxDepth()

template<class Element >
size_t lbcrypto::LPCryptoParametersRLWE< Element >::GetMaxDepth ( ) const
inlinevirtual

Returns the maximum homomorphic multiplication depth before performing relinearization

Returns
the computation depth supported d.

Reimplemented from lbcrypto::LPCryptoParameters< Element >.

◆ GetMode()

template<class Element >
MODE lbcrypto::LPCryptoParametersRLWE< Element >::GetMode ( ) const
inline

Gets the mode setting: RLWE or OPTIMIZED.

Returns
the mode setting.

◆ GetRelinWindow()

template<class Element >
usint lbcrypto::LPCryptoParametersRLWE< Element >::GetRelinWindow ( ) const
inlinevirtual

Returns the value of relinearization window.

Returns
the relinearization window.

Reimplemented from lbcrypto::LPCryptoParameters< Element >.

◆ GetSecurityLevel()

template<class Element >
float lbcrypto::LPCryptoParametersRLWE< Element >::GetSecurityLevel ( ) const
inline

Returns the value of root Hermite factor security level /delta.

Returns
the root Hermite factor /delta.

◆ GetStdLevel()

template<class Element >
SecurityLevel lbcrypto::LPCryptoParametersRLWE< Element >::GetStdLevel ( ) const
inline

Gets the standard security level

Returns
the security level.

◆ operator==()

template<class Element >
bool lbcrypto::LPCryptoParametersRLWE< Element >::operator== ( const LPCryptoParameters< Element > &  rhs) const
inlinevirtual

== operator to compare to this instance of LPCryptoParametersRLWE object.

Parameters
&rhsLPCryptoParameters to check equality against.

Implements lbcrypto::LPCryptoParameters< Element >.

◆ SetAssuranceMeasure()

template<class Element >
void lbcrypto::LPCryptoParametersRLWE< Element >::SetAssuranceMeasure ( float  assuranceMeasure)
inline

Sets the values of assurance measure alpha

Parameters
assuranceMeasure

◆ SetDepth()

template<class Element >
void lbcrypto::LPCryptoParametersRLWE< Element >::SetDepth ( int  depth)
inline

Sets the depth of computation circuit supported for these parameters (not used now; for future use).

Parameters
depth

◆ SetDistributionParameter()

template<class Element >
void lbcrypto::LPCryptoParametersRLWE< Element >::SetDistributionParameter ( float  distributionParameter)
inline

Sets the value of standard deviation r for discrete Gaussian distribution

Parameters
distributionParameter

◆ SetMaxDepth()

template<class Element >
void lbcrypto::LPCryptoParametersRLWE< Element >::SetMaxDepth ( size_t  maxDepth)
inline

Sets the value of the maximum power of secret key for which the relinearization key is generated

Parameters
depth

◆ SetMode()

template<class Element >
void lbcrypto::LPCryptoParametersRLWE< Element >::SetMode ( MODE  mode)
inline

Configures the mode for generating the secret key polynomial

Parameters
modeis RLWE or OPTIMIZED.

◆ SetRelinWindow()

template<class Element >
void lbcrypto::LPCryptoParametersRLWE< Element >::SetRelinWindow ( usint  relinWindow)
inline

Sets the value of relinearization window

Parameters
relinWindow

◆ SetSecurityLevel()

template<class Element >
void lbcrypto::LPCryptoParametersRLWE< Element >::SetSecurityLevel ( float  securityLevel)
inline

Sets the value of security level /delta

Parameters
securityLevel

◆ SetStdLevel()

template<class Element >
void lbcrypto::LPCryptoParametersRLWE< Element >::SetStdLevel ( SecurityLevel  securityLevel)
inline

Sets the standard security level

Parameters
standardsecurity level

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