IP Library Granted Patent US 8,369,517
Granted Patent B2
US 8,369,517 · App. 12/190,539 · Granted Feb 5, 2013

Fast scalar multiplication for elliptic curve cryptosystems over prime fields

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,369,517
App. No.
12/190,539
Granted
Feb 5, 2013
Kind
B2
Abstract

Fast scalar multiplication operations are disclosed for use in an elliptic curve cryptographic system The operations use binary representations of a secret key and points on an elliptic curve defined over a prime field expressed in a coordinate system (e.g., Jacobian coordinates). The operations can be based on a modified Montgomery ladder that uses modified Meloni addition formulas. The operations can be more efficient than a double-and-add operation, and can be more resistant to side-channel attacks by hackers.

Claims (107)

1. An elliptic curve cryptographic method performed by a device adapted to perform cryptographic operations, the method comprising:

obtaining a point P on an elliptic curve, the point P representing material to be encrypted, the point P defined in a three-dimensional projective coordinate system by x, y, z reference coordinates, the direction of the z reference coordinate in the coordinate system determined by the cross product of the x and y reference coordinates;

obtaining an n-bit integer k;

computing points P 1 , P 2 on the elliptic curve as a function of P;

performing a scalar multiplication operation using P 1 , P 2 , k and n, where during the scalar multiplication operation the point P is recomputed as a function of points P 1 and P 2 , the re-computing including addition and subtraction operations on points P 1 and P 2 , the re-computing resulting in the value of the z coordinate of P 1 being equal to the value of the z coordinate of P 2 ; and

providing encrypted material [k]P resulting from the scalar multiplication operation.

2. The method of claim 1 , where the coordinate system is a Jacobian coordinate system.

3. The method of claim 1 , where the elliptic curve is a Montgomery elliptic curve.

4. The method of claim 1 , where the addition is Meloni addition.

5. An elliptic curve cryptographic method performed by a device adapted to perform cryptographic operations, the method comprising:

obtaining a point P on an elliptic curve, the point P representing material to be encrypted, the point P defined in a three-dimensional coordinate system by x, y, z reference coordinates, the direction of the z reference coordinate in the coordinate system determined by the cross product of the x and y reference coordinates;

obtaining an n-bit integer k;

generating a point P 1 by doubling point P;

generating a point P 2 by setting P 2 equal to P, resulting in the value of the z coordinate of P 1 being equal to the value of the z coordinate of P 2 ;

setting point P 1 equal to the sum of points P 1 and P 2 ;

setting point P 2 equal to the difference of points P 1 and P 2 ;

determining if k is equal to zero;

if k is equal to zero, setting the y coordinate of point P 2 to a negative y coordinate of point P 2 ;

recomputing point P 1 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate;

recomputing point P 2 to be equal to the sum of points P 1 and P 2 ;

if k is not equal to zero, recomputing point P 1 to be equal to the sum of points P 1 and P 2 ;

recomputing point P 2 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate; and

providing point P 2 , where P 2 is equal to [k]P.

6. The method of claim 5 , where the coordinate system is a Jacobian coordinate system.

7. The method of claim 5 , where the elliptic curve is a Montgomery elliptic curve.

8. The method of claim 5 , where the sum of points is performed using Meloni addition.

9. An elliptic curve cryptographic method performed by a device adapted to perform cryptographic operations, the method comprising:

obtaining a point P on an elliptic curve, the point P representing material to be encrypted, the point P defined in a three-dimensional coordinate system by x, y, z reference coordinates, the direction of the z reference coordinate in the coordinate system determined by the cross product of the x and y reference coordinates;

obtaining an n-bit integer k;

generating a point P 1 by doubling point P;

generating a point P 2 by setting P 2 equal to P, resulting in the value of the z coordinate of P 1 being equal to the value of the z coordinate of P 2 ;

generating a point Psave by setting Psave equal to point P;

determining if n is equal to zero;

if n is not equal to zero;

setting point P 1 equal to the sum of points P 1 and P 2 ;

setting point P 2 equal to the difference of points P 1 and P 2 ;

determining if k is equal to zero;

if k is equal to zero, recomputing point P 1 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate;

recomputing point P 2 to be equal to the sum of points P 1 and a negative of point P 2 ;

if k is not equal to zero, recomputing point P 1 to be equal to the sum of points P 1 and P 2 ;

recomputing point P 2 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate;

if n is equal to zero, recomputing point P 1 to be equal to the sum of points P 1 and P 2 ;

recomputing point P 2 to be equal to the difference of points P 1 and P 2 ;

recomputing the z coordinate of point P 2 using the x, y, and z coordinates of point Psave and the x and y coordinates of point P 2 ;

recomputing the z coordinate of point P 2 to be equal to the difference between the x coordinate of point P 2 and the x coordinate of point P 1 multiplied by the z coordinate of point P 2 ;

determining if k is equal to zero;

if k is equal to zero, recomputing point P 1 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate;

recomputing point P 2 to be equal to the sum of points P 1 and P 2 ;

if k is not equal to zero, recomputing point P 1 to be equal to the sum of points P 1 and P 2 ;

recomputing point P 2 to be equal a recomputed version of point P 1 with an appropriate z-coordinate; and

providing point P 2 , where P 2 is equal to P.

10. The method of claim 9 , where the coordinate system is a Jacobian coordinate system.

11. The method of claim 9 , where the elliptic curve is a Montgomery elliptic curve.

12. The method of claim 9 , where the sum of points is performed using Meloni addition.

13. An elliptic curve cryptosystem, comprising:

