1 Introduction
As cloud storage can provide users with high-quality data storage and computing services [1], cloud storage has gradually gained wide popularity among users. Cloud storage not only provides convenience for users but also raises serious security problems for them. Cloud storage not only makes users relinquish physical control of the data but also increases the risk of data being leaked by, tampered with and deleted by cloud service providers. In addition, the security of cloud storage is threatened by external attackers, hardware failures and other factors. Therefore, research on the integrity verification of users’ cloud data is urgently needed.
A provable data possession (PDP) scheme can effectively help users to verify the integrity of data stored remotely in the cloud. However, research on PDP has paid little attention to user deception by cloud service providers. For example, a user once issued an order to delete a certain piece of data to the cloud service provider, but the user denied that order when authenticating the integrity and blamed the cloud service provider, resulting in disputes between the user and the cloud service provider. For this reason, by introducing the Stern-Brocot tree type of dynamic data structure, this paper proposes a non-repudiable dynamic provable data possession scheme (SB-NR-DPDP).
2 Related Work
To solve the problem of users checking cloud data integrity, researchers have proposed a provable data possession (PDP) scheme. In 2007, Ateniese et al. [2] first proposed the PDP scheme. To support user dynamic operations and to improve the scheme’s flexibility of the scheme, the researchers proposed dynamic PDP scheme. For example, [1, 3, 4]. To eliminate complex key and certificate management and to improve PDP scheme efficiency, Zhao et al. [5] proposed the first identity-based PDP scheme in 2013. To solve the problem of user unreliability and improve the credibility of both parties in a PDP scheme, in 2014, Mo et al. [6] proposed a non-repudiation PDP scheme based on the Merkle hash tree and timestamps. Feng [7] et al. found that the existing dynamic data structure could not satisfy the non-repudiation feature of the PDP scheme very well. By introducing a logical index table (ILT), they proposed the non-repudiation and identity-based, non-repudiable dynamic PDP scheme (ID-NR-DPDP) in cloud storage.
3 The System Model
PKG: A trusted third party, which is called the private key generator. It can help users generate private keys.
User: The data owner who uses cloud storage services to outsource data to remote clouds.
Cloud server: A semi-trusted entity that stores and processes the user’s data. It can prove data integrity to clients, but sometimes the cloud server can destroy data integrity and trick clients into believing that the data are still intact in the cloud.
Judge: A trusted third party that resolves disputes when they arise between the user and the cloud service provider.
4 The Dynamic Operation Algorithm of the Stern-Brocot Tree
The algorithm calculates the height of the tree that needs to be established according to the number of seeds and the number of data blocks n. Each leaf node in the tree corresponds to a unique pointer variable, and each pointer variable points to the user’s corresponding data block .
Insert algorithm: When data blocks need to be inserted, an update from the most recent operation starts after the largest leaf node. The pointer variable corresponding to the appropriate insert block position is found. It then points to the file block . The number of blocks is updated at the same time.
Deletion algorithm: To delete the correspondence between pointer variables and file blocks, it needs to delete the pointer to , and let as failure node that is to add as a global pointer variable for the dynamic operation algorithm. Finally, update the number of blocks at the same time, . The purpose of marking the failure node is that when the tree is built again, conflicts with the global variable value, indicating that the position is the failure position. Continue to look for the insertion position, so as to prevent the deletion - insertion attack. If the deleted position is at the last block, a new block will be inserted after the newly deleted position to avoid the delete - insert attack. When there are not enough leaves in the tree, a row will be generated again and the global variable will be cleared after initialization.
Modify algorithm: First, it removes the relationship between the pointer variable and the file block , and makes pointer variable value . It then adds as a global pointer variable for the dynamic operation algorithm. Then, it follows the insertion algorithm to find pointer variable corresponding to the insertion location, and points to modify the file.
5 Details of the SB-NR-DPDP Scheme
The SB-NR-DPDP scheme include six algorithms: , , , , , and , which are described in detail in the following sections.
5.1 Setup
This algorithm is executed by the PKG. Let be a cyclic multiplication groups with prime order, and be a generator of . The map is a bilinear pairing. The PKG defines three hash functions: , , ; a pseudo-random function: ; and a pseudo-random permutation: . The PKG then selects a random number and computes . The identity-based signature algorithm of Galindo and Garcia [9] where generates the signature for the message, and is used to verify the signature validity. PKG publishes the public parameters and keeps the secret.
5.2 Extraction
The PKG selects a random number and computes , ; therefore, . The PKG uses this algorithm to generate the client’s secret key, , or the cloud server’s secret key, .
5.3 Tagging
Given an F, the client chooses a random file name NI from some large domain and splits the file into n blocks, , given , . Then, the client selects s random values , and then initializes the tree by the dynamic operation algorithm of the Stern-Brocot tree to obtain . It then calculates the signature and label , where and . Then, the client uploads to the cloud server. Next, the cloud server uses equations and to check the validity of , and . If one of them does not hold, the operation stops. Otherwise, the cloud server stores them, computes the signature , and returns as a receipt to the client. The client receives the receipt from the cloud server, and then checks the validity of the receipt by using the equation . If it is invalid, the operation stops. Otherwise, the client stores and deletes data blocks and tags from local storage.
5.4 Processing
Insert
Delete
Modify
The client wants to modify the file block value into . First, the client obtains the pointer variable corresponding to the new insertion location of the new block by using the dynamic operation algorithm. Then, the file is divided into s sections - . The client computes the new label and signature , by using the equations and . Then, the client uploads to the cloud server. The cloud server checks the validity and , by using the equations and . If one of them does not hold, the operation stops; otherwise, the cloud server updates . Then, the signature is computed and is returned as a receipt to the client. The client receives the receipt from the cloud server and checks the validity of the receipt by using the equation . If it is invalid, the operation stops; otherwise, the client updates , and deletes the file block and its labels.
5.5 Proof
The client wants to verify the integrity of the file NI. First, the client selects a random number , where and . The client computes and sends the challenge to the cloud server. Upon receiving the challenge, the cloud server stops the dynamic operations of
this file, selects , computes , , , , , , , , , and sends to the client as a response. Then, the client computes , , , and , and then checks the validity of response by using the equations and . When the equations are true, the data are proven to be complete.
5.6 Judgement
When there is a dispute between the client and the cloud server, they each send the latest data information to the judge. The cloud server sends the latest and response , to the judge. Then, the judge checks the validity of . If it is invalid, the cloud server is the winner. Otherwise, the judge checks the validity of and . If one of them is winner, the client is the winner.
6 Efficiency Analysis
From Table 1, we can see that our scheme’s computational overhead is the same as scheme [7], so the computational cost is mainly compared with scheme [1]. Our scheme is more efficient because we use a bilinear pairing operation with less computational overhead instead of using exponential operations, and the time expended by is less than On the other hand, we can see that when the value of n is fixed, the computational cost of the two schemes is linear with the number of s. Moreover, as the s grows, the growth rate of tag generation computational overhead in scheme [1] is significantly higher than ours. Though comparison, we found that the computational overhead of our scheme is reduced, so our scheme is more efficient. Since both schemes [1, 7] need to maintain the table structure, the scheme, the clients and cloud server do not need to maintain the table structure, and the storage overhead is fixed. Only the number of data blocks n and the seed of the tree can be stored, and the storage overhead is independent of the file size. For this reason, the storage overhead of our scheme is significantly lower than that of the schemes [1, 7], which reduces the storage overhead of the clients and the cloud server.
7 Summary
The scheme enables the clients and the cloud server to dynamically manipulate outsourced files, making the PDP solution more suitable for practical application. The program supports identity authentication, enabling the PDP solution to eliminate complex certificate management. The program supports non-repudiation and solves the disputes between the client and the cloud server. the proposed scheme has less computing and storage overhead than other schemes. As such, it has high efficiency.