IP Library Granted Patent US 12,381,726
Granted Patent B2
US 12,381,726 · App. 18/360,191 · Granted Aug 5, 2025

Granting selective access to an encrypted conversation history

Inventors: Balachandar Ganesh Kesavan (New York, NY); Antonio Marcedone (New York, NY)
Assignee: Zoom Communications, Inc.
H04L9/088
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,381,726
App. No.
18/360,191
Granted
Aug 5, 2025
Kind
B2
Abstract

Selective access to an encrypted conversation history can be granted as described herein. For example, a first client device can determine a message key used to encrypt messages associated with a conversation. The first client device can then generate a key ciphertext by: determining a prior secret key, determining a current secret key by hashing the prior secret key and the message key, and generating the key ciphertext by encrypting the prior secret key and the message key using the current secret key. The first client device can then transmit the key ciphertext to a server system. To grant the second client device with access to the encrypted messages, the first client device can transmit the current secret key to the second client device, which can obtain the key ciphertext from the server system and apply the current secret key to derive the message key and decrypt the messages.

Claims (71)

1. A method comprising:

determining, by a first client device, a message key used to encrypt messages associated with a conversation;

generating, by the first client device, a key ciphertext corresponding to the message key by:

determining a prior secret key that is different from the message key;

determining a current secret key by hashing the prior secret key and the message key; and

generating the key ciphertext by encrypting the prior secret key and the message key using the current secret key; and

transmitting, by the first client device, the key ciphertext to a server system that is remote from the first client device, wherein a second client device is configured to receive the key ciphertext from the server system and decrypt the key ciphertext using the current secret key to derive the message key and decrypt the messages.

2. The method of claim 1 , wherein the first client device is associated with a participant in the conversation, and further comprising:

generating, by the first client device, the message key during the conversation; and

transmitting, by the first client device, the message key to other client devices associated with other participants in the conversation, the other client devices being configured to use the message key to encrypt and/or decrypt at least some of the messages.

3. The method of claim 1 , further comprising, subsequent to transmitting the key ciphertext to the server system:

deleting, by the first client device, the key ciphertext and the prior secret key from memory.

4. The method of claim 1 , wherein the server system is configured to host the conversation, and wherein the server system is configured to store an encrypted conversation history including the messages.

5. The method of claim 1 , further comprising:

providing, by the first client device, the current secret key to the second client device.

6. The method of claim 1 , further comprising:

sequentially generating, by the first client device, a plurality of message keys for encrypting a plurality of messages during the conversation, each message key of the plurality of message keys being for encrypting a corresponding subset of messages in the plurality of messages;

sequentially generating, by the first client device, a plurality of key ciphertexts based on the plurality of message keys, each key ciphertext of the plurality of key ciphertexts being generated using (i) a respective message key, (ii) a respective prior secret key, and (iii) a respective current secret key; and

transmitting, by the first client device, the plurality of key ciphertexts to the server system.

7. The method of claim 6 , wherein the second client device is configured to:

receive the plurality of key ciphertexts from the server system;

iteratively decrypt the plurality of key ciphertexts in a reverse order of generation, starting from the key ciphertext corresponding to the current secret key, to derive the plurality of message keys;

decrypt a plurality of encrypted messages associated with the conversation using the plurality of message keys.

8. The method of claim 1 , wherein the prior secret key is a predefined default value.

9. A first client device comprising:

one or more processors; and

one or more memories including instructions that are executable by the one or more processors to cause the one or more processors to:

determine a message key used to encrypt messages associated with a conversation;

generate a key ciphertext corresponding to the message key by:

determining a prior secret key that is different from the message key;

determining a current secret key by hashing the prior secret key and the message key; and

generating the key ciphertext by encrypting the prior secret key and the message key using the current secret key; and

transmit the key ciphertext to a server system that is remote from the first client device, wherein a second client device is configured to receive the key ciphertext from the server system and decrypt the key ciphertext using the current secret key to derive the message key and decrypt the messages.

10. The first client device of claim 9 , wherein the first client device is associated with a participant in the conversation, and wherein the one or more memories further include instructions that are executable by the one or more processors to cause the one or more processors to:

generate the message key during the conversation; and

transmit the message key to other client devices associated with other participants in the conversation, the other client devices being configured to use the message key to encrypt and/or decrypt at least some of the messages.

