Bouncy Castle Cryptography Library 1.79

org.bouncycastle.pqc.legacy.crypto.rainbow.util
Class GF2Field

java.lang.Object
  |
  +--org.bouncycastle.pqc.legacy.crypto.rainbow.util.GF2Field

public class GF2Field
extends java.lang.Object

This 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
static int MASK
           
 
Constructor Summary
GF2Field()
           
 
Method Summary
static short addElem(short x, short y)
          This function calculates the sum of two elements as an operation in GF2^8
static short getExp(short x)
          This function returns the values of exps-lookup table which correspond to the input
static short getLog(short x)
          This function returns the values of logs-lookup table which correspond to the input
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.
static short multElem(short x, short y)
          This function multiplies two elements in GF2^8.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MASK

public static final int MASK
Constructor Detail

GF2Field

public GF2Field()
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 added
y - 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

Bouncy Castle Cryptography Library 1.79