A verifiable ciphertext retrieval method, apparatus, device, medium and product

By combining a vector commitment tree structure with a cryptographic inverted index, the problems of forward security and computational consumption that exist when combining VDB and DSSE are solved. This enables multi-keyword retrieval and public verification in a cloud storage environment, protecting user privacy.

CN121456915BActive Publication Date: 2026-04-17GUIZHOU UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GUIZHOU UNIV
Filing Date
2026-01-06
Publication Date
2026-04-17

AI Technical Summary

Technical Problem

The combination of existing Verifiable Databases (VDBs) and Dynamic Searchable Encryption (DSSE) presents problems such as forward security issues and excessive computational costs. In particular, it is easy to expose keyword information when data is updated, and traditional solutions cannot meet the requirements for user privacy protection.

Method used

By employing a Vector Commitment Tree (OUVC) structure combined with an encrypted inverted index, a pseudo-random function is used to generate keys and indexes, hiding update information. The public verification feature of vector commitments is utilized to achieve multi-keyword retrieval and forward security.

Benefits of technology

It achieves forward security without disclosing keyword information, while reducing computational consumption, supporting multi-keyword retrieval and public verification, and protecting user privacy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121456915B_ABST
    Figure CN121456915B_ABST
Patent Text Reader

Abstract

This application discloses a verifiable encrypted text retrieval method, apparatus, device, medium, and product, relating to the field of data security. The method includes: a server receiving a set of query keywords from a client; the server calculating a primary keyword index address based on the primary keyword in the query keyword set and searching an encrypted inverted index based on the primary keyword index address; the server obtaining candidate documents based on the encrypted document operation content in the encrypted inverted index; the client extracting a target data block location set based on the candidate documents using a vector commitment tree; the server generating a brief proof based on the target data block location set and determining multi-keyword tags based on the secondary keywords in the query keyword set; the server determining candidate results based on the multi-keyword tags using a tag set; and the client determining a set of documents satisfying all keywords based on the candidate results and the brief proof, then performing a consistency check to obtain the retrieval results. This application reduces computational overhead while maintaining forward security.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data security, and in particular to a verifiable encrypted text retrieval method, apparatus, device, medium, and product. Background Technology

[0002] The development of cloud computing has driven the widespread application of outsourced storage technology, allowing data owners to obtain efficient and convenient storage services by storing data on cloud servers. However, since cloud servers are not entirely trustworthy, outsourced data faces risks such as tampering, loss, or malicious modification. Therefore, verifiable technologies that can ensure the integrity of cloud database content have become an important research area in outsourced storage. Verifiable databases (VDBs) allow clients to verify the correctness of query results, limiting the behavior of malicious servers. However, traditional VDBs do not consider the protection of user privacy; data is usually stored in plaintext. If encrypted data is directly outsourced for storage, traditional VDB solutions will lose the ability to retrieve data from the database. Therefore, it is necessary to combine VDBs with Dynamic Searchable Symmetric Encryption (DSSE). Most existing verifiable dynamic symmetric retrieval schemes (VDSSE) only support private verification, which increases the computational cost for clients and may cause disputes over data integrity with third parties.

[0003] On the other hand, while combining VDB with DSSE can expand the retrieval capabilities of VDB, it also introduces new problems. From a data security perspective, combining VDB with DSSE requires a reconsideration of the forward security of the solution. Simply put, forward security means that in a dynamic encrypted database, subsequently updated documents should not expose any information related to their keywords. Due to the emergence of file injection attacks, dynamic encrypted databases that do not meet forward security requirements are considered to have serious security vulnerabilities. When the client updates the encrypted database, the VDSSE solution needs to update both the VDB and DSSE portions simultaneously. If the VDB update does not meet forward security requirements, even combining DSSE with VDB, which originally met forward security requirements, will still fail to satisfy forward security, posing a new challenge to the design of the VDSSE solution. Summary of the Invention

[0004] The purpose of this application is to provide a verifiable encrypted text retrieval method, apparatus, device, medium, and product that can reduce computational consumption while satisfying forward security.

[0005] To achieve the above objectives, this application provides the following solution:

[0006] Firstly, this application provides a verifiable encrypted text retrieval method, including:

[0007] The server receives a set of query keywords from the client; the set of query keywords is determined by the client based on a set of multiple keywords.

