A low-misjudgment cross-modal ciphertext retrieval method based on subset predicate encryption

By employing a low-false-error cross-modal encrypted retrieval method based on subset predicate encryption, this method utilizes XOR filters and symmetric subset predicate encryption to solve the balance between efficiency and accuracy in cross-modal retrieval. It achieves fast and accurate retrieval in the context of massive data, reduces system overhead, and is suitable for privacy-preserving cross-modal retrieval systems.

CN122394900APending Publication Date: 2026-07-14NANJING UNIV OF POSTS & TELECOMM
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
NANJING UNIV OF POSTS & TELECOMM
Filing Date
2026-04-24
Publication Date
2026-07-14

AI Technical Summary

Technical Problem

Existing technologies struggle to achieve high efficiency and accuracy in cross-modal encrypted retrieval without significantly increasing total system overhead. This is especially true in the context of massive data, where existing solutions often lead to a sharp increase in overhead in other dimensions when pursuing efficiency or accuracy, making it difficult to scale up applications with high real-time and accuracy requirements.

Method used

A low-false-error cross-modal encrypted retrieval method based on subset predicate encryption is adopted. The cross-modal hash algorithm maps images and text to the same Hamming space, uses an XOR filter to replace the Bloom filter, and combines symmetric subset predicate encryption to generate an encrypted index. A search token is generated on the client side for querying, and constant-level retrieval verification is performed on the server side.

Benefits of technology

It enables fast and accurate cross-modal retrieval in the context of massive data, reduces retrieval complexity and storage overhead, reduces communication and computing overhead, while improving the completeness and accuracy of retrieval results and resisting server attacks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122394900A_ABST
    Figure CN122394900A_ABST
Patent Text Reader

Abstract

The application belongs to the technical field of information security and data retrieval, and discloses a low-misjudgment cross-modal ciphertext retrieval method based on subset predicate encryption, wherein a data owner maps data of different modes to the same Hamming space to generate binary hash codes; then, the binary hash codes are subjected to bucketing to establish an inverted index of the hash bucket number to the encrypted object identification list; then, a symmetric subset predicate encryption is used to encrypt an XOR filter to generate a lightweight encrypted index; when querying, a client generates a hash bucket number pair set to construct a search token and send it to a server once; after subset verification in the encrypted XOR filter, the server returns encrypted multi-modal data in the corresponding bucket. The application uses an XOR filter to eliminate the false positive misjudgment of a traditional Bloom filter, significantly improves retrieval accuracy, reduces server-side retrieval complexity to a constant level, and realizes low-misjudgment, high-efficiency and low-overhead cross-modal ciphertext retrieval under the premise of ensuring privacy.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of information security and data retrieval technology, specifically relating to a low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption. Background Technology

[0002] With the widespread adoption of the Internet of Things (IoT), smart terminals, and multimodal applications, the global data volume is growing exponentially, with heterogeneous data such as images and text becoming the mainstream format. Users urgently need the ability to perform semantic-related searches across different modalities, such as accurately finding corresponding images or videos using a piece of text. Meanwhile, to cope with the local storage and computing pressure brought by massive amounts of data, outsourcing data processing to the cloud has become standard practice. Against this backdrop, the technology that enables efficient and accurate retrieval of encrypted data directly in its encrypted state—namely, privacy-preserving cross-modal retrieval—has become a crucial bridge connecting the value of cloud data with users' privacy protection needs, possessing significant research value and application prospects.

[0003] However, building a practical, privacy-preserving cross-modal retrieval system is not about solving a single technical pain point, but rather about finding an engineerable balance between the core dimensions of retrieval efficiency and system overhead, which are interrelated and mutually restrictive. Existing technical solutions often struggle to achieve synergistic optimization between the two, thus creating a persistent technical bottleneck.

[0004] In terms of retrieval efficiency, the core challenge lies in achieving low-latency, high-concurrency query responses, especially in the context of massive amounts of data. An ideal cloud-based retrieval service requires query time complexity to be independent of the total data volume, i.e., constant-time complexity. Currently, some solutions have successfully simplified server-side retrieval operations to constant time by using a strategy of hash bucketing combined with Bloom filter verification followed by full data return. However, this efficiency improvement usually comes at the cost of sacrificing fine-grained processing, leading to a significant decrease in retrieval accuracy. Another type of solution aimed at improving accuracy requires performing complex encrypted similarity calculations or traversing tree-structured indexes on the server side. The number of calculations increases with the data size or index depth, resulting in a significant increase in retrieval latency, making it difficult to meet the demands of applications with stringent real-time requirements.

[0005] In terms of system overhead, it encompasses the additional costs of computation, storage, and communication, and is crucial in determining whether a technical solution can be deployed. To improve accuracy, employing powerful cryptographic tools such as homomorphic encryption and functional encryption introduces significant computational burden and communication latency. To improve efficiency, pre-compute and store large index structures (such as tree indexes) consume considerable storage space. A more common problem is that many solutions, while optimizing performance in one dimension, often lead to a sharp increase in overhead in other dimensions. For example, expanding the candidate set size to compensate for accuracy loss increases network transmission and data decryption overhead; adopting a simplified model to reduce computational latency may require more complex post-processing to compensate for accuracy loss, creating a vicious cycle.

[0006] Current solutions in the field of encrypted cross-modal retrieval face a systemic dilemma in coordinating the goals of efficiency and overhead. Solutions pursuing extreme efficiency often result in insufficient accuracy; solutions pursuing high accuracy are inefficient and costly; while designs attempting to control overhead often have to compromise between efficiency and accuracy. This severely restricts the large-scale application of this technology in real-world scenarios that require high real-time response, high result accuracy, and limited resource budgets.

[0007] Therefore, there is an urgent need in this field for an efficient cross-modal encrypted retrieval scheme that can simultaneously achieve constant-level retrieval efficiency on the server side without significantly increasing the total system overhead. Summary of the Invention

