IP Library Granted Patent US 10,984,137
Granted Patent B2
US 10,984,137 · App. 16/277,740 · Granted Apr 20, 2021

Secure data at rest

Inventors: James Anderson Blackley (Rockville Center, NY); Jay Eric Carlson (Weldon Springs, MO); Michael David Hanrahan (Chesterfield, MO); Bajeed Pattan (Ballwin, MO); Christopher Scott Alcott (Manchester, MO)
Assignee: Charter Communications Operating, LLC
G06F21/78G06F12/1408G06F21/602G06F21/604G06F21/6218G06F2212/402G06F2221/2107G06F2221/2141
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 10,984,137
App. No.
16/277,740
Granted
Apr 20, 2021
Kind
B2
Abstract

A method for providing and maintaining secure storage of data includes cloaking the data by retrieving, from a database and using a first set of user-specific cloaking sequences and a first mapping, a first set of hidden sequences, and applying the data and the first set of hidden sequences as inputs to a cloaking algorithm. The cloaked data is stored in a persistent memory. The method further includes, during a later, second time period, re-cloaking the cloaked data by uncloaking the cloaked data using the first set of hidden sequences, retrieving, from the database and using the first set of user-specific cloaking sequences and a different, second mapping, a second set of one or more hidden sequences, and applying the uncloaked data and the second set of hidden sequences as inputs to the cloaking algorithm. The re-cloaked data is stored in the persistent memory.

Claims (103)

1. A method for providing and maintaining secure storage of target data, the method comprising:

during a first time period in which a server provides a first mapping between user-specific cloaking sequence elements and hidden sequence elements, cloaking the target data at least by

retrieving, from a database and using (i) a first set of one or more user-specific cloaking sequences and (ii) the first mapping, a first set of one or more hidden sequences, and

generating cloaked target data at least by applying the target data and the first set of hidden sequences as inputs to a cloaking algorithm;

storing the cloaked target data in a persistent memory;

during a second time period, occurring after the first time period, in which the server provides a different, second mapping between the user-specific cloaking sequence elements and the hidden sequence elements, re-cloaking the cloaked target data at least by

retrieving the cloaked target data from the persistent memory,

again retrieving the first set of hidden sequences from the database,

generating uncloaked target data at least by applying the cloaked target data and the first set of hidden sequences as inputs to an inverse of the cloaking algorithm,

retrieving, from the database and using (i) the first set of user-specific cloaking sequences and (ii) the second mapping, a second set of one or more hidden sequences that is different than the first set of hidden sequences, and

generating re-cloaked target data at least by applying the uncloaked target data and the second set of hidden sequences as inputs to the cloaking algorithm; and

storing the re-cloaked target data in the persistent memory.

2. The method of claim 1 , wherein generating cloaked target data at least by applying the target data and the first set of hidden sequences as inputs to the cloaking algorithm includes:

generating once-cloaked target data at least by applying the target data and a first subset of the first set of hidden sequences as inputs to a first portion of the cloaking algorithm; and

generating twice-cloaked target data at least by applying the once-cloaked target data and a second subset of the first set of hidden sequences as inputs to a second portion of the cloaking algorithm.

3. The method of claim 1 , wherein either:

cloaking the target data includes cloaking the target data on a bit-by-bit basis, and re-cloaking the cloaked target data includes re-cloaking the cloaked target data on a bit-by-bit basis; or

cloaking the target data includes cloaking the target data on a byte-by-byte basis, and re-cloaking the cloaked target data includes re-cloaking the cloaked target data on a byte-by-byte basis.

4. The method of claim 1 , wherein the target data consists of data corresponding to a number of data structures within one or more structured data files, such that cloaking the target data results in cloaking only a portion of the structured data files.

5. The method of claim 4 , wherein cloaking the target data includes:

determining that a partial cloaking mode is currently selected; and

in response to determining that the partial cloaking mode is currently selected, cloaking only the portion of the structured data files.

6. The method of claim 1 , wherein:

the first set of user-specific cloaking sequences includes a primary user-specific cloaking sequence and a secondary user-specific cloaking sequence;

the first set of hidden sequences includes a primary hidden sequence corresponding to the primary user-specific cloaking sequence and a secondary hidden sequence corresponding to the secondary user-specific cloaking sequence; and

the second set of hidden sequences includes one or both of (i) a different primary hidden sequence corresponding to the primary user-specific cloaking sequence and (ii) a different secondary hidden sequence corresponding to the secondary user-specific cloaking sequence.

7. The method of claim 6 , wherein applying the first set of hidden sequences and the target data as inputs to the cloaking algorithm includes:

using the primary hidden sequence to identify offset positions within the target data; and

