Method and apparatus for finite field multiplication
First Claim
1. A computer system for determining the product of two finite field elements B and C modulo an irreducible polynomial f1 (x), wherein the finite field elements B and C are represented in terms of an optimal normal basis (ONB) of Type 1 over a field F2.spsb.n and said irreducible polynomial f1 (x) being of degree n, comprising:
- (a) a memory containing a first vector of binary digits bi, where bi is a co-efficient of the ith basis element of said ONB representation of element B, arranged in polynomial order;
a second vector of binary digits ci, where ci is a co-efficient the ith basis element of said ONB representation of element C, arranged in polynomial order;
a computer program having functions for invocation, said functions for computing a partial product of a multiplier with a multiplicand and for reducing said partial product by a multiple of said irreducible polynomials f1 (x);
(b) a control program for invoking said functions; and
(c) a processor for running said computer program.
4 Assignments
0 Petitions
Accused Products
Abstract
A method of computing the product D of two finite field elements B and C modulo an irreducible polynomial f1 (x), wherein the finite field elements B and C are represented in terms of an optimal normal basis (ONB) of Type 1 over a field F2.spsb.n and the irreducible polynomial f1 (x) being of degree n, which comprises the steps of representing the element B as a vector of binary digits bi, where bi is a co-efficient of an ith basis element of the ONB representation of element B, in polynomial order, representing the element C as a vector of binary digits ci, where ci is a co-efficient of an ith basis element of the ONB representation of element C, arranged in polynomial order, initializing a register A, selecting a digit ci of the vector C, computing a partial product vector A of the ith digit ci of the element C and the vector B, adding the partial product to the register A, shifting the register A, reducing the partial product A by a multiple f2 (x) of the irreducible polynomial f1 (x) if bits in a position above n are set, storing the reduced partial product in the register A, repeating for each successive bit of the vector C and upon completion the register A containing a final product vector; and reducing the final product vector A by the irreducible polynomial f1 (x) if an nth bit of the register is set. The reduction step by the multiple of the irreducible polynomial simply involves a shift operation performed on the partial products.
-
Citations
18 Claims
-
1. A computer system for determining the product of two finite field elements B and C modulo an irreducible polynomial f1 (x), wherein the finite field elements B and C are represented in terms of an optimal normal basis (ONB) of Type 1 over a field F2.spsb.n and said irreducible polynomial f1 (x) being of degree n, comprising:
-
(a) a memory containing a first vector of binary digits bi, where bi is a co-efficient of the ith basis element of said ONB representation of element B, arranged in polynomial order; a second vector of binary digits ci, where ci is a co-efficient the ith basis element of said ONB representation of element C, arranged in polynomial order; a computer program having functions for invocation, said functions for computing a partial product of a multiplier with a multiplicand and for reducing said partial product by a multiple of said irreducible polynomials f1 (x); (b) a control program for invoking said functions; and (c) a processor for running said computer program.
-
-
2. A method of determining the product of two finite field elements B and C modulo an irreducible polynomial f1 (x) in a computer system having a computer program with functions for invocation and a control program for invoking said functions, said finite field elements B and C being represented in terms of an optimal normal basis of Type 1 over a field of F2.spsb.n and said irreducible polynomial f1 (x) being of degree n, and said field elements B and C being represented as a vector of binary digits, each digit being the co-efficient of the elements arranged in polynomial order, said method comprising:
-
(a) invoking a function to compute the partial product of said element B with a selected digit of said element C; (b) monitoring an overflow bit of said partial products; (c) invoking a function for reducing said partial products by a multiple f2 (x) of the irreducible f1 (x) when said overflow occurs and deriving a reduced partial product therefrom; (d) adding said reduced partial product to said successive partial product; (e) continuing said steps (c) and (d) for successive digits of said element C to derive a final product; (f) reducing said final product by said irreducible f1 (x) if said nth bit is set.
-
-
3. A method of computing the product D of two finite field elements B and C modulo an irreducible polynomial f1 (x), wherein the finite field elements B and C are represented in terms of an optimal normal basis (ONB) of Type 1 over a field F2.spsb.n and said irreducible polynomial f1 (x) being of degree n, said method comprising the steps of:
-
(a) representing the element B as a vector of binary digits bi, where bi is a co-efficient of an ith basis element of said ONB representation of element B, in polynomial order; (b) representing said element C as a vector of binary digits ci, where ci is a co-efficient of an ith basis element of said ONB representation of element C, arranged in polynomial order; (c) initializing a register A; (d) selecting a digit ci of said vector C; (e) computing a partial product vector A of said ith digit ci of said element C and the vector B; (f) adding said partial product to said register A; (g) shifting said register A (h) reducing said partial product A by a multiple f2 (x) of the irreducible polynomial f1 (x) if bits in a position above n are set; (i) storing said reduced partial product in said register A; (j) repeating said steps (e) to (h) for each of said successive bit of said vector C and upon completion said register A containing a final product vector; and (k) reducing said final product vector A by said irreducible polynomial f1 (x) if an nth bit of said register is set. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A finite field multiplier for computing the product D of two finite field elements B and C modulo an irreducible polynomial f1 (x), wherein the finite field elements B and C are represented in terms of an optimal normal basis (ONB) of Type 1 over a field F2.spsb.n and said irreducible polynomial f1 (x) being of degree n, comprising:
-
a) a register B for holding the digits bi of a vector of binary digits bi, where bi is a co-efficient of an ith basis element of said ONB representation of said element B, arranged in polynomial order; b) an shift register A for holding a result of said computation and of size at least greater than the degree n of the finite field and for shifting its contents in response to a shift control signal; c) means for sequentially selecting digits ci of a vector of binary digits ci, where ci is a co-efficient of an ith basis element of said ONB representation of said element C, arranged in polynomial order, and for generating an add control signal in response to said digit ci being set; and d) an arithmetic logic unit(ALU) having a finite field adder circuit responsive to said add control signal, for adding said register B and said register A received as vectors of binary digit inputs and outputting a result of said addition to said shift register A thereby computing a partial product vector A of said ith digit ci of said element C and the vector B while adding said result to a previous partial product in said register A and whereby said successive partial products may be reduced by a multiple f2 (x) of the irreducible polynomial f1 (x) if bits (n+1) or greater are set by shifting said upper (n+1) bits to a lowermost (n+1) bits of said register A;
said reduced partial products being computed for successive components of said vector C and upon completion said register A containing a final product vector and said final product vector A being reduced by said irreducible polynomial f1 (x) if an nth bit of said register is set by applying said complement signal such that said register A represents said product of said two finite field elements B and C modulo f1 (x).
-
-
16. A method of squaring a finite element B modulo an irreducible polynomial f1 (x), wherein the finite field elements B is represented in terms of an optimal normal basis (ONB) of Type 1 over a field F2.spsb.n and said irreducible polynomial f1 (x) being of degree n, said method comprising the steps of:
-
a) representing the element B as a vector of binary digits bi, where bi is a co-efficient the ith basis element of said ONB representation of element B, arranged in polynomial order; b) interleaving the binary digits of the representation of element B with zero digits to derive a square thereof; c) storing in successive cells of a 2n cell shift register the binary digits of the interleaved representation of the element B; d) reducing said square by a multiple f2 (x) of the irreducible polynomial f1 (x). - View Dependent Claims (17)
-
-
18. A method of squaring a finite element B modulo an irreducible polynomial f1 (x), wherein the finite field elements B is represented in terms of an optimal normal basis (ONB) of Type 1 over a field F2.spsb.n and said irreducible polynomial f1 (x) being of degree n, said method comprising the steps of:
-
a) representing the element B as a vector of n binary digits bi, where bi is a co-efficient the ith basis element of said ONB representation of element B, arranged in decreasing polynomial order; b) selecting successive word length sets of said representation; c) interleaving the binary digits of each said words with zero digits; d) storing an xor of alternate sets of interleaved words in a register for all such sets; and e) permuting said stored words to derive a square of said element B therefrom.
-
Specification