IP Library › Granted Patent US 11,044,081
Granted Patent B2
US 11,044,081 · App. 16/258,109 · Granted Jun 22, 2021

System and method for obtaining a common session key between devices

Inventors: Yanjiang Yang (Singapore, SG); Jie Shi (Singapore, SG); Guilin Wang (Singapore, SG)
Assignee: Huawei International Pte. Ltd.
H04L9/0841H04L9/0643H04L9/0866H04L9/0869H04L9/3247H04L63/123
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 11,044,081
App. No.
16/258,109
Granted
Jun 22, 2021
Kind
B2
Abstract

This document describes a system and method for generating a common session key for encoding digital communications between devices. In particular, the system allows two devices to verify the veracity of each device before these authenticated devices proceed to generate a common session key that is then utilized to encode digital communications between these two devices.

Claims (49)

1. A method of generating a common session key SK ij for encoding digital communications between a first entity and a second entity, comprising:

generating, by a secure server, a private key sk i for the first entity, wherein the private key sk i comprises a Discrete-Logarithm type digital signature [R i , s i ], of an identity of the first entity id i , and generating, by the secure server, a private key sk i for the second entity wherein the private key sk i comprises a Discrete-Logarithm type digital signature [R j , s j ], of an identity of the second entity id j , wherein R i and R j are group elements, and s i and s j comprise integers modulo q, whereby q is a prime number, wherein the private key sk i is communicated to the first entity and the private key sk i is communicated to the second entity;

sharing, by the first entity, a cryptographic nonce N i , the identity of the first entity id i , and R i with the second entity;

calculating, by the second entity, an implicitly shared secret k ji using the shared R i , and providing the implicitly shared secret k ji , the cryptographic nonce N i , and a cryptographic nonce N j to an Authentication Data Deriving Function to generate an authentication data Ad j ;

sharing, by the second entity, the cryptographic nonce N j , the identity of the second entity id j , R j , and the authentication data Ad j with the first entity; and

calculating, by the first entity, an implicitly shared secret k ij using the shared R j and verifying the authentication data Ad j using the implicitly shared secret k ij , the cryptographic nonce N i , and the cryptographic nonce N j , wherein if the authentication data Ad j is verified, generating the common session key SK ij by providing the implicitly shared secret k ij , the cryptographic nonce N i , the cryptographic nonce N j , the identity of the first entity id i and the identity of the second entity id j to a Key Deriving Function.

2. The method according to claim 1 further comprising:

providing, by the first entity, the implicitly shared secret k ij , the cryptographic nonce N i , and the cryptographic nonce N j to the Authentication Data Deriving Function to generate an authentication data Ad i , and communicating the authentication data Ad i to the second entity; and

verifying, by the second entity, the authentication data Ad i using the implicitly shared secret k ji , wherein if the authentication data Ad i is verified, providing the implicitly shared secret k ji , the cryptographic nonce N i , the cryptographic nonce N j , the identity of the first entity id i and the identity of the second entity id j to the Key Deriving Function to generate the common session key SK ij .

3. The method according to claim 1 , wherein the generation of the authentication data Ad j further comprises providing the identity of the first entity id i and the identity of the second entity id j to the Authentication Data Deriving Function.

4. The method according to claim 2 , wherein the generation of the authentication data Ad i further comprises providing the identity of the first entity id i and the identity of the second entity id j to the Authentication Data Deriving Function.

5. The method according to claim 1 , wherein the verifying the authentication data Ad j comprises:

providing the implicitly shared secret k ij , the cryptographic nonce N i , and the cryptographic nonce N j to the Authentication Data Deriving Function to obtain a result, and determining if the result matches with authentication data Ad j , wherein if a match is found, verifying the authentication data Ad j .

6. The method according to claim 2 , wherein the verifying the authentication data Ad i comprises:

providing the implicitly shared secret k ji , the cryptographic nonce N i , and the cryptographic nonce N j to the Authentication Data Deriving Function to obtain a result, and determining if the result matches with the authentication data Ad i , wherein if a match is found, verifying the authentication data Ad i .

7. The method according to claim 1 , wherein the cryptographic nonce N i comprises g a where a is a random number and wherein g is a generator of a cyclic group G.

8. The method according to claim 1 , wherein the cryptographic nonce N j comprises g b where b is a random number and wherein g is a generator of a cyclic group G.

