Skip to Content
ElectronicsElectronics
  • Article
  • Open Access

20 September 2023

25 Pages

Verifiable and Searchable Symmetric Encryption Scheme Based on the Public Key Cryptosystem

and
School of Information Engineering, Ningxia University, Yinchuan 750021, China
*
Author to whom correspondence should be addressed.

Abstract

With the rapid development of Internet of Things technology and cloud computing technology, all industries need to outsource massive data to third-party clouds for storage in order to reduce storage and computing costs. Verifiable and dynamic searchable symmetric encryption is a very important cloud security technology, which supports the dynamic update of private data and allows users to perform search operations on the cloud server and verify the legitimacy of the returned results. Therefore, how to realize the dynamic search of encrypted cloud data and the effective verification of the results returned by the cloud server is a key problem to be solved. To solve this problem, we propose a verifiable dynamic encryption scheme (v-PADSSE) based on the public key cryptosystem. In order to achieve efficient and correct data updating, the scheme designs verification information (VI) for each keyword and constructs a verification list (VL) to store it. When dynamic update operations are performed on the cloud data, it is easy to quickly update the security index through obtaining the latest verification information in the VL. The safety and performance evaluation of the v-PADSSE scheme proved that the scheme is safe and effective.

1. Introduction

With the development of IoT technology, in order to achieve industrial informatization, more and more IoT devices are being connected, and the amount of data is becoming larger and larger. In order to save on storage and computing costs, enterprises choose to outsource massive amounts of data to cloud servers. However, while enjoying the convenience brought by the cloud, the security of the data has become crucial. To protect data privacy, sensitive private data need to be encrypted before being outsourced to the IoT cloud [1]. Song et al. [2] proposed searchable symmetric encryption (SSE). SSE is an encryption scheme that allows users to store encrypted data on a third-party cloud server and search the encrypted cloud data through the trapdoor generated by the keywords. However, most SSE schemes only consider keyword search operations on statically encrypted cloud data, which is inconsistent with the real-time and dynamic update requirements for enterprise data. Moreover, some studies have shown that conventional SSE schemes are vulnerable to leakage abuse attacks [3], file injection attacks [4], and technical attacks [5]. In order to realize the dynamic update (add, delete, or modify) operations of encrypted data stored on cloud servers, some SSE schemes supporting the dynamic update operations of private data have been proposed [6,7,8,9]. Kamara et al. [6] proposed an SSE scheme that supports dynamic data updating. The scheme realizes a sublinear search via extending an inverted index and uses a search array and delete array combined with other storage space to realize the dynamic update of the data. Subsequently, they proposed another method based on the keyword red–black tree index structure [7] to support parallel keyword search and parallel data insertion and deletion. Guo et al. [8] proposed a dynamic SSE scheme based on an inverted index. The scheme records the keyword position by the inverted index and realizes the data dynamics through updating the index. Xia et al. [9] proposed a dynamic keyword search scheme for encrypted cloud data based on the tree index structure that supports multi-keyword sorting.
The above DSSE schemes do not consider the correctness and integrity verification of the returned matching result of the cloud server. In practice, the cloud server may return un-updated or incorrect matching results to the user in order to save computing resources. Therefore, users need to verify the results returned by the cloud server to ensure the correctness and integrity of the returned results. Some schemes [10,11,12] use the timestamp function of the RSA accumulator to verify the search results, which generates accumulator bits for all files and indexes, which can be saved by the data owner. If the cloud server returns an un-updated result, the user can check it with the latest accumulator. The RSA accumulator [13] can synthesize a large number of data into a fixed-size value to achieve member authentication, which can effectively reduce communication overhead. The RSA accumulator is applied to the compressed prefix tree structure to realize both efficient retrieval and result verification. However, the RSA accumulator is based on asymmetric cryptosystems, and the computational costs and verification costs are high. Some research teams have proposed verifiable schemes based on message authentication code (MAC) [14,15,16], but in DSSE application scenarios, MAC cannot verify whether the results returned by the cloud server are the latest, that is, it cannot resist replay attacks [17]. Ge et al. [18] proposed a verifiable DSSE scheme based on cumulative authentication tags (AATs), which generates authentication tags for keywords and verifies the returned results through recording the number of global updates and the number of updates of a single file containing those keywords. Each update operation consumes only one label, which is highly efficient. However, the pseudo-random permutation and pseudo-random function are used in this scheme to replace and encrypt the keywords and global update times, which leads to key management problems. Relational authentication tags (RALs) [19] are used to verify the relationship of query keywords in documents, and audit certificates can be generated without exposing sensitive information. However, the program requires third-party auditors to be involved in the search process. Therefore, how to effectively verify the correctness and integrity of the returned results is an urgent problem to be solved.
According to the research on the above schemes, the verification of search results in most schemes is not comprehensive and also involves key management problems. Therefore, how to effectively verify the correctness and integrity of search results as well as the security management of encryption keys are the problems we should focus on and solve.
In this paper, we explore how to use the public key cryptosystem in the DSSE scheme to verify the correctness and integrity of the result returned by the cloud server and to manage the encryption key effectively and securely.
The contributions of this paper can be summarized as follows:
(1) In order to efficiently realize the index update and index lookup, we constructed a bitmap index to store the relationship between the keywords and encrypted files. A verification list ( V L ) was used to store the latest verification information of files containing keywords so that we can quickly obtain the latest verification information from the V L to perform the secure index update.
(2) In order to support the effective verification of dynamic data, we designed public-key-based cumulative verification information ( V I ), which is stored in the bitmap index. When the encrypted cloud data are dynamically updated, the verification information can be easily updated. In addition, the verification information contains the corresponding keywords’ information, which makes the verification information of various keywords different. Moreover, replay attacks can be resisted by the V I , that is, through verifying whether the returned result is up to date.
(3) In order to achieve forward security, the scheme places the node information in the bitmap index to avoid statistical attacks. When we need to search or update private data, the cloud server will return or change the whole column’s data so that malicious cloud software cannot obtain the relationship of the keywords and index.
(4) Based on the above description, we design a verifiable DSSE scheme based on the public key cryptosystem. The security, verification efficiency, and updating efficiency of the scheme are analyzed and explored. The results show that the scheme is safe and effective.
Organization: The rest of the paper is organized as follows. We summarize the related work in Section 2. In Section 3, the formulas and algorithms involved in the scheme are defined, including model construction, design objectives, etc. In Section 4, we describe the construction of the scheme and the execution of the algorithm. The security analysis of the v-PADSSE scheme is given in Section 5. In Section 6, the implementation efficiency and updating efficiency of the program are analyzed and evaluated.

4. v-PADSSE Scheme Construction and Algorithm Description

We have summarized some common symbols used in the design of the v-PADSSE scheme, as shown in Table 1.
Table 1. Common symbols and descriptions.

4.1. Overview of the v-PADSSE Scheme

