• Given a data file of arbitrary size, generate 3 “file shares” and store them in 3 different clouds (such as Google Drive, Box, DropBox, Microsoft OneDrive, Apple iCloud etc).
• Fetch any 2 out of the 3 file shares and recover the original file.
The utility will have the following desirable functions:
• Enhanced privacy: each individual file share leaks no information on the original file at all to the cloud provider.
• Loss tolerance: the original file can be recovered from any 2 out of the 3 file shares, and loss of any one out of the 3 file shares does not prevent the recovery of the original file.
You are suggested to follow a step-wise improvement approach indicated below.
1. XOR based 2-out-of-3 secret sharing
Implement the XOR based 2 out of 3 secret sharing scheme where a secret is of 256 bits (or 32 bytes). Given a 256-bit secret, three 256-bit secret shares are generated. From any 2 of the 3 shares, the original 256-bit secret is recovered. (See slides for a description of the XOR based secret sharing scheme.)
2. XOR based 2-out-of-3 file sharing
Using the above secret sharing method as a building block, implement the XOR based 2 out of 3 file sharing scheme where a file can be of arbitrary size. Given a file, three file shares are generated. From any 2 of the 3 file shares, the original file is recovered. Appropriate padding may be required to ensure that the size of the file is a multiple of 256 bits or 32 bytes.
3. Access clouds
Implement file share store (fs-store) and fetch (sf-fetch) operations. Given three file shares, sf-store deposits each of them in a separate cloud. When sf-fetch is called, it retrieves any 2 out of the 3 file shares stored in the clouds.
Integrate all of the above into a single package. Given a file, 3 file shares are generated and stored in 3 separate clouds. To retrieve the original file, fetch 2 out of the 3 file shares and recover the original.
4 freelancers están ofertando el promedio de $58 para este trabajo
I have done similar projects before. I am new freelancer so please accept my lower than usual offer and lets discuss more on chat. I would like some more details to give an accurate time and budget estimation.