Claims
- 1. An elliptic curve processing apparatus for performing at least one operation on elliptic curves specified over binary polynomial fields, comprising:
at least one functional unit including a digit serial multiplier with a digit size of at least two bits, operable to perform reduction for respective generic curves using arbitrary irreducible polynomials, the arbitrary irreducible polynomials corresponding to respective ones of the generic curves.
- 2. The elliptic curve processing apparatus as recited in claim 1, further comprising hardwired reduction circuits included in the functional unit for use with respective named curves.
- 3. The elliptic curve processing apparatus as recited in claim 2 further comprising at least one storage location specifying whether an operation is for one of the named curves or for one of the generic curves.
- 4. The elliptic curve processing apparatus as recited in claim 1 further comprising at least one storage location specifying an irreducible polynomial associated with one of the generic curves.
- 5. The elliptic curve processing apparatus as recited in claim 3 wherein a configuration register comprises the at least one storage location.
- 6. The elliptic curve processing apparatus as recited in claim 5 wherein the configuration register includes a field identifying a named curve and a field specifying a field degree of a binary polynomial field over which the elliptic curves are defined.
- 7. The elliptic curve processing apparatus as recited in claim 6 wherein a predetermined value in the named curve field specifies a generic curve.
- 8. The elliptic curve processing apparatus as recited in claim 1 wherein the operation is at least one of a point multiplication, a point addition, and a point doubling.
- 9. The elliptic curve processing apparatus as recited in claim 1 wherein the functional unit performs multiplication.
- 10. The elliptic curve processing apparatus as recited in claim 2 further comprising an instruction decoder that translates a square instruction into a multiply instruction when a generic curve is being utilized, the square instruction being decoded to utilize hardwired logic for square operations on named curves.
- 11. The elliptic curve processing apparatus as recited in claim 2 further comprising a squarer circuit operable to perform a squaring operation and including respective hardwired reduction circuits for named curves.
- 12. The elliptic curve processing apparatus as recited in claim 2, wherein the hardwired reduction circuits are selected for use with a corresponding named curve according to a value of a storage location identifying the corresponding named curve.
- 13. An elliptic curve processing apparatus responsive to a first arithmetic instruction to utilize respective hardwired reduction logic for reduction of respective named curves and responsive to a second arithmetic instruction to utilize a generic reduction circuit for a plurality of generic curves, the generic reduction circuit operable to perform reduction for respective ones of the generic curves using arbitrary irreducible polynomials, respective ones of the arbitrary irreducible polynomials corresponding to respective ones of the generic curves.
- 14. An elliptic curve processing apparatus comprising hardwired reduction circuits and a multiplier circuit, the elliptic curve processing apparatus responsive to an arithmetic instruction to utilize a respective one of the hardwired reduction circuits for reduction for respective named curves and the multiplier circuit for reduction for a plurality of generic curves, the multiplier coupled to perform reduction for respective generic curves using arbitrary irreducible polynomials, the arbitrary irreducible polynomials corresponding to respective ones of the generic curves.
- 15. The elliptic curve processing apparatus as recited in claim 14 wherein the arithmetic instruction specifies a first and second source operand and a single destination operand.
- 16. The elliptic curve processing apparatus as recited in claim 14 wherein the arithmetic instruction specifies a single source operand and a single destination operand.
- 17. The elliptic curve processing apparatus as recited in claim 14 wherein the arithmetic instruction specifies a first and second source operand and a first and second destination operand.
- 18. The elliptic curve processing apparatus as recited in claim 14 wherein the arithmetic instruction specifies a multiplication and the multiplication utilizes one of the hardwired reduction circuits for reduction for a named curve and the multiplier for reduction for a generic curve, according to a stored value, the stored value indicating whether the curve being processed is the generic curve or the named curve.
- 19. The elliptic curve processing apparatus as recited in claim 14 further wherein the elliptic curve processing apparatus is further responsive to a conditional branch instruction causing a branch according to the stored value.
- 20. The elliptic curve processing apparatus as recited in claim 18 further comprising a second arithmetic instruction, the second arithmetic instruction utilizing generic reduction logic regardless of the stored value.
- 21. The elliptic curve processing apparatus as recited in claim 18 further comprising a second arithmetic instruction, the second arithmetic instruction performing no reduction.
- 22. The elliptic curve processing apparatus as recited in claim 18 wherein the hardwired reduction logic, which represents an irreducible polynomial corresponding to a particular named curve, is selected according to the stored value that identifies the particular named curve.
- 23. The elliptic curve processing apparatus as recited in claim 22 wherein the hardwired reduction logic is an XOR network.
- 24. The elliptic curve processing apparatus as recited in claim 14 wherein for a particular generic curve, the multiplier circuit utilizes an irreducible polynomial stored in a storage location, the irreducible polynomial corresponding to the particular generic curve.
- 25. The elliptic curve processing apparatus as recited in claim 14 wherein the elliptic curve processing apparatus utilizes hardwired reduction logic for reduction for named curves and the generic multiplier for reduction for generic curves according to a value of a parameter indicating whether a generic curve or a named curve is being processed.
- 26. The elliptic curve processing apparatus as recited in claim 14 further comprising a register indicating either that a generic curve is being utilized or identifying a named curve when a named curve is being utilized, the elliptic curve processing apparatus being responsive to the arithmetic instruction according to contents of the register.
- 27. The elliptic curve processing apparatus as recited in claim 14 wherein the arithmetic instruction is a square instruction.
- 28. The elliptic curve processing apparatus as recited in claim 14 wherein the arithmetic instruction is a multiply instruction.
- 29. A method for performing at least one arithmetic operation on elliptic curves specified over binary polynomial fields, comprising:
performing the arithmetic operation on respective named curves using respective hardwired reduction logic for reduction operations; and performing the arithmetic operation on generic curves using a multiplier circuit for reduction.
- 30. The method as recited in claim 29 further comprising determining whether the arithmetic operation is for one of the named curves or for one of the generic curves according to a value of at least one storage location.
- 31. The method as recited in claim 30 wherein the at least one storage location is part of a configuration register.
- 32. The method as recited in claim 31 wherein the configuration register includes a first field identifying a named curve if used and a second field specifying a field degree of the binary polynomial field.
- 33. The method as recited in claim 32 wherein a predetermined value in the first field specifies a generic curve.
- 34. The method as recited in claim 29 wherein the arithmetic operation is one of a point doubling, a point addition, and a point multiplication.
- 35. The method as recited in claim 29 wherein the arithmetic unit is a multiplier.
- 36. The method as recited in claim 29 further comprising decoding a square instruction into one or more multiply instructions when a generic curve is being utilized.
- 37. An elliptic curve processing apparatus operable on elliptic curves specified over binary polynomial fields responsive to a conditional branch instruction according to whether a curve being processed is a generic curve or a named curve.
- 38. A method comprising performing a conditional branch instruction according to a value of a storage location indicating whether a curve being processed in an elliptic curve processing apparatus is a generic curve or a named curve.
- 39. The method as recited in claim 38 wherein performing the conditional branch instruction further comprises branching when the storage location specifies a generic curve and not branching when the storage location specifies a named curve.
- 40. The method as recited in claim 38 wherein performing the conditional branch instruction further comprises not branching when the storage location specifies a generic curve and branching when the storage location specifies a named curve.
- 41. An apparatus for performing at least one operation on elliptic curves specified over binary polynomial fields, comprising:
means for performing an arithmetic operation using hardwired reduction logic for a named curve; and means for performing the arithmetic operation using generic reduction logic for generic curves.
- 42. An apparatus for performing operations on elliptic curves specified over binary polynomial fields responsive to a square instruction to perform a squaring operation on an elliptic curve utilizing hardwired reduction logic.
- 43. An apparatus for performing operations on elliptic curves specified over binary polynomial fields responsive to a divide instruction to perform a divide operation on an elliptic curves using a polynomial specified in a storage location for reduction.
- 44. A computer program product encoded on computer readable media comprising:
an arithmetic instruction causing an elliptic curve processing apparatus to utilize, according to whether a curve being processed is a generic curve or a named curve, hardwired reduction logic for the arithmetic operation for named curves and to utilize a multiplier operable to perform reduction for respective generic curves using arbitrary irreducible polynomials, the arbitrary irreducible polynomials corresponding to respective ones of the generic curves.
- 45. A computer program product encoded on computer readable media for an elliptic curve processor comprising:
a first arithmetic instruction causing the elliptic curve processor to utilize respective hardwired reduction logic for respective named curves; and a second arithmetic instruction causing the elliptic curve processor to utilize a multiplier for reduction for a plurality of generic curves, the multiplier operable to perform reduction for respective generic curves using arbitrary irreducible polynomials corresponding to respective ones of the generic curves.
- 46. The computer program product as recited in claim 44 wherein the arithmetic instruction specifies a first and second source operand and a destination.
- 47. The computer program product as recited in claim 44 further comprising a conditional branch instruction causing a branch according to whether the curve being processed is a generic curve or a named curve.
- 48. The computer program product as recited in claim 44 further comprising a second arithmetic instruction, the second arithmetic instruction causing the elliptic curve processor to utilize the multiplier for reduction regardless of the value of a parameter indicating whether the curve being processed is a generic curve or a named curve.
- 49. The computer program product as recited in claim 44 wherein the arithmetic instruction is a square instruction.
- 50. The elliptic curve processing apparatus as recited in claim 44 wherein the arithmetic instruction is a multiply instruction.
- 51. A computer program product encoded on computer readable media for execution on an elliptic curve processing apparatus comprising:
a conditional branch instruction causing a branch according to whether an elliptic curve being processed is a generic curve or a named curve.
- 52. The computer program product as recited in claim method 51 wherein the elliptic curve is specified over a binary polynomial field.
- 53. The computer program product as recited in claim method 51 wherein the elliptic curve is specified over a prime integer field.
- 54. The computer program product as recited in claim method 51 wherein the conditional branch instruction branches according to a value of a storage location indicating whether a curve being processed is the generic curve or the named curve.
- 55. The computer program product as recited in claim 54 wherein performing the conditional branch instruction further comprises branching when the storage location specifies the generic curve and not branching when the storage location identified the named curve.
- 56. The computer program product as recited in claim 54 wherein performing the conditional branch instruction further comprises not branching when the storage location specifies the generic curve and branching when the storage location identified the named curve.
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application claims the benefit under 35 U.S.C. § 119(e) of the following provisional applications: 60/376,742, filed May 1, 2002; 60/379,316, filed May 10, 2002; 60/389,135 filed Jun. 14, 2002; 60/400,223 filed Aug. 1, 2002; and 60/426,783, filed Nov. 15, 2002; all of which are incorporated herein by reference.
Provisional Applications (5)
|
Number |
Date |
Country |
|
60376742 |
May 2002 |
US |
|
60379316 |
May 2002 |
US |
|
60389135 |
Jun 2002 |
US |
|
60400223 |
Aug 2002 |
US |
|
60426783 |
Nov 2002 |
US |