IP Library Granted Patent US 7,545,932
Granted Patent B2
US 7,545,932 · App. 10/978,162 · Granted Jun 9, 2009

Secure authenticated channel

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 7,545,932
App. No.
10/978,162
Granted
Jun 9, 2009
Kind
B2
Abstract

A protocol (i.e. method) and corresponding apparatuses for calculating a session key. Two peers with knowledge of a common Diffie-Hellman permanent key, K perm , and the identity and public key of the other peer. A first peer chooses a first ephemeral private key x and calculates the first corresponding ephemeral public key g x , which is sent to the second peer. The second peer calculates a second ephemeral public key g y in the same manner, and an ephemeral shared key K eph , hashes g y , K eph , K perm , and its identity, and sends g y and the hash to the first peer. The first peer calculates K eph , verifies the hash, and hashes g x , K eph , K perm , and its identity, and sends it to the second peer that verifies this hash. Thereafter, both peers obtain a session key by hashing K eph . The apparatuses may then use the session key to establish a secure authenticated channel (SAC).

Claims (98)

1. A method of calculating a session key shared by a first and a second device, the first device having knowledge of an identity corresponding to itself and an identity corresponding to the second device, and an agreed key common to both devices, the second device having knowledge of an identity corresponding to itself and an identity corresponding to the first device, and an agreed key common to both devices, the method comprising the steps of:

at the first device:

choosing a first ephemeral private key;

calculating a first ephemeral public key;

sending the first ephemeral public key to the second device;

at the second device:

receiving the first ephemeral public key;

choosing a second ephemeral private key;

calculating a second ephemeral public key;

calculating an ephemeral shared key from the first ephemeral public key and the second ephemeral private key;

calculating a first value from the second ephemeral public key, the ephemeral shared key, the agreed key, and the identity corresponding to itself;

sending the second ephemeral public key and the first value to the first device;

at the first device:

receiving the second ephemeral public key and the first value from the second device;

calculating the ephemeral shared key from the second ephemeral public key and the first ephemeral private key;

verifying the first value;

calculating a second value from the first ephemeral public key, the ephemeral shared key, the agreed key, and the identity corresponding to itself;

sending the second value to the second device;

calculating a session key as a function of the ephemeral shared key; and

at the second device:

receiving the second value;

verifying the second value; and

calculating the session key as a function of the ephemeral shared key.

2. The method according to claim 1 , further comprising the step of aborting the method if a verification fails.

3. The method according to claim 1 , wherein the first value, the second value and the session key are calculated using hash functions.

4. The method according to claim 3 , wherein the hash functions used to calculated the first value, the second value, and the session key are the same.

5. A first device for participating, with a second device, in the calculation of a shared session key, the first device having knowledge of an identity corresponding to itself and an identity corresponding to the second device, and an agreed key common to both devices, the first device comprising a processor for:

choosing an ephemeral private key;

calculating a first ephemeral public key;

sending the first ephemeral public key to the second device;

receiving a second ephemeral public key and a first value calculated from the second ephemeral public key, an ephemeral shared key, the agreed key, and the identity corresponding to the second device from the second device;

calculating the ephemeral shared key from the ephemeral private key and the second ephemeral public key;

verifying the first value;

calculating a second value from the first ephemeral public key, the ephemeral shared key, the agreed key, and the identity corresponding to the first device;

sending the second value to the second device; and

calculating a session key as a function of the ephemeral shared key.

6. A device according to claim 5 , wherein the processor further aborts the calculation if a hash value is not successfully verified.

7. A second device for participating, with a first device, in the calculation of a shared session key, the second device having knowledge of an identity corresponding to itself and an identity corresponding to the first device, and an agreed key common to both devices, the second device comprising a processor for:

receiving from the first device a first ephemeral public key;

choosing an ephemeral private key;

calculating a second ephemeral public key;

calculating an ephemeral shared key from the ephemeral private key and the second ephemeral public key

calculating a first value from the second ephemeral public key, the ephemeral shared key, the agreed key, and the identity corresponding to the second device;

sending the second ephemeral public key and the first value to the first device;

receiving a second value calculated from the first ephemeral public key, the ephemeral shared key, the agreed key, and the identity corresponding to the first device from the first device;

