Template Class PREBase

Template Parameter Order

  1. class Element

Class Documentation

template<class Element>
class lbcrypto::PREBase

Abstract interface class for LBC PRE algorithms.

Template Parameters

Element – a ring element.

Public Functions

inline virtual ~PREBase()
virtual EvalKey<Element> ReKeyGen(const PrivateKey<Element> oldPrivateKey, const PublicKey<Element> newPublicKey) const

Virtual function to generate 1..log(q) encryptions for each bit of the original private key Variant that uses the public key for the new secret key.

Parameters
  • oldPrivateKey – original private key used for decryption.

  • newPublicKey – public key for the new secret key.

Returns

the re-encryption key.

virtual Ciphertext<Element> ReEncrypt(ConstCiphertext<Element> ciphertext, const EvalKey<Element> evalKey, const PublicKey<Element> publicKey) const

Virtual function to define the interface for re-encypting ciphertext using the array generated by ProxyGen

Parameters
  • &ciphertext – the input ciphertext.

  • &evalKey – proxy re-encryption key.

  • publicKey – the public key of the recipient of the re-encrypted ciphertext.

Returns

the ciphertext