IP Library Granted Patent US 8,498,411
Granted Patent B1
US 8,498,411 · App. 12/569,280 · Granted Jul 30, 2013

Using multiples above two with running totals and reference values other than 0 and 2 (window size) in elliptic curve cryptography scalar multiplication acceleration tables

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,498,411
App. No.
12/569,280
Granted
Jul 30, 2013
Kind
B1
Abstract

A method, integrated circuit chip, and computer program product for cryptographically processing an input value with Elliptic Curve Cryptography (ECC) using ECC scalar multiplication are provided. The ECC scalar multiplication is performed with the use of an enhanced acceleration table (EAT). The EAT uses multiple running totals with multiples above 2. The EAT, in some embodiments, uses reference values other than 0 and 2^window size.

Claims (106)

1. A method comprising:

(A) receiving, from a user interface, an input value to be cryptographically processed;

(B) applying, in a microprocessor, elliptic curve cryptography (ECC) based cryptographic processing to the input value to generate a cryptographically processed value, wherein:

(i) applying ECC-based cryptographic processing includes:

(a) performing ECC scalar multiplication to calculate an ECC scalar multiplication result with an enhanced acceleration table (EAT), the EAT including a plurality of ordered sub-tables, each sub-table including a plurality of entries; and

(b) cryptographically processing the received input value according to an ECC based cryptographic processing algorithm using the calculated ECC scalar multiplication result to generate the cryptographically processed value;

(ii) calculating the ECC scalar multiplication result with the EAT includes:

(a) generating a plurality of running totals, each running total being associated with a positive integer multiplier; and

(b) calculating the sum of each running total multiplied by its associated positive integer multiplier, this sum being the ECC scalar multiplication result;

(iii) generating the plurality of running totals includes, for each sub-table of the plurality of sub-tables:

(a) adding a first value associated with an entry in that sub-table to a running total of the plurality of running totals; and

(b) carrying a second value to a next sub-table, except for the last sub-table of the plurality of ordered sub-tables; and

(iv) for one sub-table of the plurality of sub-tables, the running total is associated with a multiplier greater than 2; and

(C) outputting the generated cryptographically processed value via the user interface.

2. A method as in claim 1 wherein, for the one sub-table, carrying the second value to the next sub-table includes carrying an integer value other than 0 or 1 to the next sub-table.

3. A method as in claim 2 wherein:

the first value associated with the entry in the one sub-table is a value stored in that entry; and

the second value carried to the next sub-table is a negative integer.

4. A method as in claim 2 wherein:

the first value associated with the entry in the one sub-table is a negation of a value stored in that entry; and

the second value carried to the next sub-table is a positive integer greater than 1.

5. A method as in claim 2 wherein:

performing ECC scalar multiplication includes calculating a product of a scalar value and a given point on an elliptic curve, the given point being represented by an ordered pair of coordinate values, a bit-length of each coordinate value of the ordered pair being equal to a field size of an elliptic curve group based on the given point and the elliptic curve, wherein the scalar value also has the same bit-length;

the number of sub-tables in the EAT is defined by the bit-length divided by a window-size;

a binary representation of the scalar value is divided into an ordered set of subsets, each subset being a binary value having a length equal to the window-size, each subset corresponding to a particular sub-table in order; and

generating the plurality of running totals further includes selecting an entry in that sub-table associated with the binary value of the subset associated with that sub-table.

6. A method as in claim 5 wherein:

the field size is 256;

the elliptic curve group is the NIST standard P256 elliptic curve group; and

the window-size is a fourth value chosen from the set {3, 4, 5, 6, 7, 8, 9, 10, 11, 12}.

7. A method as in claim 6 wherein

the window-size is 6;

for a first sub-table of the plurality of sub-tables having a corresponding subset having a binary value equal to 23:

selecting the entry in that sub-table associated with the binary value of the subset associated with that sub-table includes selecting the tenth entry of that sub-table; and

adding the first value associated with the entry in that sub-table to the running total of the plurality of running totals includes:

