Provable Data Possession (PDP) is a cryptographic library that allows users to store their data at an untrusted server and have probabilistic guarantees that the server possesses the original data.  The client needs to store only his cryptographic keys and never has to retrieve the file.


The PDP protocol is the following:

  1. 1.A user pre-computes tags for each block of a file.

  2. 2.The user transmits the file and tags to the storage server.

  3. 3.To verify possession, the user produces a challenge and sends it to the server.

  4. 4.The server generates a proof based upon the challenge and replies to the client.

  5. 5.The client verifies the proof.


PDP uses homomorphic verifiable tags that minimize the amount of server computation, network traffic and block accesses while achieving a strong guarantee of data possession.  More details on PDP can be found in the paper: Provable Data Possession at Untrusted Stores.


The PDP library is currently under development and available on Google Code.  Currently, the core cryptographic routines are fully implemented, although documentation is lacking.  A command line interface for managing keys, generating tags, and verifying proofs is being developed. Future development plans include an interface to Amazon’s S3/EC2 web services.


This work was supported in part by NSF awards CCF-0238305 and IIS-0456027 and by the IBM corporation.

p

p

d