In order to solve the problem of correctness and integrity verification of the results returned by the cloud server, this paper designs a DSSE scheme based on public key verification (v-PADSSE). In this scheme, verification information is added to the security index and encrypted using the public key of the data user, so that the user can verify the returned results. Below, the construction of the v-PADSSE scheme is described in detail.
When constructing V I , the v-PADSSE scheme needs to include v i , f l a g , and H ( F ) . The V I needs to be encrypted with the user’s public key. Assume that the encryption function is P K ( V I ) . To prevent the cloud server from collecting statistics on the correlation between keywords and updated files, all index nodes in the column of the document representation of the updated file must be updated so that the update operation can hide the correlation between the ciphertext and the keywords. Therefore, the verification information V I = P K ( v i ) + P K ( f l a g ) + H ( F ) . In addition, the data owner creates a verification list ( V L ) locally, which stores the latest verification information of each keyword, including the number of files containing keyword N, the total number of updates of files containing keyword V, the document identification of files containing keyword i d , and its single set of file update times v i so that the latest update token can be generated directly when the update operation is performed. For different update operations (such as modify, add, and delete), V I needs to be performed in different operations. V I is calculated as follows:
  • Add new file F ′ .
When the data owner obtains the latest V I and performs the add operation, the number of updates of a single file is initialized to v i = 1 . If the newly added file F ′ contains the keyword w in the V L , the corresponding node in the V L needs to execute N = N + 1 , V = V + 1 , then add the document i d of the new file F and the number of updates v i to the node. If it does not, a new node needs to be added to the V L , where N = 1 , V = 1 , v i = 1 , and V I = P K ( v i ) + P K ( f l a g = r a n d A ) + H ( F ′ ) .
  • Modify file F to F ′ .
When file F needs to be updated to a new file F ′ (both F and F ′ contain the keyword w), the data owner updates V L with the latest verification information for the keyword w in the corresponding node and executes V = V + 1 and v i = v i + 1 . V I ′ = V I − p k ( v i ) + P K ( v i + 1 ) − H ( F ) + H ( F ′ ) .
  • Delete file F.
File F contains keyword w, and the data owner updates N = N − 1 , V = V − v i , and v i = 0 in the V L in the node where keyword w resides. In this case, the latest verification information V I ′ = V I − P K ( N ) + P K ( N − 1 ) − P K ( v i ) + P K ( v i = 0 ) − P K ( f l a g = r a n d A ) + P K ( f l a g = r a n d B ) . Additionally, the document i d and v i of file F are removed from the V L .
After the data owner performs different update operations, the corresponding update token τ is generated and sent to the cloud server, which updates the security index and ciphertext according to the update token information.

4.2. Secure Index Structure

In v-PADSSE, the data owner constructs the security index through using the bitmap index and constructs V L locally. The data owner generates the symmetric encryption key through executing the algorithm KeyGen, and the data user’s key pair ( P K , S K ) is generated via KGC executing the PSKeyGen algorithm.
First, the data user publicly releases the public key, and the data owner, after obtaining the user’s public key, uses the symmetric private key K to encrypt the privacy files and keywords and uses P K to encrypt the verification information corresponding to the keywords. When the security index is firstly constructed, the data owner needs to initialize V I through initializing N to the number of files containing the keyword w, V = ∑ i = 1 n v i , v i = 1 (1 ≤ i ≤ N). When the security index is constructed, the column header contains the keyword w i , and the row header contains the document ID d o c I d . Middle node information includes v i (the number of updates to the file containing the keyword w i ), f l a g (indicating whether the document contains the keyword), and H ( F ) (the result of the hash operation of the plaintext file). The security index structure is shown in Figure 2.
Figure 2. Security index structure.
The number of rows in the secure index is determined by the number of keywords, and each row is associated with a keyword. The number of column nodes is determined by the number of privacy files. When the data owner needs to perform an update operation, PK( v i ), P K ( f l a g ) , and H ( F ) in all nodes in the whole column are modified according to the updated document identifier.
The data owner needs to obtain the latest verification information of the corresponding keyword when generating the update token. Therefore, V L is designed in the scheme and is owned by the data owner. The latest V I of keywords contained in each privacy file must be recorded in V L . When updating, the data owner modifies the V I in V L to ensure that the V L and V I in the security index are updated simultaneously. The structure of the V L is shown in Figure 3, where N indicates the number of files containing the keyword, V indicates the total number of updates to files containing the keyword, and i d , v i indicates the set composed of the document identification of the file containing the keyword and the number of updates to the file.
Figure 3. Structure of VL.

4.3. Algorithm Description

In this section, we give the execution steps of the core algorithm of the v-PADSSE scheme and explain the related functions in detail.
In v-PADSSE, the core algorithms involved are IndexBuild (Algorithm 1), Building VL (Algorithm 2), GenToken, Search (Algorithm 3), Verify (Algorithm 4), UpdateToken (Algorithm 5), and Update (Algorithm 6). The IndexBuild Algorithm 1 is used by the data owners to construct the secure index with bitmaps. Among them, the header node stores keyword and document identification, and the middle node stores keyword-related verification information. After constructing the secure index, data users upload the secure index and encrypted files to the cloud server. Data users use the GenToken algorithm to generate a trapdoor and send it to the cloud server. The cloud server executes the Search Algorithm 3, performs the matching query on the security index according to the trapdoor, and returns the matching results and verification information to the data user. After receiving the results, the user executes the Verify Algorithm 4 to verify the correctness and integrity of the results. If not verified, refuse. To update the privacy file, the data owner obtains the verification information related to the keyword contained in the file from V L , runs the UpdateToken Algorithm 5 to generate the corresponding update token, and sends it to the cloud server. The cloud server executes the Update Algorithm 6 based on the updated token information to update the security index and related ciphertext. Below, we will give a detailed explanation of the above core algorithm execution process.
  • Initialization parameters:
    (1)
    Obtain the keyword set w contained in the plaintext file and save it in the keyword set W = w 1 , w 2 , … , w n , where n is the number of keywords.
    (2)
    Obtain the number of files containing keyword w, N = F ( w ) . n u m , the total number of updates to files containing keyword w, V = N , the set i d , v i = 1 consisting of the document ID and the number of updates per file, and whether the file contains the f l a g of the keyword. ( P K ( v [ N ] ) , P K ( f l a g ) ) ← E n c r y p t P K ( v [ N ] , f l a g ) through using the public key.
    (3)
    Encrypt keyword w and plaintext file F using the symmetric key algorithm, compute ( K w , C ) ← E n c r y p t K ( w , F ) , and hash file F to obtain H ( F ) .
  • Building secure index:
    For each privacy file, document identification d o c I d and keyword set w i ∈ W ( 1 ≤ i ≤ n ) are used to construct the bitmap index. The functions and parameters required to construct the security index are described as follows:
    (1)
    Create the header node B u i l d H e a d N o d e ( K w , d o c I d ) , where K w is the keyword set after symmetric key K encryption, and d o c I d is the private file identification set.
    (2)
    Create an intermediate node B u i l d M i d d l e N o d e ( K w , d o c I d , P K ( v i ) , P K ( f l a g ) , H ( F ) ) ; K w and d o c I d indicate where verification information is stored in the bitmap index, P K ( v i ) is the number of file updates containing the keyword w, and P K ( f l a g ) indicates whether the privacy file corresponding to d o c I d contains keyword w. If yes, f l a g = r a n d A ; if no, f l a g = r a n d B . H ( F ) is the result of hashing the privacy file F.
    The algorithm process is as follows:
    Algorithm 1  ( I , C ) ← I n d e x B u i l d ( K , P K , F , W , N , V , v i , f l a g )
      1:
    DO:
      2:
    N=F.num();V=F.num();v[N]= 1 , 1 , … , 1 ;
      3:
    ( K w , C ) ← E n c r y p t K ( w , F ) ;
      4:
    P K ( v i ) , P K ( f l a g ) ← E n c r y p t P K ( v i , f l a g ) ;
      5:
    H ( F ) ← H a s h ( F ) ;
      6:
    / / Assuming a total of n keywords and n privacy files, the following procedure is executed n ∗ n times.
      7:
    for  i = 0 ; i < n ; i++ do
      8:
      for  j = 0 ; j < n ; j++ do
      9:
        B u i l d H e a d N o d e ( K w , d o c I d ) ;
    10:
        B u i l d M i d d l e N o d e ( K w , d o c I d , P K ( v i ) , P K ( f l a g ) , H ( F ) ) ;
    11:
      end for
    12:
    end for
    13:
    / / The above process of creating head nodes and middle nodes together forms the bitmap index, and assigns the f l a g bit according to whether the keyword is contained in the privacy file, and generates the security index I.
    14:
    / / The data owner sends the generated security index I and ciphertext C to the cloud server.
    15:
    Send to CS(I,C);
  • Building verification list: V L
    The verification list is constructed and stored locally by the data owner. The V L is a single linked list, and the linked list node needs to contain the verification information of each keyword. The creation process is as follows.
    The V L header node does not store any information, only the address of the first keyword.
    B u i l d H e a d N o d e ( ∗ f i r s t K e y W o r d ) : ∗ f i r s t K e y W o r d indicates the address of the first keyword.
    B u i l d L i s t N o d e ( w i , N i , V i , i d , v i , ∗ n e x t K e y W o r d ) . The middle node of the linked list stores the keyword w i , the number of files N i containing w i , and the total number of updates to files V i containing w i . A set of the document identification of the privacy file containing w i and the number of updates v i to the file, and a pointer to the next keyword address ∗ n e x t K e y W o r d are also included.
    Algorithm 2 Building VL
      1:
    / / Because there are n keywords, the creation of the intermediate index node needs to be executed n times.
      2:
    for  i = 0 ; i < n ; i++ do
      3:
       B u i l d L i s t N o d e ( w i , N i , V i , i d , v i , ∗ n e x t K e y W o r d ) ;
      4:
    end for
