# A Secure and Efficient Audit Mechanism for Dynamic Shared Data in Cloud Storage

Authors: Ohmin Kwon; Dongyoung Koo; Yongjoo Shin; Hyunsoo Yoon
Journal: The Scientific World Journal
 (2014)

---

## Abstract

With popularization of cloud services, multiple users easily share and update their data through cloud storage. For data integrity and consistency in the cloud storage, the audit mechanisms were proposed. However, existing approaches have some security vulnerabilities and require a lot of computational overheads. This paper proposes a secure and efficient audit mechanism for dynamic shared data in cloud storage. The proposed scheme prevents a malicious cloud service provider from deceiving an auditor. Moreover, it devises a new index table management method and reduces the auditing cost by employing less complex operations. We prove the resistance against some attacks and show less computation cost and shorter time for auditing when compared with conventional approaches. The results present that the proposed scheme is secure and efficient for cloud storage services managing dynamic shared data.


---

## Body

## 1. Introduction

Cloud computing is a promising paradigm to create various computing environments such as [1–3]. Cloud service provider (CSP) allows network-connected users to make use of computing resources in a remote location. As the usage of cloud service matures, users try to share their data in cloud storage and process the data efficiently at a low cost [3–5]. Although several CSPs such as Google [6] and Amazon [7] support computing environments for shared data, integrity of outsourced data is hard to be guaranteed. Due to the lack of transparency, users delegate the control for data management to the third-party CSP but there is no way for users to be noticed about data loss or modification occurred at the cloud storage. In addition, for the reputation of the cloud service, CSPs are reluctant to reveal data inconsistency caused by external threats, software/hardware failures, inside attacks, and so on. Therefore, audit mechanisms are required for verifying consistent data management in the cloud storage.There are several studies verifying integrity of outsourced data at untrusted storages [8–18]. Most of them [8–14] are yet to consider a situation where the same data is shared by multiple users. In these approaches, only a single user is allowed to update his own data. And he can audit the data either by himself [8, 9, 13] or with assistance from a third-party auditor (TPA) [10–12, 14]. Recent studies [16–18] consider audit for shared data but they only support a limited number of data updates. In addition, the CSP can cheat on censorship in these schemes since an index table used for verification is managed only by the CSP. One way to prevent such a cheat is to make users and the TPA also maintain the index table. Owing to storage and synchronization overhead, however, it might cause a significant delay and degrade the quality of service (QoS) as the number of data updates increases.In order to design a secure and efficient audit mechanism for dynamic shared data in cloud storage, aforementioned challenges should be efficiently addressed. In other words, the scheme must guarantee the following properties.(1)
Audit for Outsourced Data. The TPA is able to check the integrity of outsourced data without retrieving all data contents.
(2)
Shared Dynamic Data. Users are allowed to outsource, share, insert, delete, or modify their data contents without restriction.
(3)
Efficiency. Computational overhead for data outsourcing and update at users side as well as the ones for auditing at the TPA should be low.
(4)
Soundness. The CSP is not allowed to deceive users or the TPA into passing a censorship of damaged data contents.We propose an audit mechanism satisfying the above requirements by utilizing aggregate signature [19] and sample auditing [8]. For data integrity and consistency, the TPA manages an index table and the CSP keeps renewing an identifier for data update. In addition, the audit mechanism provides efficiency to users and the TPA through making the auditing operations simple. Specially, in this paper, we consider forge attack and replace attack as regards soundness for the sake of secure audit. These attacks are described in [20] and they can be summarized as follows.Forge attack is an attack to forge a verifying term for a data content, which was not actually outsourced by users.Replace attack is an attack to pass a censorship by choosing another data content for verification in place of the damaged data content.The rest of this paper is organized as follows. In Section2, we introduce related works about auditing data in the cloud storage. In Section 3, issues about index table management are described depending on which entity manages it. In Section 4, we present methods for our audit mechanism. In Section 5, preliminaries used in our work are briefly introduced. In Section 6, a secure and efficient audit mechanism for dynamic shared data is presented. In Section 7, security of the proposed scheme is analyzed. In Section 8, performance evaluations and experimental results show efficiency of our mechanism. Finally, we conclude our work in Section 9.


## 2. Related Work

Ateniese et al. firstly introduced the notion of provable data possession (PDP) in [8] for integrity check of outsourced data in untrusted storage. They could achieve efficient audit with high probability of detection by sampling random blocks from outsourced data instead of downloading the entire data. Since the original PDP does not consider dynamic data, a user should download the whole data and regenerate metadata for verification whenever there is a modification of the outsourced data. To provide audit for dynamic data without retrieving entire data, subsequent works adopted authenticated data structures such as skip list, Merkle tree, or index tables [9, 12, 14–18]. Erway et al. [9] proposed dynamic provable data possession (DPDP) based on rank-based authenticated skip list and Wang et al. [12] presented a mechanism by exploiting Merkle tree. Both schemes require reconstruction of the authenticated data structure when the corresponding data is updated. Another data structure called index table was introduced to handle data updates more efficiently by keeping unique identifier for each data block [14–18].It is also notable that outsourced data should be audited periodically for verifying consistent data management. Dedicated to this purpose, TPAs can be delegated by users for auditing outsourced data in privacy-preserving manner. Privacy preservation means that the TPA cannot learn any information about the data during audit process. It was achieved through the methods of random masking [11] and bilinear map [14].


## 3. Index Table Management

Previous works [14–18] utilized an index table for efficient data updates. It is composed of indices which represent the sequences of data blocks and identifiers. The identifier, which is used in tag (tag is a verifying term, stored with data in the cloud storage, and has consistency with a data block) generation and verification, is a number identifying each data block. It should be defined in order to keep the initial value in all circumstances. Otherwise, a user repeats following operations whenever identifiers of data blocks in the cloud storage are changed. The user downloads data blocks which have changed identifiers, regenerates tags of them, and uploads the tags to the cloud storage.In this section, we look into security issues and update flows depending on which entity manages an index table. At the security aspect, we check the possibility of forge attack and replace attack. Then, we describe communication flows for getting an identifier of new data block when a user tries to update.


### 3.1. Management by the CSP

When the CSP only manages an index table, users and the TPA do not have any information about identifiers of data blocks which are already uploaded and will be updated. As illustrated in Figure1, the user requests an identifier of new data block to the CSP when he tries to update. In this environment, the CSP can forge tags of data blocks which users have not uploaded. It transmits an identifier already existed in the index table then obtains tags which are of different data blocks but have same identifier. It can learn meaningful information for forgery through combination of these data blocks and tags.Figure 1
Data update flows when the only CSP manages an index table.Since the TPA needs identifiers of challenged data blocks when verifying, it receives a proof that includes the identifiers from the CSP [16–18]. However, the TPA cannot distinguish them from the challenged ones because it does not maintain an index table. Therefore, if challenged data blocks are modified or deleted, the CSP can replace them with other undamaged data blocks.


### 3.2. Management by the TPA

One simple way to prevent the forge attack and replace attack in the above case is that the TPA manages an index table [15]. Even though the CSP tries to launch a forge attack by exploiting a collision of identifiers, it is impossible because the CSP has no knowledge of identifiers. In addition, a replace attack can be detected easily because the TPA knows identifiers of challenged data blocks through the index table.Figure2 shows that the TPA participates in the update process and a user who tries to update cannot generate a tag for new data block without a reception of new identifier from the TPA. Accordingly, update process can be delayed when the TPA is on sleep or suffers from bottleneck caused by a large number of requests from users.Figure 2
Data update flows when the only TPA manages an index table.


