Forward-secure dynamic symmetric searchable encryption method and system with optimized IO efficiency
By updating client buffers and designing a secure packaging format, the IO efficiency of the dynamic symmetric searchable encryption scheme is optimized, the problem of low efficiency in searching for high-frequency keywords is solved, and forward security and search efficiency for other keywords are maintained.
Patent Information
- Application Number
- CN202411818747.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-11
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2044-12-11
AI Technical Summary
While existing dynamic symmetric searchable encryption schemes ensure forward security, the number of random IO times increases linearly with the number of results, resulting in low efficiency in searching for high-frequency keywords and affecting the search efficiency of updates and other keywords.
By buffering updates and packaging them for upload on the client, designing a secure packaging format, and using the underlying forward-secure dynamic symmetric searchable encryption scheme to store auxiliary search information, we optimize IO efficiency and ensure that high-frequency keywords only require one continuous IO without affecting the search efficiency and update efficiency of other keywords.
It significantly improves the search efficiency of high-frequency keywords, limits the number of random IOs, and maintains forward security without affecting the search efficiency of updates and other keywords.
Smart Images

Figure CN119583190B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of information security technology, and in particular relates to a forward-secure dynamic symmetric searchable encryption method and system with optimized IO efficiency. Background Art
[0002] In the era of cloud computing, individuals and businesses are increasingly outsourcing their data to the cloud, and the privacy of outsourced data is facing increasingly severe challenges. While traditional encryption methods can protect data privacy, they hinder normal data searches and affect data availability. Symmetric searchable encryption is a technology used to address this issue. By building encrypted indexes, this technology can achieve efficient searches while ensuring data encryption, resolving the conflict between data privacy and availability. It has broad application prospects in fields such as healthcare, finance, and e-government. Dynamic symmetric searchable encryption is a type of symmetric searchable encryption that allows for the flexible addition and deletion of data. Compared to traditional static solutions, it is more practical in cloud environments.
[0003] Currently, dynamic symmetric searchable encryption can be fully implemented using symmetric cryptography and achieves optimal search complexity, but there is still significant room for optimization in terms of IO efficiency. This is because the requirement for forward security leads to a decrease in IO efficiency. Forward security is a key security property that must be ensured in dynamic symmetric searchable encryption, which requires that the previous search operation does not leak information about subsequent updates. Due to this requirement, subsequent updates and previous search results cannot be arranged consecutively in storage, which introduces additional random IO times to the search process. For modern storage devices, the efficiency of a continuous IO is much higher than that of multiple random IOs, and the number of random IO times is extremely critical to IO efficiency. Currently, the random IO times of most dynamic symmetric searchable encryption schemes increase linearly with the number of results, which causes the search time to also increase linearly with the number of results, especially for high-frequency keywords, resulting in higher search latency.
[0004] Most existing dynamic symmetric searchable encryption schemes that can reduce the number of random IOs ignore forward security. Forward-secure solutions reduce random IOs by continuously reconstructing static symmetric searchable encryption schemes into dynamic ones, but they make excessive sacrifices in key indicators such as update efficiency and read efficiency, reducing their practicality. In particular, the decline in read efficiency even offsets the improvements in IO and search efficiency brought about by the optimization of random IOs in many scenarios, and has a negative impact on the search efficiency of keywords other than extremely high-frequency keywords. Therefore, how to ensure forward security while reducing the number of random IOs required for search to improve the search efficiency of high-frequency keywords, without affecting important performance indicators including update efficiency and search efficiency of other keywords, has become a problem that needs to be solved urgently. Summary of the Invention
[0005] To solve the above technical problems, the present invention provides a forward-secure dynamic symmetric searchable encryption method with optimized IO efficiency, comprising the following steps:
[0006] Step S1: Initialization phase: determine and initialize the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized, its parameters, and the data structures of all parties including the client buffer;
[0007] Step S2: Update phase: Buffer updates in the client until a fixed buffer limit is reached, perform a batch update, encapsulate all updates in the buffer using a special secure package and upload, and simultaneously store auxiliary search information using the underlying forward-secure dynamic symmetric searchable encryption scheme;
[0008] Step S3: Search phase: Use the underlying forward-secure dynamic symmetric searchable encryption scheme to retrieve auxiliary search information, extract the updates packaged on the server through the auxiliary search information, combine them to obtain the server-side results, and further combine them with other updates in the client buffer to obtain the final result.
[0009] Beneficial effects:
[0010] 1. This invention buffers updates on the client and packages them for upload. All keywords within a single package require only a single continuous IO operation to read, effectively limiting the number of random IO operations required for searching different keywords, optimizing IO efficiency and significantly improving search efficiency for high-frequency keywords. At the same time, compared to other existing technologies, this approach does not significantly impact update efficiency or search efficiency for other keywords.
[0011] 2. The secure packaging format designed by the present invention does not affect the updated positions and quantity distributions of different keywords within the package, so that when searching for certain keywords, the present invention will not cause the leakage of information related to other keywords, and will not introduce additional information leakage while maintaining forward security.
[0012] 3. The present invention is applicable to most forward-secure dynamic symmetric searchable encryptions and can provide them with IO efficiency optimization. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Figure 1 A schematic diagram of the flow of a forward-secure dynamic symmetric searchable encryption method with optimized IO efficiency according to the present invention;
[0014] Figure 2 for Schematic diagram of the packaging format when ;
[0015] Figure 3 This is a schematic diagram of the update phase;
[0016] Figure 4 Schematic diagram of the search phase;
[0017] Figure 5 This is a structural block diagram of an IO efficiency-optimized forward-secure dynamic symmetric searchable encryption system of the present invention. DETAILED DESCRIPTION
[0018] In order to make the objectives, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only intended to illustrate the present invention and are not intended to limit the present invention. In addition, the technical features involved in the various embodiments of the present invention described below may be combined with each other as long as they do not conflict with each other.
[0019] Example 1
[0020] like Figure 1 As shown, an embodiment of the present invention provides a forward-secure dynamic symmetric searchable encryption method with optimized IO efficiency, comprising the following steps:
[0021] Step S1: Initialization phase: determine and initialize the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized, its parameters, and the data structures of all parties including the client buffer;
[0022] Step S2: Update phase: Buffer updates in the client until a fixed buffer limit is reached, and then perform a batch update. All updates in the buffer are encapsulated and uploaded using a special secure package. Auxiliary search information is stored using the underlying forward-secure dynamic symmetric searchable encryption scheme.
[0023] Step S3: Search phase: Use the underlying forward-secure dynamic symmetric searchable encryption scheme to retrieve auxiliary search information, extract the updates in the package on the server through the auxiliary search information, combine them to obtain the server-side results, and further combine them with other updates in the client buffer to obtain the final result.
[0024] In one embodiment, the above step S1: initialization phase: determining and initializing the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized, parameters, and data structures of all parties including the client buffer, specifically includes:
[0025] Step S11: Determine and initialize the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized. The scheme should meet the following security requirements, including: the leakage during the update phase must at most contain operators, including addition or deletion; the leakage during the search phase must at most contain the search history and update history of the target keyword;
[0026] Step S12: Determine packaging parameters and the maximum number of keywords ;
[0027] When used specifically, the packaging parameters The larger the value, the larger the client buffer and client storage, and the greater the degree of optimization of IO efficiency. This needs to be determined based on actual needs and performance testing.
[0028] Step S13: The client initializes a buffer for storing keywords and their corresponding update lists, and the server initializes storage of each packaged list.
[0029] In one embodiment, the above step S2: Update phase: Buffer updates in the client until a fixed buffer limit is reached, perform batch updates, encapsulate all updates in the buffer using a special secure package and upload, and use the underlying forward-secure dynamic symmetric searchable encryption scheme to store auxiliary search information, specifically including:
[0030] Step S21: Client cumulative update: add the file identifier and operator corresponding to the keyword to be updated to the update list corresponding to the keyword in the client buffer. If the total number of updates in the client buffer does not reach the upper limit, , end; otherwise go to step S22;
[0031] Step S22: Client package upload update: The client initializes a two-dimensional array for packaging, with the number of rows , the number of columns is , the array elements are tuples consisting of file identifiers and operators; the client randomly selects a suitable interval for each keyword corresponding to a non-empty update list in the buffer according to the algorithm, fills the update list with null values, fills the update list into the interval, and then randomly generates a seed, generates a random bit string based on the seed and XORs it with the interval; the client clears the buffer and sends the package to the server, and the server adds the package to the package list;
[0032] Among them, a suitable interval for placing the update list is randomly selected according to the algorithm, specifically:
[0033] Pack the first two-dimensional array Rows are considered equally divided The size is The interval of , select the minimum row number that can accommodate the update list, and randomly select an unselected interval of the row as the target interval. Figure 2 As shown, The packaging format.
[0034] Step S23: The client updates the auxiliary search information using the underlying forward-secure dynamic symmetric searchable encryption scheme: The client updates the auxiliary search information for each keyword in the corresponding non-empty update list involved in step S22 using the underlying forward-secure dynamic symmetric searchable encryption scheme, which is used to extract the data in the package during the search phase; the total number of keywords is equal to In gap 1, the client continues to use the underlying forward-secure dynamic symmetric searchable encryption scheme to perform an update with a fixed pseudo-keyword, an empty file identifier, and the increment operator.
[0035] Among them, the auxiliary search information is updated using the underlying forward-secure dynamic symmetric searchable encryption scheme. The specific steps are: using the target keyword as the keyword, the batch number, that is, the number of batch uploads of the entire system, the combination of the seed corresponding to the keyword and the interval position corresponding to the update list as the file identifier, and using the increase operator to update the underlying forward-secure dynamic symmetric searchable encryption scheme.
[0036] like Figure 3 Shown is a schematic diagram of the update phase.
[0037] In one embodiment, the above step S3: Search Phase: uses the underlying forward-secure dynamic symmetric searchable encryption scheme to retrieve auxiliary search information, extracts updates in the package on the server through the auxiliary search information, combines them to obtain server-side results, and further combines them with other updates in the client buffer to obtain the final result, specifically including:
[0038] Step S31: The client uses the underlying forward-secure dynamic symmetric searchable encryption scheme to retrieve auxiliary search information: Based on the underlying forward-secure dynamic symmetric searchable encryption scheme, the client searches with the target keyword, obtains a list of auxiliary search information, and sends it to the server;
[0039] During use, the initialization phase should ensure that the search process of the selected underlying forward-secure dynamic symmetric searchable encryption scheme can obtain results on the server side. This can omit the step of sending the list of auxiliary search information to the server, reducing communication overhead.
[0040] Step S32: The server extracts updates from the package based on the auxiliary search information and organizes them into server-side results and returns them to the client: The server maintains a set of result file identifiers, traverses the auxiliary search information in ascending order of batch number, and for each piece of auxiliary search information, uses the batch number and interval position to locate the corresponding interval of the corresponding batch package in the package array, uses the random bit string generated by the seed to XOR with the interval, and filters out null values to obtain an update list, and uses the operator of each item in the update list to add or delete the corresponding file identifier in the set; finally, the file identifiers in the result file identifier set constitute the server-side result list, which is returned to the client;
[0041] When in use, the initialization phase should try to ensure that the search results of the selected underlying forward-secure dynamic symmetric searchable encryption scheme are arranged in update order or reverse order, so that the auxiliary search information will be naturally arranged according to the batch number, which is convenient for traversal and avoids the overhead of calling the sorting algorithm.
[0042] Step S33: The client combines the server-side result list with other updates in the buffer to obtain the final result: the client traverses the update list corresponding to the target keyword in the buffer, and further adds or deletes the corresponding file identifier in the server-side result according to the operator of each item to obtain the final result.
[0043] like Figure 4 Shown is a schematic diagram of the search phase.
[0044] By packaging data in batches and designing a secure packaging format, this invention generates a forward-secure dynamic symmetric searchable encryption scheme with optimized I / O efficiency based on an existing forward-secure dynamic symmetric searchable encryption scheme. This effectively improves the search efficiency of high-frequency keywords without significantly affecting the efficiency of updates or other keyword searches. At the same time, the forward security of the original scheme is retained without introducing additional leaks, ensuring a high level of security.
[0045] Example 2
[0046] like Figure 5 As shown, an embodiment of the present invention provides a forward-secure dynamic symmetric searchable encryption system with optimized IO efficiency, including the following modules:
[0047] Initialization module 41, used to determine and initialize the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized, its parameters, and the data structures of all parties including the client buffer;
[0048] Update module 42, used in the update phase: buffers updates in the client until a fixed buffer limit is reached, performs a batch update, encapsulates all updates in the buffer using a special secure package and uploads them, and uses the underlying forward-secure dynamic symmetric searchable encryption scheme to store auxiliary search information;
[0049] Search module 43 is used in the search phase: it uses the underlying forward-secure dynamic symmetric searchable encryption scheme to retrieve auxiliary search information, extracts the updates packaged on the server through the auxiliary search information, combines them to obtain the server-side results, and further combines them with other updates in the client buffer to obtain the final results.
Claims
1. A forward-secure dynamic symmetric searchable encryption method with optimized IO efficiency, characterized by: include: Step S1: Initialization phase: Determine and initialize the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized, its parameters, and the data structures of all parties including the client buffer, specifically including: Step S11: Determine and initialize the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized. The scheme should meet the following security requirements, including: the leakage during the update phase must at most contain operators, including addition or deletion; the leakage during the search phase must at most contain the search history and update history of the target keyword; Step S12: Determine packaging parameters and the maximum number of keywords ; Step S13: the client initializes a buffer for storing keywords and their corresponding update lists, and the server initializes storage of each packaged list; Step S2: Update phase: Buffer updates in the client until a fixed buffer limit is reached, perform a batch update, encapsulate all updates in the buffer using a special secure package and upload, and use the underlying forward-secure dynamic symmetric searchable encryption scheme to store auxiliary search information, specifically including: Step S21: Client cumulative update: add the file identifier and operator corresponding to the keyword to be updated to the update list corresponding to the keyword in the client buffer. If the total number of updates in the client buffer does not reach the upper limit, , end; otherwise go to step S22; Step S22: Client package upload update: The client initializes a two-dimensional array for packaging, with the number of rows , the number of columns is , the array elements are tuples consisting of file identifiers and operators; the client randomly selects a suitable interval for each keyword corresponding to a non-empty update list in the buffer according to the algorithm, fills the update list with null values, fills the update list into the interval, and then randomly generates a seed, generates a random bit string based on the seed and XORs it with the interval; the client clears the buffer and sends the package to the server, and the server adds the package to the package list; Step S23: The client updates the auxiliary search information using the underlying forward-secure dynamic symmetric searchable encryption scheme: The client updates the auxiliary search information for each keyword in the corresponding non-empty update list involved in step S22 using the underlying forward-secure dynamic symmetric searchable encryption scheme, which is used to extract the data in the package during the search phase; the total number of keywords is equal to In gap 1, the client continues to use the underlying forward-secure dynamic symmetric searchable encryption scheme to perform an update with a fixed pseudo-keyword, an empty file identifier, and an increment operator; Step S3: Search phase: Use the underlying forward-secure dynamic symmetric searchable encryption scheme to retrieve auxiliary search information, extract the updates packaged on the server through the auxiliary search information, combine them to obtain the server-side results, and further combine them with other updates in the client buffer to obtain the final result.
2. The forward-secure dynamic symmetric searchable encryption method with optimized IO efficiency according to claim 1, characterized in that: In step S22, a suitable interval for placing the update list is randomly selected according to an algorithm, specifically including: Pack the first two-dimensional array Rows are considered equally divided The size is The interval is selected, the minimum row number of the interval size that can accommodate the update list is selected, and an unselected interval of the row is randomly selected as the target interval.
3. The forward-secure dynamic symmetric searchable encryption method with optimized IO efficiency according to claim 1, characterized in that: In step S23, the auxiliary search information is updated using the underlying forward-secure dynamic symmetric searchable encryption scheme, specifically including: The target keyword is used as the keyword, and the batch number, i.e., the number of batch uploads of the entire system, the combination of the seed corresponding to the keyword and the interval position corresponding to the update list is used as the file identifier. The increase operator is used to update the underlying forward-secure dynamic symmetric searchable encryption scheme.
4. The forward-secure dynamic symmetric searchable encryption method with optimized IO efficiency according to claim 1, characterized in that: Step S3: Search phase: Using the underlying forward-secure dynamic symmetric searchable encryption scheme to retrieve auxiliary search information, extracting updates in the package on the server through the auxiliary search information, combining them to obtain server-side results, and further combining them with other updates in the client buffer to obtain the final result, specifically including: Step S31: The client uses the underlying forward-secure dynamic symmetric searchable encryption scheme to retrieve auxiliary search information: Based on the underlying forward-secure dynamic symmetric searchable encryption scheme, the client searches with the target keyword, obtains a list of auxiliary search information, and sends it to the server; Step S32: The server extracts updates from the package based on the auxiliary search information and organizes them into server-side results and returns them to the client: the server maintains a result file identifier set, traverses the auxiliary search information in ascending order of batch number, and for each piece of the auxiliary search information, uses the batch number and interval position to locate the corresponding interval of the corresponding batch package in the package array, uses a random bit string generated by the seed to XOR with the interval, and filters out null values to obtain an update list, and uses the operator of each item in the update list to add or delete the corresponding file identifier in the set; finally, the file identifiers in the result file identifier set constitute the server-side result list, which is returned to the client; Step S33: The client combines the server-side result list with other updates in the buffer to obtain the final result: the client traverses the update list corresponding to the target keyword in the buffer, and further adds or deletes the corresponding file identifier in the server-side result according to the operator of each item to obtain the final result.
5. A forward-secure dynamic symmetric searchable encryption system with optimized IO efficiency, characterized by: Includes the following modules: The initialization module is used to determine and initialize the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized, its parameters, and the data structures of all parties including the client buffer. Specifically, it includes: Step S11: Determine and initialize the underlying forward-secure dynamic symmetric searchable encryption scheme to be optimized. The scheme should meet the following security requirements, including: the leakage during the update phase must at most contain operators, including addition or deletion; the leakage during the search phase must at most contain the search history and update history of the target keyword; Step S12: Determine packaging parameters and the maximum number of keywords ; Step S13: the client initializes a buffer for storing keywords and their corresponding update lists, and the server initializes storage of each packaged list; The update module is used during the update phase: it buffers updates in the client until a fixed buffer limit is reached, performs a batch update, encapsulates all updates in the buffer using a special secure package and uploads them, and uses the underlying forward-secure dynamic symmetric searchable encryption scheme to store auxiliary search information. Specifically, it includes: Step S21: Client cumulative update: add the file identifier and operator corresponding to the keyword to be updated to the update list corresponding to the keyword in the client buffer. If the total number of updates in the client buffer does not reach the upper limit, , end; otherwise go to step S22; Step S22: Client package upload update: The client initializes a two-dimensional array for packaging, with the number of rows , the number of columns is , the array elements are tuples consisting of file identifiers and operators; the client randomly selects a suitable interval for each keyword corresponding to a non-empty update list in the buffer according to the algorithm, fills the update list with null values, fills the update list into the interval, and then randomly generates a seed, generates a random bit string based on the seed and XORs it with the interval; the client clears the buffer and sends the package to the server, and the server adds the package to the package list; Step S23: The client updates the auxiliary search information using the underlying forward-secure dynamic symmetric searchable encryption scheme: The client updates the auxiliary search information for each keyword in the corresponding non-empty update list involved in step S22 using the underlying forward-secure dynamic symmetric searchable encryption scheme, which is used to extract the data in the package during the search phase; the total number of keywords is equal to In gap 1, the client continues to use the underlying forward-secure dynamic symmetric searchable encryption scheme to perform an update with a fixed pseudo-keyword, an empty file identifier, and an increment operator; The search module is used in the search phase: the auxiliary search information is retrieved using the underlying forward-secure dynamic symmetric searchable encryption scheme, updates in the package on the server are extracted through the auxiliary search information, the server-side results are combined, and the final results are obtained by further combining with other updates in the client buffer.
Citation Information
Patent Citations
Efficient and robust dynamic searchable symmetric encryption method and system
CN110765469A
Forward security connection keyword symmetric searchable encryption method, system and application
CN113254955A