IP Library › Granted Patent US 10,979,222
Granted Patent B2
US 10,979,222 · App. 15/383,540 · Granted Apr 13, 2021

Resilient secret sharing cloud based architecture for data vault

Inventors: David Lanc (Edinburgh, GB); Lu Fan (Edinburgh, GB); Lachlan Mackinnon (Keith, Dufftown, GB); Bill Buchanan (Edinburgh, GB)
Assignee: LEADING SOFTWARE LIMITED
H04L9/0894H04L9/085H04L9/14H04L63/20H04L2209/08H04L2209/24
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,979,222
App. No.
15/383,540
Filed
Dec 19, 2016
Granted
Apr 13, 2021
Kind
B2
Art Unit
2491
USPC
726/1
Abstract

A method of securely storing data including: providing, within a secure data storage system, a plurality of secret sharing methods for selection and identifying a striping policy for storage of the data, in accordance with input preferences. The data can be split into N secret shares according to a secret sharing method, the selection being determined by the striping policy, wherein a threshold number, T, of such shares is sufficient to recover the data, where T is less than N, generating metadata associated with the data, the metadata identifying the selected secret sharing method and storing the metadata within the secure data storage system and writing the secret shares to storage that includes storage outside the secure data storage system, such that, when at least T shares are retrieved, the metadata can be recalled to identify the selected secret sharing method for recovery of the data.

Claims (32)

1. A method of securely storing data in a cloud-based data vault, the method of securely storing data comprising:

fragmenting the data with a secret sharing module into a plurality, N, of secret shares of equal size according to a secret sharing algorithm, wherein a threshold number, T, of such shares is sufficient to recover the data, where T is less than N;

splitting with a persistence engine each share into data particles of equal size; and

writing with the persistence engine the data particles to storage that comprises a plurality of independent stores such that, for each share, the data particles of that share are written to an independent store corresponding to that share, the independent store including co-existing particles of data from other shares of other data, all data particles of a share being written to the same independent store and particles from different shares being written to different independent stores, each data particle having an equal size and thus being anonymous relative to other data particles and identified only by an identifier unique within its respective store, and otherwise indistinguishable from the co-existing particles of the other shares of the other data.

2. The method of claim 1 further comprising pre-storing particles of dummy data within each store, whereby the particles of data and particles of dummy data co-exist in the store.

3. The method of claim 1 , further comprising performing a clean-up process for each store, whereby particles that exist in the store are identified as having expired, whereby particles of data and particles of expired data co-exist in the store.

4. The method of claim 1 , further comprising identifying a persistence policy for storage of the data in accordance with input preferences, whereby a set of store is selected for storage of the data in accordance with the persistence policy.

5. The method of claim 1 further comprising identifying a persistence policy for storage of the data in accordance with a sensitivity attribute associated with the data.

6. The method of claim 4 , wherein polices are defined for user selection that include restrictions on attributes of the store that are to be selected to make up the set of store.

7. The method of claim 4 , wherein polices are defined for user selection that include different attributes for each of the store that are to be selected to make up the set of store.

8. The method of claim 7 wherein the attributes include identifiers of storage providers and geographical locations of the store.

9. The method of claim 4 , wherein polices are defined for user selection that include user latency preference.

10. The method of claim 4 , wherein polices are defined for user selection that include duplication of one or more shares across plural independent store.

11. The method of claim 4 , wherein polices are defined for user selection that include trustworthiness of the store.

12. The method of claim 1 further comprising monitoring a performance of each store for improvement of selection of store according to persistence policy.

13. The method of claim 1 further comprising destroying all copies of original data after a user-specified time, without any user intervention.

14. A system of securely storing data in a cloud-based data vault, the system of securely storing data comprising:

a secret sharing module executed on a processor configured to fragment the data into a plurality, N, of secret shares of equal size according to a secret sharing algorithm, wherein a threshold number, T, of such shares is sufficient to recover the data, where T is less than N;

the secret sharing module executed on a processor being further configured to split each share into data particles of equal size; and

a memory interface configured to write the data particles to storage that comprises a plurality of independent stores such that, for each share, the data particles of that share are written to an independent store corresponding to that share, the independent store including alongside co-existing particles of data from other shares of other data, all data particles of a share being written to the same independent store and particles from different shares being written to different independent stores, each data particle having an equal size and thus being anonymous relative to other data particles and identified only by an identifier unique within its respective store, and otherwise indistinguishable from the co-existing particles of the other shares of the other data.

15. The system of claim 14 wherein the system is configured to pre-store particles of dummy data within each store, whereby the particles of data and particles of dummy data co-exist in the store.

16. The system of claim 14 , wherein the system is configured to perform a clean-up process for each store, whereby particles that exist in the store are identified as having expired, whereby particles of data and particles of expired data co-exist in the store.

17. The system of claim 14 , wherein the system is configured to identify a persistence policy for storage of the data in accordance with input preferences, whereby a set of store is selected for storage of the data in accordance with the persistence policy.

18. The system of claim 14 , wherein the system is configured to destroy all copies of original data after a user-specified time, without any user intervention.

19. A non-transitory computer program product comprising instructions that when executed on a processor perform a process of securely storing data in a cloud-based data vault, the instructions of the non-transitory computer program product comprising:

fragmenting the data into a plurality, N, of secret shares of equal size according to a secret sharing algorithm, wherein a threshold number, T, of such shares is sufficient to recover the data, where T is less than N;

splitting each share into data particles of equal size; and

writing the data particles to storage that comprises a plurality of independent stores such that, for each share, the data particles of that share are written to an independent store corresponding to that share, the independent store including co-existing particles of data from other shares of other data, all data particles of a share being written to the same independent store and particles from different shares being written to different independent stores, each data particle having an equal size and thus being anonymous relative to other data particles and identified only by an identifier unique within its respective store, and otherwise indistinguishable from the co-existing particles of the other shares of the other data.

20. The non-transitory computer program product of claim 19 further comprising pre-storing particles of dummy data within each store, whereby the particles of data and particles of dummy data co-exist in the store.

21. The non-transitory computer program product of claim 19 , further comprising performing a clean-up process a clean-up process for each store, whereby particles that exist in the store are identified as having expired, whereby particles of data and particles of expired data co-exist in the store.

22. The non-transitory computer program product of claim 19 , further comprising identifying a persistence policy for storage of the data in accordance with input preferences, whereby a set of store is selected for storage of the data in accordance with the persistence policy.

23. The non-transitory computer program product of claim 19 , further comprising destroying all copies of original data after a user-specified time, without any user intervention.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2019
From: LANC, DAVID; FAN, LU; MACKINNON, LACHLAN; BUCHANAN, WILLIAM J.
To: PAYFONT LIMITED
Reel/Frame 051325/0034 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2019
From: PAYFONT LIMITED
To: LEADING SOFTWARE LIMITED
Reel/Frame 051325/0163 →
Continuity (4)
Division 15216176 · Jul 21, 2016
Continuation PCTGB2016052009 · Jul 1, 2016
Provisional Application 62188058 · Jul 2, 2015
Related Publication 20170163418A1 · Jun 8, 2017