[0008] The server calculates the main keyword index address based on the main keyword of the query keyword set and searches the encrypted inverted index based on the main keyword index address;

[0009] The server obtains candidate documents based on the encrypted document operation content in the encrypted inverted index and returns the candidate documents to the client.

[0010] The client extracts the target data block location set based on the candidate documents using a vector commitment tree and feeds it back to the server;

[0011] The server generates a brief proof based on the target data block location set;

[0012] The server determines multi-keyword tags based on the secondary keywords in the query keyword set;

[0013] The server determines candidate results based on multiple keyword tags using a tag set and returns the candidate results and the brief proof to the client.

[0014] The client determines the set of documents that satisfy all keywords based on the candidate results and the brief proof.

[0015] The client performs a consistency check on the length and operation count of the candidate documents based on the set of documents that satisfy all keywords, and obtains the search results.

[0016] In one embodiment, before the server receives the client's set of query keywords, the method further includes:

[0017] The client selects security parameters and calculates the key for the pseudo-random function based on those parameters;

[0018] The client initializes the vector commitment tree, saves the mapping relationship between each data block and leaf node in the vector commitment tree, and initializes the cache area; each node of the vector commitment tree contains data blocks filled with random encrypted data;

[0019] The client initializes the encrypted inverted index, label set, and operation count to an empty set and computes the initial commitment of the vector commitment tree;

[0020] The client sends the initialized encrypted inverted index, the initialized tag set, and the initialized operation count to the server.

[0021] In one embodiment, a data uploading process is also included; the data uploading process specifically includes:

[0022] Obtain target keywords, document identifiers, and operation types;

[0023] The client calculates the secret seed of the target keyword based on the target keyword and the key of the pseudo-random function;

[0024] Generate a set of data blocks assigned to the target keywords based on the secret seed of the target keywords, and save the current document based on the set of data blocks assigned to the target keywords;

[0025] The client generates an encryption key and queries the trapdoor T based on the key of the pseudo-random function. w And calculate the target keyword index address; the target keyword index address includes the query trap T w Operation count corresponding to the target keyword;

[0026] The client calculates a multi-keyword index based on the pseudo-random function key, the operation count corresponding to the target keyword, the document identifier, and the operation type, and updates the operation count corresponding to the target keyword.

[0027] The client updates the vector commitment tree;

[0028] The client sends the index address, encrypted document operation content, and multi-keyword index to the server and locally saves the cache, the leaf node mapping relationship of the data block, and the operation count of the target keyword.

[0029] The server updates the encrypted inverted index and tag set based on the index address, encrypted document operation content, and multi-keyword index.

[0030] In one embodiment, the query keyword set is determined by the client based on a multi-keyword set, specifically including:

[0031] The client selects the keyword with the lowest frequency from the multi-keyword set and determines it as the primary keyword, and determines the other keywords in the multi-keyword set as secondary keywords; the other keywords are the keywords remaining in the multi-keyword set after removing the keyword with the lowest frequency.

[0032] Determine multi-keyword index tags based on secondary keywords;

[0033] The set of query keywords is determined based on the main keyword and the multi-keyword index tags.

[0034] In one embodiment, the server determines candidate results based on a set of tags using multiple keyword tags and returns the candidate results and the brief proof to the client, specifically including:

[0035] The server compares the multi-keyword tags with the tag set. If the current document contains all the query keywords, then the candidate results are determined based on the current document.

[0036] The server returns the candidate results and the brief proof to the client.

[0037] In one embodiment, after obtaining the search results, the client performs a consistency check based on the length and operation count of the candidate documents according to the set of documents that satisfy all keywords, and then further includes:

[0038] Third-party validators utilize formulas based on brief proofs. Verification is performed; where e is the bilinear pairing calculation of the vector commitment, C is the commitment value of the vector commitment, and h i Here are the common parameters of the vector commitment, where I is the position of the target data block on the vector commitment, and Bucket is the bucket. i For the content that needs to be verified, π I For a brief proof, g is a generator on a vector commitment, Bucket i This represents the contents of all data blocks on node i.

[0039] If true, the search result is the final search result; if false, the search result is rejected.

[0040] Secondly, this application provides a verifiable encrypted text retrieval device, comprising: the verifiable encrypted text retrieval device applying the verifiable encrypted text retrieval method, the verifiable encrypted text retrieval device comprising: a server and a client;

