Anti-quantum searchable encryption method for obfuscating search pattern and access pattern
Patent Information
- Application Number
- CN202511931790.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-19
- Publication Date
- 2026-08-28
- Estimated Expiration
- 2045-12-19
AI Technical Summary
[0005]本申请的目的在于,针对上述现有技术中的不足,提供一种混淆搜索模式与访问模式的抗量子可搜索加密方法,以解决现有技术中抗量子能力不足以及无法兼容双重保护模式的问题
[0018]The beneficial effects of this application are as follows: The client determines the real keyword root, virtual keyword root, and document identifier root based on multiple documents to be stored and their identifiers, and constructs multiple polynomial coefficient vectors. These vectors are then encrypted using a shared key with the server to obtain a search index. The client further encrypts each document to be stored using the shared key, resulting in an encrypted document set. The client then sends the search index and the encrypted document set to the cloud server for storage. Because the client and server pre-negotiate the shared key and use it to encrypt the polynomial coefficient vectors and documents, the data remains encrypted throughout transmission and cloud storage, effectively resisting attacks from traditional and quantum computing and protecting the privacy of sensitive data. Simultaneously, by constructing three core types of information—real keyword root, virtual keyword root, and document identifier root—the distribution of real keywords and the actual number of keywords contained in the documents are hidden. This prevents the cloud server from inferring the correspondence between keywords and documents through the index structure, conceals access patterns, and reduces the risk of privacy leaks at the source.
Smart Images

