IP Library Granted Patent US 12,284,275
Granted Patent B2
US 12,284,275 · App. 18/373,152 · Granted Apr 22, 2025

Method for securely generating and distributing symmetric keys for grouping secure communications

Inventor: Guang Wu (Philadelphia, PA)
Assignee: Fort Robotics, Inc.
H04L9/0869H04L9/0877H04L9/0894
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 12,284,275
App. No.
18/373,152
Granted
Apr 22, 2025
Kind
B2
Abstract

A method includes, by a key server: identifying a group of devices; accessing secret values pre-provisioned to devices in the group of devices; accessing prime numbers pre-provisioned to devices in the group of devices; generating a cryptographic key for communication among the group of devices; generating a message based on the secret values, the prime numbers, and the cryptographic key; and transmitting the message to a device in the group of devices. The method also includes, by a first device in the group of devices: in response to receiving the message, deriving the cryptographic key from the message based on a first secret value, pre-provisioned to the first device, and a first prime number pre-provisioned to the first device; and associating the cryptographic key with communication among the group of devices.

Claims (207)

1. A method comprising:

during a first time period:

by a first device in a population of devices:

storing a first secret value assigned to the first device; and

storing a first prime number assigned to the first device; and

by a key server:

storing a population of secret values assigned to devices in the population of devices, the population of secret values comprising the first secret value; and

storing a population of prime numbers assigned to devices in the population of devices, the population of prime numbers comprising the first prime number; and

during a second time period succeeding the first time period:

by the key server:

identifying a first group of devices, in the population of devices, comprising the first device;

accessing a first set of secret values, in the population of secret values, assigned to devices in the first group of devices, the first set of secret values comprising the first secret value;

accessing a first set of prime numbers, in the population of prime numbers, assigned to devices in the first group of devices, the first set of prime numbers comprising the first prime number;

generating a first cryptographic key for communication among the first group of devices;

for each device in the first group of devices, calculating a device value, in a set of device values, corresponding to a product of:

a secret value, in the set of secret values, assigned to a respective device in the first group of devices; and

a prime number, in the set of prime numbers, assigned to the respective device in the first group of devices;

calculating a group value corresponding to a product of the set of device values;

calculating a first message value corresponding to a sum of the group value and the first cryptographic key;

generating a first message comprising the first message value; and

transmitting the first message to each device in the first group of devices; and

by the first device:

in response to receiving the first message, extracting the first message value from the first message;

calculating a second value corresponding to a product of the first secret value and the first prime number;

deriving the first cryptographic key corresponding to a remainder of the first message value divided by the second value; and

associating the first cryptographic key with communication among the first group of devices.

2. The method of claim 1 :

wherein generating the first cryptographic key comprises generating the first cryptographic key comprising a random number less than each prime number in the first set of prime numbers;

wherein calculating the device value for each device in the first group of devices comprises calculating a first device value, in the set of device values, by multiplying the first secret value by the first prime number; and

wherein calculating the second value comprises calculating the second value by multiplying the first secret value by the first prime number.

3. The method of claim 2 :

wherein storing the population of secret values comprises storing the population of secret values further comprising a second secret value assigned to a second device in the first group of devices;

wherein storing the population of prime numbers comprises storing the population of prime numbers further comprising a second prime number assigned to the second device;

wherein transmitting the first message comprises transmitting the first message to the second device via a first communication link characterized by a first network type; and

wherein receiving the first message comprises receiving the first message from the second device via a second communication link characterized by a second network type different from the first network type.

4. The method of claim 1 :

further comprising, by the key server during the second time period, for each device in the first group of devices:

calculating a third value corresponding to a product of a secret value assigned to the respective device in the first group of devices and a prime number assigned to the respective device in the first group of devices;

calculating a fourth value corresponding to a remainder of the first message value divided by the third value; and

in response to the fourth value corresponding to the first cryptographic key, validating the first cryptographic key for the respective device in the first group of devices; and

wherein transmitting the first message comprises transmitting the first message to each device in the first group of devices in response to validating the first cryptographic key for each device in the first group of devices.

5. The method of claim 1 :

wherein storing the population of secret values comprises storing the population of secret values further comprising a second secret value assigned to a second device, in the population of devices, excluded from the first group of devices;

wherein storing the population of prime numbers comprises storing the population of prime numbers further comprising a second prime number assigned to the second device;

