IP Library Patent Application 12342547
Patent Application
App. No. 12/342,547

STORAGE OF CRYPTOGRAPHICALLY-SPLIT DATA BLOCKS AT GEOGRAPHICALLY-SEPARATED LOCATIONS

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 None
App. No.
12/342,547
Abstract

A secure storage appliance is disclosed, along with methods of storing and reading data in a secure storage network. The secure storage appliance is configured to present to a client a virtual disk, the virtual disk mapped to the plurality of physical storage devices. The secure storage appliance is capable of executing program instructions configured to generate a plurality of secondary data blocks by performing splitting and encrypting operations on a primary data block received from the client for storage on the virtual disk. For security, the secondary data blocks are stored at geographically-distributed locations. The secure storage appliance is also capable of executing program instructions configured to reconstitute the primary data block from at least a portion of the plurality of secondary data blocks stored in shares on corresponding physical storage devices in response to a request from the client.

Claims (65)

1 . A method for securely storing and retrieving data, the method comprising:

receiving, at an electronic computing system, a primary write request that specifies a primary data block to be written to a primary storage location;

cryptographically splitting, at the electronic computing system, the primary data block into a plurality of secondary data blocks such that the primary data block can be reconstructed using any subset of the secondary data blocks that includes at least a minimum number of secondary data blocks and cannot be reconstructed using any subset of the secondary data blocks that includes fewer than the minimum number of secondary data blocks, wherein the minimum number of secondary data blocks is less than or equal to a total number of the secondary data blocks; and

storing each of the secondary data blocks at secondary storage locations of different storage devices in a set of storage devices at a plurality of geographically-separated sites, each of the sites storing at most the minimum number of secondary data blocks.

2 . The method of claim 1 , wherein storing each of the secondary data blocks comprises sending, from the electronic computing system to the storage devices, concurrent secondary write requests to write the secondary data blocks at the secondary storage locations.

3 . The method of claim 1 , further comprising:

receiving, at the electronic computing system, a primary read request to retrieve data stored virtually at a primary storage location associated with the secondary storage locations;

sending, from the electronic computing system to at least the minimum number of the storage devices, secondary read requests to retrieve data stored at the secondary storage locations;

receiving, at the electronic computing system from ones of the storage devices, secondary read responses that are responsive to the secondary read requests, the secondary read responses containing ones of the secondary data blocks;

reconstructing the primary data block using the secondary data blocks contained in the secondary read responses; and

after reconstructing the primary data block, sending, from the electronic computing system, a primary read response that contains the primary data block.

4 . The method of claim 3 , further comprising after receiving the primary read request, using, at the electronic computing system, a location map to identify the secondary storage locations.

5 . The method of claim 3 , wherein sending the secondary read requests comprises sending the secondary read requests via a storage area network (SAN).

6 . The method of claim 1 , wherein receiving the primary write request comprises receiving the primary write request from an application server device via a SAN.

7 . The method of claim 1 ,

wherein the primary write request is a first primary write request,

wherein the plurality of secondary data blocks is a first plurality of secondary data blocks,

wherein the primary data block is a first primary data block,

wherein the primary storage location is associated with a first volume, and

wherein the method further comprises:

receiving, at the electronic computing system, a second primary write request that specifies a second primary data block to be written to a primary storage location of a second volume;

cryptographically splitting, at the electronic computing system, the second primary data block into a second plurality of secondary data blocks; and

storing each of the secondary data blocks in the second plurality of secondary data blocks at secondary storage locations of different ones of the storage devices.

8 . The method of claim 7 , wherein the method further comprises copying each of the storage devices to separate backup devices.

9 . The method of claim 7 ,

wherein the method further comprises:

generating, at the electronic computing system, a first set of session keys using a first workgroup key associated with the first volume, the first set of session keys comprising a different session key for each of the secondary data blocks in the first plurality of secondary data blocks;

storing the first set of session keys at the electronic computing system;

generating, at the electronic computing system, a second set of session keys using a second workgroup key associated with the second volume, the second set of session keys comprising a different session key for each of the secondary data blocks in the second plurality of secondary data blocks; and

storing the second set of session keys at the electronic computing system; and

wherein cryptographically splitting the first primary data block comprises encrypting each of the secondary data blocks in the first plurality of secondary data blocks with a corresponding session key in the first set of session keys; and

wherein cryptographically splitting the second primary data block comprises encrypting each of the secondary data blocks in the second plurality of secondary data blocks with a corresponding session key in the second set of session keys.

10 . The method of claim 1 , wherein cryptographically splitting the primary data block comprises cryptographically splitting the primary data block into the plurality of secondary data blocks using a SECUREPARSER™ algorithm.

11 . An electronic computing device for securely storing and retrieving data, the electronic computing system comprising:

a primary interface that receives a primary write request that specifies a primary data block to be written to a primary storage location;