### 3.3. Management by Both the TPA and Users

Delays of update process can be removed through managing an index table by a user directly [14]. Generally, it is suitable for a situation where data is not shared. However, it has a problem about synchronization of index tables because the index tables are managed separately by each individual user who shares the data. If they are not synchronized, identifiers generated by other users can have same value, then the CSP can exploit forge attack or replace attack by using such tags generated by the same identifiers.Broadcasting update information, after a user finished data update, is a solution for synchronization as shown in Figure3. However, it requires all users to always wake up. Otherwise, the users need to request the information for synchronization but cannot easily determine who has the newest index table. Although the users can request it to the TPA, this is not different from a previous way that the only TPA manages an index table.Figure 3
Data update flows when the TPA and users manage an index table together.


## 3.1. Management by the CSP

When the CSP only manages an index table, users and the TPA do not have any information about identifiers of data blocks which are already uploaded and will be updated. As illustrated in Figure1, the user requests an identifier of new data block to the CSP when he tries to update. In this environment, the CSP can forge tags of data blocks which users have not uploaded. It transmits an identifier already existed in the index table then obtains tags which are of different data blocks but have same identifier. It can learn meaningful information for forgery through combination of these data blocks and tags.Figure 1
Data update flows when the only CSP manages an index table.Since the TPA needs identifiers of challenged data blocks when verifying, it receives a proof that includes the identifiers from the CSP [16–18]. However, the TPA cannot distinguish them from the challenged ones because it does not maintain an index table. Therefore, if challenged data blocks are modified or deleted, the CSP can replace them with other undamaged data blocks.


## 3.2. Management by the TPA

One simple way to prevent the forge attack and replace attack in the above case is that the TPA manages an index table [15]. Even though the CSP tries to launch a forge attack by exploiting a collision of identifiers, it is impossible because the CSP has no knowledge of identifiers. In addition, a replace attack can be detected easily because the TPA knows identifiers of challenged data blocks through the index table.Figure2 shows that the TPA participates in the update process and a user who tries to update cannot generate a tag for new data block without a reception of new identifier from the TPA. Accordingly, update process can be delayed when the TPA is on sleep or suffers from bottleneck caused by a large number of requests from users.Figure 2
Data update flows when the only TPA manages an index table.


## 3.3. Management by Both the TPA and Users

Delays of update process can be removed through managing an index table by a user directly [14]. Generally, it is suitable for a situation where data is not shared. However, it has a problem about synchronization of index tables because the index tables are managed separately by each individual user who shares the data. If they are not synchronized, identifiers generated by other users can have same value, then the CSP can exploit forge attack or replace attack by using such tags generated by the same identifiers.Broadcasting update information, after a user finished data update, is a solution for synchronization as shown in Figure3. However, it requires all users to always wake up. Otherwise, the users need to request the information for synchronization but cannot easily determine who has the newest index table. Although the users can request it to the TPA, this is not different from a previous way that the only TPA manages an index table.Figure 3
Data update flows when the TPA and users manage an index table together.


## 4. Methods

In this section, we present methods for a secure and efficient audit mechanism for shared dynamic data.


### 4.1. System Model

Our system model for auditing mechanism is illustrated in Figure4. There are four entities: CSP, initial uploader, users, and TPA. The CSP provides a large-scale storage for shared data to users. It should process requests from authorized users and respond to every challenge from the TPA. An initial uploader uploads data to cloud storage firstly and forms a group of users who share the data together. Users in the group are able to access and update shared data in the cloud storage. Both an initial uploader and the users are able to audit shared data in cloud storage via the TPA delegated by the initial uploader.Figure 4
Our system model for auditing mechanism.


### 4.2. Secure and Efficient Index Table Management

We propose a secure and efficient index table management that is used for our audit mechanism. As mentioned in the previous section, a TPA must manage an index table to prevent forge attack and replace attack. However, delay and synchronization problems can be caused when the index table is managed by the only TPA or each user. To solve these problems, it is required that a user who tries to update obtains an identifier from the CSP, as described in Figure5. Consequently, a way that the TPA manages an index table and the CSP keeps renewing an identifier for new data block satisfies security and efficiency.Figure 5
Data update flows in the proposed mechanism.


### 4.3. Identifier Definition for Dynamic Data

Changing identifiers of data blocks by update process causes repetitive tasks to users. They download the corresponding data blocks, regenerate tags to apply the modified identifiers, and upload the tags again to cloud storage. Our mechanism removes these repetitive tasks by defining the identifier as an upload sequence of the data block. If an update of data block happens, then new identifier is assigned as the upload sequence from the CSP.


### 4.4. Simple Operations for Audit Mechanism

Conventional approaches employ relatively complex operations for audit mechanism. It may cause more delay time and computational overhead for tag generation and verification. For efficiency of audit mechanism, the proposed scheme utilizes simple operations in the data integrity check. Moreover, because it can reduce delay time and computational overhead through light-weight operations, the QoS of the cloud storage service is improved.


## 4.1. System Model

Our system model for auditing mechanism is illustrated in Figure4. There are four entities: CSP, initial uploader, users, and TPA. The CSP provides a large-scale storage for shared data to users. It should process requests from authorized users and respond to every challenge from the TPA. An initial uploader uploads data to cloud storage firstly and forms a group of users who share the data together. Users in the group are able to access and update shared data in the cloud storage. Both an initial uploader and the users are able to audit shared data in cloud storage via the TPA delegated by the initial uploader.Figure 4
Our system model for auditing mechanism.


## 4.2. Secure and Efficient Index Table Management

We propose a secure and efficient index table management that is used for our audit mechanism. As mentioned in the previous section, a TPA must manage an index table to prevent forge attack and replace attack. However, delay and synchronization problems can be caused when the index table is managed by the only TPA or each user. To solve these problems, it is required that a user who tries to update obtains an identifier from the CSP, as described in Figure5. Consequently, a way that the TPA manages an index table and the CSP keeps renewing an identifier for new data block satisfies security and efficiency.Figure 5
Data update flows in the proposed mechanism.


## 4.3. Identifier Definition for Dynamic Data

Changing identifiers of data blocks by update process causes repetitive tasks to users. They download the corresponding data blocks, regenerate tags to apply the modified identifiers, and upload the tags again to cloud storage. Our mechanism removes these repetitive tasks by defining the identifier as an upload sequence of the data block. If an update of data block happens, then new identifier is assigned as the upload sequence from the CSP.


## 4.4. Simple Operations for Audit Mechanism

Conventional approaches employ relatively complex operations for audit mechanism. It may cause more delay time and computational overhead for tag generation and verification. For efficiency of audit mechanism, the proposed scheme utilizes simple operations in the data integrity check. Moreover, because it can reduce delay time and computational overhead through light-weight operations, the QoS of the cloud storage service is improved.


## 5. Preliminaries

In this section, cryptographic backgrounds for the proposed scheme are briefly introduced.


### 5.1. Bilinear Map

LetG
1 and G
2 be multiplicative cyclic groups of prime order p, and let g be a generator of G
1. Then a bilinear map e satisfies the following properties.(1)
Bilinearity: for any u
,
v
∈
G
1, and a
,
b
∈
Z
p
,
e
(
u
a
,
v
b
)
=
e
(
u
,
v
)
a
b.
(2)
Nondegeneracy: e
(
g
,
g
)
≠
1.
(3)
Computability: there exists an efficiently computable algorithm e satisfying the above properties such that e
:
G
1
×
G
1
→
G
2.


### 5.2. Pseudorandom Permutation

