IP Library Granted Patent US 8,619,977
Granted Patent B2
US 8,619,977 · App. 12/028,427 · Granted Dec 31, 2013

Representation change of a point on an elliptic curve

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,619,977
App. No.
12/028,427
Granted
Dec 31, 2013
Kind
B2
Abstract

An elliptic curve cryptographic system where point coordinates are transformed from a first coordinate system to a second coordinate system. The transformed coordinates are processed by field operations, which have been modified for operating on the transformed point coordinates. In some implementations, the point coordinates are transformed from an affine coordinate system to a projective coordinate system using a non-random value for the projective coordinate. In some implementations, the transformed projective representation of the point can be changed from a first representation of the point in projective coordinates to a second representation of the point in projective coordinates, where the projective coordinate used in the representation change is a random value.

Claims (57)

1. A method performed by a system including a processor and memory, the processor processing instructions stored in memory, the method comprising:

obtaining input specifying one or more points on an elliptic curve defined over a finite prime field, each point having one or more coordinates in a first coordinate system, at least one point representing a plaintext message and at least one other point representing a cryptographic key;

selecting a single first non-zero non-random value;

transforming each coordinate of each point from the first coordinate system to a second coordinate system, wherein each coordinate of each transformed point in the second coordinate system has a first representation obtained by multiplying each coordinate of each transformed point in the first coordinate system by the single first non-random value raised to a non-zero integer power;

generating a single random non-zero value;

changing each transformed point in the second coordinate system from the first representation to a second representation, wherein each coordinate of each transformed point in the second representation is obtained by multiplying each coordinate of each transformed point in the first representation by the single random value raised to a non-zero integer power;

performing one or more field operations on the second representation of each transformed point to obtain a second representation of ciphered points; and

performing an inverse transformation and representation change on the second representation of each ciphered points, to obtain a ciphered message corresponding to the plaintext message.

2. The method of claim 1 , where the transforming is performed using projective coordinates.

3. The method of claim 2 , wherein the second coordinate system comprises Jacobian projective coordinates.

4. The method of claim 3 , wherein the Jacobian projective coordinates are represented with redundancy using Chudnovsky coordinates.

5. The method of claim 1 , where the second coordinate system has more coordinates than the first coordinate system.

6. The method of claim 1 , where the second coordinate system has one more additional coordinate than the first coordinate system, the additional coordinate having a fixed value.

7. The method of claim 1 , where the first non-random value is equal to one.

8. The method of claim 1 , where the first non-random value is equal to negative one.

9. The method of claim 1 , further comprising:

selecting a single second non-zero non-random value; and

changing each transformed point in the second coordinate system from the first representation into a third representation wherein each coordinate of each transformed point in the third representation is obtained by multiplying each coordinate of each transformed point in the first representation by the single second non-random value raised to a non-zero integer power, and wherein the transformation of each coordinate of each transformed point in the second representation is performed from each coordinate of each transformed point in the third representation.

10. The method of claim 9 , wherein the second non-random value is the inversion of the first non-random value.

11. The method of claim 1 , further comprising performing an elliptic curve encryption or decryption operation.

12. The method of claim 1 , where the method is used in an elliptic curve digital signature generation or verification operation.

13. A method performed by a system including a processor and memory, the processor processing instructions stored in memory, the method comprising:

obtaining input specifying one or more points on an elliptic curve defined over a finite prime field, each point having one or more coordinate in a first coordinate system, at least one point representing a plaintext message and at least one other point representing a cryptographic key;

selecting a single first non-zero non-random value;

transforming each coordinate of the one or more point into projective coordinates in a second coordinate system, wherein each coordinate of each transformed point in the second coordinate system has a first representation obtained by multiplying each coordinate of each transformed point in the first coordinate system by the single first non-random value raised to a non-zero integer power;

generating a single non-zero random value;

changing the projective coordinates in the second coordinate system from the first representation to a second representation, wherein each coordinate of each transformed point in the second representation is obtained by multiplying each coordinate of each transformed point in the first representation by the single random value raised to a non-zero integer power;