11. The first client device of claim 9 , wherein the one or more memories further include instructions that are executable by the one or more processors to cause the one or more processors to, subsequent to transmitting the key ciphertext to the server system:

delete the key ciphertext from memory.

12. The first client device of claim 9 , wherein the server system is configured to host the conversation, and wherein the server system is configured to store an encrypted conversation history including the messages.

13. The first client device of claim 9 , wherein the one or more memories further include instructions that are executable by the one or more processors to cause the one or more processors to:

receive a request from the second client device; and

in response to receiving the request, provide the current secret key to the second client device.

14. The first client device of claim 9 , wherein the second client device is configured to:

receive the current secret key from the first client device;

retrieve the key ciphertext from the server system;

decrypt the key ciphertext to derive the message key; and

decrypt at least some of the messages using the message key.

15. The first client device of claim 9 , wherein the one or more memories further include instructions that are executable by the one or more processors to cause the one or more processors to:

sequentially generate a plurality of message keys during the conversation;

sequentially generate a plurality of key ciphertexts based on the plurality of message keys, each key ciphertext of the plurality of key ciphertexts being generated using (i) a respective message key, (ii) a respective prior secret key, and (iii) a respective current secret key; and

sequentially transmit the plurality of key ciphertexts to the server system.

16. The first client device of claim 9 , wherein the prior secret key is a predefined default value.

17. A non-transitory computer-readable medium comprising program code that is executable by one or more processors to cause the one or more processors to:

determine a message key used to encrypt messages associated with a conversation;

generate a key ciphertext corresponding to the message key by:

determining a prior secret key that is different from the message key;

determining a current secret key by hashing the prior secret key and the message key; and

generating the key ciphertext by encrypting the prior secret key and the message key using the current secret key; and

transmit the key ciphertext to a server system, wherein a client device is configured to receive the key ciphertext from the server system and decrypt the key ciphertext using the current secret key to derive the message key and decrypt the messages.

18. The non-transitory computer-readable medium of claim 17 , further comprising program code that is executable by the one or more processors to cause the one or more processors to:

generate the message key during the conversation; and

transmit the message key to other client devices associated with other participants in the conversation, the other client devices being configured to use the message key to encrypt and/or decrypt at least some of the messages.

19. The non-transitory computer-readable medium of claim 17 , wherein the client device is configured to:

receive the current secret key;

retrieve the key ciphertext from the server system;

decrypt the key ciphertext to derive the message key; and

decrypt at least some of the messages using the message key.

20. The non-transitory computer-readable medium of claim 17 , further comprising program code that is executable by the one or more processors to cause the one or more processors to:

sequentially generate a plurality of message keys during the conversation;

sequentially generate a plurality of key ciphertexts based on the plurality of message keys, each key ciphertext of the plurality of key ciphertexts being generated using (i) a respective message key, (ii) a respective prior secret key, and (iii) a respective current secret key; and

transmit the plurality of key ciphertexts to the server system.

Assignments (1)
CHANGE OF NAME Recorded Jul 7, 2025
From: ZOOM VIDEO COMMUNICATIONS, INC.
To: ZOOM COMMUNICATIONS, INC.
Reel/Frame 071861/0513 →
Continuity (2)
Provisional Application 63445910 · Feb 15, 2023
Related Publication 20240275589A1 · Aug 15, 2024
References Cited (11)
US 10341304B1 · Boutros et al. · 2019 [cited by applicant]
US 10783269B1 · Shraer et al. · 2020 [cited by applicant]
US 10963593B1 · Campagna et al. · 2021 [cited by applicant]
US 20040146015A1 · Cross · 2004 [cited by examiner]
US 20050120203A1 · Yeh · 2005 [cited by examiner]
US 20050138352A1 · Gauvreau · 2005 [cited by examiner]
US 20070086593A1 · Denning · 2007 [cited by examiner]
US 20170118183A1 · Shin et al. · 2017 [cited by applicant]
US 20220376895A1 · Booth et al. · 2022 [cited by applicant]
EP International Search Report and Written Opinion for PCT/US2024/015331 mailed Jun. 11, 2024. [cited by applicant]
EP International Search Report and Written Opinion for PCT/US2024/015328 mailed Jun. 14, 2024. [cited by applicant]