A C D E F G H I L M N P R S T U V W X

A

A - Variable in class HFE.Matrix2
Array for internal storage of elements.
A - Variable in class HFE.Matrix4
Array for internal storage of elements.
add(Field2_n) - Method in class HFE.Field2_n
this += ter Adds two numbers using the xor function for intergers.
add(Field2_n, Field2_n) - Method in class HFE.Field2_n
this = ter1 + ter2 Adds two numbers using the xor function for intergers.
add(int, int) - Static method in class HFE.Field2
Adds two numbers using the xor function for intergers.
add(int, int) - Static method in class HFE.Field4
Adds two numbers using the xor function for intergers.
add(int, int) - Method in class HFE.Poly2MultiSquare
calculate this[i] += whom in terms of coefficient addition
add(int, int) - Method in class HFE.Poly4MultiSquare
calculate this[i] += whom in terms of coefficient addition
add(Matrix2) - Method in class HFE.Matrix2
C = A + B
add(Matrix4) - Method in class HFE.Matrix4
C = A + B
add(Poly2_nMax) - Method in class HFE.Poly2_nMax
calculate this += whom as polynomial addition
add(Poly2_nMax, Poly2_nMax) - Method in class HFE.Poly2_nMax
calculates this = wen1 + wen2 as polynomial addition
add(Poly2Max) - Method in class HFE.Poly2Max
calculate this += whom as polynomial addition
add(Poly2Max, Poly2Max) - Method in class HFE.Poly2Max
calculates this = wen1 + wen2 as polynomial addition
add(Poly2MultiLinear) - Method in class HFE.Poly2MultiLinear
calculate this += whom as polynomial addition
add(Poly2MultiLinear) - Method in class HFE.Poly2MultiSquare
calculate this += whom as polynomial addition
add(Poly2MultiLinear, Poly2MultiLinear) - Method in class HFE.Poly2MultiLinear
calculates this = a + b as polynomial addition
add(Poly2MultiSquare) - Method in class HFE.Poly2MultiSquare
calculate this += whom as polynomial addition
add(Poly2MultiSquare, Poly2MultiSquare) - Method in class HFE.Poly2MultiSquare
calculates this = a + b as polynomial addition
add(Poly4Max) - Method in class HFE.Poly4Max
calculate this += whom as polynomial addition
add(Poly4Max, Poly4Max) - Method in class HFE.Poly4Max
calculates this = wen1 + wen2 as polynomial addition
add(Poly4MultiLinear) - Method in class HFE.Poly4MultiLinear
calculate this += whom as polynomial addition
add(Poly4MultiLinear) - Method in class HFE.Poly4MultiSquare
calculate this += whom as polynomial addition
add(Poly4MultiLinear, Poly4MultiLinear) - Method in class HFE.Poly4MultiLinear
calculates this = a + b as polynomial addition
add(Poly4MultiSquare) - Method in class HFE.Poly4MultiSquare
calculate this += whom as polynomial addition
add(Poly4MultiSquare, Poly4MultiSquare) - Method in class HFE.Poly4MultiSquare
calculates this = a + b as polynomial addition
add(Poly64Max) - Method in class HFE.Poly64Max
calculate this += whom as polynomial addition
add(Poly64Max, Poly64Max) - Method in class HFE.Poly64Max
calculates this = wen1 + wen2 as polynomial addition
addEquals(Matrix2) - Method in class HFE.Matrix2
A += B
addEquals(Matrix4) - Method in class HFE.Matrix4
A += B
addMod(Poly2Max) - Method in class HFE.Poly2Max
Computes this = (this+b)%modul.
addMod(Poly2Max, Poly2Max) - Method in class HFE.Poly2Max
Computes this = (a+b)%modul.
addMod(Poly4Max) - Method in class HFE.Poly4Max
Computes this = (this+b)%modul.
addMod(Poly4Max, Poly4Max) - Method in class HFE.Poly4Max
Computes this = (a+b)%modul.
addMod(Poly64Max) - Method in class HFE.Poly64Max
 
addMod(Poly64Max, Poly64Max) - Method in class HFE.Poly64Max
Computes this = (a+b)%modul.
addModul() - Method in class HFE.Field2_n
this += generating polynomial Adds the modul to this.
addNum(int, int) - Static method in class HFE.Poly64Max
Adds two numbers using xor
addNumByPoly(int, int) - Static method in class HFE.Poly64Max
adds two numbers using Poly4Max as representation of the numbers.
addOne() - Method in class HFE.Field2_n
this += 1 - adds one to this
addOne() - Method in class HFE.Poly2_nMax
calculate this += 1 as polynomial addition
addRowsEquals(int, int) - Method in class HFE.Matrix2
A[i] += A[j].
addRowsEquals(int, int) - Method in class HFE.Matrix4
A[i] += A[j].
addRowsEquals(int, int, int) - Method in class HFE.Matrix2
A[i] += f*A[j].
addRowsEquals(int, int, int) - Method in class HFE.Matrix4
A[i] += f*A[j].
allocMem() - Method in class HFE.Poly2_nMax
Allocates new memory.
apply(int[]) - Method in class HFE.Poly2MultiLinear
Evaluate the polynomial using the given value vector The entry value[0] is _not_ uses, value[1] is the first valid entry.
apply(int[]) - Method in class HFE.Poly2MultiSquare
Evaluate the polynomial using the given value vector.
apply(int[]) - Method in class HFE.Poly4MultiLinear
Evaluate the polynomial using the given value vector The entry value[0] is _not_ uses, value[1] is the first valid entry.
apply(int[]) - Method in class HFE.Poly4MultiSquare
Evaluate the polynomial using the given value vector.
apply(int[], int[]) - Static method in class HFE.Poly2MultiLinear
Evaluate the polynomial using the given value vector and the given coefficient vector.
apply(int[], int[]) - Static method in class HFE.Poly2MultiSquare
Evaluate the polynomial using the given value vector and the given coefficient vector.
apply(int[], int[]) - Static method in class HFE.Poly4MultiLinear
Evaluate the polynomial using the given value vector and the given coefficient vector.
apply(int[], int[]) - Static method in class HFE.Poly4MultiSquare
Evaluate the polynomial using the given value vector and the given coefficient vector.
applyPoly(Field2_n) - Method in class HFE.Poly2_nMax
Uses the given polynomial as a function.
applyPoly(int) - Method in class HFE.Poly64Max
Uses the given polynomial as a function.
array2poly(int[]) - Method in class HFE.Poly2Max
Sets the coefficients using the given power array.
array2poly(int[]) - Method in class HFE.Poly2MultiLinear
Sets the coefficients using the given coefficient.
array2poly(int[]) - Method in class HFE.Poly2MultiSquare
Sets the coefficients using the given coefficient.
array2poly(int[]) - Method in class HFE.Poly4Max
Sets the coefficients using the given coefficient / power array.
array2poly(int[]) - Method in class HFE.Poly4MultiLinear
Sets the coefficients using the given coefficient.
array2poly(int[]) - Method in class HFE.Poly4MultiSquare
Sets the coefficients using the given coefficient.
array2poly(int[]) - Method in class HFE.Poly64Max
Sets the coefficients using the given coefficient / power array.
assert(boolean) - Static method in class HFE.Check
Throws an Illegal Argument Exception if (statement == false).
assert(boolean, String) - Static method in class HFE.Check
Throws an Illegal Argument Exception if (statement == false).

C

Check - class HFE.Check.
Provides a assertion checker for HFE which is quite similar to the assertion facility of Java 1.4.
Check() - Constructor for class HFE.Check
 
