Indexing method and retrieval method for encrypted cloud storage, encryption and decryption method

By using encrypted cloud storage indexing and retrieval methods, the problem of data privacy and security in cloud storage is solved, enabling secure data storage and retrieval with forward and backward security to prevent data leakage.

CN113918964BActive Publication Date: 2026-04-10BEIHANG UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
BEIHANG UNIV
Filing Date
2021-09-14
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

Data privacy and security are difficult to guarantee reliably in cloud storage, especially after data is migrated to the cloud, the problem of data exposure has not been effectively resolved.

Method used

An indexing and retrieval method using encrypted cloud storage is adopted. By preprocessing cloud storage data to generate a set of keyword-file identifier pairs, the index data is updated using encryption tokens, and secure storage and retrieval of encrypted data are achieved in a searchable encrypted cloud storage system.

Benefits of technology

It enables secure encryption and indexing of data in cloud storage, ensuring data privacy is not compromised. It also features forward and backward security to prevent the association of old and new index entries and the leakage of information about deleted files.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113918964B_ABST
    Figure CN113918964B_ABST
Patent Text Reader

Abstract

The application provides an index method and retrieval method for encrypted cloud storage, an encryption and decryption method, an index and retrieval device and an electronic device. The index method is used in a searchable encrypted cloud storage system, and the searchable encrypted cloud storage system comprises a client and a cloud storage end. The searchable encryption method is used for the client. The index method comprises the following steps: preprocessing cloud storage data to obtain a keyword-file identifier pair set of the cloud storage data; determining whether the keyword of a keyword-file identifier pair in the keyword-file identifier pair set is in a retrieval state; if yes, updating an index encryption token corresponding to the keyword-file identifier pair; generating index data corresponding to the keyword-file identifier pair by using the updated encryption token and the keyword-file identifier pair; encrypting the cloud storage data to generate ciphertext data; and sending the ciphertext data and the index data to the cloud storage end. According to the embodiment of the application, forward security and backward security are achieved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of network security of cloud data storage, in particular, to an index method and retrieval method for encrypting cloud storage, an encryption and decryption method, an index and retrieval device, and an electronic device. BACKGROUND

[0002] With the performance cost advantage of cloud storage and cloud computing becoming more and more obvious, more and more enterprises and individuals are migrating their businesses and data to the cloud, but whether the data privacy and security in cloud storage can be reliably protected has always been the most concerned problem of users. SUMMARY

[0003] The present application provides an index method and retrieval method for encrypting cloud storage, an encryption and decryption method, an index and retrieval device, and an electronic device, which solves the problem of exposure of cloud storage data information.

[0004] According to an aspect of the present application, an index method for encrypting cloud storage is provided, which is used in a searchable encrypted cloud storage system, the searchable encrypted cloud storage system includes a client and a cloud storage end, the searchable encryption method is used in the client, and the index method includes preprocessing cloud storage data to obtain a set of keyword-file identifier pairs of the cloud storage data; judging whether the keyword of the keyword-file identifier pair is in a retrieval state; if yes, updating an index encryption token corresponding to the keyword-file identifier pair; generating index data corresponding to the keyword-file identifier pair by using the updated encryption token and the keyword-file identifier pair; encrypting the cloud storage data to generate ciphertext data; and sending the ciphertext data and the index data to the cloud storage end.

[0005] According to some embodiments, before judging whether the keyword is in the retrieval state, the index method further includes initializing a keyword counter.

[0006] According to some embodiments, the index encryption token is stored in a keyword state table, the keyword state table includes a key-value structure, the key of the key-value structure is a keyword, and the value of the key-value structure includes a last operation state, a keyword update counter, a keyword zeroth index encryption token, and a keyword first index encryption token, and the keyword state includes an update state and a retrieval state.

[0007] According to some embodiments, the updating the index encryption token corresponding to the keyword-file identifier pair comprises updating the keyword state corresponding to the keyword to the update state; updating the keyword update counter corresponding to the keyword to the keyword update counter initial value; generating the keyword sub-key of the keyword; generating a temporary index encryption token using the keyword sub-key and the keyword first index encryption token corresponding to the keyword; updating the keyword zeroth index encryption token corresponding to the keyword to the keyword first index encryption token corresponding to the keyword; and updating the keyword first index encryption token corresponding to the keyword to the temporary index encryption token.

[0008] According to some embodiments, the indexing method further comprises setting the keyword state corresponding to the keyword to the update state if the keyword is not included in the keyword state table; setting the keyword update counter corresponding to the keyword to the keyword update counter initial value; generating the keyword first index encryption token of the keyword using the keyword; and setting the keyword zeroth index encryption token corresponding to the keyword to be of the same length as the keyword first index encryption token of the keyword and each bit of the keyword zeroth index encryption token is 1 or 0.

[0009] According to some embodiments, the indexing method further comprises incrementing the keyword update counter corresponding to the keyword if the keyword is in the update state.

[0010] According to some embodiments, the index data comprises forward index data and reverse index data, the forward index data is stored in the forward index table, and the reverse index data is stored in the reverse index table.

[0011] According to some embodiments, the generating the index data corresponding to the keyword-file identifier pair using the updated encryption token and the keyword-file identifier pair comprises generating a keyword sub-key and a file identifier sub-key using the keyword-file identifier pair; generating a key of the forward index table corresponding to the keyword-file identifier pair using the file identifier sub-key and the keyword counter corresponding to the keyword-file identifier pair; generating a key of the inverse index table corresponding to the keyword-file identifier pair using the keyword first index encryption token corresponding to the keyword and the keyword update counter; generating a value of the inverse index table using the file identifier in the keyword-file identifier pair, the key of the forward index table corresponding to the keyword-file identifier pair, the keyword first index encryption token corresponding to the keyword and the keyword update counter; generating a value of the forward index table using the key of the inverse index table corresponding to the keyword-file identifier pair, the file identifier sub-key and the keyword counter corresponding to the keyword-file identifier pair; and incrementing the keyword counter.

[0012] According to some embodiments, the indexing method further comprises obtaining a search keyword; generating a search token of the search keyword; sending the search token to the cloud storage end; and receiving, from the cloud storage end, ciphertext data corresponding to the search token.

[0013] According to some embodiments, the generating the search token of the search keyword comprises generating the search token using the keyword update counter, the keyword zeroth index encryption token and the keyword first index encryption token corresponding to the search keyword in the keyword state table.

[0014] According to some embodiments, after generating the search token of the search keyword, the method further comprises updating the keyword state corresponding to the search keyword in the keyword state table to the search state.

[0015] According to some embodiments, the indexing method further comprises generating a deletion token and sending the deletion token to the cloud storage end.

[0016] According to some embodiments, the generating the deletion token and sending the deletion token to the cloud storage end comprises encrypting a file identifier in the keyword-file identifier pair as the deletion token, the deletion token being used to delete the ciphertext data and the index data corresponding to the file identifier.

[0017] According to an aspect of the present application, a retrieval method for encrypted cloud storage is provided, which is used in a searchable encrypted cloud storage system including a client and a cloud storage end, and is used in the cloud storage end including an inverted index table, and includes receiving a search token sent from the client; calculating a plurality of inverted retrieval keys of the inverted index table using the search token; calculating a file identifier set using a plurality of the inverted retrieval keys and the inverted index table; obtaining ciphertext data corresponding to the search token using the file identifier set; and sending the ciphertext data to the client.

[0018] According to some embodiments, the search token includes a keyword update counter, a keyword zeroth index encryption token, and a keyword first index encryption token.

[0019] According to some embodiments, the calculating a plurality of inverted retrieval keys of the inverted index table using the search token includes calculating a plurality of the inverted retrieval keys of the inverted index table using the search token, and updating the inverted index table; setting an end token with the same number of bits as the keyword zeroth index encryption token, and with each bit having a value of 1 or 0; if the keyword zeroth index encryption token and the end token are not the same, updating the keyword update counter, the keyword zeroth index encryption token, and the keyword first index encryption token; and repeating the above operations until the keyword zeroth index encryption token and the end token are the same.

[0020] According to some embodiments, the calculating a plurality of the inverted retrieval keys of the inverted index table using the search token and updating the inverted index table includes generating a search token retrieval key and a search token retrieval value of the inverted index table using the search token; if the inverted index table does not have a value corresponding to the search token retrieval key, storing the search token retrieval key and the search token retrieval value in the inverted index table; setting a retrieval counter to a retrieval counter initial value; cyclically calculating the inverted retrieval keys of the inverted index table corresponding to the search token using the keyword update counter and the keyword first index encryption token; in each cycle, if the inverted index table has an inverted retrieval value corresponding to the inverted retrieval key, incrementing the retrieval counter, and if the incremented retrieval counter and the current cycle number are not the same, updating the inverted index table using the incremented retrieval counter, the keyword first index encryption token, and the inverted index key; and after the cycle is completed, if the incremented retrieval counter and the keyword update counter are not the same, updating the search token retrieval value in the inverted index table using the incremented retrieval counter, the keyword zeroth index encryption token, and the keyword first index encryption token.

[0021] According to some embodiments, the updating the search token updates the keyword first index encryption token in the search token to the keyword zeroth index encryption token in the search token; the updating the search token retrieval key uses the updated keyword first index encryption token in the search token; and the updating the keyword zeroth index encryption token and the keyword update counter in the search token uses the updated keyword first index encryption token in the search token and the updated search token retrieval value.

