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::RingGSWAccumulatorScheme Class Reference

Ring GSW accumulator schemes described in https://eprint.iacr.org/2014/816 and "Bootstrapping in FHEW-like Cryptosystems". More...

#include <fhew.h>

Public Member Functions

RingGSWEvalKey KeyGen (const std::shared_ptr< RingGSWCryptoParams > params, const std::shared_ptr< LWEEncryptionScheme > lwescheme, const std::shared_ptr< const LWEPrivateKeyImpl > LWEsk) const
 
std::shared_ptr< LWECiphertextImplEvalBinGate (const std::shared_ptr< RingGSWCryptoParams > params, const BINGATE gate, const RingGSWEvalKey &EK, const std::shared_ptr< const LWECiphertextImpl > ct1, const std::shared_ptr< const LWECiphertextImpl > ct2, const std::shared_ptr< LWEEncryptionScheme > LWEscheme) const
 
std::shared_ptr< LWECiphertextImplEvalNOT (const std::shared_ptr< RingGSWCryptoParams > params, const std::shared_ptr< const LWECiphertextImpl > ct1) const
 
std::shared_ptr< LWECiphertextImplBootstrap (const std::shared_ptr< RingGSWCryptoParams > params, const RingGSWEvalKey &EK, const std::shared_ptr< const LWECiphertextImpl > ct1, const std::shared_ptr< LWEEncryptionScheme > LWEscheme) const
 

Detailed Description

Ring GSW accumulator schemes described in https://eprint.iacr.org/2014/816 and "Bootstrapping in FHEW-like Cryptosystems".

Member Function Documentation

◆ Bootstrap()

std::shared_ptr<LWECiphertextImpl> lbcrypto::RingGSWAccumulatorScheme::Bootstrap ( const std::shared_ptr< RingGSWCryptoParams params,
const RingGSWEvalKey EK,
const std::shared_ptr< const LWECiphertextImpl ct1,
const std::shared_ptr< LWEEncryptionScheme LWEscheme 
) const

Bootstraps a fresh ciphertext

Parameters
paramsa shared pointer to RingGSW scheme parameters
&EKa shared pointer to the bootstrapping keys
ct1input ciphertext
lweschemea shared pointer to additive LWE scheme
Returns
a shared pointer to the resulting ciphertext

◆ EvalBinGate()

std::shared_ptr<LWECiphertextImpl> lbcrypto::RingGSWAccumulatorScheme::EvalBinGate ( const std::shared_ptr< RingGSWCryptoParams params,
const BINGATE  gate,
const RingGSWEvalKey EK,
const std::shared_ptr< const LWECiphertextImpl ct1,
const std::shared_ptr< const LWECiphertextImpl ct2,
const std::shared_ptr< LWEEncryptionScheme LWEscheme 
) const

Evaluates a binary gate (calls bootstrapping as a subroutine)

Parameters
paramsa shared pointer to RingGSW scheme parameters
gatethe gate; can be AND, OR, NAND, NOR, XOR, or XOR
&EKa shared pointer to the bootstrapping keys
ct1first ciphertext
ct2second ciphertext
lweschemea shared pointer to additive LWE scheme
Returns
a shared pointer to the resulting ciphertext

◆ EvalNOT()

std::shared_ptr<LWECiphertextImpl> lbcrypto::RingGSWAccumulatorScheme::EvalNOT ( const std::shared_ptr< RingGSWCryptoParams params,
const std::shared_ptr< const LWECiphertextImpl ct1 
) const

Evaluates NOT gate

Parameters
paramsa shared pointer to RingGSW scheme parameters
ct1the input ciphertext
Returns
a shared pointer to the resulting ciphertext

◆ KeyGen()

RingGSWEvalKey lbcrypto::RingGSWAccumulatorScheme::KeyGen ( const std::shared_ptr< RingGSWCryptoParams params,
const std::shared_ptr< LWEEncryptionScheme lwescheme,
const std::shared_ptr< const LWEPrivateKeyImpl LWEsk 
) const

Generates a refreshing key

Parameters
paramsa shared pointer to RingGSW scheme parameters
lweschemea shared pointer to additive LWE scheme
LWEska shared pointer to the secret key of the underlying additive LWE scheme
Returns
a shared pointer to the refreshing key

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