further comprising, during a third time period succeeding the second time period:

by the first device:

in response to receiving a first identifier assigned to the second device, accessing a policy defining a set of authorized identifiers;

in response to the set of authorized identifiers comprising the first identifier, identifying a second group of devices comprising the first device and the second device;

generating a second message specifying the second group of devices; and

transmitting the second message to the key server; and

by the key server, in response to receiving the second message from the first device:

identifying the second group of devices based on the second message;

accessing a second set of secret values, in the population of secret values, assigned to devices in the second group of devices, the second set of secret values comprising the first secret value and the second secret value;

accessing a second set of prime numbers, in the population of prime numbers, assigned to devices in the second group of devices, the second set of prime numbers comprising the first prime number and the second prime number;

generating a second cryptographic key for communication among the second group of devices;

generating a third message based on the second set of secret values, the second set of prime numbers, and the second cryptographic key; and

transmitting the third message to the first device; and

further comprising, by the first device in response to receiving the third message from the key server, transmitting the third message to the second device.

6. The method of claim 1 :

further comprising, by the key server during the second time period, identifying a first subgroup of devices, in the first group of devices, based on a processing capacity and a memory capacity of each device in the first subgroup of devices, the first subgroup of devices comprising the first device;

wherein accessing the first set of secret values comprises accessing the first set of secret values assigned to devices in the first subgroup of devices;

wherein accessing the first set of prime numbers comprises accessing the first set of prime numbers assigned to devices in the first subgroup of devices;

wherein transmitting the first message comprises transmitting the first message to a device in the first subgroup of devices; and

further comprising, by the key server during the second time period:

identifying a second subgroup of devices, in the first group of devices, based on a processing capacity and a memory capacity of each device in the second subgroup of devices, the second subgroup of devices comprising a second device;

accessing a second set of secret values, in the population of secret values, assigned to devices in the second subgroup of devices, the second set of secret values comprising a second secret value assigned to the second device;

accessing a second set of prime numbers, in the population of prime numbers, assigned to devices in the second subgroup of devices, the second set of prime numbers comprising a second prime number assigned to the second device;

based on the second set of secret values, the second set of prime numbers, and the first cryptographic key, generating a second message representing the first cryptographic key for communication among the first group of devices further comprising the second device; and

transmitting the second message to a device in the second subgroup of devices.

7. The method of claim 6 , further comprising, during the second time period:

by the second device, in response to receiving the second message:

accessing the second secret value stored in a hardware security module of the second device;

accessing the second prime number stored in the hardware security module of the second device;

deriving the first cryptographic key from the second message based on the second secret value and the second prime number; and

associating the first cryptographic key with communication among the first group of devices.

8. The method of claim 1 :

further comprising, by the first device during the first time period, storing a first identifier assigned to the first device;

further comprising, by the first device during a third time period succeeding the first time period and preceding the second time period:

generating a second message:

representing a request to join a second group of devices comprising a second device in the population of devices; and

comprising the first identifier;

transmitting the second message to the second device; and

wherein receiving the first message comprises receiving the first message representing the first cryptographic key for communication among the first group of devices comprising the first device and the second device.

9. The method of claim 8 , wherein receiving the first message comprises receiving the first message from a key server via the second device based on a second communication link between the first device and the second device in response to absence of a first communication link between the first device and the key server.

10. The method of claim 1 , further comprising:

during the first time period, by a second device in the population of devices:

storing a second secret value assigned to the second device and different from the first secret value; and

storing a second prime number assigned to the second device and different from the first prime number; and

during the second time period:

by the first device, transmitting the first message to the second device, the first group of devices further comprising the second device; and

by the second device:

receiving the first message from the first device;

extracting the first message value from the first message;

calculating a third value corresponding to a product of the second secret value and the second prime number;

deriving the first cryptographic key corresponding to a remainder of the first message value divided by the third value; and

associating the first cryptographic key with communication among the first group of devices.

11. The method of claim 1 :

wherein receiving the first message comprises receiving the first message comprising the first message value and a first sequence number; and

further comprising, by the first device during a third time period succeeding the second time period:

receiving a second message:

representing a second cryptographic key for communication among a second group of devices, in the population of devices, comprising the first device; and

comprising a third message value and a second sequence number;

validating the second message in response to the second sequence number exceeding the first sequence number;

extracting the third value from the second message;

