Crypto++  8.0
Free C++ class library of cryptographic schemes
Public Member Functions | List of all members
GF2NT233 Class Reference

GF(2^n) for b233 and k233. More...

+ Inheritance diagram for GF2NT233:

Public Member Functions

 GF2NT233 (unsigned int t0, unsigned int t1, unsigned int t2)
 
GF2NPClone () const
 
const Element & Multiply (const Element &a, const Element &b) const
 
const Element & Square (const Element &a) const
 
- Public Member Functions inherited from GF2NT
 GF2NT (unsigned int t0, unsigned int t1, unsigned int t2)
 
void DEREncode (BufferedTransformation &bt) const
 
const Element & Multiply (const Element &a, const Element &b) const
 
const Element & Square (const Element &a) const
 Square an element in the group. More...
 
const Element & MultiplicativeInverse (const Element &a) const
 
- Public Member Functions inherited from GF2NP
 GF2NP (const PolynomialMod2 &modulus)
 
void DEREncodeElement (BufferedTransformation &out, const Element &a) const
 
void BERDecodeElement (BufferedTransformation &in, Element &a) const
 
bool Equal (const Element &a, const Element &b) const
 Compare two elements for equality. More...
 
bool IsUnit (const Element &a) const
 Determines whether an element is a unit in the group. More...
 
unsigned int MaxElementBitLength () const
 
unsigned int MaxElementByteLength () const
 
Element SquareRoot (const Element &a) const
 
Element HalfTrace (const Element &a) const
 
Element SolveQuadraticEquation (const Element &a) const
 
- Public Member Functions inherited from QuotientRing< EuclideanDomainOf< PolynomialMod2 > >
 QuotientRing (const EuclideanDomain &domain, const Element &modulus)
 
const EuclideanDomainGetDomain () const
 
const Element & GetModulus () const
 
bool Equal (const Element &a, const Element &b) const
 Compare two elements for equality. More...
 
const Element & Identity () const
 Provides the Identity element. More...
 
const Element & Add (const Element &a, const Element &b) const
 Adds elements in the group. More...
 
Element & Accumulate (Element &a, const Element &b) const
 TODO. More...
 
const Element & Inverse (const Element &a) const
 Inverts the element in the group. More...
 
const Element & Subtract (const Element &a, const Element &b) const
 Subtracts elements in the group. More...
 
Element & Reduce (Element &a, const Element &b) const
 Reduces an element in the congruence class. More...
 
const Element & Double (const Element &a) const
 Doubles an element in the group. More...
 
bool IsUnit (const Element &a) const
 Determines whether an element is a unit in the group. More...
 
const Element & MultiplicativeIdentity () const
 Retrieves the multiplicative identity. More...
 
const Element & Multiply (const Element &a, const Element &b) const
 Multiplies elements in the group. More...
 
const Element & Square (const Element &a) const
 Square an element in the group. More...
 
const Element & MultiplicativeInverse (const Element &a) const
 Calculate the multiplicative inverse of an element in the group. More...
 
bool operator== (const QuotientRing< EuclideanDomainOf< PolynomialMod2 > > &rhs) const
 
- Public Member Functions inherited from AbstractRing< EuclideanDomainOf< PolynomialMod2 > ::Element >
 AbstractRing ()
 Construct an AbstractRing.
 
 AbstractRing (const AbstractRing &source)
 Copy construct an AbstractRing. More...
 
AbstractRingoperator= (const AbstractRing &source)
 Assign an AbstractRing. More...
 
virtual const Element & Divide (const Element &a, const Element &b) const
 Divides elements in the group. More...
 
virtual Element Exponentiate (const Element &a, const Integer &e) const
 Raises a base to an exponent in the group. More...
 
virtual Element CascadeExponentiate (const Element &x, const Integer &e1, const Element &y, const Integer &e2) const
 TODO. More...
 
virtual void SimultaneousExponentiate (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const
 Exponentiates a base to multiple exponents in the Ring. More...
 
virtual const AbstractGroup< EuclideanDomainOf< PolynomialMod2 > ::Element > & MultiplicativeGroup () const
 Retrieves the multiplicative group. More...
 
- Public Member Functions inherited from AbstractGroup< EuclideanDomainOf< PolynomialMod2 > ::Element >
virtual bool InversionIsFast () const
 Determine if inversion is fast. More...
 
virtual Element ScalarMultiply (const Element &a, const Integer &e) const
 Performs a scalar multiplication. More...
 
virtual Element CascadeScalarMultiply (const Element &x, const Integer &e1, const Element &y, const Integer &e2) const
 TODO. More...
 
virtual void SimultaneousMultiply (Element *results, const Element &base, const Integer *exponents, unsigned int exponentsCount) const
 Multiplies a base to multiple exponents in a group. More...
 

Additional Inherited Members

- Public Types inherited from QuotientRing< EuclideanDomainOf< PolynomialMod2 > >
typedef EuclideanDomainOf< PolynomialMod2EuclideanDomain
 
typedef EuclideanDomainOf< PolynomialMod2 > ::Element Element
 
- Public Types inherited from AbstractRing< EuclideanDomainOf< PolynomialMod2 > ::Element >
typedef EuclideanDomainOf< PolynomialMod2 > ::Element Element
 
- Public Types inherited from AbstractGroup< EuclideanDomainOf< PolynomialMod2 > ::Element >
typedef EuclideanDomainOf< PolynomialMod2 > ::Element Element
 

Detailed Description

GF(2^n) for b233 and k233.

GF2NT233 is a specialization of GF2NT that provides Multiply() and Square() operations when carryless multiplies is available.

Definition at line 358 of file gf2n.h.


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