Clients relying on a remote data storage can potentially move very large amount of data to the cloud. The data should be faithfully stored and the cloud providers should make them available to the owner (and perhaps others) on demand. The storage servers however are assumed to be untrusted in terms of both security and reliability. They may maliciously or accidentally erase or change a part of hosted data. They might also relegate the data to slow or off-line storage. Thus, the storage outsourcing carries the potential risk of loosing the data and the data owners are interested in verifying that the cloud providers are not cheating. Even if clients are not (immediately) interested in the data retrieval, they are concerned about the durability and consistency of hosted data.
As a minimum condition a data owner should be able to efficiently, frequently and securely verify that:
Fig. 5.3/1: Scenario
We may see few challenges in the matter of data retrievability. Namely:
The methodology for solving the problem of availability of data stored on untrusted servers appeared in the literature under the slogan:
Fig. 5.3/2: PDP/POR Scenario
PDP/POR is a typically challenge-response protocol which, without retrieving the data by the client, gives the client a cryptographic proof that the server possesses his data in the unchanged form.
Terms PDP and POR are often used interchangeably. We can find however a variety of different approaches to the topic and different properties of resulting schemes. Some of them (like : 1 or : 5 ) are based on public-key-based techniques and thus allow to achieve public verifiability (any verifier, not just the client, can query the server and obtain an interactive proof of data possession). Another (like : 4 ) are dedicated to encrypted data and are based on hiding special blocks in the data (called sentinels) that can be used to detect file modifications. However, only a fixed number of challenges is allowed and verification can be done only by the data owner.
General approach to proofs of possession
Generally a PDP scheme in this approach consists of the following procedures:
Perhaps the simplest solution for PDP is based on a cryptographic hash function \(H\). The protocol goes as follows:
Deswarte et al. (see : 2 ) and Filho et al. (see : 3 ) provided techniques to verify that a remote server stores a file using RSA-based hash functions. According to this kind of schemes:
(from : 5 )
A file \(D\) to be stored in the cloud is divided into blocks and each \(i\)th block into \(z\) subblocks, say:
\[
m_i=m_{i,1}\ldots m_{i,z}, \qquad m_{i,1}\ldots m_{i,z}\in Z_p
\]
The \(i\)th block also corresponds to a secret polynomial \(L_i\) of degree \(z\) known to the data owner
but unknown for the cloud.
We assume that the subblocks are pairwise different, e.g. each subblock
contains its serial number. Additional parameters (used during polynomials generation):
For each subblock \(m_{i_j}\) the client computes a tag \(t_{i,j} := L_i(m_{i,j})\). All the data together with tags are stored at the cloud. During a challenge phase for a single block \(m_i\) a client:
Given
\[ \begin{eqnarray*} LI_{EXP}(x,A')& \stackrel{\textrm{def}}{=} &\prod^{z}_{i=0,(x_i,.)\in A'} { {\left( g^{rL(x_{i})}\right)}^{ \prod^{z}_{j=0, j\neq i}{\left( \frac{x-x_j}{x_i-x_j}\right)} } }. \end{eqnarray*} \]
Note that \[ LI_{EXP}(x,A') = g^{ r\sum^{z}_{i=0,(x_i,.)\in A'} { \left({ {L(x_{i})} } { \prod^{z}_{j=0, j\neq i} { \left( \frac{x-x_j}{x_i-x_j} \right) } }\right) } }= g^{rL(x)} ~. \]
Ateniese, G., Burns, R.C., Curtmola, R., Herring, J., Kissner, L., Peterson, Z.N.J., Song, D.X.: Provable data possession at untrusted stores.
Deswarte, Y., Quisquater, J., Sadane, A.: Remote integrity checking - how to trust files stored on untrusted servers.
In Jajodia, S., Strous, L., eds.: Integrity and Internal Control in Information Systems VI - IFIP TC11/WG11.5 Sixth Working Conference on Integrity and Internal Control in Information Systems (IICIS) 13-14 November 2003, Lausanne, Switzerland. Volume 140 of IFIP., Springer (2003) 1- 11. http://dx.doi.org/10.1007/1-4020-7901-X_1
Filho, D.L.G., Barreto, P.S.L.M.: Demonstrating data possession and uncheatable data transfer.
IACR Cryptology ePrint Archive 2006 (2006) 150. http://eprint.iacr.org/2006/150
Juels, A., Jr., B.S.K.: Pors: proofs of retrievability for large files.
Krzywiecki, Ł., Kutyłowski, M.: Proof of possession for cloud storage via lagrangian interpolation techniques.
In Xu, L., Bertino, E., Mu, Y., eds.: Network and System Security - 6th International Conference, NSS 2012, Wuyishan, Fujian, China, November 21-23, 2012. Proceedings. Volume 7645 of Lecture Notes in Computer Science., Springer (2012) 305-319. http://dx.doi.org/10.1007/978-3-642-34601-9_23