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 99 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 118 of file pubkey.h.

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

- pubkey.h