RandomizedTrapdoorFunction Class Referenceabstract

Applies the trapdoor function, using random data if required. More...

Inheritance diagram for RandomizedTrapdoorFunction:

## Public Member Functions

virtual Integer | ApplyRandomizedFunction (RandomNumberGenerator &rng, const Integer &x) const =0
| Applies the trapdoor function, using random data if required. More...
virtual bool | IsRandomized () const
| Determines if the encryption algorithm is randomized. More...
Public Member Functions inherited from TrapdoorFunctionBounds
virtual Integer | PreimageBound () const =0
| Returns the maximum size of a message before the trapdoor function is applied. More...
virtual Integer | ImageBound () const =0
| Returns the maximum size of a message after the trapdoor function is applied. More...
virtual Integer | MaxPreimage () const
| Returns the maximum size of a message before the trapdoor function is applied bound to a public key. More...
virtual Integer | MaxImage () const
| Returns the maximum size of a message after the trapdoor function is applied bound to a public key. More...

## Detailed Description

Applies the trapdoor function, using random data if required.

ApplyFunction() is the foundation for encrypting a message under a public key. Derived classes will override it at some point.

See also
  TrapdoorFunctionBounds(), RandomizedTrapdoorFunction(), TrapdoorFunction(), RandomizedTrapdoorFunctionInverse() and TrapdoorFunctionInverse()

Definition at line 100 of file pubkey.h.

## Member Function Documentation

## ApplyRandomizedFunction()

virtual Integer RandomizedTrapdoorFunction::ApplyRandomizedFunction | ( | RandomNumberGenerator & | rng,
|  | const Integer & | x
| ) |  | const

pure virtual

Applies the trapdoor function, using random data if required.

Parameters

  rng | a RandomNumberGenerator derived class
  x | the message on which the encryption function is applied

Returns
  the message x encrypted under the public key

ApplyRandomizedFunction is a generalization of encryption under a public key cryptosystem. The RandomNumberGenerator may (or may not) be required. Derived classes must implement it.

Implemented in TrapdoorFunction.

## IsRandomized()

virtual bool RandomizedTrapdoorFunction::IsRandomized | ( |  | ) | const

inline virtual

Determines if the encryption algorithm is randomized.

Returns
  true if the encryption algorithm is randomized, false otherwise

If IsRandomized() returns false, then NullRNG() can be used.

Reimplemented in TrapdoorFunction.

Definition at line 117 of file pubkey.h.

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

- pubkey.h