No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
BitIndexGenerator.C
BitIndexGenerator.h
BulkChallengeGenerator.C
BulkChallengeGenerator.h
ChallengeGenerator.C
ChallengeGenerator.h
Counter.C
Counter.h
Debug.h
File.C
File.h
FileDigest.C
FileDigest.h
LICENSE
Makefile
MerkleTree.C
MerkleTree.h
Node.C
Node.h
README.md
Response.C
Response.h
SingleChallengeGenerator.C
SingleChallengeGenerator.h
pow-halevi.h
pow-rdp.h
pow.h
shim-halevi.C
shim-rdp.C
shim.C
test.C

README.md

IBM-data-ownership-toolkit

Description of the security primitive

Proof of Ownership (PoW) is a cryptographic protocol that regulates the interactions between a prover and a verifier. The protocol is usually executed in the context of a storage outsourcing scenario, where the prover is the client and the verifier is the (storage) service provider.

In a POW scheme, a prover and a verifier interact. At first prover and verifier exchange short information about a file (e.g. the hash of a file). Then, prover and verifier engage in a cryptographic protocol with the purpose of establishing that the prover indeed owns the file. The correctness property of PoW schemes require that the owner of a file will succeed in convincing the verifier of this fact. The security property will guarantee that a malicious prover who is not in possession of the file will succeed in convincing the verifier with negligible probability even in the presence of a legitimate file owner who colludes with the adversary, subject to certain restrictions. Cryptographically speaking, the prover is allowed to access an oracle that provides information on the file. More specifically, the prover may submit the description of a function to the oracle, and the oracle will invoke the function on input the file and return the output of the function to the prover. The leakage is only bounded in terms of execution time of the function and size of its output. The protocol is supposed to be resilient even in presence of this oracle.

Using the toolkit

The toolkit is intended to be pacakged as a library and linked (both at the client and server side) to the storage application requiring support for proof of ownership.

The project can be built by running

make

The file test.C contains a description of the various functions and where they are meant to be used.

Acknowledgements

The research leading to these results has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 644412 (TREDISEC).