[0041] The server is used to receive a set of query keywords from the client; the set of query keywords is determined by the client based on a set of multiple keywords.

[0042] The server is also used to calculate the main keyword index address based on the main keyword of the query keyword set and to find the encrypted inverted index based on the main keyword index address;

[0043] The server is also used to obtain candidate documents based on the encrypted document operation content in the encrypted inverted index and return the candidate documents to the client;

[0044] The client is used to extract the target data block location set based on the candidate documents using a vector commitment tree and then feed it back to the server;

[0045] The server is also used to generate a short proof based on the set of target data block locations;

[0046] The server is also used to determine multi-keyword tags based on the sub-keywords in the query keyword set;

[0047] The server is also used to determine candidate results based on a set of tags using multiple keyword tags and return the candidate results and the brief proof to the client;

[0048] The client is also used to determine the set of documents that satisfy all keywords based on the candidate results and the brief proof;

[0049] The client is also used to perform a consistency check on the candidate documents based on the length and operation count of the document set that satisfies all keywords, and obtain the search results.

[0050] Thirdly, this application provides a computer device, including: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the verifiable encrypted text retrieval method.

[0051] Fourthly, this application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the verifiable encrypted text retrieval method described above.

[0052] Fifthly, this application provides a computer program product, including a computer program that, when executed by a processor, implements the verifiable encrypted text retrieval method.

[0053] According to the specific embodiments provided in this application, the following technical effects are disclosed:

[0054] This application provides a verifiable encrypted retrieval method, apparatus, device, medium, and product. The client can hide update information through the vector commitment tree result and achieve public verification, which solves the problem that vector commitment updates will expose relevant document keywords, achieves forward security, and solves the problem of computational consumption through public verification. Attached Figure Description

[0055] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0056] Figure 1 This is an architecture diagram of a verifiable encrypted retrieval method;

[0057] Figure 2 This is a diagram illustrating the OUVC+ inverted index.

[0058] Figure 3 Update diagram for OUVC;

[0059] Figure 4 Flowchart of a verifiable encrypted text retrieval method;

[0060] Figure 5 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0061] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0062] With the increasing demand for data security, in order to meet the needs of cloud storage applications and protect data integrity and user privacy on cloud servers, this application uses keyword-encrypted inverted indexes to query the database and uses vector commitments to verify the encrypted database.

[0063] To make the above-mentioned objectives, features and advantages of this application more apparent and understandable, the application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0064] In one exemplary embodiment, such as Figure 4 As shown, a verifiable encrypted text retrieval method is provided, including the following steps:

[0065] Step 401: The server receives the client's query keyword set; the query keyword set is determined by the client based on the multi-keyword set.

[0066] Step 402: The server calculates the main keyword index address based on the main keyword of the query keyword set and searches for the encrypted inverted index based on the main keyword index address.

[0067] Step 403: The server obtains candidate documents based on the encrypted document operation content in the encrypted inverted index and returns the candidate documents to the client.

[0068] Step 404: The client extracts the target data block location set based on the candidate documents using a vector commitment tree and feeds it back to the server.

[0069] Step 405: The server generates a brief proof based on the target data block location set.

[0070] Step 406: The server determines multi-keyword tags based on the secondary keywords in the query keyword set.

[0071] Step 407: The server determines candidate results based on the multi-keyword tags using the tag set and returns the candidate results and the brief proof to the client.

[0072] Step 408: The client determines the set of documents that satisfy all keywords based on the candidate results and the brief proof.

[0073] Step 409: The client performs a consistency check on the candidate documents based on the length and operation count of the document set that satisfies all keywords, and obtains the search results.

[0074] By implementing the above steps, the client can hide update information through the vector commitment tree result and achieve public verification, which solves the problem that vector commitment updates will expose relevant document keywords, achieves forward security, and solves the problem of computational overhead through public verification.

[0075] In one exemplary embodiment, before the server receives the client's set of query keywords, the method further includes:

[0076] The client selects security parameters and calculates the key for the pseudo-random function based on those parameters.

[0077] The client initializes the vector commitment tree, saves the mapping relationship between each data block and leaf node in the vector commitment tree, and initializes the cache area; each node of the vector commitment tree contains data blocks filled with random encrypted data.

