Flexible galois field multiplier
First Claim
1. A method for multiplying two elements of a finite field, the method comprising the steps of:
- mapping two input operands into a composite finite field that is defined by a first irreducible polynomial of degree m*n, the first irreducible polynomial being defined by using a ground field that is defined by a second irreducible polynomial of degree n and by using an extension field that is defined by a third irreducible polynomial of degree m;
performing an initial KOA processing upon the two input operands in order to prepare the two input operands for multiplication in the ground field; and
performing multiplication in the ground field using a triangular basis multiplier.
1 Assignment
0 Petitions
Accused Products
Abstract
A flexible Galois Field multiplier is provided which implements multiplication of two elements within a finite field defined by a degree and generator polynomial. One preferred embodiment provides a method for multiplying two elements of a finite field. According to the method, two input operands are mapped into a composite finite field, an initial KOA processing is performed upon the two operands in order to prepare the two operands for a multiplication in the ground field, the multiplication in the ground field is performed through the use of a triangular basis multiplier, and final KOA3 processing and optional modulo reduction processing is performed to produce the result. This design allows rapid redefinition of the degree and generator polynomial used for the ground field and the extension field.
32 Citations
32 Claims
-
1. A method for multiplying two elements of a finite field, the method comprising the steps of:
-
mapping two input operands into a composite finite field that is defined by a first irreducible polynomial of degree m*n, the first irreducible polynomial being defined by using a ground field that is defined by a second irreducible polynomial of degree n and by using an extension field that is defined by a third irreducible polynomial of degree m;
performing an initial KOA processing upon the two input operands in order to prepare the two input operands for multiplication in the ground field; and
performing multiplication in the ground field using a triangular basis multiplier. - View Dependent Claims (2, 3, 4)
-
-
5. A method for multiplying two elements of a finite field, the method comprising the steps of:
-
mapping two input operands into a composite finite field that is defined by a first irreducible polynomial of degree m*n, the first irreducible polynomial being defined by using a ground field that is defined by a second irreducible polynomial of degree n and by using an extension field that is defined by a third irreducible polynomial of degree m;
performing an initial KOA processing upon each of the two input operands in order to prepare the two input operands for multiplication in the ground field, the initial KOA processing being divided into a plurality of uniform subsets such that the uniform subsets are scalable for processing of different values of m used to define the extension field; and
performing a subsequent multiplication processing upon a result of the initial KOA processing to produce a multiplicative product over the composite finite field. - View Dependent Claims (6, 7)
-
-
8. A Galois field multiplier comprising:
-
an input operand mapper for mapping two input operands into a composite finite field that is defined by a first irreducible polynomial of degree m*n, the first irreducible polynomial being defined by using a ground field that is defined by a second irreducible polynomial of degree n and by using an extension field that is defined by a third irreducible polynomial of degree m;
an initial KOA processor for performing an initial KOA processing upon the two input operands in order to prepare the two input operands for multiplication in the ground field; and
a triangular basis ground field multiplier for performing multiplication in the ground field. - View Dependent Claims (9, 10, 11)
-
-
12. A finite field data multiplier for multiplying two elements of a finite field, the multiplier comprising:
-
an input operand mapper for mapping two input operands into a composite finite field that is defined by a first irreducible polynomial of degree m*n, the first irreducible polynomial being defined by using a ground field that is defined by a second irreducible polynomial of degree n and by using an extension field that is defined by a third irreducible polynomial of degree m;
an initial KOA processor for performing an initial KOA processing upon each of the two input operands in order to prepare the two input operands for multiplication in the ground field, the initial KOA processor dividing the input operands into a plurality of uniform subsets such that the uniform subsets are scalable for processing of different values of m used to define the extension field; and
a multiplier means for performing a subsequent multiplication processing upon a result from the initial KOA processor to produce a multiplicative product over the composite finite field. - View Dependent Claims (13, 14)
-
-
15. A machine-readable medium encoded with a program for multiplying two elements of a finite field, said program containing instructions for performing the steps of:
-
mapping two input operands into a composite finite field that is defined by a first irreducible polynomial of degree m*n, the first irreducible polynomial being defined by using a ground field that is defined by a second irreducible polynomial of degree n and by using an extension field that is defined by a third irreducible polynomial of degree m;
performing an initial KOA processing upon the two input operands in order to prepare the two input operands for multiplication in the ground field; and
performing multiplication in the ground field using a triangular basis multiplier. - View Dependent Claims (16, 17)
-
-
18. A machine-readable medium encoded with a program for multiplying two elements of a finite field, said program containing instructions for performing the steps of:
-
mapping two input operands into a composite finite field that is defined by a first irreducible polynomial of degree m*n, the first irreducible polynomial being defined by using a ground field that is defined by a second irreducible polynomial of degree n and by using an extension field that is defined by a third irreducible polynomial of degree m;
performing an initial KOA processing upon each of the two input operands in order to prepare the two input operands for multiplication in the ground field, the initial KOA processing being divided into a plurality of uniform subsets such that the uniform subsets are scalable for processing of different values of m used to define the extension field; and
performing a subsequent multiplication processing upon a result of the initial KOA processing to produce a multiplicative product over the composite finite field. - View Dependent Claims (19)
-
-
20. A method for multiplying two elements of a finite field that is redefinable, the method comprising the steps of:
-
switching data bit ordering of a plurality of data bits representing a first multiplicand, such that a most significant bit of the first multiplicand is placed into a rightmost position regardless of the number of bits in the plurality of data bits representing the first multiplicand, successively less significant bits are placed into successive bits to the left of the most significant bit, and unused bits are set to zero;
converting the first multiplicand from an initial basis into a triangular basis;
switching data bit ordering of a plurality of coefficient bits representing each of a plurality of coefficients in a Galois Field generator polynomial that defines a Galois Field over which multiplication is to be performed, such that a most significant bit of each of the coefficients is placed into a rightmost position regardless of the number of bits in the plurality of coefficient bits, successively less significant bits are placed into successive bits to the left of the most significant bit, and unused bits are set to zero;
performing multiplication based upon at least the first multiplicand and a second multiplicand to produce a multiplication result; and
converting the multiplication result from triangular basis to the initial basis. - View Dependent Claims (21, 22, 23)
-
-
24. A flexible Galois field multiplier for multiplying two elements of a finite field that is redefinable, the multiplier comprising:
-
a first switching circuit for switching data bit ordering of a plurality of data bits representing a first multiplicand, the first switching circuit placing a most significant bit of the first multiplicand into a rightmost position regardless of the number of bits in the plurality of data bits representing the first multiplicand, placing successively less significant bits into successive bits to the left of the most significant bit, and setting unused bits to zero;
a first basis converter for converting the first multiplicand from an initial basis into a triangular basis;
a second switching circuit for switching data bit ordering of a plurality of coefficient bits representing each of a plurality of coefficients in a Galois Field generator polynomial that defines a Galois Field over which multiplication is to be performed, the second switching circuit placing a most significant bit of each of the coefficients into a rightmost position regardless of the number of bits in the plurality of coefficient bits, placing successively less significant bits into successive bits to the left of the most significant bit, and setting unused bits to zero;
a multiplier for performing multiplication based upon at least the first multiplicand and a second multiplicand to produce a multiplication result; and
a second basis converter for converting the multiplication result from triangular basis to the initial basis. - View Dependent Claims (25, 26)
-
-
27. A modulo reduction processor for performing modulo reduction within a finite field of an unreduced data element, the finite field having a dimension equal to an integer multiple of n, the modulo reduction processor comprising:
-
a reduction matrix generator;
a matrix restructurer for restructuring the reduction matrix into a column vector, such that each element of the column vector is a quantity including one or more values that each are up to n bits in length; and
a reducer for reducing the data element by performing a combination of the data element and the column vector. - View Dependent Claims (28, 29)
-
-
30. A machine-readable medium encoded with a program for performing modulo reduction within a finite field of an unreduced data element, the finite field having a dimension equal to an integer multiple of n, said program containing instructions for performing the steps of:
-
generating a reduction matrix;
restructuring the reduction matrix into a column vector, each element of the column vector being a quantity including one or more values that each are up to n bits in length; and
reducing the data element by performing a combination of the data element and the column vector. - View Dependent Claims (31, 32)
-
Specification