checkBit(int) - Method in class HFE.Field2_n
Checks if the bit at position where is set.
checkMatrixDimensions(Matrix2) - Method in class HFE.Matrix2
Check if size(A) == size(B)
checkMatrixDimensions(Matrix4) - Method in class HFE.Matrix4
Check if size(A) == size(B)
CheckRoot - interface HFE.CheckRoot.
Interface for RootFinding.
checkRoot(CheckRoot) - Method in class HFE.RootFinding
checks if S obtains a new root for f[0..regNum-1]
checkRoot(Field2_n) - Method in interface HFE.CheckRoot
Checks if the root is the one which is wanted by HFE.
checkRoot(Field2_n) - Method in class HFE.HFE2_n
Returns always true in signature mode (see variable HFE2_n.modeDecSig).
checkRoot(Field2_n) - Method in class HFE.RootFinding
for debugging purposes only: returns if the root which was found is correct!
clearBit(int) - Method in class HFE.Field2_n
Clears bit at position where.
clone() - Method in class HFE.Matrix2
Clone the Matrix object.
clone() - Method in class HFE.Matrix4
Clone the Matrix object.
cntDegree() - Method in class HFE.Field2_n
find the degree of this - i.e.
codeVec - Static variable in class HFE.HFE2_n
Cipher as a vector.
codeVec - Static variable in class HFE.HFE4_3
Cipher as a vector.
coeff - Variable in class HFE.Poly2MultiLinear
Coefficients for the variables.
coeff - Variable in class HFE.Poly2MultiSquare
Coefficients for the variables.
coeff - Variable in class HFE.Poly4MultiLinear
Coefficients for the variables.
coeff - Variable in class HFE.Poly4MultiSquare
Coefficients for the variables.
coeff(int) - Method in class HFE.Poly2Max
Returns te coefficient for a given degree which (i.e.
coeff(int) - Method in class HFE.Poly2MultiLinear
Returns the coefficient for a given variable.
coeff(int) - Method in class HFE.Poly4Max
Returns te coefficient for a given degree which (i.e.
coeff(int) - Method in class HFE.Poly4MultiLinear
Returns the coefficient for a given variable.
coeffs() - Method in class HFE.Poly2MultiLinear
returns the coefficient array without copying it.
coeffs() - Method in class HFE.Poly2MultiSquare
returns the coefficient array without copying it.
coeffs() - Method in class HFE.Poly4MultiLinear
returns the coefficient array without copying it.
coeffs() - Method in class HFE.Poly4MultiSquare
returns the coefficient array without copying it.
compDeg(int) - Method in class HFE.RootFinding
Method for register handling.
copy() - Method in class HFE.Matrix2
Make a deep copy of a matrix Allocates new memory
copy() - Method in class HFE.Matrix4
Make a deep copy of a matrix Allocates new memory
copy(Field2_n) - Method in class HFE.Field2_n
this = ter - copies father integerwise into this
copy(Poly2_nMax) - Method in class HFE.Poly2_nMax
Takes one polynomial and copies it.
copyShift(Poly2_nMax, int) - Method in class HFE.Poly2_nMax
Takes one polynomial and shifts it by the given shift.
copyShift(Poly64Max, int) - Method in class HFE.Poly64Max
Takes one polynomial and shifts it by the given shift.

D

decrypt(int) - Method in class HFE.HFE4_3
Decryptes a given, 22 bit ciphertext / hash
decrypt(int[], int[]) - Method in class HFE.HFE2_n
Decrypts a given, n bit cipher text.
degF - Variable in class HFE.RootFinding
registers for root finding algorithm.
degree - Static variable in class HFE.Field2_n
Degree of the underlying irreducible polynomial.
degree() - Method in class HFE.Poly2Max
Returns the degree of the object.
degree() - Method in class HFE.Poly2_nMax
Returns the degree of the object.
degree() - Method in class HFE.Poly4Max
Returns the degree of the object.
degree() - Method in class HFE.Poly64Max
Returns the degree of the object.
det() - Method in class HFE.LUDecomposition2
Determinant
det() - Method in class HFE.LUDecomposition4
Determinant
digest - Variable in class HFE.HFE4_3
Stores a copy of the message digest which is used to get one unique solution
div_A - Static variable in class HFE.Field2_n
static registers for division
div_B - Static variable in class HFE.Field2_n
static registers for division
div_tmp - Static variable in class HFE.Field2_n
static register for division
div_tmp - Static variable in class HFE.Poly2_nMax
static variable for method div
div_V - Static variable in class HFE.Field2_n
static registers for division
div(Field2_n) - Method in class HFE.Field2_n
this /= fac - divides this by fac usind finite field arithmetic in GF(2^n) and stores the result in this.
div(Field2_n, Field2_n) - Method in class HFE.Field2_n
this = whom / by in GF(2^n) - divides two numbers using finite field arithmetic in GF(2^n).
div(int, int) - Static method in class HFE.Field2
Divides two numbers using finite field arithmetic in F_2.
div(int, int) - Static method in class HFE.Field4
Divides two numbers using finite field arithmetic in F_4.
div(Poly2_nMax, Poly2_nMax) - Method in class HFE.Poly2_nMax
Calculates this = a / b and assumes that there is _no_ remainder, i.e.
divFactor(int) - Method in class HFE.Poly4MultiLinear
divides all coefficients by the given factor in F_4.
divFactor(int) - Method in class HFE.Poly4MultiSquare
divides all coefficients by the given factor in F_4.
divNum(int, int) - Static method in class HFE.Poly64Max
divides whom by the number by.
divS(Poly2_nMax, Poly2_nMax) - Method in class HFE.Poly2_nMax
Calculates this = a / b and assumes that there is _no_ remainder! Slow implementation, use Poly2_nMax.div(HFE.Poly2_nMax, HFE.Poly2_nMax) instead!
divTab - Static variable in class HFE.Field4
look-up table for multiplication
divTab - Static variable in class HFE.Field64_Tab
Stores the result of a division (whom / by) in F_64 in divTab[whom][by].

E

elements - Static variable in class HFE.Field2
number of elements in this field
elements - Static variable in class HFE.Field4
number of elements in this field
encrypt(int) - Method in class HFE.HFE4_3
Encryptes a given, 6 bit plain text.
encrypt(int[], int[]) - Method in class HFE.HFE2_n
Encryptes a given, n bit plain text.
encryptPrivate(int[], int[]) - Method in class HFE.HFE2_n
Encryptes a given, n bit plain text.
even() - Method in class HFE.Field2_n
Checks if bit[0] is _not_ set, i.e.
extension - Static variable in class HFE.Poly64Max
Basicly the degree of the generation polynomial de facto the dimension of the vector space which can be assigned to F_64 in terms of F_4.
extensionDegree - Static variable in class HFE.HFE2_n
Holds the degree of the irreducible polynomial and thereby also the degree of the extension field

F

f - Variable in class HFE.RootFinding
registers for root finding algorithm.
Field2 - class HFE.Field2.
This class encapsulates the operations for a finite field with 2 elements.
Field2_n - class HFE.Field2_n.
This class encapsulates the operations for a finite field with 2^n elements.
Field2_n() - Constructor for class HFE.Field2_n
Standart Constructor to obtain an element with all bits = 0
Field2_n(Field2_n) - Constructor for class HFE.Field2_n
Constructor to produce a copy of another Field2_n element
Field2_n(int) - Constructor for class HFE.Field2_n
Constructor to obtain an element with least significant integer set and the rest being 0
Field2_n(Random) - Constructor for class HFE.Field2_n
Constructor to obtain a random element
Field2() - Constructor for class HFE.Field2
 
Field4 - class HFE.Field4.
This class encapsulates the operations for a finite field with 4 elements.
Field4() - Constructor for class HFE.Field4
 
Field64_Tab - class HFE.Field64_Tab.
This class encapsulates the look-up tables for a finite field with 64 elements.
Field64_Tab() - Constructor for class HFE.Field64_Tab
 
filterRoots(Collection, int) - Method in class HFE.HFE4_3
Finds out which roots are correct acording to the given hash.
findIrr() - Static method in class HFE.Poly4Max
Find all irreducible polynomials.
findRoots(Poly2_nMax, CheckRoot) - Method in class HFE.RootFinding
finds all roots of given polynomial poly

G

gcd_tmp - Static variable in class HFE.Poly2_nMax
local variable for gcd algorithm.
gcd_tmpCoeff - Static variable in class HFE.Poly2_nMax
local variable for gcd algorithm.
gcd(Poly2_nMax, Poly2_nMax) - Method in class HFE.Poly2_nMax
Computes this = gcd(a,b) using an iterative gcd algorithm for polynomials.
generateKeys(byte[]) - Method in class HFE.HFE2_n
Generates the public and the private key from a given seed and stores them in the object's fields.
generateKeys(long) - Method in class HFE.HFE4_3
Generates the public and the private key from a given seed and stores them in the object's fields.
generateNonsingular(int, Random) - Static method in class HFE.LUDecomposition2
Generates a random nonsingular matrix of the given size.
generateNonsingular(int, Random) - Static method in class HFE.LUDecomposition4
Generates a random nonsingular matrix of the given size.
generatingPolynomial - Static variable in class HFE.HFE2_n
Central switch to change generating polynomial.
generatingPolynomialAsMaxPoly - Static variable in class HFE.HFE2_n
Polynomial set in variable HFE2_n.generatingPolynomial but as a Poly2Max polynomial.
genPoly - Static variable in class HFE.Poly64Max
Generating Polynomial over Field4.
genPolyPrivate(int[]) - Static method in class HFE.HFE4_3
Generates a private key for HFE.
genPolyPrivate(SecureRandom) - Static method in class HFE.HFE2_n
Generates a private key for HFE.
genPolyPublic(int[]) - Method in class HFE.HFE4_3
Generates the 3 public polynomial from the object's private polynomial.
genPolyPublic(SecureRandom) - Method in class HFE.HFE2_n
Generats the public polynomials from the private polynomial
genSign(int[], int[]) - Method in class HFE.HFE2_n
Generates signature for given message using (S,P,T).
get(int, int) - Method in class HFE.Matrix2
Get a single element.
get(int, int) - Method in class HFE.Matrix4
Get a single element.
getArray() - Method in class HFE.Matrix2
Returns a pointer to the internal two-dimensional array.
getArray() - Method in class HFE.Matrix4
Returns a pointer to the internal two-dimensional array.
getArrayCopy() - Method in class HFE.Matrix2
Copy the internal two-dimensional array.
getArrayCopy() - Method in class HFE.Matrix4
Copy the internal two-dimensional array.
getCoeff(Field2_n, int) - Method in class HFE.Poly2_nMax
get coefficient at position pos by copying it to res
getCoeff(int) - Method in class HFE.Poly2_nMax
get coefficient at position pos by constructing a new object from type Field2_n
getColumnDimension() - Method in class HFE.Matrix2
Get column dimension.
getColumnDimension() - Method in class HFE.Matrix4
Get column dimension.
getColumnPackedCopy() - Method in class HFE.Matrix2
Make a one-dimensional column packed copy of the internal array.
getColumnPackedCopy() - Method in class HFE.Matrix4
Make a one-dimensional column packed copy of the internal array.
getElement(int[]) - Method in class HFE.Field2_n
copies this to a bit vector
getMatrix(int[], int[]) - Method in class HFE.Matrix2
Get a submatrix.
getMatrix(int[], int[]) - Method in class HFE.Matrix4
Get a submatrix.
getMatrix(int[], int, int) - Method in class HFE.Matrix2
Get a submatrix.
getMatrix(int[], int, int) - Method in class HFE.Matrix4
Get a submatrix.
getMatrix(int, int, int[]) - Method in class HFE.Matrix2
Get a submatrix.
getMatrix(int, int, int[]) - Method in class HFE.Matrix4
Get a submatrix.
getMatrix(int, int, int, int) - Method in class HFE.Matrix2
Get a submatrix.
getMatrix(int, int, int, int) - Method in class HFE.Matrix4
Get a submatrix.
getRoots(Poly64Max, int) - Method in class HFE.HFE4_3
Calculates the root for a given Polynomial and a given element of F_64.
getRowDimension() - Method in class HFE.Matrix2
Get row dimension.
getRowDimension() - Method in class HFE.Matrix4
Get row dimension.
getRowPackedCopy() - Method in class HFE.Matrix2
Make a one-dimensional row packed copy of the internal array.
getRowPackedCopy() - Method in class HFE.Matrix4
Make a one-dimensional row packed copy of the internal array.
getTransform() - Method in class HFE.Transform2
returns the transformation in terms of polynomials
getTransform() - Method in class HFE.Transform4
returns the transformation in terms of polynomials
getValues(int[], int[]) - Static method in class HFE.Poly2MultiSquare
Calculates the square values using the linear values.
getValues(int[], int[]) - Static method in class HFE.Poly4MultiSquare
Calculates the square values using the linear values.
giveFree() - Method in class HFE.RootFinding
Method for register handling.
giveHash(int) - Method in class HFE.HFE4_3
Produces a 16 bit hash for the given plaintext.
givePower(int) - Method in class HFE.Multi2Power
Returns the polynomial vector for a given power which.
givePower(int) - Method in class HFE.Multi4Power
Returns the polynomial vector for a given power which.
giveVarNum() - Method in class HFE.Poly2MultiLinear
returns the number of variables for that object
giveVarNum() - Method in class HFE.Poly4MultiLinear
returns the number of variables for that object

H

hashLen - Static variable in class HFE.HFE2_n
Holds the number of bits for the hash value
hashPoly - Variable in class HFE.HFE2_n
Quadratic polynomials for computing hash of message m
hashValue - Variable in class HFE.HFE2_n
hash value of the current message
HFE2_n - class HFE.HFE2_n.
This class is the "final version" of HFE which works on n=67,129,257 bits over the field GF(2) (Field2) which extents to GF(2^n) (Field2_n).
HFE2_n(byte[]) - Constructor for class HFE.HFE2_n
Initializes HFE2_n by generating the public and the private key from the given seed.
HFE4_3 - class HFE.HFE4_3.
This class is the "toy version" of HFE which works on 6 bits over the field F_4 (Field4) which extents to F_64.
HFE4_3(long) - Constructor for class HFE.HFE4_3
Initializes HFE4_3 by generating the public and the private key from the given seed.

I

identity(int, int) - Static method in class HFE.Matrix2
Generate identity matrix
identity(int, int) - Static method in class HFE.Matrix4
Generate identity matrix
initAll() - Static method in class HFE.Multi2Mul
Init method for this class
initAll() - Static method in class HFE.Poly2_nMax
Initializes the static variables
initMem() - Method in class HFE.Poly2MultiLinear
Allocates new memory for the coefficients.
initMem() - Method in class HFE.Poly2MultiSquare
Allocates new memory for the coefficients.
initMem() - Method in class HFE.Poly4MultiLinear
Allocates new memory for the coefficients.
initMem() - Method in class HFE.Poly4MultiSquare
Allocates new memory for the coefficients.
int2poly(int) - Method in class HFE.Poly2Max
Sets the coefficients according to intValue.
int2poly(int) - Method in class HFE.Poly4Max
Sets the coefficients according to intValue.
int2poly(int) - Method in class HFE.Poly64Max
Sets the coefficients according to intValue.
int2vec(int, int[]) - Static method in class HFE.HFE4_3
computes an vector of integers out of one integer
inverseTab - Static variable in class HFE.Field64_Tab
Stores the inverses for every element.
isBigger(Poly4Max) - Method in class HFE.Poly4Max
Compares the current polynomial with the given one.
isBigger(Poly64Max) - Method in class HFE.Poly64Max
Compares the current polynomial with the given one.
isElement() - Method in class HFE.Field2_n
Checks if the current element is from Field2_n
isElement(Field2_n) - Static method in class HFE.Field2_n
Checks if a given integer is within the range of a GF(2^n) element.
isElement(Field2_n[]) - Static method in class HFE.Field2_n
Checks if a given vector consists only of Field2_n elements.
isElement(Field2_n[][]) - Static method in class HFE.Field2_n
Checks if a given matrix consists only of Field2_n elements.
isElement(int) - Static method in class HFE.Field2
Checks if a given integer is within the range of a Field2 element.
isElement(int) - Static method in class HFE.Field4
Checks if a given integer is within the range of a Field4 element.
isElement(int[]) - Static method in class HFE.Field2
Checks if a given vector consists only of Field2 elements.
isElement(int[]) - Static method in class HFE.Field4
Checks if a given vector consists only of Field4 elements.
isElement(int[][]) - Static method in class HFE.Field2
Checks if a given matrix consists only of Field2 elements.
isElement(int[][]) - Static method in class HFE.Field4
Checks if a given matrix consists only of Field4 elements.
isEqual(Field2_n) - Method in class HFE.Field2_n
Checks if this and who are bitwise equal
isEqual(Matrix2) - Method in class HFE.Matrix2
Compares two matrices.
isEqual(Matrix4) - Method in class HFE.Matrix4
Compares two matrices.
isEqual(Poly2_nMax) - Method in class HFE.Poly2_nMax
Compares the current polynomial with the given one.
isEqual(Poly2Max) - Method in class HFE.Poly2Max
Compares the current polynomial with the given one.
isEqual(Poly2MultiLinear) - Method in class HFE.Poly2MultiLinear
Compares this and whom coefficientwise.
isEqual(Poly2MultiSquare) - Method in class HFE.Poly2MultiSquare
Compares this and whom coefficientwise.
isEqual(Poly4Max) - Method in class HFE.Poly4Max
Compares the current polynomial with the given one.
isEqual(Poly4MultiLinear) - Method in class HFE.Poly4MultiLinear
Compares this and whom coefficientwise.
isEqual(Poly4MultiSquare) - Method in class HFE.Poly4MultiSquare
Compares this and whom coefficientwise.
isEqual(Poly64Max) - Method in class HFE.Poly64Max
Compares the current polynomial with the given one.
isIrr(int) - Static method in class HFE.Poly4Max
Tests if a given polynomial (specified as a number, see Poly4Max.int2poly(int)) is irreducible.
isIrr(int) - Static method in class HFE.Poly64Max
Tests if a given polynomial (specified as a number, see Poly64Max.int2poly(int)) is irreducible.
isLess(Poly4Max) - Method in class HFE.Poly4Max
Compares the current polynomial with the given one.
isLess(Poly64Max) - Method in class HFE.Poly64Max
Compares the current polynomial with the given one.
isNonsingular() - Method in class HFE.LUDecomposition2
Is the matrix nonsingular?
isNonsingular() - Method in class HFE.LUDecomposition4
Is the matrix nonsingular?
isZero() - Method in class HFE.Field2_n
Checks if the element is the zero element
isZero() - Method in class HFE.Poly2Max
Checks if a polynomial is the zero polynomial.
isZero() - Method in class HFE.Poly2MultiLinear
Checks if the polynomial is the zero polynomial.
isZero() - Method in class HFE.Poly2MultiSquare
Checks if the polynomial is the zero polynomial.
isZero() - Method in class HFE.Poly2_nMax
Checks if a polynomial is the zero polynomial.
isZero() - Method in class HFE.Poly4Max
Checks if a polynomial is the zero polynomial.
isZero() - Method in class HFE.Poly4MultiLinear
Checks if the polynomial is the zero polynomial.
isZero() - Method in class HFE.Poly4MultiSquare
Checks if the polynomial is the zero polynomial.
isZero() - Method in class HFE.Poly64Max
Checks if a polynomial is the zero polynomial.

L

lu - Variable in class HFE.Transform2
holds the LU decomposition of matrix M for the reverse affine transformation.
lu - Variable in class HFE.Transform4
holds the LU decomposition of matrix M for the reverse affine transformation.
LU - Variable in class HFE.LUDecomposition2
Array for internal storage of decomposition.
LU - Variable in class HFE.LUDecomposition4
Array for internal storage of decomposition.
lu() - Method in class HFE.Matrix2
LU Decomposition
lu() - Method in class HFE.Matrix4
LU Decomposition
LUDecomposition2 - class HFE.LUDecomposition2.
This class encapsulates the operations for LUDecomposition for matrices over the finite field F_2).
LUDecomposition2(Matrix2) - Constructor for class HFE.LUDecomposition2
LU Decomposition
LUDecomposition4 - class HFE.LUDecomposition4.
This class encapsulates the operations for LUDecomposition for matrices over the finite field F_4).
LUDecomposition4(Matrix4) - Constructor for class HFE.LUDecomposition4
LU Decomposition