[0078] The client initializes the encrypted inverted index, tag set, and operation count to an empty set and calculates the initial commitment of the vector commitment tree. The client then sends the initialized encrypted inverted index, tag set, and operation count to the server. The server maintains these data structures based on subsequent updates from the client. In an exemplary embodiment, the verifiable encrypted retrieval method further includes a data upload process; the data upload process specifically includes:

[0079] Obtain target keywords, document identifiers, and operation types.

[0080] The client calculates the secret seed of the target keyword based on the target keyword and the key of the pseudo-random function.

[0081] Generate a set of data blocks assigned to the target keyword based on the secret seed of the target keyword, and save the current document based on the set of data blocks assigned to the target keyword.

[0082] The client generates an encryption key and queries the trapdoor T based on the key of the pseudo-random function. wAnd calculate the target keyword index address; the target keyword index address includes the query trap T w Operation count corresponding to the target keyword;

[0083] The client calculates a multi-keyword index based on the pseudo-random function key, the operation count corresponding to the target keyword, the document identifier, and the operation type, and updates the operation count corresponding to the target keyword.

[0084] The client updates the vector commitment tree.

[0085] The client sends the index address, encrypted document operation content, and multi-keyword index to the server and locally saves the cache, the leaf node mapping relationship of the data block, and the operation count of the target keyword.

[0086] The server updates the encrypted inverted index and tag set based on the index address, encrypted document operation content, and multi-keyword index.

[0087] In one exemplary embodiment, the query keyword set is determined by the client based on a multi-keyword set, specifically including:

[0088] The client selects the keyword with the lowest frequency in the multi-keyword set and determines the keyword with the lowest frequency as the primary keyword, and determines the other keywords in the multi-keyword set as secondary keywords; the other keywords are the keywords remaining in the multi-keyword set after removing the keyword with the lowest frequency.

[0089] Determine multi-keyword index tags based on secondary keywords.

[0090] The set of query keywords is determined based on the main keyword and the multi-keyword index tags.

[0091] In an exemplary embodiment, the server determines candidate results based on a set of tags using multiple keyword tags and returns the candidate results and the brief proof to the client, specifically including:

[0092] The server compares the multiple keyword tags with the tag set. If the current document contains all the query keywords, then the candidate results are determined based on the current document.

[0093] The server returns the candidate results and the brief proof to the client.

[0094] In an exemplary embodiment, after obtaining the search results, the client performs a consistency check based on the length and operation count of the candidate documents according to the set of documents that satisfy all keywords, and then further includes:

[0095] Third-party validators utilize formulas based on brief proofs. Verification is performed; where e is the bilinear pairing calculation of the vector commitment, C is the commitment value of the vector commitment, and h i Here are the common parameters of the vector commitment, where I is the position of the target data block on the vector commitment, and Bucket is the bucket. i For the content that needs to be verified, π I For a brief proof, g is a generator on a vector commitment, Bucket i The search result represents the content of all data blocks on node i; if true, the search result is the final search result; if false, the search result is rejected.

[0096] To meet the need for outsourced data storage on untrusted servers, this application requires storing encrypted data on the outsourced storage to protect user privacy, allowing users to perform keyword searches and verify data accuracy on the encrypted data, and the scheme must satisfy forward security. This application mainly includes two steps: the first step is to implement a Vector Commitment Structure (OUVC) that can hide update information; the second step is to design an outsourced storage scheme based on OUVC that can simultaneously satisfy public verification, multi-keyword search, and data verification.

[0097] The method provided in this application is applicable to cloud server environments, supports multi-keyword retrieval, is publicly verifiable, and possesses forward security. This method is suitable for scenarios where encrypted data is outsourced to untrusted cloud servers. The solution protects user privacy, facilitates data retrieval, and ensures data integrity. The structure of the solution is as follows: Figure 1 As shown.

[0098] This application proposes a novel vector commitment structure—Oblivious Update Vector Commitment (OUVC). The OUVC structure draws inspiration from the Oblivious Random Access Machine (ORAM) and constructs the vector commitment using a complete binary tree. Each tree node acts as a bucket, containing multiple data blocks, with each data block corresponding to a leaf node. During a data update operation, the client reads the contents of all data blocks along the entire path from the leaf node corresponding to the target data block to the root node and assigns a new random leaf node to the target data block. After the data is modified, the client writes the relevant data blocks back to the server along the path. Because each operation involves data along the entire path, the server cannot distinguish the specific update location and therefore cannot infer any information about the keyword or data block distribution, thus preventing keyword information leakage.