[0022] According to some embodiments, the calculating the set of file identifiers using the plurality of reverse retrieval keys and the reverse index table includes, if there is a reverse retrieval value in the reverse index table corresponding to the reverse retrieval key, calculating a file identifier corresponding to the reverse retrieval key using the reverse retrieval value, the keyword first index encryption token corresponding to the reverse retrieval key, and the keyword update counter corresponding to the reverse retrieval key.

[0023] According to some embodiments, the cloud storage end further comprises a forward index table, and the retrieval method further comprises receiving the ciphertext data and index data sent by the cloud storage end, the index data comprising forward index data and reverse index data; storing the ciphertext data; updating the forward index table using the forward index data; and updating the reverse index table using the reverse index data.

[0024] According to some embodiments, the retrieval method further comprises receiving a deletion token sent by the client; initializing a deletion counter; deleting records in the forward index table and the reverse index table corresponding to the deletion token using the deletion token and the deletion counter; and deleting ciphertext data corresponding to the deletion token using the deletion token.

[0025] According to some embodiments, the deleting records in the forward index table and the reverse index table corresponding to the deletion token using the deletion token and the deletion counter comprises generating a forward index table deletion key of the forward index table using the deletion token and the deletion counter; if there is a forward index table deletion value in the forward index table corresponding to the forward index table deletion key, calculating a reverse index table deletion key of the reverse index table using the deletion token, the deletion counter, and the forward index table deletion value, deleting a record in the forward index table with the key being the forward index table deletion key, deleting a record in the reverse index table with the key being the reverse index table deletion key, deleting ciphertext data corresponding to the deletion token, incrementing the deletion counter, and repeating the above operations until there is no forward index table deletion value in the forward index table corresponding to the forward index table deletion key.

[0026] According to an aspect of the present application, an encryption method is provided, which comprises obtaining plaintext data and a keyword state table, the keyword state table comprising a key-value structure, the key being a keyword of the plaintext data, the value comprising a keyword state, a keyword update counter, a keyword zeroth index encryption token and a keyword first index encryption token, the keyword state comprising an update state and a search state; preprocessing the plaintext data into a set of keyword-file identifier pairs; initializing a keyword counter; traversing the keyword-file identifier pairs in the set of keyword-file identifier pairs, if the keyword in the keyword-file identifier pair in the set is not included in the keyword state table, setting the keyword state of the keyword as the update state, setting the keyword update counter of the keyword as a keyword update counter initial value, generating the keyword first index encryption token by the following formula: token = Enc wordkey (H0(R||keyword)), wordkey = F key (keyword), wherein H0 is a zeroth hash function, R is a pseudo-random number, keyword is a keyword, key is a master key, and F is a pseudo-random function; setting the keyword zeroth index encryption token of the keyword to have the same length as the keyword first index encryption token and each bit to have a value of 1 or 0, and storing the keyword and the keyword state, the keyword update counter, the keyword zeroth index encryption token and the keyword first index encryption token of the keyword in the keyword state table; if the keyword state corresponding to the keyword in the keyword state table is the update state, incrementing the keyword update counter corresponding to the keyword; if the keyword state corresponding to the keyword in the keyword state table is the search state, updating the keyword update counter corresponding to the keyword to the keyword update counter initial value, updating the value of the keyword zeroth index encryption token corresponding to the keyword to the value of the keyword first index encryption token corresponding to the keyword, and updating the keyword first index encryption token corresponding to the keyword by the following formula: token = Enc wordkey (token), wordkey = F key (keyword), wherein token is the keyword first index encryption token, Enc is a symmetric encryption algorithm, F is the pseudo-random function, key is the master key, and keyword is the keyword; generating an index table corresponding to the keyword-file identifier pair using the keyword-file identifier pair, the keyword counter and the keyword state table, and incrementing the keyword counter; and encrypting the plaintext data to generate ciphertext data.

[0027] According to some embodiments, the index table comprises a forward index table and a reverse index table, the generating an index table corresponding to the keyword-file identifier pair using the keyword counter and the keyword state table comprises calculating a file identifier sub-key in the keyword-file identifier pair by indkey = F key (ind), where ind is a file identifier in the keyword-file identifier pair, indkey is the sub-key of the file identifier, key is the master key, and F is the pseudo-random function; calculating a key of the forward index table by indlabel = H3(indkey, indcounter), where indlabel is the key of the forward index table corresponding to the keyword-file identifier pair, H3 is a third hash function, and indcounter is the keyword counter corresponding to the keyword-file identifier pair; calculating a key of the reverse index table corresponding to the keyword-file identifier pair by wordlabel = H1(token, updatecounter), where wordlabel is the key of the reverse index table corresponding to the keyword-file identifier pair, H1 is a first hash function, token is a keyword first index encryption token corresponding to the keyword in the keyword state table, and updatecounter is a keyword update counter corresponding to the keyword in the keyword state table; calculating a value of the forward index table corresponding to the keyword-file identifier pair by

[0028] ,

[0029] where addrdata is a value of the forward index table map1 corresponding to the keyword-file identifier pair, wordlabel is the key of the reverse index table corresponding to the keyword-file identifier pair, H4 is a fourth hash function, indkey is the file identifier sub-key in the keyword-file identifier pair, and indcounter is the keyword counter corresponding to the keyword-file identifier pair; calculating a value of the reverse index table corresponding to the keyword-file identifier pair by

[0030] ,

[0031] wherein data is a value of the inverse index table corresponding to the keyword-file identifier pair, ind is a file identifier in the keyword-file identifier pair, indlabel is a key of the forward index table corresponding to the keyword-file identifier pair, H2 is a second hash function, token is a keyword first index encryption token in the keyword state table corresponding to the keyword, updatecounter is a keyword update counter in the keyword state table corresponding to the keyword; and the keyword counter is incremented.

[0032] According to some embodiments, the encryption method further comprises updating the keyword state in the keyword state table corresponding to the keyword-file identifier pair to a retrieval state when retrieving the plaintext data using the keyword in the keyword-file identifier pair.

[0033] According to an aspect of the present application, a decryption method is provided, comprising obtaining a search token; calculating a plurality of inverse retrieval keys of an inverse index table using the search token; calculating a set of file identifiers using the plurality of inverse retrieval keys and the inverse index table; and obtaining ciphertext data corresponding to the search token using the set of file identifiers.

[0034] According to some embodiments, the search token comprises a keyword update counter, a keyword zeroth index encryption token and a keyword first index encryption token, and the calculating a plurality of inverse retrieval keys of an inverse index table using the search token comprises calculating the plurality of inverse retrieval keys of the inverse index table using the search token and updating the inverse index table; setting an end token having the same number of bits as the keyword zeroth index encryption token, and each bit having a value of 1 or 0; if the keyword zeroth index encryption token and the end token are not the same, updating the keyword update counter, the keyword zeroth index encryption token and the keyword first index encryption token; and repeating the above operations until the keyword zeroth index encryption token and the end token are the same.

[0035] According to some embodiments, the calculating the plurality of inverse retrieval keys of the inverse index table using the search token and updating the inverse index table comprises calculating a search token retrieval key and a search token retrieval value of the inverse index table using the search token by the following formula,

[0036] ,

[0037] wherein token is a first index encrypted token of a keyword in a search token, H1 is a hash function, wordlabel0 is a search token search key, updatecounter is a keyword update counter in a search token, pretoken is a zeroth index encrypted token of a keyword in a search token, token is a first index encrypted token of a keyword in a search token, data0 is a search token search value; if the reverse index table does not have a value corresponding to the search token search key, the search token search key and the search token search value are stored in the reverse index table; a search counter is initialized; the reverse search key of the reverse index table corresponding to the search token is calculated by using the keyword update counter and the first index encrypted token of the keyword according to the following formula: wordlabel i = H1(token, i), i = 1, 2, 3, …, updatecounter, wherein H1 is a first hash function, updatecounter is a keyword update counter in a search token, token is a first index encrypted token of a keyword in a search token, i is a loop number, and wordlabel i is the reverse search key corresponding to the current loop number i; if the reverse index table has a reverse search value corresponding to the reverse search key, the search counter is incremented; if the search counter after incrementing is not equal to the current loop number, the reverse index table is updated by using the search counter after incrementing, the first index encrypted token of the keyword and the reverse index key; if the search counter after incrementing ends is not equal to the keyword update counter, the search token search value in the reverse index table is updated by using the search counter after incrementing ends, the zeroth index encrypted token of the keyword and the first index encrypted token of the keyword according to the following formula:

[0038] ,

[0039] wherein data0 is a search token search value, pretoken is a zeroth index encrypted token of a keyword in a search token, token is a first index encrypted token of a keyword in a search token, and newcounter is the updated search counter.

[0040] According to some embodiments, the updating the keyword first index encryption token in the search token to the keyword zeroth index encryption token in the search token comprises: updating the keyword first index encryption token in the search token to the keyword zeroth index encryption token in the search token; updating the search token retrieval key with the updated keyword first index encryption token in the search token; and updating the keyword zeroth index encryption token and the keyword update counter in the search token with the updated keyword first index encryption token in the search token and the updated search token retrieval value.

[0041] According to some embodiments, the calculating the set of file identifiers with the plurality of reverse retrieval keys and the reverse index table comprises: if there is a reverse retrieval value corresponding to the reverse retrieval key in the reverse index table, calculating a file identifier corresponding to the reverse retrieval key with the reverse retrieval value, the keyword first index encryption token corresponding to the reverse retrieval key, and the keyword update counter corresponding to the reverse retrieval key.

