IP Library Granted Patent US 8,645,703
Granted Patent B2
US 8,645,703 · App. 13/489,690 · Granted Feb 4, 2014

Power analysis countermeasure for the ECMQV key agreement algorithm

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,645,703
App. No.
13/489,690
Granted
Feb 4, 2014
Kind
B2
Abstract

Execution of the ECMQV key agreement algorithm requires determination of an implicit signature, which determination involves arithmetic operations. Some of the arithmetic operations employ a long-term cryptographic key. It is the execution of these arithmetic operations that can make the execution of the ECMQV key agreement algorithm vulnerable to a power analysis attack. In particular, an attacker using a power analysis attack may determine the long-term cryptographic key. By modifying the sequence of operations involved in the determination of the implicit signature and the inputs to those operations, power analysis attacks may no longer be applied to determine the long-term cryptographic key.

Claims (60)

1. A method of encrypting a message in a manner that counters power analysis attacks, wherein a long-term private cryptographic key has been selected and a long-term public cryptographic key has been determined based on the long-term private cryptographic key and a base point on a given elliptic curve, the base point having a prime order, the method comprising:

determining a modular inverse of the long-term private cryptographic key;

generating a sessional private cryptographic key and a sessional public cryptographic key;

determining an implicit signature based on the modular inverse of the long-term private cryptographic key, the sessional private cryptographic key, the sessional public cryptographic key and the long-term private cryptographic key;

determining a shared secret cryptographic key based on the implicit signature; and

encrypting a message using the shared secret cryptographic key;

wherein determining the implicit signature comprises evaluating:

S A =( k A d A −1 + R A ) d A mod u

wherein

S A is the implicit signature;

k A is the sessional private cryptographic key;

d A −1 is the modular inverse of the long-term cryptographic key;

d A is the long-term cryptographic key;

R A is a function of the sessional public cryptographic key, R A ; and

u is the order of the base point.

2. The method of claim 1 wherein the generating the sessional public cryptographic key comprises executing an elliptic curve scalar multiplication of the sessional private cryptographic key and the base point.

3. The method of claim 1 wherein the encrypting produces an encrypted message and the method further comprises transmitting the encrypted message to a destination.

4. The method of claim 3 further comprising receiving, from the destination:

a long-term destination public cryptographic key; and

a sessional destination public cryptographic key.

5. The method of claim 4 wherein the determining the shared secret cryptographic key comprises evaluating

K A =hS A ( R B + R B Q B )

wherein

K A is the shared secret cryptographic key;

h is a co-factor;

S A is the implicit signature;

R B is the sessional public cryptographic key;

R B is a function of the sessional destination public cryptographic key; and

Q B is the long-term destination public cryptographic key.

6. A mobile communication device for encrypting a message in a manner that counters power analysis attacks, wherein a long-term private cryptographic key has been selected and a long-term public cryptographic key has been determined based on the long-term private cryptographic key and a base point on a given elliptic curve, the base point having a prime order, the mobile communication device comprising:

a processor adapted to:

determine a modular inverse of the long-term private cryptographic key;

generate a sessional private cryptographic key and a sessional public cryptographic key;

determine an implicit signature based on the modular inverse of the long-term private cryptographic key, the sessional private cryptographic key, the sessional public cryptographic key and the long-term private cryptographic key;

determine a shared secret cryptographic key based on the implicit signature; and

encrypt a message using the shared secret cryptographic key;

wherein determining the implicit signature comprises evaluating:

S A =( k A d A −1 + R A ) d A mod u

wherein

S A is the implicit signature;

k A is the sessional private cryptographic key;

d A −1 is the modular inverse of the long-term cryptographic key;

d A is the long-term cryptographic key;

R A is a function of the sessional public cryptographic key, R A ; and

u is the order of the base point.

7. A non-transitory computer readable medium containing computer-executable instructions that, when performed by a processor given a long-term private cryptographic key and a long-term public cryptographic key, which has been determined based on the long-term private cryptographic key and a base point on a given elliptic curve, the base point having a prime order, cause the processor to:

determine a modular inverse of the long-term private cryptographic key;

generate a sessional private cryptographic key and a sessional public cryptographic key;

determine an implicit signature based on the sessional private cryptographic key, the sessional public cryptographic key, the long-term private cryptographic key and the modular inverse of the long-term private cryptographic key;

determine a shared secret cryptographic key based on the implicit signature; and

encrypt a message using the shared secret cryptographic key;

wherein determining the implicit signature comprises evaluating:

S A =( k A d A −1 + R A ) d A mod u

wherein

S A is the implicit signature;

k A is the sessional private cryptographic key;

d A −1 is the modular inverse of the long-term cryptographic key;

d A is the long-term cryptographic key;

R A is a function of the sessional public cryptographic key, R A ; and

u is the order of the base point.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Dec 20, 2013
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 031867/0325 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2012
From: EBEID, NEVINE MAURICE NASSIF
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028327/0718 →