M

m - Variable in class HFE.LUDecomposition2
Row and column dimensions, and pivot sign.
m - Variable in class HFE.LUDecomposition4
Row and column dimensions, and pivot sign.
m - Variable in class HFE.Matrix2
Row (m) and column (n) dimensions.
m - Variable in class HFE.Matrix4
Row (m) and column (n) dimensions.
m - Variable in class HFE.Transform2
holds the vector m for the affine transformation.
m - Variable in class HFE.Transform4
holds the vector m for the affine transformation.
M - Variable in class HFE.Transform2
holds the bijective matrix M for the affine transformation.
M - Variable in class HFE.Transform4
holds the bijective matrix M for the affine transformation.
main(String[]) - Static method in class HFE.Check
 
main(String[]) - Static method in class HFE.Field2
Tests everything in this class
main(String[]) - Static method in class HFE.Field2_n
Tests everything in this class
main(String[]) - Static method in class HFE.Field4
Tests everything in this class
main(String[]) - Static method in class HFE.HFE2_n
Tests everything in this class
main(String[]) - Static method in class HFE.HFE4_3
Tests everything in this class
main(String[]) - Static method in class HFE.LUDecomposition2
Tests everything in this class
main(String[]) - Static method in class HFE.LUDecomposition4
Tests everything in this class
main(String[]) - Static method in class HFE.Matrix2
Tests everything in this class
main(String[]) - Static method in class HFE.Matrix4
Tests everything in this class
main(String[]) - Static method in class HFE.Multi2Mul
Calls the Multi2Mul.testIt() method
main(String[]) - Static method in class HFE.Multi2Power
Calls the Multi2Power.testIt() method
main(String[]) - Static method in class HFE.Multi4Mul
Calls the Multi4Mul.testIt() method
main(String[]) - Static method in class HFE.Multi4Power
Calls the Multi4Power.testIt() method
main(String[]) - Static method in class HFE.Poly2Max
Mainly invoces the Poly2Max.testIt() method.
main(String[]) - Static method in class HFE.Poly2MultiLinear
Mainly invoces the Poly2MultiLinear.testIt() method.
main(String[]) - Static method in class HFE.Poly2MultiSquare
Mainly invoces the Poly2MultiSquare.testIt() method.
main(String[]) - Static method in class HFE.Poly2_nMax
Mainly invoces the Poly2_nMax.testIt() method.
main(String[]) - Static method in class HFE.Poly4Max
Mainly invoces the Poly4Max.testIt() method.
main(String[]) - Static method in class HFE.Poly4MultiLinear
Mainly invoces the Poly4MultiLinear.testIt() method.
main(String[]) - Static method in class HFE.Poly4MultiSquare
Mainly invoces the Poly4MultiSquare.testIt() method.
main(String[]) - Static method in class HFE.Poly64Max
Mainly invoces the Poly64Max.testIt() method.
main(String[]) - Static method in class HFE.RootFinding
Tests everything in this class
main(String[]) - Static method in class HFE.Transform2
Calls the Transform2.testIt() method
main(String[]) - Static method in class HFE.Transform4
Calls the Transform4.testIt() method
Matrix2 - class HFE.Matrix2.
The class Matrix2 provides matrix operations for matrices over the finite field F_2 which is specified in Field2.
Matrix2(int[][]) - Constructor for class HFE.Matrix2
Construct a matrix using the given array with checking.
Matrix2(int[][], int, int) - Constructor for class HFE.Matrix2
Construct a matrix using the given array without checking.
Matrix2(int, int) - Constructor for class HFE.Matrix2
Construct an m-by-n matrix of zeros.
Matrix2(int, int, Random) - Constructor for class HFE.Matrix2
Generats an m-by-n random matrix.
Matrix4 - class HFE.Matrix4.
The class Matrix4 provides matrix operations for matrices over the finite field F_4 which is specified in Field4.
Matrix4(int[][]) - Constructor for class HFE.Matrix4
Construct a matrix using the given array with checking.
Matrix4(int[][], int, int) - Constructor for class HFE.Matrix4
Construct a matrix using the given array without checking.
Matrix4(int, int) - Constructor for class HFE.Matrix4
Construct an m-by-n matrix of zeros.
Matrix4(int, int, Random) - Constructor for class HFE.Matrix4
Generats an m-by-n random matrix.
maxLen - Static variable in class HFE.Poly2Max
Maximal length of the polynomials
maxLen - Static variable in class HFE.Poly2_nMax
Maximal length of the polynomials
maxLen - Static variable in class HFE.Poly4Max
Maximal length of the polynomials
maxLen - Static variable in class HFE.Poly64Max
Maximal length of the polynomials
messageLength - Static variable in class HFE.HFE2_n
Holds the number of bits for an encrypted message, i.e.
messageSigLength - Static variable in class HFE.HFE2_n
Holds the number of bits for a message in terms of a signature.
mod_additive - Static variable in class HFE.Poly64Max
 