9. The method according to claim 1 , wherein the private key sk i is a Schnorr signature of the identity of the first entity, id i , wherein R i =g r i , and s i =r i +xH(R i , id i ) (modulo q), and wherein the private key sk j is a Schnorr signature of the identity of the second entity, id j , wherein R j =g r j and s j =r j +xH(R j , id j ) (modulo q), where r i and r j are random numbers, x is a master secret key, and H( ) is a collision-resistant hash function, and

wherein the implicitly shared secret k ji =g si·sj , and the implicitly shared secret k ij =g sj·si , wherein g is a generator of a cyclic group G.

10. The method according to claim 1 , wherein the private key sk i is a first variant of an El Gamal signature of the identity of the first entity id i , wherein R i =g r i , and s i =x −1 ·(H(id i )−r i ·R i ) (modulo q), and wherein the private key sk j is a first variant of an El Gamal signature of the identity of the second entity id j , wherein R j =g r j and s j =x −1 ·(H(id j )−r j ·R j ) (modulo q), where r i and r j are random numbers, x is a master secret key, H( ) is a collision-resistant hash function and,

wherein the implicitly shared secret k ji =y si·sj , and the implicitly shared secret k ij =y sj·si , wherein y=g x is master public key, and wherein g is a generator of a cyclic group G.

