Class RingGSWAccumulatorCGGI

Inheritance Relationships

Base Type

Class Documentation

class lbcrypto::RingGSWAccumulatorCGGI : public lbcrypto::RingGSWAccumulator

Inheritence diagram for lbcrypto::RingGSWAccumulatorCGGI:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="lbcrypto::RingGSWAccumulatorCGGI" tooltip="lbcrypto::RingGSWAccumulatorCGGI" fillcolor="#BFBFBF"] "2" [label="lbcrypto::RingGSWAccumulator" tooltip="lbcrypto::RingGSWAccumulator"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for lbcrypto::RingGSWAccumulatorCGGI:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="lbcrypto::RingGSWAccumulatorCGGI" tooltip="lbcrypto::RingGSWAccumulatorCGGI" fillcolor="#BFBFBF"] "2" [label="lbcrypto::RingGSWAccumulator" tooltip="lbcrypto::RingGSWAccumulator"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Ring GSW accumulator schemes described in https://eprint.iacr.org/2018/421.pdf and https://eprint.iacr.org/2020/086.

Public Functions

RingGSWAccumulatorCGGI() = default
virtual RingGSWACCKey KeyGenAcc(const std::shared_ptr<RingGSWCryptoParams> &params, const NativePoly &skNTT, ConstLWEPrivateKey &LWEsk) const override

Key generation for internal Ring GSW as described in https://eprint.iacr.org/2018/421.pdf

Parameters
  • params – a shared pointer to RingGSW scheme parameters

  • skNTT – secret key polynomial in the EVALUATION representation

  • LWEsk – the secret key

Returns

a shared pointer to the resulting keys

virtual void EvalAcc(const std::shared_ptr<RingGSWCryptoParams> &params, ConstRingGSWACCKey &ek, RLWECiphertext &acc, const NativeVector &a) const override

Main accumulator function used in bootstrapping - GINX variant

Parameters
  • params – a shared pointer to RingGSW scheme parameters

  • ek – the accumulator key

  • acc – previous value of the accumulator

  • a – value to update the accumulator with