Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

MontgomeryRepresentation Class Reference

#include <modarith.h>

Inheritance diagram for MontgomeryRepresentation:

ModularArithmetic AbstractRing< Integer > AbstractGroup< Integer > List of all members.

Detailed Description

do modular arithmetics in Montgomery representation for increased speed

Definition at line 113 of file modarith.h.

Public Types

typedef int RandomizationParameter
typedef Integer Element

Public Member Functions

 MontgomeryRepresentation (const Integer &modulus)
virtual ModularArithmeticClone () const
bool IsMontgomeryRepresentation () const
Integer ConvertIn (const Integer &a) const
Integer ConvertOut (const Integer &a) const
const IntegerMultiplicativeIdentity () const
const IntegerMultiply (const Integer &a, const Integer &b) const
const IntegerSquare (const Integer &a) const
const IntegerMultiplicativeInverse (const Integer &a) const
Integer CascadeExponentiate (const Integer &x, const Integer &e1, const Integer &y, const Integer &e2) const
void SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const
void DEREncode (BufferedTransformation &bt) const
void DEREncodeElement (BufferedTransformation &out, const Element &a) const
void BERDecodeElement (BufferedTransformation &in, Element &a) const
const IntegerGetModulus () const
void SetModulus (const Integer &newModulus)
const IntegerHalf (const Integer &a) const
bool Equal (const Integer &a, const Integer &b) const
virtual bool Equal (const Element &a, const Element &b) const=0
const IntegerIdentity () const
const IntegerAdd (const Integer &a, const Integer &b) const
virtual const Element & Add (const Element &a, const Element &b) const=0
IntegerAccumulate (Integer &a, const Integer &b) const
virtual Element & Accumulate (Element &a, const Element &b) const
const IntegerInverse (const Integer &a) const
virtual const Element & Inverse (const Element &a) const=0
const IntegerSubtract (const Integer &a, const Integer &b) const
virtual const Element & Subtract (const Element &a, const Element &b) const
IntegerReduce (Integer &a, const Integer &b) const
virtual Element & Reduce (Element &a, const Element &b) const
const IntegerDouble (const Integer &a) const
virtual const Element & Double (const Element &a) const
virtual const Element & Multiply (const Element &a, const Element &b) const=0
virtual const Element & Square (const Element &a) const
bool IsUnit (const Integer &a) const
virtual bool IsUnit (const Element &a) const=0
virtual const Element & MultiplicativeInverse (const Element &a) const=0
const IntegerDivide (const Integer &a, const Integer &b) const
virtual const Element & Divide (const Element &a, const Element &b) const
virtual Element CascadeExponentiate (const Element &x, const Integer &e1, const Element &y, const Integer &e2) const
unsigned int MaxElementBitLength () const
unsigned int MaxElementByteLength () const
Element RandomElement (RandomNumberGenerator &rng, const RandomizationParameter &ignore_for_now=0) const
virtual Element Exponentiate (const Element &a, const Integer &e) const
virtual const AbstractGroup<
Integer > & 
MultiplicativeGroup () const
virtual bool InversionIsFast () const
virtual Element ScalarMultiply (const Element &a, const Integer &e) const
virtual Element CascadeScalarMultiply (const Element &x, const Integer &e1, const Element &y, const Integer &e2) const
virtual void SimultaneousMultiply (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const

Static Public Attributes

const RandomizationParameter DefaultRandomizationParameter

Protected Attributes

Integer modulus
Integer result
Integer result1


The documentation for this class was generated from the following files:
Generated on Fri Aug 13 09:56:58 2004 for Crypto++ by doxygen 1.3.7