Crypto++  5.6.3
Free C++ class library of cryptographic schemes
Public Member Functions | List of all members
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...
 
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 98 of file pubkey.h.

Member Function Documentation

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

Applies the trapdoor function, using random data if required.

Parameters
rnga RandomNumberGenerator derived class
xthe 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.

virtual bool RandomizedTrapdoorFunction::IsRandomized ( ) const
inlinevirtual

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

virtual Integer TrapdoorFunctionBounds::PreimageBound ( ) const
pure virtualinherited

Returns the maximum size of a message before the trapdoor function is applied.

Returns
the maximum size of a message before the trapdoor function is applied

Derived classes must implement PreimageBound().

Implemented in InvertibleRSAFunction_ISO, RSAFunction_ISO, LUCFunction, RSAFunction, ESIGNFunction, RWFunction, and RabinFunction.

virtual Integer TrapdoorFunctionBounds::ImageBound ( ) const
pure virtualinherited

Returns the maximum size of a message after the trapdoor function is applied.

Returns
the maximum size of a message after the trapdoor function is applied

Derived classes must implement ImageBound().

Implemented in LUCFunction, RSAFunction, ESIGNFunction, RWFunction, and RabinFunction.

virtual Integer TrapdoorFunctionBounds::MaxPreimage ( ) const
inlinevirtualinherited

Returns the maximum size of a message before the trapdoor function is applied bound to a public key.

Returns
the maximum size of a message before the trapdoor function is applied bound to a public key

The default implementation returns PreimageBound() - 1.

Definition at line 85 of file pubkey.h.

virtual Integer TrapdoorFunctionBounds::MaxImage ( ) const
inlinevirtualinherited

Returns the maximum size of a message after the trapdoor function is applied bound to a public key.

Returns
the the maximum size of a message after the trapdoor function is applied bound to a public key

The default implementation returns ImageBound() - 1.

Definition at line 89 of file pubkey.h.

Referenced by ESIGNFunction::ApplyFunction().


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