[0099] Furthermore, this application combines the OUVC structure with inverted index technology to achieve multi-keyword retrieval capabilities for database documents. Details of the solution can be found in [link to solution]. Figure 2As shown. Specifically, the system allocates multiple data blocks for each keyword and uses a pseudo-random function to calculate an encrypted inverted index for each document. This establishes a one-to-many random mapping relationship between documents and keywords. During data retrieval, the client generates a multi-keyword retrieval query trap T for the target keyword set using the pseudo-random function and its own key. w The server received T w Then, the relevant ciphertext data is searched based on the encrypted inverted index, and a publicly verifiable proof is generated from the query results using the OUVC structure. Upon receiving the results, since vector commitments only require a proof and public parameters for verification through pairing, any third party can use the system's public parameters and the proof returned by the server to verify the completeness and correctness of the results using the verification formula.

[0100] In another exemplary embodiment, such as Figure 3 As shown, this application also proposes a verifiable ciphertext retrieval method, which specifically includes the following steps:

[0101] Steps 1 to 2 constitute the first stage of initialization for this application:

[0102] Step 1: The client first selects security parameters and calculates the pseudo-random function key SK=(K) based on these parameters. T ,K S ,K I ,K X ,K Y ,K Z ), where K T The encrypted index K used to calculate TSet S Used to calculate the encrypted document identifier, K I Used to calculate the data blocks stored in the document, (K) X ,K Y ,K Z This is used to calculate the multi-keyword index XSet. Assume the database contains q keywords, and the client's initial height is... A complete binary vector commitment tree. Each node in the tree is a bucket, and each bucket contains b data blocks. For i∈[1,q], random prime numbers are generated from the group Z. p Choose a number z i ∈Z p Calculate the common parameter h i = For j∈[1,q], j≠i, calculate the common parameter h. i,j = j represents a range of values. During initialization, each data block is filled with random encrypted data. Additionally, for a data block a, the client randomly selects a leaf node x and locally stores the mapping relationship between each data block and the leaf node, PositionMap=(a,x), and initializes the buffer. .

[0103] Step 2: The client initializes the encrypted inverted index TSet, the multi-keyword index XSet, and the operation count UpdateCnt to empty sets. Next, the initial commitments of the vector commitment tree are calculated. Bucket i Let represent the content of all data blocks at node i, and n be the total number of nodes in the tree. The server stores TSet, XSet, and UpdateCnt.

[0104] Steps 3 through 5 constitute the data upload phase.

