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.
| Modifier and Type | Field and Description |
|---|---|
| pack-priv static final short[] | |
| pack-priv static final short[] | |
| public static final int |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public static short | Returns: the sum of the two elements x and y in GF2^8the first element that is to be added x, short the second element that should be add y)This function calculates the sum of two elements as an operation in GF2^8 |
| public static short | Returns: exps-value, corresponding to the inputthe index in the lookup table exps x)This function returns the values of exps-lookup table which correspond to the input |
| public static short | Returns: logs-value, corresponding to the inputthe index in the lookup table logs x)This function returns the values of logs-lookup table which correspond to the input |
| public static short | Returns: the multiplicative inverse of the given element, in case it exists or 0, otherwisethe element which multiplicative inverse is to be computed 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. |
| public static short | Returns: the product of the two input elements in GF2^8.the first element to be multiplied. x, short the second element to be multiplied. y)This function multiplies two elements in GF2^8. |
| exps | back to summary |
|---|---|
| pack-priv static final short[] exps | |
| logs | back to summary |
|---|---|
| pack-priv static final short[] logs | |
| MASK | back to summary |
|---|---|
| public static final int MASK | |
| GF2Field | back to summary |
|---|---|
| public GF2Field() | |
| addElem | back to summary |
|---|---|
| public static short addElem(short x, short y) This function calculates the sum of two elements as an operation in GF2^8
| |
| getExp | back to summary |
|---|---|
| public static short getExp(short x) This function returns the values of exps-lookup table which correspond to the input
| |
| getLog | back to summary |
|---|---|
| public static short getLog(short x) This function returns the values of logs-lookup table which correspond to the input
| |
| invElem | back to summary |
|---|---|
| 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.
| |
| multElem | back to summary |
|---|---|
| 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.
| |