IP Library Granted Patent US 8,467,535
Granted Patent B2
US 8,467,535 · App. 13/041,759 · Granted Jun 18, 2013

Accelerated verification of digital signatures and public keys

Inventor: Marinus Struik (Toronto, CA)
Assignee: Certicom Corp.
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,467,535
App. No.
13/041,759
Granted
Jun 18, 2013
Kind
B2
Abstract

Accelerated computation of combinations of group operations in a finite field is provided by arranging for at least one of the operands to have a relatively small bit length. For example, a technique for verifying a signature of a message can include applying a first mathematical function to a combination of the first signature component and the second message portion to obtain an intermediate component, using the intermediate component to generate a first value and a second value, where a second mathematical function applied to the first value and the second value obtains the intermediate component, and determining the ephemeral public key based on the first value, the second value, the second signature component, the base point of the elliptic curve, and a long-term public key of the long-term private-public key pair. The technique can include verifying whether a representation of the first message portion satisfies a predetermined characteristic.

Claims (79)

1. A method, performed by a data processing apparatus, of generating a signature on a message, the method comprising:

accessing a long-term private key of a long-term private-public key pair;

dividing the message into a first message portion and a second message portion;

generating an ephemeral key pair that comprises an ephemeral private key and an ephemeral public key, the ephemeral public key being derived from the ephemeral private key and a base point on an elliptic curve;

encrypting the first message portion to obtain a first signature component using an encryption key, the encryption key derived from the ephemeral public key;

applying a first mathematical function to a combination of the first signature component and the second message portion to obtain an intermediate component e;

using the intermediate component e to generate a first value e 1 and a second value e 2 such that a second mathematical function applied to the first value e 1 and the second value e 2 obtains the intermediate component e;

using the first value e 1 , the second value e 2 , the long-term private key, and the ephemeral private key to generate a second signature component; and

outputting the signature, wherein the signature comprises the first signature component, the second signature component, and the second message portion.

2. The method according to claim 1 , wherein the first value e 1 and the second value e 2 are generated such that e=e 1 /e 2 mod n, wherein n is the order of the group generated by the base point on the elliptic curve.

3. The method according to claim 2 , wherein e 1 and e 2 are integers that have a bit length of approximately half the bit length of n.

4. The method according to claim 1 , wherein the first value e 1 and the second value e 2 are generated such that e=e 1 ∥e 2 .

5. The method according to claim 4 , wherein e 1 and e 2 each have a bit length approximately half the bit length of n, where n is the order of the group generated by the base point on the elliptic curve.

6. The method according to claim 1 , wherein the second signature component is generated as s=e 2 −1 (k−e 1 d A )mod n, where s is the second signature component, n is the order of the group generated by the base point on the elliptic curve, k is the ephemeral private key, and d A is the long-term private key.

7. The method according to claim 1 , wherein the signature comprises the second signature component and a combination of the first signature component and the second message portion.

8. A method, performed by a data processing apparatus, of verifying a signature on a message, the method comprising:

obtaining the signature via an electronic data communication system, the signature having been generated based on a long-term private-public key pair and an ephemeral key pair, wherein the ephemeral key pair comprises an ephemeral private key and an ephemeral public key, the ephemeral public key having been derived from the ephemeral private key and a base point on an elliptic curve, wherein the signature comprises a first signature component which encrypts a first message portion, a second signature component, and a second message portion, and wherein the message can be reconstructed using the first message portion and the second message portion;

applying a first mathematical function to a combination of the first signature component and the second message portion to obtain an intermediate component e;

using the intermediate component e to generate a first value e 1 and a second value e 2 such that a second mathematical function applied to the first value e 1 and the second value e 2 obtains the intermediate component e;

determining the ephemeral public key based on the first value e 1 , the second value e 2 , the second signature component, the base point of the elliptic curve, and a long-term public key of the long-term private-public key pair;

using the ephemeral public key to generate a decryption key;