[0008] To address the aforementioned technical issues, this application provides a low-false-error cross-modal encrypted text retrieval method based on subset predicate encryption. This method can optimize the efficiency of cross-modal technology in an encrypted environment, while ensuring security and reasonably controlling overhead.

[0009] To achieve the above objectives, this application employs the following technical solution:

[0010] This application presents a low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption.

[0011] This application discloses a low-false-error cross-modal encrypted retrieval method based on subset predicate encryption. The low-false-error cross-modal encrypted retrieval method includes an index building stage, a client query retrieval stage, and a server verification stage, specifically including the following steps:

[0012] Step 1: During the index building phase, the index will contain... The dataset consists of different multimodal data, including images and text. Cross-modal hashing algorithm is used to map images and text to binary codes in the same Hamming space. For binary code The process involves bucketing, assigning a hash bucket number to each hash bucket, and establishing a mapping between bucket numbers and a list of object identifiers. This creates an image attribute set by combining all the hash bucket numbers of the symmetrical image and text. Text attribute set Each of these is stored in an XOR filter, and the XOR filter is encrypted using symmetric subset predicate encryption to obtain the encrypted index.

[0013] Step 2: During the client-side query and retrieval phase, when the client queries for images or text, the user enters the search criteria for the images or text. The binary code of the query condition is obtained according to the hash mapping method in step 1. And by binary code Determine the set of query predicates Based on the query predicate set Generate a search token and search token Send to the server (CSP);

[0014] Step 3, Server Verification Phase: The server (CSP) receives the search token sent by the client. Then, verify whether the target hash bucket number exists, complete the verification, and return the encrypted multimodal retrieval result to the client;

[0015] Step 4: After receiving the returned encrypted multimodal search results, the client uses the key to decrypt and output the object identifier containing the query conditions, and finally obtains the corresponding image or text as the final search result.

[0016] A further improvement in this application is that step 1 specifically includes the following steps:

[0017] Step 1.1 includes The dataset consists of different multimodal data, including images and text. , For images, For text, For the object identifier, two hash functions are obtained using the Cross-Modal Hash (CMH) algorithm: one for the image and one for the image. and for text :

[0018]

[0019]

[0020] in, Image The extracted feature vectors, This represents the linear projection matrix of the image, and sign(⋅) is the sign function. Representing text The extracted feature vectors, Represents the linear projection moment of the text, returning +1 or -1. Divide by Then, map the value to binary bits;

[0021] Then each image ,text Map the image and text Mapping to the same Hamming space yields the image code. and text code , and All are of length The binary CMH code will and Inputting cross-modal CMH code sets generates CMH code sets. , ;

[0022] Step 1.2: Code the image and text code Divide the data into hash buckets, assign a hash bucket number to each hash bucket, and establish a hash bucket number with its corresponding object identifier. Mapping relationships between lists;

[0023] Step 1.3: Construct a set of all hash bucket numbers for the symmetrical image and text, and store each set in an XOR filter. Then, use symmetric subset predicate encryption to encrypt the XOR filter and generate an encrypted index. ;

[0024] Step 1.4: Encrypt the index The list of encrypted object identifiers (IDs) is the same as the list of encrypted image IDs. ciphertext ID list And the encrypted original data, i.e., the ciphertext of the images and text: )and Uploaded to a server (CSP) for storage, where For object identifiers, ) is a general encryption function.

[0025] A further improvement in this application is that step 1.2 specifically includes the following steps:

[0026] Step 1.2.1, for the CMH code set Each binary code in The data owner (DO) uses a pre-defined LSH hash table for bucketing and extracts the binary code. The bit values ​​at corresponding positions are arranged in order. Bit binary string Map the binary CMH code to the corresponding Bit hash bucket number :

[0027]

[0028]

[0029] in, Represents each hash table Define an independent hash function. , Number of sampling bits The number of independent hash tables. The set of group hash tables is Each hash table ;

[0030] Step 1.2.2: Identify the object identifier of the multimodal data. Insert into hash table hash bucket number In this process, an inverted index for the data is implemented using a symmetric encryption algorithm. A symmetric encryption key is pre-generated with the data owner (DO). ;

[0031] For images In the hash tables In the middle, they are mapped to the same hash bucket number. The plaintext object IDs below constitute the image plaintext Object ID set. For the image plaintext Object ID set Perform overall encryption and generate a list of encrypted image IDs. :

[0032]

[0033]

[0034] For text Mapped to the same hash bucket number All plaintext object identifiers constitute the plaintext Object ID set. For plaintext Object ID collection Symmetric encryption generates a list of ciphertext IDs. :

[0035]

[0036]

[0037] Through the above mapping, each valid bucket number under each hash table carries a corresponding list of ciphertext IDs, which is uploaded to the server.

[0038] A further improvement to this application is that step 1.3 specifically includes the following steps:

[0039] Step 1.3.1: Collect all images All hash bucket number pairs in a hash table The set of attributes constitutes the image attribute set. :

[0040]

[0041] For each image binary code , ,exist:

[0042]

[0043] in, The attribute values ​​for each image;

[0044] Using image attribute sets message space Encryption, encryption function First, the attribute values ​​for each image. Calculate pseudo-random values ​​generated by the PRF F function. :

[0045]

[0046] All pseudo-random values ​​are contained in the pseudo-random attribute set of the image. Internally, this is followed by calling the XOR filter's update function XF.Update. , pseudo-random attribute set Inserting an empty array In the output, the updated array is generated. As image ciphertext :

[0047]

[0048] Step 1.3.2, all text in All hash bucket number pairs in a hash table The set of text attributes constitutes the text attribute set. :

[0049]

[0050] For each text binary code ,exist:

[0051]

[0052] in, The attribute value for each text;