mod_divRes - Static variable in class HFE.Poly2_nMax
second static variable for our mod method
mod_tmp - Static variable in class HFE.Poly2_nMax
static variable for mod method
mod() - Method in class HFE.Poly2Max
Calculates this %= moduls.
mod() - Method in class HFE.Poly2_nMax
Calculates this %= moduls.
mod() - Method in class HFE.Poly4Max
Calculates this %= moduls.
mod() - Method in class HFE.Poly64Max
Calculates this %= moduls.
mod(Poly2_nMax) - Method in class HFE.Poly2_nMax
Calculates this %= b
mod(Poly2_nMax, Poly2_nMax) - Method in class HFE.Poly2_nMax
Calculates this = a % b
mod(Poly2Max) - Method in class HFE.Poly2Max
Calculates this %= b
mod(Poly2Max, Poly2Max) - Method in class HFE.Poly2Max
Calculates this = a % b
mod(Poly4Max) - Method in class HFE.Poly4Max
Calculates this %= b
mod(Poly4Max, Poly4Max) - Method in class HFE.Poly4Max
Calculates this = a % b
mod(Poly64Max) - Method in class HFE.Poly64Max
Calculates this %= b
mod(Poly64Max, Poly64Max) - Method in class HFE.Poly64Max
Calculates this = a % b
modeDecSig - Variable in class HFE.HFE2_n
Signals if we are in decryption (1) or signature generation mode (-1).
modS_additive - Static variable in class HFE.Poly2_nMax
static variable for our mod method
modS_tmp - Static variable in class HFE.Poly2_nMax
second static variable for our mod method
modS(Poly2_nMax) - Method in class HFE.Poly2_nMax
Calculates this %= b slow but working implementation of mod
modulus - Static variable in class HFE.Poly2Max
Modulus for the mod version of the operations
modulus - Static variable in class HFE.Poly2_nMax
Modulus for the mod version of the operations
modulus - Static variable in class HFE.Poly4Max
Modulus for the mod version of the operations
modulus - Static variable in class HFE.Poly64Max
Modulus for the mod version of the operations
mul_resL - Static variable in class HFE.Multi2Mul
Holds a static variable for the sake of speed which is used in mul.
mul_tmp - Static variable in class HFE.Field2_n
static register for multiplication
mul_tmp - Static variable in class HFE.Poly2_nMax
Static register for multiplication
mul_tmpL - Static variable in class HFE.Multi2Mul
Holds a static variable for the sake of speed which is used in mul.
mul_tmpS - Static variable in class HFE.Multi2Mul
Holds a static variable for the sake of speed which is used in mul.
mul(Field2_n) - Method in class HFE.Field2_n
this *= fac - multiplies two numbers using finite field arithmetic in GF(2^n) and stores the result in this.
mul(Field2_n, Field2_n) - Method in class HFE.Field2_n
this = fac1 * fac2 - multiplies two numbers using finite field arithmetic in GF(2^n) and stores the result in this.
mul(int[], int[]) - Method in class HFE.Matrix2
Linear algebraic matrix/vector multiplication, res = A * b.
mul(int[], int[]) - Method in class HFE.Matrix4
Linear algebraic matrix/vector multiplication, res = A * b.
mul(int[], Poly2MultiLinear[]) - Method in class HFE.Multi2Mul
Computes res = con * poly in terms of vector multiplication of polynomials.
mul(int[], Poly2MultiLinear[], Poly2MultiLinear[]) - Method in class HFE.Multi2Mul
Computes res = con * a * b in terms of vector multiplication of polynomials.
mul(int[], Poly4MultiLinear[]) - Method in class HFE.Multi4Mul
Computes res = con * poly in terms of vector multiplication of polynomials.
mul(int[], Poly4MultiLinear[], Poly4MultiLinear[]) - Method in class HFE.Multi4Mul
Computes res = con * a * b in terms of vector multiplication of polynomials.
mul(int, int) - Static method in class HFE.Field2
Multiplies two numbers using finite field arithmetic in F_4.
mul(int, int) - Static method in class HFE.Field4
Multiplies two numbers using finite field arithmetic in F_4.
mul(Matrix2) - Method in class HFE.Matrix2
Linear algebraic matrix multiplication, A * B.
mul(Matrix4) - Method in class HFE.Matrix4
Linear algebraic matrix multiplication, A * B.
mul(Poly2_nMax, Poly2_nMax) - Method in class HFE.Poly2_nMax
calculates this = a * b as polynomial addition.
mul(Poly2Max, Poly2Max) - Method in class HFE.Poly2Max
calculates this = a * b as polynomial addition.
mul(Poly2MultiLinear[], int[], Poly2MultiLinear[]) - Method in class HFE.Multi2Mul
Computes res = con * poly in terms of vector multiplication of polynomials.
mul(Poly2MultiLinear[], Poly2MultiLinear[]) - Method in class HFE.Multi2Mul
Computes res = a * b in terms of vector multiplication of polynomials.
mul(Poly2MultiLinear, Poly2MultiLinear) - Method in class HFE.Poly2MultiSquare
Calculates this = a*b in terms of polynomial multiplication.
mul(Poly2MultiSquare[], int[], Poly2MultiLinear[], Poly2MultiLinear[]) - Method in class HFE.Multi2Mul
Computes res = con * a * b in terms of vector multiplication of polynomials.
mul(Poly4Max, Poly4Max) - Method in class HFE.Poly4Max
calculates this = a * b as polynomial addition.
mul(Poly4MultiLinear[], Poly4MultiLinear[]) - Method in class HFE.Multi4Mul
Computes res = a * b in terms of vector multiplication of polynomials.
mul(Poly4MultiLinear, Poly4MultiLinear) - Method in class HFE.Poly4MultiSquare
Calculates this = a*b in terms of polynomial multiplication.
mul(Poly64Max, Poly64Max) - Method in class HFE.Poly64Max
calculates this = a * b as polynomial addition.
mul2(int[], Poly2MultiLinear[], Poly2MultiLinear[]) - Method in class HFE.Multi2Mul
Computes res = con * a * b in terms of vector multiplication of polynomials.
mul2(int[], Poly4MultiLinear[], Poly4MultiLinear[]) - Method in class HFE.Multi4Mul
Computes res = con * a * b in terms of vector multiplication of polynomials.
mul2(Poly2MultiLinear[], Poly2MultiLinear[]) - Method in class HFE.Multi2Mul
Computes res = a * b in terms of vector multiplication of polynomials.
mul2(Poly4MultiLinear[], Poly4MultiLinear[]) - Method in class HFE.Multi4Mul
Computes res = a * b in terms of vector multiplication of polynomials.
mulAdd_coeff - Variable in class HFE.Poly2_nMax
static variable for mulAdd
mulAdd(Field2_n, Poly2_nMax) - Method in class HFE.Poly2_nMax
compute this = coeff*poly where coeff is from GF(2^n) and poly is an object of type Poly2_nMax
mulAdd(int, Poly2MultiSquare) - Method in class HFE.Poly2MultiSquare
this += factor*whom.
mulAdd(int, Poly4MultiLinear) - Method in class HFE.Poly4MultiLinear
this += factor*whom.
mulAdd(int, Poly4MultiSquare) - Method in class HFE.Poly4MultiSquare
this += factor*whom.
mulAdd(Poly2MultiLinear, Poly2MultiLinear) - Method in class HFE.Poly2MultiSquare
Calculates this += a*b in terms of polynomial multiplication.
mulAdd(Poly4MultiLinear, Poly4MultiLinear) - Method in class HFE.Poly4MultiSquare
Calculates this += a*b in terms of polynomial multiplication.
mulFactor(Field2_n) - Method in class HFE.Poly2_nMax
multiplies all coefficients by the given factor in GF(2^n) uses static memory to store the result of each step
mulFactor(int) - Method in class HFE.Poly2Max
multiplies all coefficients by the given factor in F_2.
mulFactor(int) - Method in class HFE.Poly4Max
multiplies all coefficients by the given factor in F_4.
mulFactor(int) - Method in class HFE.Poly4MultiLinear
multiplies all coefficients by the given factor in F_4.
mulFactor(int) - Method in class HFE.Poly4MultiSquare
multiplies all coefficients by the given factor in F_4.
mulFactor(int) - Method in class HFE.Poly64Max
multiplies all coefficients by the given factor in F_64.
mulMod(Poly2Max, Poly2Max) - Method in class HFE.Poly2Max
Computes this = (a*b)%modul.
mulMod(Poly4Max, Poly4Max) - Method in class HFE.Poly4Max
Computes this = (a*b)%modul.
mulMod(Poly64Max, Poly64Max) - Method in class HFE.Poly64Max
Computes this = (this+b)%modul.
mulNum(int, int) - Static method in class HFE.Poly64Max
multiplies two numbers by looking up the result in the multiplication table which is provided by the class Field64_Tab
mulNumByPoly(int, int) - Static method in class HFE.Poly64Max
Multiplies two numbers using Poly4Max as representation of the numbers.
mulTab - Static variable in class HFE.Field4
look-up table for multiplication
mulTab - Static variable in class HFE.Field64_Tab
Stores the result of the multiplication.
Multi2Mul - class HFE.Multi2Mul.
This class deals with multi-variable polynomials and a general modulus provied to the constructor.
Multi2Mul(Poly2Max) - Constructor for class HFE.Multi2Mul
Initializes the internal field Multi2Mul.reduce
Multi2Power - class HFE.Multi2Power.
This class deals with multi-variable polynomials and a general modulus provied to the constructor.
Multi2Power(Poly2Max, Poly2MultiLinear[], int) - Constructor for class HFE.Multi2Power
Initializes the internal fields
Multi4Mul - class HFE.Multi4Mul.
This class deals with multi-variable polynomials and a general modulus provied to the constructor.
Multi4Mul(Poly4Max) - Constructor for class HFE.Multi4Mul
Initializes the internal field Multi4Mul.reduce
Multi4Power - class HFE.Multi4Power.
This class deals with multi-variable polynomials and a general modulus provied to the constructor.
Multi4Power(Poly4Max, Poly4MultiLinear[], int) - Constructor for class HFE.Multi4Power
Initializes the internal fields
mulX() - Method in class HFE.Field2_n
this *= x assumes that there is no reduction necessary

