Data shredding RAID mode
AssigneeLSI Corporation
InventorsMikhail I. Grinchuk, Anatoli A. Bolotov, Ranko Scepanovic, Robert D. Waldron
Life of this patent
Estimating the term…
Abstract
A method of storing sensitive data by generating randomization values, transforming the sensitive data and the randomization values into a result, and storing separate portions of the result on at least two storage devices, such that the sensitive data cannot be disclosed if any one of the storage devices is compromised.
Claims22
A method of storing sensitive data, the method comprising:
- generating randomization values,
- dividing the sensitive data and the randomization values into numbered segments,
- transforming the sensitive data and the randomization values into a result separately and independently for each numbered segment, wherein the randomization values depend at least in part on a storage address for the result, where the storage address has a periodical sequence within a single storage device, such that there exist values T that are greater than one, such that for all storage addresses A, the transforming step for the Ath numbered segments is identical to that for A+Tth and non-negative A-Tth numbered segments,
- storing separate portions of the result at the storage address on at least two storage devices,
- where the transforming step:
- (a) is reversible in that when all storage devices are accessible to an authorized user, the sensitive data can be reconstructed by reversing the transforming step, (b) provides automatic self-shredding of the sensitive data as it is stored on the storage devices in that when any one of the storage devices is accessible to an unauthorized user, then the storage device does not contain a sufficient amount of information to reconstruct any of the sensitive data, without accessing the other storage devices.
A method of storing sensitive data, the method comprising:
- associating identical relative logical positions on a first data storage device and a second data storage device,
- for each relative position on the first data storage device and the second data storage device,
- generating only one randomization value,
- writing the randomization value to the relative logical position on the first data storage device, and
- writing the randomization value to the relative logical position on the second data storage device, and
- for each data segment in the sensitive data,
- selecting one of the relative logical positions on the first data storage device and the second data storage device,
- reading the randomization value from the selected relative logical position,
- transforming the data segment with the randomization value as read, to produce a transformed data segment, and
- writing the transformed data segment to the selected relative logical position on a selected one of the first data storage device and the second data storage device.
A hard drive controller card, comprising:
- ports to send data and control signals to at least a first hard drive and a second hard drive, and to communicate with a computer,
- an initialization module to,
- associate identical relative logical positions on the first hard drive and the second hard drive, and
- for each relative logical position on the first hard drive and the second hard drive,
- generate only one randomization value,
- write the randomization value to the relative logical position on the first hard drive, and
- write the randomization value to the relative logical position on the second hard drive,
- a data shredding module to,
- receive sensitive data, and
- for each data segment in the sensitive data,
- select one of the relative logical positions on the first hard drive and the second hard drive,
- read the randomization value from the selected relative logical position,
- transform the data segment with an XOR function with the randomization value as read, to produce a transformed data segment, and
- write the transformed data segment to the selected relative logical position on a selected one of the first hard drive and the second hard drive, and
- a data reading module to,
- read the transformed data segment from the selected relative logical position on the selected one of the first hard drive and the second hard drive,
- read the randomization value from the selected relative logical position of a nonselected one of the first hard drive and the second hard drive, and
- reconstruct the data segment with an XOR function applied to the transformed data segment and the randomization value.
A hard drive controller card, comprising:
- ports to send data and control signals to at least a first hard drive and a second hard drive, and to communicate with a computer,
- hardware for implementing software algorithms, including;
- an initialization algorithm that associates identical relative logical positions on the hard drives with each other, generates only one randomization value for each relative logical position and writes the randomization value to each relative logical position on the hard drives,
- a data writing algorithm that receives sensitive data, and for each data segment of the sensitive data, selects one of the relative logical positions, reads the randomization value from the selected relative logical position of some of the hard drives, transforms the data segment with an XOR function with the randomization value to produce transformed data segments, and writes the transformed data segments to the selected relative logical position on at least a second selected hard drive, and
- a data reading routine that reads the transformed data segments from the selected relative logical position on the selected hard drive and reconstructs the requested data segment with an XOR function to produce the sensitive data.
A hard drive controller card, comprising:
- ports to send data and control signals to at least two hard drives and to communicate with a computer, and
- hardware for implementing data access operations, including algorithmic modules, the algorithmic modules including,
- an initialization module to,
- associate identical relative logical positions on the hard drives with each other, and
- for each relative logical position on the hard drives,
- one of generate and receive from a separate random number generator only one randomization value, and
- write the randomization value to the relative logical position on the hard drives, where the randomization value is selectively written in one of an unmodified form and a modified form,
- a data writing module to,
- receive sensitive data, and
- for each data segment in the sensitive data,
- select at least one of the hard drives,
- read the randomization value from a selected relative logical position of the at least one selected hard drive,
- transform with a first function the data segment with the randomization value as read, to produce at least one transformed data segment, and
- write the at least one transformed data segment to the selected relative logical position on at least one hard drive, and
- a data reading module to, for each data segment to be read,
- select at least two of the hard drives, where at least one of the selected hard drives contains at least one transformed data segment in a selected relative position,
- read the at least one transformed data segment from the selected relative logical position on the selected hard drives,
- apply a second function based on the first function to the at least one transformed data segment to reconstruct the sensitive data, and
- send the reconstructed sensitive data to the computer.
Dependencies are inferred from the claim text.