Class GF2Field
- java.lang.Object
-
- org.bouncycastle.pqc.crypto.rainbow.util.GF2Field
-
public class GF2Field extends java.lang.ObjectThis class provides the basic operations like addition, multiplication and finding the multiplicative inverse of an element in GF2^8.The operations are implemented using the irreducible polynomial 1+x^2+x^3+x^6+x^8 ( 1 0100 1101 = 0x14d )
This class makes use of lookup tables(exps and logs) for implementing the operations in order to increase the efficiency of Rainbow.
-
-
Field Summary
Fields Modifier and Type Field Description static intMASK
-
Constructor Summary
Constructors Constructor Description GF2Field()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static shortaddElem(short x, short y)This function calculates the sum of two elements as an operation in GF2^8static shortgetExp(short x)This function returns the values of exps-lookup table which correspond to the inputstatic shortgetLog(short x)This function returns the values of logs-lookup table which correspond to the inputstatic shortinvElem(short x)This function computes the multiplicative inverse of a given element in GF2^8 The 0 has no multiplicative inverse and in this case 0 is returned.static shortmultElem(short x, short y)This function multiplies two elements in GF2^8.
-
-
-
Field Detail
-
MASK
public static final int MASK
- See Also:
- Constant Field Values
-
-
Method Detail
-
addElem
public static short addElem(short x, short y)This function calculates the sum of two elements as an operation in GF2^8- Parameters:
x- the first element that is to be addedy- the second element that should be add- Returns:
- the sum of the two elements x and y in GF2^8
-
invElem
public static short invElem(short x)
This function computes the multiplicative inverse of a given element in GF2^8 The 0 has no multiplicative inverse and in this case 0 is returned.- Parameters:
x- the element which multiplicative inverse is to be computed- Returns:
- the multiplicative inverse of the given element, in case it exists or 0, otherwise
-
multElem
public static short multElem(short x, short y)This function multiplies two elements in GF2^8. If one of the two elements is 0, 0 is returned.- Parameters:
x- the first element to be multiplied.y- the second element to be multiplied.- Returns:
- the product of the two input elements in GF2^8.
-
getExp
public static short getExp(short x)
This function returns the values of exps-lookup table which correspond to the input- Parameters:
x- the index in the lookup table exps- Returns:
- exps-value, corresponding to the input
-
getLog
public static short getLog(short x)
This function returns the values of logs-lookup table which correspond to the input- Parameters:
x- the index in the lookup table logs- Returns:
- logs-value, corresponding to the input
-
-