recovering a representation of the first message portion by decrypting the first signature component using the decryption key;

verifying whether the representation of the first message portion satisfies a predetermined characteristic; and

accepting the signature upon verification.

9. The method according to claim 8 , wherein the first value e 1 and the second value e 2 are generated such that e=e 1 /e 2 mod n, wherein n is the order of the group generated by the base point on the elliptic curve.

10. The method according to claim 9 , wherein e 1 and e 2 are integers that have a bit length of approximately half the bit length of n.

11. The method according to claim 8 , wherein the first value e 1 and the second value e 2 are generated such that e=e 1 ∥e 2 .

12. The method according to claim 11 , wherein e 1 and e 2 each have a bit length approximately half the bit length of n, where n is the order of the group generated by the base point on the elliptic curve.

13. The method according to claim 8 , wherein the ephemeral public key is generated as Q′=(se 2 mod n)G+e 1 G A , where Q′ is the ephemeral public key, s is the second signature component, G is the base point of the elliptic curve, n is the order of the group generated by the base point on the elliptic curve, and G A is the long-term public key.

14. The method according to claim 8 , wherein the signature comprises the second signature component and the combination of the first signature component and the second message portion.

15. An apparatus comprising:

circuitry to store data, the data comprising a message; and

processor electronics configured to

access a long-term private key of a long-term private-public key pair,

divide the message into a first message portion and a second message portion,

generate an ephemeral key pair that comprises an ephemeral private key and an ephemeral public key, the ephemeral public key being derived from the ephemeral private key and a base point on an elliptic curve,

encrypt the first message portion to obtain a first signature component using an encryption key, the encryption key derived from the ephemeral public key,

apply a first mathematical function to a combination of the first signature component and the second message portion to obtain an intermediate component e,

use the intermediate component e to generate a first value e 1 and a second value e 2 , wherein a second mathematical function applied to the first value e 1 and the second value e 2 obtains the intermediate component e,

use the first value e 1 , the second value e 2 such that the long-term private key, and the ephemeral private key to generate a second signature component, and

output a signature associated with the message, wherein the signature comprises the first signature component, the second signature component, and the second message portion.

16. The apparatus according to claim 15 , wherein the first value e 1 and the second value e 2 are generated such that e=e 1 /e 2 mod n, wherein n is the order of the group generated by the base point on the elliptic curve.

17. The apparatus according to claim 16 , wherein e 1 and e 2 are integers that have a bit length of approximately half the bit length of n.

18. The apparatus according to claim 15 , wherein the first value e 1 and the second value e 2 are generated such that e=e 1 ∥e 2 .

19. The apparatus according to claim 18 , wherein e 1 and e 2 both have a bit length approximately half the bit length of n, where n is the order of the group generated by the base point on the elliptic curve.

20. The apparatus according to claim 15 , wherein the second signature component is generated as s=e 2 −1 (k−e 1 d A ) mod n, where s is the second signature component, n is an order of a group generated by the base point on the elliptic curve, k is the ephemeral private key, and d A is the long-term private key.

21. The apparatus according to claim 15 , wherein the signature comprises the second signature component and a combination of the first signature component and the second message portion.

22. An apparatus comprising:

circuitry configured to receive data, the data comprising a signature associated with a message, the signature having been generated based on a long-term private-public key pair and an ephemeral key pair, wherein the ephemeral key pair comprises an ephemeral private key and an ephemeral public key, the ephemeral public key being derived from the ephemeral private key and a base point on an elliptic curve, wherein the signature comprises a first signature component which encrypts a first message portion, a second signature component, and a second message portion, and wherein the message can be reconstructed using the first message portion and the second message portion; and

processor electronics configured to

apply a first mathematical function to a combination of the first signature component and the second message portion to obtain an intermediate component e;

use the intermediate component e to generate a first value e 1 and a second value e 2 such that a second mathematical function applied to the first value e 1 and the second value e 2 obtains the intermediate component e;