using the secondary hidden sequence to perform one or more operations on the target data at the identified offset positions.

8. The method of claim 7 , wherein:

the secondary hidden sequence includes an ordered sequence of bits sets each including one or more bits; and

using the secondary hidden sequence to perform one or more operations on the target data at the identified offset positions includes, at each of the identified offset positions within the target data, inserting a respective one of the bit sets.

9. The method of claim 7 , wherein:

the secondary hidden sequence includes an ordered sequence of bits sets each including one or more bits; and

using the secondary hidden sequence to perform one or more operations on the target data at the identified offset positions includes, at each of the identified offset positions within the target data, (i) determining whether the target data includes a bit pattern that matches a respective one of the bit sets, and (ii) removing the bit pattern from the target data only if the bit pattern matches the respective one of the bit sets.

10. The method of claim 1 , further comprising:

during the second time period, receiving an indication that a user has changed the first set of user-specific cloaking sequences to a second set of one or more user-specific cloaking sequences; and

in response to receiving the indication, again re-cloaking the re-cloaked target data at least by

retrieving the re-cloaked target data from the persistent memory,

again retrieving the second set of hidden sequences from the database,

generating new uncloaked target data at least by applying the re-cloaked target data and the second set of hidden sequences as inputs to the inverse of the cloaking algorithm,

retrieving, from the database and using (i) the second set of user-specific cloaking sequences and (ii) the second mapping, a third set of one or more hidden sequences, wherein the third set of hidden sequences is different than both the first set of hidden sequences and the second set of hidden sequences, and

generating new re-cloaked target data at least by applying the new uncloaked target data and the third set of hidden sequences as inputs to the cloaking algorithm; and

storing the new re-cloaked target data in the persistent memory.

11. The method of claim 10 , wherein receiving the indication that the user has changed the first set of user-specific cloaking sequences to the second set of user-specific cloaking sequences includes:

receiving a user selection of the second set of user-specific cloaking sequences via a graphical user interface.

12. The method of claim 1 , wherein the first set of user-specific sequences includes one or more image sequences.

13. The method of claim 1 , further comprising:

receiving a master key entered by a user; and

in response to receiving the master key, providing the user with access to the re-cloaked target data stored in the persistent memory at least by uncloaking the re-cloaked target data.

14. The method of claim 1 , further comprising:

receiving a first split delegate key entered by a first person other than the user;

receiving a second split delegate key entered by a second person other than the user and the first person; and

in response to receiving at least the first split delegate key and the second split delegate key, providing access to the re-cloaked target data stored in the persistent memory at least by uncloaking the re-cloaked target data.

15. A non-transitory, computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

during a first time period in which a server provides a first mapping between user-specific cloaking sequence elements and hidden sequence elements, cloak target data at least by

retrieving, from a database and using (i) a first set of one or more user-specific cloaking sequences and (ii) the first mapping, a first set of one or more hidden sequences, and

generating cloaked target data at least by applying the target data and the first set of hidden sequences as inputs to a cloaking algorithm;

store the cloaked target data in a persistent memory;

during a second time period, occurring after the first time period, in which the server provides a different, second mapping between the user-specific cloaking sequence elements and the hidden sequence elements, re-cloak the cloaked target data at least by

retrieving the cloaked target data from the persistent memory,

again retrieving the first set of hidden sequences from the database,

generating uncloaked target data at least by applying the cloaked target data and the first set of hidden sequences as inputs to an inverse of the cloaking algorithm,

retrieving, from the database and using (i) the first set of user-specific cloaking sequences and (ii) the second mapping, a second set of one or more hidden sequences that is different than the first set of hidden sequences, and

generating re-cloaked target data at least by applying the uncloaked target data and the second set of hidden sequences as inputs to the cloaking algorithm; and

store the re-cloaked target data in the persistent memory.

16. The non-transitory, computer-readable medium of claim 15 , wherein the instructions cause the one or more processors to generate the cloaked target data at least by:

generating once-cloaked target data at least by applying the target data and a first subset of the first set of hidden sequences as inputs to a first portion of the cloaking algorithm; and

generating twice-cloaked target data at least by applying the once-cloaked target data and a second subset of the first set of hidden sequences as inputs to a second portion of the cloaking algorithm.

17. The non-transitory, computer-readable medium of claim 15 , wherein:

the first set of user-specific cloaking sequences includes a primary user-specific cloaking sequence and a secondary user-specific cloaking sequence;

the first set of hidden sequences includes a primary hidden sequence corresponding to the primary user-specific cloaking sequence and a secondary hidden sequence corresponding to the secondary user-specific cloaking sequence;

