Crypto++ 8.1 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)
GF2NP * | Clone () 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 EuclideanDomain & | GetDomain () 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...
AbstractRing & | operator= (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< PolynomialMod2 > | EuclideanDomain
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:

- gf2n.h
- gf2n.cpp