N

n - Variable in class HFE.LUDecomposition2
Row and column dimensions, and pivot sign.
n - Variable in class HFE.LUDecomposition4
Row and column dimensions, and pivot sign.
n - Variable in class HFE.Matrix2
Row (m) and column (n) dimensions.
n - Variable in class HFE.Matrix4
Row (m) and column (n) dimensions.
number - Variable in class HFE.Field2_n
Allocats memory for elements of this class

P

padBits - Static variable in class HFE.HFE2_n
Holds the number of bits for a message in terms of a signature.
paramK - Static variable in class HFE.HFE2_n
Holds the number of public equations which are replaced by random equations.
piv - Variable in class HFE.LUDecomposition2
Internal storage of pivot vector.
piv - Variable in class HFE.LUDecomposition4
Internal storage of pivot vector.
plotFunction() - Static method in class HFE.Poly4Max
 
plotFunction() - Static method in class HFE.Poly64Max
 
Poly2_nMax - class HFE.Poly2_nMax.
This class encapsulates the operations for polynomials over the finite field F_64 which is an extension over F_4.
Poly2_nMax() - Constructor for class HFE.Poly2_nMax
sets all the coefficients to zero and allocates new memory
Poly2_nMax(Poly2_nMax) - Constructor for class HFE.Poly2_nMax
Creates a copy from the given polynomial
Poly2_nMax(Poly2_nMax, int) - Constructor for class HFE.Poly2_nMax
Takes one polynomial and shifts it by the given shift.
Poly2_nMax(Random) - Constructor for class HFE.Poly2_nMax
Generates a polynomial with random coefficients.
Poly2_nMax(Random, int) - Constructor for class HFE.Poly2_nMax
Generates a polynomial with random coefficient.
Poly2Max - class HFE.Poly2Max.
This class provides polynomials of positive degree over the finite field F_2 which is provided in the class Field2.
Poly2Max() - Constructor for class HFE.Poly2Max
sets all the coefficients to zero
Poly2Max(int) - Constructor for class HFE.Poly2Max
Creates a new polynomial.
Poly2Max(int[]) - Constructor for class HFE.Poly2Max
Poly2Max.array2poly(int[])
Poly2Max(Poly2Max) - Constructor for class HFE.Poly2Max
Creates a copy from the given polynomial
Poly2Max(Poly2Max, int) - Constructor for class HFE.Poly2Max
Takes one polynomial and shifts it by the given shift.
Poly2MultiLinear - class HFE.Poly2MultiLinear.
This class provides polynomials of degree one in n independent variables.
Poly2MultiLinear() - Constructor for class HFE.Poly2MultiLinear
sets all the coefficients to zero assumes that the polynomial has no variables
Poly2MultiLinear(int) - Constructor for class HFE.Poly2MultiLinear
Sets all the coefficients to zero by allocating new memory.
Poly2MultiLinear(int[]) - Constructor for class HFE.Poly2MultiLinear
Poly2MultiLinear.array2poly(int[])
Poly2MultiLinear(int, int[]) - Constructor for class HFE.Poly2MultiLinear
Creates a new object by using inArray for the coefficients.
Poly2MultiLinear(Poly2MultiLinear) - Constructor for class HFE.Poly2MultiLinear
Creates a copy from the given polynomial.
Poly2MultiSquare - class HFE.Poly2MultiSquare.
This class provides polynomials of degree two in n independent variables.
Poly2MultiSquare() - Constructor for class HFE.Poly2MultiSquare
sets all the coefficients to zero assumes that the polynomial has no variables
Poly2MultiSquare(int) - Constructor for class HFE.Poly2MultiSquare
Sets all the coefficients to zero by allocating new memory.
Poly2MultiSquare(int[]) - Constructor for class HFE.Poly2MultiSquare
Poly2MultiSquare.array2poly(int[])
Poly2MultiSquare(int, int[]) - Constructor for class HFE.Poly2MultiSquare
Creates a new object by using inArray for the coefficients.
Poly2MultiSquare(int, Random) - Constructor for class HFE.Poly2MultiSquare
Sets all the coefficients to a random value and also allocates new memory for these coefficients.
Poly2MultiSquare(Poly2MultiLinear) - Constructor for class HFE.Poly2MultiSquare
Creates a copy from the given linear polynomial.
Poly2MultiSquare(Poly2MultiLinear, Poly2MultiLinear) - Constructor for class HFE.Poly2MultiSquare
Multiplies two lineare polynomials and stores the result in a new object.
Poly2MultiSquare(Poly2MultiSquare) - Constructor for class HFE.Poly2MultiSquare
Creates a copy from the given polynomial.
Poly4Max - class HFE.Poly4Max.
This class provides polynomials of positive degree over the finite field F_4 which is provided in the class Field4.
Poly4Max() - Constructor for class HFE.Poly4Max
sets all the coefficients to zero
Poly4Max(int) - Constructor for class HFE.Poly4Max
Creates a new polynomial.
Poly4Max(int[]) - Constructor for class HFE.Poly4Max
Poly4Max.array2poly(int[])
Poly4Max(Poly4Max) - Constructor for class HFE.Poly4Max
Creates a copy from the given polynomial
Poly4Max(Poly4Max, int) - Constructor for class HFE.Poly4Max
Takes one polynomial and shifts it by the given shift.
Poly4MultiLinear - class HFE.Poly4MultiLinear.
This class provides polynomials of degree one in n independent variables.
Poly4MultiLinear() - Constructor for class HFE.Poly4MultiLinear
sets all the coefficients to zero assumes that the polynomial has no variables
Poly4MultiLinear(int) - Constructor for class HFE.Poly4MultiLinear
Sets all the coefficients to zero by allocating new memory.
Poly4MultiLinear(int[]) - Constructor for class HFE.Poly4MultiLinear
Poly4MultiLinear.array2poly(int[])
Poly4MultiLinear(int, int[]) - Constructor for class HFE.Poly4MultiLinear
Creates a new object by using inArray for the coefficients.
Poly4MultiLinear(Poly4MultiLinear) - Constructor for class HFE.Poly4MultiLinear
Creates a copy from the given polynomial.
Poly4MultiSquare - class HFE.Poly4MultiSquare.
This class provides polynomials of degree two in n independent variables.
Poly4MultiSquare() - Constructor for class HFE.Poly4MultiSquare
sets all the coefficients to zero assumes that the polynomial has no variables
Poly4MultiSquare(int) - Constructor for class HFE.Poly4MultiSquare
Sets all the coefficients to zero by allocating new memory.
Poly4MultiSquare(int[]) - Constructor for class HFE.Poly4MultiSquare
Poly4MultiSquare.array2poly(int[])
Poly4MultiSquare(int, int[]) - Constructor for class HFE.Poly4MultiSquare
Creates a new object by using inArray for the coefficients.
Poly4MultiSquare(Poly4MultiLinear) - Constructor for class HFE.Poly4MultiSquare
Creates a copy from the given linear polynomial.
Poly4MultiSquare(Poly4MultiLinear, Poly4MultiLinear) - Constructor for class HFE.Poly4MultiSquare
Multiplies two lineare polynomials and stores the result in a new object.
Poly4MultiSquare(Poly4MultiSquare) - Constructor for class HFE.Poly4MultiSquare
Creates a copy from the given polynomial.
Poly64Max - class HFE.Poly64Max.
This class encapsulates the operations for polynomials over the finite field F_64 which is an extension over F_4.
Poly64Max() - Constructor for class HFE.Poly64Max
sets all the coefficients to zero
Poly64Max(int) - Constructor for class HFE.Poly64Max
Creates a new polynomial.
Poly64Max(int[]) - Constructor for class HFE.Poly64Max
Poly64Max.array2poly(int[])
Poly64Max(Poly64Max) - Constructor for class HFE.Poly64Max
Creates a copy from the given polynomial
Poly64Max(Poly64Max, int) - Constructor for class HFE.Poly64Max
Takes one polynomial and shifts it by the given shift.
Poly64Max(Random) - Constructor for class HFE.Poly64Max
Generates a polynomial with random coefficients.
polyInt() - Method in class HFE.Poly2Max
Returns the polynomial as an integer.
polyInt() - Method in class HFE.Poly4Max
Returns the polynomial as an integer.
polyInt() - Method in class HFE.Poly64Max
Returns the polynomial as an integer.
pow(Poly2Max, int) - Method in class HFE.Poly2Max
calculates this = base^by.
pow(Poly4Max, int) - Method in class HFE.Poly4Max
calculates this = base^by.
pow(Poly64Max, int) - Method in class HFE.Poly64Max
calculates this = base^by.
powMod(Poly4Max, int) - Method in class HFE.Poly4Max
Computes this = (base^by)%modul.
powMod(Poly64Max, int) - Method in class HFE.Poly64Max
Computes this = (base^by)%modul.
powNum(int, int) - Static method in class HFE.Poly64Max
Computes (num^by) in F_64.
privatePoly - Variable in class HFE.HFE2_n
Stores the private polynomial over GF(2^n).
privatePoly - Variable in class HFE.HFE4_3
Stores the private polynomial over F_64.
publicPoly - Variable in class HFE.HFE2_n
Stores the public key in an array of polynomials.
publicPoly - Variable in class HFE.HFE4_3
Stores the public key matrix of polynomials over GF(4).

