IP Library Granted Patent US 8,971,528
Granted Patent B2
US 8,971,528 · App. 13/753,126 · Granted Mar 3, 2015

Modified elliptic curve signature algorithm for message recovery

Inventor: Matthew John Campagna (Ridgefield, CT)
Assignee: Certicom Corp.
H04L9/3252
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,971,528
App. No.
13/753,126
Granted
Mar 3, 2015
Kind
B2
Abstract

A modified Chinese State Encryption Management Bureau's SM2 Elliptic Curve Signature Algorithm that offers partial message recovery and lowers the signature size for a given cryptographic strength. The modified SM2 Elliptic Curve Signature Algorithm includes a signature and verification algorithm that modifies a signature generation primitive to compute a key derived from the ephemeral signing key, and a multiple of the signer's public key.

Claims (85)

1. A digital signature generation method for a transmitting-entity, comprising:

partitioning, by a processing circuit, a message to be transmitted into a first portion and a second portion;

generating an ephemeral key;

calculating, by the processing circuit, an encryption key based on the generated ephemeral key and a public key;

computing, by the processing circuit, a ciphertext by encrypting the first portion of the message using the calculated encryption key;

computing, by the processing circuit, a hash value by applying a first hash function to a concatenation of an identity hash value, the computed ciphertext, and the second portion of the message;

calculating, by the processing circuit, a signature key using a private key, the calculated encryption key, and the computed hash value; and

outputting an enciphered message that includes the calculated signature key, the computed ciphertext, and the second portion of the message, wherein the signature key, s, is calculated by the equation:

s =(1 +d A ) −1 ( k−r·d A )mod n,

wherein d A is the private key of the transmitting-entity, k is the ephemeral key, n is the order of the base point of the elliptic curve, and r is a first signature component calculated by the equation:

r=e+x Q mod n , and

wherein e is an integer value derived from the hash value h, and x Q is an integer conversion of the x-coordinate of the ephemeral key.

2. The digital signature generation method of claim 1 , wherein the step of calculating the encryption key, K e , is calculated by the equation:

K e =KDF( Q−x Q P A ),

wherein KDF is a key derivation function, P A is the public key, Q is the ephemeral key, and x Q is an integer conversion of the x-coordinate of Q.

3. The digital signature generation method of claim 1 , further comprising:

calculating the identity hash value by

forming a two-byte string of a distinguishing identifier;

forming a byte string of the distinguishing identifier, the public key, and a set of elliptic curve parameters; and

computing the identity hash value by applying a second hash function to the byte string.

4. The digital signature generation method of claim 1 , wherein the step of calculating the ciphertext, c, comprises calculating c by the equation:

c=E ( N,K e ),

wherein E is an encryption scheme, N is the first portion of the message to be transmitted, and k is the encryption key.

5. The digital signature generation method of claim 1 , wherein the step of calculating the hash value, h, comprises calculating h by the equation:

h =Hash( Z A ∥c∥V ),

wherein Z A is the identity hash value, c is the ciphertext, V is the second portion of the message to be transmitted, and Hash is the first hash function.

6. A digital signature verification method for a receiving-entity, comprising:

receiving an enciphered message that includes a signature key, a ciphertext, and a second portion of a message;

computing, by a processing circuit, a hash value by applying a first hash function to a concatenation of an identity hash value, the received ciphertext, and the received second portion of the message;

computing, by the processing circuit, an ephemeral key based on a public key, the received signature key, and the computed hash value;

computing, by the processing circuit, a decryption key based on the computed ephemeral key;

calculating, by the processing circuit, a first portion of the message by decrypting the received ciphertext using the computed decryption key; and

checking that the calculated first portion of the message has necessary redundancy to verify the message, wherein the ephemeral key, Q′, is calculated by the equation:

Q′=sG +( e+s ) P A , and

wherein s is the signature key, P A is the public key, e is the hash value expressed as an integer, and G is a base point of an elliptic curve.

7. The digital signature verification method of claim 6 , wherein the step of computing the decryption key, K e ′, comprises calculating the decryption key by the equation:

K e ′=KDF( Q ′),

wherein KDF is a key derivation function, and Q′ is the ephemeral key.