[0042] According to some embodiments, the decryption method further comprises: obtaining a deletion token; initializing a deletion counter; deleting records corresponding to the deletion token in the forward index table and the reverse index table with the deletion token and the deletion counter; and deleting ciphertext data corresponding to the deletion token with the deletion token.

[0043] According to some embodiments, the deleting records corresponding to the deletion token in the forward index table and the reverse index table with the deletion token and the deletion counter comprises: generating a forward index table deletion key of the forward index table with the deletion token and the deletion counter according to the following formula: indlabel = H3(indkey, indcounter), where indlabel is the forward index table deletion key, indkey is the deletion token, indcounter is the deletion counter, and H3 is a third hash function; and if there is a forward index table deletion value corresponding to the forward index table deletion key in the forward index table, calculating a reverse index table deletion key of the reverse index table with the deletion token, the deletion counter, and the forward index table deletion value according to the following formula:

[0044] ,

[0045] where wordlabel is the reverse index table deletion key, Map fThe forward index table is deleted, the reverse index table is deleted, the ciphertext data corresponding to the deletion token is deleted, the deletion counter is incremented, and the above operations are repeatedly performed until there is no forward index table deletion value corresponding to the forward index table deletion key in the forward index table.

[0046] According to an aspect of the present application, an index device for encrypted cloud storage is provided, which is used in a searchable encrypted cloud storage system including a client and a cloud storage end, and is used in the client, and comprises a preprocessing cloud storage data unit configured to preprocess cloud storage data to obtain a keyword-file identifier pair set of the cloud storage data; a keyword state judging unit configured to judge whether a keyword of a keyword-file identifier pair in the keyword-file identifier pair set is in a search state; an encryption token updating unit configured to update an encryption token corresponding to the keyword-file identifier pair; an index data generating unit configured to generate index data corresponding to the keyword-file identifier pair by using the updated encryption token and the keyword-file identifier pair; a ciphertext data generating unit configured to encrypt the cloud storage data to generate ciphertext data; and a sending unit configured to send the ciphertext data and the index data to the cloud storage end.

[0047] According to an aspect of the present application, a search device for encrypted cloud storage is provided, which is used in a searchable encrypted cloud storage system including a client and a cloud storage end, and is used in the cloud storage end, and comprises a search token obtaining unit configured to receive a search token sent from the client; a reverse search key searching unit configured to calculate a plurality of reverse search keys of a reverse index table by using the search token; a file identifier calculating unit configured to calculate a file identifier set by using the plurality of reverse search keys and the reverse index table; a ciphertext data searching unit configured to obtain ciphertext data corresponding to the search token by using the file identifier set R; and a sending unit configured to send the ciphertext data to the client.

[0048] According to an aspect of the present application, an electronic device is provided, which comprises one or more processors; a storage device configured to store one or more programs; and when the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of the preceding aspects.

[0049] According to some embodiments of the present application, when uploading cloud storage data, if the keyword of the cloud storage data is a search state, a keyword sub-key is generated by using the keyword, and a new keyword index encryption token is generated, so that the server side cannot associate the newly added index item with the previous search keyword, and has forward security.

[0050] When deleting ciphertext data, the index table is used to realize real-time deletion of storage index and storage ciphertext data without affecting other storage index records in the index table, so that the deleted file does not leak any keyword information related to it, and has backward security. BRIEF DESCRIPTION OF DRAWINGS

[0051] The above and other objects, features and advantages of the present application will become more apparent from the following detailed description of example embodiments thereof taken in conjunction with the accompanying drawings.

[0052] Figure 1 A flowchart of an encryption method according to an example embodiment of the present application is shown.

[0053] Figure 2 A flowchart of a method of generating an index table by traversing a keyword-file identifier set according to an example embodiment of the present application is shown.

[0054] Figure 3 A flowchart of a decryption method according to an example embodiment of the present application is shown.

[0055] Figure 4 A flowchart of a method of calculating a plurality of reverse search keys of an inverse index table according to an example embodiment of the present application is shown.

[0056] Figure 5 A flowchart of a method of calculating a file identifier set according to an example embodiment of the present application is shown.

[0057] Figure 6 A flowchart of an index method for encrypting cloud storage according to an example embodiment of the present application is shown.

[0058] Figure 7 A flowchart of a search method for encrypting cloud storage according to an example embodiment of the present application is shown.

[0059] Figure 8 An index device for encrypting cloud storage according to an example embodiment of the present application is shown.

[0060] Figure 9 A search device for encrypting cloud storage according to an example embodiment of the present application is shown.

[0061] Figure 10Fig. 1 shows a schematic diagram of encryption and decryption according to an example embodiment of the present application. DETAILED DESCRIPTION

[0062] Figure 1 Fig. 1 shows a schematic diagram of encryption and decryption according to an example embodiment of the present application. Figure 1 Fig. 1 shows a schematic diagram of encryption and decryption according to an example embodiment of the present application.

[0063] In step S101, the plaintext data and the keyword state table are obtained, the keyword state table including a key-value structure, the key being a keyword of the plaintext data, and the value including a keyword state, a keyword update counter, a keyword zeroth index encryption token, and a keyword first index encryption token. The keyword state includes two state values, namely an update state and a search state.

[0064] In step S103, the plaintext data is preprocessed into a set of keyword-file identifier pairs.

[0065] The encryption operation on the plaintext data and the generation of the index data corresponding to the plaintext data are both based on the set of keyword-file identifier pairs of the plaintext data. The file identifier is used to find the plaintext data when decryption is performed.

[0066] In step S105, the index table is generated by traversing the keyword-file identifier pairs in the set of keyword-file identifier pairs.

[0067] According to some embodiments, before step S105 is performed, a security parameter λ is set, a master key key is selected, and a secure hash function H0 is set, which satisfies H0: {0, 1} λ , a file encryption key Enckey is set, which satisfies Enckey: {0, 1} λ , a first hash function H1 is set, which satisfies H1: {0, 1} x {0, 1} → {0, 1} λ , a second hash function H2 is set, which satisfies H2: {0, 1} x {0, 1} → {0, 1} 2λ , a third hash function H3 is set, which satisfies H3: {0, 1} x {0, 1} → {0, 1} 2λ , and a fourth hash function H4 is set, which satisfies H4: {0, 1} x {0, 1} → {0, 1} λ ​x {0, 1} → {0, 1} 2λ , set the pseudo-random number generation function F to satisfy {0, 1} λ x {0, 1} → {0, 1} λ It should be noted that the master key, the file encryption key, the zeroth hash function, the first hash function, the second hash function, the third hash function, and the fourth hash function, and the pseudo-random number generation function of other embodiments of the present application can adopt the scheme of the present example, and the other embodiments of the present application will not be described again.

[0068] Figure 2 A method flowchart for generating an index table by traversing a keyword-file identifier set according to an example embodiment of the present application is shown, that is, the specific execution content of step S105.

[0069] As shown in Figure 2 , in step S10501, a keyword counter is initialized.

[0070] The keyword counter is used to record the number of keyword-file identifier pairs in the keyword-file identifier pair set corresponding to the plaintext data. The initial value of the keyword counter includes 1. It should be noted that the initial value of the keyword counter is not limited to 1, and can also be other values, such as 2.

[0071] In step S10503, it is judged whether the keyword state table includes the keyword of the plaintext data obtained by preprocessing in step S103. If yes, step S10507 is executed; if not, step S10505 is executed.

[0072] If the keyword state table does not include the keyword of the plaintext data, step S10505 is executed to generate the value corresponding to the keyword in the keyword state table according to the keyword.

[0073] In step S10505, the keyword state is set to the update state, the keyword update counter is set to the keyword update counter initial value, the keyword first index encryption token is generated by formula (1), the keyword zeroth index encryption token is set to the same length as the keyword first index encryption token, and the value of each bit is 1 or 0. The keyword state corresponding to the keyword, the keyword update counter, the keyword zeroth index encryption token, and the keyword first index encryption token are combined into a keyword state quadruple. The keyword state quadruple is stored in the keyword state table as the keyword state value with the keyword as the key.

[0074] token = Enc wordkey (H0(R||keyword)), wordkey = F key(keyword) (1)

[0075] wherein token is the keyword first index encryption token, Enc is a symmetric encryption algorithm, keyword is the keyword, H0 is the zeroth hash function, R is a pseudo random number, wordkey is the keyword sub-key, key is the main key, and F is a pseudo random function.

[0076] The keyword update counter initial value includes 1. It should be noted that the keyword update counter initial value is not limited to 1, and can also be other values, such as 2.

[0077] If the keyword state table does not include the keyword of the plaintext data, it is necessary to determine whether the keyword state of the keyword in the keyword state table is a search state or an update state.

[0078] In step S10507, it is determined whether the state of the keyword in the keyword state table is an update state, and if it is an update state, step S10509 is executed; if it is not an update state, the state of the keyword is a search state, and step S10511 is executed.

[0079] In step S10509, if the keyword state in the keyword state table corresponding to the keyword is an update state, the keyword update counter in the keyword state table corresponding to the keyword is incremented.

[0080] The increment value of the keyword update counter includes 1. It should be noted that the increment value of the keyword update counter is not limited to 1, and can also be other values, such as 2.

[0081] If the keyword state in the keyword state table corresponding to the keyword is not an update state, step S10511 is executed. It has been described in step S101 that the keyword state in the keyword state value includes two state values of the search state and the update state. Therefore, the keyword state is a search state at this time.