[0053] Attribute values ​​for each text Calculate pseudo-random values ​​generated by the PRF F function. :

[0054]

[0055] All pseudo-random values ​​are contained in the pseudo-random attribute set of the text. within, that is ={ , ..., }; then the update function XF.Update of the XOR filter is called. , pseudo-random attribute set Inserting an empty array Finally, output the updated array. As text cipher :

[0056] .

[0057] A further improvement in this application is that step 2 specifically includes the following steps:

[0058] Step 2.1: When the client searches for images or text, the user enters the search criteria for the images or text. According to binary code Image code and text code And by binary code Determine the set of query predicates :

[0059]

[0060]

[0061]

[0062] in, Image hash function, which sets the image query conditions Mapped to binary hash code, This refers to a text hash function that hashes the text query conditions. Mapped to binary hash code, This refers to a hash function based on bit sampling, which converts binary code... Mapped to the first hash tables Bit hash bucket number, Indicates the first hash tables The Middle The position index of each sampled bit;

[0063] Step 2.2: The client bases queries based on the predicate set. A search token is generated using the KeyGen algorithm, a symmetric subset predicate encryption key generation algorithm. and search token Send to the server.

[0064] A further improvement of this application is that step 2.2 specifically includes the following steps:

[0065] Step 2.2.1: For the query predicate set Each target element in Defined as hash bucket number pair First, using the master key Pseudo-random function key in Calculate each target element The pseudo-random value is then used with a set of hash functions. }Calculate each target element The pseudo-random values ​​in the XOR filter array The corresponding position , , And merge these locations into a query location set. ={ ,..., };in, } represents three independent hash functions used to map pseudo-random values ​​to array positions in the XOR filter. This represents a secure pseudo-random function. Indicates Input each target element for the key pair Calculate pseudo-random values;

[0066] Step 2.2.2: Randomly generate symmetric key of bits :K {0,1 ;

[0067] Step 2.2.3: Calculate the search token Part 1 Query predicate set Each target element pseudo-random function The values ​​are XORed and then combined with a randomly generated key. XOR obfuscation:

[0068]

[0069] in, For a secure pseudo-random function, It is the master key The pseudo-random function key in;

[0070] Step 2.2.4: Calculate the search token Part Two Using a symmetric encryption (SE) algorithm to generate a random key encryption: .

[0071] Step 2.2.5: Query the predicate set Generate search token It is then sent to the server for subsequent subset verification and encrypted retrieval on the server side.

[0072] A further improvement of this application is that step 3 specifically includes the following steps:

[0073] Step 3.1: Select the corresponding encrypted index based on the query type: Let the selected encrypted index be... For image queries, the encrypted image index will be used. If it is a text query, then a text-encrypted index will be used. .

[0074] Step 3.2: The server processes the received search token. Perform a symmetric decryption algorithm with the selected encryption index. ), verify the set of query predicates corresponding to the search token Is it a text attribute set? or image attribute set A subset of.

[0075] A further improvement in this application is that step 3.2 specifically includes the following steps:

[0076] Step 3.2.1: The server first calculates the temporary key. Value: For search tokens The query location set corresponding array Perform an XOR operation on all values ​​within the array, then multiply by the token component. XOR, to obtain the temporary key :

[0077]

[0078] Query location set It is the client's query predicate set The hash mapping specifies the target hash bucket number in the array. The position in the query predicate set is determined if and only if the query predicate set is defined. Completely contained in the set of index bucket numbers In the meantime, it can recover the temporary key that matches the search token. ,Right now ;

[0079] Step 3.2.2: Transfer the temporary key As the decryption key, the server uses a symmetric decryption algorithm ( ) for search tokens Decrypt to obtain the decrypted value. The server verifies the decrypted value. Whether or not At the beginning, if they are equal, then the temporary key The restoration is correct, indicating that the query predicate set is correct. It is a set of index bucket numbers subset of If the output is True, the verification is successful; otherwise, the verification fails and an empty value is returned to the client.

[0080] A further improvement in this application is that step 4 specifically involves: after the subset verification passes, the server (CSP) directly decrypts the result from the previous step. Extracting from the middle The subsequent splicing process reconstructs the plaintext bucket number pairs. Then, for each hash table, based on each ( ) in the image encrypted ID list respectively and text ciphertext ID list The corresponding list of ciphertext Object IDs is searched in the database. The union of all the obtained ciphertext Object ID values ​​is taken to obtain a set of candidate encrypted IDs. The corresponding encrypted multimodal data is extracted based on the candidate encrypted IDs and returned to the client as a whole.

[0081] A further improvement of this application is that the low-error-response cross-modal encrypted text retrieval method is implemented through a low-error-response cross-modal encrypted text retrieval system, which includes a data owner (DO), a server (CSP), and a querier (SU).

[0082] The data owner (DO) is responsible for processing the raw multimodal data and building an encrypted index before uploading it to the server (CSP).

[0083] The queryer initiates a cross-modal query request;

[0084] The server (CSP) stores encrypted indexes and responds to cross-modal queries, thereby ensuring query privacy.

[0085] The beneficial effects of this application are:

[0086] This application uses an XOR filter instead of a traditional Bloom filter as the underlying data structure, which fundamentally eliminates the false positive problem inherent in Bloom filters, ensuring the completeness and accuracy of search results, and resulting in high search accuracy.

[0087] This application leverages the advantages of XOR filter structure to reduce server-side retrieval complexity to constant level during the query process. Compared to existing schemes based on tree indexes (O(log n)) or linear scans (O(n)), this scheme offers fast response times in the context of massive data, demonstrating both speed and efficiency, and achieving high retrieval efficiency.

[0088] This application uses an XOR filter instead of a Bloom filter, which occupies less space and significantly reduces index storage overhead at the same false positive rate. At the same time, the client embeds the encrypted query bucket number in the search token and sends it once, so that the retrieval can be completed with only one interaction, reducing the communication round-trip time overhead. The server only performs constant-level XOR operations and table lookup operations, reducing computational overhead.