R

reduce - Variable in class HFE.Multi2Mul
Stores all the reduction steps.
reduce - Variable in class HFE.Multi4Mul
Stores all the reduction steps.
reductionTerm - Static variable in class HFE.Field2_n
Stores the reduction term as bit vector.
reductionTerm - Static variable in class HFE.HFE2_n
Central switch to change the reduction term, i.e.
regNum - Static variable in class HFE.RootFinding
number of registers in this machine.
regUsed - Variable in class HFE.RootFinding
bitvector.
resArray - Variable in class HFE.Multi2Power
Stores all the results.
resArray - Variable in class HFE.Multi4Power
Stores all the results.
resVec - Static variable in class HFE.HFE2_n
Message as a vector.
resVec - Static variable in class HFE.HFE4_3
Message as a vector.
rnd - Variable in class HFE.HFE2_n
Random number generator for signature generation
rnd(Random) - Static method in class HFE.Field2
returns a random element from Field2.
rnd(Random) - Method in class HFE.Field2_n
sets this to a random element from Field2_2.
rnd(Random) - Static method in class HFE.Field4
returns a random element from Field4.
rnd(Random) - Method in class HFE.Poly2MultiSquare
Sets all the coefficients to a random value without allocating new memory for these coefficients.
rndBit(Random) - Static method in class HFE.Field2_n
returns a random position within current Field2_n
rootBeta() - Static method in class HFE.Poly4Max
 