[0105] Step 3: When the client needs to perform insert, delete, or modify operations on the database, assuming the target keyword is 'w', the document identifier is 'id', and the operation type is 'op', the operation count corresponding to the keyword, UpdateCnt[w], is not yet initialized and is set to 0. The client first calculates the secret seed of the keyword, seed = F(K). I The system first generates a set of data blocks B allocated to w using a random number generator PRG(seed), and then randomly selects a data block a from B to store the current document. Simultaneously, the client uses K... S K T Generate encryption key K with pseudo-random function F e =F(K S ,w) and keyword search traps T w =F(K T ,w), and calculate the index address addr=F(T w UpdateCnt[w]). The document manipulation content is encrypted as val=Enc(K e (op|I|id), where val is the content of the encrypted document operation. The client then calculates the intermediate variable xind=F. p (K Y ,op|id), intermediate variable z=F p (K Z ,w|UpdateCnt[w]), and calculate intermediate variables. Finally, calculate the multi-keyword index xtag. w = F p It is a pseudo-random function over the prime number field. Let `UpdateCnt[w]` be the generator of the vector commitment. Then let `UpdateCnt[w] = UpdateCnt[w] + 1`.

[0106] Step 4: The client first determines the leaf node x corresponding to 'a' based on PositionMap[a], and then remaps PositionMap[a] randomly to the new leaf node. Next, it reads the contents of each Bucket level along the original path of data block 'a' into buffer S, reads from S, and replaces data block 'a' with the new data. Then, it writes the data block back from leaf to root to each Bucket level of the new path. Note that during the write-back, the node where data block 'a' is located should correspond to the path of the new leaf node. Detailed update steps are as follows... Figure 3 As shown. If there is still space in a corresponding Bucket at a certain level, the data block is written; if there is no space, it checks if there is a corresponding Bucket at the next higher level. If there is still no space at the root node, the data is temporarily stored in the client's buffer S. For each level written, the commitment C is synchronously updated. Here, P(x,l) represents the node corresponding to path x in the l-th layer, Bucket[P(x,l)] represents the content of node P(x,l) after the update, and oldBucket[P(x,l)] represents the content of node P(x,l) before the update. The algorithm finally returns the updated commitment C. This step is the vector commitment tree update process.

[0107] Step 3 is to calculate the encrypted inverted index, and step 4 is to update the vector commitment tree. These are two different parts. The update in step 3 is to enable the encrypted data to support keyword queries, and the update in step 4 is to verify the correctness of the encrypted data.

[0108] Step 5: After the vector commitment tree is updated, the client will assign (addr,val,y,xtag) to the vector commitment tree. w The server sends the encrypted inverted index TSet[addr]=(val,y) to the server. Based on this, the server updates the encrypted inverted index TSet[addr]=(val,y) and sets the xtag... w Add a multi-keyword index (XSet) to synchronize the index with the tag set. The client locally stores the cache S, the leaf node mapping PositionMap of the data block, and the keyword update counter UpdateCnt. TSst represents the name of the index, and TSet[addr] represents its query method.

[0109] Steps 6 through 9 constitute the keyword detection stage.

[0110] Step 6: The client uses a multi-keyword set W={w1,w2,...,w...} d Initiate a query on}. First, select the keyword w1 with the lowest occurrence frequency as the primary keyword, and calculate T. q =F(KT w1) is T w The first part. Following the remaining keywords w2,...,w d As a secondary keyword, according to xtoken[c,i]= Calculate the multi-keyword index tags. Finally, set the query trap T. w ={Tq,xtoken[1],xtoken[2],...}. Where T... q To query the trapdoor corresponding to TSet, xtoken[1], xtoken[2]... are to query the trapdoor corresponding to Xset.

[0111] Step 7: The server receives T w Then, first, based on the first element T... q Calculate addr=F(T) sequentially q c), find TSet[addr]=(val c ,y c ), to all values c Composition of candidate documents R w1 Return to the client. The client then decrypts the value. c Extract the target data block location set I and send I back to the server.

[0112] Step 8: The server generates a short proof for verification on set I. Then the server, based on the client's T... w For the remaining xtoken portion, calculate the multi-keyword tag xtag[c,i] = xtoken[c,i] corresponding to a data block. yc The system compares the data with the XSet to determine if each document contains all the query keywords, and adds documents that meet the criteria to the candidate list R. Finally, the server sets R and π. I The information is returned to the client along with all candidate documents and their counts.

[0113] Step 9: The client compares the returned candidate result R with the corresponding count of the keyword in XSet (i.e., increment the count of the keyword in XSet by 1) and filters out the document set IdList that satisfies all keywords. If a document is added using the add operation and the count of the keyword in XSet is equal to the number of keywords, it is added to IdList; if it is deleted using the del operation and the count of the keyword in XSet is greater than zero, it is removed from IdList, and finally IdList is returned.

[0114] Steps 10 and 11 constitute the public verification phase.

[0115] Step 10: The client will first target R w1The number of results contained in the result is checked for consistency with UpdateCnt[w1]. If the number of document numbers does not match, the result is rejected.

[0116] Step 11: Any third-party verifier can verify the formula. Verify the correctness of the Bucket's contents. If the formula is true, accept the result; otherwise, reject the result.

[0117] Compared with existing technologies, this application can simultaneously achieve multi-keyword retrieval, public verification, and forward security.

[0118] Multi-keyword search: The solution utilizes TSet and XSet indexes to enable multi-keyword search functionality.

[0119] Public verification: By leveraging the feature of vector commitments that support public verification, a public verification function is provided for the scheme.

[0120] Forward safety: To address the information leakage problem of vector commitments, a novel vector commitment scheme, OUVC, is proposed. This scheme solves the problem that vector commitment updates expose related document keywords and achieves forward safety.

[0121] Based on the same inventive concept, this application also provides a verifiable ciphertext retrieval device for implementing the verifiable ciphertext retrieval method described above. The solution provided by this device is similar to the implementation described in the above method; therefore, the specific limitations in one or more embodiments of the verifiable ciphertext retrieval device provided below can be found in the limitations of the verifiable ciphertext retrieval method described above, and will not be repeated here.