[0082] In the case described in step S10511, the keyword update counter in the keyword state table corresponding to the keyword is updated to the aforementioned keyword update counter initial value, the value of the keyword zeroth index encryption token is updated to the value of the keyword first index encryption token, and the keyword first index encryption token is updated by formula (2).

[0083] token = Enc wordkey (token), wordkey = F key (keyword) (2)

[0084] wherein token is the keyword first index encryption token, Enc is a symmetric encryption algorithm, keyword is the keyword, H0 is the zeroth hash function, R is a pseudo random number, wordkey is the keyword sub-key, key is the main key, and F is a pseudo random function.

[0085] In step S10513, an index table corresponding to the keyword-file identifier pair is generated using the keyword-file identifier pair and the keyword state table.

[0086] According to some example embodiments of the present application, the index table in step S10513 includes a forward index table and a reverse index table, both of which include key-value structures.

[0087] In step S10513, the key of the forward index table is generated using formula (3).

[0088] indlabel = H3(indkey, indcounter), indkey = F key (ind) (3)

[0089] wherein indlabel is the key of the forward index table, H3 is a third hash function, indcounter is the keyword counter, ind is the file identifier in the keyword-file identifier pair, indkey is the sub-key of the file identifier, key is the master key, and F is a pseudo-random function.

[0090] The key of the reverse index table is calculated by formula (4).

[0091] wordlabel = H1(token, updatecounter) (4)

[0092] wherein wordlabel is the key of the reverse index table, H1 is a first hash function, token is the keyword first index encryption token in the keyword state table corresponding to the keyword, and updatecounter is the keyword update counter in the keyword state table corresponding to the keyword.

[0093] The value of the forward index table corresponding to the keyword-file identifier pair is calculated by formula (5).

[0094] (5)

[0095] wherein addrdata is the value of the forward index table corresponding to the keyword-file identifier pair, wordlabel is the key of the reverse index table corresponding to the keyword-file identifier pair, H4 is a fourth hash function, indkey is the sub-key of the file identifier in the keyword-file identifier pair, and indcounter is the keyword counter.

[0096] The value of the reverse index table corresponding to the keyword-file identifier pair is calculated by formula (6).

[0097] (6)

[0098] Wherein, data is the value of the inverse index table corresponding to the keyword-file identifier pair, ind is the file identifier in the keyword-file identifier pair, indlabel is the key of the forward index table corresponding to the keyword-file identifier pair, H2 is the second hash function, token is the keyword first index encryption token corresponding to the keyword in the keyword status table, and updatecounter is the keyword update counter corresponding to the keyword in the keyword status table.

[0099] In step S10515, the keyword counter is incremented.

[0100] The keyword counter increment value includes 1. It should be noted that the keyword counter increment value is not limited to 1; it can also be other values, such as 2.

[0101] In step S117, the plaintext data is encrypted to generate ciphertext data.

[0102] According to some embodiments, plaintext data and its corresponding hash digest are symmetrically encrypted using a file encryption key to generate ciphertext data of the plaintext data.

[0103] According to some embodiments, in Figure 1 In the encryption method shown, if the keyword in the keyword-file identifier pair is in the search state, then the keyword state in the keyword state table corresponding to the aforementioned keyword-file identifier pair is updated to the search state.

[0104] use Figure 1 The encryption method described above generates a new keyword index encryption token using the keyword subkey and keyword status table when generating the index table. This prevents new index data items from being associated with the old index encryption token, thus providing forward security.

[0105] Figure 3 This diagram illustrates a decryption method flowchart according to an example embodiment of this application, the decryption method being... Figure 1 The encryption method shown corresponds to the one used to obtain the corresponding encryption method. Figure 1 The corresponding ciphertext file of the plaintext data. See below for reference. Figure 3 This application provides a detailed description of a decryption method according to an example embodiment.

[0106] In step S301, a search token is obtained.

[0107] According to some example embodiments of this application, the search token includes a keyword update counter, a keyword zero-index encryption token, and a keyword first-index encryption token.

[0108] In step S303, multiple reverse retrieval keys for the reverse index table are calculated using the search token.

[0109] Figure 4 A flowchart illustrating a method for calculating multiple reverse retrieval keys in a reverse index table according to an example embodiment of this application is shown.

[0110] like Figure 4 As shown, in step S30301, the search token retrieval key and search token retrieval value of the reverse index table are calculated using formula (7) with the search token.

[0111] wordlabel0=H1(token,0)(7)

[0112] Where token is the keyword first index encryption token in the search token, H1 is the hash function, and wordlabel0 is the search token retrieval key.

[0113] In step S30303, determine Map b Is (wordlabel0) empty? Where Map b for Figure 1 The inverse index table calculated in the Map. b Whether (wordlabel0) is empty is to determine whether a search token retrieval value with wordlabel0 as the key exists in the reverse index table.

[0114] In step S30305, if Map b (wordlabel0) is empty, and the search token retrieval value is calculated using formula (8).

[0115] (8)

[0116] Where updatecounter is the keyword update counter in the search token, pretoken is the keyword zero-index encryption token in the search token, token is the keyword first-index encryption token in the search token, and data0 is the search token retrieval value.

[0117] After data0 is calculated, it is stored in the inverted index table Map with wordlabel0 as the key and data0 as the value. b middle.

[0118] In step S30307, ​​the initial value of the retrieval counter is set to the initial value of the retrieval counter.

[0119] The initial value of the search counter includes 1. It should be noted that the initial value of the search counter is not limited to 1; it can also be other values, such as 2. It is important to note that the initial value of the search counter needs to be consistent with...Figure 1 The initial value of the keyword update counter used in the encryption method shown in

[0120] In step S30309, the keyword update counter in the search token and the keyword first index encryption token are used to calculate the multiple index positions of the reverse index table, i.e. the reverse search key wordlabel i .

[0121] wordlabel i =H1(token, i), i=1, 2, 3, …, updatecounter (9)

[0122] where H1 is the first hash function, updatecounter is the keyword update counter in the search token, and token is the keyword first index encryption token in the search token.

[0123] After wordlabel i is calculated, if there is a value with wordlabel i as the key in the reverse index table, newcounter is incremented.

[0124] The increment value of the search counter includes 1, but the initial value of the search counter is not limited to 1, and can be other values. It should be noted that the increment value of the search counter needs to be consistent with the increment value of the keyword update counter used in the encryption method shown in Figure 1 .

[0125] After all i values are traversed in step S30309, step S30311 is executed.

[0126] In step S30311, it is judged whether the incremented search counter and the keyword update counter in the search token are equal. If not, the search token search value in the reverse index table is updated through formula (10) in step S30313.

[0127] (10)

[0128] where pretext is the keyword zeroth index encryption token in the search token, token is the keyword first index encryption token in the search token, newcounter is the search counter, and Map b (wordlabel0) is the search token search value in the reverse index table corresponding to the search token search key.

[0129] In step S30315, it is determined whether the keyword zeroth index encryption token in the search token is identical to the end token, wherein the end token is identical to the keyword zeroth index encryption token in the search token and each bit is either 1 or 0.

[0130] It is noted that the end token selects 1 or 0 needs to be consistent with the keyword zeroth index encryption token in Figure 1 .

[0131] If the keyword zeroth index encryption token in the search token is identical to the end token, step S30319 is performed to end the calculation of the reverse search key. Otherwise, step S30317 is performed.

[0132] In step S30317, the search token is updated.

[0133] According to some embodiments of the present application, the update of the search token is to update the keyword first index encryption token in the search token to the keyword zeroth index encryption token in the search token, to update the search token search key by using the updated keyword first index encryption token in the search token by formula (7). The keyword zeroth index encryption token and the keyword update counter in the search token are updated by using the updated keyword first index encryption token in the search token and the updated search token search value by formula (11).

[0134] (11)

[0135] wherein Map b is the reverse index table, pretoken is the updated keyword zeroth index encryption token, token is the keyword first index encryption token in the search token, H2 is the second hash function, and updatecounter is the keyword update counter in the search token.

[0136] After step S30317 is performed, step S30307 is performed again until the end condition in step S30315 is met, and the calculation of the reverse search key is ended.

[0137] In step S305, the file identifier set is calculated by using the plurality of reverse search keys and the reverse index table.

[0138] Figure 5 A flow chart of a method for calculating a file identifier set according to an example embodiment of the present application is shown. As shown in Figure 5 , the method for calculating a file identifier set is performed in each loop i value in step S30509 shown in Figure 4 , when there is a value with wordlabel i as the key in the reverse index table.

[0139] In step S30501, the wordlabel i is obtained using the reverse index table. i .

[0140] In step S30503, the file identifier is calculated using formula (12).

[0141] (12)

[0142] where ind is the file identifier, inlabel is the key of the forward index table calculated in step S30307, token is the first index encryption token of the keyword in the search token, H2 is the second hash function, and i is the value of the loop number of the search counter updated according to the keyword in the search token. Figure 1

[0143] It should be noted that before step S301 is performed, the file identifier set needs to be initialized, and the file identifier calculated in step S30503 is stored in the file identifier set.

[0144] In step S30507, it is determined whether the newcounter is equal to the current loop number value i after the newcounter is incremented in step S30309. If not, step S30507 is performed.

[0145] In step S30507, the wordlabel newcounter is calculated using formula (13).

[0146] wordlabel newcounter = H1(token, newcounter) (13)

[0147] where H1 is the first hash function, token is the first index encryption token of the keyword in the search token, and newcounter is the search counter corresponding to the current i.

[0148] In step S30509, the value of the key wordlabel newcounter in the reverse index table is updated using formula (14).

