IP Library Granted Patent US 11,005,829
Granted Patent B1
US 11,005,829 · App. 15/784,735 · Granted May 11, 2021

Providing secure end-to-end data encryption between devices

Inventors: Keith Johnson (Cambridge, MA); Julio Viera (Brooklyn, NY); Joao Santos (Boston, MA)
Assignee: Fuze, Inc.
H04L63/062H04L9/0861H04L9/14H04L9/30H04L9/3247H04L63/0428
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,005,829
App. No.
15/784,735
Granted
May 11, 2021
Kind
B1
Abstract

Various aspects of the subject technology related to systems and methods for providing secure end-to-end data encryption between devices. In one aspect, a method includes encrypting data for a sending device using an encryption key. The encryption key is not stored on a server. The method includes decrypting the encrypted data transmitted from the sending device to a receiving device using a decryption key. The decryption key is also not stored on a server.

Claims (62)

1. A computer-implemented method for providing end-to-end encryption of data between devices, comprising:

receiving, from a messaging application of a sending device, an encryption request comprising unencrypted data and information about an allowed audience comprising at least one of an identity of one or more entities or an identity of a group of entities that are allowed to access the unencrypted data, wherein each of the one or more entities or the group of entities that are allowed to access the unencrypted data is an application;

authenticating a sender of the encryption request;

in response to successfully authenticating the sender of the encryption request, generating an encryption key based on a first data key of a plurality of data keys received, from a key management entity in response to the encryption request, wherein the key management entity is a third party entity, separate and independent of an entity that generates the encryption key;

encrypting the unencrypted data into encrypted data using the encryption key;

encoding the information about the allowed audience into an encoded header of the encrypted data, including an identity of a recipient of the encrypted data;

receiving, from a messaging application of a receiving device, a decryption request comprising the encrypted data transmitted from the sending device to the receiving device;

authenticating a receiver of the decryption request;

in response to receiving the decryption request from the receiving device and successfully authenticating the receiver of the decryption request, decoding the information about the allowed audience encoded in the encrypted data, including the identity of the recipient of the encrypted data;

confirming that the receiver is allowed access to the unencrypted data based on the decoded information about the allowed audience, including the identity of the recipient of the encrypted data;

in response to confirming that the receiver is allowed access to the unencrypted data, re-generating the encryption key when the decoded information about the allowed audience indicates that an entity requesting decryption of the encrypted data through the receiving device is allowed access to the unencrypted data; and

decrypting the encrypted data into unencrypted data using the re-generated encryption key.

2. The computer-implemented method of claim 1 , wherein the decoded information about the allowed audience in the encrypted data comprises an identity of a group of entities, the method further comprising:

in response to determining that the entity requesting access to the encrypted data is a member of the identified group of entities; and

if the decoded information about the allowed audience indicates that an entity requesting decryption of the encrypted data through the receiving device is allowed access to the unencrypted data, re-generating the encryption key.

3. The computer-implemented method of claim 1 , wherein the entity requesting encryption of the unencrypted data is a user or an application.

4. The computer-implemented method of claim 1 , wherein each entity of the group has an owner role or a publisher role and the entity requesting access to the encrypted data through the receiving device allowed access to the unencrypted data is a member of the group and the entity has a publisher role.

5. The computer-implemented method of claim 1 , further comprising:

signing the unencrypted data using a signature of an entity that is requesting encryption of the unencrypted data by generating the signature based on generating a private key for the entity that is requesting encryption; and

verifying the unencrypted data that is decrypted from the encrypted data by generating a public key for the entity that is requesting decryption of the encrypted data and verifying the signature using the public key.

6. The computer-implemented method of claim 1 , wherein the encryption key includes an expiration date indicating whether the encryption key is valid, the method further comprising:

encrypting the unencrypted data into encrypted data if the expiration data indicates that the encryption key is valid.

7. A system for secure end-to-end encryption between devices, comprising:

one or more processors;

a computer-readable storage medium coupled to the one or more processors, the computer-readable storage medium including instructions that, when executed by the one or more processors, cause the one or more processors to:

receive, from a messaging application of a sending device, an encryption request comprising unencrypted data and information about an allowed audience comprising at least one of an identity of one or more entities or an identity of a group of entities that are allowed to access the unencrypted data, wherein each of the one or more entities or the group of entities that are allowed to access the unencrypted data is an application;

authenticate a sender of the encryption request;

in response to successfully authenticating the sender of the encryption request, generate, an encryption key based on a first data key of a plurality of data keys received from a key management entity, wherein the key management entity is a third party entity that is separate and independent of the sending device and an entity that generates the encryption key;

encrypt the unencrypted data into encrypted data using the encryption key;

encode the information about the allowed audience into an encoded header of the encrypted data, including an identity of a recipient of the encrypted data;

receive, from a messaging application of a receiving device, a decryption request comprising the encrypted data transmitted from the sending device to the receiving device;

authenticate a receiver of the decryption request;

in response to receiving the decryption request from the receiving device and successfully authenticating the receiver of the decryption request, decode the information about the allowed audience encoded in the encrypted data, including the identity of the recipient of the encrypted data;

confirm that the receiver is allowed access to the unencrypted data based on the decoded information about the allowed audience, including the identity of the recipient of the encrypted data;

in response to confirming that the receiver is allowed access to the unencrypted data, re-generate the encryption key when the decoded information about the allowed audience indicates that an entity requesting decryption of the encrypted data through the receiving device is allowed access to the unencrypted data; and

