A method and system for multi-user searchable encryption with forward privacy
Patent Information
- Application Number
- CN202610746817.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-05-28
- Publication Date
- 2026-10-20
- Estimated Expiration
- 2046-05-28
AI Technical Summary
[0007]为了解决现有方法依赖用户掌握主密钥信息,缺乏细粒度的搜索权限管控,在多用户场景下的安全性与灵活性受到限制的技术问题,本发明提供了一种具有前向隐私的多用户可搜索加密的方法与系统
1、本发明无需共享私钥且支持非交互式搜索:本发明使用双层结构构造,数据拥有者根据其密钥和更新条目生成加密数据内容,再通过系统公钥生成广播密钥,利用广播密钥加密指针生成外部密文,从而允许授权的用户能够解密得到指针信息,进而能够查找。与共享对称密钥或向读取者分发聚合密钥相比,本发明避免了这些额外的存储和通信开销。
Smart Images

Figure CN122268588B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the fields of privacy protection, cloud services, and encrypted data query technology, and in particular to a method and system for multi-user searchable encryption with forward privacy. Background Technology
[0002] With the development of cloud computing technology, the storage and processing of large-scale data has become more efficient and convenient, but it has also made privacy and data security issues increasingly prominent. Users often entrust sensitive data to cloud servers, but inevitably worry about unauthorized access to the data during transmission and processing. Therefore, how to ensure data privacy and security while enjoying the convenience of cloud services has become a key challenge that urgently needs to be addressed in the cloud computing field.
[0003] The emergence of searchable encryption technology provides an effective solution to this problem. This technology allows users to perform keyword searches while keeping data encrypted, thus ensuring data confidentiality while making the data available. The specific process is as follows: The data owner first generates an update token corresponding to the keywords and the file, and uploads the encrypted file and the update token to the cloud server; when the data user needs to search for a file containing a specific keyword, they first interact with the data owner to obtain the key, generate a search token based on it, and submit it to the cloud server; after receiving the search token, the server performs a matching query in the set of update tokens, and finally returns the corresponding encrypted file.
[0004] Searchable encryption allows users to perform keyword searches on ciphertext data provided by the data owner without decrypting the original content, significantly improving privacy protection. To better meet practical application needs, academia and industry have extensively researched dynamic multi-user searchable encryption schemes in symmetric-key environments. However, most existing methods still rely on users possessing the master key information and lack fine-grained search permission control, thus limiting security and flexibility in multi-user scenarios. An ideal dynamic multi-user searchable encryption scheme should meet the following three core requirements: (1) Flexible and dynamic access control: Data owners can flexibly authorize or revoke users' search permissions according to actual needs.
[0005] (2) Forward security: Even if new files are added to the system later, attackers will not be able to obtain any sensitive information from files searched without authorization.
[0006] (3) Search efficiency: It supports data users to complete the search process through a single round of interaction with the cloud server, thereby improving system efficiency. Summary of the Invention
[0007] To address the technical problem that existing methods rely on users possessing master key information, lack fine-grained search permission control, and thus limit security and flexibility in multi-user scenarios, this invention provides a method and system for multi-user searchable encryption with forward privacy.
[0008] To achieve the above objectives, the present invention adopts the following technical solution, including: A method for multi-user searchable encryption with forward privacy includes the following steps: S1, the administrator generates a public key and a private key, and sends both the public key and the private key to the corresponding data owner and the corresponding data user; S2, the data owner receives and stores the public and private keys from the administrator, and generates and initializes the dictionary structure, mapping structure, list structure and global counter; S3, the data owner inputs update entry information and generates a security update token based on the update entry information; S4, the data user receives and stores the public and private keys from the administrator, and inputs the data user's keywords to generate a search token; S5: The cloud server receives and parses the security update token, uses the search token from the data user to search for the security update token, generates search results, and delivers the search results to the data user. S6, the data user receives the search results and processes the corresponding file identifier.
[0009] Preferably, the specific operation steps of step S1 are as follows: S11, the administrator sets one order to a prime number. group and an integer group ; S12, Selecting the group generator Select group Get a random number For the subscript set Each element in , Calculate custom public parameters for user-defined constants. : ; S13, Select Group Two independent random numbers ,calculate: ; ; in, There are two public parameters; S14, obtain the public key: ; for each member Generate private key ; , It is the sum of data owners and data users, of which there are Data owners and A data user; and the public and private keys Send it to the corresponding data owner or data user.
[0010] Preferably, the specific steps of step S2 are as follows: S21, Data Owner Receive and store the public key from the administrator. and private key , , The total number of data owners; S22, Data Owner Set dictionary structure Mapping structure List structure and global counter ; S23, Data Owner dictionary structure Initialize as an empty dictionary, then map the structure. Initialize to an empty mapping, and set the list structure. An empty list structure initialized with a global counter. Initialize to 0.
[0011] Preferably, the specific steps of step S3 are as follows: S31, Data Owner Enter update entry information ,in As keywords, For the file, For operational information; S32, Retrieval of data owner dictionary structure Does it contain keywords? If it exists, then from the dictionary structure. Obtain keywords from Update status If it does not exist, then the keyword will be... Update status Set to NULL, i.e., empty; S33, Randomly select a string As New update status ,Will As a new state overlay of ; S34, Obtaining the Data Owner global counter ; S35, Calculate keywords address ,pointer and ciphertext ; and the calculated address ,pointer and ciphertext Storage to storage structure middle; S36, Calculate keywords tags And calculate the internal ciphertext based on the calculated tag. Global parameters and broadcast key According to the global counter and pointers Obtain external ciphertext To separate internal and external ciphertext Storage to storage structure middle; S37, Generate Security Update Token .
[0012] Preferably, the specific operation steps of step S35 are as follows: S351, Calculate keywords address : ; in, For the first hash function, It is a pseudo-random function. is the pseudo-random function key, and || is the concatenation operator; S352, Calculate keywords pointer : ; in, The second hash function; S353, Calculate keywords ciphertext : ; in, It is the third hash function; S354, the calculated address ,pointer and ciphertext Storage to storage structure middle.
[0013] Preferably, the specific operation steps of step S36 are as follows: S361, using a hash function Calculate tags ; S362, based on the calculated label and global counter Calculate the internal ciphertext : S363, based on the calculated label and global counter Calculate global parameters : S364, based on the calculated label and global counter Calculate the broadcast key : S365, Global Counter Add 1, then use a symmetric encryption algorithm to encrypt part of the pointer information to obtain the external ciphertext. ; to combine internal and external ciphertexts Storage to storage structure middle.
[0014] Preferably, the specific steps of step S4 are as follows: S41, Data User Receive and store the public key from the administrator. and private key ; S42, Data User Enter keywords And calculate tags based on keywords. Obtain data owner global counter and global parameters ; S43, according to the label Global parameters and private key Generate search token .
[0015] Preferably, the specific operation steps of step S5 are as follows: S51, the cloud server receives data from the data owner. Security update token ,in, For storage structure, For global counter, These are global parameters; storage structure Parsed as ,in, Keywords Address Keywords pointer, Keywords The ciphertext will Stored in middle, For mapping structure middle key is The corresponding value; storage structure Parsed as ,in, This is an internal encrypted message. For external encrypted text, Stored in middle, For mapping structure middle key is The corresponding value; set the global counter and global parameters To make it public; S52, receives the search token from the data user. ; S53, Initialize the search results set Let the current time be an empty set. for Obtain the broadcast key, decrypt the broadcast key, and obtain the search results set. ; Specifically, the operation steps of step S53 are as follows: S531, Initialize the search results set Let the current time be an empty set. The value is a global counter. ; S532, from the data owner list structure Take out , For the key in the mapping structure The corresponding value is obtained The internal cipher of time and external encrypted text ; S533, using a search token Internal encrypted text Process to obtain the broadcast key ; S534, using broadcast key external encrypted messages Perform decryption; if successful, you will obtain pointer information. If decryption fails, then set the time limit. The value is Return to step S532 to continue the operation until decryption is successful, or The value is 0; S54, pointer information Process the data to obtain a set of search results. And output it.
[0016] Preferably, the operation steps of step S54 are as follows: S541, via pointer information Calculated address ; S542, from the data owner mapping structure Search , This is a mapping structure middle key is If the corresponding value can be retrieved, then... , pointer, It is encrypted; S543, from Get file identifier and operation information Add it to search results middle; S544, from Get pointer information Return to step S541 to perform the operation until no address can be retrieved; S545, Output the search results set If step S542 fails to find an address on the first search, then the output search result set will be... Empty.
[0017] A system for multi-user searchable encryption with forward privacy, applicable to the aforementioned method for multi-user searchable encryption with forward privacy, comprising: Administrator module: Generates public and private key tokens, and sends the public and private key tokens to the corresponding data owner module and data user module; The data owner module includes: Initialization unit: generates initialization information and discloses the initialization information to all units within the system; Owner Key Unit: Receives and stores the private key and public key token; Update entry input unit: Input update entry information, including: keywords, file, and operation information; Security update token generation unit: The private key token is used to encrypt the update entry information to obtain the inner index, and then the public key token is used to encrypt the inner index to generate a security update token. The security update token is then sent to the cloud server module. The data user module includes: User key unit: Receives and stores private key and public key tokens; Keyword input unit: Inputs keywords and time information, and discloses the keywords and time information to the search token generation unit; Search token generation unit: generates a search token using the private key token, keywords, and time information, and sends it to the search token receiving unit of the cloud server module; Result receiving unit: Receives data sent by the search data unit; The cloud server module includes: Search token receiving unit: Receives and stores security update tokens and search tokens; Search Data Unit: Uses the search token to search for the security update token. If the search is successful, it sends the corresponding data to the result receiving unit; if the search fails, it sends an empty string to the result receiving unit.
[0018] The advantages of this invention are: 1. This invention eliminates the need for shared private keys and supports non-interactive searching: The invention employs a two-layer structure. The data owner generates encrypted data content based on their key and update entries, then generates a broadcast key using the system public key. This broadcast key is used to encrypt pointers and generate external ciphertext, allowing authorized users to decrypt and obtain the pointer information for searching. Compared to sharing symmetric keys or distributing aggregate keys to readers, this invention avoids these additional storage and communication overheads.
[0019] 2. This invention achieves efficient dynamic access control: In this invention, the data owner generates a broadcast key using the system public key and time status information. The time-status broadcast key encrypts pointer information, thereby achieving instant encrypted authorization and revocation without additional program overhead. Authorized data users retain the ability to decrypt all existing data, while revoked data users lose access to newly inserted data.
[0020] 3. This invention achieves complete forward privacy and a fixed-size trapdoor: To achieve complete forward privacy, each data update operation must be associated with a unique state. The search token sent by the data user to the server can decrypt multiple ciphertexts encrypted in different states. However, the token submitted by the data user only decrypts ciphertexts prior to the current time state, thus achieving forward privacy guarantees and overcoming the problem of weak security guarantees for forward privacy based on time periods. Attached Figure Description
[0021] Figure 1 This is a flowchart of the multi-user searchable encryption method with forward privacy in Example 1.
[0022] Figure 2 This is a schematic diagram of the modules of the multi-user searchable encryption system with forward privacy in Example 2.
[0023] Figure 3 This is a diagram illustrating how update time changes with the number of updated entries.
[0024] Figure 4 A diagram illustrating how the storage cost of an encrypted dataset varies with the number of updated entries.
[0025] Figure 5 This diagram illustrates a comparison of search token bandwidth for data users under different configurations.
[0026] Figure 6 This is a diagram illustrating how search time changes with the number of updated entries.
[0027] Figure 7 This is a diagram comparing the update times of DMUSE and DSE.
[0028] Figure 8 This is a diagram comparing the search times of DMUSE and DSE.
[0029] Figure 9 This is a diagram comparing the update times of DMUSE and FP-HSE.
[0030] Figure 10 This is a diagram comparing the search times of DMUSE and FP-HSE. Detailed Implementation
[0031] The technical solutions in the embodiments of the present invention will be clearly and completely described below. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0032] Example 1 Please see Figure 1 , Figure 1 This embodiment provides a method for multi-user searchable encryption with forward privacy, which includes the following steps: S1, the administrator generates a public key and a private key, and sends the public key and private key to the corresponding data owner and the corresponding data user; In this embodiment, the specific operation steps of step S1 are as follows: S11, the administrator sets one order to a prime number. group and an integer group ; S12, Selecting the group generator Select group Get a random number For the subscript set Each element in , Calculate custom public parameters for user-defined constants. : ; S13, Select Group Two independent random numbers ,calculate: ; ; in, There are two public parameters; S14, obtain the public key: ; for each member Generate private key ; , It is the sum of data owners and data users, of which there are Data owners and A data user; and the public and private keys Send to data owners and data users.
[0033] The subscript m+1 is empty and not assigned to any member. This element is secret information and is known only to the data administrator.
[0034] S2: The data owner receives and stores the public and private keys from the administrator, and generates and initializes the dictionary structure, mapping structure, list structure, and global counter.
[0035] In this embodiment, the specific operation steps of step S2 are as follows: S21, Data Owner Receive and store the public and private keys from the administrator. , , The total number of data owners; S22, Data Owner Set the restricted pseudo-random function key Pseudo-random function key Pseudo-random functions Restricted pseudo-random functions Hash function Dictionary structure Mapping structure List structure and global counter ; S23, Data Owner dictionary structure Initialize as an empty dictionary, then map the structure. Initialize to an empty mapping, and set the list structure. An empty list structure initialized with a global counter. Initialize to 0.
[0036] S3, Data Owner Enter the update entry information and generate a security update token based on the update entry information.
[0037] In this embodiment, the specific operation steps of step S3 are as follows: S31, Data Owner Enter update entry information ,in As keywords, For the file, For operational information; S32, Retrieval of data owner dictionary structure Does it contain keywords? If it exists, then from Obtain keywords from Update status If it does not exist, then the keyword will be... Update status Set to NULL, i.e., empty; S33, Randomly select a string As New update status ,Will As a new state overlay of ; S34, Obtaining the Data Owner global counter ; S35, Calculate keywords The address, pointer, and ciphertext are calculated; and the calculated address, pointer, and ciphertext are stored in the storage structure. middle; Specifically, the specific operation steps of step S35 are as follows: S351, Calculate keywords address : ; in, For the first hash function, It is a pseudo-random function. is the pseudo-random function key, and || is the concatenation operator; S352, Calculate keywords pointer : ; in, The second hash function; S353, Calculate keywords ciphertext : ; in, It is the third hash function; S354, the calculated address ,pointer and ciphertext Storage to storage structure middle; S36, Calculate Labels And based on the calculated tags and global counter Calculate the internal ciphertext, global parameters, and broadcast key; Specifically, the specific operation steps of step S36 are as follows: S361, using a hash function Calculate tags ; S362, based on the calculated label and global counter Calculate the internal ciphertext : ; in, For randomly selected elements, For the restricted pseudo-random function key, 'o' is the identifier of the member. Given two public parameters, S is the set of members. For user-defined constants, The key is a restricted pseudo-random function key; S363, based on the calculated label and global counter Calculate global parameters : ; in, For hash functions, For restricted pseudo-random functions, This is a function for calculating the restricted key. S364, based on the calculated label and global counter Calculate the broadcast key : ; in, To represent the bilinear pairing computation function, when hour, for ,when hour, for ; S365, Global Counter Add 1, then use a symmetric encryption algorithm to encrypt part of the pointer information to obtain the external ciphertext. ; to combine internal and external ciphertexts Storage to storage structure middle; S37, Generate Security Update Token .
[0038] S4, Data User Receive and store the public and private keys from the administrator. Enter keywords Generate a search token; In this embodiment, the specific operation steps of step S4 are as follows: S41, Data User Receive and store the public and private keys from the administrator. ; S42, Data User Enter keywords And calculate tags based on keywords. Obtain data owner global counter and global parameters ; S43, according to the label Global parameters and private key Generate search token: ; in, Global parameters The first element, For a power operation. It is a randomly selected number.
[0039] S5 receives and parses the security update token, uses the search token from the data user to search for the security update token, generates search results, and delivers the search results to the data user; In this embodiment, the specific operation steps of step S5 are as follows: S51, the cloud server receives data from the data owner. Security update token ,in, For storage structure, For global counter, These are global parameters; storage structure Parsed as ,in, Keywords Address Keywords pointer, Keywords The ciphertext will Stored in middle, For mapping structure middle key is The corresponding value; storage structure Parsed as ,in, This is an internal encrypted message. For external encrypted text, Stored in middle, For mapping structure middle key is The corresponding value; set the global counter and global parameters To make it public; S52, receives the search token from the data user. ; S53, Initialize the result set Let the current time be an empty set. for Obtain the broadcast key, decrypt the broadcast key, and obtain the search results. ; Specifically, the operation steps of step S53 are as follows: S531, Initialization Let the current time be an empty set. The value is ; S532, S532, from the data owner list structure Take out , For the key in the mapping structure The corresponding value is obtained The internal cipher of time and external encrypted text ,in: ; S533, using a search token Internal encrypted text Process to obtain the broadcast key : ; in, ; S534, using broadcast key external encrypted messages Perform decryption; if successful, you will obtain pointer information. If decryption fails, then set the time limit. The value is Return to step S532 to continue the operation until decryption is successful, or The value is 0; S54, pointer information Process the data to obtain a set of search results. And output it.
[0040] Specifically, the operation steps of step S54 are as follows: S541, via pointer information Calculated address ; S542, from the data owner mapping structure Search , This is a mapping structure middle key is If the corresponding value can be retrieved, then... , pointer, It is encrypted; S543, from Get file identifier and operation information Add it to search results middle; S544, from Get pointer Return to step S541 to perform the operation until no address can be retrieved; S545, Output the search results set If step S542 fails to find an address on the first search, then the output search result set will be... Empty.
[0041] S6, the data user receives the search results and processes the corresponding file identifier.
[0042] Specifically, data users receive search results from the server. ,for Each of them If operation information yes The operation will then use the corresponding file identifier. Stored in a collection of files In the middle, if the operation information yes The operation will then use the corresponding file identifier. From file collection Delete it.
[0043] Example 2 Please see Figure 2 , Figure 2 This embodiment provides a system for multi-user searchable encryption with forward privacy, applicable to a method for multi-user searchable encryption with forward privacy provided in Embodiment 1. The system for multi-user searchable encryption with forward privacy includes: Administrator module: Generates public and private key tokens, and sends the public and private key tokens to the corresponding data owner module and data user module; The data owner module includes: Initialization unit: generates initialization information and discloses the initialization information to all units within the system; Owner Key Unit: Receives and stores the private key and public key token; Update entry input unit: Input update entry information, including: keywords, file, and operation information; Security update token generation unit: The private key token is used to encrypt the update entry information to obtain the inner index, and then the public key token is used to encrypt the inner index to generate a security update token. The security update token is then sent to the cloud server module. Data User Module: User key unit: Receives and stores private key and public key tokens; Keyword input unit: Inputs keywords and time information, and discloses the keywords and time information to the search token generation unit; Search token generation unit: generates a search token using the private key token, keywords, and time information, and sends it to the search token receiving unit of the cloud server module; Result receiving unit: Receives data sent by the search data unit; Cloud server module: Search token receiving unit: Receives and stores security update tokens and search tokens; Search Data Unit: Uses the search token to search for the security update token. If the search is successful, it sends the corresponding data to the result receiving unit; if the search fails, it sends an empty string to the result receiving unit.
[0044] Example 3 To evaluate the performance of the aforementioned multi-user searchable encryption method and system with forward privacy (DMUSE), this embodiment uses two real-world datasets for testing. The datasets include: The Enron dataset contains approximately 500,000 emails used to simulate enterprise communication scenarios. Dataset D (Employee): Contains approximately 100,000 employee records, used to simulate human resource management scenarios; The experiment was conducted with two user sizes: 15 users (small group) and 75 users (medium group). The number of updated entries was gradually increased from 10,000 to 70,000, with a step size of 10,000 entries. All experiments were repeated 10 times in a uniform hardware environment, and the average value was taken as the final result.
[0045] Please see Figure 3 , Figure 3 The diagram illustrates the change in update time with the number of updated entries. The update time shows a clear linear relationship with the number of updated entries. The update time for the 75-user configuration is slightly longer than that for the 15-user configuration, but the difference is small. The update cost curves on the two datasets are highly consistent, indicating that the aforementioned multi-user searchable encryption method and system with forward privacy (DMUSE) has good scalability and can maintain stable update performance under different data characteristics, demonstrating good robustness.
[0046] Please see Figure 4, Figure 4 This diagram illustrates how the storage cost of an encrypted dataset varies with the number of update entries. The storage cost exhibits a near-linear relationship with the number of update entries. The same dataset generates the same storage usage under different user configurations (15 users vs. 75 users), confirming that the storage cost is independent of the number of users. Furthermore, different datasets have completely identical storage costs under the same number of update entries, demonstrating that the storage cost is only related to the number of update entries and is independent of the underlying data content. This indicates that the storage overhead of the aforementioned multi-user searchable encryption method and system (DMUSE) with forward privacy is predictable, facilitating system capacity planning.
[0047] Please see Figure 5 , Figure 5 This diagram illustrates the comparison of search token bandwidth for data users under different configurations. With different numbers of users (15 / 75) and different datasets (Enron / Employee), the search token size remains constant. The search token consists of constant elements within the group and does not change with the data size or user size. This indicates that the communication overhead of the aforementioned forward privacy-enabled multi-user searchable encryption method and system (DMUSE) is deterministic and suitable for bandwidth-constrained application scenarios.
[0048] Please see Figure 6 , Figure 6 This diagram illustrates how search time varies with the number of updated entries. The results show a linear relationship between search latency and the number of updated entries, with search time increasing linearly with data size, consistent with the expected complexity analysis. This is because the server-side search process requires traversing internal ciphertext to identify which ciphertext can be correctly decrypted by the given search token. For large-scale datasets, index optimization or parallel processing strategies can be combined to further improve search efficiency.
[0049] To further evaluate the performance advantages of DMUSE, this embodiment selected two representative searchable encryption schemes for comparative experiments: DSE (a scheme based on a key-sharing strategy) and FP-HSE (a scheme based on a global cycle mechanism). All experiments were conducted in the same hardware and software environment, with each data point repeated 10 times, and the average value was taken as the final result.
[0050] DSE employs a strategy of sharing a key among readers, thereby simplifying the search process. Because this strategy is general and independent of the index structure, searchable cryptographic schemes can leverage it to streamline the search process. For fairness, this embodiment implements DMUSE in a key-sharing environment. Given that DSE heavily relies on exponentiation operations in the cryptographic group, we tested the performance of both schemes as the number of updated entries increased from 1,000 to 7,000.
[0051] Please see Figure 7 , Figure 7 This diagram compares the update times of DMUSE and DSE. DMUSE significantly outperforms DSE in terms of update time. Specifically: For 5,000 update entries: DMUSE can complete the update in just 36 milliseconds, while DSE takes approximately 2,486 seconds (about 41 minutes). DMUSE's update time remained consistently low: even with the number of update entries increased to 7,000, the update time only increased slightly from approximately 0.1 seconds to 0.3 seconds. In contrast, the update time of DSE increases superlinearly with the number of entries. Therefore, DMUSE improves the update efficiency by about 4-5 orders of magnitude compared to DSE, making it suitable for high-frequency update scenarios.
[0052] Please see Figure 8 , Figure 8 This diagram illustrates the search time comparison between DMUSE and DSE. Throughout the entire test range on both datasets, DMUSE's search time remained below 30 milliseconds. In contrast, the DSE scheme had significantly higher search costs and its overhead increased rapidly. Therefore, DMUSE outperformed the DSE scheme in search efficiency across the board.
[0053] Please see Figure 9 , Figure 9 This diagram illustrates the update time comparison between DMUSE and FP-HSE. The update time comparison results for FP-HSE and DMUSE under different numbers of update entries are as follows: Across all update entry counts, FP-HSE consistently takes longer to update than DMUSE.
[0054] The reason for the performance difference: The epoch mechanism in FP-HSE requires data reconstruction periodically, which generates a lot of computational overhead.
[0055] As the number of updated entries increases, DMUSE's update time remains relatively stable and is significantly lower than FP-HSE. When processing 3,000 updated entries on the Employee dataset, DMUSE's update cost is 90.7% lower than FP-HSE. Therefore, DMUSE demonstrates superior scalability compared to FP-HSE.
[0056] Please see Figure 10 , Figure 10This diagram illustrates the search time comparison between DMUSE and FP-HSE. FP-HSE's search time increases relatively rapidly, while DMUSE's search time increases more slowly. Compared to FP-HSE, DMUSE reduces search cost by 72.8% when processing 2,000 update entries on the Enron dataset. This further confirms DMUSE's superior scalability.
[0057] The above are merely preferred embodiments of the present invention and are not intended to limit the scope of the present invention. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.
Claims
1. A method for multi-user searchable encryption with forward privacy, characterized in that, Includes the following steps: S1, the administrator generates a public key and a private key, and sends both the public key and the private key to the corresponding data owner and the corresponding data user; S2, the data owner receives and stores the public and private keys from the administrator, and generates and initializes the dictionary structure, mapping structure, list structure and global counter; S3, the data owner inputs update entry information and generates a security update token based on the update entry information; S31, Data Owner Enter update entry information ,in As keywords, For the file, For operational information; S32, Retrieval of data owner dictionary structure Does it contain keywords? If it exists, then from the dictionary structure. Obtain keywords from Update status If it does not exist, then the keyword will be... Update status Set to NULL, i.e., empty; S33, Randomly select a string As New update status ,Will As a new state overlay of ; S34, Obtaining the Data Owner global counter ; S35, Calculate keywords address ,pointer and ciphertext ; and the calculated address ,pointer and ciphertext Storage to storage structure middle; S36, Calculate keywords tags And calculate the internal ciphertext based on the calculated tag. Global parameters and broadcast key According to the global counter and pointers Obtain external ciphertext To separate internal and external ciphertext Storage to storage structure middle; S37, Generate Security Update Token ; S4, the data user receives and stores the public and private keys from the administrator, and inputs the data user's keywords to generate a search token; S5: The cloud server receives and parses the security update token, uses the search token from the data user to search for the security update token, generates search results, and delivers the search results to the data user. S6, the data user receives the search results and processes the corresponding file identifier.
2. The method for multi-user searchable encryption with forward privacy according to claim 1, characterized in that, The specific steps for step S1 are as follows: S11, the administrator sets one order to a prime number. group and an integer group ; S12, Selecting the group generator Select group Get a random number For the subscript set Each element in , Calculate custom public parameters for user-defined constants. : ; S13, Select Group Two independent random numbers ,calculate: ; ; in, There are two public parameters; S14, obtain the public key: ; for each member Generate private key ; , It is the sum of data owners and data users, of which there are Data owners and A data user; and the public and private keys Send it to the corresponding data owner or data user.
3. The method for multi-user searchable encryption with forward privacy according to claim 1, characterized in that, The specific steps for step S2 are as follows: S21, Data Owner Receive and store the public key from the administrator. and private key , , The total number of data owners; S22, Data Owner Set dictionary structure Mapping structure List structure and global counter ; S23, Data Owner dictionary structure Initialize as an empty dictionary, then map the structure. Initialize to an empty mapping, and set the list structure. An empty list structure initialized with a global counter. Initialize to 0.
4. The method for multi-user searchable encryption with forward privacy according to claim 1, characterized in that, The specific steps for step S35 are as follows: S351, Calculate keywords address : ; in, For the first hash function, It is a pseudo-random function. is the pseudo-random function key, and || is the concatenation operator; S352, Calculate keywords pointer : ; in, The second hash function; S353, Calculate keywords ciphertext : ; in, It is the third hash function; S354, the calculated address ,pointer and ciphertext Storage to storage structure middle.
5. A method for multi-user searchable encryption with forward privacy according to claim 1, characterized in that, The specific steps for step S36 are as follows: S361, using a hash function Calculate labels ; S362, based on the calculated label and global counter Calculate the internal ciphertext : S363, based on the calculated label and global counter Calculate global parameters : S364, based on the calculated label and global counter Calculate the broadcast key : S365, Global Counter Add 1, then use a symmetric encryption algorithm to encrypt part of the pointer information to obtain the external ciphertext. ; to combine internal and external ciphertexts Storage to storage structure middle.
6. A method for multi-user searchable encryption with forward privacy according to claim 1, characterized in that, The specific steps for step S4 are as follows: S41, Data User Receive and store the public key from the administrator. and private key ; S42, Data User Enter keywords And calculate tags based on keywords. Obtain data owner global counter and global parameters ; S43, according to the label Global parameters and private key Generate search token .
7. A method for multi-user searchable encryption with forward privacy according to claim 1, characterized in that, The specific steps for step S5 are as follows: S51, the cloud server receives data from the data owner. Security update token ,in, For storage structure, For global counter, These are global parameters; storage structure Parsed as ,in, Keywords Address Keywords pointer, Keywords The ciphertext will Stored in middle, For mapping structure middle key is The corresponding value; storage structure Parsed as ,in, This is an internal encrypted message. For external encrypted text, Stored in middle, For mapping structure middle key is The corresponding value; set the global counter and global parameters To make it public; S52, receives the search token from the data user. ; S53, Initialize the search results set Let the current time be an empty set. for Obtain the broadcast key, decrypt the broadcast key, and obtain the search results set. ; Specifically, the operation steps of step S53 are as follows: S531, Initialize the search results set Let the current time be an empty set. The value is the global counter. ; S532, from the data owner list structure Take out , The key in the mapping structure is The corresponding value is obtained The internal cipher of time and external ciphertext ; S533, using a search token Internal encrypted text Process to obtain the broadcast key ; S534, using broadcast key external encrypted messages Perform decryption; if successful, you will obtain pointer information. If decryption fails, then set the time limit. The value is Return to step S532 to continue the operation until decryption is successful, or The value is 0; S54, pointer information Process the data to obtain a set of search results. And output it.
8. A method for multi-user searchable encryption with forward privacy according to claim 7, characterized in that, The steps for step S54 are as follows: S541, via pointer information Calculated address ; S542, from the data owner mapping structure Search , This is a mapping structure middle key is If the corresponding value can be retrieved, then... , pointer, It is encrypted; S543, from Get file identifier and operation information Add it to search results middle; S544, from Get pointer information Return to step S541 to perform the operation until no address can be retrieved; S545, Output the search results set If step S542 fails to find an address on the first search, then the output search result set will be... Empty.
9. A multi-user searchable encryption system with forward privacy, characterized in that, A method for multi-user searchable encryption with forward privacy as described in any one of claims 1-8, and a system for multi-user searchable encryption with forward privacy comprising: Administrator module: Generates public and private key tokens, and sends the public and private key tokens to the corresponding data owner module and data user module; The data owner module includes: Initialization unit: generates initialization information and discloses the initialization information to all units within the system; Owner Key Unit: Receives and stores the private key and public key token; Update entry input unit: Input update entry information, including: keywords, file, and operation information; Security update token generation unit: The private key token is used to encrypt the update entry information to obtain the inner index, and then the public key token is used to encrypt the inner index to generate a security update token. The security update token is then sent to the cloud server module. The data user module includes: User key unit: Receives and stores private key and public key tokens; Keyword input unit: Inputs keywords and time information, and discloses the keywords and time information to the search token generation unit; Search token generation unit: generates a search token using the private key token, keywords, and time information, and sends it to the search token receiving unit of the cloud server module; Result receiving unit: Receives data sent by the search data unit; The cloud server module includes: Search token receiving unit: Receives and stores security update tokens and search tokens; Search Data Unit: Uses the search token to search for the security update token. If the search is successful, it sends the corresponding data to the result receiving unit; if the search fails, it sends an empty string to the result receiving unit.
Citation Information
Patent Citations
Dynamic searchable encryption method and device supporting multiple users and storage medium
CN117459267A