System and method for efficient basis conversion
First Claim
1. A computing device comprising an accumulator for evaluating a polynomial a(x) of a finite field of characteristic 2 at an element r, said polynomial a(x) having a degree and being equivalent to a sum of a plurality of components having respective coefficients ak combined with corresponding values rk, said device being configured to:
- a) initialize said accumulator to zero;
b) obtain the values rk for odd numbers k less than said degree;
c) for each even number k less than said degree and greater than 2 which is also an exponentiation of 2, if the coefficient ak is a one, add r1 to said accumulator and square said accumulator;
d) for all other even numbers k less than said degree, if the coefficient ak is a one, add the value rk−
1 to said accumulator and square said accumulator;
e) for each odd number k greater than zero, if the coefficient ak is a one, add the corresponding value rk to said accumulator;
f) for k=0, if the coefficient a0 is a one, add the value r0 to said accumulator; and
g) output a final value in said accumulator representing a(r).
4 Assignments
0 Petitions
Accused Products
Abstract
This invention describes a method for evaluating a polynomial in an extension field FqM, wherein the method comprises the steps of partitioning the polynomial into a plurality of parts, each part is comprised of smaller polynomials using a q−th power operation in a field of characteristic q; and computing for each part components of q−th powers from components of smaller powers. A further embodiment of the invention provides for a method of converting a field element represented in terms of a first basis to its representation in a second basis, comprising the steps of partitioning a polynomial, being a polynomial in the second basis, into a plurality of parts, wherein each part is comprised of smaller polynomials using a q−th power operation in a field of characteristic q; evaluating the polynomial at a root thereof by computing for each part components of q−th powers from components of smaller powers; and evaluating the field element at the root of the polynomial.
-
Citations
18 Claims
-
1. A computing device comprising an accumulator for evaluating a polynomial a(x) of a finite field of characteristic 2 at an element r, said polynomial a(x) having a degree and being equivalent to a sum of a plurality of components having respective coefficients ak combined with corresponding values rk, said device being configured to:
-
a) initialize said accumulator to zero; b) obtain the values rk for odd numbers k less than said degree; c) for each even number k less than said degree and greater than 2 which is also an exponentiation of 2, if the coefficient ak is a one, add r1 to said accumulator and square said accumulator; d) for all other even numbers k less than said degree, if the coefficient ak is a one, add the value rk−
1 to said accumulator and square said accumulator;e) for each odd number k greater than zero, if the coefficient ak is a one, add the corresponding value rk to said accumulator; f) for k=0, if the coefficient a0 is a one, add the value r0 to said accumulator; and g) output a final value in said accumulator representing a(r). - View Dependent Claims (2, 3)
-
-
4. A method for evaluating a polynomial a(x) of a finite field of characteristic 2 at an element r, said polynomial a(x) having a degree and being equivalent to a sum of a plurality of components having respective coefficients ak combined with corresponding values rk, said method comprising the steps of:
-
a) initializing an accumulator to zero; b) obtaining the values rk for odd numbers k less than said degree; c) for each even number k less than said degree and greater than 2 which is also an exponentiation of 2, if the coefficient ak is a one, adding r1 to said accumulator and squaring said accumulator; d) for all other even numbers k less than said degree, if the coefficient ak is a one, adding the value rk−
1 to said accumulator and squaring said accumulator;e) for each odd number k greater than zero, if the coefficient ak is a one, adding the corresponding value rk to said accumulator; f) for k=0, if the coefficient a0 is a one, adding the value r0 to said accumulator; and g) providing a final value from said accumulator to a cryptographic scheme representing a(r). - View Dependent Claims (5, 6)
-
-
7. A computer readable medium comprising computer executable instructions for evaluating a polynomial a(x) of a finite field of characteristic 2 at an element r, said polynomial a(x) having a degree and being equivalent to a sum of a plurality of components having respective coefficients ak combined with corresponding values rk, said computer executable instructions comprising instructions for:
-
a) initializing an accumulator to zero; b) obtaining the values rk for odd numbers k less than said degree; for each even number k less than said degree and greater than 2 which is also an exponentiation of 2, if the coefficient ak is a one, adding r1 to said accumulator and squaring said accumulator; c) for all other even numbers k less than said degree, if the coefficient ak is a one, adding the value rk−
1 to said accumulator and squaring said accumulator;d) for each odd number k greater than zero, if the coefficient ak is a one, adding the corresponding value rk to said accumulator; e) for k=0, if the coefficient a0 is a one, adding the value r0 to said accumulator; and f) providing a final value from said accumulator to a cryptographic scheme representing a(r). - View Dependent Claims (8, 9)
-
-
10. A computer device comprising an accumulator for evaluating a polynomial a(x) of a finite field of characteristic 3 at an element r, said polynomial a(x) having a degree and being equivalent to a sum of a plurality of components having respective coefficients ak combined with corresponding values rk, said device being configured to:
-
a) initialize said accumulator to zero; b) for each number k which is less than said degree and greater than 3, and which is an exponentiation of 3, in descending order, add the coefficient ak multiplied by the value r1 to said accumulator; c) cube said accumulator; d) obtain the values rk for each number k which when multiplied by 3 a result is less than said degree and the result was not chosen in b); e) for each number k from d), add the value rk obtained in d) multiplied by the coefficient a3k to said accumulator; f) cube said accumulator; g) for all remaining coefficients ak, add the corresponding component ak rk to said accumulator; and h) output a final value in said accumulator representing a(r). - View Dependent Claims (11, 12)
-
-
13. A method for evaluating a polynomial a(x) of a finite field of characteristic 3 at an element r, said polynomial a(x) having a degree and being equivalent to a sum of a plurality of components having respective coefficients ak combined with corresponding values rk, said method comprising the steps of:
-
a) initializing an accumulator to zero; b) for each number k which is less than said degree and greater than 3, and which is also an exponentiation of 3, in descending order, adding the coefficient ak multiplied by the value r1 to said accumulator; c) cubing said accumulator; d) obtaining the values rk for each number k which when multiplied by 3 a result is less than said degree and the result was not chosen in b); e) for each number k from d), adding the value rk obtained in d) multiplied by the coefficient a3k to said accumulator; f) cubing said accumulator; g) for all remaining coefficients ak, adding the corresponding component ak rk to said accumulator; and h) outputting a final value in said accumulator representing a(r). - View Dependent Claims (14, 15)
-
-
16. A computer readable medium comprising computer executable instructions for evaluating a polynomial a(x) of a finite field of characteristic 3 at an element r, said polynomial a(x) having a degree and being equivalent to a sum of a plurality of components having respective coefficients ak combined with corresponding values rk, said computer executable instructions comprising instructions for:
-
a) initializing an accumulator to zero; b) for each number k which is less than said degree and greater than 3, and which is also an exponentiation of 3, in descending order, adding the coefficient ak multiplied by the value r1 to said accumulator; c) cubing said accumulator; d) obtaining the values rk for each number k which when multiplied by 3 a result is less than said degree and the result was not chosen in b); e) for each number k from d), adding the value rk obtained in d) multiplied by the coefficient a3k to said accumulator; f) cubing said accumulator; g) for all remaining coefficients ak, adding the corresponding component ak rk to said accumulator; and h) outputting a final value in said accumulator representing a(r). - View Dependent Claims (17, 18)
-
Specification