[0149] (14)

[0150] where Map b is the reverse index table, (ind || inlabel) is as shown in formula (12), token is the first index encryption token of the keyword in the search token, and H2 is the second hash function. ​

[0151] In step S30511, the key and the wordlabel calculated from the current i value are deleted from the reverse index table. i The corresponding value.

[0152] In step S307, the ciphertext data corresponding to the search token is obtained using the file identifier set.

[0153] In step S307, the ciphertext data is calculated from the file identifier and the correspondence of the ciphertext data.

[0154] According to some embodiments of the present application, Figure 3 The decryption method shown further includes obtaining a deletion token, initializing a deletion counter, deleting records corresponding to the deletion token in the forward index table and the reverse index table using the deletion token and the deletion counter, and deleting ciphertext data corresponding to the deletion token using the deletion token.

[0155] According to some embodiments, the records corresponding to the deletion token in the forward index table and the reverse index table are deleted using the deletion token and the deletion counter through steps D1-D9.

[0156] Step D1, the forward index table deletion key of the forward index table is generated using the deletion token and the deletion counter through formula (15).

[0157] indlabel = H3(indkey, indcounter) (15)

[0158] Wherein, indlabel is the forward index table deletion key, indkey is the deletion token, indcounter is the deletion counter, and H3 is the third hash function.

[0159] Step D3, if the forward index table deletion value corresponding to the forward index table deletion key exists in the forward index table, the reverse index table deletion key of the reverse index table is calculated using the deletion token, the deletion counter, and the forward index table deletion value through formula (16).

[0160] (16)

[0161] Wherein, wordlabel is the reverse index table deletion key, Mapf is the forward index table, indlabel is the forward index table deletion key, indkey is the deletion token, indcounter is the deletion counter, and H4 is the fourth hash function.

[0162] Step D5, the record with the key being the forward index table deletion key is deleted from the forward index table.

[0163] Step D7: Delete the record in the reverse index table whose key is the delete key of the reverse index table, and delete the ciphertext data corresponding to the delete token.

[0164] Step D9: Increment the deletion counter.

[0165] Repeat steps D1 to D9 until there is no longer a forward index table deletion value corresponding to the forward index table deletion key in the forward index table.

[0166] use Figure 3 The decryption method described herein is similar to... Figure 1 Corresponding to the encryption method shown, the encrypted data corresponding to the search token is retrieved using the search token. Furthermore, the overall index structure remains intact when a record is deleted, thus not affecting subsequent operations.

[0167] Reference Figure 1 and Figure 3 , Figure 10 This illustrates an intent for generating cryptographic tokens and index representations according to an example embodiment. Figure 10 As shown, token1, token2,…, token k For the generated keyword first index encryption token, Map f For the generated forward index table, Map b The generated reverse index table. Figure 10 The up arrow in the image points from token1 to token. k Direction indication based on Figure 1 The encryption process shown, Figure 10 The down arrow in the token k The direction pointing to token1 indicates according to Figure 3 The decryption process is shown.

[0168] Figure 6 An indexing method for encrypted cloud storage is illustrated according to an example embodiment of this application. Referring below... Figure 6 This application provides a detailed description of an indexing method for encrypted cloud storage based on an example embodiment.

[0169] Figure 6 The indexing method shown is used in searchable encrypted cloud storage systems that include both client-side and cloud storage endpoints. Figure 6 The searchable encryption method shown is used on the client side of the searchable encrypted cloud storage system.

[0170] According to some example embodiments, Figure 6 The indexing method shown is used for clients that can search encrypted cloud storage systems, including both client-side and cloud storage-side components.

[0171] In step S601, the cloud storage data is preprocessed to obtain a set of keyword-file identifier pairs of the cloud storage data. Wherein, the file identifier is used to find the cloud storage data when decryption.

[0172] In step S603, it is judged whether the keyword of the keyword-file identifier pair in the set of keyword-file identifier pairs is in the search state.

[0173] According to some embodiments, the index encryption token is stored in the keyword state table. The keyword state table includes a key-value structure, wherein the key of the key-value structure is the keyword, and the value of the key-value structure includes the last operation state, the keyword update counter, the keyword zeroth index encryption token, and the keyword first index encryption token. The keyword state includes the update state and the search state.

[0174] In step S605, if the keyword is in the search state, the index encryption token corresponding to the keyword-file identifier pair is updated.

[0175] According to some embodiments, updating the index encryption token corresponding to the keyword-file identifier pair includes updating the keyword state corresponding to the keyword in the keyword state table to the update state, updating the keyword update counter corresponding to the keyword in the keyword state table to the keyword update counter initial value, generating a keyword sub-key of the keyword, generating a temporary index encryption token using the keyword sub-key and the keyword first index encryption token corresponding to the keyword in the keyword state table, updating the keyword zeroth index encryption token corresponding to the keyword in the keyword state table to the keyword first index encryption token corresponding to the keyword in the keyword state table, and updating the keyword first index encryption token corresponding to the keyword in the keyword state table to the temporary index encryption token.

[0176] According to some embodiments, the keyword update counter initial value includes 1. However, the keyword update counter initial value is not limited to this, and can also be other values, such as 2. According to some embodiments, the temporary index encryption token is generated using formula (2).

[0177] According to some embodiments, if the keyword is in the update state, the keyword update counter corresponding to the keyword in the keyword state table is incremented.

[0178] According to some embodiments, the keyword update counter increment value includes 1, but the keyword update counter increment value is not limited to this, and can also be other values, such as 2.

[0179] According to some embodiments, if the keyword is not included in the keyword state table, the keyword state of the keyword is set as the update state, the keyword update counter of the keyword is set as the keyword update counter initial value, the keyword first index encryption token of the keyword is generated by using the keyword, the keyword zeroth index encryption token is set as the same length as the keyword first index encryption token and each bit is set as 1 or 0, the four-tuple of the keyword state of the keyword, the keyword update counter, the keyword first index encryption token and the keyword first index encryption token generated by using the keyword is used as the value of the keyword state table, and the keyword is stored in the keyword state table as the key.

[0180] According to some embodiments, the keyword first index encryption token is generated by formula (1).

[0181] According to some embodiments, for example, the keyword first index encryption token generated is 101110, and the keyword zeroth index encryption token corresponding thereto is 111111.

[0182] In step S607, the index data corresponding to the keyword-file identifier pair is generated by using the updated encryption token and the keyword-file identifier pair.

[0183] According to some embodiments, the client includes a client keyword index table, and the client keyword index table includes a forward index table and a reverse index table, wherein the forward index table and the reverse index table both include key-value structures.

[0184] According to some embodiments, the keyword counter is set as the file counter initial value before traversing the keyword-file identifier pair set, and the keyword counter is incremented after generating the index data each time.

[0185] The initial value of the keyword counter includes 1 and other numerical values. For the convenience of description and understanding, 1 is selected as the initial value of the keyword counter. Similarly, 1 is also selected as the increment value of the keyword counter.

[0186] According to some embodiments, the key of the forward index table is generated by formula (3).

[0187] According to some embodiments, the key of the reverse index table is calculated by formula (4).

[0188] According to some embodiments, the value of the forward index table corresponding to the keyword-file identifier pair is calculated by formula (5).

[0189] According to some embodiments, the value of the reverse index table corresponding to the keyword-file identifier pair is calculated by formula (6).

[0190] In step S609, the cloud storage data is encrypted to generate ciphertext data.

[0191] According to some embodiments, the cloud storage data and the corresponding hash digest are symmetrically encrypted by using the file encryption key to generate corresponding ciphertext data.

[0192] In step S611, the ciphertext data and the index data are sent to the cloud storage end.

[0193] According to some example embodiments of the present application, Figure 5 The index method shown further includes generating a search token of a search keyword, sending the search token to the cloud storage end, and receiving ciphertext data corresponding to the search token from the cloud storage end.

[0194] According to some embodiments, generating the search token includes obtaining the keyword update counter, the keyword zeroth index encryption token, and the keyword first index encryption token corresponding to the search keyword from the keyword state table to generate the search token.

[0195] According to some embodiments, after generating the search token of the search keyword, the keyword state corresponding to the search keyword in the keyword state table needs to be updated to the search state.

[0196] According to some embodiments, after receiving the ciphertext data, the client decrypts the ciphertext data by using the file encryption key to obtain the corresponding cloud storage data and verifies the hash digest.

[0197] According to some example embodiments of the present application, Figure 6 The index method shown further includes generating a deletion token and sending the deletion token to the cloud storage end.

[0198] According to some embodiments, the file identifier in the keyword-file identifier pair is encrypted as the deletion token by formula (17).

[0199] indkey = F key (ind) (17)

[0200] Wherein, ind is the file identifier in the keyword-file identifier pair, indkey is the sub-key of the file identifier, key is the master key, and F is a pseudo-random function.

[0201] According to Figure 6 According to the example embodiments shown, a new keyword index encryption token is generated by using the keyword sub-key, so that the cloud storage end cannot associate the newly added index item with the previous search keyword, and the cloud storage end cannot obtain the keyword state table by using Figure 6 The index method shown is an encryption method that meets the forward security.

[0202] Figure 7 A flowchart of a search method for encrypting cloud storage according to example embodiments of the present application is shown. The following refers to Figure 7A search method for encrypted cloud storage according to some example embodiments of the present application is described in detail.

[0203] Figure 7 The search method is used in a searchable encrypted cloud storage system including a client and a cloud storage side. Figure 7 The search method is used in the cloud storage side.

