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.
add(AffinePolyVec) - Method in class HFE.AffinePolyVec
calculate this += whom as polynomial addition
add(AffinePolyVec) - Method in class HFE.SquarePolyVec
calculate this += whom as polynomial addition
add(AffinePolyVec, AffinePolyVec) - Method in class HFE.AffinePolyVec
calculates this = a + b as polynomial addition
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) - Method in class HFE.Poly2MultiSquare
calculate this[i] += whom in terms of coefficient addition
add(Matrix2) - Method in class HFE.Matrix2
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(SquarePolyVec) - Method in class HFE.SquarePolyVec
calculate this += whom as polynomial addition
add(SquarePolyVec, SquarePolyVec) - Method in class HFE.SquarePolyVec
calculates this = a + b as polynomial addition
addEquals(Matrix2) - Method in class HFE.Matrix2
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.
addModul() - Method in class HFE.Field2_n
this += generating polynomial Adds the modul to this.
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, int) - Method in class HFE.Matrix2
A[i] += f*A[j].
AffinePolyVec - class HFE.AffinePolyVec.
This class provides a vector of polynomials of degree one in n independent variables.
AffinePolyVec() - Constructor for class HFE.AffinePolyVec
Initializes all coefficients to zero.
AffinePolyVec(AffinePolyVec) - Constructor for class HFE.AffinePolyVec
Creates a copy from the given polynomial.
AffinePolyVec(Transform2) - Constructor for class HFE.AffinePolyVec
AffinePolyVec.transform2poly(HFE.Transform2)
allocMem() - Method in class HFE.Poly2_nMax
Allocates new memory.
apply(Field2_n, Field2_n) - Method in class HFE.AffinePolyVec
Evaluate the polynomial using the given value vector
apply(Field2_n, Field2_n) - Method in class HFE.SquarePolyVec
Evaluate the polynomial using the given value vector The entry value[0] is _not_ uses, value[1] is the first valid entry.
apply(Field2_n, int[]) - Method in class HFE.AffinePolyVec
Evaluate the polynomial using the given value vector The entry value[0] is _not_ uses, value[1] is the first valid entry.
apply(Field2_n, int[]) - Method in class HFE.SquarePolyVec
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.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[], 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.
applyLinear(Field2_n, Field2_n) - Method in class HFE.AffinePolyVec
Evaluate the polynomial using the given value vector.
applyPoly(Field2_n) - Method in class HFE.Poly2_nMax
Uses the given polynomial as a function.
applyQL(Field2_n, Field2_n) - Method in class HFE.Poly2_nMax
res = P(num) Assumes that the polynomial has a special form, namely no constant term, and all other terms have a power of Hamming weight 2 at most.
aqlTmp - Static variable in class HFE.Poly2_nMax
register for the use in applyQL.
aqlTmp2 - Static variable in class HFE.Poly2_nMax
register for the use in applyQL.
aqlVec - Static variable in class HFE.Poly2_nMax
registers for the use in applyQL.
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.
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)
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
Collects the roots.
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.
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.
coeff - Variable in class HFE.AffinePolyVec
Coefficients for the variables.
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.SquarePolyVec
Coefficients for the variables.
coeff(int) - Method in class HFE.AffinePolyVec
Returns the coefficients for a given variable.
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.SquarePolyVec
Returns the coefficients for a given variable.
coeffNum - Static variable in class HFE.SquarePolyVec
The number of coefficients in this polynomial
coeffs() - Method in class HFE.AffinePolyVec
returns the coefficient array without copying it.
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.SquarePolyVec
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(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.
copy(SquarePolyVec) - Method in class HFE.SquarePolyVec
Copies the coefficients from another polynomial vector
copyShift(Poly2_nMax, int) - Method in class HFE.Poly2_nMax
Takes one polynomial and shifts it by the given shift.

D

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.
det() - Method in class HFE.LUDecomposition2
Determinant
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(Poly2_nMax, Poly2_nMax) - Method in class HFE.Poly2_nMax
Calculates this = a / b and assumes that there is _no_ remainder, i.e.
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!
dummy - Static variable in class HFE.Field2_n
dummy value, which is initialized only once.

E

elements - Static variable in class HFE.Field2
number of elements in this field
elemNum - Static variable in class HFE.AffinePolyVec
The number of rows in this vector.
elemNum - Static variable in class HFE.SquarePolyVec
The number of rows in this vector.
encryptPrivate(Field2_n, Field2_n) - 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.
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
 
findRoots(Poly2_nMax, CheckRoot) - Method in class HFE.RootFinding
finds all roots of given polynomial poly
foundRoot - Variable in class HFE.HFE2_n
signals if we found a root or not, i.e., if the root-field is valid or not.

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.
generateKeysInterpoly(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.
generateNonsingular(int, Random) - Static method in class HFE.LUDecomposition2
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.
genPolyPrivate(SecureRandom) - Static method in class HFE.HFE2_n
Generates a private polynomial for HFE.
genPolyPublic() - Method in class HFE.HFE2_n
Generats the public polynomials from the private polynomial using base transformation.
genPolyPublicInterpoly(Poly2MultiSquare[]) - Method in class HFE.HFE2_n
Generats the public polynomials from the private polynomial using polynomial interpolation.
genPolyPublicSlow() - Method in class HFE.HFE2_n
Generats the public polynomials from the private polynomial using base transformation.
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.
getArray() - Method in class HFE.Matrix2
Returns a pointer to the internal two-dimensional array.
getArrayCopy() - Method in class HFE.Matrix2
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.
getColumnPackedCopy() - Method in class HFE.Matrix2
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, int) - Method in class HFE.Matrix2
Get a submatrix.
getMatrix(int, int, int[]) - Method in class HFE.Matrix2
Get a submatrix.
getMatrix(int, int, int, int) - Method in class HFE.Matrix2
Get a submatrix.
getRowDimension() - Method in class HFE.Matrix2
Get row dimension.
getRowPackedCopy() - Method in class HFE.Matrix2
Make a one-dimensional row packed copy of the internal array.
getTransform() - Method in class HFE.Transform2
returns the transformation in terms of polynomials
getValues(int[], int[]) - Static method in class HFE.Poly2MultiSquare
Calculates the square values using the linear values.
giveFree() - Method in class HFE.RootFinding
Method for register handling.
givePower(int) - Method in class HFE.Multi2Power
Returns the polynomial vector for a given power which.
giveVarNum() - Method in class HFE.Poly2MultiLinear
returns the number of variables for that object

H

HFE2_n - class HFE.HFE2_n.
This class is the "central class" of QuartzLight and is used for speed measurement.
HFE2_n(byte[]) - Constructor for class HFE.HFE2_n
Initializes HFE2_n 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
initAll() - Static method in class HFE.Field2_n
initializes the static variables.
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.AffinePolyVec
Allocates new memory for the coefficients.
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.SquarePolyVec
Allocates new memory for the coefficients.
int2poly(int) - Method in class HFE.Poly2Max
Sets the coefficients according to intValue.
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.Field2
Checks if a given vector consists only of Field2 elements.
isElement(int[][]) - Static method in class HFE.Field2
Checks if a given matrix consists only of Field2 elements.
isEqual(AffinePolyVec) - Method in class HFE.AffinePolyVec
Compares this and whom coefficientwise.
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(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(SquarePolyVec) - Method in class HFE.SquarePolyVec
Compares this and whom coefficientwise.
isNonsingular() - Method in class HFE.LUDecomposition2
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.

L

lu - Variable in class HFE.Transform2
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() - Method in class HFE.Matrix2
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

M

m - Variable in class HFE.LUDecomposition2
Row and column dimensions, and pivot sign.
m - Variable in class HFE.Matrix2
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.Transform2
holds the bijective matrix M for the affine transformation.
main(String[]) - Static method in class HFE.AffinePolyVec
Mainly invoces the AffinePolyVec.testIt() method.
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.HFE2_n
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.Matrix2
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.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.RootFinding
Tests everything in this class
main(String[]) - Static method in class HFE.SpeedTest
Has some speed measurements
main(String[]) - Static method in class HFE.SquarePolyVec
Mainly invoces the SquarePolyVec.testIt() method.
main(String[]) - Static method in class HFE.Transform2
Calls the Transform2.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.
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
messageSigLength - Static variable in class HFE.HFE2_n
Holds the number of bits for a message in terms of a signature.
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(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
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
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(AffinePolyVec, AffinePolyVec) - Method in class HFE.SquarePolyVec
res = fac1*fac2 in terms of affine polynomial vector multiplication
mul(AffinePolyVec, Field2_n) - Method in class HFE.AffinePolyVec
res = fac*this in terms of affine polynomial vector multiplication
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) - Method in class HFE.SquarePolyVec
this *= fac in terms of quadratic polynomial vector multiplication
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[], 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, int) - Static method in class HFE.Field2
Multiplies two numbers using finite field arithmetic in F_4.
mul(Matrix2) - Method in class HFE.Matrix2
Linear algebraic matrix multiplication, A * B.
mul(Poly2_nMax, Poly2_nMax) - Method in class HFE.Poly2_nMax
calculates this = a * b as polynomial multiplication Assumes that a.degree + b.degree < maxLen
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.
mul2(int[], Poly2MultiLinear[], Poly2MultiLinear[]) - Method in class HFE.Multi2Mul
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.
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(Poly2MultiLinear, Poly2MultiLinear) - Method in class HFE.Poly2MultiSquare
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.
mulMod(Poly2Max, Poly2Max) - Method in class HFE.Poly2Max
Computes this = (a*b)%modul.
mulSlow(AffinePolyVec, AffinePolyVec) - Method in class HFE.SquarePolyVec
res = fac1*fac2 in terms of affine polynomial vector 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
mulTmp1 - Static variable in class HFE.SquarePolyVec
Static register for multiplication of two vectors
mulTmp2 - Static variable in class HFE.SquarePolyVec
 
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.Matrix2
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.
piv - Variable in class HFE.LUDecomposition2
Internal storage of pivot vector.
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.
polyInt() - Method in class HFE.Poly2Max
Returns the polynomial as an integer.
pow(Poly2Max, int) - Method in class HFE.Poly2Max
calculates this = base^by.
privatePoly - Variable in class HFE.HFE2_n
Stores the private polynomial over GF(2^n).
publicPoly - Variable in class HFE.HFE2_n
Stores the public key in an array of polynomials.

R

reduce - Variable in class HFE.Multi2Mul
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.
resVec - Static variable in class HFE.HFE2_n
Message as a vector.
rnd - Variable in class HFE.HFE2_n
Random number generator for signature generation
rnd(Random) - Method in class HFE.AffinePolyVec
Initializes all coefficients with random bits
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) - Method in class HFE.Poly2MultiSquare
Sets all the coefficients to a random value without allocating new memory for these coefficients.
rnd(Random) - Method in class HFE.SquarePolyVec
Initializes all coefficients with random bits
rndBit(Random) - Static method in class HFE.Field2_n
returns a random position within current Field2_n
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
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.

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(Random) - Method in class HFE.Matrix2
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(Field2_n[]) - Method in class HFE.AffinePolyVec
Sets all the coefficients by the given array.
setCoeffs(Field2_n[]) - Method in class HFE.SquarePolyVec
Sets all the coefficients by the given array.
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.
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.
setMatrix(int[], int[], Matrix2) - Method in class HFE.Matrix2
Set a submatrix.
setMatrix(int[], int, int, Matrix2) - Method in class HFE.Matrix2
Set a submatrix.
setMatrix(int, int, int[], Matrix2) - Method in class HFE.Matrix2
Set a submatrix.
setMatrix(int, int, int, int, Matrix2) - Method in class HFE.Matrix2
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.
setOne() - Method in class HFE.Field2_n
sets this to 1
setRowZero(int) - Method in class HFE.Matrix2
Set a row elementwise zero.
setZero() - Method in class HFE.AffinePolyVec
Sets all the coefficients to 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.SquarePolyVec
Sets all the coefficients to zero
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(Matrix2) - Method in class HFE.LUDecomposition2
Solve A*X = B
speedIt() - Static method in class HFE.HFE2_n
Tests how fast the package runs on the current hardware.
speedIt() - Static method in class HFE.Multi2Mul
Tests how fast the package runs on the current hardware.
speedIt() - Static method in class HFE.Poly2_nMax
 