The Search algorithm process is as follows:
Algorithm 3  ( v e r i f y I n f o , C ( w ) ) ← S e a r c h ( T w , I , C )
  1:
DO:
  2:
/ / Data users execute trapdoor generation algorithm GenToken, use symmetric key K to encrypt keyword information, generate trapdoor T w , and send it to the cloud server. It is also sent to the data owner through the channel to obtain the latest verification information of the keyword.
  3:
T w ← G e n T o k e n ( K , w ) ;
  4:
Send ( T w ) to CS and DO;
  5:
CS:
  6:
if IndexSearch( T w ) = null then
  7:
 Then return null;
  8:
else
  9:
  / / Obtain keyword verification information.
10:
 verifyInfo = GetVerifyInfo(PK( v i ),PK(flag),H(F));
11:
 C(w) = search(docId);
12:
end if
13:
/ / Return the search results and VI to the data user.
14:
Return (verifyInfo,C(w));
The Verity algorithm process is as follows:
Algorithm 4  ( Y , N ) ← V e r i f y ( v e r i f y I n f o , S K , T w , C ( w ) )
  1:
DU:
  2:
/ / The user uses the private key S K to decrypt the verification information.
  3:
( v i , f l a g ) ← D e c S K ( P K ( v i ) , P K ( f l a g ) ) ;
  4:
/ / Decrypt the latest verification information returned by the data owner.
  5:
g e t N e w V e r i f y I n f o ( T w , P K ( N w ) , P K ( V w ) ) ;
  6:
D e c S K ( P K ( N w ) , P K ( V w ) ) ;
  7:
/ / Check whether the keyword is contained in the privacy file according to the f l a g . If yes, proceed with the execution. If not, the privacy file will not be decrypted.
  8:
if flag% 2=0 then
  9:
 Delete;
10:
  / / The verification information returned by the data owner compares with that returned by the cloud server. If the verification information is correct, the ciphertext is accepted and decrypted. If not, the ciphertext is rejected.
11:
else
12:
 if  N w = C ( w ) . num and V w = ∑ v i and H(Decrypt(K,C(w)))=H(F) then
13:
  Return Y;
14:
 else
15:
  return N;
16:
 end if
17:
end if
The UpdateToken algorithm process is as follows:
Algorithm 5  τ ← U p d a t e T o k e n ( K , P K , F , w , f l a g , v i )
  1:
DO:
  2:
Add:
  3:
/ / The data owner needs to add the privacy file F, he firstly obtains the keyword set w and document identification d o c I d F in F and then encrypts F and keyword w with K, v i is the number of updates corresponding to the privacy file.
  4:
( K w , C ) ← E n c r y p t K ( w , F ) ;
  5:
/ / The V L is matched according to the keywords contained in F. If w i contained in F already exists, add ( d o c I d F , 1) to the i d , v i in the matched node, and do N = N + 1 , V = V + 1 in this node. If not, add a new node ( w , N = 1 , V = 1 , d o c I d F , 1 ) to V L .
  6:
/ / Assume there are k keywords in file F, it needs to be executed k times.
  7:
for  i = 0 ; i < k ; i++ do
  8:
 if search( w i ) is true then
  9:
   N = N + 1;V = V + 1;
10:
   Add(docIdF,1);
11:
 else
12:
    B u i l d L i s t N o d e ( w i , N i = 1 , V i = 1 , d o c I d F , 1 , ∗ n e x t K e y W o r d ) ;
13:
 end if
14:
end for
15:
/ / The updated verification information is encrypted using public key P K , and generates the added token τ a d d . If w is contained by the file F, the value of f l a g is r a n d A in node ( w , d o c I d F ) , If not, the f l a g ’s value is r a n d B .
16:
P K ( v i ) , P K ( f l a g ) ← E n c r y p t P K ( v i , f l a g ) ;
17:
H ( F ) ← H a s h ( F ) ;
18:
τ a d d = ( “ a d d ” , P K ( v i ) , P K ( f l a g ) , H ( F ) , K w , d o c I d F , C ) ;
19:
S e n d ( τ ) t o C S ;
20:
Delete:
21:
/ / If the data owner needs to delete file F, he obtains the set of keyword w i ( 1 ≤ i ≤ k ) in file F and uses K to encrypt the keywords and the deleted file F. The document identification of the file F is d o c I d F .
22:
( K w , C ) ← E n c r y p t K ( w , F ) ;
23:
/ / Search for w i in V L , and update N, V and the set i d , v i in the corresponding node according to the keyword w i . This procedure takes k times.
24:
for  i = 0 ; i < k ; i++ do
25:
 if search(w) is true then
26:
  N=N-1;V=V-v[docIdF];