[0204] According to some example embodiments of the present application, the cloud storage side includes an inverted index table.

[0205] In step S701, a search token sent from the client is received.

[0206] According to some example embodiments of the present application, the search token includes a keyword update counter, a keyword zeroth index encryption token and a keyword first index encryption token.

[0207] In step S703, a plurality of inverted search keys of the inverted index table are calculated using the search token.

[0208] According to some embodiments, the plurality of inverted search keys of the inverted index table are calculated using the keyword update counter and the keyword first index encryption token in the search token, and the inverted index table is updated, an end token is set to be the same number of bits as the keyword zeroth index encryption token, and each bit has a value of 1 or 0, if the keyword zeroth index encryption token and the end token are not the same, the search token is updated, and the plurality of inverted search keys are continued to be calculated using the updated search token, and if the keyword zeroth index encryption token and the end token are the same, the search is terminated.

[0209] According to some embodiments, the plurality of inverted search keys of the inverted index table are calculated using the keyword update counter and the keyword first index encryption token in the search token by steps S70301-S70311.

[0210] In step S70301, a search token search key and a search token search value of the inverted index table are generated using the search token, and the search token search key and the search token search value are stored in the inverted index table.

[0211] According to some embodiments, the search token search key is calculated by formula (7).

[0212] If there is no value corresponding to wordlabel0 in the inverted index table, the search token search value is calculated by formula (8).

[0213] After the search token search value is calculated, wordlabel0 is stored as the key and data0 is stored as the value in the inverted index table.

[0214] In step S70303, a search counter is set to be a search counter initial value.

[0215] It should be noted that the initial value of the search counter needs to be consistent with the initial value of the keyword update counter in Figure 5 .

[0216] Step S70305, using the keyword update counter and the keyword first index encryption token, the inverse search key of the inverse index table corresponding to the search token is calculated by formula (9) in a loop.

[0217] Step S70307, in each loop, that is, at each i value, if the inverse search value corresponding to the inverse search key exists in the inverse index table, the search counter is incremented.

[0218] Step S70309, if the incremented search counter and the current loop number are not equal, the inverse index table is updated using the incremented search counter, the keyword first index encryption token and the inverse index key.

[0219] According to some embodiments, step S70309 includes updating the inverse index table using steps S7030901-S7030905.

[0220] Step S7030901, according to the updated search counter, the key wordlabel newcounter of the inverse index table is calculated by formula (13).

[0221] According to some embodiments, the cloud storage end also includes a forward index table.

[0222] Step S7030903, the value of the inverse index table corresponding to the key wordlabel newcounter is calculated by formula (12) and (13).

[0223] Step S7030905, the record with the key wordlabel i in the inverse index table is deleted.

[0224] Step S70311, after the i value iteration in formula (9) is completed, if the incremented search counter and the keyword update counter are not equal, the search token search value in the inverse index table is updated using the incremented search counter, the keyword zeroth index encryption token and the keyword first index encryption token by formula (10).

[0225] According to some embodiments of the present application, updating the search token is updating the keyword first index encryption token in the search token to the keyword zeroth index encryption token in the search token, updating the search token retrieval key by using the updated keyword first index encryption token in the search token by formula (7). Updating the keyword zeroth index encryption token and the keyword update counter in the search token by using the updated keyword first index encryption token and the updated search token retrieval value in the search token by formula (11)

[0226] After updating the search token, steps S70301-S70311 are repeated until the end condition that the keyword zeroth index encryption token is equal to the end token is satisfied, and the step S703 ends.

[0227] In step S705, the file identifier set is calculated by using the plurality of reverse retrieval keys and the reverse index table.

[0228] According to some embodiments, if the reverse retrieval value corresponding to the reverse retrieval key exists in the reverse index table, the file identifier update item (ind||inlabel) corresponding to the reverse retrieval key is calculated by using the reverse retrieval value, the keyword first index encryption token and the keyword update counter by formula (12) in step S7030903, and the file identifier update item includes the file identifier corresponding to the reverse retrieval key.

[0229] In step S707, the ciphertext data corresponding to the search token is obtained by using the file identifier set.

[0230] According to some embodiments, the ciphertext data is calculated by using the corresponding relationship between the file identifier and the ciphertext data at the time of storage.

[0231] In step S709, the ciphertext data is sent to the client.

[0232] According to some example embodiments of the present application, the cloud storage end stores the forward index table.

[0233] According to some example embodiments of the present application, Figure 7 The retrieval method further includes receiving the ciphertext data and the index data sent by the cloud storage end, storing the ciphertext data, and updating the forward index table and the reverse index table by using the index data.

[0234] According to some example embodiments of the present application, Figure 7The search method further comprises receiving a deletion token sent by the client, setting a deletion counter to a deletion counter initial value, generating a forward index table deletion key of the forward index table by using the deletion token and the deletion counter, if there is a forward index table deletion value corresponding to the forward index table deletion key in the forward index table, deleting the record and the ciphertext data corresponding to the deletion token by using the deletion token, the deletion counter, the forward index table deletion key and the forward index table deletion value, and incrementing the deletion counter, otherwise, terminating the deletion operation.

[0235] According to some embodiments, the deletion token comprises a file identifier sub-key generated by using a master key and a file identifier.

[0236] It should be noted that the initial value and the increment value of the deletion counter need to be consistent with the initial value and the increment value of the keyword counter in Figure 5 .

[0237] According to some embodiments, the forward index table deletion key of the forward index table is generated by formula (15).

[0238] According to some embodiments, the record and the ciphertext data corresponding to the deletion token are deleted by using the deletion token, the deletion counter, the forward index table deletion key and the forward index table deletion value through steps S1-S7.

[0239] In step S1, the reverse index table deletion key of the reverse index table is generated by formula (16) by using the deletion token, the deletion counter and the forward index table deletion value.

[0240] In step S3, the record with the key being the forward index table deletion key in the forward index table Map f is deleted.

[0241] In step S5, the record with the key being the reverse index table deletion key in the reverse index table is deleted.

[0242] In step S7, the ciphertext data corresponding to the deletion token is deleted.

[0243] Through the example embodiments shown in Figure 7 , by the mutual association of the same keyword-file identifier pair in the forward index table and the reverse index table, the relevant forward index item calculated after inputting the file identifier can find the corresponding reverse index item, so that the storage index is deleted in real time, and other items of the two index tables in the index storage are not affected. Since the index data is deleted in real time, the deleted file does not leak any of its related keyword information. Therefore, the search method shown in Figure 7 is a search method with backward security.

[0244] Figure 8An index apparatus for encrypted cloud storage is shown. The index apparatus is used in a searchable encrypted cloud storage system comprising a client and a cloud storage side. The index apparatus is used in the client of the searchable encrypted cloud storage system.

[0245] As shown in Figure 8 The index apparatus comprises a preprocessing cloud storage data unit 801, a judging keyword state unit 803, an updating encryption token unit 805, a generating index data unit 807, a generating ciphertext data unit 809, and a sending data unit 811.

[0246] The preprocessing cloud storage data unit 801 is configured to preprocess cloud storage data to obtain a keyword-file identifier pair set of the cloud storage data. The judging keyword state unit 803 is configured to judge whether a keyword of a keyword-file identifier pair in the keyword-file identifier pair set is in a search state. The updating encryption token unit 805 is configured to update an encryption token corresponding to the keyword-file identifier pair. The generating index data unit 807 is configured to generate index data corresponding to the keyword-file identifier pair by using the updated encryption token and the keyword-file identifier pair. The generating ciphertext data unit 809 is configured to encrypt the cloud storage data to generate ciphertext data. The sending data unit 811 is configured to send the ciphertext data and the index data to the cloud storage side.

[0247] Figure 9 A search apparatus for encrypted cloud storage is shown. The search apparatus is used in a searchable encrypted cloud storage system comprising a client and a cloud storage side. The search apparatus is used in the cloud storage side of the searchable encrypted cloud storage system.

[0248] According to some example embodiments of the present application, the cloud storage side comprises an inverted index table.

[0249] As shown in Figure 9 The search apparatus comprises an obtaining search token unit 901, a retrieving inverted search key unit 903, a calculating file identifier unit 905, a retrieving ciphertext data unit 907, and a sending data unit 909.

[0250] The obtaining search token unit 901 is configured to receive a search token sent from the client. The retrieving inverted search key unit 903 is configured to calculate a plurality of inverted search keys of the inverted index table by using the search token. The calculating file identifier unit 905 is configured to calculate a file identifier set by using the plurality of inverted search keys and the inverted index table. The retrieving ciphertext data unit 907 is configured to obtain ciphertext data corresponding to the search token by using the file identifier set. The sending data unit 909 is configured to send the ciphertext data to the client.

[0251] According to some embodiments of the present application, when uploading cloud storage data, if the keyword of the cloud storage data is a search state, a keyword sub-key is generated by using the keyword, and a new keyword index encryption token is generated, so that the server side cannot associate the newly added index item with the previous search keyword, and has forward security.

[0252] When deleting the ciphertext data, the index table is used to realize real-time deletion of the storage index and the storage ciphertext data without affecting other storage index records in the index table, so that the deleted file does not leak any related keyword information, and has backward security.

Claims