the second set of hidden sequences includes one or both of (i) a different primary hidden sequence corresponding to the primary user-specific cloaking sequence and (ii) a different secondary hidden sequence corresponding to the secondary user-specific cloaking sequence; and

the instructions cause the one or more processors to apply the first set of hidden sequences and the target data as inputs to the cloaking algorithm at least by

using the primary hidden sequence to identify offset positions within the target data, and

using the secondary hidden sequence to perform one or more operations on the target data at the identified offset positions.

18. The non-transitory, computer-readable medium of claim 15 , wherein the instructions further cause the one or more processors to:

during the second time period, receive an indication that a user has changed the first set of user-specific cloaking sequences to a second set of one or more user-specific cloaking sequences; and

in response to receiving the indication, again re-cloak the re-cloaked target data at least by

retrieving the re-cloaked target data from the first memory,

again retrieving the second set of hidden sequences from the database,

generating new uncloaked target data at least by applying the re-cloaked target data and the second set of hidden sequences as inputs to the inverse of the cloaking algorithm,

retrieving, from the database and using (i) the second set of user-specific cloaking sequences and (ii) the second mapping, a third set of one or more hidden sequences, wherein the third set of hidden sequences is different than both the first set of hidden sequences and the second set of hidden sequences, and

generating new re-cloaked target data at least by applying the new uncloaked target data and the third set of hidden sequences as inputs to the cloaking algorithm; and

store the new re-cloaked target data in the first memory.

19. A computing system comprising:

one or more processors;

a first memory storing target data; and

a second memory storing instructions that, when executed by the one or more processors, cause the computing system to

during a first time period in which a server provides a first mapping between user-specific cloaking sequence elements and hidden sequence elements, cloak the target data at least by

retrieving, from a database and using (i) a first set of one or more user-specific cloaking sequences and (ii) the first mapping, a first set of one or more hidden sequences, and

generating cloaked target data at least by applying the target data and the first set of hidden sequences as inputs to a cloaking algorithm,

storing the cloaked target data in the first memory,

during a second time period, occurring after the first time period, in which the server provides a different, second mapping between the user-specific cloaking sequence elements and the hidden sequence elements, re-cloak the cloaked target data at least by

retrieving the cloaked target data from the first memory,

again retrieving the first set of hidden sequences from the database,

generating uncloaked target data at least by applying the cloaked target data and the first set of hidden sequences as inputs to an inverse of the cloaking algorithm,

retrieving, from the database and using (i) the first set of user-specific cloaking sequences and (ii) the second mapping, a second set of one or more hidden sequences that is different than the first set of hidden sequences, and

generating re-cloaked target data at least by applying the uncloaked target data and the second set of hidden sequences as inputs to the cloaking algorithm, and

store the re-cloaked target data in the first memory.

20. The computing system of claim 19 , wherein the instructions cause the computing system to generate the cloaked target data at least by:

generating once-cloaked target data at least by applying the target data and a first subset of the first set of hidden sequences as inputs to a first portion of the cloaking algorithm; and

generating twice-cloaked target data at least by applying the once-cloaked target data and a second subset of the first set of hidden sequences as inputs to a second portion of the cloaking algorithm.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY ASSIGNMENT PREVIOUSLY RECORDED ON REEL 051433 FRAME 0654. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Mar 4, 2020
From: TIME WARNER CABLE ENTERPRISES, LLC; CHARTER COMMUNICATIONS OPERATING, LLC
To: WELLS FARGO TRUST COMPANY, N.A.
Reel/Frame 052091/0071 →
SECURITY INTEREST Recorded Dec 27, 2019
From: TIME WARNER CABLE ENTERPRISES, LLC; CHARTER COMMUNICATIONS OPERATING, LLC
To: WELLS FARGO TRUST COMPANY, N.A.
Reel/Frame 051433/0654 →
SECURITY INTEREST Recorded Dec 4, 2019
From: TIME WARNER CABLE ENTERPRISES, LLC; CHARTER COMMUNICATIONS OPERATING, LLC; BRIGHT HOUSE NETWORKS, LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 051287/0057 →
SECURITY INTEREST Recorded Dec 4, 2019
From: CHARTER COMMUNICATIONS OPERATING, LLC; TIME WARNER CABLE ENTERPRISES, LLC; BRIGHT HOUSE NETWORKS, LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 051287/0087 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2019
From: BLACKLEY, JAMES ANDERSON; CARLSON, JAY ERIC; HANRAHAN, MICHAEL DAVID; PATTAN, BAJEED; ALCOTT, CHRISTOPHER SCOTT
To: CHARTER COMMUNICATIONS OPERATING, LLC
Reel/Frame 048683/0580 →
Continuity (1)
Related Publication 20200265170A1 · Aug 20, 2020