27:
   / / Removes d o c I d F , v from the document identification i d , v i set in matched node;
28:
  Delete d o c I d F , v ;
29:
 else
30:
  Return error;
31:
 end if
32:
end for
33:
/ / The updated verification information is encrypted using the public key, and the deleted token τ d e l is generated and sent to the cloud server.
34:
P K ( v i ) , P K ( f l a g ) ← E n c r y p t P K ( v i = 0 , f l a g = r a n d B ) ;
35:
H ( F ) ← H a s h ( F ) ;
36:
τ d e l = ( “ d e l e t e ” , P K ( v i ) , P K ( f l a g ) , H ( F ) , K w , d o c I d F , C ) ;
37:
Send( τ ) to CS;
38:
Modify:
39:
/ / If the data owner needs to modify the privacy file, he uses K to encrypt the modified file F and keywords contained in F.
40:
( K w , C ) ← E n c r y p t K ( w , F ) ;
41:
/ / Update V I in V L according to the keywords contained in file F. After updating, the verification information is encrypted using the public key, and the modified token τ m o d is generated and sent to the cloud server.
42:
/ / Since the modified file F contains k keywords w i ( 1 ≤ i ≤ k ) , the following procedure needs to be performed k times.
43:
for  i = 0 ; i < k ; i++ do
44:
 if search(w) is true then
45:
  V=V+1;v[docIdF]=v[docIdF]+1;
46:
 end if
47:
end for
48:
P K ( v [ d o c I d F ] ) ← E n c r y p t P K ( v [ d o c I d F ] ) ;
49:
H ( F ) ← H a s h ( F ) ;
50:
/ / During the modification, the f l a g remains unchanged.
51:
τ m o d = ( “ m o d i f y ” , P K ( v [ d o c I d F ] ) , P K ( f l a g ) , H ( F ) , K w , d o c I d F , C ) ;
52:
Send( τ ) to CS;
Algorithm 6  ( I ′ , C ′ ) ← U p d a t e ( τ )
  1:
CS:
  2:
/ / After receiving the updated token from the data owner, the cloud server performs operations on the security index I and ciphertext C according to the token.
  3:
if  τ .operate = “add” then
  4:
  / / Add a new column d o c I d F to the bitmap index, or add a new row if the keyword contained in F does not exist in the bitmap index.
  5:
 BuildHeadNode(docIdF);
  6:
  / / Assume there are n keywords in the bitmap index, that is, n rows, which need to be executed n times.
  7:
 for  i = 0 ; i < n ; i++ do
  8:
   B u i l d M i d d l e N o d e ( K w , d o c I d F , P K ( v i ) , P K ( f l a g ) , H ( F ) ) ;
  9:
 end for
10:
 if  K w i does not exist in the bitmap index then
11:
   B u i l d H e a d N o d e ( K w i ) ;
12:
   / / Assume there are n document identifications in bitmap, the following procedure needs to be performed n times.
13:
  for  i = 0 ; i < n ; i++ do
14:
    B u i l d M i d d l e N o d e ( K w , i d , P K ( v i ) , P K ( f l a g ) , H ( F ) ) ;
15:
  end for
16:
 end if
17:
 addFile(C’);
18:
else if  τ .operate = “delete” then
19:
  / / Delete All nodes in the bitmap index if the value of column head node is d e l e t e I d .
20:
 deleteColumn(deleteId);
21:
 deleteFile(C’);
22:
else if  τ .operate = “modify” then
23:
  / / Assume there are n keywords in the bitmap index, all nodes need to be changed if the value of column head node is m o d i f y I d .
24:
 for  i = 0 ; i < n ; i++ do
25:
   C h a n g e N o d e ( K w i , m o d i f y I d , P K ( v i ) , P K ( f l a g ) , H ( F ) ) ;
26:
 end for
27:
 changeFile(C,C’);
28:
end if
In conclusion, when the cloud server performs the update operation, the updated column needs to be modified. At this time, the existence of the f l a g and the correct update of the f l a g will not affect the verification result, even if the keyword w which is not contained in F changes. Moreover, since the update operation involves the change of an entire column in the secure index, it is also a good way to hide the correlation between the keywords and the updated file.

4.4. Comparison

In this section, we compare our scheme with Σ o ϕ o ς [51], Ge’s scheme [18], Gao’s scheme [19], and Zhang’s scheme [43]. All of those schemes can ensure the verifiability of search results. Assume there are n files and m keywords in total. For simplification, we assume that each search returns n files. We neglect the communication costs and only compare the computation overhead in different phases of these schemes. Table 2 shows the results of the comparison.
Table 2. Performance comparison.
As can be seen from Table 2, the efficiency of our scheme is close to Zhang’s scheme [43], Gao’s scheme [19], and Ge’s scheme [18] in terms of search and verify operations. However, in the update process, our scheme and Ge’s scheme [18] are better than others; the time complexity of the two schemes is O(n).

5. Security Analysis

In this section, we will analyze the security of the v-PADSSE scheme in two aspects: update reliability and verifiability.

5.1. Update Reliability Analysis

Due to the cloud server being unreliable in v-PADSSE, it may not update the security index and ciphertext after receiving the update request from the data owner in order to save computing or storage resources. We are going to prove that the Verify algorithm outputs “N” when the cloud server returns un-updated results.
Assume that the result returned by the cloud server is ( V I ′ , C ′ ( w ) ) , and the correct result and verification information is ( V I , C ( w ) ) . The number of files containing the keyword w is N ′ , and the total number of updates to files containing the keyword w is V ′ . In addition, the scheme proposes that when the data user performs a query, it will apply to the data owner for the latest verification information P K ( N ) , P K ( V ) for the keyword. At this time, we will consider the following three scenarios to prove the reliability of the v-PADSSE.
(1) VI = VI’, C(w) ≠ C’(w)
If the cloud server updates only the security index but not the ciphertext, the returned result is ( V I , C ′ ( w ) ) .
V I = P K ( v i ) , P K ( f l a g ) , H ( F ) ;
P K ( V ) = P K ( ∑ v [ 1 , … , N ] ) ;
But the return verification information contains H ( F ) . At this time, we decrypt the return ciphertext C ′ ( w ) to get F ′ . If you want to pass the verification, then H ( F ) = H ( F ′ ) ; that is, F = F ′ . If the plaintext is the same, the result C ( w ) = C ′ ( w ) after encryption with the same key, which is inconsistent with the assumption that C ( w ) ≠ C ′ ( w ) . The above calculation shows that if only the security index is updated without the ciphertext, the Verify Algorithm 4 cannot output ‘Y’ when the data user performs verification.
(2) VI ≠ VI’, C(w) = C’(w)
In this case, the cloud server only updates the ciphertext but not the verification information in the security index.
V I = P K ( v i ) , P K ( f l a g ) , H ( F ) ;
V I ′ = P K ( v i ′ ) , P K ( f l a g ′ ) , H ( F ′ ) ;
If we want the Verify Algorithm 4 to output ‘Y’, that means
P K ( v i ) , P K ( f l a g ) , H ( F ) = P K ( v i ′ ) , P K ( f l a g ′ ) , H ( F ′ ) .
Since the verification information in the security index is not updated, if P K ( v i ) ≠ P K ( v i ′ ) and the rest are equal, the total update times V = ∑ v [ 1 , … , N ′ ] will output ‘N’ when verifying the returned results. If P K ( f l a g ) ≠ P K ( f l a g ′ ) and the rest are the same, the number of returned results is not equal to N, and the Verify Algorithm 4 will output ‘N’. If the number of f l a g = r a n d A is the same as the number of f l a g ′ = r a n d A in the returned V I , it is also necessary to ensure that the v i corresponding to the two are the same, which indicates that the attacker needs to obtain the verification information from the data owner, but V L is private to the data owner, and the probability of information leakage can be almost ignored. If H ( F ) ≠ H ( F ′ ) and the rest are the same, in this case F ≠ F ′ , the Verify Algorithm 4 will output ‘N’.
(3) VI ≠ VI’, C(w) ≠ C’(w)
Assume that the cloud server does not update the security index and ciphertext after receiving the update token from the data owner. If the data user performs a Search operation (Algorithm 3), the cloud server returns the un-updated results to the user. In the system model architecture (Figure 1), before performing the Search operation, the data user needs to send the latest V I request for the searched keyword to the data owner. The data owner searches V L and returns the latest V I of the keyword to the data user. After receiving the V I , the data user uses the Verify Algorithm 4 to compare the un-updated V I with the latest. If any inconsistency is found, the Verify Algorithm 4 directly outputs ‘N’.
The above shows that if the cloud server does not update the security index and ciphertext to save computing or storage resources, our scheme can verify the verification information and return results through the verification algorithm to find the un-updated situation in time. Therefore, the v-PADSSE scheme proposed by us meets the updated reliability.