[0122] In one exemplary embodiment, a verifiable encrypted text retrieval device is provided, which applies the verifiable encrypted text retrieval method described above. The verifiable encrypted text retrieval device includes a server and a client.

[0123] The server is used to receive a set of query keywords from the client; the set of query keywords is determined by the client based on a set of multiple keywords.

[0124] The server is also used to calculate the main keyword index address based on the main keyword of the query keyword set and to find the encrypted inverted index based on the main keyword index address.

[0125] The server is also used to obtain candidate documents based on the encrypted document operation content in the encrypted inverted index and return the candidate documents to the client.

[0126] The client is used to extract the target data block location set based on the candidate documents using a vector commitment tree and then feed it back to the server.

[0127] The server is also used to generate a short proof based on the set of target data block locations.

[0128] The server is also used to determine multi-keyword tags based on the secondary keywords in the query keyword set.

[0129] The server is also used to determine candidate results based on a set of tags using multiple keyword tags and return the candidate results and the brief proof to the client.

[0130] The client is also used to determine the set of documents that satisfy all keywords based on the candidate results and the brief proof.

[0131] The client is also used to perform a consistency check on the candidate documents based on the length and operation count of the document set that satisfies all keywords, and obtain the search results.

[0132] In one exemplary embodiment, a computer device is provided, which may be a server or a terminal, and its internal structure diagram may be as follows. Figure 5 As shown, this computer device includes a processor, memory, input / output interfaces (I / O), and a communication interface. The processor, memory, and I / O interfaces are connected via a system bus, and the communication interface is also connected to the system bus via the I / O interfaces. The processor provides computational and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides the environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The database stores verifiable encrypted retrieval data. The I / O interfaces are used for exchanging information between the processor and external devices. The communication interface is used for communication with external terminals via a network connection. When the computer program is executed by the processor, it implements a verifiable encrypted retrieval method.

[0133] Those skilled in the art will understand that Figure 5 The structures shown are merely block diagrams of some structures related to the present application and do not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than shown in the figures, or combine certain components, or have different component arrangements. In an exemplary embodiment, a computer device is provided, including a memory and a processor. The memory stores a computer program, and the processor executes the computer program to implement the above-described method embodiments.

[0134] In one exemplary embodiment, a computer-readable storage medium is provided storing a computer program that, when executed by a processor, implements the above-described method embodiments.

[0135] In one exemplary embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the above-described method embodiments.

[0136] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data must comply with relevant regulations.

[0137] In this application, all actions to acquire signals, information, or data are carried out in compliance with the relevant data protection laws and policies of the country where the location is situated, and with the authorization granted by the owner of the relevant device.

[0138] Those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments described above. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM).

[0139] The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0140] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0141] This document uses specific examples to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only for the purpose of helping to understand the methods and core ideas of this application. Furthermore, those skilled in the art will recognize that, based on the ideas of this application, there will be changes in the specific implementation methods and application scope. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A verifiable encrypted text retrieval method, characterized in that, include: The server receives the set of query keywords from the client; The set of query keywords is determined by the client based on a set of multiple keywords; The server calculates the main keyword index address based on the main keyword of the query keyword set and searches the encrypted inverted index based on the main keyword index address; The server obtains candidate documents based on the encrypted document operation content in the encrypted inverted index and returns the candidate documents to the client. The client extracts the target data block location set based on the candidate documents using a vector commitment tree and feeds it back to the server; The server generates a brief proof based on the target data block location set; The server determines multi-keyword index tags based on the secondary keywords in the query keyword set; The server determines candidate results based on a set of tags using multiple keyword index tags and returns the candidate results and the brief proof to the client. The client determines the set of documents that satisfy all keywords based on the candidate results and the brief proof. The client performs a consistency check on the length of the candidate documents and the operation count based on the set of documents that satisfy all keywords, and obtains the search results. Before the server receives the client's set of query keywords, it also includes: The client selects security parameters and calculates the key for the pseudo-random function based on those parameters; The client initializes the vector commitment tree, saves the mapping relationship between each data block and leaf node in the vector commitment tree, and initializes the cache area; each node of the vector commitment tree contains data blocks filled with random encrypted data; The client initializes the encrypted inverted index, label set, and operation count to an empty set and computes the initial commitment of the vector commitment tree; The client sends the initialized encrypted inverted index, the initialized tag set, and the initialized operation count to the server.

