Security Scol plugin
Public Member Functions | List of all members
GF2NT233 Class Reference

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

#include <gf2n.h>

Inheritance diagram for GF2NT233:
GF2NT GF2NP QuotientRing< EuclideanDomainOf< PolynomialMod2 > > AbstractRing< T::Element > AbstractGroup< T >

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

Additional Inherited Members

- Public Types inherited from QuotientRing< EuclideanDomainOf< PolynomialMod2 > >
typedef EuclideanDomainOf< PolynomialMod2EuclideanDomain
 
typedef T::Element Element
 
- Public Types inherited from AbstractRing< T::Element >
typedef T Element
 
- Public Types inherited from AbstractGroup< T >
typedef T Element
 
- Protected Member Functions inherited from GF2NT
const Element & Reduced (const Element &a) const
 
- Protected Attributes inherited from GF2NT
unsigned int t0
 
unsigned int t1
 
PolynomialMod2 result
 
- Protected Attributes inherited from GF2NP
unsigned int m
 
- Protected Attributes inherited from QuotientRing< EuclideanDomainOf< PolynomialMod2 > >
EuclideanDomain m_domain
 
Element m_modulus
 

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.

Constructor & Destructor Documentation

◆ GF2NT233()

GF2NT233::GF2NT233 ( unsigned int  t0,
unsigned int  t1,
unsigned int  t2 
)

Definition at line 964 of file gf2n.cpp.

Member Function Documentation

◆ Clone()

GF2NP * GF2NT233::Clone ( ) const
inlinevirtual

Reimplemented from GF2NT.

Definition at line 364 of file gf2n.h.

◆ Multiply()

const GF2NT::Element & GF2NT233::Multiply ( const Element &  a,
const Element &  b 
) const
virtual

Multiplies elements in the group.

Parameters
athe multiplicand
bthe multiplier
Returns
the product of a and b

Reimplemented from GF2NT.

Definition at line 970 of file gf2n.cpp.

◆ Square()

const GF2NT::Element & GF2NT233::Square ( const Element &  a) const
virtual

Square an element in the group.

Parameters
athe element
Returns
the element squared

Reimplemented from GF2NT.

Definition at line 1022 of file gf2n.cpp.


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