1. An indexing method for encrypted cloud storage, characterized in that, The index method is used in a searchable encrypted cloud storage system, the searchable encrypted cloud storage system comprising a client and a cloud storage end, the index method is used in the client, the index method comprising: preprocessing cloud storage data to obtain a set of keyword-file identifier pairs of the cloud storage data; determining whether a keyword of the keyword-file identifier pair is in a search state; if yes, updating an index encryption token corresponding to the keyword-file identifier pair; generating index data corresponding to the keyword-file identifier pair using the updated encryption token and the keyword-file identifier pair; encrypting the cloud storage data to generate ciphertext data; sending the ciphertext data and the index data to the cloud storage end; the updating of the index encryption token corresponding to the keyword-file identifier pair comprises: updating a keyword state corresponding to the keyword to an updated state; updating a keyword update counter corresponding to the keyword to a keyword update counter initial value; generating a keyword sub-key of the keyword; generating a temporary index encryption token using the keyword sub-key and a keyword first index encryption token corresponding to the keyword; updating a keyword zeroth index encryption token corresponding to the keyword to a keyword first index encryption token corresponding to the keyword; updating the keyword first index encryption token corresponding to the keyword to the temporary index encryption token.

2. The index method of claim 1, wherein, before the determination of whether the keyword is in the search state, the index method further comprises: initializing a keyword counter.

3. The index method of claim 2, wherein: the index encryption token is stored in a keyword state table, the keyword state table comprising a key-value structure, a key of the key-value structure being a keyword, a value of the key-value structure comprising a previous operation state, a keyword update counter, a keyword zeroth index encryption token, a keyword first index encryption token, the keyword state comprising an updated state and a search state.

4. The indexing method of claim 3, wherein, the index method further comprises: if the keyword is not included in the keyword state table, setting a keyword state corresponding to the keyword to the updated state; setting a keyword update counter corresponding to the keyword to the keyword update counter initial value; generating a keyword first index encryption token of the keyword using the keyword; setting a keyword zeroth index encryption token corresponding to the keyword to have a length same as that of the keyword first index encryption token of the keyword and each bit having a value of 1 or 0.

5. The indexing method of claim 3, wherein, the index method further comprises: if the keyword is in the updated state, incrementing the keyword update counter corresponding to the keyword.

6. The index method of claim 3, wherein: the index data comprises forward index data and reverse index data, the forward index data being stored in a forward index table, the reverse index data being stored in a reverse index table.

7. The indexing method of claim 6, wherein, The generating index data corresponding to the keyword-file identifier pair using the updated encryption token and the keyword-file identifier pair comprises: generating a keyword sub-key and a file identifier sub-key using the keyword-file identifier pair; generating a key of the forward index table corresponding to the keyword-file identifier pair using the file identifier sub-key and the keyword counter corresponding to the keyword-file identifier pair; generating a key of the inverse index table corresponding to the keyword-file identifier pair using the keyword first index encryption token corresponding to the keyword and the keyword update counter; generating a value of the inverse index table using the file identifier in the keyword-file identifier pair, the key of the forward index table corresponding to the keyword-file identifier pair, the keyword first index encryption token corresponding to the keyword and the keyword update counter; generating a value of the forward index table using the key of the inverse index table corresponding to the keyword-file identifier pair, the file identifier sub-key and the keyword counter corresponding to the keyword-file identifier pair; incrementing the keyword counter.

8. The indexing method of claim 3, wherein, The index method further comprises: obtaining a search keyword; generating a search token of the search keyword; sending the search token to the cloud storage end; receiving ciphertext data corresponding to the search token from the cloud storage end.

9. The indexing method of claim 8, wherein, The generating a search token of the search keyword comprises: generating the search token using the keyword update counter, the keyword zeroth index encryption token and the keyword first index encryption token corresponding to the search keyword in the keyword state table.

10. The indexing method of claim 7, wherein, After generating the search token of the search keyword, the method further comprises: updating the keyword state corresponding to the search keyword in the keyword state table to the search state.

11. The indexing method of claim 1, wherein, The index method further comprises: generating a deletion token and sending the deletion token to the cloud storage end.

12. The indexing method of claim 11, wherein, The generating a deletion token and sending the deletion token to the cloud storage end comprises: encrypting a file identifier in the keyword-file identifier pair as the deletion token, the deletion token being used to delete the ciphertext data and the index data corresponding to the file identifier.

13. A search method for encrypted cloud storage, characterized by, The search method is used in a searchable encrypted cloud storage system, the searchable encrypted cloud storage system comprising a client and a cloud storage end, the search method being used in the cloud storage end, the cloud storage end comprising an inverse index table, the search method comprising: receiving a search token sent from the client; calculating a plurality of inverse search keys of the inverse index table using the search token; calculating a file identifier set using a plurality of the inverse search keys and the inverse index table; obtaining ciphertext data corresponding to the search token using the file identifier set; sending the ciphertext data to the client; the search token comprising a keyword update counter, a keyword zeroth index encryption token and a keyword first index encryption token; The method comprises the following steps: The method comprises the following steps: If the reverse index table does not have a value corresponding to the search token retrieval key, the search token retrieval key and the search token retrieval value are stored in the reverse index table. A retrieval counter is set to a retrieval counter initial value. The reverse retrieval key corresponding to the search token is calculated by using the search token and the keyword update counter and the keyword first index encryption token. If the reverse index table has a reverse retrieval value corresponding to the reverse retrieval key, the retrieval counter is incremented, and if the incremented retrieval counter is not equal to the current loop number, the reverse index table is updated by using the incremented retrieval counter, the keyword first index encryption token and the reverse index key. After the loop ends, if the incremented retrieval counter is not equal to the keyword update counter, the search token retrieval value in the reverse index table is updated by using the incremented retrieval counter, the keyword zeroth index encryption token and the keyword first index encryption token. The method comprises the following steps: If the reverse index table has a reverse retrieval value corresponding to the reverse retrieval key, a file identifier corresponding to the reverse retrieval key is calculated by using the reverse retrieval value, the keyword first index encryption token corresponding to the reverse retrieval key and the keyword update counter corresponding to the reverse retrieval key.

14. The search method of claim 13, wherein, The method comprises the following steps: The method comprises the following steps: An end token is set to have the same number of bits as the keyword zeroth index encryption token, and each bit has a value of 1 or 0. If the keyword zeroth index encryption token is not equal to the end token, the keyword update counter, the keyword zeroth index encryption token and the keyword first index encryption token are updated. The above operations are repeated until the keyword zeroth index encryption token is equal to the end token.

15. The search method of claim 13, wherein, The search token is updated by the following steps: The keyword first index encryption token in the search token is updated to the keyword zeroth index encryption token in the search token. The search token retrieval key is updated by using the updated keyword first index encryption token in the search token. The keyword zeroth index encryption token and the keyword update counter in the search token are updated by using the updated keyword first index encryption token in the search token and the updated search token retrieval value.

16. The search method of claim 13, wherein, The cloud storage end further comprises a forward index table, and the retrieval method further comprises the following steps: The ciphertext data and index data sent by the cloud storage end are received, and the index data comprises forward index data and reverse index data. The ciphertext data and index data sent by the cloud storage end are received, and the index data comprises forward index data and reverse index data. storing the ciphertext data; updating a forward index table using the forward index data; updating a reverse index table using the reverse index data.

17. The retrieval method of claim 16 wherein, The search method further comprises: receiving a deletion token sent by the client; initializing a deletion counter; deleting, using the deletion token and the deletion counter, records corresponding to the deletion token in the forward index table and the reverse index table; deleting, using the deletion token, ciphertext data corresponding to the deletion token.

18. The search method of claim 17, wherein, The deleting, using the deletion token and the deletion counter, records corresponding to the deletion token in the forward index table and the reverse index table comprises: generating, using the deletion token and the deletion counter, a forward index table deletion key of the forward index table; if there is a forward index table deletion value corresponding to the forward index table deletion key in the forward index table, calculating, using the deletion token, the deletion counter and the forward index table deletion value, a reverse index table deletion key of the reverse index table, deleting, from the forward index table, a record with the key being the forward index table deletion key, deleting, from the reverse index table, a record with the key being the reverse index table deletion key, and deleting ciphertext data corresponding to the deletion token, incrementing the deletion counter, and repeating the above operations until there is no forward index table deletion value corresponding to the forward index table deletion key in the forward index table.

19. An encryption method characterized by, The encryption method comprises: obtaining plaintext data and a keyword state table, the keyword state comprising a key-value structure, the key being a keyword of the plaintext data, and the value comprising a keyword state, a keyword update counter, a keyword zeroth index encryption token and a keyword first index encryption token, the keyword state comprising an update state and a search state; preprocessing the plaintext data into a set of keyword-file identifier pairs; initializing a keyword counter; traversing keyword-file identifier pairs in the set of keyword-file identifier pairs, if the keyword state table does not include the keyword in the keyword-file identifier pair in the set, setting the keyword state of the keyword as the update state, setting the keyword update counter of the keyword as a keyword update counter initial value, and generating the keyword first index encryption token by the following formula, token=Enc wordkey (H0(R||keyword)), wordkey=F key (keyword) where H0 is a zeroth hash function, R is a pseudo-random number, keyword is the keyword, key is a master key, and F is a pseudo-random function; setting the keyword zeroth index encryption token of the keyword to have the same length as the keyword first index encryption token, and each bit to be 1 or 0, storing the keyword and the keyword state, the keyword update counter, the keyword zeroth index encryption token and the keyword first index encryption token of the keyword in the keyword state table; if the keyword state corresponding to the keyword in the keyword state table is the update state, incrementing the keyword update counter corresponding to the keyword; if the keyword state corresponding to the keyword in the keyword state table is the search state, updating the keyword update counter corresponding to the keyword as the keyword update counter initial value, updating the value of the keyword zeroth index encryption token corresponding to the keyword as the value of the keyword first index encryption token corresponding to the keyword, updating the keyword first index encryption token corresponding to the keyword by the following formula, token=Enc wordkey (token), wordkey=F key (keyword) wherein token is the keyword first index encryption token, Enc is a symmetric encryption algorithm, F is the pseudo-random function, key is the master key, and keyword is the keyword; generating an index table corresponding to the keyword-file identifier pair using the keyword-file identifier pair, the keyword counter, and the keyword state table, and incrementing the keyword counter; encrypting the plaintext data to generate ciphertext data.