rootBeta() - Static method in class HFE.Poly64Max
 
rootFinder - Variable in class HFE.HFE2_n
Root finding algorithm
RootFinding - class HFE.RootFinding.
This class computes root for a given polynomial over GF(2^n).
RootFinding() - Constructor for class HFE.RootFinding
initializes all variables in this class
rootFunction() - Static method in class HFE.Poly4Max
 
rootFunction() - Static method in class HFE.Poly64Max
 
rootVec - Static variable in class HFE.HFE2_n
Message as a vector.
rowCol - Static variable in class HFE.Transform2
the number of rows and columns, which is taken from the field extension.
rowCol - Static variable in class HFE.Transform4
the number of rows and columns, which is taken from the field extension.

S

S - Variable in class HFE.RootFinding
registers for root finding algorithm.
set(int, int, int) - Method in class HFE.Matrix2
Set a single element.
set(int, int, int) - Method in class HFE.Matrix4
Set a single element.
set(Random) - Method in class HFE.Matrix2
Generats an m-by-n random matrix.
set(Random) - Method in class HFE.Matrix4
Generats an m-by-n random matrix.
setBit(int) - Method in class HFE.Field2_n
Sets bit at position where.
setCoeff(Field2_n, int) - Method in class HFE.Poly2_nMax
set coefficient at position pos _with_ copying it
setCoeff(Random, int) - Method in class HFE.Poly2_nMax
set coefficient at position pos with a random value
setCoeffs(int[]) - Method in class HFE.Poly2MultiLinear
Sets all the coefficients by the given array.
setCoeffs(int[]) - Method in class HFE.Poly2MultiSquare
Sets all the coefficients by the given array.
setCoeffs(int[]) - Method in class HFE.Poly4MultiLinear
Sets all the coefficients by the given array.
setCoeffs(int[]) - Method in class HFE.Poly4MultiSquare
Sets all the coefficients by the given array.
setElement(int[]) - Method in class HFE.Field2_n
sets field element regarding to a bit vector.
setFree(int) - Method in class HFE.RootFinding
Method for register handling.
setHashPoly() - Method in class HFE.HFE2_n
Sets the hash polynomials using a constant seed.
setMatrix(int[], int[], Matrix2) - Method in class HFE.Matrix2
Set a submatrix.
setMatrix(int[], int[], Matrix4) - Method in class HFE.Matrix4
Set a submatrix.
setMatrix(int[], int, int, Matrix2) - Method in class HFE.Matrix2
Set a submatrix.
setMatrix(int[], int, int, Matrix4) - Method in class HFE.Matrix4
Set a submatrix.
setMatrix(int, int, int[], Matrix2) - Method in class HFE.Matrix2
Set a submatrix.
setMatrix(int, int, int[], Matrix4) - Method in class HFE.Matrix4
Set a submatrix.
setMatrix(int, int, int, int, Matrix2) - Method in class HFE.Matrix2
Set a submatrix.
setMatrix(int, int, int, int, Matrix4) - Method in class HFE.Matrix4
Set a submatrix.
setModulus(Poly2_nMax) - Static method in class HFE.Poly2_nMax
Sets the private field modulus.
setModulus(Poly2Max) - Static method in class HFE.Poly2Max
Sets the private field modulus.
setModulus(Poly4Max) - Static method in class HFE.Poly4Max
Sets the private field modulus.
setModulus(Poly64Max) - Static method in class HFE.Poly64Max
Sets the private field modulus.
setOne() - Method in class HFE.Field2_n
sets this to 1
setRowZero(int) - Method in class HFE.Matrix2
Set a row elementwise zero.
setRowZero(int) - Method in class HFE.Matrix4
Set a row elementwise zero.
setZero() - Method in class HFE.Field2_n
sets this to zero
setZero() - Method in class HFE.Poly2Max
Sets all the coefficients to zero by allocating new memory
setZero() - Method in class HFE.Poly2MultiLinear
Sets all the coefficients to zero
setZero() - Method in class HFE.Poly2MultiSquare
Sets all the coefficients to zero without allocating new memory.
setZero() - Method in class HFE.Poly2_nMax
Sets all the coefficients to zero without allocating new memory
setZero() - Method in class HFE.Poly4Max
Sets all the coefficients to zero by allocating new memory
setZero() - Method in class HFE.Poly4MultiLinear
Sets all the coefficients to zero
setZero() - Method in class HFE.Poly4MultiSquare
Sets all the coefficients to zero without allocating new memory.
setZero() - Method in class HFE.Poly64Max
Sets all the coefficients to zero by allocating new memory
shiftL() - Method in class HFE.Field2_n
this <<= 1 - therefore computes a left shift of this by one bit.
shiftL(int) - Method in class HFE.Poly2_nMax
Shifts the current polynomial by the given number of places.
shiftLMod() - Method in class HFE.Field2_n
this <<= 1 % i(t) - therefore computes a left shift of this by one bit and reduces the result by the generating polynomials i(t).
shiftR() - Method in class HFE.Field2_n
this >>= 1 - therefore computes a right shift of this by one bit.
signatureLength - Static variable in class HFE.HFE2_n
Holds the number of bits for a signature.
sigTmpVec - Static variable in class HFE.HFE2_n
Hash of message as a vector.
size - Static variable in class HFE.Field2_n
determinates the size of elements of this class.
solve(int[], int[]) - Method in class HFE.LUDecomposition2
Solve A*x = b, i.e.
solve(int[], int[]) - Method in class HFE.LUDecomposition4
Solve A*x = b, i.e.
solve(Matrix2) - Method in class HFE.LUDecomposition2
Solve A*X = B
solve(Matrix4) - Method in class HFE.LUDecomposition4
Solve A*X = B
speedIt() - Static method in class HFE.HFE2_n
 
speedIt() - Static method in class HFE.HFE4_3
 
speedIt() - Static method in class HFE.Poly2_nMax
 