2. The verifiable encrypted text retrieval method according to claim 1, characterized in that, It also includes a data upload process; the data upload process specifically includes: Obtain target keywords, document identifiers, and operation types; The client calculates the secret seed of the target keyword based on the target keyword and the key of the pseudo-random function; Generate a set of data blocks assigned to the target keywords based on the secret seed of the target keywords, and save the current document based on the set of data blocks assigned to the target keywords; The client generates an encryption key and queries the trapdoor T based on the key of the pseudo-random function. w And calculate the target keyword index address; the target keyword index address includes the query trap T w Operation count corresponding to the target keyword; The client calculates a multi-keyword index based on the pseudo-random function key, the operation count corresponding to the target keyword, the document identifier, and the operation type, and updates the operation count corresponding to the target keyword. The client updates the vector commitment tree; The client sends the index address, encrypted document operation content, and multi-keyword index to the server and locally saves the cache area, the leaf node mapping relationship corresponding to the data block, and the operation count corresponding to the target keyword; The server updates the encrypted inverted index and tag set based on the index address, encrypted document operation content, and multi-keyword index.

3. The verifiable encrypted text retrieval method according to claim 1, characterized in that, The query keyword set is determined by the client based on a set of multiple keywords, specifically including: The client selects the keyword with the lowest frequency from the multi-keyword set and determines it as the primary keyword, and determines the other keywords in the multi-keyword set as secondary keywords; the other keywords are the keywords remaining in the multi-keyword set after removing the keyword with the lowest frequency. Determine multi-keyword index tags based on secondary keywords; The set of query keywords is determined based on the main keyword and the multi-keyword index tags.

4. The verifiable encrypted text retrieval method according to claim 1, characterized in that, The server determines candidate results based on a set of tags using multiple keyword index tags and returns the candidate results and the brief proof to the client, specifically including: The server compares the multi-keyword index tags with the tag set. If the current document contains all the query keywords, the server determines the candidate results based on the current document. The server returns the candidate results and the brief proof to the client.

5. The verifiable encrypted text retrieval method according to claim 1, characterized in that, The client performs a consistency check based on the length and operation count of the candidate documents, using a set of documents that satisfy all keywords. After obtaining the search results, the process also includes: Third-party validators utilize formulas based on brief proofs. Verification is performed; where e is the bilinear pairing calculation of the vector commitment, C is the commitment value of the vector commitment, and h i Here are the common parameters of the vector commitment, where I is the position of the target data block on the vector commitment, and Bucket is the bucket. i For the content that needs to be verified, π I For a brief proof, g is a generator on a vector commitment, Bucket i This represents the contents of all data blocks on node i. If true, the search result is the final search result; if false, the search result is rejected.

6. A verifiable encrypted text retrieval device, characterized in that, The verifiable ciphertext retrieval device applies the verifiable ciphertext retrieval method according to any one of claims 1-5, and the verifiable ciphertext retrieval device includes: a server and a client; The server is used to receive a set of query keywords from the client; the set of query keywords is determined by the client based on a set of multiple keywords. The server is also used to calculate the main keyword index address based on the main keyword of the query keyword set and to find the encrypted inverted index based on the main keyword index address; The server is also used to obtain candidate documents based on the encrypted document operation content in the encrypted inverted index and return the candidate documents to the client; The client is used to extract the target data block location set based on the candidate documents using a vector commitment tree and then feed it back to the server; The server is also used to generate a short proof based on the set of target data block locations; The server is also used to determine multi-keyword index tags based on the secondary keywords in the query keyword set; The server is also used to determine candidate results based on a set of tags using multiple keyword index tags and return the candidate results and the brief proof to the client. The client is also used to determine the set of documents that satisfy all keywords based on the candidate results and the brief proof; The client is also used to perform a consistency check on the candidate documents based on the length and operation count of the document set that satisfies all keywords, and obtain the search results.

7. A computer device, comprising: A memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that the processor executes the computer program to implement the verifiable ciphertext retrieval method according to any one of claims 1-5.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by a processor, the computer program implements the verifiable ciphertext retrieval method as described in any one of claims 1-5.

9. A computer program product, comprising a computer program, characterized in that, When executed by a processor, the computer program implements the verifiable ciphertext retrieval method as described in any one of claims 1-5.