[0089] This application constructs an encrypted XOR filter based on Symmetric Subset Predicate Encryption (XPE), so that when the server responds to a query, it can only know a single Boolean value: whether the query bucket number exists in the index. It is unaware of the data characteristics, the identifiers of objects within the bucket, and the final sorting result, which can resist server attacks to a certain extent. Attached Figure Description

[0090] Figure 1 This is a model diagram of the low-error-judgment cross-modal encrypted text retrieval system of this application.

[0091] Figure 2 This is a schematic diagram of the XOR filter in this application.

[0092] Figure 3This is a flowchart of the low-false-error cross-modal encrypted text retrieval method of this application. Detailed Implementation

[0093] The embodiments of the present invention will be disclosed below with reference to the drawings. For clarity, many practical details will be described in the following description. However, it should be understood that these practical details are not intended to limit the present invention. That is, in some embodiments of the present invention, these practical details are not essential. In addition, for the sake of simplicity, some conventional structures and components will be shown in the drawings in a simple schematic manner.

[0094] This application presents a low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption. The low-false-error cross-modal ciphertext retrieval method is implemented through a low-false-error cross-modal ciphertext retrieval system, such as... Figure 2 As shown, the low-false-error cross-modal encrypted retrieval system includes a data owner (DO), a server (CSP), and a queryer (SU). The data owner (DO) is responsible for processing the original multimodal data and building an encrypted index, which is then uploaded to the server (CSP). The queryer initiates a cross-modal query request. The server (CSP) stores the encrypted index and responds to cross-modal queries, thereby ensuring query privacy.

[0095] This application uses a specific cross-modal retrieval scenario as an example: Suppose there is a small dataset DB containing 10 multimodal data objects (such as images and their corresponding text descriptions). The data owner wants to allow authorized users to retrieve the most semantically relevant images through text descriptions, while ensuring that the server cannot know the specific content of the user's query, the true characteristics of the data in the database, or the final ranking results.

[0096]

[0097] like Figure 3 As shown, the low-false-error cross-modal encrypted text retrieval method specifically includes the following steps:

[0098] Step 1: During the index building phase, the index will contain... The dataset consists of different multimodal data, including images and text. Cross-modal hashing algorithm is used to map images and text to binary codes in the same Hamming space. This ensures that semantically similar multimodal data have a Hamming distance that does not exceed a preset threshold, the preset threshold being based on the binary code length. Bit setting, such as taking a value The binary code is bucketed so that codes with a Hamming distance less than or equal to a preset threshold fall into the same bucket with a high probability. Each hash bucket is assigned a hash bucket number, and a mapping is established between the bucket numbers and the object identifier list. All hash bucket numbers of the symmetrical image and text constitute the image attribute set. Text attribute set The data is then stored in an XOR filter, and the XOR filter is encrypted using symmetric subset predicate encryption to obtain the encrypted index. The specific steps include the following:

[0099] Step 1.1 includes The dataset consists of different multimodal data, including images and text. , For images, For text, For the object identifier, two hash functions are obtained using the Cross-Modal Hash (CMH) algorithm: one for the image and one for the image. and for text :

[0100]

[0101]

[0102] in, Image The extracted feature vectors, This represents the linear projection matrix of the image, and sign(⋅) is the sign function. Representing text The extracted feature vectors, Represents the linear projection moment of the text, returning +1 (positive) or -1 (negative). Divide by Then, map the value to binary bits;

[0103] Then each image ,text Map the image and text Mapping to the same Hamming space yields the image code. and text code , and All are of length The binary CMH code; is a bipolar code. In subsequent binary index construction, it can be equivalently converted to Binary CMH code, and Inputting cross-modal CMH code sets generates CMH code sets. , ;

[0104] In this embodiment, we take object ID j=1 (image "beach sunset.jpg", text "sunset, coast, tranquility") as an example:

[0105] For the image Applying a hash function, we obtain the binary code of image 1: 1011...0110 is a 64-bit binary string.

[0106] For text Applying a hash function, we obtain the binary code for text 1: 1001...1101, another 64-bit binary string.

[0107] After performing this operation on all 10 objects, the CMH code set is obtained. It contains all image codes. and text code , These binary CMH codes map data from different modalities to the same Hamming space, allowing semantically similar data such as images to be mapped. With text The Hamming distance is relatively small.

[0108] Step 1.2: Use the Locality Sensitive Hash (LSH) method based on bit sampling to process the image code. and text code Divide the data into hash buckets, assign a hash bucket number to each hash bucket, and establish a hash bucket number with its corresponding object identifier. The mapping relationship between lists; specifically including the following steps:

[0109] Step 1.2.1, for the CMH code set Each binary code in The data owner (DO) uses a pre-defined LSH hash table for bucketing and extracts the binary code. The bit values ​​at corresponding positions are arranged in order. Bit binary string Map the binary CMH code to the corresponding Bit hash bucket number :

[0110]

[0111]

[0112] in, Represents each hash table Define an independent hash function. , Number of sampling bits The number of independent hash tables. The set of group hash tables is Each hash table ;

[0113] In this embodiment, the number of sampling bits = 16, Number of independent hash tables = 3.

[0114] a) Generation =3 independent sets of random indices, serving as common parameters of the system. :

[0115] Each of them From A randomly selected integer, for example .

[0116] Each of them From A randomly selected integer, for example .

[0117] Each of them From A randomly selected integer, for example .

[0118] b) Define a hash function for each hash table Used to map 64-bit binary code to 16-bit hash bucket numbers: .

[0119] c) For each binary code in the generated code set Bucketing is performed based on the binary code of the image with object ID j=1 (image "beach sunset.jpg"). For example:

[0120] For hash tables Extract bits from its index position to generate a 16-bit hash bucket number. :

[0121]

[0122] For hash tables Generate hash bucket number :

[0123]

[0124] For hash tables Generate hash bucket number :

[0125]

[0126] Step 1.2.2: Identify the object identifier of the multimodal data. Insert into hash table hash bucket number In this process, an inverted index is implemented for the data. For different modalities of images or text, an index is built starting from the hash bucket number. A global mapping to the list of corresponding multimodal data object ciphertext identifiers (Object IDs); using a symmetric encryption algorithm. A symmetric encryption key is pre-generated with the data owner (DO). .

[0127] In this embodiment, taking image modalities as an example, it can be mapped to a hash table. Bucket number All plaintext object identifiers under Constructing a set of plaintext IDs for images Then a symmetric encryption algorithm is used. With a pre-generated symmetric encryption key The entire collection is encrypted to generate a list of ciphertext image IDs. Similarly, for an image with a plaintext ID of... text binary code Perform the same operation to generate a list of corresponding encrypted text IDs. .

[0128] For images In the hash tables In the middle, they are mapped to the same hash bucket number. The plaintext object IDs below constitute the image plaintext Object ID set. For the image plaintext Object ID set Perform overall encryption and generate a list of encrypted image IDs. :

[0129]

[0130]

[0131] For text Mapped to the same hash bucket number All plaintext object identifiers constitute the plaintext Object ID set. For plaintext Object ID collection Symmetric encryption generates a list of ciphertext IDs. :

[0132]

[0133]

[0134] Through the above mapping, each valid bucket number under each hash table carries a corresponding list of ciphertext IDs, which will be uploaded to the server along with the generated XOR filter encrypted index.

[0135] Step 1.3: Construct a set of all hash bucket numbers for the symmetrical image and text, and store each set in an XOR filter. Then, use symmetric subset predicate encryption to encrypt the XOR filter and generate an encrypted index. Specifically, it includes the following steps:

[0136] Step 1.3.1: Collect all images All hash bucket number pairs in a hash table The set of attributes constitutes the image attribute set. It records the existing bucket number information, but does not contain any object identifiers:

[0137]

[0138] For each image binary code , ,exist:

[0139]

[0140] in, The attribute values ​​for each image;

[0141] Encryption function using Symmetric Subset Predicate Encryption (XPE) Using image attribute sets message space Encryption, encryption function First, the attribute values ​​for each image. Calculate pseudo-random values ​​generated by the PRF F function. :

[0142]

[0143] Define all pseudo-random values ​​to be included in the pseudo-random attribute set of the image. Internally, this is followed by calling the XOR filter's update function XF.Update. , pseudo-random attribute set Inserting an empty array In the output, the updated array is generated. As image ciphertext ,Right now As an encryption function Return value:

[0144]

[0145] Step 1.3.2, all text in All hash bucket number pairs in a hash table The set of text attributes constitutes the text attribute set. It records the existing bucket number information, but does not contain any object identifiers:

[0146]

[0147] For each text binary code , ,exist:

[0148]

[0149] in, The attribute value for each text;

[0150] Attribute values ​​for each text Calculate pseudo-random values ​​generated by the PRF F function. :

[0151]

[0152] Define all pseudo-random values ​​to be contained in the pseudo-random attribute set of the text. within, that is ={ , ..., }; then the update function XF.Update of the XOR filter is called. , pseudo-random attribute set Inserting an empty array Finally, output the updated array. As text cipher ,Right now This is the return value of the encryption function Enc.

[0153] .

[0154] Step 1.4: Encrypt the index The list of encrypted object identifiers (IDs) is the same as the list of encrypted image IDs. ciphertext ID list And the encrypted original data, i.e., the ciphertext of the images and text: )and Uploaded to a server (CSP) for storage, where For object identifiers, ) is a general encryption function.

[0155] In this embodiment, the hash bucket number pairs of all images are collected as the image attribute set. For 10 images, there are a total of 10 images × 3 buckets / image = 30 hash bucket numbers. This may contain duplicates, but the XOR filter processes the set and will remove duplicates. These 30 hash bucket numbers constitute the original image attribute set. .

[0156] Taking image ID 1 as an example (“beach sunset.jpg”), its attribute set ...1010) (2 1100...0101) (3 1011...1110)}.

[0157] Inside the XPE.Enc function:

[0158] Calculate pseudo-random values: for Each original attribute value in the data, i.e., each hash bucket number, is processed using a pseudo-random function F and a key. Calculate its pseudo-random value. For example, for the first hash bucket number 0011...1010 of image 1, calculate its pseudo-random value. Perform this operation on all 30 hash bucket number pairs to obtain a pseudo-random attribute set. ' .

[0159] a-2) Inserting an XOR filter: Calling XF.Update , pseudo-random attribute set Insert all elements of ' into an empty array In the middle. This process will determine each element. The insertion order, and based on its three hash values. ( ), h1( h2( In the array The corresponding positions are filled with XORed values, ultimately making the array... This array can uniquely represent the set. (The array is filled.) This is ciphertext. .

[0160] Similarly, collect the hash bucket number pairs of all 10 texts (30 in total) as the attribute set of the text. Repeat the above process: calculate the pseudo-random value for each hash bucket number pair. ', then via XF.Update Will 'Insert into a new empty XOR filter array' In this case, the XOR filters for images and text are independent, and the final output is ciphertext. .

[0161] Step 2: During the client-side query and retrieval phase, when the client queries for images or text, the user enters the search criteria for the images or text. The binary code of the query condition is obtained according to the hash mapping method in step 1. Right now or And by binary code Determine the set of query predicates Based on the query predicate set Generate a search token and search token Send to the server (CSP). This includes the following steps:

[0162] Step 2.1: When the client searches for images or text, the user enters the search criteria for the images or text. The binary code of the query condition is obtained based on the hash mapping method. Image code and text code And by binary code Determine the set of query predicates :

[0163]

[0164]

[0165]

[0166] in, Image hash function, which sets the image query conditions Mapped to binary hash code, This refers to a text hash function that hashes the text query conditions. Mapped to binary hash code, This refers to a hash function based on bit sampling, which converts binary code... Mapped to the first hash tables Bit hash bucket number, Indicates the first hash tables The Middle The position index of each sampled bit;

[0167] Step 2.2: The client bases queries based on the predicate set. A search token is generated using the KeyGen algorithm, a symmetric subset predicate encryption key generation algorithm. and search token The algorithm sends the data to the server using the master key. and query predicate set As input, search token As output It is a 128-character random string, specifically including the following steps:

[0168] Step 2.2.1: For the query predicate set Each target element in Defined as hash bucket number pair First, using the master key Pseudo-random function key in Calculate each target element The pseudo-random value is then used with a set of hash functions. }Calculate each target element The pseudo-random values ​​in the XOR filter array The corresponding position , , And merge these locations into a query location set. ={ ,..., };in, } represents three independent hash functions used to map pseudo-random values ​​to array positions in the XOR filter. This represents a secure pseudo-random function. Indicates Input each target element for the key pair Calculate pseudo-random values;

[0169] Step 2.2.2: Randomly generate symmetric key of bits : Used for subsequent key encapsulation and obfuscation operations, where K {0,1 In this embodiment, = 128.

[0170] Step 2.2.3: Calculate the search token Part 1 Query predicate set Each target element pseudo-random function The values ​​are XORed and then combined with a randomly generated key. XOR obfuscation:

[0171]

[0172] in, For a secure pseudo-random function, It is the master key The pseudo-random function key in;

[0173] Step 2.2.4: Calculate the search token Part Two Using a symmetric encryption (SE) algorithm to generate a random key encryption: ,in The prefix part is fixed. A string consisting entirely of zeros, with the plaintext hash table number and bucket number as a suffix. This tuple is used to retrieve the ciphertext object identifier.

[0174] Step 2.2.5: Query the predicate set Generate search token It is then sent to the server for subsequent subset verification and encrypted retrieval on the server side.

[0175] In this embodiment, it is assumed that an authorized user wants to search for the most relevant images to the text "sunset, coastline".

[0176] First, the user enters the query condition q = "sunset, coastline" in the client.

[0177] Based on the cross-modal hashing method, the user client uses the same text hash function. Generate the 64-bit binary code b for the query. (“Sunset, Coast”) = 1001...1100.

[0178] According to the LSH method, the user client uses the same public parameters as the data owner. Calculate the hash bucket number of query code b in the three hash tables:

[0179] right : 0101...1100

[0180] right : 1001...0010

[0181] right : 0110...1011

[0182] This yields the set of target hash bucket numbers (the set of query predicates). :

[0183] = {(1, 0101...1100), (2, 1001...0010), (3, 0110...1011)}

[0184] Secondly, the client is based on a collection. Use the XPE.KeyGen algorithm to generate search tokens. The algorithm uses the master key. (Pre-distributed securely to authorized users) and As input.

[0185] for Each element in the array is defined as a hash bucket number pair. Use the same set of hash functions as when the index was built. Calculate the position of its corresponding pseudo-random value in the XOR filter, for example, for = (1, 0101...1100), first calculate its pseudo-random value. Then its set of locations can be calculated. {15, 27, 102}.

[0186] These locations are combined into a total query location set S = {15, 27, 102, 5, 88, 201, 120, 33, 70}.

[0187] Randomly generate a 128-bit symmetric key. ,For example = a3f5...c8d9.

[0188] Calculate the first part of the search token :

[0189] First, use Pseudo-random function key in ,right For each element in the dataset, a pseudo-random value is calculated: , , .

[0190] The intermediate value obtained by XORing these three pseudo-random values ​​is then XORed with the randomly generated key K to obtain... (F( sk ) F(sk) ) F(sk) )) K

[0191] Calculate the second part of the search token Using the symmetric encryption algorithm SE, with K as the key, 128 bits of 0 ( ) and hash bucket number pairs Encrypt the cascaded results: .

[0192] The generated search token Send to the server.

[0193] Step 3, Server Verification Phase: The server (CSP) receives the search token sent by the client. Next, verify the existence of the target hash bucket number, complete the verification, and return the encrypted multimodal retrieval result to the client; specifically, the steps are as follows:

[0194] Step 3.1: Select the corresponding encrypted index based on the query type: Let the selected encrypted index be... For image queries, the encrypted image index will be used. If it is a text query, then a text-encrypted index will be used. Encrypted index It is an encrypted array of XOR filters ( , ), used to securely store all hash bucket numbers generated by the data owner (DO) during the index building phase.

[0195] Step 3.2: The server processes the received search token. Perform a symmetric decryption algorithm with the selected encryption index. ), verify the set of query predicates corresponding to the search token Is it a text attribute set? or image attribute set A subset of. For ease of representation, let be the attribute set. or Specifically, it includes the following steps:

[0196] Step 3.2.1: The server first calculates the temporary key. Value: For search tokens The query location set corresponding array Perform an XOR operation on all values ​​within the array, then multiply by the token component. XOR, to obtain the temporary key :

[0197]

[0198] Query location set It is the client's query predicate set The hash mapping specifies the target hash bucket number in the array. The position in the query predicate set is determined if and only if the query predicate set is defined. Completely contained in the set of index bucket numbers In the meantime, it can recover the temporary key that matches the search token. ,Right now ;