8. The digital signature verification method of claim 6 , wherein the step of computing the first portion of the message, N′, comprises calculating the first portion by the equation:

N′=E −1 ( c,K e ′),

wherein c is the received ciphertext, K e ′ is the computed decryption key, and E −1 is a decryption scheme.

9. A digital signature generation apparatus, comprising:

a processing circuit configured to:

partition a message to be transmitted into a first portion and a second portion;

generate an ephemeral key;

calculate an encryption key based on the generated ephemeral key and a public key;

compute a ciphertext by encrypting the first portion of the message using the calculated encryption key;

compute a hash value by applying a first hash function to a concatenation of an identity hash value, the computed ciphertext, and the second portion of the message;

calculate a signature key using a private key, the calculated encryption key, and the computed hash value; and

output an enciphered message that includes the calculated signature key, the computed ciphertext, and the second portion of the message, wherein the signature key, s, is calculated by the equation:

s =(1 +d A ) −1 ( k−r·d A )mod n,

wherein d A is the private key of the transmitting-entity, k is the ephemeral key, n is the order of the base point of the elliptic curve, and r is a first signature component calculated by the equation:

r=e+x Q mod n , and

wherein e is an integer value derived from the hash value h, and x Q is an integer conversion of the x-coordinate of the ephemeral key.

10. A digital signature verification apparatus, comprising:

a processing circuit configured to:

receive an enciphered message that includes a signature key, a ciphertext, and a second portion of a message;

compute a hash value by applying a first hash function to a concatenation of an identity hash value, the received ciphertext, and the received second portion of the message;

compute an ephemeral key based on a public key, the received signature key, and the computed hash value;

compute a decryption key based on the computed ephemeral key;

calculate a first portion of the message by decrypting the received ciphertext using the computed decryption key; and

check that the calculated first portion of the message has necessary redundancy to verify the message, wherein the ephemeral key, Q′, is calculated by the equation:

Q′=sG +( e+s ) P A , and

wherein s is the signature key, P A is the public key, e is the hash value expressed as an integer, and G is a base point of an elliptic curve.

11. A non-transitory computer-readable medium having stored thereon a program that when executed by a computer causes the computer to execute the steps of:

partitioning a message to be transmitted into a first portion and a second portion;

generating an ephemeral key;

calculating an encryption key based on the generated ephemeral key and a public key;

computing a ciphertext by encrypting the first portion of the message using the calculated encryption key;

computing a hash value by applying a first hash function to a concatenation of an identity hash value, the computed ciphertext, and the second portion of the message;

calculating a signature key using a private key, the calculated encryption key, and the computed hash value; and

outputting an enciphered message that includes the calculated signature key, the computed ciphertext, and the second portion of the message, wherein the signature key, s, is calculated by the equation:

s =(1 +d A ) −1 ( k−r·d A )mod n,

wherein d A is the private key of the transmitting-entity, k is the ephemeral key, n is the order of the base point of the elliptic curve, and r is a first signature component calculated by the equation:

r=e+x Q mod n , and

wherein e is an integer value derived from the hash value h, and x Q is an integer conversion of the x-coordinate of the ephemeral key.

12. A non-transitory computer-readable medium having stored thereon a program that when executed by a computer causes the computer to execute the steps of:

receiving an enciphered message that includes a signature key, a ciphertext, and a second portion of a message;

computing a hash value by applying a first hash function to a concatenation of an identity hash value, the received ciphertext, and the received second portion of the message;

computing an ephemeral key based on a public key, the received signature key, and the computed hash value;

computing a decryption key based on the computed ephemeral key;

calculating a first portion of the message by decrypting the received ciphertext using the computed decryption key; and

checking that the calculated first portion of the message has necessary redundancy to verify the message, wherein the ephemeral key, Q′, is calculated by the equation:

Q′=sG +( e+s ) P A , and

wherein s is the signature key, P A is the public key, e is the hash value expressed as an integer, and G is a base point of an elliptic curve.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2013
From: CERTICOM (US) LIMITED
To: CERTICOM CORP.
Reel/Frame 030276/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2013
From: CAMPAGNA, MATTHEW JOHN
To: CERTICOM LIMITED
Reel/Frame 030236/0248 →
Continuity (1)
Related Publication 20140211938A1 · Jul 31, 2014