LetF
:
{
0,1
}
n
×
{
0,1
}
n
→
{
0,1
}
n be an efficiently computable keyed permutation for positive integer n. We say that F is a pseudorandom permutation, if there exists a negligible function negl for any probabilistic polynomial-time distinguisher D such that
(1)
|
Pr
[
D
F
k
(
·
)
(
1
n
)
=
1
]
-
Pr
[
D
f
(
·
)
(
1
n
)
=
1
]
|
≤
negl
(
n
)
,
where k
←
$
{
0,1
}
n is a permutation key chosen uniformly at random and f is a real-random permutation.


### 5.3. Discrete Logarithm (DL) Assumption

Discrete logarithm (DL) problem is to computea
∈
Z
p, given g
∈
G
1 and g
a
∈
G
1. The DL assumption holds in G
1 if it is computationally infeasible to solve DL problem in G
1.


## 5.1. Bilinear Map

LetG
1 and G
2 be multiplicative cyclic groups of prime order p, and let g be a generator of G
1. Then a bilinear map e satisfies the following properties.(1)
Bilinearity: for any u
,
v
∈
G
1, and a
,
b
∈
Z
p
,
e
(
u
a
,
v
b
)
=
e
(
u
,
v
)
a
b.
(2)
Nondegeneracy: e
(
g
,
g
)
≠
1.
(3)
Computability: there exists an efficiently computable algorithm e satisfying the above properties such that e
:
G
1
×
G
1
→
G
2.


## 5.2. Pseudorandom Permutation

LetF
:
{
0,1
}
n
×
{
0,1
}
n
→
{
0,1
}
n be an efficiently computable keyed permutation for positive integer n. We say that F is a pseudorandom permutation, if there exists a negligible function negl for any probabilistic polynomial-time distinguisher D such that
(1)
|
Pr
[
D
F
k
(
·
)
(
1
n
)
=
1
]
-
Pr
[
D
f
(
·
)
(
1
n
)
=
1
]
|
≤
negl
(
n
)
,
where k
←
$
{
0,1
}
n is a permutation key chosen uniformly at random and f is a real-random permutation.


## 5.3. Discrete Logarithm (DL) Assumption

Discrete logarithm (DL) problem is to computea
∈
Z
p, given g
∈
G
1 and g
a
∈
G
1. The DL assumption holds in G
1 if it is computationally infeasible to solve DL problem in G
1.


## 6. The Proposed Scheme

In this section, we present a secure and efficient audit mechanism supporting dynamic updates of shared data. When cloud storage service initiates, a CSP generates public parameters for system and publicizes them. An initial uploader generates secret components and public components used in tag generation and verification. He divides data into blocks and generates tags for each data block. Then, he uploads them to the cloud storage and deletes them in his local storage. To share the data with other users, he needs to deliver secret components for tag generation. In addition, he can delegate auditing processes to a TPA by delivering a part of secret components for verification.When a user tries to update a new data block, he receives an identifier from the CSP, generates a tag for the data block, and uploads them. After update is finished, the user reports update information to the TPA. Then the TPA updates an index table following the update information. And the CSP renews the identifier as next upload sequence for next update.The TPA maintains the newest index table that keeps track of upload sequence of data blocks. The TPA makes a challenge derived from the index table and transmits it to the CSP periodically or when a user wants. The CSP who receives the challenge makes a proof and responds to it. Then, the TPA checks whether outsourced data is damaged or not by verifying the proof with the challenge.


### 6.1. Definition

The proposed scheme,Π, is composed of the following eight algorithms such as Π
=
{
S
e
t
u
p
,
K
e
y
G
e
n
,
T
a
g
G
e
n
,
T
a
g
G
e
n
U
p
,
I
T
U
p
,
C
h
a
l
G
e
n
,
P
r
o
o
f
G
e
n
,
V
e
r
i
f
y
}.S
e
t
u
p
(
γ
)
→
p
a
r
a
m. On security parameter γ, the CSP generates and publicizes public parameters p
a
r
a
m.K
e
y
G
e
n
(
p
a
r
a
m
)
→
(
g
m
s
k
,
g
s
k
,
g
a
k
,
g
p
k
). An initial uploader takes public parameter p
a
r
a
m as input and outputs group master key g
m
s
k, group secret key g
s
k, group auditing key g
a
k, and group public key g
p
k. Group master key g
m
s
k is kept secret. Group secret key g
s
k
=
{
g
s
k
1
,
g
s
k
2
} and group auditing key g
a
k are used in tag generation. Group public key g
p
k
=
{
g
p
k
1
,
g
p
k
2
} is used for verification of data integrity along with group auditing key g
a
k.T
a
g
G
e
n
(
M
,
g
s
k
,
g
a
k
)
→
σ. On uploading data M to the cloud storage, the initial uploader divides the data into blocks and generates a set of tags σ using g
s
k and g
a
k. Each component of σ is a tag of the corresponding data block in M such that σ
=
{
σ
1
,
…
,
σ
n
}.T
a
g
G
e
n
U
p
(
m
i
′
,
g
s
k
,
g
a
k
,
id
i
′
)
→
σ
i
′. When a user tries to update a data block m
i
′, he generates a new tag σ
i
′ using g
s
k, g
a
k, and new identifier id
i
′ received from the CSP.I
T
U
p
(
U
type
,
U
index
,
U
id
,
iT
)
→
iT
′. This algorithm takes update information and current index table iT as input and outputs new index table iT
′. The update information includes three elements U
type
,
U
index, and U
id. U
type represents an update type which can be either insertion, modification, or deletion. U
index is the index of the data block to be updated, and U
id is a newly assigned unique identifier used in T
a
g
G
e
n
U
p for the data block.C
h
a
l
G
e
n
(
iT
)
→
c
h
a
l. This algorithm generates a challenging query c
h
a
l
=
{
l
,
r
l
}
l
∈
L for randomly selected blocks. The TPA chooses random indices L from the index table iT and generates random values {
r
l
}
l
∈
L.P
r
o
o
f
G
e
n
(
M
,
σ
,
c
h
a
l
,
g
p
k
)
→
(
α
,
β
). The CSP generates a proof (
α
,
β
) for a challenge from the TPA. α is derived from outsourced data blocks {
m
l
}
l
∈
L, {
r
l
}
l
∈
L, and g
p
k, while β is computed from tags {
σ
l
}
l
∈
L and {
r
l
}
l
∈
L.V
e
r
i
f
y
(
c
h
a
l
,
iT
,
(
α
,
β
)
,
g
p
k
,
g
a
k
)
→
T
r
u
e
/
F
a
l
s
e. This algorithm verifies consistency of the proof generated by the CSP for the given challenge. If they are consistent, it outputs T
r
u
e. Otherwise, it outputs F
a
l
s
e.


### 6.2. Construction

LetG
1
,
G
2 be multiplicative cyclic groups of prime order p, let g be a generator of G
1, let e
:
G
1
×
G
1
→
G
2 be a bilinear map, and let F
:
{
0,1
}
log
⁡
p
×
{
0,1
}
log
⁡
p
→
{
0,1
}
log
⁡
p be a pseudorandom permutation. We consider data M is divided into n blocks as M
=
(
m
1
,
…
,
m
n
), and each data block m
i
=
(
m
i
1
,
…
,
m
i
s
) contains s sectors of Z
p.


#### 6.2.1. Setup

When cloud storage service initiates, the CSP chooses two groupsG
1
,
G
2 with g for a bilinear map e by running S
e
t
u
p algorithm and publicizes p
a
r
a
m
=
(
G
1
,
G
2
,
p
,
g
,
e
) to users and the TPA.