5.2. Verifiability Analysis

In this section, we assume that the attacker can forge ( C ′ ( w ) , V I ′ ) so that the returned results pass the Verify Algorithm 4. Assuming that the correct results and verification information are ( C ( w ) , V I ) , we will compare the forged information with the real information to prove that the probability of the attacker passing the Verify Algorithm 4 through forging verification information is negligible.
We will consider the following three scenarios to demonstrate the verifiability of the v-PADSSE.
(1) VI = VI’, C(w) ≠ C’(w)
Attackers forge V I ′ = P K ( f l a g ) + P K ( V I ) + H ( F ′ ) , while proper verification information V I = P K ( f l a g ) + P K ( V I ) + H ( F ) . This makes:
P K ( f l a g ′ ) + P K ( v i ′ ) + H ( F ′ ) = P K ( f l a g ) + P K ( v i ) + H ( F ) ;
In this case, because N, V, f l a g , and v i are encrypted using the user’s public key, the cost of forgery is relatively small. At this point, we can consider:
H ( F ′ ) = H ( F ) ;
According to the properties of the hash function, F ′ = F is certain. In this case, C ′ ( w ) = C ( w ) , which is not consistent with the assumption. Therefore, the probability of an attacker passing the Verify Algorithm 4 in this way is almost negligible.
(2) VI ≠ VI’, C(w) = C’(w)
The attacker forges the ciphertext C ′ ( w ) to be consistent with the correct ciphertext. According to the design of the v-PADSSE, the verification information contains H ( F ) . At this point, we can consider:
P K ( v i ′ ) + P K ( f l a g ′ ) ≠ P K ( v i ) + P K ( f l a g ) ;
According to the above situation, P K ( V ) = P K ( ∑ v i ) = P K ( ∑ v i ′ ) ; when P K ( f l a g ′ ) ≠ P K ( f l a g ) , if the number of f l a g = r a n d A is not equal to the number of f l a g ′ = r a n d A , the known probability of information leakage of V L can be ignored. In this case, the probability of the number of returned results being N is negligible, and the Verify Algorithm 4 will output ‘N’. Therefore, the probability of the above situation passing the Verify Algorithm 4 can also be ignored.
(3) VI ≠ VI’, C(w) ≠ C’(w)
In this case, the data user will spend a communication after sending the trapdoor to the data owner to request the latest verification information N, V of the keyword. Therefore, under this assumption, as long as any of the verification information is different, or the encrypted files returned are different, H ( F ) is inconsistent, which will make the Verify Algorithm 4 output ‘N’. Therefore, the probability of the attacker passing the verification can be ignored under this condition.
The above three scenarios show that if a malicious attacker forges ciphertext or verification information, our scheme can also determine which information is forged and give feedback. Therefore, our scheme satisfies verifiability.

6. Performance and Experiments

In this section, we will analyze the performance of the proposed v-PADSSE scheme. The basic logic of the experiment was written in C++, and the running environment was Windows 10 equipped with a 2.40 GHz 12th Gen Intel(R) Core(TM) i7 CPU and 4.0 GB RAM.
Index construction efficiency. We evaluated the bitmap index proposed in the scheme and the verification list construction efficiency. Figure 4 shows the time spent to build the security index and verification list when the number of keywords is set to 10,000 and the number of privacy files changes from 1000 to 10,000. In the scheme, the security index adopts the form of a bitmap index, the number of rows is the number of keywords, and the number of columns is the number of document identifiers of privacy files. When the number of rows in the bitmap index is fixed and the number of private files increases, the number of columns in the bitmap also needs to increase, and the time cost of building a secure index also increases. Figure 5 shows the time spent to construct the security index and verification list when the number of privacy files is 10,000 and the number of keywords contained in the privacy files changes from 1000 to 10,000. When the number of secure index columns is fixed, the increase in the number of keywords leads to an increase in the number of rows in the bitmap index, and the time cost of building the secure index Algorithm 1 also increases. During secure index construction, the number of nodes is related to the number of keywords and privacy files. Therefore, when the number of privacy files or keywords increases, the number of columns or rows of the bitmap index will also increase, and the time cost of building a security index will also increase. Since the number of nodes in V L is only related to the number of keywords contained in the privacy file, when the number of keywords increases, the number of nodes in V L increases, and the time cost of building V L (Algorithm 2) increases at the same time.
Figure 4. Security index and VL construction time cost.
Figure 5. Security index and VL construction time cost.
Update token generation efficiency. Figure 6 shows the time cost of generating update tokens (Algorithm 5) (modify token, delete token, and add token) in the scheme. Since the generation of the update token involves the document identification and the number of keywords contained in the privacy file after the document identification of the modified file is determined, the latest update times of the file need to be obtained from V L . Therefore, the generation efficiency of update tokens is linearly related to the number of nodes in V L , and the higher the number, the longer the token generation time. However, since the added token may involve increasing the number of V L nodes, the generation time will be slightly longer.
Figure 6. The update token generation time cost.
Search efficiency analysis. The V L obtains the latest verification information and generates an update token. After receiving the update token, the cloud server searches for it in the security index. Figure 7 shows the time cost of performing a search operation in the security index when the number of keywords is 10,000 and the number of private files changes from 1000 to 10,000. It can be seen that when the number of rows in the security index is fixed, that is, the number of keywords is fixed, the time cost of searching the index increases linearly with the increase in the number of columns, that is, the number of privacy files. Figure 8 shows the time cost of searching (Algorithm 3) the V L and the secure index when the number of privacy files is 10,000 and the number of keywords changes from 1000 to 10,000. Since the number of nodes in V L is equal to the number of keywords, the search time also increases linearly when the number of keywords increases. When the number of columns in the security index is fixed and the number of rows in the bitmap index increases as the number of keywords increases, the search time cost increases.
Figure 7. Search secure index time cost.
Figure 8. Search secure index and VL time cost.
In this section, we compare this scheme with what is generally regarded as the most typical verifiable SSE scheme [54] in terms of verification efficiency and update efficiency.
Verify efficiency analysis. We made a comparative analysis of the verification (Algorithm 4) time cost of our scheme and scheme [54]. As can be seen from Figure 9, the verification time cost of our scheme is lower than scheme [54]. Scheme [54] used a bilinear mapping accumulator to verify search results, which is based on asymmetric key encryption. Our scheme is based on a V L ; the number of file updates is stored in the V L , which is more efficient than the accumulator. As shown in Figure 9, when the number of privacy files containing search keywords is 200, the verification time cost of scheme [54] is roughly 5 ms, and the verification time cost of our scheme is 0.3725 ms. When the number of search keywords is 2000, the verification time cost of scheme [54] is about 48 ms, and the verification time cost of our scheme is about 9.2437 ms. As can be seen from Figure 10, the number of CPU clock cycles of our scheme is lower than that of scheme [54]. Therefore, the verification efficiency of our scheme is higher than that of scheme [54].
Figure 9. Verification efficiency comparison.
Figure 10. CPU clock cycles of per data comparison.
Update efficiency analysis. After receiving the update token, the cloud server needs to perform the corresponding Update operation (Algorithm 6) on the security index. As can be seen from Figure 11, Figure 12 and Figure 13, the number of columns or rows in the security index needs to be increased due to the add and modify operation, and the time cost is slightly larger than the delete operation. The cloud server deletes the corresponding column in the security index when it performs the delete operation, and the time cost is lower. As can be seen from Figure 11, Figure 12 and Figure 13, the update efficiency of our scheme is better than scheme [54].
Figure 11. The comparison of add operation time cost.
Figure 12. The comparison of modify operation time cost.
Figure 13. The comparison of delete operation time cost.

