A computer program product having computer instructions recorded on a computer readable medium, for enabling an information processing apparatus, which communicates with one or more different information processing apparatuses, executing the computer instructions to process data stored on a storage of the information processing apparatus and perform operations comprising:
- dividing the data stored on the storage into a first number of pieces of partial data in accordance with a secret sharing scheme transmitting one or more pieces of partial data out of the first number to at least one of the different information processing apparatuses;
- deleting the one or more pieces of partial data thus transmitted from the storage;
- retrieving the one or more pieces of partial data from the different information processing apparatuses;
- and
- restoring the data on the storage using the minimum number of partial data pieces.