public abstract class GF2nField extends Object
GF2nONBField
,
GF2nPolynomialField
Modifier and Type | Field and Description |
---|---|
protected GF2Polynomial |
fieldPolynomial
the irreducible fieldPolynomial stored in normal order (also for ONB)
|
protected Vector |
fields
holds a list of GF2nFields to which elements have been converted and thus
a COB-Matrix exists
|
protected Vector |
matrices
the COB matrices
|
protected int |
mDegree
the degree of this field
|
protected SecureRandom |
random |
Modifier | Constructor and Description |
---|---|
protected |
GF2nField(SecureRandom random) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
computeCOBMatrix(GF2nField B1)
Computes the change-of-basis matrix for basis conversion according to
1363.
|
protected abstract void |
computeFieldPolynomial()
Computes the fieldpolynomial.
|
GF2nElement |
convert(GF2nElement elem,
GF2nField basis)
Converts the given element in representation according to this field to a
new element in representation according to B1 using the change-of-basis
matrix calculated by computeCOBMatrix.
|
boolean |
equals(Object other)
Decides whether the given object other is the same as this
field.
|
int |
getDegree()
Returns the degree n of this field.
|
GF2Polynomial |
getFieldPolynomial()
Returns the fieldpolynomial as a new Bitstring.
|
protected abstract GF2nElement |
getRandomRoot(GF2Polynomial B0FieldPolynomial)
Computes a random root from the given irreducible fieldpolynomial
according to IEEE 1363 algorithm A.5.6.
|
int |
hashCode() |
protected GF2Polynomial[] |
invertMatrix(GF2Polynomial[] matrix)
Inverts the given matrix represented as bitstrings.
|
protected final SecureRandom random
protected int mDegree
protected GF2Polynomial fieldPolynomial
protected Vector fields
protected Vector matrices
protected GF2nField(SecureRandom random)
public final int getDegree()
public final GF2Polynomial getFieldPolynomial()
public final boolean equals(Object other)
public int hashCode()
protected abstract GF2nElement getRandomRoot(GF2Polynomial B0FieldPolynomial)
B0FieldPolynomial
- the fieldpolynomial if the other basis as a Bitstringprotected abstract void computeCOBMatrix(GF2nField B1)
B1
- the GF2nField to convert toprotected abstract void computeFieldPolynomial()
protected final GF2Polynomial[] invertMatrix(GF2Polynomial[] matrix)
matrix
- the matrix to invert as a Bitstring[]public final GF2nElement convert(GF2nElement elem, GF2nField basis) throws RuntimeException
elem
- the GF2nElement to convertbasis
- the basis to convert elem toRuntimeException
computeCOBMatrix(org.bouncycastle.pqc.math.linearalgebra.GF2nField)
,
getRandomRoot(org.bouncycastle.pqc.math.linearalgebra.GF2Polynomial)
,
GF2nPolynomial
,
"P1363 A.7 p109ff"Copyright © 2021 BouncyCastle.org. All rights reserved.