performing one or more field operations on the second representation of each transformed point to obtain a second representation of ciphered points; and

performing an inverse transformation and representation change on the second representation of each ciphered points, to obtain a ciphered message corresponding to the plaintext message.

14. The method of claim 13 , where the second coordinate system has additional coordinates than the first coordinate system.

15. The method of claim 14 , where the non-random values are equal to one.

16. The method of claim 14 , where the non-random values are equal to negative one.

17. The method of claim 13 , where the second coordinate system has one more additional coordinate than the first coordinate system, the additional coordinate having a fixed non-random value.

18. The method of claim 13 , further comprising performing an elliptic curve encryption or decryption operation.

19. The method of claim 13 , where the method is used in an elliptic curve digital signature generation or verification operation.

20. An apparatus comprising:

(i) a processor; and

(ii) a memory, the processor processing instructions stored in the memory, the processor operable for:

(a) obtaining one or more points on an elliptic curve defined over a finite prime field, each having one or more coordinates in a first coordinate system, at least one point representing a plaintext message and at least one other point representing a cryptographic key

(b) selecting a single first non-zero non-random value,

(c) transforming each point from the first coordinate system to a projected point in a second coordinate system, wherein each coordinate of each projected point in the second coordinate system has a first representation obtained by multiplying each coordinate of each transformed point in the first coordinate system by the single first non-random value raised to a non-zero integer power,

(d) generating a single non-zero random value,

(e) transforming each projected point from the first representation to a second representation, wherein each coordinate of each transformed point in the second representation is obtained by multiplying each coordinate of each transformed point in the first representation by the single random value raised to a non-zero integer power,

(f) performing one or more field operations on each projected point to obtain a second representation of ciphered points, and

(g) performing an inverse transformation and representation change on the second representation of each ciphered points, to obtain a ciphered message corresponding to the plaintext message.

21. The apparatus of claim 20 , where the second coordinate system has more additional coordinates than the first coordinate system.

22. The apparatus of claim 20 , where the transforming is part of an elliptic curve encryption or decryption operation.

23. The apparatus of claim 20 , where the transforming is part of an elliptic curve digital signature generation or verification operation.

24. The apparatus of claim 20 , where the second coordinate system has one more additional coordinate than the first coordinate system, the additional coordinate having a fixed non-random value.

25. Software stored in computer readable storage device having instructions stored thereon, which, when executed by a processing device, cause the processing device to perform the operations of:

obtaining input specifying one or more points on an elliptic curve defined over a finite prime field, each point having one or more coordinates in a first coordinate system, at least one point representing a plaintext message and at least one other point representing a cryptographic key;

selecting a single first non-zero non-random value;

transforming each point on an elliptic curve from the first coordinate system to a second coordinate system, wherein each coordinate of each transformed point in the second coordinate system has a first representation obtained by multiplying each coordinate of each transformed point in the first coordinate system by of the single first non-random value raised to a non-zero integer power;

generating a single non-zero random value;

changing each transformed point in the second coordinate system from the first representation to a second representation, wherein each coordinate of each transformed point in the second representation is obtained by multiplying each coordinate of each transformed point in the first representation by the single random value raised to a non-zero integer power; and

performing one or more field operations on the second representation of each transformed point to obtain a second representation of ciphered points, and

performing an inverse transformation and representation change on the second representation of each ciphered points, to obtain a ciphered message corresponding to the plaintext message.

Assignments (9)
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 Jun 21, 2012
From: ATMEL ROUSSET S.A.S.
To: INSIDE SECURE
Reel/Frame 028419/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2010
From: ATMEL CORPORATION
To: ATMEL ROUSSET S.A.S.
Reel/Frame 024097/0324 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2008
From: DOUGUET, MICHEL; DUPAQUIS, VINCENT
To: ATMEL CORPORATION
Reel/Frame 021037/0525 →