Figure CN121690556B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of quantum cryptography, and more specifically, to a quantum-resistant searchable encryption method that confuses search patterns with access patterns. Background Technology
[0002] Cloud computing has become a core infrastructure for data storage and processing, and outsourcing encrypted data to cloud servers has become a necessary means to protect privacy. However, traditionally encrypted data cannot be directly searched, leading to the development of Symmetric Searchable Encryption (SSE) technology. Currently, SSE supports data updates, multi-keyword searches, and other functions, with its core objective being dual protection of search and access patterns. Meanwhile, the development of quantum computers poses a significant threat to traditional cryptography, as they can easily crack commonly used public-key cryptography.
[0003] Currently, various technical solutions have emerged in the SSE field, including solutions that use dual-mode obfuscation technology to achieve privacy protection, solutions that combine user-defined trapdoors with homomorphic encryption to allow cloud servers to return results through inner product calculations, and quantum-resistant solutions based on lattice cryptography to address quantum threats. These solutions optimize SSE technology from different dimensions but each has its own focus.
[0004] However, these schemes may have the following problems: insufficient quantum resistance, high computation and communication costs and large latency, inability to simultaneously support dual protection modes of search mode and access mode, and defects in retrieval accuracy. Summary of the Invention
[0005] The purpose of this application is to provide a quantum-resistant searchable encryption method that confuses search mode and access mode to address the shortcomings of the prior art, thereby solving the problems of insufficient quantum resistance and incompatibility with dual protection modes in the prior art.
[0006] To achieve the above objectives, the technical solution adopted in this application is as follows: In a first aspect, this application provides a quantum-resistant searchable encryption method that confuses search patterns and access patterns, applied to a searchable encryption system, the searchable encryption system comprising: a client, a server, and a cloud server, the method comprising: The client determines the real keyword root, virtual keyword root, and document identifier root based on multiple documents to be stored and the identifier of each document to be stored, and constructs multiple polynomial coefficient vectors. The client encrypts each polynomial coefficient vector using a shared key with the server to obtain a search index. The client encrypts each document to be stored using the shared key to obtain an encrypted document set. The client sends the search index and the encrypted document set to the cloud server for storage. The search index includes multiple encrypted polynomial coefficient vectors corresponding to each document to be stored. The server obtains the query keywords sent by the client and generates a tuple set based on the query keywords. The server performs vector transformation on each element in the tuple set to obtain multiple element vectors. It encrypts each element vector based on the shared key to obtain multiple encrypted vectors. Each encrypted vector and its corresponding tag are used as trapdoors corresponding to the query keywords, and the trapdoors are sent to the cloud server. The tuple set includes multiple real matching tuples, multiple false positive tuples, and multiple non-matching tuples. The cloud server, based on the encryption vectors and corresponding tags in the trapdoor, uses an inner product predicate encryption algorithm to match the target index from at least one stored search index. It then sends the target encrypted text set corresponding to the target index in the encrypted text set to the client, so that the client can decrypt the target encrypted text set based on the shared key to obtain the search results corresponding to the query keywords.
[0007] Optionally, before the client constructs multiple polynomial coefficient vectors based on multiple documents to be stored and the identifiers of each document to be stored, the method further includes: The client generates a public key and a private key, and sends the public key to the server; The server generates a shared key, encrypts the shared key using the public key to obtain an encrypted shared key, and sends the encrypted shared key to the client. The client decrypts the encrypted shared key based on the private key to obtain the shared key.
[0008] Optionally, the step of determining the real keyword root, the virtual keyword root, and the document identifier root based on multiple documents to be stored and the identifiers of each document to be stored, and constructing multiple polynomial coefficient vectors, includes: The true keyword root is determined based on at least one document keyword in the document to be stored and the identifier of the document to be stored; The virtual keyword root is determined based on the preset virtual setting rules and the document keywords in the document to be stored; Determine the document identifier root based on the identifier of the document to be stored; Based on the real keyword roots of the document to be stored, the virtual keyword roots, and the document identifier roots, multiple polynomial coefficient vectors are determined.
[0009] Optionally, determining the true keyword root based on at least one document keyword in the document to be stored and the identifier of the document to be stored includes: Determine at least one document keyword in the document to be stored, and perform hash calculation on the identifier of the document to be stored based on a preset hash function to obtain the tag corresponding to the document to be stored; Determine the count of the document's keywords; The true keyword root is generated based on the document keywords, tags, and counts corresponding to the document to be stored.
[0010] Optionally, generating a tuple set based on the query keywords includes: Based on the query keywords, the preset hash value range, the preset counting threshold, and the first preset probability, multiple real matching tuples are generated. The plurality of virtual keyword roots are generated based on a preset identifier threshold and a second preset probability; The plurality of non-matching tuples are generated based on the preset hash value range and the second preset probability.
[0011] Optionally, the server generates multiple true matching tuples based on the query keywords, a preset hash value range, a preset counting threshold, and a first preset probability, including: Traverse each tag within the preset hash value domain and each count within the preset counting threshold. For the current tag and current count encountered, treat the query keyword, the current tag, and the current count as a candidate true matching tuple.
[0012] After the traversal is completed, multiple candidate real matching tuples are obtained. According to the first preset probability, multiple tuples are randomly selected from the multiple candidate real matching tuples as multiple real matching tuples.
[0013] Optionally, the cloud server matches the target index from at least one stored search index based on the encryption vectors and corresponding tags in the trapdoor, using an inner product predicate encryption algorithm, including: Iterate through each encrypted vector, and for the current encrypted vector, based on the current encrypted vector and its corresponding tag, filter out multiple initial search indices that match the tag from the search index; Traverse multiple initial screening search indices, and for the current initial screening search index, calculate the inner product of the current encryption vector and the current initial screening search index based on the inner product predicate encryption algorithm; Determine whether the inner product value is a preset value. If so, use the current initial screening search index as the target index.
[0014] Optionally, sending the target encrypted text set corresponding to the target index in the encrypted text set to the client includes: Based on the identifier of the target index, determine multiple candidate encrypted documents in the encrypted document set; The multiple candidate encrypted documents are deduplicated to obtain the target encrypted document.
[0015] Secondly, this application provides a searchable encryption system, which includes a client, a server, and a cloud server. The client, the server, and the cloud server are used to perform the steps of the quantum-resistant searchable encryption method for obfuscating search modes and access modes as described in the first aspect.
[0016] Thirdly, this application provides an electronic device, including: a processor, a storage medium, and a bus, wherein the storage medium stores machine-readable instructions executable by the processor, and when the electronic device is running, the processor communicates with the storage medium via the bus, and the processor executes the machine-readable instructions to perform the steps of the quantum-resistant searchable encryption method that confuses search modes and access modes as described above.
[0017] Fourthly, this application provides a computer-readable storage medium storing a computer program, which, when executed by a processor, performs the steps of the quantum-resistant searchable encryption method described above, which confuses search and access modes.
[0018] The beneficial effects of this application are as follows: The client determines the real keyword root, virtual keyword root, and document identifier root based on multiple documents to be stored and their identifiers, and constructs multiple polynomial coefficient vectors. These vectors are then encrypted using a shared key with the server to obtain a search index. The client further encrypts each document to be stored using the shared key, resulting in an encrypted document set. The client then sends the search index and the encrypted document set to the cloud server for storage. Because the client and server pre-negotiate the shared key and use it to encrypt the polynomial coefficient vectors and documents, the data remains encrypted throughout transmission and cloud storage, effectively resisting attacks from traditional and quantum computing and protecting the privacy of sensitive data. Simultaneously, by constructing three core types of information—real keyword root, virtual keyword root, and document identifier root—the distribution of real keywords and the actual number of keywords contained in the documents are hidden. This prevents the cloud server from inferring the correspondence between keywords and documents through the index structure, conceals access patterns, and reduces the risk of privacy leaks at the source.
[0019] The server receives the query keywords sent by the client and generates a set of tuples based on them. The server then performs vector transformation on each element in the tuple set, resulting in multiple element vectors. These vectors are then encrypted using a shared key, producing multiple encrypted vectors. Each encrypted vector, along with its corresponding label, serves as a trapdoor for the query keyword and is sent to the cloud server. The tuple set includes multiple real matching tuples, multiple fake positive tuples, and multiple non-matching tuples. By generating this set of tuples, the server ensures the trapdoors are random and disruptive. Even if the client repeatedly queries the same keyword, the server-generated trapdoors will not be recognized by the cloud server due to the random changes in the disruptive tuples, completely hiding the search pattern and resisting frequency analysis attacks. Furthermore, the server's encryption of the element vectors using the shared key prevents the cloud server from cracking the encrypted trapdoors, thus avoiding the leakage of query keywords during transmission and processing.
[0020] The cloud server, based on the encryption vectors and corresponding tags in the trapdoor, uses an inner product predicate encryption algorithm to match the target index from at least one stored search index. It then sends the target encrypted text set corresponding to the target index from its encrypted text set to the client, allowing the client to decrypt the target encrypted text set using a shared key to obtain the search results corresponding to the query keywords. The cloud server uses an inner product predicate encryption algorithm for matching, eliminating the need to decrypt encryption vectors, search indexes, and encrypted text sets. Matching calculations are performed only in ciphertext, ensuring zero privacy leakage throughout the process. Simultaneously, the cloud server filters corresponding document groups based on the tags in the trapdoor, avoiding a full scan of all stored search indexes and significantly reducing unnecessary computation. Furthermore, the matching process is based on a standardized algorithm, with simple and efficient computational logic, adaptable to real-world scenarios involving massive document storage and retrieval. Finally, the cloud server returns an encrypted text set corresponding to the target index, not plaintext results, ensuring the search results remain securely encrypted during transmission back to the client, avoiding the risk of data leakage during data transmission. Attached Figure Description
[0021] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0022] Figure 1 This is an application scenario diagram of a quantum-resistant searchable encryption method that confuses search and access modes, as provided in an embodiment of this application. Figure 2 This is a flowchart illustrating a quantum-resistant searchable encryption method that confuses search and access modes, as provided in an embodiment of this application. Figure 3 This is a schematic diagram of a process for generating a shared key provided in an embodiment of this application; Figure 4 This is a schematic diagram of a process for constructing multiple polynomial coefficient vectors provided in an embodiment of this application; Figure 5 This is a flowchart illustrating a method for determining the true keyword root provided in an embodiment of this application; Figure 6 This is a schematic diagram of a process for generating a set of tuples provided in an embodiment of this application; Figure 7 This is a schematic diagram of a process for matching a target index provided in an embodiment of this application; Figure 8This application provides a quantum-resistant searchable encryption device that confuses search and access modes; Figure 9 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0023] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. It should be understood that the accompanying drawings in this application are for illustrative and descriptive purposes only and are not intended to limit the scope of protection of this application. Furthermore, it should be understood that the schematic drawings are not drawn to scale. The flowcharts used in this application illustrate operations implemented according to some embodiments of this application. It should be understood that the operations in the flowcharts may not be implemented in sequence, and steps without logical contextual relationships may be reversed or implemented simultaneously. In addition, those skilled in the art, guided by the content of this application, may add one or more other operations to the flowcharts, or remove one or more operations from the flowcharts.
[0024] Furthermore, the described embodiments are merely some, not all, of the embodiments of this application. The components of the embodiments of this application described and illustrated herein can typically be arranged and designed in various different configurations. Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.
[0025] It should be noted that the term "comprising" will be used in the embodiments of this application to indicate the presence of the features declared thereafter, but does not exclude the addition of other features.
[0026] Symmetric searchable encryption, as a mature system supporting dynamic updates, multi-keyword queries, and fuzzy searches, aims to provide dual protection for both search and access modes. Obfuscated Searchable Symmetric Encryption (OSSE) schemes employ dual-mode obfuscation techniques, but suffer from excessive computational and communication overhead and lack resistance to quantum attacks.
[0027] In contrast, patent CN116383877A, "Keyword Retrieval and Verification Method and Device with Hidden Patterns," hides search and access patterns by using user-defined keyword trapdoors and homomorphic encryption, avoiding the high latency issues of multi-server interaction in the OSSE scheme. This scheme authorizes users to generate trapdoors independently, and the cloud server returns search results simply by calculating the inner product of the trapdoor and the keyword index, thus hiding the specific search and access patterns. However, this scheme still relies on traditional public-key cryptography for key distribution and does not consider security risks in a quantum computing environment. Specifically, the rapid development of quantum computers poses a serious challenge to modern cryptographic systems. Quantum computers, using algorithms such as Shor's algorithm, can efficiently crack public-key cryptography based on number-theory-hard problems, potentially impacting symmetric encryption. The actual deployment of SSE relies on key exchange protocols or secure channel establishment, processes that typically require public-key cryptographic components; therefore, the key exchange layer and encryption primitives may be vulnerable to quantum attacks.
[0028] Although the patent "CN202310324167.2 Keyword Retrieval and Verification Method and Device for Hidden Mode" achieves efficient multi-keyword search on a single server, its security is based on homomorphic encryption and pseudo-random functions, and does not use quantum-resistant cryptographic primitives. Therefore, it faces the risk of systemic security failure in a quantum computing environment.
[0029] In contrast, the patent "CN202510847003.7 Symmetric Searchable Encryption Method Based on LWE Problem Satisfying Post-Quantum Security" constructs key indexes and trapdoors using lattice cryptography, which can resist quantum algorithm attacks, but such schemes usually cannot hide search and access patterns at the same time.
[0030] Based on this, this application proposes a quantum-resistant searchable encryption method that obfuscates search and access patterns. The client uses a shared key to generate an obfuscated encrypted index for the document to be stored, achieving resistance to quantum attacks and obfuscating access patterns. The server uses the shared key to encrypt an element vector containing randomly generated elements, creating a trapdoor. This method not only resists quantum attacks but also thoroughly obfuscates search and access patterns. The cloud server performs inner product predicate encryption matching based on the obfuscated encrypted index and the trapdoor, returning only the matched target encrypted text set. It cannot obtain the true keyword distribution or search statistical features, thus enabling efficient and secure retrieval of encrypted data in the cloud. This method is suitable for sensitive data outsourcing scenarios, achieving a balance between long-term data privacy protection and sublinear retrieval efficiency.
[0031] Before introducing the application method, let's first introduce some technical terms: Quantum-resistant cryptography refers to a cryptographic system that can resist quantum computing attacks. Its security is based on mathematical problems that are difficult for quantum computers to solve (such as lattice problems and multivariable equations), ensuring long-term security in both classical and quantum environments.
[0032] Searchable encryption refers to a technology that allows users to perform keyword searches directly on encrypted data. The server only returns the matching ciphertext results and cannot obtain the plaintext content, thus protecting the privacy of cloud data.
[0033] Access patterns refer to the ability of a cloud server to infer the specific distribution of target keywords within a set of encrypted documents by observing user query behavior during a search operation using a symmetric searchable encryption scheme. This means the server can determine which specific documents contain the keyword. Such pattern leaks directly expose the relationship between document content and keywords, compromising data privacy.
[0034] Search patterns refer to the ability of a cloud server to identify repetitive search operations when a user repeatedly submits the same keyword in a symmetric searchable encryption scheme, by comparing historical query records. Disclosure of this pattern reveals the statistical characteristics of user search behavior, providing a basis for frequency analysis attacks, and potentially allowing the deduction of semantic information or business logic related to sensitive keywords.
[0035] Next, refer to Figure 1 This paper introduces the application scenarios of quantum-resistant searchable encryption methods that obfuscate search and access patterns. These methods are applied to searchable encryption systems, which include clients, servers, and cloud servers. The client, the owner of the document to be stored, can encrypt the document and upload it to the cloud server for storage. For example, a top-tier hospital might possess medical records. The server can generate a trapdoor based on the client's search keywords and send it to the cloud server. For example, a third-party medical data collaboration platform might not possess the medical records. The cloud server stores the encrypted medical records and indexes, performs a search based on the trapdoor, and sends the search results back to the client through the server. The cloud server performs a purely numeric inner product matching operation, does not understand any plaintext meaning, and cannot infer any search or access patterns. A cloud server could be, for example, Alibaba Cloud, providing storage and computing resources.
[0036] Next, refer to Figure 2 This paper introduces the specific process of a quantum-resistant searchable encryption method that confuses search and access modes. Figure 2 This is a flowchart illustrating a quantum-resistant searchable encryption method that confuses search and access modes, as provided in an embodiment of this application.
[0037] S201. The client determines the real keyword root, virtual keyword root, and document identifier root based on multiple documents to be stored and the identifiers of each document to be stored, and constructs multiple polynomial coefficient vectors. The client encrypts each polynomial coefficient vector using a shared key with the server to obtain a search index. The client encrypts each document to be stored using the shared key to obtain an encrypted document set. The client sends the search index and the encrypted document set to the cloud server for storage. The search index includes multiple encrypted polynomial coefficient vectors corresponding to each document to be stored.
[0038] Optionally, the client can pre-organize all documents to be stored and assign a unique identifier to each document. Then, based on the documents to be stored and their identifiers, the client determines the real keyword roots, virtual keyword roots, and document identifier roots.
[0039] Among them, the real keyword root is the core information block extracted from the document to be stored and related to the real keywords. It is the key basis for subsequent retrieval matching. The virtual keyword root is a false information block pre-set by the client and does not correspond to any real document content. It is only used to confuse the distribution of real keywords. The document identifier root is an identifier information block that uniquely corresponds to each document to be stored. It is mainly used to generate interfering matching items to further confuse the retrieval process.
[0040] Optionally, the size of the polynomial coefficient vector is the preset maximum number of keywords per document + 2, corresponding to the sum of the total number of real keyword roots, the total number of virtual keyword roots, and the total number of document identifier roots. Specifically, the number of real keyword roots corresponds to the number of document keywords in the document to be stored, and its number does not exceed the preset maximum number of keywords per document. The total number of virtual keyword roots is the sum of the difference between the maximum number of keywords per document and the number of real keyword roots, plus 1. The total number of document identifier roots is 1. By unifying the size of each polynomial coefficient vector, the actual number of keywords can be hidden.
[0041] As an alternative implementation, the client and server can pre-agree on a shared key based on the Module-Lattice Key Encapsulation Mechanism (ML-KEM) before storing and retrieving data. ML-KEM can ensure the confidentiality of the shared key under quantum computing attacks.
[0042] After the client and server agree on a shared key, the client can use the shared key to encrypt each polynomial coefficient vector and the document to be stored, to ensure that the encrypted search index and encrypted document set are not affected by quantum attacks when sent to the cloud server.
[0043] Optionally, the client can call To encrypt the i-th polynomial coefficient vector This yields the coefficient vector of the i-th polynomial. The corresponding encrypted polynomial coefficient vector Functional Hiding Inner Product Predicate Encryption (FHIPPE) is a specific encryption algorithm for calculating inner products in ciphertext. It allows inner product operations to be performed directly on encrypted data without prior decryption, and it hides the specific function of the operation, ensuring that attackers cannot distinguish between different vectors corresponding to the ciphertext. Used to Converted into a ciphertext format that cannot be directly read. For shared keys.
[0044] Optionally, the encrypted polynomial coefficient vectors corresponding to all polynomial coefficient vectors can form a search index. This search index serves as a retrieval directory for the encrypted document set. The cloud server can use the index to quickly filter potentially matching documents, avoiding a full traversal of all encrypted documents and improving retrieval efficiency.
[0045] S202. The server obtains the query keywords sent by the client and generates a tuple set based on the query keywords. The server performs vector transformation on each element in the tuple set to obtain multiple element vectors. Based on the shared key, the server encrypts each element vector to obtain multiple encrypted vectors. Each encrypted vector and its corresponding label are used as trapdoors corresponding to the query keywords, and the trapdoors are sent to the cloud server. The tuple set includes multiple real matching tuples, multiple false positive tuples, and multiple non-matching tuples.
[0046] Optionally, in a document query scenario, users can perform searches through a client. After extracting query keywords from the information entered by the user, the client encrypts the query keywords using a shared key and sends the resulting ciphertext to the server. The server receives the ciphertext sent by the client and decrypts it using the shared key to obtain the query keywords in plaintext form.
[0047] Optionally, the server generates a tuple set containing three types of tuples based on the query keywords. The tuple set includes multiple tuples, each containing an element and its corresponding label. The label for each element can be determined using a preset hash function based on the element's identifier.
[0048] Of the three types of tuples, the first type is the true matching tuple. The true matching tuple is a valid tuple that can match the target document, generated based on the query keywords and preset classification rules. It includes the true matching element and the corresponding tag.
[0049] The number of true matching tuples can be determined based on a preset hash value range, a pre-designed numerical range, and a first preset probability of a preset hash function. The preset hash value range includes multiple labels, and the pre-designed numerical range includes multiple counts. Specifically, the number of true matching tuples is the product of the preset hash value range, the pre-designed numerical range, and the first preset probability. The first preset probability is a number less than 1, used to control the false negative rate and prevent access pattern leakage. For example, if the preset hash value range |h| is 10, and the pre-designed numerical range... If the initial probability p is 0.9, then the number of true matching tuples is 10 × 3 × 0.9 = 27, with 3 missed. Since the true matching tuples cover the vast majority of possibilities, the small number of missed detections will not affect the core search performance.
[0050] The second category is false positive tuples. False positive tuples are interference tuples generated using document identifiers. They are invalid matching information that causes interference. False positive tuples include false positive elements and their corresponding tags.
[0051] The number of false positive tuples follows a geometric distribution rule satisfying a second preset probability and is determined based on a preset identifier threshold. This preset identifier threshold can be a preset maximum number of document identifiers. Specifically, all identifiers within the preset identifier threshold are iterated over. For each identifier encountered, a number is randomly determined using a geometric distribution satisfying the second preset probability. After the iteration is complete, the numbers corresponding to all identifiers are summed to obtain the number of false positive tuples. For example, if the preset identifier threshold is 100 and the second preset probability q is 0.01, then for each identifier ID, a number is randomly generated according to a geometric distribution with q = 0.01. For instance, ID 1 generates 2 elements, ID 3 generates 1 element, and ID 7 generates 4 elements, ultimately resulting in 52 false positive tuples.
[0052] It's worth noting that a lower second preset probability results in fewer false positive tuples, while a higher second preset probability results in more false positive tuples. The second preset probability cannot be set too high, otherwise too many false positive elements will be generated, requiring the client to filter a large number of invalid documents after decryption, impacting efficiency. Conversely, it cannot be set too low, otherwise the interference will be insufficient and ineffective obfuscation will be impossible.
[0053] The third category is non-matching tuples, which are completely irrelevant interference tuples generated using virtual keyword roots. Non-matching tuples include non-matching elements and their corresponding tags.
[0054] The number of non-matching tuples follows a geometric distribution rule satisfying a second preset probability, determined by a preset hash value range. Specifically, each tag in the preset hash value range is traversed. For the current tag, a number is randomly generated according to the geometric distribution satisfying the second preset probability. After traversal, the numbers corresponding to all tags are added together, which gives the number of non-matching tuples. For example, if the preset hash value range is 10 and the second preset probability q is 0.01, then for each tag, a number is generated at any time according to the geometric distribution of q = 0.01. For example, 3 are generated for tag 1, 2 for tag 2, and 1 for tag 5, resulting in a total of 28 non-matching tuples. Non-matching tuples do not match any documents and do not increase the false positive rate, only increasing the randomness of the trapdoor.
[0055] Wherein, the first preset probability p and the second preset probability q satisfy the following relationship: Where TPR is the probability that the target document (including the document containing the query keywords) is successfully found.
[0056] Optionally, after the server generates the tuple set, it performs vector transformation on the elements of each tuple. Specifically, the text / identifier combination in element f is converted into a fixed-length element vector. ,in, This is the preset maximum number of keywords in a single document, and x is the concatenated value obtained from element transformation. All element vectors have the same length and the same size as the polynomial coefficient vector, thus accommodating subsequent encryption and inner product matching.
[0057] Optionally, it can be based on Each element vector is encrypted to obtain multiple encrypted vectors. Among them, Used to generate tokens, i.e., encryption vectors, where sk is the shared key. It is an element vector.
[0058] After obtaining multiple encrypted vectors, the set of each encrypted vector and its corresponding label is used as the trapdoor corresponding to the query keyword. Since the three types of tuples generated are randomly generated based on the first and second preset probabilities, each query keyword has an independent and randomized trapdoor, thus completely obfuscating the search pattern.
[0059] S203. The cloud server, based on the encryption vectors and corresponding tags in the trapdoor, uses the inner product predicate encryption algorithm to match the target index from at least one stored search index. It then sends the target encrypted text set corresponding to the target index to the client, enabling the client to decrypt the target encrypted text set based on the shared key and obtain the search results corresponding to the query keywords.
[0060] Optionally, the cloud server receives the trapdoor sent by the server and directly selects a subset of encrypted polynomial coefficient vectors with consistent labels from the stored search index based on the labels corresponding to each encrypted vector, avoiding a full traversal.
[0061] For each selected encrypted polynomial coefficient vector, the cloud server calls... The function calculates the inner product of candidate indices and their corresponding encryption vectors using an inner product predicate encryption algorithm. Used for querying or retrieving. This represents the vector of coefficients of the i-th selected encrypted polynomial. This represents the encryption vector. The algorithm only checks if the calculation result meets a preset condition; decryption is not required. If it does, the match is successful, and the document identifier corresponding to the candidate index is recorded. The preset condition can be: an inner product value of 0.
[0062] After the cloud server traverses all encryption vectors and their corresponding candidate indices, it collects all successfully matched document identifiers, finds the target encrypted document set corresponding to the encrypted document set, and sends the target encrypted document set to the client through the server.
[0063] After receiving the target encrypted document set, the client decrypts it using the shared key with the server, filtering out a small number of false positives, which may be caused by spurious positive tuples. Finally, the client obtains the plaintext search results corresponding to the query keywords. True matching documents are returned with a first preset probability, and non-true matching documents are returned with a second preset probability. Each encrypted vector matches at most one document.
[0064] Optionally, the interaction between the client, the server, and the cloud server is a single-round communication. When performing a search, the cloud server can simultaneously perform matching calculations on multiple encrypted vectors and multiple search indices to achieve parallel processing and improve processing efficiency.
[0065] In this embodiment, the client determines the real keyword root, virtual keyword root, and document identifier root based on multiple documents to be stored and their identifiers. It then constructs multiple polynomial coefficient vectors and encrypts these vectors using a shared key with the server to obtain a search index. The client further encrypts each document to be stored using the shared key, resulting in an encrypted document set. Finally, the client sends the search index and the encrypted document set to the cloud server for storage. Because the client and server pre-negotiate the shared key and use it to encrypt the polynomial coefficient vectors and documents, the data remains encrypted throughout transmission and cloud storage, effectively resisting attacks from traditional and quantum computing and protecting the privacy of sensitive data. Simultaneously, by constructing three types of core information—real keyword root, virtual keyword root, and document identifier root—the distribution of real keywords and the actual number of keywords contained in the documents are hidden. This prevents the cloud server from inferring the correspondence between keywords and documents through the index structure, concealing access patterns and reducing the risk of privacy leaks at the source.
[0066] The server receives the query keywords sent by the client and generates a set of tuples based on them. The server then performs vector transformation on each element in the tuple set, resulting in multiple element vectors. These vectors are then encrypted using a shared key, producing multiple encrypted vectors. Each encrypted vector, along with its corresponding label, serves as a trapdoor for the query keyword and is sent to the cloud server. The tuple set includes multiple real matching tuples, multiple fake positive tuples, and multiple non-matching tuples. By generating this set of tuples, the server ensures the trapdoors are random and disruptive. Even if the client repeatedly queries the same keyword, the server-generated trapdoors will not be recognized by the cloud server due to the random changes in the disruptive tuples, completely hiding the search pattern and resisting frequency analysis attacks. Furthermore, the server's encryption of the element vectors using the shared key prevents the cloud server from cracking the encrypted trapdoors, thus avoiding the leakage of query keywords during transmission and processing.
[0067] The cloud server, based on the encryption vectors and corresponding tags in the trapdoor, uses an inner product predicate encryption algorithm to match the target index from at least one stored search index. It then sends the target encrypted text set corresponding to the target index from its encrypted text set to the client, allowing the client to decrypt the target encrypted text set using a shared key to obtain the search results corresponding to the query keywords. The cloud server uses an inner product predicate encryption algorithm for matching, eliminating the need to decrypt encryption vectors, search indexes, and encrypted text sets. Matching calculations are performed only in ciphertext, ensuring zero privacy leakage throughout the process. Simultaneously, the cloud server filters corresponding document groups based on the tags in the trapdoor, avoiding a full scan of all stored search indexes and significantly reducing unnecessary computation. Furthermore, the matching process is based on a standardized algorithm, with simple and efficient computational logic, adaptable to real-world scenarios involving massive document storage and retrieval. Finally, the cloud server returns an encrypted text set corresponding to the target index, not plaintext results, ensuring the search results remain securely encrypted during transmission back to the client, avoiding the risk of data leakage during data transmission.
[0068] Next, refer to Figure 3 The steps performed prior to step S201 above will be described. Among them, Figure 3 This is a schematic diagram of a process for generating a shared key provided in an embodiment of this application.
[0069] S301. The client generates a public key and a private key, and sends the public key to the server.
[0070] Specifically, the client runs the ML-KEM key generation algorithm to generate a public key and a private key. The public key is used only to encrypt data, while the private key can be used to decrypt data encrypted with the corresponding public key.
[0071] S302. The server generates a shared key and encrypts the shared key using the public key to obtain an encrypted shared key, which is then sent to the client.
[0072] Specifically, after receiving the public key from the client, the server first randomly generates a symmetric key as the shared key. Then, based on ML-KEM, the encapsulation function uses the public key to encrypt the shared key, and sends the encrypted shared key to the client. The encapsulation function binds the shared key to the lattice structure corresponding to the public key, forming indistinguishable ciphertext.
[0073] S303. The client decrypts the encrypted shared key using the private key to obtain the shared key.
[0074] It is worth noting that the private key used by the client for decryption matches the public key received by the server.
[0075] In this embodiment, the client and server share a shared key, which provides a security foundation for subsequent operations such as the client generating a search index, the server generating a trapdoor, and the cloud server decrypting the search results, thereby achieving long-term key security in a quantum computing environment.
[0076] Next, refer to Figure 4 The specific steps in step S201 above, namely determining the real keyword roots, virtual keyword roots, and document identifier roots, and constructing multiple polynomial coefficient vectors, are described below. Figure 4 This is a schematic diagram of a process for constructing multiple polynomial coefficient vectors provided in an embodiment of this application.
[0077] S401. Determine the true keyword root based on at least one document keyword in the document to be stored and the identifier of the document to be stored.
[0078] Among them, document keywords are the core information that actually exists in each document to be stored. The identifier of each document to be stored is the unique distinguishing information for each document to be stored.
[0079] As an optional implementation, the client first extracts all document keywords from each document to be stored. Then, it calculates the hash value of the document's identifier using a preset hash function, uses this hash value as a tag, and generates a unique count based on the number of times the document keywords appear under the same tag. Finally, the document keywords, tags, and counts are used as the actual keyword root.
[0080] It's worth noting that the preset hash function outputs integers within a fixed range to obtain the tags. This fixed range is the aforementioned preset counting threshold. Since multiple documents to be stored may correspond to the same tag, it's necessary to use counting to distinguish document keywords in different documents, thus ensuring that the same document keyword does not conflict under the same tag.
[0081] Specifically, the real keyword root can be represented as ,in, Let i be the keyword of the i-th document in the document to be stored. It's a tag. For the i-th document keyword in the tag, The occurrence count.
[0082] S402. Determine the virtual keyword root based on the preset virtual setting rules and the document keywords in the document to be stored.
[0083] Specifically, virtual keywords are generated based on the virtual setting rules and the document keywords in the document to be stored, and then virtual keyword roots are generated based on the virtual keywords.
[0084] The preset virtual keyword setting rule can be: the virtual keyword does not overlap with and is unrelated to the keywords of any document in the document to be stored. For example, if the document keyword is "apple," then the virtual keyword could be "solving questions." If the total number of virtual keyword roots is greater than 1, then the virtual keywords can be different.
[0085] For example, a virtual keyword root can be represented as .in, This is the xth virtual keyword, where 0 and 0 are preset values used for formatting.
[0086] S403. Determine the document identifier root based on the identifier of the document to be stored.
[0087] For example, the document identifier root can be represented as ,in, This is the identifier for the document to be stored, where 0 and -1 are preset values used for formatting.
[0088] S404. Determine multiple polynomial coefficient vectors based on the real keyword roots, virtual keyword roots, and document identifier roots of the document to be stored.
[0089] Specifically, the real keyword roots, virtual keyword roots, and document identifier roots of the document to be stored are converted into a polynomial coefficient vector through polynomial interpolation.
[0090] In this embodiment, the real keyword root, virtual keyword root, and document identifier root of the document to be stored are determined respectively, thereby ensuring that subsequent searches can accurately find the target document and hide the core privacy of the document from the source.
[0091] Furthermore, referring to Figure 5 The method for determining the true keyword root in step S401 above will be described. Specifically, Figure 5 This is a flowchart illustrating a method for determining the true keyword root provided in an embodiment of this application.
[0092] S501. Determine at least one document keyword in the document to be stored, and perform hash calculation on the identifier of the document to be stored based on a preset hash function to obtain the tag corresponding to the document to be stored.
[0093] Among them, the document keywords in the same document to be stored are not repeated.
[0094] S502. Determine the count of document keywords.
[0095] Specifically, the client sorts all extracted document keywords from all documents to be stored according to a preset sorting rule, where each repeated keyword is sorted. This preset sorting rule includes, for example, the order in which keywords appear. A consecutive non-negative integer is assigned to each sorted document keyword as a counter.
[0096] S503. Generate real keyword roots based on the document keywords, tags, and counts corresponding to the document to be stored.
[0097] Specifically, the document keywords, tags, and counts corresponding to the document to be stored are concatenated according to a preset format to obtain the actual keyword roots.
[0098] In this embodiment, the true keyword root includes the document keywords, tags, and counts corresponding to the document to be stored, but does not include the full text content of the document to be stored. It only focuses on the core information required for retrieval, thereby protecting privacy.
[0099] Next, refer to Figure 6 The step S202 above, which generates a set of tuples based on the query keywords, will be described in detail. Figure 6 This is a schematic diagram of a process for generating a set of tuples provided in an embodiment of this application.
[0100] S601. Generate multiple real matching tuples based on the query keywords, preset hash value range, preset counting threshold and first preset probability.
[0101] Specifically, the server iterates through the tags in the preset hash value field and the counts in the preset counting threshold. For the current tag and current count encountered during the iteration, it determines whether to retain them according to a first preset probability. If retained, the query keyword, current tag, and current count are used as elements in the true matching tuple, and this element is concatenated with the corresponding tag to form a single true matching tuple. After the iteration is complete, multiple true matching tuples are obtained. If not retained, the current tag and current count are discarded, and no corresponding true matching tuple is generated. The corresponding tag is the currently encountered tag.
[0102] It is worth noting that the labels within the preset hash value range refer to labels ranging from 1 to the preset hash value range. For example, if the preset hash value range is 10, then the labels within the preset hash value range are integers from 1 to 10. The count in the preset counting threshold refers to the count ranging from 0 to the preset counting threshold. For example, if the preset counting threshold is 100, then the count in the preset counting threshold refers to integers from 0 to 100.
[0103] S602. Generate multiple virtual keyword roots based on the preset identifier threshold and the second preset probability.
[0104] Specifically, the server iterates through all identifiers within a preset threshold. For each current identifier encountered, it randomly determines the number corresponding to that identifier using a geometric distribution that satisfies a second preset probability, and generates the corresponding number of elements based on that identifier. The server then performs a hash calculation on the current identifier using a preset hash function to obtain the corresponding label. Finally, it concatenates and combines the elements and labels of each current identifier to obtain the corresponding number of virtual keyword roots.
[0105] It is worth noting that the identifiers within the preset identifier threshold are identifiers with values from 1 to the preset identifier threshold. For example, if the preset identifier threshold is 500, then the identifiers within the preset identifier threshold refer to integers between 1 and 500.
[0106] For example, if the preset identifier threshold is 500, then the identifiers are traversed. For the current identifier id encountered during sampling, the number of samples corresponding to the current identifier id is randomly determined using a geometric distribution that satisfies the second preset probability q. ,generate A virtual keyword root ,in, It is the hash value of the current identifier id. 0 and -1 are preset values used for format padding.
[0107] S603. Generate multiple non-matching tuples based on the preset hash value range and the second preset probability.
[0108] Specifically, the system iterates through each label in the preset hash value domain. For the current label, it randomly determines the number of elements corresponding to the current identifier using a geometric distribution that satisfies the second preset probability. Based on the current identifier, it generates the number of elements corresponding to the current label. The preset value is used as the label corresponding to the current label; that is, the label corresponding to the element included in the non-matching tuple can be the preset value.
[0109] For example, if the preset hash value field is 10, then the tags are traversed. Sampling is performed on the current label being traversed. The current label is randomly determined using a geometric distribution that satisfies the second preset probability q. Corresponding quantity ,generate A virtual keyword root The -1 and 0 values are preset values used for formatting.
[0110] In this embodiment, multiple real matching tuples, multiple fake positive tuples, and multiple non-matching tuples are generated, so that the generated trapdoor can confuse the search mode and the access mode.
[0111] As an optional implementation, the specific process for generating multiple true matching tuples is as follows: Traverse each tag within a preset hash value range and each count within a preset counting threshold. For the current tag and current count encountered during traversal, the query keyword, the current tag, and the current count are treated as a candidate true matching tuple. After traversal, multiple candidate true matching tuples are obtained. According to a first preset probability, multiple tuples are randomly selected from these candidate true matching tuples to form multiple true matching tuples.
[0112] For example, if the preset hash value range is 10, the preset counting threshold is 100, and the first preset probability is 0.9, then the tags are traversed. And counting For the current tag that is being traversed and current count Add tuples with a probability of 0.9 .
[0113] Next, refer to Figure 7 The step S203 above, in which the cloud server matches the target index from at least one stored search index, is described below. Figure 7 This is a schematic diagram of a process for matching a target index provided in an embodiment of this application.
[0114] S701. Traverse each encryption vector. For the current encryption vector that has been traversed, based on the current encryption vector and its corresponding tag, filter out multiple initial search indices that match the tag from the search index.
[0115] Specifically, the cloud server receives a trapdoor sent by the server. The trapdoor contains multiple encrypted vectors, each bound to a unique tag. The cloud server iterates through each encrypted vector in the trapdoor. For the current encrypted vector, it first extracts its corresponding tag, and then selects the search indexes whose tags match the tag of the current encrypted vector from all stored search indexes, using them as the initial search indexes.
[0116] This step only retains candidate indexes that may match, excluding all irrelevant indexes that do not match the tags, thereby avoiding full calculation of all search indexes and significantly improving retrieval efficiency.
[0117] S702. Traverse multiple initial screening search indices. For the current initial screening search index, calculate the inner product of the current encryption vector and the current initial screening search index based on the inner product predicate encryption algorithm.
[0118] The inner product predicate encryption algorithm involves multiplying the current encryption vector by the corresponding number in the current initial screening search index, and then summing all the products to obtain an inner product value.
[0119] S703. Determine whether the inner product value is the preset value. If so, use the current initial screening search index as the target index.
[0120] Specifically, the preset value can be 0. If the inner product value is 0, the current initial screening search index will be used as the target index.
[0121] In this embodiment, the cloud server efficiently and accurately finds the target index from a large number of encrypted indexes without ever touching the plaintext, thus ensuring privacy and security while meeting the efficiency and accuracy requirements of practical applications.
[0122] Next, we will describe the specific process of sending the target encrypted text set corresponding to the target index in step S203 above to the client.
[0123] Optionally, multiple candidate encrypted documents in the encrypted collection can be determined based on the identifier of the target index.
[0124] Specifically, when the client uploads the search index and encrypted document set, the encrypted index of each document has been bound to the encrypted document set of that document in advance using the same identifier.
[0125] Optionally, multiple candidate encrypted documents can be deduplicated to obtain the target encrypted document.
[0126] Specifically, since the trapdoor contains multiple encryption vectors, there may be a situation where multiple encryption vectors match the index of the same document at the same time, resulting in duplicate candidate documents, so deduplication is required.
[0127] In this embodiment, by deduplicating multiple candidate encrypted documents, the computational burden on the client is reduced and the search experience is improved.
[0128] This application provides a quantum-resistant searchable encryption device that confuses search and access modes, such as... Figure 8 As shown, the device includes: a quantum-resistant key management module, an index construction module, a trapdoor generation module, and a secure retrieval execution module. Among them: The quantum-resistant key management module includes a key generation interface, a public key encapsulation interface, a ciphertext transmission interface, a key decapsulation interface, and a shared key verification unit. Specifically, the key generation interface supports clients in generating quantum-resistant public-private key pairs, providing the foundation for public key transmission and shared key decryption; the public key encapsulation interface receives the public key sent by the client, enabling the server to encrypt the generated shared key using that public key, avoiding plaintext transmission of the shared key; the ciphertext transmission interface handles the secure transmission of the encrypted shared key across modules / devices; the key decapsulation interface is called by the client to decrypt the encrypted shared key using its own stored private key, restoring the original shared key; and the shared key verification unit verifies whether the decrypted shared key matches the shared key generated by the server, ensuring that both keys are synchronized.
[0129] The index building module includes a polynomial generation interface, a vector encoding unit, a predicate encryption interface, a virtual root injection unit, and an index upload interface. Specifically, the polynomial generation interface generates a polynomial adapted for subsequent encryption based on the real keyword roots, virtual keyword roots, and document identifier roots of the document to be stored; the vector encoding unit converts the generated polynomial into a fixed-length polynomial coefficient vector, providing a standardized data format for encryption and inner product matching; the predicate encryption interface calls a quantum-resistant shared key to perform encryption operations on the polynomial coefficient vector, generating an encrypted index; the virtual root injection unit generates virtual keyword roots according to preset rules and injects them into the index building process, obfuscating the distribution of real keywords and hiding the access mode; the index upload interface synchronously uploads the encrypted search index and the corresponding encrypted document set to the cloud server, completing the outsourced data storage.
[0130] The trapdoor generation module includes a predicate construction interface, a geometric distribution sampling unit, a vector conversion interface, a token encryption unit, and a token set transmission interface. Specifically, the predicate construction interface is used to construct true matching predicates, false positive predicates, and non-matching predicates based on parameters such as query keywords, preset hash value range, and counting threshold; the geometric distribution sampling unit is used to determine the number of false positive elements and non-matching elements generated by random sampling according to a second preset probability, ensuring the randomness of interference information; the vector conversion interface is used to convert the constructed elements into fixed-length element vectors to adapt to the subsequent token encryption process; the token encryption unit is used to encrypt the element vectors using a shared key to generate encrypted vectors; and the token set transmission interface is used to combine all encrypted tokens and their corresponding tags into a complete trapdoor and transmit it to the cloud server.
[0131] The secure retrieval execution module includes a tag filtering interface, an inner product matching unit, a probabilistic result collector, an identifier deduplication unit, and a ciphertext return interface. Specifically, the tag filtering interface receives the encrypted vector and tags from the trapdoor and filters out initial search indices with matching tags from the cloud-stored search index, narrowing the matching range. The inner product matching unit calculates the inner product of the encrypted token and the initial search index based on the inner product predicate encryption algorithm, achieving precise matching of the ciphertext domain. The probabilistic result collector determines whether the inner product result is a preset value; if so, it marks the corresponding initial search index as the target index and collects all successfully matched target indices. The identifier deduplication unit associates the corresponding candidate encrypted documents with the unique identifier of the target index and removes duplicate encrypted documents to avoid result redundancy. The ciphertext return interface transmits the deduplicated target encrypted documents to the client, ensuring secure result transmission and ultimately supporting the client in decrypting and obtaining valid search results.
[0132] This application also provides a searchable encryption system, which includes a client, a server, and a cloud server. The client, server, and cloud server are used to execute a quantum-resistant searchable encryption method that confuses search modes and access modes.
[0133] This application also provides an electronic device, such as... Figure 9 The diagram shown is a structural schematic of an electronic device provided in an embodiment of this application, including a processor 901, a memory 902, and a bus. The memory 902 stores machine-readable instructions executable by the processor 901. When the computer device is running, the processor 901 and the memory 902 communicate via the bus. The processor 901 executes the machine-readable instructions to perform the aforementioned quantum-resistant searchable encryption method that confuses search and access modes.
[0134] This application also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, performs the steps of the above-described quantum-resistant searchable encryption method that confuses search and access modes.
[0135] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems and devices described above can be referred to the corresponding processes in the method embodiments, and will not be repeated here. In the several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. Furthermore, multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed mutual coupling or direct coupling or communication connection can be through some communication interfaces; the indirect coupling or communication connection of devices or modules can be electrical, mechanical, or other forms.
[0136] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. If the functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this invention. The aforementioned storage medium includes: USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, optical disks, and other media capable of storing program code.
[0137] The above are merely specific embodiments of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.
Claims
1. A quantum-resistant searchable encryption method that confuses search patterns and access patterns, characterized in that, Applied to a searchable encryption system, the searchable encryption system comprising: a client, a server, and a cloud server, the method comprising: The client determines the real keyword root, virtual keyword root, and document identifier root based on multiple documents to be stored and the identifiers of each document. It then constructs multiple polynomial coefficient vectors and encrypts each polynomial coefficient vector using a shared key with the server to obtain a search index. The client further encrypts each document to be stored using the shared key to obtain an encrypted document set. The client then sends the search index and the encrypted document set to the cloud server for storage. The search index includes multiple encrypted polynomial coefficient vectors corresponding to each document to be stored. The real keyword root is a core information block related to the real keywords extracted from the documents to be stored. The virtual keyword root is pre-set by the client to obfuscate the distribution of the real keywords. The document identifier root is an identifier information block uniquely corresponding to each document to be stored, used to generate interfering matching items. The server obtains the query keywords sent by the client and generates a tuple set based on the query keywords. The server performs vector transformation on each element in the tuple set to obtain multiple element vectors. It encrypts each element vector based on the shared key to obtain multiple encrypted vectors. Each encrypted vector and its corresponding tag are used as trapdoors corresponding to the query keywords, and the trapdoors are sent to the cloud server. The tuple set includes multiple real matching tuples, multiple false positive tuples, and multiple non-matching tuples. The cloud server, based on the encryption vectors and corresponding tags in the trapdoor, uses an inner product predicate encryption algorithm to match the target index from at least one stored search index. It then sends the target encrypted text set corresponding to the target index in the encrypted text set to the client, so that the client can decrypt the target encrypted text set based on the shared key to obtain the search results corresponding to the query keywords.
2. The quantum-resistant searchable encryption method for obfuscating search and access modes according to claim 1, characterized in that, Before the client constructs multiple polynomial coefficient vectors based on multiple documents to be stored and the identifiers of each document to be stored, the method further includes: The client generates a public key and a private key, and sends the public key to the server; The server generates a shared key, encrypts the shared key using the public key to obtain an encrypted shared key, and sends the encrypted shared key to the client. The client decrypts the encrypted shared key based on the private key to obtain the shared key.
3. The quantum-resistant searchable encryption method for obfuscating search and access modes according to claim 1, characterized in that, The process involves determining real keyword roots, virtual keyword roots, and document identifier roots based on multiple documents to be stored and the identifiers of each document, and constructing multiple polynomial coefficient vectors, including: The true keyword root is determined based on at least one document keyword in the document to be stored and the identifier of the document to be stored; The virtual keyword root is determined based on the preset virtual setting rules and the document keywords in the document to be stored; Determine the document identifier root based on the identifier of the document to be stored; Based on the real keyword roots of the document to be stored, the virtual keyword roots, and the document identifier roots, multiple polynomial coefficient vectors are determined.
4. The quantum-resistant searchable encryption method for obfuscating search and access modes according to claim 3, characterized in that, Determining the true keyword root based on at least one document keyword in the document to be stored and the identifier of the document to be stored includes: Determine at least one document keyword in the document to be stored, and perform hash calculation on the identifier of the document to be stored based on a preset hash function to obtain the tag corresponding to the document to be stored; Determine the count of the document's keywords; The true keyword root is generated based on the document keywords, tags, and counts corresponding to the document to be stored.
5. The quantum-resistant searchable encryption method for obfuscating search and access modes according to claim 1, characterized in that, The step of generating a tuple set based on the query keywords includes: Based on the query keywords, the preset hash value range, the preset counting threshold, and the first preset probability, multiple real matching tuples are generated. Based on a preset identifier threshold and a second preset probability, multiple virtual keyword roots are generated; The plurality of non-matching tuples are generated based on the preset hash value range and the second preset probability.
6. The quantum-resistant searchable encryption method for confusing search and access modes according to claim 5, characterized in that, The server generates multiple true matching tuples based on the query keywords, a preset hash value range, a preset counting threshold, and a first preset probability, including: Traverse each tag within the preset hash value domain and each count within the preset counting threshold. For the current tag and current count that have been traversed, take the query keyword, the current tag, and the current count as a candidate real matching tuple. After the traversal is completed, multiple candidate real matching tuples are obtained. According to the first preset probability, multiple tuples are randomly selected from the multiple candidate real matching tuples as multiple real matching tuples.
7. The quantum-resistant searchable encryption method for confusing search and access modes according to claim 1, characterized in that, The cloud server, based on the encryption vectors and corresponding tags in the trapdoor, matches the target index from at least one stored search index using an inner product predicate encryption algorithm, including: Iterate through each encrypted vector, and for the current encrypted vector, based on the current encrypted vector and its corresponding tag, filter out multiple initial search indices that match the tag from the search index; Traverse multiple initial screening search indices, and for the current initial screening search index, calculate the inner product of the current encryption vector and the current initial screening search index based on the inner product predicate encryption algorithm; Determine whether the inner product value is a preset value. If so, use the current initial screening search index as the target index.
8. The quantum-resistant searchable encryption method for obfuscating search and access modes according to claim 1, characterized in that, Sending the target encrypted text set corresponding to the target index in the encrypted text set to the client includes: Based on the identifier of the target index, determine multiple candidate encrypted documents in the encrypted document set; The multiple candidate encrypted documents are deduplicated to obtain the target encrypted document.
9. A searchable encryption system, characterized in that, The searchable encryption system includes a client, a server, and a cloud server, wherein the client, the server, and the cloud server are used to perform the steps of the quantum-resistant searchable encryption method for confusing search modes and access modes as described in any one of claims 1-8.
10. An electronic device, characterized in that, include: A processor and a memory, the memory storing machine-readable instructions executable by the processor, which, when the electronic device is running, are executed by the processor to perform the steps of the quantum-resistant searchable encryption method for obfuscating search and access modes as described in any one of claims 1 to 8.
Citation Information
Patent Citations
Hidden-mode keyword retrieval and verification method and device
CN116383877A
Symmetric searchable encryption method based on LWE problem with post-quantum security
CN120358096B
Searchable public key encryption method simultaneously supporting semantic query
CN114969795A
Anti-quantum fuzzy keyword processing method and system and electronic equipment
CN121098500A