calculating a fourth value corresponding to a product of the first secret value and the first prime number;

deriving the second cryptographic key corresponding to a remainder of the third value divided by the second value; and

associating the second cryptographic key with communication among the second group of devices.

12. The method of claim 1 , further comprising, by the first device:

receiving an encrypted second message, from a second device in the first group of devices, comprising an encrypted value;

decrypting the encrypted second message, based on the first cryptographic key, as a decrypted second message including a decrypted value; and

validating the first cryptographic key in response to the decrypted value corresponding to a predefined reference value.

13. The method of claim 1 , wherein associating the first cryptographic key with communication among the first group of devices comprises:

accessing a set of data representing a safety state of a first machine on which the first device in mounted;

in response to the set of data representing a fault state of the first machine, generating a second message:

representing an emergency stop signal; and

comprising the set of data;

encrypting the second message based on the first cryptographic key as an encrypted message; and

transmitting the encrypted message to a second device in the first group of devices.

14. The method of claim 1 :

wherein storing the first secret value comprises storing the first secret value comprising a unique secret value in a population of secret values assigned to devices in the population of devices; and

wherein storing the first prime number comprises storing the first prime number comprising a unique prime number in a population of prime numbers assigned to devices in the population of devices, the first prime number exceeding the first secret value.

15. The method of claim 1 , further comprising, by the key server:

during the first time period:

storing a population of keying material values corresponding to devices in the population of devices; and

storing a population of prime numbers assigned to devices in the population of devices, the population of prime numbers comprising the first prime number; and

during a third time period succeeding the first time period and preceding the second time period:

identifying the first group of devices based on a schedule defining groups of devices during the second time period;

for each device in the first group of devices:

accessing a keying material value, in the population of keying material values, corresponding to the respective device in the first group of devices; and

based on the keying material value and a predefined function, generating a secret value, in a first set of secret values comprising the first secret value, assigned to the respective device in the first group of devices;

accessing a first set of prime numbers, in the population of prime numbers, assigned to devices in the first group of devices, the first set of prime numbers comprising the first prime number;

generating the first cryptographic key; and

generating the first message based on the first set of secret values, the first set of prime numbers, and the first cryptographic key.

16. A method comprising:

by a key server during a first time period:

storing a population of secret values assigned to devices in a population of devices comprising a first device, the population of secret values comprising a first secret value assigned to the first device; and

storing a population of prime numbers assigned to devices in the population of devices, the population of prime numbers comprising a first prime number assigned to the first device; and

during a second time period succeeding the first time period:

identifying a first group of devices, in the population of devices, comprising the first device;

accessing a first set of secret values, comprising the first secret value, assigned to devices in the first group of devices;

accessing a first set of prime numbers, comprising the first prime number, assigned to devices in the first group of devices;

generating a first cryptographic key for communication among the first group of devices;

for each device in the first group of devices:

calculating a device value, in a set of device values, corresponding to a product of:

a secret value, in the set of secret values, assigned to a respective device in the first group of devices; and

a prime number, in the set of prime numbers, assigned to the respective device in the first group of devices;

calculating a group value corresponding to a product of the set of device values;

calculating a first message value corresponding to a sum of the group value and the first cryptographic key;

generating a first message comprising the first message value; and

transmitting the first message to each device in the first group of devices.

17. The method of claim 16 , further comprising, by the first device:

during the first time period:

storing the first secret value assigned to the first device; and

storing the first prime number assigned to the first device; and

during the second time period:

in response to receiving the first message, deriving the first cryptographic key from the first message based on the first secret value and the first prime number; and

associating the first cryptographic key with communication among the first group of devices.

18. The method of claim 17 :

wherein storing the population of secret values comprises storing the population of secret values further comprising a second secret value assigned to a second device in the population of devices;

wherein storing the population of prime numbers comprises storing the population of prime numbers further comprising a second prime number assigned to the second device;

wherein identifying the first group of devices comprises identifying the first group of devices comprising the first device and the second device;

further comprising:

by the first device during the second time period:

identifying a second group of devices comprising the first device and excluding the second device in response to receiving a second message, from the second device, representing a request for the second device to separate from the first group of devices;

generating a second message specifying the second group of devices; and

transmitting the second message to the key server; and

by the key server, in response to receiving the second message from the first device:

identifying the second group of devices based on the second message;

