IP Library Granted Patent US 9,698,993
Granted Patent B2
US 9,698,993 · App. 14/477,073 · Granted Jul 4, 2017

Hashing prefix-free values in a signature scheme

Inventors: Gregory Marc Zaverucha (Redmond, WA); David William Kravitz (Fairfax, VA)
Assignee: Certicom Corp.
H04L9/3252H04L9/3242H04L9/3268
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,698,993
App. No.
14/477,073
Granted
Jul 4, 2017
Kind
B2
Abstract

Methods, systems, and computer programs for producing hash values are disclosed. A prefix-free value is obtained based on input data. The prefix-free value can be based on an implicit certificate, a message to be signed, a message to be verified, or other suitable information. A hash value is obtained by applying a hash function to the prefix-free value. The hash value is used in a cryptographic scheme. In some instances, a public key or a private key is generated based on the hash value. In some instances, a digital signature is generated based on the hash value, or a digital signature is verified based on the hash value, as appropriate.

Claims (62)

1. A computer-implemented method for generating a digital signature to improve security of a message, comprising:

accessing an input message comprising a first message part N and a second message part V;

generating, by data processing apparatus, an encoded message part C based on the input message, wherein generating the encoded message part C comprises:

computing an elliptic curve point Q=zG, where G is an elliptic curve point that represents a base point generator, and z is an integer;

using a key derivation function to derive a key K based on the elliptic curve point Q; and

using an encoding function to compute the encoded message part C based on the key K and the input message;

converting a value C∥V to a prefix-free value, where C∥V represents the encoded message part C concatenated with the second message part V;

obtaining a hash value by applying a hash function to the prefix-free value;

generating a signature based on the hash value and a signer's private key; and

transmitting, over a network, the signature to a recipient.

2. The method of claim 1 , wherein generating the signature comprises computing s=z−d A e(mod n), where s is an integer that represents the signature, e is an integer that represents the hash value, n is an integer that represents the order of G, and d A is an integer that represents the signer's private key.

3. The method of claim 1 , wherein sending the signature comprises sending the signature with the encoded message part C and the second message part V.

4. The method of claim 1 , wherein converting the value C∥V to a prefix-free value comprises:

generating a first value that indicates a length of the value C∥V; and

producing the prefix-free value by prepending the first value to the value C∥V.

5. The method of claim 4 , further comprising dividing the value C∥V into a plurality of blocks, wherein the first value indicates a length of the value C∥V in units of blocks.

6. The method of claim 4 , wherein the first value indicates a length of the value C∥V in units of bytes.

7. The method of claim 1 , wherein converting the value C∥V to a prefix-free value comprises:

dividing the value C∥V into a plurality of blocks, the plurality of blocks including a first plurality of blocks and a last block;

appending a zero bit to each of the first plurality of blocks; and

appending a one bit to the last block.

8. The method of claim 1 , wherein converting the value C∥V to a prefix-free value comprises converting the value C∥V to a format in which the value C∥V has a predetermined length.

9. A computing system for generating a digital signature to improve security of a message, comprising:

memory; and

data processing apparatus operable to:

access an input message comprising a first message part N and a second message part V;

generate an encoded message part C based on the input message, wherein generating the encoded message part C comprises:

computing an elliptic curve point Q=zG, where G is an elliptic curve point that represents a base point generator, and z is an integer;

using a key derivation function to derive a key K based on the elliptic curve point Q; and

using an encoding function to compute the encoded message part C based on the key K and the input message;

convert a value C∥V to a prefix-free value, where C∥V represents the encoded message part C concatenated with the second message part V;

obtain a hash value by applying a hash function to the prefix-free value;

generate a signature based on the hash value and a signer's private key; and

transmit, over a network, the signature to a recipient.

10. The computing system of claim 9 , wherein generating the signature comprises computing s=z−d A e(mod n), where s is an integer that represents the signature, e is an integer that represents the hash value, n is an integer that represents the order of G, and d A is an integer that represents the signer's private key.

11. The computing system of claim 9 , wherein converting the value C∥V to a prefix-free value comprises:

generating a first value that indicates a length of the value C∥V; and

producing the prefix-free value by prepending the first value to the value C∥V.

12. The computing system of claim 9 , wherein converting the value C∥V to a prefix-free value comprises:

dividing the value C∥V into a plurality of blocks, the plurality of blocks including a first plurality of blocks and a last block;

appending a zero bit to each of the first plurality of blocks; and

appending a one bit to the last block.

13. The computing system of claim 9 , wherein converting the value C∥V to a prefix-free value comprises converting the value C∥V to a format in which the value C∥V has a predetermined length.

14. A non-transitory computer-readable medium storing instructions that are operable when executed by data processing apparatus to perform operations for generating a digital signature to improve security of a message, comprising:

accessing an input message comprising a first message part N and a second message part V;

generating an encoded message part C based on the input message, wherein generating the encoded message part C comprises:

computing an elliptic curve point Q=zG, where G is an elliptic curve point that represents a base point generator, and z is an integer;

using a key derivation function to derive a key K based on the elliptic curve point Q; and

using an encoding function to compute the encoded message part C based on the key K and the input message;

converting a value C∥V to a prefix-free value, where C∥V represents the encoded message part C concatenated with the second message part V;

obtaining a hash value by applying a hash function to the prefix-free value;

generating a signature based on the hash value and a signer's private key; and

transmitting, over a network, the signature to a recipient.

15. The computer-readable medium of claim 14 , wherein generating the signature comprises computing s=z−d A e(mod n), where s is an integer that represents the signature, e is an integer that represents the hash value, n is an integer that represents the order of G, and d A is an integer that represents the signer's private key.

16. The computer-readable medium of claim 14 , wherein converting the value C∥V to a prefix-free value comprises:

generating a first value that indicates a length of the value C∥V; and

producing the prefix-free value by prepending the first value to the value C∥V.

17. The computer-readable medium of claim 14 , wherein converting the value C∥V to a prefix-free value comprises:

dividing the value C∥V into a plurality of blocks, the plurality of blocks including a first plurality of blocks and a last block;

appending a zero bit to each of the first plurality of blocks; and

appending a one bit to the last block.

18. The computer-readable medium of claim 14 , wherein converting the value C∥V to a prefix-free value comprises converting the value C∥V to a format in which the value C∥V has a predetermined length.

Assignments (10)
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 Jun 15, 2017
From: CERTICOM (US) LIMITED
To: CERTICOM CORP.
Reel/Frame 042821/0723 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: KRAVITZ, DAVID WILLIAM
To: CERTICOM (U.S.) LIMITED
Reel/Frame 036989/0905 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: ZAVERUCHA, GREGORY MARC
To: CERTICOM CORP.
Reel/Frame 036989/0832 →
Continuity (2)
Continuation 13458357 · Apr 27, 2012
Related Publication 20140372765A1 · Dec 18, 2014