an interface operable for receiving a point P on an elliptic curve, the point P representing material to be encrypted, the point P defined in a three-dimensional coordinate system by x, y, z reference coordinates, the direction of the z reference coordinate in the coordinate system determined by the cross product of the x and y reference coordinates, the interface further operable for receiving an n-bit integer k; and

a computer processor coupled to the interface, the processor operable for:

computing points P 1 , P 2 on the elliptic curve as a function of P;

performing a scalar multiplication operation using P 1 , P 2 , k and n, where during the scalar multiplication operation the point P is recomputed as a function of points P 1 and P 2 , the re-computing including addition and subtraction operations on points P 1 and P 2 , the re-computing resulting in the value of the z coordinate of P 1 being equal to the value of the z coordinate of P 2 ; and

providing encrypted material [k]P resulting from the scalar multiplication operation through the interface, where [k]P is encrypted material.

14. The system of claim 13 , where the coordinate system is a Jacobian coordinate system.

15. The system of claim 13 , where the elliptic curve is a Montgomery elliptic curve.

16. The system of claim 13 , where the addition is Meloni addition.

17. An elliptic curve cryptosystem, comprising:

an interface operable for receiving a point P on an elliptic curve, the point P representing material to be encrypted, the point P defined in a three-dimensional coordinate system by x, y, z reference coordinates, the direction of the z reference coordinate in the coordinate system determined by the cross product of the x and y reference coordinates, the interface further operable for receiving an n-bit integer k; and

a computer processor coupled to the interface and operable for:

generating a point P 1 by doubling point P;

generating a point P 2 by setting P 2 equal to P, resulting in the value of the z coordinate of P 1 being equal to the value of the z coordinate of P 2 ;

setting point P 1 equal to the sum of points P 1 and P 2 ;

setting point P 2 equal to the difference of points P 1 and P 2 ;

determining if k is equal to zero;

if k is equal to zero, setting the y coordinate of point P 2 to a negative y coordinate of point P 2 ;

recomputing point P 1 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate;

recomputing point P 2 to be equal to the sum of points P 1 and P 2 ;

if k is not equal to zero, recomputing point P 1 to be equal to the sum of points P 1 and P 2 ;

recomputing point P 2 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate; and

making point P 2 available through the interface, where P 2 is equal to [k]P, and [k]P is encrypted material.

18. The system of claim 17 , where the coordinate system is a Jacobian coordinate system.

19. The system of claim 17 , where the elliptic curve is a Montgomery elliptic curve.

20. The system of claim 17 , where the sum of points is performed using Meloni addition.

21. An elliptic curve cryptosystem, comprising:

an interface operable for receiving a point P on an elliptic curve, the point P representing material to be encrypted, the point P defined in a three-dimensional coordinate system by x, y, z reference coordinates, the direction of the z reference coordinate in the coordinate system determined by the cross product of the x and y reference coordinates, the interface further operable for receiving an n-bit integer k; and

a computer processor coupled to the interface and operable for:

generating a point P 1 by doubling point P;

generating a point P 2 by setting P 2 equal to P, resulting in the value of the z coordinate of P 1 being equal to the value of the z coordinate of P 2 ;

generating a point Psave by setting Psave equal to point P;

determining if n is equal to zero;

if n is not equal to zero;

setting point P 1 equal to the sum of points P 1 and P 2 ;

setting point P 2 equal to the difference of points P 1 and P 2 ;

determining if k is equal to zero;

if k is equal to zero, recomputing point P 1 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate;

recomputing point P 2 to be equal to the sum of points P 1 and a negative of point P 2 ;

if k is not equal to zero, recomputing point P 1 to be equal to the sum of points P 1 and P 2 ;

recomputing point P 2 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate;

if n is equal to zero, recomputing point P 1 to be equal to the sum of points P 1 and P 2 ;

recomputing point P 2 to be equal to the difference of point P 1 and P 2 ;

recomputing the z coordinate of point P 2 using the x,y, and z coordinates of point Psave and the x and y coordinates of point P 2 ;

determining if k is equal to zero;

recomputing the z coordinate of point P 2 to be equal to the difference between the x coordinate of point P 2 and the x coordinate of point P 1 multiplied by the z coordinate of point P 2 ;

if k is equal to zero, recomputing point P 1 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate;

recomputing point P 2 to be equal to the sum of points P 1 and P 2 ;

if k is not equal to zero, recomputing point P 1 to be equal to the sum of points P 1 and P 2 ;

recomputing point P 2 to be equal to a recomputed version of point P 1 with an appropriate z-coordinate; and providing point P 2 , where P 2 is equal to P.

22. The system of claim 21 , where the coordinate system is a Jacobian coordinate system.

23. The system of claim 21 , where the elliptic curve is a Montgomery elliptic curve.

24. The system of claim 21 , where the sum of points is performed using Meloni addition.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2020
From: RAMBUS INC.
To: CRYPTOGRAPHY RESEARCH, INC.
Reel/Frame 054539/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: VERIMATRIX
To: RAMBUS INC.
Reel/Frame 051262/0413 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 21, 2019
From: GLAS SAS, AS AGENT
To: INSIDE SECURE
Reel/Frame 051076/0306 →
CHANGE OF ADDRESS Recorded Oct 16, 2019
From: VERIMATRIX
To: VERIMATRIX
Reel/Frame 050733/0003 →
CHANGE OF NAME Recorded Oct 7, 2019
From: INSIDE SECURE
To: VERIMATRIX
Reel/Frame 050647/0428 →
SECURITY INTEREST Recorded Feb 27, 2019
From: INSIDE SECURE
To: GLAS SAS, AS SECURITY AGENT
Reel/Frame 048449/0887 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2012
From: ATMEL ROUSSET S.A.S.
To: INSIDE SECURE
Reel/Frame 028522/0371 →