adding the value stored in the selected entry of that sub-table to a running total associated with the value 3; and

carrying a value of −1 to the next sub-table; and

for the next sub-table, subtracting one from the binary value of the subset that corresponds to that next sub-table prior to selecting the entry in that next sub-table associated with the binary value of the subset associated with that next sub-table.

8. A method as in claim 2 wherein calculating the sum of each running total multiplied by its associated positive integer multiplier consists of performing a series of nested addition, negation, and doubling operations on the plurality of running totals.

9. A method as in claim 1 wherein the term, ECC scalar multiplication result, is defined to mean the product of a scalar integer, n, by a point on an elliptic curve, the product of the scalar integer, n, by the point on the elliptic curve being defined by adding the point on the elliptic curve to itself n−1 times.

10. An integrated circuit chip comprising:

an interface portion for communicating with an external user interface;

a high speed on-chip cache, the cache being constructed and arranged to store:

the entire contents of an enhanced acceleration table (EAT), the EAT including a plurality of ordered sub-tables, each sub-table including a plurality of entries, each entry including a pair of coordinate values representing a point along an elliptic curve; and

instructions to be performed; and

a controller, the controller being constructed and arranged to perform instructions stored in the cache, wherein performing instructions stored in the cache includes:

(A) receiving, from the external user interface, an input value to be cryptographically processed;

(B) applying elliptic curve cryptography (ECC) based cryptographic processing to the input value to generate a cryptographically processed value, wherein:

(i) applying ECC-based cryptographic processing includes:

(a) performing ECC scalar multiplication to calculate an ECC scalar multiplication result with the EAT stored in the cache; and

(b) cryptographically processing the received input value according to an ECC based cryptographic processing algorithm using the calculated ECC scalar multiplication result to generate the cryptographically processed value;

(ii) calculating the ECC scalar multiplication result with the EAT includes:

(a) generating a plurality of running totals, each running total being associated with a positive integer multiplier; and

(b) calculating the sum of each running total multiplied by its associated positive integer multiplier, this sum being the ECC scalar multiplication result;

(iii) generating the plurality of running totals includes, for each sub-table of the plurality of sub-tables:

(a) adding a first value associated with an entry in that sub-table to a running total of the plurality of running totals; and

(b) carrying a second value to a next sub-table, except for the last sub-table of the plurality of ordered sub-tables; and

(iv) for one sub-table of the plurality of sub-tables, the running total is associated with a multiplier greater than 2; and

(C) outputting the generated cryptographically processed value via the user interface.

11. An integrated circuit chip as in claim 10 wherein the controller, when carrying the second value to the next sub-table for the one sub-table is configured to carry an integer value other than 0 or 1 to the next sub-table.

12. An integrated circuit chip as in claim 11 wherein:

the first value associated with the entry in the one sub-table is the pair of coordinate values stored in that entry; and

the second value carried to the next sub-table is a negative integer.

13. An integrated circuit chip as in claim 11 wherein:

the first value associated with the entry in the one sub-table is a negation of the pair of coordinate values stored in that entry; and

the second value carried to the next sub-table is a positive integer greater than 1.

14. An integrated circuit chip as in claim 11 wherein:

performing ECC scalar multiplication includes calculating a product of a scalar value and a given point on the elliptic curve, the given point being represented by an ordered pair of coordinate values, a bit-length of each coordinate value of the ordered pair being equal to a field size of an elliptic curve group based on the given point and the elliptic curve, wherein the scalar value also has the same bit-length;

the number of sub-tables in the EAT is defined by the bit-length divided by a window-size;

a binary representation of the scalar value is divided into an ordered set of subsets, each subset being a binary value having a length equal to the window-size, each subset corresponding to a particular sub-table in order; and

generating the plurality of running totals further includes selecting an entry in that sub-table associated with the binary value of the subset associated with that sub-table.

15. An integrated circuit chip as in claim 14 wherein:

the field size is 256;

the elliptic curve group is the NIST standard P256 elliptic curve group; and