7. Discussion

In this section, we analyze the advantages and disadvantages of schemes [18,19,43,51], as shown in Table 3. Σ o ϕ o ς [51], Zhang’s scheme [43], and Gao’s scheme [19] realize the dynamic update and searchability of data through constructing an inverted index. If the update file contains many keywords, the update efficiency is relatively low. None of the above four schemes involve key management securely. Σ o ϕ o ς [51] uses a one-way trap gate to realize forward security, but the calculation cost is high. Zhang’s scheme [43] is improved on the basis of Σ o ϕ o ς [51], using random states to achieve forward safety and improve efficiency. However, the correctness of the returned results is not verified; that is, the update reliability proposed in this scheme is not satisfied. Gao’s scheme [19] requires third-party TPA to verify the integrity of search results, which requires TPA to honestly implement the verification algorithm, which requires a trap gate, data block number, RAL, and authenticator to perform related calculations, which is relatively complex. Both Ge’s scheme [18] and our scheme used a bitmap to construct the security index, which has high updating efficiency. However, the accumulated authentication tags (AATs) in Ge’s scheme [18] contain ciphertext data blocks, which consume additional storage resources. In our scheme, the verification process does not involve complex operations, and the verification information is simple, which makes the verification efficiency high, but the scheme also needs to consume communication resources once more. In conclusion, compared with the above schemes, our scheme is relatively efficient in the process of searching, updating, and verifying.
Table 3. Advantages and disadvantages.

8. Conclusions

In this paper, we first studied the research status of the DSSE scheme and analyzed the advantages and disadvantages of different schemes. Since most schemes do not involve key management, we proposed a verifiable DSSE scheme based on the public key cryptosystem which can realize secure key management. In Section 3, we defined the security model, design goals, core algorithm, and security analysis of the V-PDSSE scheme. In Section 4, we described the bitmap index and verification list construction of the scheme in detail and explained the core algorithm steps of the scheme. Finally, we compared the time complexity with schemes [18,19,43,51] to prove that the implementation efficiency of our scheme is high. In Section 5, a security analysis was carried out on the reliability and verifiability of our scheme to prove that our scheme meets the security requirements. In Section 6, we tested the efficiency of the core algorithms and compared the efficiency of scheme [54] in security index construction, verification list construction, searching, search result verification, and updating. The results show that our scheme has high efficiency and strong feasibility. In Section 7, we analyzed the advantages and disadvantages of schemes [18,19,43,51].
Compared with previous schemes, the functional design of this scheme is more comprehensive. The verification process does not involve complex operations, the verification information structure is simple, and the execution efficiency is high. Our scheme can solve the problems of dynamic searchability, forward security, integrity, and correct verification of search results and key management well. In future work, given the rapid development of quantum computers and verifiable DSSE schemes, how to deal with quantum attacks effectively will become a key direction of our research.

Author Contributions

Writing—original draft preparation, G.D.; writing—review and editing, S.L. All authors have read and agreed to the published version of the manuscript.

Funding

This work is supported by the Natural Science Foundation of Ningxia (No. 2021AAC03068) and the Key R&D Program of Ningxia (No. 2021BEG03071).

Data Availability Statement

Not applicable.

Acknowledgments

The authors would like to thank the editor and the anonymous reviewers for their valuable comments and suggestions that improved the quality of this paper.

Conflicts of Interest

The authors declare no conflict of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript; or in the decision to publish the results.

