IP Library Granted Patent US 8,948,388
Granted Patent B2
US 8,948,388 · App. 13/770,533 · Granted Feb 3, 2015

Elliptic curve random number generation

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,948,388
App. No.
13/770,533
Granted
Feb 3, 2015
Kind
B2
Abstract

An elliptic curve random number generator avoids escrow keys by choosing a point Q on the elliptic curve as verifiably random. An arbitrary string is chosen and a hash of that string computed. The hash is then converted to a field element of the desired field, the field element regarded as the x-coordinate of a point Q on the elliptic curve and the x-coordinate is tested for validity on the desired elliptic curve. If valid, the x-coordinate is decompressed to the point Q, wherein the choice of which is the two points is also derived from the hash value. Intentional use of escrow keys can provide for back up functionality. The relationship between P and Q is used as an escrow key and stored by for a security domain. The administrator logs the output of the generator to reconstruct the random number with the escrow key.

Claims (46)

1. A computer-implemented method of generating a random number for use in a cryptographic operation to be performed by a processor, the method comprising:

generating a random number by operating one or more processors on a pair of inputs, each input representing at least one coordinate of a respective one of a pair of elliptic curve points, at least one input of the pair of inputs being generated in a manner to ensure that one point of the pair of elliptic curve points is not a multiple of the other point of the pair of elliptic curve points;

using a secret value to compute scalar multiples of each of the points represented by the pair of inputs; and

using one of the scalar multiples to derive the random number and using the other of the scalar multiples to change the secret value for subsequent use;

using the random number in cryptographic operation.

2. The method of claim 1 , wherein the at least one of the pair of inputs is obtained from an output of a hash function.

3. The method of claim 2 , wherein the other input of the pair of inputs is obtained from an output of a hash function.

4. The method of claim 2 , wherein the other input of the pair of inputs is used as an input to the hash function.

5. The method of claim 4 , wherein the other input of the pair of inputs represents an elliptic curve point.

6. The method of claim 2 , further comprising:

testing the output of the hash function to determine whether the output is a valid coordinate of a point on an elliptic curve before using the output as one of the inputs.

7. The method of claim 6 , wherein the output is a valid coordinate of a first elliptic curve point, and the method comprises obtaining another coordinate of the first elliptic curve point before using the first elliptic curve point as one of the inputs.

8. The method of claim 1 , further comprising deriving the random number from one of the scalar multiples by selecting one coordinate of the point represented by the one of the scalar multiples and truncating the coordinate to a bit string for use as the random number.

9. The method of claim 8 , wherein truncating the coordinate includes removing the highest order half of the bits in an elliptic curve point representation.

10. The method of claim 1 , further comprising deriving the random number from one of the scalar multiples by selecting one coordinate of the point represented by the one of the scalar multiples and hashing the one coordinate to provide a bit string for use as the random number.

11. The method of claim 1 , comprising generating the pair of inputs in a manner to ensure that one point of the pair of elliptic curve points is not a multiple of the other point of the pair of elliptic curve points.

12. A non-transitory computer-readable medium comprising instructions that are operable when executed by computer hardware comprising one or more processors to perform operations comprising:

generating a random number from a pair of inputs, each input representing at least one coordinate of a respective one of a pair of elliptic curve points, at least one input of the pair of inputs being generated in a manner to ensure that one point of the pair of elliptic curve points is not a multiple of the other point of the pair of elliptic curve points;

using a secret value to compute scalar multiples of each of the points represented by the pair of inputs; and

using one of the scalar multiples to derive the random number and using the other of the scalar multiples to change the secret value for subsequent use;

using the random number in cryptographic operation.

13. The computer-readable medium of claim 12 , wherein the at least one of the pair of inputs is obtained from an output of a hash function.

14. The computer-readable medium of claim 13 , wherein the other input of the pair of inputs is obtained from an output of a hash function.

15. The computer-readable medium of claim 13 , wherein the other input of the pair of inputs is used as an input to the hash function.

16. The computer-readable medium of claim 15 , wherein the other input of the pair of inputs represents an elliptic curve point.

17. The computer-readable medium of claim 13 , the operations further comprising:

testing the output of the hash function to determine whether the output is a valid coordinate of a point on an elliptic curve before using the output as one of the inputs.

18. The computer-readable medium of claim 17 , wherein the output is a valid coordinate of a first elliptic curve point, and the operations comprise obtaining another coordinate of the first elliptic curve point before using the first elliptic curve point as one of the inputs.

19. The computer-readable medium of claim 12 , the operations further comprising deriving the random number from one of the scalar multiples by selecting one coordinate of the point represented by the one of the scalar multiples and truncating the coordinate to a bit string for use as the random number.

20. The computer-readable medium of claim 19 , wherein truncating the coordinate includes removing the highest order half of the bits in an elliptic curve point representation.

21. The computer-readable medium of claim 12 , the operations further comprising deriving the random number from one of the scalar multiples by selecting one coordinate of the point represented by the one of the scalar multiples and hashing the one coordinate to provide a bit string for use as the random number.

22. A random number generator system comprising computer hardware comprising one or more processors configured to:

generate a random number from a pair of inputs, each input representing at least one coordinate of a respective one of a pair of elliptic curve points, at least one input of the pair of inputs being generated in a manner to ensure that one point of the pair of elliptic curve points is not a multiple of the other point of the pair of elliptic curve points;

using a secret value to compute scalar multiples of each of the points represented by the pair of inputs; and

using one of the scalar multiples to derive the random number and using the other of the scalar multiples to change the secret value for subsequent use;

using the random number in cryptographic operation.

23. The elliptic curve random number generator system of claim 22 , wherein the at least one of the pair of inputs is obtained from an output of a hash function.

24. The random number generator system of claim 23 , wherein the other input of the pair of inputs is obtained from an output of a hash function.

25. The random number generator system of claim 23 , wherein the other input of the pair of inputs is used as an input to the hash function.

26. The random number generator system of claim 23 , wherein the other input of the pair of inputs represents an elliptic curve point.

27. The random number generator system of claim 23 , the one or more processors configured to:

test the output of the hash function to determine whether the output is a valid coordinate of a point on an elliptic curve before using the output as one of the inputs.

28. The random number generator system of claim 27 , wherein the output is a valid coordinate of a first elliptic curve point, and the one or more processors are configured to obtain another coordinate of the first elliptic curve point before using the first elliptic curve point as one of the inputs.

29. The random number generator system of claim 22 , the one or more processors configured to derive the random number from one of the scalar multiples by selecting one coordinate of the point represented by the one of the scalar multiples and truncating the coordinate to a bit string for use as the random number.

30. The random number generator system of claim 29 , wherein truncating the coordinate includes removing the highest order half of the bits in an elliptic curve point representation.

31. The random number generator system of claim 22 , the one or more processors configured to derive the random number from one of the scalar multiples by selecting one coordinate of the point represented by the one of the scalar multiples and hashing the one coordinate to provide a bit string for use as the random number.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2019
From: CERTICOM CORP.
To: BLACKBERRY LIMITED
Reel/Frame 050610/0937 →