#### 6.2.2. Upload for Data Sharing

An initial uploader,u
1, runs K
e
y
G
e
n algorithm. It first chooses (
s
+
2
) random values g
m
s
k
=
a
∈
Z
p
*, g
a
k
=
b
∈
Z
p, and g
s
k
2
=
{
g
s
k
2
,
j
=
c
j
∈
Z
p
}
j
∈
[
1
,
s
] and computes g
s
k
1
=
g
1
/
a
,
g
p
k
1
=
g
a, and g
p
k
2
=
{
g
p
k
2
,
j
=
g
c
j
}
j
∈
[
1
,
s
]. Then, by running T
a
g
G
e
n, u
1 generates corresponding tags such as
(2)
σ
i
=
(
g
s
k
1
)
F
g
a
k
(
i
)
+
∑
j
∈
[
1
,
s
]
g
s
k
2
,
j
·
m
i
j
for 1
≤
i
≤
n. u
1 uploads (
M
,
σ
) to the cloud storage and deletes them from his local storage. When the CSP receives fresh data from the initial uploader, it saves an identifier id
′
=
n
+
1 for the next upload sequence. To share data M with other users, u
1 delivers group secret key g
s
k and group auditing key g
a
k to them.


#### 6.2.3. Delegation of Audit

The initial uploaderu
1 delegates audit for shared data to the TPA by delivering a group auditing key g
a
k. In addition, u
1 notifies the number of data blocks n for the TPA to correctly generate an initial index table for M. In other words, the TPA creates an index table which includes identifiers defined as block sequences initially.


#### 6.2.4. Data Update