decrypt the encrypted data into unencrypted data using the re-generated encryption key.

8. The system of claim 7 , wherein the decoded information about the allowed audience in the encrypted data comprises an identity of a group of entities and the instructions further cause the processor to:

re-generate the encryption key in response to determining that the entity requesting access to the encrypted data is a member of the identified group of entities and if the decoded information about the allowed audience indicates that an entity requesting decryption of the encrypted data through the receiving device is allowed access to the unencrypted data.

9. The system of claim 7 , wherein the entity requesting encryption of the unencrypted data is a user or an application.

10. The system of claim 7 , wherein each entity of the group has an owner role or a publisher role, the entity requesting access to the encrypted data through the receiving device allowed access to the unencrypted data is a member of the group and the entity has a publisher role.

11. The system of claim 7 , wherein the instructions further cause the one or more processors to:

sign the unencrypted data using a signature of an entity that is requesting encryption of the unencrypted data, by generating the signature based on generating a private key for the entity that is requesting encryption; and

verify the unencrypted data that is decrypted from the encrypted data by generating a public key for the entity that is requesting decryption of the encrypted data and verifying the signature using the public key.

12. The system of claim 7 , wherein the encryption key includes an expiration date indicating whether the encryption key is valid and the instructions further cause the one or more processors to encrypt the unencrypted data into encrypted data if the expiration data indicates that the encryption key is valid.

13. A non-transitory machine-readable storage medium comprising machine-readable instructions that, when executed by a processor, cause the processor to perform operations, the operations comprising:

receiving, from a messaging application of a sending device, an encryption request comprising unencrypted data and information about an allowed audience comprising at least one of an identity of one or more entities or an identity of a group of entities that are allowed to access the unencrypted data, wherein each of the one or more entities or the group of entities that are allowed to access the unencrypted data is an application;

authenticating a sender of the encryption request;

in response to successfully authenticating the sender of the encryption request, generating, an encryption key based on a first data key of a plurality of data keys received, from a key management entity, wherein the key management entity is a third party entity that is separate and independent of an entity that generates the encryption key;

encrypting the unencrypted data into encrypted data using the encryption key;

encoding the information about the allowed audience into an encoded header of the encrypted data, including an identity of a recipient of the encrypted data;

receiving, from a messaging application of a receiving device, a decryption request comprising the encrypted data transmitted from the sending device to the receiving device;

authenticating a receiver of the decryption request;

in response to receiving the decryption request from the receiving device and successfully authenticating the receiver of the decryption request, decoding the information about the allowed audience encoded in the encrypted data, including the identity of the recipient of the encrypted data;

confirming that the receiver is allowed access to the unencrypted data based on the decoded information about the allowed audience, including the identity of the recipient of the encrypted data;

in response to confirming that the receiver is allowed access to the unencrypted data, re-generating the encryption key, when the decoded information about the allowed audience indicates that an entity requesting decryption of the encrypted data through the receiving device is allowed access to the unencrypted data; and

decrypting the encrypted data into unencrypted data using the re-generated encryption key.

14. The non-transitory machine-readable storage medium of claim 13 , wherein the decoded information about the allowed audience in the encrypted data comprises an identity of a group of entities and the operations further comprise:

re-generating the encryption key in response to determining that the entity requesting access to the encrypted data is a member of the identified group of entities and if the decoded information about the allowed audience indicates that an entity requesting decryption of the encrypted data through the receiving device is allowed access to the unencrypted data.

15. The non-transitory machine-readable storage medium of claim 13 , wherein the entity requesting encryption of the unencrypted data is a user or an application.

16. The non-transitory machine-readable storage medium of claim 13 , wherein each entity of the group has an owner role or a publisher role, the entity requesting access to the encrypted data through the receiving device allowed access to the unencrypted data is a member of the group and the entity has a publisher role.

17. The non-transitory machine-readable storage medium of claim 13 , wherein the encryption key includes an expiration date indicating whether the encryption key is valid, the operations further comprising:

encrypting the unencrypted data into encrypted data if the expiration data indicates that the encryption key is valid.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2026
From: FUZE, INC.
To: 8X8, INC.
Reel/Frame 073824/0747 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2024
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: 8X8, INC.; FUZE, INC.
Reel/Frame 068328/0569 →
SECURITY INTEREST Recorded Aug 5, 2024
From: 8X8, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 068327/0819 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS SECTION TO REMOVE APPLICATION NUMBERS 11265423, 11252205, 11240370, 11252276, AND 11297182 PREVIOUSLY RECORDED ON REEL 061085 FRAME 0861. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY SECURITY AGREEMENT. Recorded Jan 26, 2024
From: 8X8, INC.; FUZE, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066383/0936 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: 8X8, INC.; FUZE, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 061085/0861 →
RELEASE OF SECURITY INTEREST Recorded Jan 19, 2022
From: AB PRIVATE CREDIT INVESTORS LLC
To: FUZE, INC.
Reel/Frame 058768/0103 →
SECURITY INTEREST Recorded Sep 23, 2019
From: FUZE, INC.
To: AB PRIVATE CREDIT INVESTORS LLC
Reel/Frame 050463/0723 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: JOHNSON, KEITH; VIERA, JULIO; SANTOS, JOAO
To: FUZE, INC.
Reel/Frame 043889/0296 →
Cited By (2)
US 12,199,959 US 12,621,278