square - Variable in class HFE.RootFinding
array of squares mod Poly.
squareMod(Poly2_nMax, Poly2_nMax, int) - Method in class HFE.Poly2_nMax
Calculates this = in^2 mod modul and used the fact that characteristic p=2 for GF(2^n) which means that squaring in GF(2^n) is cheaper than multiplication.
squareMul_tmp - Static variable in class HFE.Poly2_nMax
local variable for squareMod.
squareMul_tmpCoeff - Static variable in class HFE.Poly2_nMax
local variable for squareMod.
stringIt() - Method in class HFE.Field2_n
converts this to a string
stringIt() - Method in class HFE.Poly2_nMax
transfer the polynomial to a string
sub(Field2_n) - Method in class HFE.Field2_n
this -= ter Adds two numbers using the xor function for intergers.
sub(Field2_n, Field2_n) - Method in class HFE.Field2_n
this = ter1 - ter2 Subtracts two numbers using the xor function for intergers.
sub(int, int) - Static method in class HFE.Field2
Subtracts two numbers using the xor function for intergers.
sub(int, int) - Static method in class HFE.Field4
Subtracts two numbers using the xor function for intergers.
sub(Matrix2) - Method in class HFE.Matrix2
C = A - B
sub(Matrix4) - Method in class HFE.Matrix4
C = A - B
sub(Poly2MultiLinear) - Method in class HFE.Poly2MultiLinear
calculate this -= whom as polynomial subtraction
sub(Poly2MultiLinear, Poly2MultiLinear) - Method in class HFE.Poly2MultiLinear
calculates this = a - b as polynomial subtraction
sub(Poly2MultiSquare) - Method in class HFE.Poly2MultiSquare
calculate this -= whom as polynomial subtraction
sub(Poly2MultiSquare, Poly2MultiSquare) - Method in class HFE.Poly2MultiSquare
calculates this = a - b as polynomial subtraction
sub(Poly4MultiLinear) - Method in class HFE.Poly4MultiLinear
calculate this -= whom as polynomial subtraction
sub(Poly4MultiLinear, Poly4MultiLinear) - Method in class HFE.Poly4MultiLinear
calculates this = a - b as polynomial subtraction
sub(Poly4MultiSquare) - Method in class HFE.Poly4MultiSquare
calculate this -= whom as polynomial subtraction
sub(Poly4MultiSquare, Poly4MultiSquare) - Method in class HFE.Poly4MultiSquare
calculates this = a - b as polynomial subtraction
subEquals(Matrix2) - Method in class HFE.Matrix2
A -= B
subEquals(Matrix4) - Method in class HFE.Matrix4
A -= B

T

tau_inverse(int) - Static method in class HFE.Poly2MultiSquare
Calulates the number of variables for a given number of terms t.
tau_inverse(int) - Static method in class HFE.Poly4MultiSquare
Calulates the number of variables for a given number of terms t.
tau(int) - Static method in class HFE.Poly2MultiSquare
Calulates the number of terms for a given number of variables n by using the formula ((n+1)*(n+2))/2.
tau(int) - Static method in class HFE.Poly4MultiSquare
Calulates the number of terms for a given number of variables n by using the formula ((n+1)*(n+2))/2.
testIt() - Static method in class HFE.Field2
Tests the functionality of the whole class.
testIt() - Static method in class HFE.Field2_n
Tests the functionality of the whole class.
testIt() - Static method in class HFE.Field4
Tests the functionality of the whole class.
testIt() - Static method in class HFE.HFE2_n
Tests the functionality of the whole class.
testIt() - Static method in class HFE.HFE4_3
Tests the functionality of the whole class.
testIt() - Static method in class HFE.LUDecomposition2
Tests the functionality of the whole class.
testIt() - Static method in class HFE.LUDecomposition4
Tests the functionality of the whole class.
testIt() - Static method in class HFE.Matrix2
Tests the functionality of the whole class.
testIt() - Static method in class HFE.Matrix4
Tests the functionality of the whole class.
testIt() - Static method in class HFE.Multi2Mul
Tests the functionality of the class.
testIt() - Static method in class HFE.Multi2Power
Tests the functionality of the class.
testIt() - Static method in class HFE.Multi4Mul
Tests the functionality of the class.
testIt() - Static method in class HFE.Multi4Power
Tests the functionality of the class.
testIt() - Static method in class HFE.Poly2Max
Tests the functionality for the whole class.
testIt() - Static method in class HFE.Poly2MultiLinear
Tests the functionality for the whole class.
testIt() - Static method in class HFE.Poly2MultiSquare
Tests the functionality for the whole class.
testIt() - Static method in class HFE.Poly2_nMax
Tests the functionality for the whole class.
testIt() - Static method in class HFE.Poly4Max
Tests the functionality for the whole class.
testIt() - Static method in class HFE.Poly4MultiLinear
Tests the functionality for the whole class.
testIt() - Static method in class HFE.Poly4MultiSquare
Tests the functionality for the whole class.
testIt() - Static method in class HFE.Poly64Max
Tests the functionality for the whole class.
testIt() - Static method in class HFE.RootFinding
Tests the functionality of the whole class.
testIt() - Static method in class HFE.Transform2
Tests the functionality of the class.
testIt() - Static method in class HFE.Transform4
Tests the functionality of the class.
textVec - Static variable in class HFE.HFE2_n
Message as a vector.
textVec - Static variable in class HFE.HFE4_3
Message as a vector.
tmpElem - Variable in class HFE.HFE2_n
Temporary register [element of GF(2^n)].
tmpRoot - Variable in class HFE.RootFinding
temporary register for roots
transform(int[], int[]) - Method in class HFE.Transform2
applies the transformation to a given vector, i.e.
transform(int[], int[]) - Method in class HFE.Transform4
applies the transformation to a given vector, i.e.
transform(Poly2MultiSquare[]) - Method in class HFE.Transform2
Applies the transformation to a given vector of polynomials, i.e.
transform(Poly4MultiSquare[]) - Method in class HFE.Transform4
Applies the transformation to a given vector of polynomials, i.e.
Transform2 - class HFE.Transform2.
Transform2 provides a affine transformation (i.e.
Transform2() - Constructor for class HFE.Transform2
Generates a affine transformation which is the identity, i.e.
Transform2(Random) - Constructor for class HFE.Transform2
Generates a affine transformation using a PRNG
Transform4 - class HFE.Transform4.
Transform4 provides a affine transformation (i.e.
Transform4() - Constructor for class HFE.Transform4
Generates a affine transformation which is the identity, i.e.
Transform4(Random) - Constructor for class HFE.Transform4
Generates a affine transformation using a PRNG
transpose() - Method in class HFE.Matrix2
Matrix transpose.
transpose() - Method in class HFE.Matrix4
Matrix transpose.
transS - Variable in class HFE.HFE2_n
Transformation S in HFE
transS - Variable in class HFE.HFE4_3
Transformation S in HFE
transT - Variable in class HFE.HFE2_n
Transformation T in HFE
transT - Variable in class HFE.HFE4_3
Transformation T in HFE

U

untransform(int[], int[]) - Method in class HFE.Transform2
reverts the transformation to a given vector, i.e.
untransform(int[], int[]) - Method in class HFE.Transform4
reverts the transformation to a given vector, i.e.

V

valSign(int[], int[]) - Method in class HFE.HFE2_n
Validates if given signature sig is valid or not.
value - Variable in class HFE.Poly2Max
Current value of the polynomial.
value - Variable in class HFE.Poly2_nMax
Current value of the polynomial.
value - Variable in class HFE.Poly4Max
Current value of the polynomial.
value - Variable in class HFE.Poly64Max
Current value of the polynomial.
valueVec - Static variable in class HFE.HFE2_n
Message in a special format as a vector.
valueVec - Static variable in class HFE.HFE4_3
Message in a special format as a vector.
varNum - Variable in class HFE.Poly2MultiLinear
The number of variables in this polynomial.
varNum - Variable in class HFE.Poly2MultiSquare
The number of variables in this polynomial.
varNum - Variable in class HFE.Poly4MultiLinear
The number of variables in this polynomial.
varNum - Variable in class HFE.Poly4MultiSquare
The number of variables in this polynomial.
vec2int(int[]) - Static method in class HFE.HFE4_3
computes an vector of integers out of one integer

W

writeDivTab() - Static method in class HFE.Poly64Max
Produce the division table by using mulNumByPoly and Field64_Tab.inverseTab.
writeInverseTab() - Static method in class HFE.Poly64Max
Produce the table with the multiplicative inverses of every element by using mulNumByPoly.
writeMulTab() - Static method in class HFE.Poly64Max
Produce the multiplication table by using mulNumByPoly.
writeString() - Method in class HFE.Poly2Max
Writes the polynomial as a string to stdout
writeString() - Method in class HFE.Poly2MultiLinear
Writes the polynomial as a string to stdout
writeString() - Method in class HFE.Poly2MultiSquare
Writes the polynomial as a string to stdout
writeString() - Method in class HFE.Poly4Max
Writes the polynomial as a string to stdout
writeString() - Method in class HFE.Poly4MultiLinear
Writes the polynomial as a string to stdout
writeString() - Method in class HFE.Poly4MultiSquare
Writes the polynomial as a string to stdout
writeString() - Method in class HFE.Poly64Max
Writes the polynomial as a string to stdout
writeString() - Method in class HFE.Transform2
Writes the current transformation to stdout
writeString() - Method in class HFE.Transform4
Writes the current transformation to stdout

X

xorBit(int) - Method in class HFE.Field2_n
xors the bit at position where.

A C D E F G H I L M N P R S T U V W X