the window-size is a fourth value chosen from the set {3, 4, 5, 6, 7, 8, 9, 10, 11, 12}.

16. A computer program product comprising a non-transitory computer readable medium, the non-transitory computer readable medium storing instructions thereon which when performed by a computer cause the computer to:

(A) receive, from a user interface, an input value to be cryptographically processed;

(B) apply elliptic curve cryptography (ECC) based cryptographic processing to the input value to generate a cryptographically processed value, wherein:

(i) applying ECC-based cryptographic processing includes:

(a) performing ECC scalar multiplication to calculate an ECC scalar multiplication result with an enhanced acceleration table (EAT), the EAT including a plurality of ordered sub-tables, each sub-table including a plurality of entries; and

(b) cryptographically processing the received input value according to an ECC based cryptographic processing algorithm using the calculated ECC scalar multiplication result to generate the cryptographically processed value;

(ii) calculating the ECC scalar multiplication result with the EAT includes:

(a) generating a plurality of running totals, each running total being associated with a positive integer multiplier; and

(b) calculating the sum of each running total multiplied by its associated positive integer multiplier, this sum being the ECC scalar multiplication result;

(iii) generating the plurality of running totals includes, for each sub-table of the plurality of sub-tables:

(a) adding a first value associated with an entry in that sub-table to a running total of the plurality of running totals; and

(b) carrying a second value to a next sub-table, except for the last sub-table of the plurality of ordered sub-tables; and

(iv) for one sub-table of the plurality of sub-tables, the running total is associated with a multiplier greater than 2; and

(C) output the generated cryptographically processed value via the user interface.

17. A computer program product as in claim 16 wherein the instructions for carrying the second value to the next sub-table for the one sub-table include instructions for carrying an integer value other than 0 or 1 to the next sub-table.

18. A computer program product as in claim 17 wherein:

the first value associated with the entry in the one sub-table is a value stored in that entry; and

the second value carried to the next sub-table is a negative integer.

19. A computer program product as in claim 17 wherein:

the first value associated with the entry in the one sub-table is a negation of a value stored in that entry; and

the second value carried to the next sub-table is a positive integer greater than 1.

20. A computer program product as in claim 17 wherein:

performing ECC scalar multiplication includes calculating a product of a scalar value and a given point on an elliptic curve, the given point being represented by an ordered pair of coordinate values, a bit-length of each coordinate value of the ordered pair being equal to a field size of an elliptic curve group based on the given point and the elliptic curve, wherein the scalar value also has the same bit-length;

the number of sub-tables in the EAT is defined by the bit-length divided by a window-size;

a binary representation of the scalar value is divided into an ordered set of subsets, each subset being a binary value having a length equal to the window-size, each subset corresponding to a particular sub-table in order; and

generating the plurality of running totals further includes selecting an entry in that sub-table associated with the binary value of the subset associated with that sub-table.

21. A computer program product as in claim 20 wherein:

the field size is 256;

the elliptic curve group is the NIST standard P256 elliptic curve group; and

the window-size is a fourth value chosen from the set {3, 4, 5, 6, 7, 8, 9, 10, 11, 12}.

22. A computer program product as in claim 17 wherein calculating the sum of each running total multiplied by its associated positive integer multiplier consists of performing a series of nested addition and doubling operations on the plurality of running totals.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2010
From: RSA SECURITY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 023975/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2010
From: RSA SECURITY LLC
To: RSA SECURITY HOLDING, INC.
Reel/Frame 023975/0453 →
MERGER Recorded Jan 27, 2010
From: RSA SECURITY INC
To: RSA SECURITY LLC
Reel/Frame 023852/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY LLC
To: RSA SECURITY HOLDING, INC.
Reel/Frame 023824/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 023825/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2009
From: PARKINSON, SEAN; HIBBERD, MARK; ROBINSON, PETER ALAN; MAKEPEACE, DAVID PAUL
To: RSA SECURITY INC.
Reel/Frame 023621/0589 →