IP Library Granted Patent US 12,413,565
Granted Patent B2
US 12,413,565 · App. 17/808,330 · Granted Sep 9, 2025

Systems and methods for group messaging using blockchain-based secure key exchange

Inventors: Muhammad Salman Nomani (Hillsborough, NJ); John M. Stokes (Yorba Linda, CA)
Assignee: Verizon Patent and Licensing Inc.
H04L63/0442H04L9/50H04L63/061
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,413,565
App. No.
17/808,330
Granted
Sep 9, 2025
Kind
B2
Abstract

A system described herein provide for the secure maintaining and providing of information, such as public keys used in Public Key Infrastructure (“PKI”) techniques or other techniques, using a secure distributed ledger (e.g., “blockchain”) system. A first entity may generate an asymmetric key pair that includes a public key and a private key, and may provide the public key, along with a key identifier, to a blockchain system for retrieval by multiple other entities. For example, the entities may be engaged in a secure group communication session, in which communications are encrypted and may be decrypted using one or more keys, including the public key. The other entities may identify the public key, as recorded to the blockchain system, based on the key identifier. Participants may be added to or removed from the secure group communication session.

Claims (90)

1. A first device, comprising:

one or more hardware processors configured to:

maintain an asymmetric key pair that includes a first key and a second key, wherein the asymmetric key pair is associated with a particular key identifier;

receive a message to be sent to a second device and a third device;

receive a first public key associated with the second device;

receive a second public key associated with the third device;

generate an encrypted communication based on the message, wherein generating the encrypted communication includes:

generating a first encrypted version of the message by encrypting the message using the first key of the asymmetric key pair and the first public key associated with the second device, and

generating a second encrypted version of the message by encrypting the message using the first key of the asymmetric key pair and the second public key associated with the third device,

wherein the encrypted communication includes the particular key identifier, the first encrypted version of the message, and the second encrypted version of the message;

output the encrypted communication to the second device and the third device; and

output, to a blockchain system, the second key and the particular key identifier associated with the asymmetric key pair,

wherein the second device:

obtains the second key from the blockchain system based on the particular key identifier included in the encrypted communication, and

decrypts the first encrypted version of the message using the second key obtained from the blockchain system based on the particular key identifier and a first private key that is associated with the first public key, and wherein the third device:

obtains the second key from the blockchain system based on the particular key identifier included in the encrypted communication, and

decrypts the second encrypted version of the message using the second key obtained from the blockchain system based on the particular key identifier and a second private key that is associated with the second public key.

2. The first device of claim 1 , wherein receiving the first and second public keys includes obtaining the first and second public keys from the blockchain system.

3. The first device of claim 1 , wherein the one or more hardware processors are further configured to:

add a fourth device to a group communication session with which the first, second, and third devices are associated,

wherein adding the fourth device includes providing a session identifier associated with the group communication session to the fourth device, wherein the fourth device obtains at least of the first or second public keys from the blockchain system based on the session identifier.

4. The first device of claim 1 , wherein the one or more hardware processors are further configured to:

remove the third device from a group communication session with which the first, second, and third devices are associated,

wherein removing the third device from the group communication session includes outputting an indication to the second and third devices that the third device is being removed from the group communication session, wherein the third device retains a chat history associated with the group communication session after receiving the indication that the third device is being removed from the group communication session.

5. The first device of claim 1 , wherein the second device is a node of the blockchain system, wherein obtaining the second key from the blockchain system includes cross-validating the second key with at least a threshold quantity of other nodes of the blockchain system.

6. The first device of claim 1 , wherein the one or more hardware processors are further configured to:

remove the third device from a group communication session with which the first, second, and third devices are associated,

wherein removing the third device from the group communication session includes outputting an indication to the second device that the third device is being removed from the group communication session, wherein the second device deletes the second public key associated with the third device.

7. The first device of claim 1 , wherein the third device is a node of the blockchain system, wherein the one or more hardware processors are further configured to:

remove the third device from a group communication session with which the first, second, and third devices are associated,

wherein the third device continues to serve as a node of the blockchain system after being removed from the group communication session.

8. A non-transitory computer-readable medium storing a plurality of processor-executable instructions, wherein execution of the processor-executable instructions by a first device causes the first device to:

maintain an asymmetric key pair that includes a first key and a second key, wherein the asymmetric key pair is associated with a particular key identifier;

receive a message to be sent to a second device and a third device;

receive a first public key associated with the second device;

receive a second public key associated with the third device;

generate an encrypted communication based on the message, wherein generating the encrypted communication includes:

encrypting the message using the first key of the asymmetric key pair and the first public key associated with the second device, and

generating a second encrypted version of the message by encrypting the message using the first key of the asymmetric key pair and the second public key associated with the third device,

wherein the encrypted communication includes the particular key identifier, the first encrypted version of the message, and the second encrypted version of the message;

output the encrypted communication to the second device and the third device; and

output, to a blockchain system, the second key and the particular key identifier associated with the asymmetric key pair,

wherein the second device:

obtains the second key from the blockchain system based on the particular key identifier included in the encrypted communication, and

decrypts the first encrypted version of the message using the second key obtained from the blockchain system based on the particular key identifier and a first private key that is associated with the first public key, and

wherein the third device:

obtains the second key from the blockchain system based on the particular key identifier included in the encrypted communication, and

decrypts the second encrypted version of the message using the second key obtained from the blockchain system based on the particular key identifier and a second private key that is associated with the second public key.

9. The non-transitory computer-readable medium of claim 8 , wherein receiving the first and second public keys includes obtaining the first and second public keys from the blockchain system.

10. The non-transitory computer-readable medium of claim 8 , wherein the plurality of processor-executable instructions further include processor-executable instructions to:

add a fourth device to a group communication session with which the first, second, and third devices are associated,

wherein adding the fourth device includes providing a session identifier associated with the group communication session to the fourth device, wherein the fourth device obtains at least of the first or second public keys from the blockchain system based on the session identifier.

11. The non-transitory computer-readable medium of claim 8 , wherein the plurality of processor-executable instructions further include processor-executable instructions to:

remove the third device from a group communication session with which the first, second, and third devices are associated,

wherein removing the third device from the group communication session includes outputting an indication to the second and third devices that the third device is being removed from the group communication session, wherein the third device retains a chat history associated with the group communication session after receiving the indication that the third device is being removed from the group communication session.

12. The non-transitory computer-readable medium of claim 8 , wherein the second device is a node of the blockchain system, wherein obtaining the second key from the blockchain system includes cross-validating the second key with at least a threshold quantity of other nodes of the blockchain system.

13. The non-transitory computer-readable medium of claim 8 , wherein the plurality of processor-executable instructions further include processor-executable instructions to:

remove the third device from a group communication session with which the first, second, and third devices are associated,

wherein the third device continues to serve as a node of the blockchain system after being removed from the group communication session.

14. A method, comprising:

maintaining, by a first device, an asymmetric key pair that includes a first keyand a second key, wherein the asymmetric key pair is associated with a particular key identifier;

receiving a message to be sent to a second device and a third device;

receiving a first public key associated with the second device;

receiving a second public key associated with the third device;

generating an encrypted communication based on the message, wherein generating the encrypted communication includes:

encrypting the message using the first key of the asymmetric key pair and the first public key associated with the second device, and

generating a second encrypted version of the message by encrypting the message using the first key of the asymmetric key pair and the second public key associated with the third device,

wherein the encrypted communication includes the particular key identifier, the first encrypted version of the message, and the second encrypted version of the message;

outputting the encrypted communication to the second device and the third device; and

outputting, to a blockchain system, the second key and the particular key identifier associated with the asymmetric key pair,

wherein the second device:

obtains the second key from the blockchain system based on the particular key identifier included in the encrypted communication, and

decrypts the first encrypted version of the message using the second key obtained from the blockchain system based on the particular key identifier and a first private key that is associated with the first public key, and

wherein the third device:

obtains the second key from the blockchain system based on the particular key identifier included in the encrypted communication, and

decrypts the second encrypted version of the message using the second key obtained from the blockchain system based on the particular key identifier and a second private key that is associated with the second public key.

15. The method of claim 14 , wherein receiving the first and second public keys includes obtaining the first and second public keys from the blockchain system.

16. The method of claim 14 , further comprising:

adding a fourth device to a group communication session with which the first, second, and third devices are associated,

wherein adding the fourth device includes providing a session identifier associated with the group communication session to the fourth device, wherein the fourth device obtains at least of the first or second public keys from the blockchain system based on the session identifier.

17. The method of claim 14 , further comprising:

removing the third device from a group communication session with which the first, second, and third devices are associated,

wherein removing the third device from the group communication session includes outputting an indication to the second and third devices that the third device is being removed from the group communication session, wherein the third device retains a chat history associated with the group communication session after receiving the indication that the third device is being removed from the group communication session.

18. The method of claim 14 , wherein the second device is a node of the blockchain system, wherein obtaining the second key from the blockchain system includes cross-validating the second key with at least a threshold quantity of other nodes of the blockchain system.

19. The method of claim 14 , further comprising:

removing the third device from a group communication session with which the first, second, and third devices are associated,

wherein removing the third device from the group communication session includes outputting an indication to the second device that the third device is being removed from the group communication session, wherein the second device deletes the second public key associated with the third device.

20. The method of claim 14 , wherein the third device is a node of the blockchain system, the method further comprising:

removing the third device from a group communication session with which the first, second, and third devices are associated,

wherein the third device continues to serve as a node of the blockchain system after being removed from the group communication session.

Continuity (2)
Continuation In Part 17321378 · May 14, 2021
Related Publication 20220368681A1 · Nov 17, 2022
References Cited (20)
US 10686594B2 · Hamel · 2020 [cited by examiner]
US 10735193B1 · Knas · 2020 [cited by examiner]
US 10999260B1 · Silvestri · 2021 [cited by examiner]
US 11423474B1 · Ribeiro · 2022 [cited by applicant]
US 20140355757A1 · Shrivastava · 2014 [cited by examiner]
US 20190245681A1 · Alwen · 2019 [cited by examiner]
US 20190268312A1 · Ma et al. · 2019 [cited by applicant]
US 20190280855A1 · Tong · 2019 [cited by examiner]
US 20200052880A1 · Bathen · 2020 [cited by examiner]
US 20200145229A1 · Li · 2020 [cited by examiner]
US 20210160058A1 · Zhang · 2021 [cited by examiner]
US 20210176075A1 · Chu · 2021 [cited by examiner]
US 20220107994A1 · Bernardi · 2022 [cited by applicant]
US 20220294611A1 · Katsumata et al. · 2022 [cited by applicant]
US 20230021047A1 · Ammar et al. · 2023 [cited by applicant]
US 20230121852A1 · Yan · 2023 [cited by examiner]
CN 112602289A · 2021 [cited by examiner]
“Key escrow”, Wikipedia, Nov. 20, 2020 (available at https://en.wikipedia.org/w/index.php?title=Key_excrow&oldid=989705940, visited Apr. 23, 2021). [cited by applicant]
Maheshwari, “Learn step-by-step how to set up a basic blockchain network”, Think 2021: The premier hybrid cloud and AI event, Jul. 10, 2020 (available at https://developer.ibm.com/technologies/blockchain/tutorials/quick… [cited by applicant]
Perrin, et al., “The Double Ratchet Algorithm”, Signal, Nov. 20, 2016 (available at https://signal.org/docs/specifications/doubleratchet/, visited Apr. 23, 2021). [cited by applicant]