[0199] Step 3.2.2: Transfer the temporary key As the decryption key, the server uses a symmetric decryption algorithm ( ) for search tokens Decrypt to obtain the decrypted value. The server verifies the decrypted value. Whether or not At the beginning, if they are equal, then the temporary key The restoration is correct, indicating that the query predicate set is correct. It is a set of index bucket numbers subset of If the output is True, the verification is successful; otherwise, the verification fails and an empty value is returned to the client.

[0200] In this embodiment, because the semantics of the user query ("sunset, coastline") are highly similar to the text of object ID1 ("sunset, coastline, tranquility"), the generated query bucket number set is... It is very likely that the entire text attribute set of object ID 1 is contained within it. (It may also be included in the property set of other similar objects). If and only if ⊆ At that time, according to the construction principle of XOR filters, K' K.

[0201] Therefore, when When it is a subset of the text attribute set, the decryption result τ will be... The server verification was successful, outputting "True".

[0202] Step 4: After receiving the returned encrypted multimodal search results, the client uses the key to decrypt the results sequentially to obtain the object identifier containing the query conditions, and finally retrieves the corresponding image or text as the final search result. Specifically, after the subset verification is successful, the server (CSP) directly retrieves the decrypted result from the previous step. Extracting from the middle The subsequent splicing process reconstructs the plaintext bucket number pairs. Then, for each hash table, based on each ( ) in the image encrypted ID list respectively and text ciphertext ID list The corresponding list of ciphertext Object IDs is searched in the database. The union of all the obtained ciphertext Object ID values ​​is taken to obtain a set of candidate encrypted IDs. The corresponding encrypted multimodal data is extracted based on the candidate encrypted IDs and returned to the client as a whole.

[0203] The client receives and processes the response, obtaining the search results, specifically as follows:

[0204] After receiving the response data packet, the client extracts the candidate encrypted multimodal data, decrypts it, and obtains the plaintext image, which is the image of object ID1 returned as the search result based on the query condition "sunset, coast".

[0205] If verification fails, that is... The server returned an empty response, and the client output "No matching result".

[0206] The above description is merely an embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principle of the present invention should be included within the scope of the claims of the present invention.

Claims

1. A low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption, characterized in that: The low-false-error cross-modal encrypted retrieval method includes an index building stage, a client query retrieval stage, and a server verification stage, specifically including the following steps: Step 1: During the index building phase, the index will contain... The dataset consists of different multimodal data, including images and text. Cross-modal hashing algorithm is used to map images and text to binary codes in the same Hamming space. For binary code The process involves bucketing, assigning a hash bucket number to each hash bucket, and establishing a mapping between bucket numbers and a list of object identifiers. This creates an image attribute set by combining all the hash bucket numbers of the symmetrical image and text. Text attribute set Each of these is stored in an XOR filter, and the XOR filter is encrypted using symmetric subset predicate encryption to obtain the encrypted index. Step 2: During the client-side query and retrieval phase, when the client queries for images or text, the user enters the search criteria for the images or text. The binary code of the query condition is obtained according to the hash mapping method in step 1. And by binary code Determine the set of query predicates Based on the query predicate set Generate a search token and search token Send to the server (CSP); Step 3, Server Verification Phase: The server (CSP) receives the search token sent by the client. Then, verify whether the target hash bucket number exists, complete the verification, and return the encrypted multimodal retrieval result to the client; Step 4: After receiving the returned encrypted multimodal search results, the client uses the key to decrypt and output the object identifier containing the query conditions, and finally obtains the corresponding image or text as the final search result.

2. The low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 1, characterized in that: Step 1 specifically includes the following steps: Step 1.1 includes The dataset consists of different multimodal data, including images and text. , For images, For text, For the object identifier, two hash functions are obtained using the Cross-Modal Hash (CMH) algorithm: one for the image and one for the image. and for text : in, Image The extracted feature vectors, This represents the linear projection matrix of the image, and sign(⋅) is the sign function. Representing text The extracted feature vectors, Represents the linear projection moment of the text, returning +1 or -1. Divide by Then, map the value to binary bits; Then each image ,text Map the image and text Mapping to the same Hamming space yields the image code. and text code , and All are of length The binary CMH code will and Inputting cross-modal CMH code sets generates CMH code sets. , ; Step 1.2: Code the image and text code Divide the data into hash buckets, assign a hash bucket number to each hash bucket, and establish a hash bucket number with its corresponding object identifier. Mapping relationships between lists; Step 1.3: Construct a set of all hash bucket numbers for the symmetrical image and text, and store each set in an XOR filter. Then, use symmetric subset predicate encryption to encrypt the XOR filter and generate an encrypted index. ; Step 1.4: Encrypt the index The encrypted object identifier ID list, i.e., the image encrypted ID list. ciphertext ID list And the encrypted original data, i.e., the ciphertext of the images and text: )and Uploaded to a server (CSP) for storage, where For object identifiers, ) is a general encryption function.

3. The low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 2, characterized in that: Step 1.2 specifically includes the following steps: Step 1.2.1, for the CMH code set Each binary code in The data owner (DO) uses a pre-defined LSH hash table for bucketing and extracts the binary code. The bit values ​​at corresponding positions are arranged in order. Bit binary string Map the binary CMH code to the corresponding Bit hash bucket number : in, Represents each hash table Define an independent hash function. , Number of sampling bits The number of independent hash tables. The set of group hash tables is Each hash table ; Step 1.2.2: Identify the object identifier of the multimodal data. Insert into hash table hash bucket number In this process, an inverted index for the data is implemented using a symmetric encryption algorithm. A symmetric encryption key is pre-generated with the data owner (DO). ; For images In the hash tables In the middle, they are mapped to the same hash bucket number. The plaintext object IDs below constitute the image plaintext Object ID set. For the image plaintext Object ID set Perform overall encryption and generate a list of encrypted image IDs. : For text Mapped to the same hash bucket number All plaintext object identifiers under this set constitute the plaintext ObjectID set. For plaintext Object ID collection Symmetric encryption generates a list of ciphertext IDs. : Through the above mapping, each valid bucket number under each hash table carries a corresponding list of ciphertext IDs, which is uploaded to the server.