11. The method according to claim 1 , wherein the private key sk i is a second variant of an El Gamal signature of the identity of the first entity id i , wherein R i =g r i , and s i =xR i +r i ·(H(id i ) (modulo q), and wherein the private key sk j is a second variant of an El Gamal signature of the identity of the second entity id j , wherein R j =g r j and s j =xR j +r j ·(H(id j ) (modulo q), wherein r i and r j are random numbers, x is a master secret key, and H( ) is a collision-resistant hash function, and

wherein the implicitly shared secret k ji =g si·sj , and the implicitly shared secret k ij =g sj·si , and wherein g is a generator of a cyclic group G.

12. The method according to claim 1 , wherein the private key sk i is a third variant of an El Gamal signature of the identity of the first entity id i , wherein R i =g r i , and s i =x·(H(id i )+r i ·R i (modulo q), and wherein the private key sk j is a third variant of an El Gamal signature of the identity of the second entity id j , wherein R j =g r j and s j =x·(H(id j )+r j ·R j (modulo q), wherein r i and r j are random numbers, x is a master secret key, and H( ) is a collision-resistant hash function, and

wherein the implicitly shared secret k ji =g si·sj , and the implicitly shared secret k ij =g sj·si , and wherein g is a generator of a cyclic group G.

13. The method according to claim 1 , wherein the private key sk i is a fourth variant of an El Gamal signature of the identity of the first entity id i , wherein R i =g r i , and s i =x −1 ·(R i −r i ·(H(id i )) (modulo q), and wherein the private key sk j is a fourth variant of an El Gamal signature of the identity of the second entity id j , wherein R j =g r j and s j =x −1 ·(R j −r j ·(H(id j )) (modulo q), where r i and r j are random numbers, x is a master secret key, and H( ) is a collision-resistant hash function and,

wherein the implicitly shared secret k ji =y si·sj , and the implicitly shared secret k ij =y sj·si , wherein y=g x is master public key, and wherein g is a generator of a cyclic group G.

14. A method of generating a common session key SK ij for encoding digital communications between a first entity and a second entity, comprising:

generating, by a secure server, a private key sk i for the first entity wherein the private key sk i comprises a Discrete-Logarithm type digital signature [R i , s i ], of an identity of the first entity id i , and generating, by the secure server, a private key sk i for the second entity, wherein the private key sk i comprises a Discrete-Logarithm type digital signature [R j , s j ], of an identity of the second entity id j , wherein R i and R j are group elements, and s i and s j comprise integers modulo q, wherein q is a prime number, wherein the private key sk i is communicated to the first entity and the private key sk j is communicated to the second entity;

sharing, by the first entity, a cryptographic nonce N i , the identity of the first entity id i , and R i with the second entity;

calculating, by the second entity, an implicitly shared secret k ji =g si·sj , using the shared R i , wherein g is a generator of a cyclic group G, and calculating the common session key SK ji by providing the implicitly shared secret k ji , the cryptographic nonce N i , the cryptographic nonce N j , the identity of the first entity id i and the identity of the second entity id j to the Key Deriving Function, and providing the common session key SK ji , the cryptographic nonce N i , and a cryptographic nonce N j to an Authentication Data Deriving Function to generate an authentication data Ad j ;

sharing, by the second entity, the cryptographic nonce N j , the identity of the second entity id j , R j , and the authentication data Ad j with the first entity; and

calculating, by the first entity, an implicitly shared secret k ij =g sj·si , using the shared R j , and calculating a common session key SK ij by providing the implicitly shared secret k ij , the cryptographic nonce N i , the cryptographic nonce N j , the identity of the first entity id i and the identity of the second entity id j to the Key Deriving Function and verifying the authentication data Ad j using the common session key SK ij , the cryptographic nonce N i , and the cryptographic nonce N j , wherein if the authentication data Ad j is verified, using the common session key SK ij or SK ji as the common session key for encoding digital communications between a first entity and a second entity.

15. A system for generating a common session key SK ij for encoding digital communications between a first entity and a second entity, comprising:

a secure server configured to:

share a private key sk i for the first entity, wherein the private key sk i comprises a Discrete-Logarithm type digital signature [R i , s i ], of an identity of the first entity id i ; and

generate a private key sk j for the second entity, wherein the private key sk j comprises a Discrete-Logarithm type digital signature [R j , s j ], of an identity of the second entity id j , wherein R i and R j are group elements, and s i and s j comprise integers modulo q, wherein q is a prime number, and wherein the private key sk i is communicated to the first entity and the private key sk j is communicated to the second entity;

wherein the first entity configured to share a cryptographic nonce N i , the identity of the first entity id i , and R i with the second entity;

wherein the second entity configured to calculate an implicitly shared secret k ji using the shared R i , and providing the implicitly shared secret k ji , the cryptographic nonce N i , and a cryptographic nonce N j to an Authentication Data Deriving Function to generate an authentication data Ad j ;

wherein the second entity configured to share the cryptographic nonce N j , the identity of the second entity id j , R j , and the authentication data Ad j with the first entity; and

wherein the first entity configured to calculate the implicitly shared secret k ij =g sj·si , using the shared R j and verifying the authentication data Ad j using the implicitly shared secret k ij , the cryptographic nonce N i , and the cryptographic nonce N j , wherein if the authentication data Ad j is verified, generating the common session key SK ij by providing the implicitly shared secret k ij , the cryptographic nonce N i , the cryptographic nonce N j , the identity of the first entity id i and the identity of the second entity id j to a Key Deriving Function.

16. A system for generating a common session key SK ij for encoding digital communications between a first entity and a second entity, comprising:

a secure server configured to:

generate a private key sk i for the first entity, wherein the private key sk i comprises a Discrete-Logarithm type digital signature [R i , s i ], of an identity of the first entity id i ; and

generate a private key sk j for the second entity, wherein the private key sk j comprises a Discrete-Logarithm type digital signature [R j , s j ], of an identity of the second entity id j , wherein R i and R j are group elements, and s i and s j comprise integers modulo q, wherein q is a prime number, wherein the private key sk i is communicated to the first entity and the private key sk j is communicated to the second entity;

wherein the first entity configured to share a cryptographic nonce N i , the identity of the first entity id i , and R i with the second entity;

wherein the second entity configured to calculate an implicitly shared secret k ji =g si·sj , using the shared R i , wherein g is a generator of a cyclic group G, and calculating the common session key SK ji by providing the implicitly shared secret k ji , the cryptographic nonce N i , the cryptographic nonce N j , the identity of the first entity id i and the identity of the second entity id j to the Key Deriving Function, and providing the common session key SK ji , the cryptographic nonce N i , and a cryptographic nonce N j to an Authentication Data Deriving Function to generate an authentication data Ad j ;

wherein the second entity configured to share the cryptographic nonce N j , the identity of the second entity id j , R j , and the authentication data Ad j with the first entity; and

wherein the first entity configured to calculate an implicitly shared secret k ij =g sj·si , using the shared R j , and calculating a common session key SK ij by providing the implicitly shared secret k ij , the cryptographic nonce N i , the cryptographic nonce N j , the identity of the first entity id i and the identity of the second entity id j to the Key Deriving Function and verifying the authentication data Ad j using the common session key SK ij , the cryptographic nonce N i , and the cryptographic nonce N j , wherein if the authentication data Ad j is verified, using the common session key SK ij or SK ji as the common session key for encoding digital communications between a first entity and a second entity.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2019
From: YANG, YANJIANG; SHI, JIE; WANG, GUILIN
To: HUAWEI INTERNATIONAL PTE. LTD.
Reel/Frame 050203/0876 →
Priority Claims (1)
SG 10201606164T · Jul 26, 2016 · national
Continuity (2)
Continuation PCTSG2017050161 · Mar 28, 2017
Related Publication 20190173671A1 · Jun 6, 2019