accessing a second set of secret values, in the population of secret values, assigned to devices in the second group of devices, the second set of secret values comprising the first secret value and excluding the second secret value;

accessing a second set of prime numbers, in the population of prime numbers, assigned to devices in the second group of devices, the second set of prime numbers comprising the first prime number and excluding the second prime number;

generating a second cryptographic key for communication among the second group of devices;

generating a third message based on the second set of secret values, the second set of prime numbers, and the second cryptographic key; and

transmitting the third message to the first device.

19. The method of claim 16 , further comprising, by a second device excluded from the first group of devices:

in response to receiving the first message, extracting the first message value from the first message;

accessing a second secret value assigned to the second device;

accessing a second prime number assigned to the second device;

calculating a second value corresponding to a product of the second secret value and the second prime number; and

deriving a second cryptographic key corresponding to a remainder of the first value divided by the second value, the second cryptographic key different from the first cryptographic key.

20. A method comprising:

during a first time period:

by a first device in a population of devices:

storing a first secret value assigned to the first device;

storing a first prime number assigned to the first device;

by a key server:

storing a population of secret values assigned to devices in the population of devices comprising the first device and a second device, the population of secret values comprising the first secret value and a second secret value assigned to the second device; and

storing a population of prime numbers assigned to devices in the population of devices, the population of prime numbers comprising the first prime number and a second prime number assigned to the second device; and

during a second time period succeeding the first time period:

by the key server:

identifying a group of devices, in the population of devices, comprising the first device and the second device;

accessing a set of secret values, comprising the first secret value and the second secret value, assigned to devices in the group of devices;

accessing a set of prime numbers, comprising the first prime number and the second prime number, assigned to devices in the group of devices;

generating a cryptographic key for communication among the group of devices;

for each device in the group of devices, calculating a device value, in a set of device values, corresponding to a product of:

a secret value, in the set of secret values, assigned to a respective device in the group of devices; and

a prime number, in the set of prime numbers, assigned to the respective device in the group of devices;

calculating a group value corresponding to a product of the set of device values;

calculating a message value corresponding to a sum of the group value and the cryptographic key;

generating a message comprising the message value; and

transmitting the message to the second device in the group of devices;

by the second device:

in response to receiving the message from the key server, deriving the cryptographic key from the message based on the message value and a product of the second secret value and the second prime number;

associating the cryptographic key with communication among the group of devices; and

relaying the message to the first device; and

by the first device:

in response to receiving the message from the second device, deriving the cryptographic key from the message based on the message value and a product of the first secret value and the first prime number; and

associating the cryptographic key with communication among the group of devices.

Assignments (2)
SECURITY INTEREST Recorded Apr 3, 2024
From: FORT ROBOTICS, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY (SUCCESSOR BY PURCHASE TO THE FEDERAL DEPOSIT INSURANCE CORPORATION AS RECEIVER FOR SILICON VALLEY BRIDGE BANK, N.A. (AS SUCCESSOR TO SILICON VALLEY BANK)
Reel/Frame 066992/0121 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2023
From: WU, GUANG
To: FORT ROBOTICS, INC.
Reel/Frame 065181/0452 →
Continuity (3)
Provisional Application 63419968 · Oct 27, 2022
Provisional Application 63410582 · Sep 27, 2022
Related Publication 20240106638A1 · Mar 28, 2024
References Cited (9)
US 8566247B1 · Nagel · 2013 [cited by examiner]
US 11323254B2 · Levin · 2022 [cited by examiner]
US 20080152148A1 · Sudhakar · 2008 [cited by examiner]
US 20090046853A1 · Hui · 2009 [cited by examiner]
US 20170251036A1 · Yamaoka · 2017 [cited by examiner]
“Velumadhava” “A Secure Key Transfer Protocol for Group Communication”, “2012” “Advanced Computing: An International Journal ( ACIJ )” “vol. 3” “p. 83-90” (Year: 2012). [cited by examiner]
Harn et al, “Authenticated Group Key Transfer Protocol Based on Secret Sharing”, IEEE Transactions on Computers, vol. 59, No. 6, Jun. 2010. [cited by applicant]
Rao et al, “A Secure Key Transfer Protocol for Group Communication”, Advanced Computing: An International Journal ( ACIJ ), vol. 3, No. 6, Nov. 2012. [cited by applicant]
International Search Report received in PCT/US2023/033737 dated Dec. 20, 2023. [cited by applicant]