determine the ephemeral public key based on the first value e 1 , the second value e 2 , the second signature component, the base point of the elliptic curve, and a long-term public key of the long-term private-public key pair;

use the ephemeral public key to generate a decryption key;

recover a representation of the first message portion by decrypting the first signature component using the decryption key; and

verify whether the representation of the first message portion satisfies a predetermined characteristic.

23. The apparatus according to claim 22 , wherein the first value e 1 and the second value e 2 are generated such that e=e 1 /e 2 mod n, wherein n is the order of the group generated by the base point on the elliptic curve.

24. The apparatus according to claim 23 , wherein e 1 and e 2 are integers that have a bith length of approximately half the bit length of n.

25. The apparatus according to claim 22 , wherein the first value e 1 and the second value e 2 are generated such that e=e 1 ∥e 2 .

26. The apparatus according to claim 25 , wherein e 1 and e 2 each have a bit length of approximately half the bit length of n, where n is the order of the group generated by the base point on the elliptic curve.

27. The apparatus according to claim 22 , wherein the representation of the ephemeral public key is generated as Q′=(se 2 mod n)G+e 1 G A , where Q′ is the ephemeral public key, s is the second signature component, G is the base point of the elliptic curve, n is the order of the group generated by the base point on the elliptic curve, and G A is the long-term public key.

28. The apparatus according to claim 22 , wherein the signature comprises the second signature component and the combination of the first signature component and the second message portion.

29. A computer storage medium encoded with a computer program for generating a signature on a message, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

accessing a long-term private key of a long-term private-public key pair;

dividing the message into a first message portion and a second message portion;

generating an ephemeral key pair that comprises an ephemeral private key and an ephemeral public key, the ephemeral public key being derived from the ephemeral private key and a base point on an elliptic curve;

encrypting the first message portion to obtain a first signature component using an encryption key, the encryption key derived from the ephemeral public key;

applying a first mathematical function to a combination of the first signature component and the second message portion to obtain an intermediate component e;

using the intermediate component e to generate a first value e 1 and a second value e 2 such that a second mathematical function applied to the first value e 1 and the second value e 2 obtains the intermediate component e;

using the first value e 1 , the second value e 2 , the long-term private key, and the ephemeral private key to generate a second signature component; and

outputting the signature, wherein the signature comprises the first signature component, the second signature component, and the second message portion.

30. A computer storage medium encoded with a computer program for verifying a signature on a message, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:

obtaining the signature, the signature having been generated based on a long-term private-public key pair and an ephemeral key pair, wherein the ephemeral key pair comprises an ephemeral private key and an ephemeral public key, the ephemeral public key being derived from the ephemeral private key and a base point on an elliptic curve, wherein the signature comprises a first signature component which encrypts a first message portion, a second signature component, and a second message portion, and wherein the message can be reconstructed using the first message portion and the second message portion;

applying a first mathematical function to a combination of the first signature component and the second message portion to obtain an intermediate component e;

using the intermediate component e to generate a first value e 1 and a second value e 2 such that a second mathematical function applied to the first value e 1 and the second value e 2 obtains the intermediate component e;

determining the ephemeral public key based on the first value e 1 , the second value e 2 , the second signature component, the base point of the elliptic curve, and a long-term public key of the long-term private-public key pair;

using the ephemeral public key to generate a decryption key;

recovering a representation of the first message portion by decrypting the first signature component using the decryption key; and

verifying whether the representation of the first message portion satisfies a predetermined characteristic.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
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 →
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 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 029592 FRAME: 0944. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 11, 2014
From: STRUIK, MARINUS
To: CERTICOM CORP.
Reel/Frame 033720/0128 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2013
From: STRUIK, MARINUS
To: CERTICOM CORP.
Reel/Frame 029592/0944 →
Continuity (3)
Continuation In Part 11333296 · Jan 18, 2006
Provisional Application 60644034 · Jan 18, 2005
Related Publication 20110194694A1 · Aug 11, 2011