verifying the second value; and

calculating a session key as a function of the ephemeral shared key.

8. A method of calculating a session key shared by a first and a second device, the first device having a certificate comprising a public key and an identity corresponding to itself and knowledge of the identity corresponding to itself a private key, and the public key, the second device having a certificate comprising a public key and an identity corresponding to itself, and knowledge of the identity corresponding to itself, a private key, and the public key, the method comprising the steps of:

at the first device:

choosing a first ephemeral private key;

calculating a first ephemeral public key;

sending its certificate and the first ephemeral public key to the second device;

at the second device:

receiving the certificate of the first device and the first ephemeral public key;

verifying the certificate of the first device;

choosing a second ephemeral private key;

calculating a second ephemeral public key;

calculating an ephemeral shared key from the first ephemeral public key and the second ephemeral private key;

calculating a permanent key from the public key of the first device and its own private key;

calculating a first value from the second ephemeral public key, the ephemeral shared key, the permanent key, and the identity corresponding to itself;

sending its certificate, the second ephemeral public key and the first value to the first device;

at the first device:

receiving the certificate of the second device, the second ephemeral public key and the first value from the second device;

verifying the certificate of the second device;

calculating the ephemeral shared key from the second ephemeral public key and the first ephemeral private key;

calculating the permanent key from the public key of the second device and its own private key;

verifying the first value;

calculating a second value from the first ephemeral public key, the ephemeral shared key, the permanent key, and the identity corresponding to itself;

sending the second value to the second device;

at the second device:

receiving the second value;

verifying the second value; and

calculating a session key as a function of the ephemeral shred key; and at the first device:

calculating the session key as a function of the ephemeral shared key.

9. A first device for participating, wit a second device, in the calculation of a shared session key, the first device having a certificate comprising a public key and an identity corresponding to itself, and knowledge of the identity corresponding to itself, a private key, and the public key, the first device comprising a processor for:

choosing an ephemeral private key;

calculating a first ephemeral public key;

sending its certificate and the first ephemeral public key to the second device;

receiving a certificate of the second device, a second ephemeral public key and a first value from the second device, the certificate comprising a public key and an identity of the second device, and the first value being calculated from the second ephemeral public key, an ephemeral shared key, a permanent key, and the identity corresponding to the second device;

verifying the certificate of the second device;

calculating the ephemeral shared key from the second ephemeral public key and the ephemeral private key;

calculating the permanent key from the public key of the second device and its own private key;

verifying the first value;

calculating a second value from the first ephemeral public key, the ephemeral shared key, the permanent key, and the identity corresponding to itself;

sending the second value to the second device; and

calculating a session key as a function of the ephemeral shared key.

10. A second device for participating, with a first device, in the calculation of a shared session key, the second device having a certificate comprising a public key and an identity corresponding to itself, and knowledge of the identity corresponding to itself, a private key, and the public key, the second device comprising a processor for:

receiving a certificate of the first device and a first ephemeral public key, the certificate comprising a public key and an identity of the first device;

verifying the certificate of the first device;

choosing an ephemeral private key;

calculating a second ephemeral public key;

calculating an ephemeral shared key from the first ephemeral public key and the ephemeral private key;

calculating a permanent key from the public key of the fast device and its own private key;

calculating a first value from the second ephemeral public key, the ephemeral shared key, the permanent key, and the identity corresponding to itself;

sending its certificate, the second ephemeral public key and the first value to the first device;

receiving a second value from the first device, the second value being calculated from the first ephemeral public key, the ephemeral shared key, the permanent key, and the identity corresponding to the first device;

verifying the second value; and

calculating the session key as a function of the ephemeral shared key.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2020
From: THOMSON LICENSING S.A.S.
To: MAGNOLIA LICENSING LLC
Reel/Frame 053570/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2009
From: THOMSON LICENSING S.A.
To: THOMSON LICENSING
Reel/Frame 022565/0965 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2005
From: DURAND, ALAIN; ANDREAUX, JEAN-PIERRE; SIRVENT, THOMAS
To: THOMSON LICENSING S.A.
Reel/Frame 015837/0034 →