speedIt() - Static method in class HFE.SquarePolyVec
Tests how fast the package runs on the current hardware.
speedSignatureSHA_1() - Static method in class HFE.SpeedTest
Tests how fast message signature runs on the current hardware.
SpeedTest - class HFE.SpeedTest.
Holds speed test routines for QuartzLight
SpeedTest() - Constructor for class HFE.SpeedTest
 
sqr() - Method in class HFE.AffinePolyVec
Computes an affine polynomial vector which is exactly a squaring of the original one.
sqr(Field2_n) - Method in class HFE.Field2_n
this = fac^2 This algorithm is not very fast, but will be replaced by a faster algorithm in the next version
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.
SquarePolyVec - class HFE.SquarePolyVec.
This class provides a vector of polynomials of degree one in n independent variables.
SquarePolyVec() - Constructor for class HFE.SquarePolyVec
Initializes all coefficients to zero.
SquarePolyVec(AffinePolyVec) - Constructor for class HFE.SquarePolyVec
Creates a copy from the given affine polynomial.
SquarePolyVec(AffinePolyVec, AffinePolyVec) - Constructor for class HFE.SquarePolyVec
Creates a new object as the product of two given affine polynomials
SquarePolyVec(SquarePolyVec) - Constructor for class HFE.SquarePolyVec
Creates a copy from the given polynomial.
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(AffinePolyVec) - Method in class HFE.AffinePolyVec
calculate this -= whom as polynomial subtraction
sub(AffinePolyVec, AffinePolyVec) - Method in class HFE.AffinePolyVec
calculates this = a - b as polynomial subtraction
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(Matrix2) - Method in class HFE.Matrix2
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(SquarePolyVec) - Method in class HFE.SquarePolyVec
calculate this -= whom as polynomial subtraction
sub(SquarePolyVec, SquarePolyVec) - Method in class HFE.SquarePolyVec
calculates this = a - b as polynomial subtraction
subEquals(Matrix2) - Method in class HFE.Matrix2
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(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.
testIt() - Static method in class HFE.AffinePolyVec
Tests the functionality for the whole class.
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.HFE2_n
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.Matrix2
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.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.RootFinding
Tests the functionality of the whole class.
testIt() - Static method in class HFE.SquarePolyVec
Tests the functionality for the whole class.
testIt() - Static method in class HFE.Transform2
Tests the functionality of the class.
textVec - Static variable in class HFE.HFE2_n
Message as a vector.
tmpElem1 - Static variable in class HFE.HFE2_n
Temporary register [element of GF(2^n)].
tmpElem2 - Static variable in class HFE.HFE2_n
Temporary register [element of GF(2^n)].
tmpRoot - Variable in class HFE.RootFinding
temporary register for roots
tmpSqr - Static variable in class HFE.Field2_n
static values for squaring.
transform(int[], int[]) - Method in class HFE.Transform2
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(Poly2MultiSquare[], SquarePolyVec) - Method in class HFE.Transform2
Applies the transformation to a given vector of polynomials, i.e.
transform(SquarePolyVec) - Method in class HFE.Transform2
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
transform2poly(Transform2) - Method in class HFE.AffinePolyVec
Transforms an affine transformation into an affine polynomial vector.
transform2poly(Transform2) - Method in class HFE.SquarePolyVec
Transforms an affine transformation into an affine polynomial vector.
transpose() - Method in class HFE.Matrix2
Matrix transpose.
transS - Variable in class HFE.HFE2_n
Transformation S in HFE
transSpoly - Variable in class HFE.HFE2_n
Transform S in HFE in terms of affine polynomials
transT - Variable in class HFE.HFE2_n
Transformation T in HFE
transTpoly - Variable in class HFE.HFE2_n
Transform T in HFE in terms of affine polynomials

U

untransform(int[], int[]) - Method in class HFE.Transform2
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.
valueVec - Static variable in class HFE.HFE2_n
Message in a special format as a vector.
varNum - Static variable in class HFE.AffinePolyVec
The number of variables in this polynomial.
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 - Static variable in class HFE.SquarePolyVec
The number of variables in this polynomial.

W

writeString() - Method in class HFE.AffinePolyVec
Writes the polynomials as a string to stdout
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.SquarePolyVec
Writes the polynomials as a string to stdout
writeString() - Method in class HFE.Transform2
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