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
test.C contains a description of the various functions and where they are
meant to be used.
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).