References

  1. Xu, L.; Xu, C.G.; Liu, Z.Y.; Wang, Y.L.; Wang, J.F. Enabling comparable search over encrypted data for IoT with privacy-preserving. Comput. Mater. Contin. 2019, 60, 675–690. [Google Scholar] [CrossRef] [Scilit]
  2. Song, D.X.; Wagner, D.; Perrig, A. Practical techniques for searches on encrypted data. In Proceedings of the 2000 IEEE Symposium on Security and Privacy, Berkeley, CA, USA, 14–17 May 2000; pp. 44–55. [Google Scholar]
  3. Islam, M.S.; Kuzu, M.; Kantarcioglu, M. Access Pattern Disclosure on Searchable Encryption: Ramification, Attack and Mitigation; Proc.NDSS: New York, NY, USA, 2012; pp. 1–15. [Google Scholar]
  4. Zhang, Y.P.; Katz, J.; Papamanthou, C. All your queries are belong to us: The power of file-injection attacks on searchable encryption. IACR Cryptol. Eprint Arch. 2016, 172, 707–720. [Google Scholar]
  5. Cash, D.; Grubbs, P.; Perry, J.; Ristenpart, T. Leakage-abuse attacks against searchable encryption. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security (CCS’15), Denver, CO, USA, 12–16 October 2015; pp. 668–679. [Google Scholar]
  6. Kamara, S.; Papamanthou, C.; Roeder, T. Dynamic searchable symmetric encryption. In Proceedings of the ACM Conference on Computer and Communications Security (CCS 2012), Raleigh, NC, USA, 16–18 October 2012; pp. 965–976. [Google Scholar]
  7. Kamara, S.; Papamanthou, C. Parallel and dynamic searchable symmetric encryption. In Proceedings of the 17th International Conference on Financial Cryptography and Data Security (FC 2013), Okinawa, Japan, 1–5 April 2013; Sadeghi, A.-R., Ed.; Springer: Berlin/Heidelberg, Germany, 2013; pp. 258–274. [Google Scholar]
  8. Guo, C.; Chen, X.; Jie, Y.M.; Fu, Z.J.; Li, M.C.; Feng, B. Dynamic multi-phrase ranked search over encrypted data with symmetric searchable encryption. IEEE Trans. Serv. Comput. 2017, 13, 1034–1044. [Google Scholar] [CrossRef] [Scilit]
  9. Xia, Z.H.; Wang, X.H.; Sun, X.M.; Wang, Q. A secure and dynamic multi-keyword ranked search scheme over encrypted cloud data. IEEE Trans. Parallel Distrib. Syst. 2016, 27, 340–352. [Google Scholar] [CrossRef] [Scilit]
  10. Liu, Q.; Nie, X.H.; Liu, X.H.; Peng, T.; Wu, J. Verifiable ranked search over dynamic encrypted data in cloud computing. In Proceedings of the 2017 IEEE/ACM 25th International Symposium on Quality of Service (IWQoS), Vilanova i la Geltrú, Spain, 14–16 June 2017; pp. 1–6. [Google Scholar]
  11. Nie, X.H.; Liu, Q.; Liu, X.H.; Peng, T.; Lin, Y.P. Dynamic verifiable search over encrypted data in untrusted clouds. In Algorithms and Architectures for Parallel Processing; Springer: Cham, Switzerland, 2016; pp. 557–571. [Google Scholar]
  12. Zhu, X.Y.; Liu, Q.; Wang, G.J. A novel verifiable and dynamic fuzzy keyword search scheme over encrypted data in cloud computing. In Proceedings of the 2016 IEEE Trustcom/BigDataSE/ISPA, Tianjin, China, 23–26 August 2016; pp. 845–851. [Google Scholar]
  13. Liu, Q.; Tian, Y.; Wu, J.; Peng, T.; Wang, G. Enabling verifiable and dynamic ranked search over outsourced data. IEEE Trans. Serv. Comput. 2022, 15, 69–82. [Google Scholar] [CrossRef] [Scilit]
  14. Jiang, X.X.; Yu, J.; Yan, J.B.; Hao, R. Enabling efficient and verifiable multi-keyword ranked search over encrypted cloud data. Inf. Sci. 2017, 403–404, 22–41. [Google Scholar] [CrossRef] [Scilit]
  15. Chen, F.; Xiang, T.; Fu, X.W.; Yu, W. User differentiated verifiable file search on the cloud. IEEE Trans. Serv. Comput. 2018, 11, 948–961. [Google Scholar] [CrossRef]
  16. Wan, Z.G.; Deng, R.H. VPSearch: Achieving verifiability for privacy preserving multi-keyword search over encrypted cloud data. IEEE Trans. Depend. Sec. Comput. 2018, 15, 1083–1095. [Google Scholar] [CrossRef] [Scilit]
  17. Kurosawa, K.; Ohtaki, Y. How to update documents verifiably in searchable symmetric encryption. In Cryptology and Network Security; Springer: Cham, Switzerland, 2013; pp. 309–328. [Google Scholar]
  18. Ge, X.; Yu, J.; Zhang, H.; Hu, C.; Li, Z.; Qin, Z.; Hao, R. Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification. IEEE Trans. Dependable Secur. Comput. 2021, 18, 490–504. [Google Scholar] [CrossRef] [Scilit]
  19. Gao, X.; Yu, J.; Chang, Y.; Wang, H.; Fan, J. Checking only when it is necessary: Enabling integrity auditing based on the keyword with sensitive information privacy for encrypted cloud data. IEEE Trans. Dependable Secur. Comput. 2021, 19, 3774–3789. [Google Scholar] [CrossRef] [Scilit]
  20. Yu, J.; Ren, K.; Wang, C. Enabling cloud storage auditing with key-exposure resistance. IEEE Trans. Inf. Forensics Secur. 2015, 10, 1167–1179. [Google Scholar]
  21. Zhang, Y.; Yu, J.; Hao, R.; Wang, C.; Ren, K. Enabling efficient user revocation in identity-based cloud storage auditing for shared big data. IEEE Trans. Dependable Secur. Comput. 2018, 17, 608–619. [Google Scholar] [CrossRef] [Scilit]
  22. Shacham, H.; Waters, B. Compact Proofs of Retrievability. In Proceedings of the 14th Annual International Conference on the Theory and Application of Cryptology & Information Security, Melbourne, Australia, 7–11 December 2008; pp. 90–107. [Google Scholar]
  23. Miao, Y.B.; Ma, J.F.; Liu, X.M.; Li, X.H.; Jiang, Q.; Zhang, J.W. Attribute-based keyword search over hierarchical data in cloud computing. IEEE Trans. Serv. Comput. 2017, 13, 985–998. [Google Scholar] [CrossRef] [Scilit]
  24. Miao, Y.B.; Ma, J.F.; Liu, X.M.; Weng, J.; Li, H.W.; Li, H. Lightweight fine-grained search over encrypted data in fog computing. IEEE Trans. Serv. Comput. 2018, 12, 772–785. [Google Scholar] [CrossRef] [Scilit]
  25. Liu, X.; Yang, G.; Mu, Y.; Deng, R.H. Multi-user verifable searchable symmetric encryption for cloud storage. IEEE Trans. Dependable Secur. Comput. 2020, 17, 1322–1332. [Google Scholar] [CrossRef] [Scilit]
  26. Xu, P.; Wu, Q.; Wang, W.; Susilo, W.; Domingo-Ferrer, J.; Jin, H. Generating searchable public-key ciphertexts with hidden structures for fast keyword search. IEEE Trans. Inf. Forensics Secur. 2015, 10, 1993–2006. [Google Scholar]
  27. Fu, Z.J.; Xia, L.L.; Sun, X.M.; Liu, A.X.; Xie, G.W. Semantic aware searching over encrypted data for cloud computing. IEEE Trans. Inf. Forensics Secur. 2018, 13, 2359–2371. [Google Scholar] [CrossRef] [Scilit]
  28. Zhang, W.; Xiao, S.; Lin, Y.P.; Zhou, T.; Zhou, S.W. Secure ranked multi-keyword search for multiple data owners in cloud computing. In Proceedings of the 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, Atlanta, GA, USA, 23–26 June 2014; pp. 276–286. [Google Scholar]
  29. Fu, Z.J.; Sun, X.M.; Linge, N.; Zhou, L. Achieving effective cloud search services: Multi-keyword ranked search over encrypted cloud data supporting synonym query. IEEE Trans. Consum. Electron. 2014, 60, 164–172. [Google Scholar] [CrossRef] [Scilit]
  30. Naveed, M.; Prabhakaran, M.; Gunter, C.A. Dynamic searchable encryption via blind storage. In Proceedings of the 2014 IEEE Symposium on Security and Privacy, Berkeley, CA, USA, 18–21 May 2014; pp. 639–654. [Google Scholar]
  31. Zhang, R.; Xue, R.; Liu, L. Searchable encryption for healthcare clouds: A survey. IEEE Trans. Serv. Comput. 2018, 11, 978–996. [Google Scholar] [CrossRef] [Scilit]
  32. Xu, C.; Wang, N.; Zhu, L.; Sharif, K.; Zhang, C. Achieving searchable and privacy-preserving data sharing for cloud-assisted E-healthcare system. IEEE Internet Oftings J. 2019, 6, 8345–8356. [Google Scholar] [CrossRef] [Scilit]
  33. Emura, K.; Miyaji, A.; Omote, K. A timed-release proxy re-encryption scheme. IEICE-Trans. Fundam. Electron. Commun. Comput. Sci. 2011, E94-A, 1682–1695. [Google Scholar] [CrossRef] [Scilit]
  34. Yang, Y.; Ma, M. Conjunctive keyword search with designated tester and timing enabled proxy Re-encryption function for E-health clouds. IEEE Trans. Inf. Forensics Secur. 2016, 11, 746–759. [Google Scholar] [CrossRef] [Scilit]
  35. Watanabe, Y.; Shikata, J. Timed-release computational secret sharing and threshold encryption. Des. Codes Cryptogr. 2018, 86, 17–54. [Google Scholar] [CrossRef] [Scilit]
  36. Emura, K.; Hayashi, T.; Ishida, A. Group signatures with timebound keys revisited: A new model, an efcient construction, and its implementation. IEEE Trans. Dependable Secur. Comput. 2020, 17, 292–305. [Google Scholar] [CrossRef] [Scilit]
  37. Xu, P.; He, S.; Wang, W.; Susilo, W.; Jin, H. Lightweight searchable public-key encryption for cloud-assisted wireless sensor networks. IEEE Trans. Ind. Inform. 2018, 14, 3712–3723. [Google Scholar] [CrossRef] [Scilit]
  38. Xiong, H.; Wang, Y.; Li, W.; Chen, C.M. Flexible, efficient, and secure access delegation in cloud computing. ACM Trans. Manag. Inf. Syst. (TMIS) 2019, 10, 2. [Google Scholar] [CrossRef] [Scilit]
  39. Miao, Y.; Tong, Q.; Deng, R.H.; Choo, K.K.R.; Liu, X.; Li, H. Verifiable searchable encryption framework against insider keyword-guessing attack in cloud storage. IEEE Trans. Cloud Comput. 2020, 10, 835–848. [Google Scholar] [CrossRef] [Scilit]
  40. Wu, D.N.; Gan, Q.Q.; Wang, X.M. Verifiable public key encryption with keyword search based on homomorphic encryption in multi-user setting. IEEE Access 2018, 6, 42445–42453. [Google Scholar] [CrossRef] [Scilit]
  41. Chai, Q.; Gong, G. Verifiable symmetric searchable encryption for semi-honest-but-curious cloud servers. In Proceedings of the 2012 IEEE International Conference on Communications (ICC), Ottawa, ON, Canada, 10–15 June 2012; pp. 917–922. [Google Scholar]
  42. Yang, L.; Zheng, Q.; Fan, X. Rspp: A reliable, searchable and privacy-preserving e-healthcare system for cloud-assisted body area networks. In Proceedings of the IEEE INFOCOM 2017-IEEE Conference on Computer Communications, Atlanta, GA, USA, 1–4 May 2017; pp. 1–9. [Google Scholar]
  43. Zhang, Z.; Wang, J.; Wang, Y.; Su, Y.; Chen, X. Towards efficient verifiable forward secure searchable symmetric encryption. In Computer Security-ESORICS 2019; Springer International Publishing: Cham, Switzerland, 2019; Volume 11736, pp. 304–321. [Google Scholar]
  44. Deepa, N.; Perumal, P. Hybrid context aware recommendation system for e-health care by merkle hash tree from cloud using evolutionary algorithm. Soft. Comput. 2020, 24, 7149–7161. [Google Scholar] [CrossRef] [Scilit]
  45. Zhu, J.; Li, Q.; Wang, C.; Yuan, X.; Wang, Q.; Ren, K. Enabling generic, verifiable, and secure data search in cloud services. IEEE Trans. Parallel Distrib. Syst. 2018, 29, 1721–1735. [Google Scholar] [CrossRef] [Scilit]
  46. Chen, C.; Zhu, X.; Shen, P.; Hu, J.; Guo, S.; Tari, Z.; Zomaya, A.Y. An efficient privacy-preserving ranked keyword search method. IEEE Trans. Parallel Distrib. Syst. 2015, 27, 951–963. [Google Scholar] [CrossRef] [Scilit]
  47. Cheng, H.; Wang, H.; Liu, X.; Fang, Y.; Wang, M.; Zhang, X. Person re-identification over encrypted outsourced surveillance videos. IEEE Trans. Dependable Secur. Comput. 2019, 18, 1456–1473. [Google Scholar] [CrossRef] [Scilit]
  48. Guo, Y.; Zhang, C.; Jia, X. Verifiable and forward-secure encrypted search using blockchain techniques. In Proceedings of the 2020 IEEE International Conference on Communications (ICC), Dublin, Ireland, 7–11 June 2020; pp. 1–7. [Google Scholar]
  49. Wang, Q.; He, M.; Du, M.; Chow, S.; Lai, R.; Zou, Q. Searchable encryption over feature-rich data. IEEE Trans. Depend. Sec. Comput. 2018, 15, 496–510. [Google Scholar] [CrossRef] [Scilit]
  50. Du, M.; Wang, Q.; He, M.; Weng, J. Privacy-preserving index-ing and query processing for secure dynamic cloud storage. IEEE Trans. Inf. Forensics Secur. 2018, 13, 2320–2332. [Google Scholar] [CrossRef] [Scilit]
  51. Bost, R. Σoϕoς: Forward secure searchable encryption. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS 2016), Vienna, Austria, 24–28 October 2016; Weippl, E.R., Katzenbeisser, S., Kruegel, C., Myers, A.C., Halevi, S., Eds.; ACM: New York, NY, USA, 2016; pp. 1143–1154. [Google Scholar]
  52. Cao, N.; Wang, C.; Li, M.; Ren, K.; Lou, W. Privacy-preserving multi-keyword ranked search over encrypted cloud data. IEEE Trans. Parallel Distrib. Syst. 2014, 25, 222–233. [Google Scholar] [CrossRef] [Scilit]
  53. Li, J.; Huang, Y.; Wei, Y.; Lv, S.; Liu, Z.; Dong, C.; Lou, W. Searchable Symmetric Encryption with Forward Search Privacy. IEEE Trans. Dependable Secur. Comput. 2021, 18, 464–465. [Google Scholar] [CrossRef] [Scilit]
  54. Sun, W.H.; Liu, X.F.; Hou, W.J.L.Y.T.; Li, H. Catch you if you lie to me: Efficient verifiable conjunctive keyword search over large dynamic encrypted cloud data. In Proceedings of the 2015 IEEE Conference on Computer Communications (INFOCOM), Hong Kong, China, 26 April–1 May 2015; pp. 2110–2118. [Google Scholar]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.