4. The low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 2, characterized in that: Step 1.3 specifically includes the following steps: Step 1.3.1: Collect all images All hash bucket number pairs in a hash table The set of attributes constitutes the image attribute set. : For each image binary code , ,exist: in, The attribute values ​​for each image; Using image attribute sets message space Encryption, encryption function First, the attribute values ​​for each image. Calculate pseudo-random values ​​generated by the PRF F function. : All pseudo-random values ​​are contained in the pseudo-random attribute set of the image. Internally, this is followed by calling the XOR filter's update function XF.Update. , pseudo-random attribute set Insert an empty array In the output, the updated array is generated. As image ciphertext : Step 1.3.2, all text in All hash bucket number pairs in a hash table The set of text attributes constitutes the text attribute set. : For each text binary code ,exist: in, The attribute value for each text; Attribute values ​​for each text Calculate pseudo-random values ​​generated by the PRF F function. : All pseudo-random values ​​are contained in the pseudo-random attribute set of the text. within, that is ={ , ..., }; then the update function XF.Update of the XOR filter is called. , pseudo-random attribute set Insert an empty array Finally, output the updated array. As text cipher : 。 5. The low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 1, characterized in that: Step 2 specifically includes the following steps: Step 2.1: When the client searches for images or text, the user enters the search criteria for the images or text. According to binary code Image code and text code And by binary code Determine the set of query predicates : in, Image hash function, which sets the image query conditions. Mapped to binary hash code, This refers to a text hash function that hashes the text query conditions. Mapped to binary hash code, This refers to a hash function based on bit sampling, which converts binary code... Mapped to the first hash tables Bit hash bucket number, Indicates the first hash tables The Middle The position index of each sampled bit; Step 2.2: The client bases queries based on the predicate set. A search token is generated using the KeyGen algorithm, a symmetric subset predicate encryption key generation algorithm. and search token Send to the server.

6. The low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 5, characterized in that: Step 2.2 specifically includes the following steps: Step 2.2.1: For the query predicate set Each target element in Defined as hash bucket number pair First, using the master key Pseudo-random function key in Calculate each target element The pseudo-random value is then used with a set of hash functions. }Calculate each target element The pseudo-random values ​​in the XOR filter array The corresponding position , , And merge these locations into a query location set. ={ ,..., };in, } represents three independent hash functions used to map pseudo-random values ​​to array positions in the XOR filter. This represents a secure pseudo-random function. Indicates Input each target element for the key pair Calculate pseudo-random values; Step 2.2.2: Randomly generate symmetric key of bits :K {0,1 ; Step 2.2.3: Calculate the search token Part 1 Query predicate set Each target element pseudo-random function The values ​​are XORed and then combined with a randomly generated key. XOR obfuscation: in, For a secure pseudo-random function, It is the master key The pseudo-random function key in; Step 2.2.4: Calculate the search token Part Two Using a symmetric encryption (SE) algorithm to generate a random key encryption: ; Step 2.2.5: Query the predicate set Generate search token It is then sent to the server for subsequent subset verification and encrypted retrieval on the server side.

7. The low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 1, characterized in that: Step 3 specifically includes the following steps: Step 3.1: Select the corresponding encrypted index based on the query type: Let the selected encrypted index be... For image queries, the encrypted image index will be used. If it is a text query, then a text-encrypted index will be used. ; Step 3.2: The server processes the received search token. Perform a symmetric decryption algorithm with the selected encryption index. ), verify the set of query predicates corresponding to the search token Is it a text attribute set? or image attribute set A subset of.

8. A low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 7, characterized in that: Step 3.2 specifically includes the following steps: Step 3.2.1: The server first calculates the temporary key. Value: For search tokens The query location set corresponding array Perform an XOR operation on all values ​​within the array, then multiply by the token component. XOR, to obtain the temporary key : Query location set It is the client's query predicate set The hash mapping specifies the target hash bucket number in the array. The position in the query predicate set is determined if and only if the query predicate set is defined. Completely contained in the set of index bucket numbers In the meantime, it can recover the temporary key that matches the search token. ,Right now For ease of description For text attribute set or image attribute set ; Step 3.2.2: Transfer the temporary key As the decryption key, the server uses a symmetric decryption algorithm ( ) for search tokens Decrypt to obtain the decrypted value. The server verifies the decrypted value. Whether or not At the beginning, if they are equal, then the temporary key The restoration is correct, indicating that the query predicate set is correct. It is a set of index bucket numbers subset of If the output is True, the verification is successful. Otherwise, if the verification fails, an empty value will be returned to the client.

9. A low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 7, characterized in that: Step 4 specifically involves: After the subset verification passes, the server (CSP) directly uses the decryption result from the previous step. Extracting from the middle The subsequent splicing process reconstructs the plaintext bucket number pairs. Then, for each hash table, based on each ( In the image encrypted ID list respectively and text ciphertext ID list The corresponding list of ciphertext Object IDs is searched in the database. The union of all the obtained ciphertext Object ID values ​​is taken to obtain a set of candidate encrypted IDs. The corresponding encrypted multimodal data is extracted based on the candidate encrypted IDs and returned to the client as a whole.

10. A low-false-error cross-modal ciphertext retrieval method based on subset predicate encryption according to claim 1, characterized in that: The low-error-response cross-modal encrypted text retrieval method is implemented through a low-error-response cross-modal encrypted text retrieval system, which includes a data owner (DO), a server (CSP), and a querier (SU). The data owner (DO) is responsible for processing the raw multimodal data and building an encrypted index before uploading it to the server (CSP). The queryer initiates a cross-modal query request; The server (CSP) stores encrypted indexes and responds to cross-modal queries, thereby ensuring query privacy.