Method and system for securing data
First Claim
Patent Images
1. A method for securing user data, comprising the steps of:
- a) setting the user data as input data;
b) randomly fragmenting the input data into a plurality of Atoms and randomly distributing the Atoms into an AtomPool; and
c) recording information about the fragmentation and the distribution of step b) into an AtomMap;
wherein;
the AtomPool pre-exists the distribution of step b);
the AtomPool of step b) is divided into a number of zones, the number being Z; and
the distribution of step b) comprises the steps of;
d) randomly selecting the zone into which each Atom of the plurality of Atoms is distributed, wherein the zone selection occurs separately for each Atom;
e) copying each Atom of the plurality of Atoms to the zone selected for that Atom in step d), starting at a zone index for that zone, overwriting any data that exists in the location where each Atom is copied; and
f) moving the zone index of each zone into which any Atom was copied in step e) to a location immediately after the location of step e) where the Atom is copied.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for securing user data includes the steps of: a) setting the user data as input data; b) randomly fragmenting the input data into a plurality of Atoms and randomly distributing the Atoms into an AtomPool; and c) recording information about the fragmentation and the distribution of step b) into an AtomMap.
24 Citations
22 Claims
-
1. A method for securing user data, comprising the steps of:
-
a) setting the user data as input data; b) randomly fragmenting the input data into a plurality of Atoms and randomly distributing the Atoms into an AtomPool; and c) recording information about the fragmentation and the distribution of step b) into an AtomMap; wherein; the AtomPool pre-exists the distribution of step b); the AtomPool of step b) is divided into a number of zones, the number being Z; and the distribution of step b) comprises the steps of; d) randomly selecting the zone into which each Atom of the plurality of Atoms is distributed, wherein the zone selection occurs separately for each Atom; e) copying each Atom of the plurality of Atoms to the zone selected for that Atom in step d), starting at a zone index for that zone, overwriting any data that exists in the location where each Atom is copied; and f) moving the zone index of each zone into which any Atom was copied in step e) to a location immediately after the location of step e) where the Atom is copied. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
wherein steps i)-j) are performed before step e).
-
-
4. The method of claim 3, wherein:
-
the distribution of step b) further comprises the steps of; k) generating a random binary string called a VectorGenerator; l) for each Atom, selecting t contiguous bits from the VectorGenerator, wherein; t includes enough bits to select the zone in step d) and to select the offset in step h); the t bits are called a Vector; z is a portion of the Vector that selects the zone in step d); o is a portion of the Vector that selects the offset in step i); and succeeding groups of t bits of the VectorGenerator are used to generate Vectors for succeeding Atoms; m) using z of each Vector in step d) to select the zone for the Atom corresponding to that Vector; and n) using o of each Vector in step i) to select the offset for the Atom corresponding to that Vector; and step c) further comprises the step of; o) recording the VectorGenerator into the AtomMap.
-
-
5. The method of claim 3, further comprising the steps of:
-
p) setting the AtomMap of step c) as the input data; and q) repeating at least one iteration of steps b)-c), wherein the AtomMap of a final iteration of step c) is a final AtomMap.
-
-
6. The method of claim 5, wherein the size of the AtomMap after any iteration of steps b)-c) is less than the size of the input data fragmented and distributed during that iteration.
-
7. The method of claim 6, further comprising the steps of:
-
r) compressing the input data; s) pre-randomizing the compressed input data of step r); and t) recording information about the compression of step r) and information about the pre-randomization of step s) into the AtomMap; wherein; steps r)-s) are performed before step b); and the fragmentation and the distribution of the input data in step b) is of the pre-randomized input data of step s).
-
-
8. The method of claim 7, wherein the AtomPool of step b) is larger than the pre-randomized input data of step s).
-
9. The method of claim 8, further comprising the step of:
-
u) filling the AtomPool with random data; wherein; step u) is performed before the distribution of step b).
-
-
10. The method of claim 9, wherein the fragmentation of step b) comprises the steps of:
-
v) randomly selecting a data block of the input data; w) fragmenting the selected data block into a plurality of Atoms; and x) repeating steps v)-w) until each data block of the input data has been fragmented.
-
-
11. The method of claim 1, wherein step w) comprises the steps of:
-
y) selecting an m-bit contiguous segment of the data block; z) fragmenting the selected segment into a plurality of Atoms; and aa) repeating steps y)-z) for a next segment until the entire data block has been fragmented.
-
-
12. The method of claim 5, further comprising the step of:
-
iii) converting the final AtomMap of step q) into an AtomKey; wherein step iii) is performed after step q).
-
-
13. The method of claim 12, further comprising the steps of:
-
kk) converting the AtomKey of step iii) into an input AtomMap; ll) using the input AtomMap of step kk) to collect and reassemble the plurality of Atoms from the AtomPool into output data; and mm) if the output data from an iteration of step ll) is an AtomMap, setting that output data as the input AtomMap and repeating iterations of step ll) until the output data is not an AtomMap; wherein steps kk)-mm) are performed after step iii).
-
-
14. The method of claim 12, further comprising the steps of:
-
nn) storing the AtomPool of step b) on a first storage media; and oo) storing the AtomKey of step iii) on a second storage media; wherein steps nn)-oo) are performed after step iii).
-
-
15. The method of claim 14, wherein the first storage media of step nn) is at least one cloud storage media, the method further comprising the step of:
-
pp) recording location information of the storage of step nn) to the second storage media; wherein step pp) is performed after step nn).
-
-
16. The method of claim 12, further comprising the steps of:
-
uu) storing the AtomPool of step b) on at least one storage media; xx) combining the AtomKey with a random string called an AtomPad to produce an AtomPadLock; and yy) storing the AtomPadLock of step xx) on a second storage media; wherein steps uu) and xx)-yy) are performed after step iii).
-
-
17. The method of claim 16, further comprising the steps of:
-
zz) retrieving the AtomPool stored in step uu) from the at least one storage media; bbb) retrieving the AtomPadLock stored in step yy) from the second storage media; ccc) applying the AtomPad to the AtomPadLock retrieved in step bbb) to produce the AtomKey; ddd) converting the AtomKey produced in step ccc) into an input AtomMap; eee) using the input AtomMap of step ddd) to collect and reassemble the plurality of Atoms from the AtomPool retrieved in step zz) into output data; and fff) if the output data from an iteration of step eee) is an AtomMap, setting that output data as the input AtomMap and repeating iterations of step eee) until the output data is not an AtomMap; wherein steps zz)-fff) are performed after step yy).
-
-
18. The method of claim 17, further comprising the steps of:
-
ggg) obtaining a list of random data; and hhh) obtaining the AtomPad using the list of random data of step ggg); wherein; steps ggg)-hhh) are performed before step ccc); and the AtomPad obtained in step hhh) is applied in step ccc).
-
-
19. A non-transitory computer readable medium comprising instructions for causing a computer to perform the method of claim 5.
-
20. A non-transitory computer readable medium comprising instructions for causing a computer to perform the method of claim 13.
-
21. A system for securing user data, comprising:
-
a first computer; and a second computer in communication with the first computer; wherein the first computer is programmed to; execute steps a)-j), p)-q), and iii) of the method of claim 13; and communicate the AtomPool and the AtomKey to the second computer; and wherein the second computer is programmed to execute steps kk)-mm) of the method of claim 13.
-
-
22. The method of claim 12, wherein step iii) comprises the step of:
jjj) setting the final AtomMap of step q) as the AtomKey.
Specification