29 #ifndef OKAMOTO_UCHIYAMA_HEADER_GUARD
30 #define OKAMOTO_UCHIYAMA_HEADER_GUARD
158 BigInteger
L (
const BigInteger &input)
const;
179 #endif//OKAMOTO_UCHIYAMA_HEADER_GUARD
OkamotoUchiyamaCiphertext Ciphertext
Provide public access to the T_Ciphertext type.
virtual Randomizer GetRandomizer() const
Compute the random factor required for the encryption operation.
size_t messageSpaceSize
Contains the bit size of the message space.
virtual bool GenerateKeys()
Generate the public and private keys.
virtual void doPrecomputations()
Precompute values for speedups.
OkamotoUchiyamaCiphertext()
Default constructor.
BigInteger pSquared
Contains , required for the decryption operation. Precompute it for optimization purposes.
Definition of class Config.
The randomizer type for Okamoto-Uchiyama.
BigInteger lgpInv
Stores precomputed value used to speedup decyption.
OkamotoUchiyamaPrivateKey privateKey
Private key container.
BigInteger data
The randomizer data.
OkamotoUchiyamaRandomizer()
Default constructor.
virtual Ciphertext RandomizeCiphertext(const Ciphertext &ciphertext) const
Randomize encrypted number with a self-generated random value.
virtual Ciphertext EncryptIntegerNonrandom(const BigInteger &plaintext) const
Encrypt number without randomization.
BigInteger t
, the prime factor of
BigInteger L(const BigInteger &input) const
L function evaluator.
BigInteger g
Stores , required for the decryption operation.
std::shared_ptr< BigInteger > encryptionModulus
The encryption modulus.
virtual size_t GetMessageSpaceSize() const
Returns the message space bit size.
Implementation of the public-key Okamoto-Uchiyama Cryptosystem.
The private key container structure for the Okamoto-Uchiyama cryptosystem.
BigInteger data
The ciphertext data.
virtual const BigInteger & GetMessageSpaceUpperBound() const
Returns the message space upper bound.
CiphertextBase template class.
OkamotoUchiyamaRandomizer Randomizer
Provide public access to the T_Randomizer type.
Definition of template abstract class CryptoProvider.
~OkamotoUchiyama()
Destructor.
OkamotoUchiyamaPublicKey publicKey
Public key container.
virtual BigInteger DecryptInteger(const Ciphertext &ciphertext) const
Decrypt number.
The public key container structure for the Okamoto-Uchiyama cryptosystem.
Template abstract base class for homomorphic encryption primitives.
Definition of template class CiphertextBase.
Okamoto-Uchiyama cipertext.
BigInteger messageSpace
The message space.
virtual void validateParameters()
Do nothing for now.
OkamotoUchiyama operator=(const OkamotoUchiyama &)
Copy assignment operator - not implemented.