Patent ID: 7337331

Claim:
A distributive storage controller for providing a data storage service to a plurality of computer devices connected to a network, the controller comprising: (a) a storage controller that (1) receives a storage instruction of data to be stored from one of a plurality of connected computer devices, (2) checks an available data storage capacity of a storage unit of each of the computer devices, (3) divides and encrypts the data to be stored into a plurality of encrypted pieces, wherein during the division and encryption, the storage controller (i) removes a portion of each divided piece of data, (ii) generates the encrypted pieces from the segment remaining after the removal, (iii) stores each removed portion to a predetermined storage location on the network, (4) selects, for each of the plurality of encrypted pieces, one of the computer devices in which the storage unit has available data storage capacity for storing that encrypted piece based on the result of the checking, (5) transfers and stores each encrypted piece to the computer device selected for storing that encrypted piece, and (6) generates storage location information indicating which encrypted piece is stored in which computer device; and (b) an extraction controller that (1) receives an extraction instruction of stored data from one of the plurality of connected computer devices, (2) identifies each computer device to which each encrypted piece of the stored data is stored referring to the storage location information, (3) retrieves and decrypts each encrypted piece from the computer device in which the encrypted piece is stored, wherein during the retrieval, the extraction controller (i) retrieves the removed portions from the predetermined storage location, (ii) decrypts and integrates the group of encrypted pieces obtained from the computer devices with the removed portions from the predetermined storage locations, (iii) restores the original data, (4) restores the original data based on the retrieved and decrypted pieces, and (5) provides the restored original data to the one of the plurality of connected computer devices instructing the extraction.