Claims
- 1. A method of multiplying a first polynomial and a second polynomial over GF(2m), comprising:
representing the first polynomial and the second polynomial as an array of n words, wherein n is an integer, using a recursive algorithm to decompose a multiplication of the first polynomial and the second polynomial into a weighted sum of iteratively smaller subproducts; and using a nonrecursive algorithm to complete the multiplication when a size of the smaller subproducts is less than or equal to a predetermined size, the predetermined size being at least two words.
- 2. The method of claim 1, wherein the predetermined size is six words.
- 3. The method of claim 1, wherein the recursive multiplication algorithm is a Karatsuba-Ofman algorithm.
- 4. The method of claim 1, wherein the step of using a nonrecursive multiplication algorithm includes the step of excluding pairs of redundant subproducts.
- 5. The method of claim 1, wherein the nonrecursive multiplication algorithm stores and reuses previously calculated intermediate values to determine subsequent intermediate values.
- 6. The method of claim 5, wherein the previously calculated intermediate values are used to determine a weighted sum of subproducts having weights z of the form Σj=0n−1 zi+j for i=0, . . . , n−1, wherein i and j are index integers.
- 7. The method of claim 6, wherein the subproducts having weights of Σj=0n−1 zi+j for i=0, . . . , n−1 are one-word subproducts lpi of a corresponding recursion tree, and the weighted sum of the subproducts is denoted as t, the method further comprising:
calculating a (n+1)-word polynomial h from the one-word subproducts lpi, wherein,h[0]=lp0[0],h[i]=lpi[0]+lpi−1[1], for i=1, n−m−1,h[n−m]=lpn−m−1[1],where h[i] is the ith word of h and m−1 is a degree of the first polynomial; and calculating a weighted sum t from words of h, wherein:t[i]=h[i], for i=0,t[i]=t[i−1]+h[i], for 0<i≦n−1,t[i]=h[i−n+1], for i=2n−1,t[i]=t[i+1]+h[i−n+1], for n≦i<2n−1,where t[i] is the ith word of t.
- 8. The method of claim 1, wherein at least one of the first and the second polynomials corresponds to at least a portion of a private key, and a product of the first polynomial and the second polynomial corresponds to a public key.
- 9. The method of claim 1, wherein the first polynomial and the second polynomial are cryptographic parameters and the multiplication is associated with signature generation.
- 10. The method of claim 9, wherein the signature generation is associated with an elliptic curve digital signature.
- 11. The method of claim 1, wherein the first polynomial and the second polynomial are associated with cryptographic parameters and the multiplication is associated with signature verification.
- 12. The method of claim 11, wherein the signature verification is associated with an elliptic curve digital signature.
- 13. A computer-readable medium, comprising instructions for performing the method of claim 1.
- 14. A method of multiplying a first polynomial and a second polynomial over GF(2m):
representing the first polynomial and the second polynomial as n words, wherein n is an integer greater than one; determining a partial result by calculating a weighted sum of one-word subproducts having weights z of a form Σj=0n−1 zi+j for i=0, . . . , n−1, wherein i and j are index integers; and updating the partial result by adding remaining one-word subproducts.
- 15. The method of claim 14, further comprising identifying and excluding pairs of redundant one-word subproducts.
- 16. The method of claim 14, wherein the determining the partial result comprises:
storing intermediate calculations in a memory; and reusing the stored intermediate calculations.
- 17. The method of claim 14, wherein the one-word subproducts are denoted as leaf-products lpi, and the determining the partial result comprises:
calculating a (n+1)-word polynomial h from the leaf-products lpi, wherein,h[0]=lp0[0],h[i]=lpi[0]+lpi−1[1], for i=1, . . . , n−m−1,h[n−m]=lpn−m−1[1],where h[i] is the ith word of h and m−1 is a degree of the first polynomial; and calculating a weighted sum t from words of h, wherein:t[i]=h[i], for i=0,t[i]=t[i−1]+h[i], for 0<i≦n−1,t[i]=h[i−n+1], for i=2n−1,t[i]=t[i+1]+h[i−n+1], for n≦i<2n−1,where t[i] is the ith word of t.
- 18. The method of claim 14, wherein at least one of the first and the second polynomials is associated with a private key, and a product of the first polynomial and the second polynomial is associated with a public key.
- 19. The method of claim 14, wherein the first polynomial and the second polynomial are cryptographic parameters and the multiplication is associated with signature generation.
- 20. The method of claim 19, wherein the signature generation is associated with an elliptic curve digital signature.
- 21. The method of claim 14, wherein the first polynomial and the second polynomial are cryptographic parameters and the multiplication is associated with signature verification.
- 22. The method of claim 21, wherein the signature verification process is associated with an elliptic curve digital signature.
- 23. A computer-readable medium, comprising instructions for performing the method of claim 14.
- 24. A method of determining an algorithm for multiplying a first polynomial and a second polynomial over GF(2m):
decomposing a product of the first polynomial and the second polynomial into a weighted sum of one-word subproducts; identifying pairs of redundant one-word subproducts; and removing the pairs of redundant one-word subproducts from the weighted sum, thereby obtaining a revised weighted sum.
- 25. The method of claim 24, wherein the first polynomial and the second polynomial have n−1 words, where n is an even integer, and wherein the first and the second polynomials are padded with zeros such that the first polynomial and the second polynomial can be represented as n words.
- 26. The method of claim 24, wherein the zero-padded words of the first and the second polynomials are excluded from the revised weighted sum.
- 27. The method of claim 24, further comprising identifying the one-word subproducts having weights z of a form Σj=0n−1 zi+j for i=0, . . . , n−1 through algebraic substitutions, wherein i and j are index integers, and n is a number of words in the first and second polynomials.
- 28. The method of claim 27, further comprising calculating a weighted sum of the one-word subproducts having weights of Σj=0n−1 zi+j for i=0, . . . , n−1 by storing and reusing intermediate calculations.
- 29. A nonrecursive algorithm determined by the method of claim 24.
- 30. A computer-readable medium, comprising instructions for performing the nonrecursive algorithm of claim 24.
- 31. A cryptographic method, comprising:
receiving a first operand and a second operand, the first operand and the second operand representing a first polynomial over GF(2m) and a second polynomial over GF(2m); multiplying the first operand and the second operand in a multiplication process, the multiplication process comprising:
using a recursive algorithm to reduce the multiplication of the first operand and the second operand into a weighted sum of smaller subproducts; and using a nonrecursive algorithm to multiply the smaller subproducts when a size of the smaller subproducts is less than or equal to a predetermined size, the predetermined size being at least two words; and outputting a cryptographic parameter associated with the multiplication.
- 32. The method of claim 31, wherein the predetermined size is six words.
- 33. The method of claim 31, wherein the recursive multiplication algorithm is a Karatsuba-Ofman algorithm.
- 34. The method of claim 31, wherein the nonrecursive multiplication algorithm excludes pairs of redundant subproducts.
- 35. The method of claim 31, wherein the nonrecursive multiplication algorithm uses previously calculated, stored weighted sums to determine subsequent weighted sums.
- 36. The method of claim 31, wherein at least one of the operands corresponds to a private key, and the cryptographic parameter is a public key.
- 37. The method of claim 31, wherein the cryptographic parameter is used in digital signature generation or digital signature verification.
- 38. The method of claim 37, wherein the signature generation is associated with an elliptic curve digital signature.
- 39. An apparatus for multiplying a first polynomial and a second polynomial over GF(2m), comprising:
means for receiving the first polynomial and the second polynomial; means for storing the first polynomial and the second polynomial as a series of words; means for recursively multiplying the first polynomial and the second polynomial by dividing the stored first and second polynomials into multiple smaller subproducts until an input size of the subproducts is less than a predetermined size; means for nonrecursively multiplying the subproducts when the size of the inputs is less than the predetermined size, the predetermined size being at least two words; means for outputting the product of the first polynomial and the second polynomial.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/401,574, filed Aug. 6, 2002, and U.S. Provisional Patent Application No. 60/419,204, filed Oct. 16, 2002, both of which are incorporated herein by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60401574 |
Aug 2002 |
US |
|
60419204 |
Oct 2002 |
US |