IP Library Granted Patent US 9,967,239
Granted Patent B2
US 9,967,239 · App. 14/992,397 · Granted May 8, 2018

Method and apparatus for verifiable generation of public keys

Inventor: Daniel R. Brown (Mississauga, CA)
Assignee: Certicom Corp.
H04L63/045H04L9/0861H04L9/3066H04L9/321H04L9/3236H04L9/3247H04L9/3252H04L9/3263H04L63/0823
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 9,967,239
App. No.
14/992,397
Granted
May 8, 2018
Kind
B2
Abstract

The invention provides a method of verifiable generation of public keys. According to the method, a self-signed signature is first generated and then used as input to the generation of a pair of private and public keys. Verification of the signature proves that the keys are generated from a key generation process utilizing the signature. A certification authority can validate and verify a public key generated from a verifiable key generation process.

Claims (63)

1. A computer implemented method of generation of keys on a first hardware computing device, said method comprising:

combining pre-message data and a data pair into a self-signed signature message, where one of said data pair is generated based on an ephemeral private key, and said data pair representing signature data to bind said first hardware computing device to said self-signed signature message;

hashing said self-signed signature message to produce a message digest;

computing a private key based on said message digest;

computing a public key based upon said private key;

sending said public key with information to a second hardware computing device, separate from said first hardware computing device, operating as certification authority;

in response to verifying, by said certification authority an identity of said first hardware computing device for said generation of a key pair for said private key and said public key, issuing a certificate; and

receiving, by said first hardware computing device from said certificate authority, said certificate that has been issued.

2. The method of claim 1 , further comprising computing a corresponding public key using said self-signed signature message.

3. The method of claim 2 , wherein said generation of said public key is verifiable using said self-signed signature message and said self-signed signature message.

4. The method of claim 2 , wherein said self-signed signature message, said private key, and said public key are generated based on a Digital Signature Algorithm (DSA).

5. The method of claim 2 , wherein said self-signed signature message, said private key, and said public key are generated based on an Elliptic Curve Digital Signature Algorithm.

6. The method of claim 1 , further comprising said first hardware computing device receiving at least a portion of said message data from a trusted authority, wherein said portion of said message data contains randomness.

7. The method of claim 6 , further comprising:

said first hardware computing device sending a request message to said certification authority; and

said first hardware computing device receiving at least said portion of said message data from said certification authority over a secure channel;

wherein at least said portion of said message data is generated by said certification authority from said request message and signed with a private key of said certification authority.

8. The method of claim 1 , wherein said self-signed signature message includes an integer, and said generating said self-signed signature message comprises:

generating an ephemeral public key;

obtaining a salt value;

computing a hash value of a pre-determined number of repetitions of a concatenation of said salt value and said ephemeral public key; and

assigning, as said integer, an integer value of said hash value.

9. The method of claim 1 , wherein said self-signed signature message includes an integer, and said generating said self-signed signature message comprises:

selecting an ephemeral private key, said ephemeral private key being a value selected at random;

computing an ephemeral public key from said ephemeral private key, said ephemeral public key being a product of said ephemeral private key and an elliptic curve point; and

assigning to said integer an integer value corresponding to said ephemeral public key.

10. The method of claim 1 , wherein said generating a self-signed signature message by combining said message data and said self-signed signature message comprises concatenating said message data and said self-signed signature message into said self-signed signature message, and wherein said computing said private key comprises:

computing a message digest from an integer hash value of said self-signed signature message;

computing said private key from said self-signed signature message and said message digest.

11. The method of claim 1 , wherein generating said self-signed signature message comprises:

selecting an ephemeral private key k, said ephemeral private key k being a non-negative integer smaller than a prime number n;

computing an ephemeral public key from said ephemeral private key k, said ephemeral public key being a product of said ephemeral private key and an elliptic curve point G having said prime number as its order;

assigning an integer value corresponding to said ephemeral public key to a first integer r; and

selecting a second integer s, said second integer being a non-negative integer smaller than said prime number n, said first integer r and said second integer s forming said self-signed signature message.

12. The method of claim 11 , wherein computing said private key comprises:

computing a message digest e from an integer hash value of said self-signed signature message; and

computing said private key d using a formula d=(s k−e)/r mod n.

13. The method of claim 12 , wherein computes said public key Q using a formula Q=d G.

14. The method of claim 12 , wherein computes said public key Q using a formula Q=(1/r mod n)(sR−eG), where R is an elliptic curve point where R=kG.

15. The method of claim 11 , wherein assigning said integer value comprises:

providing a salt value;

computing a hash value for a pre-determined number of repetitions of a concatenation of said salt value and said ephemeral public key; and

assigning an integer value of said hash value to said first integer r.

16. A non-transitory computer readable medium for generating of keys on a first hardware computing device, said non-transitory computer readable medium having stored thereon computer executable instructions for:

combining pre-message data and a data pair into a self-signed signature message, where one of said data pair is generated based on an ephemeral private key, and said data pair representing signature data to bind said first hardware computing device to said self-signed signature message;

hashing said self-signed signature message to produce a message digest;

computing a private key based on said message digest;

computing a public key based upon said private key;

sending said public key with information to a second hardware computing device, separate from said first hardware computing device, operating as certification authority;

in response to verifying, by said certification authority an identity of said first hardware computing device for said generation of a key pair for said private key and said public key, issuing a certificate; and

receiving, by said first hardware computing device from said certificate authority, said certificate that has been issued.

17. The non-transitory computer readable medium of claim 16 , further comprising computing a corresponding public key using said self-signed signature message.

18. The non-transitory computer readable medium of claim 17 , wherein said generation of said public key is verifiable using said self-signed signature message and said self-signed signature message.

19. The hardware-based computing device of claim 16 , further comprising computing a corresponding public key using said self-signed signature message.

20. A first hardware computing device for generating keys, said first hardware computing device comprising:

a processor and memory executing computer instructions to perform

combining pre-message data and a data pair into a self-signed signature message, where one of said data pair is generated based on an ephemeral private key, and said data pair representing signature data to bind said first hardware computing device to said self-signed signature message;

hashing said self-signed signature message to produce a message digest;

computing a private key based on said message digest;

computing a public key based upon said private key;

sending said public key with information to a second hardware computing device, separate from said first hardware computing device, operating as certification authority;

in response to verifying, by said certification authority an identity of said first hardware computing device for said generation of a key pair for said private key and said public key, issuing a certificate; and

receiving, by said first hardware computing device from said certificate authority, said certificate that has been issued.

Assignments (8)
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 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2017
From: BROWN, DANIEL R.
To: CERTICOM CORP.
Reel/Frame 043460/0214 →
Continuity (3)
Continuation 10974802 · Oct 28, 2004
Provisional Application 60514687 · Oct 28, 2003
Related Publication 20160248735A1 · Aug 25, 2016