In the proposed scheme, any useru
k in the group which shares data M is allowed to modify, insert, or delete data M in the cloud storage.Ifu
k tries to modify i-th block m
i, u
k first receives a new identifier from the CSP as illustrated in Figure 5. On receipt of the identifier id
i
′, u
k computes a tag σ
i
′ for updated data block m
i
′ by running T
a
g
G
e
n
U
p algorithm as follows:
(3)
σ
i
′
=
(
g
s
k
1
)
F
g
a
k
(
id
i
′
)
+
∑
j
∈
[
1
,
s
]
g
s
k
2
,
j
·
m
i
j
′
.
Then, u
k sends (
U
type
=
`
M
′
,
U
index
=
i
,
U
id
=
id
i
′
) along with (
m
i
′
,
σ
i
′
) to the CSP, where `
M
′ stands for modification. The CSP can update the data block in the cloud storage by replacement of (
m
i
,
σ
i
) with (
m
i
′
,
σ
i
′
) uploaded by u
k.For the case of insertion,u
k makes a tag σ
i
′ for newly created data block m
i
′ by running T
a
g
G
e
n
U
p algorithm and sends (
U
type
=
`
I
′
,
U
index
=
i
,
U
id
=
id
i
′
) along with (
m
i
′
,
σ
i
′
) to the CSP.Whenu
k wants to delete data block in the cloud storage, u
k sends (
U
type
=
`
D
′
,
U
index
=
i
,
U
id
=
0
) to the CSP and allows the CSP to delete the corresponding data block from the cloud storage. In this case, u
k does not need to request a new identifier. Therefore, we set the value of U
id by zero.After update is finished,u
k delivers update information (
U
type
,
U
index
,
U
id
) to the TPA for consistent audit for updated shared data in the cloud storage. Then, the TPA updates the index table managed by itself according to the information by running I
T
U
p. When U
type
=
`
M
′, it changes the U
index-th identifier to U
id. When U
type
=
`
I
′, the TPA inserts U
id just before the U
index-th field, while it removes the U
index-th field from the index table if U
type
=
`
D
′. Through this notification of data updates, the TPA can detect malicious behaviors of the CSP. In other words, the CSP cannot transmit previously used identifier in order to exploit forge attack and replace attack. Simple examples of data update are depicted in Figure 6.Figure 6
Examples of data update.


#### 6.2.5. Audit for Outsourced Data

For the TPA to check integrity of outsourced data, it engages in challenge-response protocol with the CSP. The TPA first chooses a random subsetL of indices from the index table and generates random values {
r
l
∈
Z
p
*
}
l
∈
L by running C
h
a
l
G
e
n algorithm. The c
h
a
l
=
{
l
,
r
l
}
l
∈
L is transmitted to the CSP and the CSP generates a proof (
α
,
β
) for the challenge c
h
a
l by running P
r
o
o
f
G
e
n algorithm as follows:
(4)
α
=
∏
j
∈
[
1
,
s
]
‍
g
p
k
2
,
j
∑
l
∈
L
r
l
·
m
l
j
,
β
=
∏
l
∈
L
‍
σ
l
r
l
.After receiving the proof(
α
,
β
) as a response of the challenge, the TPA verifies it by running V
e
r
i
f
y algorithm as follows:
(5)
e
(
g
∑
l
∈
L
r
l
·
F
g
a
k
(
id
l
)
·
α
,
g
)
=
?
e
(
β
,
g
p
k
1
)
.If (5) holds then the TPA returns T
r
u
e and returns F
a
l
s
e otherwise.


## 6.1. Definition

The proposed scheme,Π, is composed of the following eight algorithms such as Π
=
{
S
e
t
u
p
,
K
e
y
G
e
n
,
T
a
g
G
e
n
,
T
a
g
G
e
n
U
p
,
I
T
U
p
,
C
h
a
l
G
e
n
,
P
r
o
o
f
G
e
n
,
V
e
r
i
f
y
}.S
e
t
u
p
(
γ
)
→
p
a
r
a
m. On security parameter γ, the CSP generates and publicizes public parameters p
a
r
a
m.K
e
y
G
e
n
(
p
a
r
a
m
)
→
(
g
m
s
k
,
g
s
k
,
g
a
k
,
g
p
k
). An initial uploader takes public parameter p
a
r
a
m as input and outputs group master key g
m
s
k, group secret key g
s
k, group auditing key g
a
k, and group public key g
p
k. Group master key g
m
s
k is kept secret. Group secret key g
s
k
=
{
g
s
k
1
,
g
s
k
2
} and group auditing key g
a
k are used in tag generation. Group public key g
p
k
=
{
g
p
k
1
,
g
p
k
2
} is used for verification of data integrity along with group auditing key g
a
k.T
a
g
G
e
n
(
M
,
g
s
k
,
g
a
k
)
→
σ. On uploading data M to the cloud storage, the initial uploader divides the data into blocks and generates a set of tags σ using g
s
k and g
a
k. Each component of σ is a tag of the corresponding data block in M such that σ
=
{
σ
1
,
…
,
σ
n
}.T
a
g
G
e
n
U
p
(
m
i
′
,
g
s
k
,
g
a
k
,
id
i
′
)
→
σ
i
′. When a user tries to update a data block m
i
′, he generates a new tag σ
i
′ using g
s
k, g
a
k, and new identifier id
i
′ received from the CSP.I
T
U
p
(
U
type
,
U
index
,
U
id
,
iT
)
→
iT
′. This algorithm takes update information and current index table iT as input and outputs new index table iT
′. The update information includes three elements U
type
,
U
index, and U
id. U
type represents an update type which can be either insertion, modification, or deletion. U
index is the index of the data block to be updated, and U
id is a newly assigned unique identifier used in T
a
g
G
e
n
U
p for the data block.C
h
a
l
G
e
n
(
iT
)
→
c
h
a
l. This algorithm generates a challenging query c
h
a
l
=
{
l
,
r
l
}
l
∈
L for randomly selected blocks. The TPA chooses random indices L from the index table iT and generates random values {
r
l
}
l
∈
L.P
r
o
o
f
G
e
n
(
M
,
σ
,
c
h
a
l
,
g
p
k
)
→
(
α
,
β
). The CSP generates a proof (
α
,
β
) for a challenge from the TPA. α is derived from outsourced data blocks {
m
l
}
l
∈
L, {
r
l
}
l
∈
L, and g
p
k, while β is computed from tags {
σ
l
}
l
∈
L and {
r
l
}
l
∈
L.V
e
r
i
f
y
(
c
h
a
l
,
iT
,
(
α
,
β
)
,
g
p
k
,
g
a
k
)
→
T
r
u
e
/
F
a
l
s
e. This algorithm verifies consistency of the proof generated by the CSP for the given challenge. If they are consistent, it outputs T
r
u
e. Otherwise, it outputs F
a
l
s
e.


## 6.2. Construction

LetG
1
,
G
2 be multiplicative cyclic groups of prime order p, let g be a generator of G
1, let e
:
G
1
×
G
1
→
G
2 be a bilinear map, and let F
:
{
0,1
}
log
⁡
p
×
{
0,1
}
log
⁡
p
→
{
0,1
}
log
⁡
p be a pseudorandom permutation. We consider data M is divided into n blocks as M
=
(
m
1
,
…
,
m
n
), and each data block m
i
=
(
m
i
1
,
…
,
m
i
s
) contains s sectors of Z
p.


### 6.2.1. Setup

When cloud storage service initiates, the CSP chooses two groupsG
1
,
G
2 with g for a bilinear map e by running S
e
t
u
p algorithm and publicizes p
a
r
a
m
=
(
G
1
,
G
2
,
p
,
g
,
e
) to users and the TPA.


### 6.2.2. Upload for Data Sharing

An initial uploader,u
1, runs K
e
y
G
e
n algorithm. It first chooses (
s
+
2
) random values g
m
s
k
=
a
∈
Z
p
*, g
a
k
=
b
∈
Z
p, and g
s
k
2
=
{
g
s
k
2
,
j
=
c
j
∈
Z
p
}
j
∈
[
1
,
s
] and computes g
s
k
1
=
g
1
/
a
,
g
p
k
1
=
g
a, and g
p
k
2
=
{
g
p
k
2
,
j
=
g
c
j
}
j
∈
[
1
,
s
]. Then, by running T
a
g
G
e
n, u
1 generates corresponding tags such as
(2)
σ
i
=
(
g
s
k
1
)
F
g
a
k
(
i
)
+
∑
j
∈
[
1
,
s
]
g
s
k
2
,
j
·
m
i
j
for 1
≤
i
≤
n. u
1 uploads (
M
,
σ
) to the cloud storage and deletes them from his local storage. When the CSP receives fresh data from the initial uploader, it saves an identifier id
′
=
n
+
1 for the next upload sequence. To share data M with other users, u
1 delivers group secret key g
s
k and group auditing key g
a
k to them.


### 6.2.3. Delegation of Audit

The initial uploaderu
1 delegates audit for shared data to the TPA by delivering a group auditing key g
a
k. In addition, u
1 notifies the number of data blocks n for the TPA to correctly generate an initial index table for M. In other words, the TPA creates an index table which includes identifiers defined as block sequences initially.


### 6.2.4. Data Update

In the proposed scheme, any useru
k in the group which shares data M is allowed to modify, insert, or delete data M in the cloud storage.Ifu
k tries to modify i-th block m
i, u
k first receives a new identifier from the CSP as illustrated in Figure 5. On receipt of the identifier id
i
′, u
k computes a tag σ
i
′ for updated data block m
i
′ by running T
a
g
G
e
n
U
p algorithm as follows:
(3)
σ
i
′
=
(
g
s
k
1
)
F
g
a
k
(
id
i
′
)
+
∑
j
∈
[
1
,
s
]
g
s
k
2
,
j
·
m
i
j
′
.
Then, u
k sends (
U
type
=
`
M
′
,
U
index
=
i
,
U
id
=
id
i
′
) along with (
m
i
′
,
σ
i
′
) to the CSP, where `
M
′ stands for modification. The CSP can update the data block in the cloud storage by replacement of (
m
i
,
σ
i
) with (
m
i
′
,
σ
i
′
) uploaded by u
k.For the case of insertion,u
k makes a tag σ
i
′ for newly created data block m
i
′ by running T
a
g
G
e
n
U
p algorithm and sends (
U
type
=
`
I
′
,
U
index
=
i
,
U
id
=
id
i
′
) along with (
m
i
′
,
σ
i
′
) to the CSP.Whenu
k wants to delete data block in the cloud storage, u
k sends (
U
type
=
`
D
′
,
U
index
=
i
,
U
id
=
0
) to the CSP and allows the CSP to delete the corresponding data block from the cloud storage. In this case, u
k does not need to request a new identifier. Therefore, we set the value of U
id by zero.After update is finished,u
k delivers update information (
U
type
,
U
index
,
U
id
) to the TPA for consistent audit for updated shared data in the cloud storage. Then, the TPA updates the index table managed by itself according to the information by running I
T
U
p. When U
type
=
`
M
′, it changes the U
index-th identifier to U
id. When U
type
=
`
I
′, the TPA inserts U
id just before the U
index-th field, while it removes the U
index-th field from the index table if U
type
=
`
D
′. Through this notification of data updates, the TPA can detect malicious behaviors of the CSP. In other words, the CSP cannot transmit previously used identifier in order to exploit forge attack and replace attack. Simple examples of data update are depicted in Figure 6.Figure 6
Examples of data update.


### 6.2.5. Audit for Outsourced Data

For the TPA to check integrity of outsourced data, it engages in challenge-response protocol with the CSP. The TPA first chooses a random subsetL of indices from the index table and generates random values {
r
l
∈
Z
p
*
}
l
∈
L by running C
h
a
l
G
e
n algorithm. The c
h
a
l
=
{
l
,
r
l
}
l
∈
L is transmitted to the CSP and the CSP generates a proof (
α
,
β
) for the challenge c
h
a
l by running P
r
o
o
f
G
e
n algorithm as follows:
(4)
α
=
∏
j
∈
[
1
,
s
]
‍
g
p
k
2
,
j
∑
l
∈
L
r
l
·
m
l
j
,
β
=
∏
l
∈
L
‍
σ
l
r
l
.After receiving the proof(
α
,
β
) as a response of the challenge, the TPA verifies it by running V
e
r
i
f
y algorithm as follows:
(5)
e
(
g
∑
l
∈
L
r
l
·
F
g
a
k
(
id
l
)
·
α
,
g
)
=
?
e
(
β
,
g
p
k
1
)
.If (5) holds then the TPA returns T
r
u
e and returns F
a
l
s
e otherwise.


## 6.2.1. Setup

When cloud storage service initiates, the CSP chooses two groupsG
1
,
G
2 with g for a bilinear map e by running S
e
t
u
p algorithm and publicizes p
a
r
a
m
=
(
G
1
,
G
2
,
p
,
g
,
e
) to users and the TPA.


## 6.2.2. Upload for Data Sharing

An initial uploader,u
1, runs K
e
y
G
e
n algorithm. It first chooses (
s
+
2
) random values g
m
s
k
=
a
∈
Z
p
*, g
a
k
=
b
∈
Z
p, and g
s
k
2
=
{
g
s
k
2
,
j
=
c
j
∈
Z
p
}
j
∈
[
1
,
s
] and computes g
s
k
1
=
g
1
/
a
,
g
p
k
1
=
g
a, and g
p
k
2
=
{
g
p
k
2
,
j
=
g
c
j
}
j
∈
[
1
,
s
]. Then, by running T
a
g
G
e
n, u
1 generates corresponding tags such as
(2)
σ
i
=
(
g
s
k
1
)
F
g
a
k
(
i
)
+
∑
j
∈
[
1
,
s
]
g
s
k
2
,
j
·
m
i
j
for 1
≤
i
≤
n. u
1 uploads (
M
,
σ
) to the cloud storage and deletes them from his local storage. When the CSP receives fresh data from the initial uploader, it saves an identifier id
′
=
n
+
1 for the next upload sequence. To share data M with other users, u
1 delivers group secret key g
s
k and group auditing key g
a
k to them.


## 6.2.3. Delegation of Audit

The initial uploaderu
1 delegates audit for shared data to the TPA by delivering a group auditing key g
a
k. In addition, u
1 notifies the number of data blocks n for the TPA to correctly generate an initial index table for M. In other words, the TPA creates an index table which includes identifiers defined as block sequences initially.


## 6.2.4. Data Update

In the proposed scheme, any useru
k in the group which shares data M is allowed to modify, insert, or delete data M in the cloud storage.Ifu
k tries to modify i-th block m
i, u
k first receives a new identifier from the CSP as illustrated in Figure 5. On receipt of the identifier id
i
′, u
k computes a tag σ
i
′ for updated data block m
i
′ by running T
a
g
G
e
n
U
p algorithm as follows:
(3)
σ
i
′
=
(
g
s
k
1
)
F
g
a
k
(
id
i
′
)
+
∑
j
∈
[
1
,
s
]
g
s
k
2
,
j
·
m
i
j
′
.
Then, u
k sends (
U
type
=
`
M
′
,
U
index
=
i
,
U
id
=
id
i
′
) along with (
m
i
′
,
σ
i
′
) to the CSP, where `
M
′ stands for modification. The CSP can update the data block in the cloud storage by replacement of (
m
i
,
σ
i
) with (
m
i
′
,
σ
i
′
) uploaded by u
k.For the case of insertion,u
k makes a tag σ
i
′ for newly created data block m
i
′ by running T
a
g
G
e
n
U
p algorithm and sends (
U
type
=
`
I
′
,
U
index
=
i
,
U
id
=
id
i
′
) along with (
m
i
′
,
σ
i
′
) to the CSP.Whenu
k wants to delete data block in the cloud storage, u
k sends (
U
type
=
`
D
′
,
U
index
=
i
,
U
id
=
0
) to the CSP and allows the CSP to delete the corresponding data block from the cloud storage. In this case, u
k does not need to request a new identifier. Therefore, we set the value of U
id by zero.After update is finished,u
k delivers update information (
U
type
,
U
index
,
U
id
) to the TPA for consistent audit for updated shared data in the cloud storage. Then, the TPA updates the index table managed by itself according to the information by running I
T
U
p. When U
type
=
`
M
′, it changes the U
index-th identifier to U
id. When U
type
=
`
I
′, the TPA inserts U
id just before the U
index-th field, while it removes the U
index-th field from the index table if U
type
=
`
D
′. Through this notification of data updates, the TPA can detect malicious behaviors of the CSP. In other words, the CSP cannot transmit previously used identifier in order to exploit forge attack and replace attack. Simple examples of data update are depicted in Figure 6.Figure 6
Examples of data update.


## 6.2.5. Audit for Outsourced Data

For the TPA to check integrity of outsourced data, it engages in challenge-response protocol with the CSP. The TPA first chooses a random subsetL of indices from the index table and generates random values {
r
l
∈
Z
p
*
}
l
∈
L by running C
h
a
l
G
e
n algorithm. The c
h
a
l
=
{
l
,
r
l
}
l
∈
L is transmitted to the CSP and the CSP generates a proof (
α
,
β
) for the challenge c
h
a
l by running P
r
o
o
f
G
e
n algorithm as follows:
(4)
α
=
∏
j
∈
[
1
,
s
]
‍
g
p
k
2
,
j
∑
l
∈
L
r
l
·
m
l
j
,
β
=
∏
l
∈
L
‍
σ
l
r
l
.After receiving the proof(
α
,
β
) as a response of the challenge, the TPA verifies it by running V
e
r
i
f
y algorithm as follows:
(5)
e
(
g
∑
l
∈
L
r
l
·
F
g
a
k
(
id
l
)
·
α
,
g
)
=
?
e
(
β
,
g
p
k
1
)
.If (5) holds then the TPA returns T
r
u
e and returns F
a
l
s
e otherwise.


## 7. Security Analysis

In this section, we show that the proposed scheme is correct and resistant against forge attack and replace attack.Theorem 1.
Π provides correctness to the TPA during auditing outsourced data.Proof.
Correctness ofΠ is achieved by exploiting bilinear property of the bilinear map. Left-hand side (LHS) of (5) expands as follows:
(6)
LHS
=
e
(
g
∑
l
∈
L
‍
r
l
·
F
g
a
k
(
id
l
)
·
∏
j
∈
[
1
,
s
]
g
g
s
k
2
,
j
·
∑
l
∈
L
‍
r
l
·
m
l
j
,
g
)
=
e
(
g
∑
l
∈
L
‍
r
l
·
F
g
a
k
(
id
l
)
+
∑
j
∈
[
1
,
s
]
‍
(
g
s
k
2
,
j
·
∑
l
∈
L
‍
r
l
·
m
l
j
)
,
g
)
=
e
(
g
,
g
)
∑
l
∈
L
‍
(
r
l
·
F
g
a
k
(
id
l
)
+
r
l
·
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
m
l
j
)
while the right-hand side (RHS) of (5) expands as follows:
(7)
RHS
=
e
(
∏
l
∈
L
‍
σ
l
r
l
,
g
p
k
1
)
=
e
(
∏
l
∈
L
‍
g
r
l
·
(
F
g
a
k
(
id
l
)
+
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
m
l
j
)
/
g
m
s
k
,
g
g
m
s
k
)
=
e
(
g
∑
l
∈
L
‍
(
r
l
·
F
g
a
k
(
id
l
)
+
r
l
·
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
m
l
j
)
/
g
m
s
k
,
g
g
m
s
k
)
=
e
(
g
,
g
)
∑
l
∈
L
‍
(
r
l
·
F
g
a
k
(
id
l
)
+
r
l
·
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
m
l
j
)
.
Since the terms LHS and RHS are the same, the proof is completed.Theorem 2.
Π is secure against forge attack.Proof.
If the CSP acquires an element in{
g
p
k
2
,
j
1
/
g
m
s
k
=
g
g
s
k
2
,
j
/
g
m
s
k
}
j
∈
[
1
,
s
] from the public parameter g
p
k, the CSP can forge a tag. Given g
p
k
1
=
g
g
m
s
k, computing g
m
s
k is hard due to DL assumption. Thus, it is infeasible for the CSP to acquire an element in {
g
g
s
k
2
,
j
/
g
m
s
k
}
j
∈
[
1
,
s
].
WhenF
g
a
k
(
id
i
) for σ
i and F
g
a
k
(
id
q
) for σ
q are the same, the CSP computes σ
i
/
σ
q. Then, the CSP can obtain δ
=
(
g
s
k
1
)
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
(
m
i
j
-
m
q
j
) and forge the tag σ
z of data block m
z using δ as follows:
(8)
σ
z
′
=
σ
z
×
δ
=
(
g
s
k
1
)
F
g
a
k
(
id
z
)
+
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
m
z
j
×
(
g
s
k
1
)
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
(
m
i
j
-
m
q
j
)
=
(
g
s
k
1
)
F
g
a
k
(
id
z
)
+
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
(
m
z
j
+
m
i
j
-
m
q
j
)
.
Finally, the CSP obtains forged tag σ
z
′ of modified data block m
z
′
=
{
m
z
j
+
m
i
j
-
m
q
j
}
j
∈
[
1
,
s
]. However, F
g
a
k
(
id
i
) and F
g
a
k
(
id
q
) cannot be the same value for id
i
≠
id
q because of the definition of pseudorandom permutation. Therefore, the CSP cannot forge a tag to pass the censorship. This completes the proof.Theorem 3.
Π is secure against replace attack.Proof.
When damaged blockm
i is challenged, the CSP may try to pass the censorship by choosing a different block (
m
q
,
σ
q
) in place of (
m
i
,
σ
i
) such as α
′
=
∏
j
∈
[
1
,
s
]
‍
g
p
k
2
,
j
r
i
·
m
q
j
+
∑
l
∈
L
,
l
≠
i
‍
r
l
·
m
l
j and β
′
=
σ
q
r
i
·
∏
l
∈
L
,
l
≠
i
‍
σ
l
r
l. Then, the left-hand side of (5) is computed as
(9)
e
(
g
∑
l
∈
L
‍
r
l
·
F
g
a
k
(
id
l
)
·
∏
j
∈
[
1
,
s
]
‍
g
p
k
2
,
j
r
i
·
m
q
j
+
∑
l
∈
L
,
l
≠
i
‍
r
l
·
m
l
j
,
g
)
=
e
(
g
∑
l
∈
L
‍
r
l
·
F
g
a
k
(
id
l
)
·
g
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
(
r
i
·
m
q
j
+
∑
l
∈
L
,
l
≠
i
‍
r
l
·
m
l
j
)
,
g
)
=
e
(
g
r
i
·
(
F
g
a
k
(
id
i
)
+
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
m
q
j
)
+
∑
l
∈
L
,
l
≠
i
‍
r
l
·
(
F
g
a
k
(
id
l
)
+
∑
j
∈
[
1
,
s
]
‍
g
s
k
2
,
j
·
m
l
j
)
,
g
)
=
e
(
g
(
r
i
·
F
g
a
k
(
id
i
)
-
r
i
·
F
g
a
k
(
id
q
)
)
/
g
m
s
k
×
β
′
,
g
p
k
1
)
in which g
(
r
i
·
(
F
g
a
k
(
id
i
)
-
F
g
a
k
(
id
q
)
)
)
/
g
m
s
k should be 1 to satisfy (5). This means that F
g
a
k
(
id
i
) and F
g
a
k
(
id
q
) should be the same. Due to the bijective property of the permutation, however, these values cannot be the same.


## 8. Performance Evaluation

In this section, the prosed scheme is analyzed and compared with previous studies [14–16] in terms of communication and computational overhead. We first evaluate communication overhead for updating a data block. Then, computational overhead for tag generation and verification is evaluated.


### 8.1. Communication Overhead

As we described in Section3, the way to get an identifier of updated data block depends on which entity manages an index table. In Wang et al.’s work [16], u
k needs one round-trip communication to request and receive the identifier (Figure 1). Zhu et al. [15] utilize a way that the TPA manages the index table (Figure 2). It needs an additional connection between u
k and the TPA for the identifier and a report of update information. Yang and Jia [14] utilize a way that a user manages the index table by himself. Although it is suitable when the outsourced data is managed by a single user, it requires more communication costs for synchronization of the index tables when the data is shared by multiple users.Communication costs are summarized in Table1. We omitted costs for uploading a data block and a corresponding tag for simplicity. Although the proposed scheme seems to require the same cost as Zhu et al.’s approach, there may be update delays caused by concentration of communications to the TPA in [15]. On the other hand, the proposed scheme removes this delay via a direct acquisition of the identifier from the CSP. For [14] to synchronize the index tables of users and the TPA, u
k needs to broadcast extra update information. Considering this circumstance, additional communications caused by broadcast might be added into Table 1.Table 1
Connections and communication costs for updating a data block.
Wang et al. [16]
Zhu et al. [15]
Yang and Jia [14]
Our scheme
Connections
u
k
↔
CSP
u
k
↔
TPA
u
k with other users
u
k
↔
TPA
u
k
↔
CSP
u
k
↔
TPA
u
k
↔
CSP
u
k
↔
CSP
Extra communication costs
|
q
id
|
+
|
id
|
|
q
id
|
+
|
id
|
+
|
u
info
|
d
×
|
u
info
|
|
q
id
|
+
|
id
|
+
|
u
info
|


### 8.2. Computational Overhead

Computation costs for tag generation and verification are described in Table2. The proposed scheme requires a single Exp
G operation in tag generation, while the others [14–16] require Exp
G and Mul
G operations which are proportional to the number of sectors in a data block. When the TPA verifies a proof received from the CSP, one Exp
G and one Mul
G operations are required in the proposed scheme regardless of the number of challenged data blocks. However, the others require Exp
G and Mul
G operations linear to the number of challenged data blocks, which cause a significant overhead to the TPA.Table 2
Computation costs for a tag generation and verification.
Tag generation
Verification
Wang et al. [16]
(
S
+
1
)
·
Ex
p
G
+
S
·
Mu
l
G
+
H
G
2
·
Pair
+
(
L
+
S
)
·
Ex
p
G
+
(
L
+
S
-
1
)
·
Mu
l
G
+
L
·
H
G
Zhu et al. [15]
(
S
+
2
)
·
Ex
p
G
+
S
·
Mu
l
G
+
H
G
3
·
Pair
+
(
L
+
S
)
·
Ex
p
G
+
(
L
+
S
)
·
Mu
l
G
+
L
·
H
G
Yang and Jia [14]
(
S
+
1
)
·
Ex
p
G
+
S
·
Mu
l
G
+
H
G
2
·
Pair
+
(
L
+
1
)
·
Ex
p
G
+
L
·
Mu
l
G
+
L
·
Mu
l
Z
p
+
L
·
H
G
Our scheme
Ex
p
G
+
S
·
Mu
l
Z
p
+
S
·
Ad
d
Z
p
+
F
prp
2
·
Pair
+
Ex
p
G
+
Mu
l
G
L
·
Mu
l
Z
p
+
(
L
-
1
)
·
Ad
d
Z
p
+
L
·
F
prp


### 8.3. Experimental Results

We measure the performance of our scheme and compare it with other works [14–16] based on implementations in Ubuntu 12.04. We utilize Paring Based Cryptography (PBC) library for cryptographic operations and OpenSSL to use Advanced Encryption Standard (AES) for pseudorandom permutation. All experiments are executed on an Intel Core i3 3.10 GHz with 2 GB memory. We assume that |
p
| is 160 bits, |
id
| is 80 bits, and size of a data block is 160 bits. We simulate each scheme on 4 different data which has 1,000 data blocks with 5 times. All experimental results show an average of 20 trials.


#### 8.3.1. Tag Generation

The performances of the tag generation times are presented in Figure7(a). Tag generation time in our scheme is 3.18 milliseconds per block when S
=
1 and 3.28 milliseconds per block when S
=
100. Since a single Exp
G is required regardless of S, S almost never influences on tag generation time. However, tag generation times of the others increase with increasing S. Reference [16] requires 323.65 milliseconds per block, and [14] requires 324.63 milliseconds per block when S
=
100. Since they have same computation complexity, their tag generation times are almost identical. Reference [15] needs one more Exp
G. Thus, it requires 329.97 milliseconds per block which is more than the others.Experimental results.
(a)
Impact ofS on tag generation time
(b)
Impact ofL on verification time, when S
=
100
(c)
Impact ofS on verification time, when L
=
460


#### 8.3.2. Verification

We measure verification times depending onL when S
=
100. As depicted in Figure 7(b), the verification times for the TPA are dependent on L in the others [14–16]. When L
=
500, [14–16] requires 5.13, 5.66, and 5.75 seconds, respectively. Furthermore, Figure 7(c) shows that S influences [15, 16]. However, our scheme requires 0.01 seconds for verification regardless of L and S.


## 8.1. Communication Overhead

As we described in Section3, the way to get an identifier of updated data block depends on which entity manages an index table. In Wang et al.’s work [16], u
k needs one round-trip communication to request and receive the identifier (Figure 1). Zhu et al. [15] utilize a way that the TPA manages the index table (Figure 2). It needs an additional connection between u
k and the TPA for the identifier and a report of update information. Yang and Jia [14] utilize a way that a user manages the index table by himself. Although it is suitable when the outsourced data is managed by a single user, it requires more communication costs for synchronization of the index tables when the data is shared by multiple users.Communication costs are summarized in Table1. We omitted costs for uploading a data block and a corresponding tag for simplicity. Although the proposed scheme seems to require the same cost as Zhu et al.’s approach, there may be update delays caused by concentration of communications to the TPA in [15]. On the other hand, the proposed scheme removes this delay via a direct acquisition of the identifier from the CSP. For [14] to synchronize the index tables of users and the TPA, u
k needs to broadcast extra update information. Considering this circumstance, additional communications caused by broadcast might be added into Table 1.Table 1
Connections and communication costs for updating a data block.
Wang et al. [16]
Zhu et al. [15]
Yang and Jia [14]
Our scheme
Connections
u
k
↔
CSP
u
k
↔
TPA
u
k with other users
u
k
↔
TPA
u
k
↔
CSP
u
k
↔
TPA
u
k
↔
CSP
u
k
↔
CSP
Extra communication costs
|
q
id
|
+
|
id
|
|
q
id
|
+
|
id
|
+
|
u
info
|
d
×
|
u
info
|
|
q
id
|
+
|
id
|
+
|
u
info
|


## 8.2. Computational Overhead

Computation costs for tag generation and verification are described in Table2. The proposed scheme requires a single Exp
G operation in tag generation, while the others [14–16] require Exp
G and Mul
G operations which are proportional to the number of sectors in a data block. When the TPA verifies a proof received from the CSP, one Exp
G and one Mul
G operations are required in the proposed scheme regardless of the number of challenged data blocks. However, the others require Exp
G and Mul
G operations linear to the number of challenged data blocks, which cause a significant overhead to the TPA.Table 2
Computation costs for a tag generation and verification.
Tag generation
Verification
Wang et al. [16]
(
S
+
1
)
·
Ex
p
G
+
S
·
Mu
l
G
+
H
G
2
·
Pair
+
(
L
+
S
)
·
Ex
p
G
+
(
L
+
S
-
1
)
·
Mu
l
G
+
L
·
H
G
Zhu et al. [15]
(
S
+
2
)
·
Ex
p
G
+
S
·
Mu
l
G
+
H
G
3
·
Pair
+
(
L
+
S
)
·
Ex
p
G
+
(
L
+
S
)
·
Mu
l
G
+
L
·
H
G
Yang and Jia [14]
(
S
+
1
)
·
Ex
p
G
+
S
·
Mu
l
G
+
H
G
2
·
Pair
+
(
L
+
1
)
·
Ex
p
G
+
L
·
Mu
l
G
+
L
·
Mu
l
Z
p
+
L
·
H
G
Our scheme
Ex
p
G
+
S
·
Mu
l
Z
p
+
S
·
Ad
d
Z
p
+
F
prp
2
·
Pair
+
Ex
p
G
+
Mu
l
G
L
·
Mu
l
Z
p
+
(
L
-
1
)
·
Ad
d
Z
p
+
L
·
F
prp


## 8.3. Experimental Results

We measure the performance of our scheme and compare it with other works [14–16] based on implementations in Ubuntu 12.04. We utilize Paring Based Cryptography (PBC) library for cryptographic operations and OpenSSL to use Advanced Encryption Standard (AES) for pseudorandom permutation. All experiments are executed on an Intel Core i3 3.10 GHz with 2 GB memory. We assume that |
p
| is 160 bits, |
id
| is 80 bits, and size of a data block is 160 bits. We simulate each scheme on 4 different data which has 1,000 data blocks with 5 times. All experimental results show an average of 20 trials.


### 8.3.1. Tag Generation

The performances of the tag generation times are presented in Figure7(a). Tag generation time in our scheme is 3.18 milliseconds per block when S
=
1 and 3.28 milliseconds per block when S
=
100. Since a single Exp
G is required regardless of S, S almost never influences on tag generation time. However, tag generation times of the others increase with increasing S. Reference [16] requires 323.65 milliseconds per block, and [14] requires 324.63 milliseconds per block when S
=
100. Since they have same computation complexity, their tag generation times are almost identical. Reference [15] needs one more Exp
G. Thus, it requires 329.97 milliseconds per block which is more than the others.Experimental results.
(a)
Impact ofS on tag generation time
(b)
Impact ofL on verification time, when S
=
100
(c)
Impact ofS on verification time, when L
=
460


### 8.3.2. Verification

We measure verification times depending onL when S
=
100. As depicted in Figure 7(b), the verification times for the TPA are dependent on L in the others [14–16]. When L
=
500, [14–16] requires 5.13, 5.66, and 5.75 seconds, respectively. Furthermore, Figure 7(c) shows that S influences [15, 16]. However, our scheme requires 0.01 seconds for verification regardless of L and S.


## 8.3.1. Tag Generation

The performances of the tag generation times are presented in Figure7(a). Tag generation time in our scheme is 3.18 milliseconds per block when S
=
1 and 3.28 milliseconds per block when S
=
100. Since a single Exp
G is required regardless of S, S almost never influences on tag generation time. However, tag generation times of the others increase with increasing S. Reference [16] requires 323.65 milliseconds per block, and [14] requires 324.63 milliseconds per block when S
=
100. Since they have same computation complexity, their tag generation times are almost identical. Reference [15] needs one more Exp
G. Thus, it requires 329.97 milliseconds per block which is more than the others.Experimental results.
(a)
Impact ofS on tag generation time
(b)
Impact ofL on verification time, when S
=
100
(c)
Impact ofS on verification time, when L
=
460


## 8.3.2. Verification

We measure verification times depending onL when S
=
100. As depicted in Figure 7(b), the verification times for the TPA are dependent on L in the others [14–16]. When L
=
500, [14–16] requires 5.13, 5.66, and 5.75 seconds, respectively. Furthermore, Figure 7(c) shows that S influences [15, 16]. However, our scheme requires 0.01 seconds for verification regardless of L and S.


## 9. Conclusion

In this paper, we present a secure and efficient audit mechanism for shared dynamic data in cloud storage. It makes possible for the TPA to correctly audit outsourced data which can be updated in a secure manner. With simple index table management by the TPA and identifier renewal by the CSP, any user in a group can update shared data block efficiently. Furthermore, making the auditing operations simple leads to less computational overhead for the whole auditing process. Performance evaluation and security analysis show that the proposed scheme is best suited to the cloud storage where multiple users share and update the outsourced data frequently.



---

*Source: 820391-2014-05-12.xml*