a write module that causes the electronic computing device to cryptographically split the primary data block into a plurality of secondary data blocks such that the primary data block can be reconstructed using any subset of the secondary data blocks that includes at least a minimum number of secondary data blocks and cannot be reconstructed using any subset of the secondary data blocks that includes fewer than the minimum number of secondary data blocks, wherein the minimum number of secondary data blocks is less than or equal to a total number of the secondary data blocks; and

a secondary interface that sends secondary write requests to a plurality of storage devices at a plurality of geographically-separated sites, each of the secondary write requests instructing a different one of the storage devices to store a different one of the secondary data blocks, wherein each of the sites stores at most the minimum number of secondary data blocks.

12 . The electronic computing device of claim 11 ,

wherein the primary interface is configured to receive a primary read request to retrieve a primary data block stored virtually at the primary storage location;

wherein the secondary interface sends to at least the minimum number of the storage devices secondary read requests to retrieve data stored at the secondary storage locations and receives from ones of the storage devices secondary read responses that are responsive to the secondary read requests, the secondary read responses containing ones of the secondary data blocks; and

wherein the electronic computing device comprises a read module that causes the electronic computing device to reconstruct the primary data block using the secondary data blocks contained in the secondary read responses and to send via the primary interface a primary read response that contains the primary data block.

13 . The electronic computing device of claim 12 , wherein the write module and the read module comprise a processing unit that executes instructions that cause the processing unit to cryptographically split the primary data block into the plurality of secondary data blocks and to reconstruct the primary data block.

14 . The electronic computing device of claim 12 , wherein the secondary interface sends the secondary read requests via a storage area network (SAN).

15 . The electronic computing device of claim 11 ,

wherein the primary interface receives the primary write request from an application server device; and

wherein the electronic computing device presents a plurality of volumes to the application server device.

16 . The electronic computing device of claim 11 , wherein the write module encrypts each of the secondary data blocks with a different session key.

17 . A computer-readable storage medium comprising instructions that, when executed by an electronic computing device, cause the electronic computing device to:

receive a first primary write request from a client computing device via an electronic communications network, the first primary write request specifying a first primary data block to be written to a first primary storage location of a first volume;

cryptographically split the first primary data block into a first plurality of secondary data blocks such that the first primary data block can be reconstructed using any subset of the secondary data blocks that includes at least a minimum number of secondary data blocks in the first plurality of secondary data blocks and cannot be reconstructed using any subset of the secondary data blocks in the first plurality of secondary data blocks that includes fewer than the minimum number of secondary data blocks, wherein the minimum number of secondary data blocks is less than a total number of the secondary data blocks in the first plurality of secondary data blocks;

send secondary write requests to different storage devices in a plurality of storage devices at a plurality of geographically-separated sites, each of the sites storing fewer than the minimum number of secondary data blocks in the first plurality of secondary data blocks;

receive a second primary write request from the client computing device via the electronic communications network, the second primary write request specifying a second primary data block to be written to a primary storage location of a second volume;

cryptographically split the second primary data block into a second plurality of secondary data blocks such that the second primary data block can be reconstructed using any subset of the secondary data blocks that includes at least the minimum number of secondary data blocks in the second plurality of secondary data blocks and cannot be reconstructed using any subset of the secondary data blocks in the second plurality of secondary data blocks that includes fewer than the minimum number of secondary data blocks, wherein the minimum number of secondary data blocks is less than a total number of the secondary data blocks in the second plurality of secondary data blocks; and

send secondary write requests to different storage devices in the plurality of storage devices at the plurality of geographically-separated sites, each of the sites storing fewer than the minimum number of secondary data blocks in the second plurality of secondary data blocks.

18 . The computer-readable storage medium of claim 17 , further comprising instructions that, when executed by the electronic computing device, cause the electronic computing device to:

use a SECUREPARSER™ algorithm to cryptographically split the first primary data block into the first plurality of secondary data blocks; and

use the SECUREPARSER™ algorithm to cryptographically split the second primary data block into the second plurality of secondary data blocks.

19 . The computer-readable storage medium of claim 17 , further comprising instructions that, when executed by the electronic computing device, cause the electronic computing device to:

receive a primary read request to retrieve data stored virtually at the first primary storage location;

use a location map to identify the secondary storage locations associated with the first primary storage location;

send to ones of the storage devices secondary read requests to retrieve data stored at the secondary storage locations associated with the first primary storage location;

receive secondary read responses that are responsive to the secondary read requests, the secondary read responses containing secondary data blocks in the first plurality of secondary data blocks;

reconstructing the first primary data block using the secondary data blocks contained in the secondary read responses; and

sending a primary read response that is responsive to the primary read request and that contains the first primary data block.

20 . The computer-readable storage medium of claim 17 , further comprising instructions that, when executed by the electronic computing device, cause the electronic computing device to copy data at each of the storage devices to separate backup devices.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
RELEASE BY SECURED PARTY Recorded Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT Recorded Feb 10, 2009
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 022237/0172 →