Class GF2nElement
- java.lang.Object
-
- org.bouncycastle.pqc.math.linearalgebra.GF2nElement
-
- All Implemented Interfaces:
GFElement
- Direct Known Subclasses:
GF2nONBElement
,GF2nPolynomialElement
public abstract class GF2nElement extends java.lang.Object implements GFElement
This abstract class implements an element of the finite field GF(2)n in either optimal normal basis representation (ONB) or in polynomial representation. It is extended by the classes GF2nONBElement and GF2nPolynomialElement .- See Also:
GF2nPolynomialElement
,GF2nONBElement
,GF2nONBField
-
-
Constructor Summary
Constructors Constructor Description GF2nElement()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract java.lang.Object
clone()
GF2nElement
convert(GF2nField basis)
Performs a basis transformation of this element to the given GF2nField basis.GF2nField
getField()
Returns the field of this element.abstract GF2nElement
increase()
Returns this element + 1.abstract void
increaseThis()
Increases this element by one.abstract GF2nElement
solveQuadraticEquation()
Solves a quadratic equation.
Let z2 + z = this.abstract GF2nElement
square()
Returns this element to the power of 2.abstract GF2nElement
squareRoot()
Compute the square root of this element and return the result in a newGF2nElement
.abstract void
squareRootThis()
Compute the square root of this element.abstract void
squareThis()
Squares this element.GFElement
subtract(GFElement minuend)
Compute the difference of this element and minuend.void
subtractFromThis(GFElement minuend)
Compute the difference of this element and minuend, overwriting this element.abstract boolean
testRightmostBit()
Returns whether the rightmost bit of the bit representation is set.abstract int
trace()
Returns the trace of this element.-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.bouncycastle.pqc.math.linearalgebra.GFElement
add, addToThis, equals, hashCode, invert, isOne, isZero, multiply, multiplyThisBy, toByteArray, toFlexiBigInt, toString, toString
-
-
-
-
Field Detail
-
mField
protected GF2nField mField
holds a pointer to this element's corresponding field.
-
mDegree
protected int mDegree
holds the extension degree n of this element's corresponding field.
-
-
Method Detail
-
clone
public abstract java.lang.Object clone()
-
testRightmostBit
public abstract boolean testRightmostBit()
Returns whether the rightmost bit of the bit representation is set. This is needed for data conversion according to 1363.- Returns:
- true if the rightmost bit of this element is set
-
getField
public final GF2nField getField()
Returns the field of this element.- Returns:
- the field of this element
-
increase
public abstract GF2nElement increase()
Returns this element + 1.- Returns:
- this + 1
-
increaseThis
public abstract void increaseThis()
Increases this element by one.
-
subtract
public final GFElement subtract(GFElement minuend)
Compute the difference of this element and minuend.
-
subtractFromThis
public final void subtractFromThis(GFElement minuend)
Compute the difference of this element and minuend, overwriting this element.- Specified by:
subtractFromThis
in interfaceGFElement
- Parameters:
minuend
- the minuend
-
square
public abstract GF2nElement square()
Returns this element to the power of 2.- Returns:
- this2
-
squareThis
public abstract void squareThis()
Squares this element.
-
squareRoot
public abstract GF2nElement squareRoot()
Compute the square root of this element and return the result in a newGF2nElement
.- Returns:
- this1/2 (newly created)
-
squareRootThis
public abstract void squareRootThis()
Compute the square root of this element.
-
convert
public final GF2nElement convert(GF2nField basis)
Performs a basis transformation of this element to the given GF2nField basis.- Parameters:
basis
- the GF2nField representation to transform this element to- Returns:
- this element in the representation of basis
-
trace
public abstract int trace()
Returns the trace of this element.- Returns:
- the trace of this element
-
solveQuadraticEquation
public abstract GF2nElement solveQuadraticEquation() throws java.lang.RuntimeException
Solves a quadratic equation.
Let z2 + z = this. Then this method returns z.- Returns:
- z with z2 + z = this
- Throws:
java.lang.RuntimeException
-
-