20. The encryption method of claim 19, wherein, The index table includes a forward index table and a reverse index table, and the generating an index table corresponding to the keyword-file identifier pair using the keyword counter and the keyword state table includes: calculating the file identifier sub-key in the keyword-file identifier pair by the following formula, indkey= F key (ind) wherein ind is the file identifier in the keyword-file identifier pair, indkey is the sub-key of the file identifier, key is the master key, and F is the pseudo-random function; calculating the key of the forward index table by the following formula, indlabel=H3(indkey,indcounter) wherein indlabel is the key of the forward index table corresponding to the keyword-file identifier pair, H3 is a third hash function, and indcounter is the keyword counter corresponding to the keyword-file identifier pair; calculating the key of the reverse index table corresponding to the keyword-file identifier pair by the following formula, wordlabel=H1(token,updatecounter) wherein wordlabel is the key of the reverse index table corresponding to the keyword-file identifier pair, H1 is a first hash function, token is the keyword first index encryption token corresponding to the keyword in the keyword state table, and updatecounter is the keyword update counter corresponding to the keyword in the keyword state table; calculating the value of the forward index table corresponding to the keyword-file identifier pair by the following formula, wherein addrdata is the value of the forward index table map1 corresponding to the keyword-file identifier pair, wordlabel is the key of the reverse index table corresponding to the keyword-file identifier pair, H4 is a fourth hash function, indkey is the file identifier sub-key in the keyword-file identifier pair, and indcounter is the keyword counter corresponding to the keyword-file identifier pair; calculating the value of the reverse index table corresponding to the keyword-file identifier pair by the following formula, wherein data is a value of the inverse index table corresponding to the keyword- file identifier pair, ind is a file identifier in the keyword- file identifier pair, indlabel is a key of the forward index table corresponding to the keyword- file identifier pair, H2 is a second hash function, token is a keyword first index encryption token in the keyword state table corresponding to the keyword, and updatecounter is a keyword update counter in the keyword state table corresponding to the keyword. incrementing the keyword counter.

21. The encryption method of claim 20, wherein, The encryption method further includes: When searching the plaintext data with the keyword in the keyword-file identifier pair, the keyword state corresponding to the keyword-file identifier pair in the keyword state table is updated to a search state.

22. A decryption method characterized by, The decryption method comprises: obtaining a search token; calculating a plurality of reverse search keys of a reverse index table by using the search token; calculating a file identifier set by using the plurality of reverse search keys and the reverse index table; obtaining ciphertext data corresponding to the search token by using the file identifier set; The search token comprises a keyword update counter, a keyword zeroth index encryption token and a keyword first index encryption token, and the calculating a plurality of reverse search keys of a reverse index table by using the search token comprises: calculating a plurality of reverse search keys of the reverse index table by using the search token and updating the reverse index table; setting an end token with the same number of bits as the keyword zeroth index encryption token and with each bit having a value of 1 or 0; if the keyword zeroth index encryption token and the end token are different, updating the keyword update counter, the keyword zeroth index encryption token and the keyword first index encryption token; repeating the above operations until the keyword zeroth index encryption token and the end token are the same; The calculating a file identifier set by using the plurality of reverse search keys and the reverse index table comprises: if there is a reverse search value corresponding to the reverse search key in the reverse index table, calculating a file identifier corresponding to the reverse search key by using the reverse search value, the keyword first index encryption token corresponding to the reverse search key and the keyword update counter corresponding to the reverse search key.

23. The decryption method of claim 22, wherein, The calculating a plurality of reverse search keys of a reverse index table by using the search token and updating the reverse index table comprises: calculating a search token search key and a search token search value of the reverse index table by using the search token through the following formula, wherein token is the keyword first index encryption token in the search token, H1 is a hash function, wordlabel0 is the search token search key, updatecounter is the keyword update counter in the search token, pretoken is the keyword zeroth index encryption token in the search token, token is the keyword first index encryption token in the search token, and data0 is the search token search value; if there is no value corresponding to the search token search key in the reverse index table, storing the search token search key and the search token search value in the reverse index table; initializing a search counter; calculating the reverse search key of the reverse index table corresponding to the search token by using the keyword update counter and the keyword first index encryption token through the following formula, wordlabel i = H1(token, i), i = 1, 2, 3,..., updatecounter wherein H1 is a first hash function, updatecounter is a keyword update counter in the search token, token is a keyword first index encryption token in the search token, i is a loop serial number, wordlabel i is the reverse search key corresponding to the current loop serial number i; if there is a reverse search value corresponding to the reverse search key in the reverse index table, incrementing the search counter, If the search counter after incrementing and the current cycle number are not equal, the reverse index table is updated with the search counter after incrementing, the keyword first index encryption token and the reverse index key; If the search counter after incrementing and the keyword update counter are not equal, the search token retrieval value in the reverse index table is updated with the search counter after incrementing, the keyword zeroth index encryption token and the keyword first index encryption token by the following formula, Wherein, data0 is the search token retrieval value, pretoken is the keyword zeroth index encryption token in the search token, token is the keyword first index encryption token in the search token, and newcounter is the updated search counter.

24. The decryption method of claim 23, wherein, The search token is updated by the following way: The keyword first index encryption token in the search token is updated to the keyword zeroth index encryption token in the search token; The keyword first index encryption token in the search token is updated to the keyword zeroth index encryption token in the search token; The keyword first index encryption token in the search token is updated to the keyword zeroth index encryption token in the search token.

25. The decryption method of claim 22, wherein, The decryption method further comprises: Obtaining a deletion token; Initializing a deletion counter; Deleting the records corresponding to the deletion token in the forward index table and the reverse index table with the deletion token and the deletion counter; Deleting the ciphertext data corresponding to the deletion token with the deletion token.

26. The decryption method of claim 25, wherein, The deleting the records corresponding to the deletion token in the forward index table and the reverse index table with the deletion token and the deletion counter comprises: Generating the forward index table deletion key of the forward index table with the deletion token and the deletion counter by the following formula; indlabel=H3(indkey,indcounter) Wherein, indlabel is the forward index table deletion key, indkey is the deletion token, indcounter is the deletion counter, and H3 is the third hash function, If the forward index table deletion value corresponding to the forward index table deletion key exists in the forward index table, Calculating the reverse index table deletion key of the reverse index table with the deletion token, the deletion counter and the forward index table deletion value by the following formula, wherein wordlabel is a delete key for the reverse index table, Map f is a forward index table, indlabel is a delete key for the forward index table, indkey is the delete token, indcounter is the delete counter, and H4 is a fourth hash function. Deleting the record with the forward index table deletion key in the forward index table, Deleting the record with the reverse index table deletion key in the reverse index table and the ciphertext data corresponding to the deletion token, Incrementing the deletion counter and repeating the above operations until the forward index table deletion value corresponding to the forward index table deletion key does not exist in the forward index table.

27. An indexing apparatus for encrypted cloud storage, characterized by, The index device is used in a searchable encrypted cloud storage system, the searchable encrypted cloud storage system comprising a client and a cloud storage end, the index device is used in the client, characterized in that the index device is used to execute the index method as claimed in any one of claims 1-12, the index device comprises: a pre-processing cloud storage data unit for pre-processing cloud storage data to obtain a set of keyword-file identifier pairs of the cloud storage data; a judgment keyword state unit for judging whether a keyword of a keyword-file identifier pair in the set of keyword-file identifier pairs is in a search state; an update encrypted token unit for updating an encrypted token corresponding to the keyword-file identifier pair; a generate index data unit for generating index data corresponding to the keyword-file identifier pair by using the updated encrypted token and the keyword-file identifier pair; a generate ciphertext data unit for encrypting the cloud storage data to generate ciphertext data; a send data unit for sending the ciphertext data and the index data to the cloud storage end.

28. A retrieval apparatus for encrypted cloud storage, characterized in that, The search device is used in a searchable encrypted cloud storage system, the searchable encrypted cloud storage system comprising a client and a cloud storage end, the search device is used in the cloud storage end, the cloud storage end comprising a reverse index table, the search device is used to execute the search method as claimed in claims 13-18, the search device comprises: an obtain search token unit for receiving a search token sent from the client; a retrieve reverse search key unit for calculating a plurality of reverse search keys of the reverse index table by using the search token; a calculate file identifier unit for calculating a set of file identifiers by using the plurality of reverse search keys and the reverse index table; a retrieve ciphertext data unit for obtaining ciphertext data corresponding to the search token by using the set of file identifiers; a send data unit for sending the ciphertext data to the client.

29. An electronic device, comprising: comprise: one or more processors; a storage device for storing one or more programs; when the one or more programs are executed by the one or more processors, the one or more processors implement the method as claimed in any one of claims 1-26.

Citation Information

Patent Citations

  • Forward security connection keyword symmetric searchable encryption method, system and application

    CN113254955A

  • Searchable encryption with secure and efficient updates

    US20160125198A1