Data retrieval method, device and equipment, readable storage medium and program product
By storing database fingerprint information in the target filter and using encrypted query vectors for data reconstruction, the problems of low query efficiency and large storage space in the PIR scheme are solved, achieving efficient and privacy-preserving data retrieval.
Patent Information
- Application Number
- CN202511248722.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-03
- Publication Date
- 2025-12-16
AI Technical Summary
Existing privacy information retrieval (PIR) schemes suffer from low query efficiency, large storage space requirements, and high transmission bandwidth.
An encrypted query vector is used to indicate the index position in the target filter. The target filter stores the fingerprint information of the original key-value data in the database. The fingerprint information generated by the fingerprint function is used to reconstruct the data, thereby realizing anonymous data query and accurate information acquisition.
It improves data query efficiency, reduces storage costs and transmission bandwidth, while protecting the privacy of the querying party and reducing the false positive rate.
Smart Images

Figure CN121144360A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of information security technology, and in particular to a data retrieval method, apparatus, device, readable storage medium, and program product. Background Technology
[0002] Existing Private Information Retrieval (PIR) methods can be divided into Index PIR and Keyword PIR. Index PIR is limited to querying the index of a flat array, meaning data is retrieved through the index. This differs significantly from the indexing methods of structured and unstructured databases in the real world, and its level of abstraction is relatively low. It is suitable for scenarios with relatively simple data query requirements. Keyword PIR allows queries based on keywords; users can retrieve data related to those keywords by entering them. This is closer to the way databases are used in the real world and can better meet the data query needs of practical applications. However, it suffers from low query efficiency, large storage space consumption, and high transmission bandwidth. Summary of the Invention
[0003] The purpose of this invention is to provide a data retrieval method, apparatus, device, readable storage medium, and program product to solve the problems of low query efficiency, large storage space occupation, and high transmission bandwidth in the existing PIR scheme.
[0004] To address the aforementioned technical problems, embodiments of the present invention provide a data retrieval method, applied to a first device, comprising:
[0005] A query request is sent to the second device. The query request includes an encrypted query vector. The query vector is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function.
[0006] Receive the encrypted first fingerprint information sent by the second device;
[0007] The encrypted first fingerprint information is decrypted to obtain the first fingerprint information;
[0008] The first data is obtained by reconstructing data using the first fingerprint information and the fingerprint function.
[0009] Optionally, the method further includes:
[0010] Receive a set of hash functions sent by the second device, wherein the set of hash functions is used to determine the location of the original key-value data in the corresponding storage of the target filter;
[0011] The query vector is generated by performing a hash calculation on the first keyword according to the set of hash functions; wherein, the index value of the first index position in the query vector is a first value, and the index value of the second index position which is different from the first index position is a second value, and the first index position is the corresponding index position of the first keyword in the target filter;
[0012] The query vector is encrypted using a pre-set key to generate the encrypted query vector.
[0013] Optionally, the first fingerprint information includes multiple fingerprint segments, each fingerprint segment corresponding to a portion of the fingerprint information of the first data;
[0014] The process of reconstructing data using the first fingerprint information and the fingerprint function to obtain the first data includes:
[0015] By concatenating and XORing multiple fingerprint segments in the first fingerprint information, a target fingerprint information is obtained, wherein the target fingerprint information corresponds to the fingerprint information of the complete first data;
[0016] If the target fingerprint information matches the first keyword, the target fingerprint information and the fingerprint function are used to reconstruct the data to obtain the first data.
[0017] Optionally, the method further includes:
[0018] The first hash function in the fingerprint function is used to calculate the target fingerprint segment of the first keyword;
[0019] If the target fingerprint segment is the same as the fingerprint segment corresponding to the first keyword in the target fingerprint information, then the target fingerprint information is determined to match the first keyword.
[0020] This invention also provides a data retrieval method, applied to a second device, comprising:
[0021] The system receives a query request sent by a first device. The query request includes an encrypted query vector, which is used to indicate the index position of a first keyword in a target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter.
[0022] Based on the query request, the target filter is used to query the index position indicated by the query vector to generate the encrypted first fingerprint information;
[0023] The encrypted first fingerprint information is sent to the first device.
[0024] Optionally, the method further includes:
[0025] The binary fusion filter is initialized, and the set of hash functions corresponding to the binary fusion filter is determined;
[0026] The fingerprint function is used to calculate the fingerprint information of each original key value in the database.
[0027] Using the set of hash functions, the target position of each original key-value data in the binary fusion filter is determined, and the fingerprint information of the original key-value data is written into the corresponding target position to generate the target filter.
[0028] Optionally, the binary fusion filter includes multiple data storage segments;
[0029] The step of using the hash function set to determine the target position of each original key-value data in the binary fusion filter, and writing the fingerprint information of the original key-value data into the corresponding target position to generate the target filter includes:
[0030] For each original key-value data in the database, the target location corresponding to the original key-value data in multiple data storage segments is calculated using the set of hash functions, wherein one hash function corresponds to one data storage segment.
[0031] The fingerprint information of the original key value data is written into the corresponding multiple target locations to generate the target filter, wherein each target location corresponds to a fingerprint segment of the original key value data, and each fingerprint segment corresponds to a portion of the fingerprint information of the original key value data.
[0032] Optionally, the step of querying the index position indicated by the query vector using the target filter to generate the encrypted first fingerprint information includes:
[0033] The index position is queried by performing a homomorphic inner product operation on the target filter and the query vector to generate the encrypted first fingerprint information.
[0034] This invention also provides a first network device, including a transceiver and a processor, wherein the transceiver is used for:
[0035] A query request is sent to the second device. The query request includes an encrypted query vector. The query vector is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function.
[0036] Receive the encrypted first fingerprint information sent by the second device;
[0037] The processor is used for:
[0038] The encrypted first fingerprint information is decrypted to obtain the first fingerprint information;
[0039] The first data is obtained by reconstructing data using the first fingerprint information and the fingerprint function.
[0040] This invention also provides a second network device, including a transceiver and a processor, wherein the transceiver is used for:
[0041] The system receives a query request sent by a first device. The query request includes an encrypted query vector, which is used to indicate the index position of a first keyword in a target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter.
[0042] The processor is configured to query the index position indicated by the query vector using the target filter according to the query request, and generate the encrypted first fingerprint information;
[0043] The transceiver is also used to send the encrypted first fingerprint information to the first device.
[0044] This invention also provides a data retrieval device, applied to a first device, comprising:
[0045] A first sending module is used to send a query request to a second device. The query request includes an encrypted query vector, which is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function.
[0046] The first receiving module is used to receive the encrypted first fingerprint information sent by the second device;
[0047] The first decryption module is used to decrypt the encrypted first fingerprint information to obtain the first fingerprint information;
[0048] The first reconstruction module is used to reconstruct data using the first fingerprint information and the fingerprint function to obtain the first data.
[0049] This invention also provides a data retrieval device, applied to a second device, comprising:
[0050] The second receiving module is used to receive a query request sent by the first device. The query request includes an encrypted query vector, which is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter.
[0051] The first query module is used to query the index position indicated by the query vector using the target filter according to the query request, and generate the encrypted first fingerprint information;
[0052] The second sending module is used to send the encrypted first fingerprint information to the first device.
[0053] This invention also provides a network device, including: a processor, a memory, and a program stored in the memory and executable on the processor, wherein the program, when executed by the processor, implements the data retrieval method as described in any of the preceding embodiments.
[0054] This invention also provides a readable storage medium, comprising: a program stored on the readable storage medium, wherein when the program is executed by a processor, it implements the steps of the data retrieval method as described in any of the preceding claims.
[0055] This invention also provides a computer program product, including computer instructions, which, when executed by a processor, implement the steps of the data retrieval method as described in any of the preceding embodiments.
[0056] At least one of the above technical solutions of the present invention has the following beneficial effects:
[0057] In the above scheme, the first device, acting as the querying party, firstly sends a query request to the second device. The query request includes an encrypted query vector, which indicates the index position of the first keyword in the target filter. The query request requests the first fingerprint information of the first data stored by the target filter at the index position. The target filter stores the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function. Then, the first device receives the encrypted first fingerprint information sent by the second device. Finally, the encrypted first fingerprint information is decrypted, and the data is reconstructed using the decrypted first fingerprint information and the fingerprint function to obtain the first data.
[0058] The second device, acting as the service provider, first receives a query request from the first device. The query request includes an encrypted query vector, which indicates the index position of a first keyword in a target filter. The query request requests the first fingerprint information of first data stored at the index position by the target filter. The target filter stores fingerprint information of original key-value data in a database, with different original key-value data stored in different positions within the target filter. Then, based on the query request, the second device uses the target filter to query the index position indicated by the query vector, generating encrypted first fingerprint information. Finally, the second device sends the encrypted first fingerprint information to the first device.
[0059] In the above method, since the query vector sent by the first device is encrypted, the second device does not know the content queried by the first device. It obtains the encrypted first fingerprint information based on the encrypted query vector, protecting the privacy of the querying party. Furthermore, because the query vector indicates the index position of the first keyword in the target filter, it can accurately obtain only the information needed by the querying party. This reduces the false positive rate and improves data query efficiency while achieving anonymous data querying. Regarding data storage and transmission, the target filter in this embodiment stores fingerprint information, which is generated by processing the original key-value data using a fingerprint function. Therefore, the target filter does not store the original key-value data itself, reducing both the storage cost of the target filter and the bandwidth required for data transmission. In addition, based on the characteristics of fingerprint information, the first device can reconstruct the data itself based on the first fingerprint information and the fingerprint function to obtain the required first data, further ensuring data privacy and improving query efficiency. Attached Figure Description
[0060] Figure 1 This is a flowchart illustrating a data retrieval method according to one embodiment of the present invention;
[0061] Figure 2 This is a schematic flowchart of a data retrieval method according to another embodiment of the present invention;
[0062] Figure 3 This is a schematic diagram illustrating the determination of the index position of the keyword in the target filter according to an embodiment of the present invention;
[0063] Figure 4 This is a schematic diagram illustrating the fingerprint information of the data corresponding to the keywords in this embodiment of the invention in the target filter query.
[0064] Figure 5 This is a schematic diagram of the structure of the first network device according to an embodiment of the present invention;
[0065] Figure 6 This is a schematic diagram of the structure of the second network device according to an embodiment of the present invention;
[0066] Figure 7 This is a schematic diagram of the structure of a data retrieval device according to one embodiment of the present invention;
[0067] Figure 8 This is a schematic diagram of the structure of a data retrieval device according to another embodiment of the present invention. Detailed Implementation
[0068] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0069] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such use of data can be interchanged where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first," "second," etc., are generally of the same class and the number of objects is not limited; for example, a first object can be one or more. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.
[0070] like Figure 1 As shown, an embodiment of the present invention provides a data retrieval method, applied to a first device, comprising:
[0071] Step S101: Send a query request to the second device. The query request includes an encrypted query vector. The query vector is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function.
[0072] In step S101, the first device, acting as the data querying party, sends a query request to the second device when it needs to retrieve the first data corresponding to the first keyword in the database. Using the index position of the first keyword in the target filter, the first device requests the query for the first fingerprint information of the first data stored in the target filter. Since the target filter does not store the original key-value data (data in key-value pair form), but rather the fingerprint information of the original key-value data generated using a fingerprint function, storage costs and transmission bandwidth are reduced. Furthermore, the query vector sent by the first device is encrypted using a randomly generated public key, so the second device does not know the content queried by the first device. It obtains the encrypted first fingerprint information based on the encrypted query vector, protecting the privacy of the querying party. Moreover, since the query vector indicates the index position of the first keyword in the target filter, it can accurately obtain only the information needed by the querying party, improving data query efficiency while achieving anonymous data querying.
[0073] The fingerprint function is expressed as: fpt π (k,x) = h(k)‖v, where h(k) is the hash value of key k, || denotes concatenation, and v is the value associated with key k. Specifically, the fingerprint function is calculated by using multiple hash functions to map key-value pairs to a fixed-length bit string. This bit string can be used to uniquely identify each key-value pair in the target filter, or at least have a sufficiently low collision probability. The number of bits in the fingerprint is adjusted according to the required false positive rate π. Longer fingerprints can reduce the false positive rate but increase storage requirements. Target filters include, but are not limited to, binary fusion filters (BFFs). It should be noted that, compared to traditional cuckoo filters, Bloom filters, and other structures, BFFs can not only determine whether the queried element exists, but also store the fingerprint information of the original key-value data generated by the fingerprint function. This fingerprint information can be used to recover the original key-value data through concatenation and / or XOR operations, allowing for efficient data retrieval while controlling the false positive rate.
[0074] Step S102: Receive the encrypted first fingerprint information sent by the second device;
[0075] In step S102, since the query vector is encrypted, the first fingerprint information obtained by the second device based on the encrypted query vector is also encrypted.
[0076] Step S103: Decrypt the encrypted first fingerprint information to obtain the first fingerprint information;
[0077] In step S103, the encrypted first fingerprint information is decrypted using the private key corresponding to the public key to obtain the first fingerprint information.
[0078] Step S104: Use the first fingerprint information and the fingerprint function to reconstruct the data and obtain the first data.
[0079] In step S104, the first data is reconstructed by performing operations such as splicing, XORing, and reverse calculation based on the first fingerprint information and fingerprint function.
[0080] In this embodiment of the invention, the first device, acting as the querying party, first sends a query request to the second device. The query request includes an encrypted query vector, which indicates the index position of a first keyword in a target filter. The query request requests the first fingerprint information of the first data stored at the index position by the target filter. The target filter stores fingerprint information of original key-value data in a database; different original key-value data are stored in different positions within the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function. Then, the first device receives the encrypted first fingerprint information sent by the second device. Finally, the encrypted first fingerprint information is decrypted, and data reconstruction is performed using the decrypted first fingerprint information and the fingerprint function to obtain the first data. Because the query vector sent by the first device is encrypted, the second device does not know the content queried by the first device. Obtaining the encrypted first fingerprint information based on the encrypted query vector protects the privacy of the querying party. Furthermore, since the query vector indicates the index position of the first keyword in the target filter, only the information needed by the querying party can be accurately obtained. This achieves anonymous data querying, reduces the false positive rate, and improves data query efficiency. Regarding data storage and transmission, the target filter in this embodiment stores fingerprint information, which is generated by processing the original key-value data using a fingerprint function. Therefore, the target filter does not store the original key-value data itself, which reduces both the storage cost of the target filter and the bandwidth required for data transmission. Furthermore, based on the characteristics of fingerprint information, the first device itself can reconstruct the data based on the first fingerprint information and the fingerprint function to obtain the required first data, further ensuring data privacy and improving query efficiency.
[0081] In one embodiment, optionally, the method further includes:
[0082] Receive a set of hash functions sent by the second device, wherein the set of hash functions is used to determine the location of the original key-value data in the corresponding storage of the target filter;
[0083] The query vector is generated by performing a hash calculation on the first keyword according to the set of hash functions; wherein, the index value of the first index position in the query vector is a first value, and the index value of the second index position which is different from the first index position is a second value, and the first index position is the corresponding index position of the first keyword in the target filter;
[0084] The query vector is encrypted using a pre-set key to generate the encrypted query vector.
[0085] In this embodiment of the invention, when the querying party performs a data query, it first determines the first keyword it wants to retrieve, and then uses a hash function set to perform hash calculation on the first keyword to generate the query vector. The hash function set is used by the second device to construct the target filter and is used to determine the location of the original key-value data stored in the target filter. The query vector is set to a first value at the index position corresponding to the first keyword, and a second value at all other positions. Generally, the first value is 1 and the second value is 0. Further, let the keyword set be {k1,k2,k3,…}, and use the hash function set {h1(k...k2,k3,…}... i ),h2(k i ),h3(k i ...} for keyword k i Perform the calculation:
[0086] h1(k i → Offset position of target filter storage segment 1;
[0087] h2(k i → Offset position of target filter storage segment 2;
[0088] h3(k i → Offset position of target filter storage segment 3;
[0089] The above three offset positions are combined to generate a unique number in the overall binary bit array of the BFF, which is the index position of the keyword in the target filter.
[0090] For example, by using a set of hash functions to calculate the keyword "apple", the index position of the first keyword in the target filter, i.e., the query vector, is generated as "0110010", where the value "1" is used to indicate the index position of the keyword "apple".
[0091] Finally, the query vector is encrypted using the public key from the randomly generated key information to generate the encrypted query vector.
[0092] In one embodiment, the first fingerprint information may optionally include multiple fingerprint segments, each fingerprint segment corresponding to a portion of the fingerprint information of the first data.
[0093] The process of reconstructing data using the first fingerprint information and the fingerprint function to obtain the first data includes:
[0094] By concatenating and XORing multiple fingerprint segments in the first fingerprint information, a target fingerprint information is obtained, wherein the target fingerprint information corresponds to the fingerprint information of the complete first data;
[0095] If the target fingerprint information matches the first keyword, the target fingerprint information and the fingerprint function are used to reconstruct the data to obtain the first data.
[0096] In this embodiment of the invention, since the target filter is divided into multiple storage segments, when storing the fingerprint information of the original key-value pairs, the fingerprint information is divided into multiple fingerprint segments and stored in different storage segments. Based on this, the first fingerprint information queried and returned by the second device includes multiple fingerprint segments r. When the first device reconstructs the first data using the first fingerprint information, it first needs to perform concatenation and XOR operations on the multiple fingerprint segments r in the first fingerprint information to obtain the complete target fingerprint information h(k) of the first data. i )‖v i , combined Figure 3 It can be seen that the expression for the target fingerprint information is: r 1 ||r 2 ‖…‖r n =h(k i )‖v i Finally, after confirming that the target fingerprint information matches the first keyword, the fingerprint function is used to perform an inverse operation on the target fingerprint information to reconstruct the first data. An error correction mechanism is also introduced to address potential errors that may occur during segment storage and processing.
[0097] In one embodiment, optionally, the method further includes:
[0098] The first hash function in the fingerprint function is used to calculate the target fingerprint segment of the first keyword;
[0099] If the target fingerprint segment is the same as the fingerprint segment corresponding to the first keyword in the target fingerprint information, then the target fingerprint information is determined to match the first keyword.
[0100] In this embodiment of the invention, before data reconstruction, it is necessary to perform matching verification on the first fingerprint information to verify the existence and accuracy of the first data. The specific operation is as follows:
[0101] Using the fingerprint function fpt π The first hash function in (k,x)=h(k)‖v calculates the first keyword to obtain the target fingerprint segment h(k) of the first keyword. The target fingerprint segment h(k) is matched with h(k) in the first fingerprint information. If they are the same, the target fingerprint information is considered to match the first keyword, and the first data exists and is accurate.
[0102] like Figure 2 As shown, this embodiment of the invention also provides a data retrieval method, applied to a second device, comprising:
[0103] Step S201: Receive a query request sent by the first device. The query request includes an encrypted query vector. The query vector is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter.
[0104] In step S201, the second device, acting as a service provider, receives a query request from the first device. The query request includes an encrypted query vector. Therefore, the second device is unaware of the content queried by the first device, protecting the privacy of the first device (the querying party). The query vector indicates the index position of the first keyword in the target filter, and the query request requests the first fingerprint information of the first data stored at that index position in the target filter. In subsequent data queries, only the information needed by the querying party can be accurately retrieved, improving data query efficiency while achieving anonymous data querying. Furthermore, since the target filter stores fingerprint information of the original key-value data generated using a fingerprint function, rather than the original key-value data itself, storage costs and transmission bandwidth are reduced.
[0105] The fingerprint function is expressed as: fpt π(k,x) = h(x)‖v, where h(x) is the hash value of key k, || denotes concatenation, and x is the value associated with key k. Specifically, the fingerprint function is calculated by using multiple hash functions to map key-value pairs to a fixed-length bit string. This bit string can be used to uniquely identify each key-value pair in the target filter, or at least have a sufficiently low collision probability. The number of bits in the fingerprint is adjusted according to the required false positive rate π. Longer fingerprints can reduce the false positive rate but increase storage requirements. Target filters include, but are not limited to, BFFs. It should be noted that, compared to traditional cuckoo filters, Bloom filters, and other structures, BFFs can not only determine whether the queried element exists, but also store the fingerprint information of the original key-value data generated by the fingerprint function. This fingerprint information can be used to recover the original key-value data through concatenation and / or XOR operations.
[0106] Step S202: Based on the query request, use the target filter to query the index position indicated by the query vector to generate the encrypted first fingerprint information;
[0107] In step S202, the target filter is used to obtain the first fingerprint information of the first data at the index position indicated by the query vector. It should be noted that the query vector is encrypted. The second device does not know the content of the query vector during the entire process of querying the first fingerprint information. Therefore, the generated first fingerprint information is also encrypted, realizing the anonymous query of data.
[0108] Step S203: Send the encrypted first fingerprint information to the first device.
[0109] In this embodiment of the invention, the second device, acting as a service provider, first receives a query request sent by the first device. The query request includes an encrypted query vector, which indicates the index position of a first keyword in a target filter. The query request requests the first fingerprint information of first data stored by the target filter at the index position. The target filter stores fingerprint information of original key-value data in a database, and different original key-value data are stored in different positions in the target filter. Then, according to the query request, the second device uses the target filter to query the index position indicated by the query vector to generate the encrypted first fingerprint information. Finally, the second device sends the encrypted first fingerprint information to the first device.
[0110] In the above method, since the query vector sent by the first device is encrypted, the second device does not know the content queried by the first device. It obtains the encrypted first fingerprint information based on the encrypted query vector, protecting the privacy of the querying party. Furthermore, because the query vector indicates the index position of the first keyword in the target filter, it can accurately obtain only the information needed by the querying party. This reduces the false positive rate and improves data query efficiency while achieving anonymous data querying. Regarding data storage and transmission, the target filter in this embodiment stores fingerprint information, which is generated by processing the original key-value data using a fingerprint function. Therefore, the target filter does not store the original key-value data itself, reducing both the storage cost of the target filter and the bandwidth required for data transmission. In addition, based on the characteristics of fingerprint information, the first device can reconstruct the data itself based on the first fingerprint information and the fingerprint function to obtain the required first data, further ensuring data privacy and improving query efficiency.
[0111] In one embodiment, optionally, the method further includes:
[0112] The binary fusion filter is initialized, and the set of hash functions corresponding to the binary fusion filter is determined;
[0113] The fingerprint function is used to calculate the fingerprint information of each original key value in the database.
[0114] Using the set of hash functions, the target position of each original key-value data in the binary fusion filter is determined, and the fingerprint information of the original key-value data is written into the corresponding target position to generate the target filter.
[0115] In this embodiment of the invention, before performing data retrieval, it is first necessary to construct a target filter, and the specific operations are as follows:
[0116] The first step is to initialize the parameters of the binary fusion filter (BFF). This involves selecting parameters α (the number of hash functions, typically 3 or 4) and π (false positive rate). Based on these parameters, the filter size and the required set of hash functions {h1(k)} are determined. i ),h2(k i ),h3(k i )...}.
[0117] Based on this, the number of bits m for each entry in the filter is further determined. m is usually related to π and can be approximated by the reciprocal of π, i.e. In theory, m should be large enough to ensure that the false positive rate remains within an acceptable range.
[0118] For a BFF, the filter size n can be approximated using the following formula:
[0119]
[0120] Where n represents the number of filter elements, π represents the false positive rate, m represents the number of bits per filter entry, α represents the number of hash functions, and g represents the size of each storage segment of the filter. A filter of a specific size n is generated based on the input, and a set of hash functions {h1(k)} is determined. i ),h2(k i ),h3(k i It should be noted that the number and properties of hash functions are selected and configured according to specific security and efficiency requirements.
[0121] The second step is to retrieve the raw key-value data from the database. The raw key-value data is in the following format, where k i It is key data, v i It is a value data, "k" i ”:“v i " represents the i-th key-value pair, where i is an integer greater than 0:
[0122] {
[0123] “k1”:“v1”,
[0124] “k2”:“v2”,
[0125] “k3”:“v3”,
[0126] …
[0127] “k n ”:“v n ”,
[0128] }
[0129] The third step is to use the fingerprint function to calculate the fingerprint information of each original key value in the database.
[0130] Step four, as Figure 3 As shown, using the hash function set {h1(k) determined in the first step... i ),h2(k i ),h3(k i ..., determine the target position of each original key value data in the binary fusion filter, and then write the fingerprint information of the original key value data into the corresponding target position to generate the target filter.
[0131] Furthermore, in the face of potential conflicts and storage failures, the system attempts to resolve conflicts or return a failure flag, for example, by resolving conflicts through alternative locations or rehashing. If multiple attempts still fail to write successfully, a failure flag is returned. After a successful write, to ensure the accuracy of data storage, checks are performed using key data and a set of hash functions.
[0132] In one embodiment, the binary fusion filter may optionally include multiple data storage segments;
[0133] The step of using the hash function set to determine the target position of each original key-value data in the binary fusion filter, and writing the fingerprint information of the original key-value data into the corresponding target position to generate the target filter includes:
[0134] For each original key-value data in the database, the target location corresponding to the original key-value data in multiple data storage segments is calculated using the set of hash functions, wherein one hash function corresponds to one data storage segment.
[0135] The fingerprint information of the original key value data is written into the corresponding multiple target locations to generate the target filter, wherein each target location corresponds to a fingerprint segment of the original key value data, and each fingerprint segment corresponds to a portion of the fingerprint information of the original key value data.
[0136] In embodiments of the present invention, such as Figure 3 As shown, in order to reduce the load on a single location, the BFF is divided into multiple storage segments. Specifically, based on the total size of the filter and the data characteristics, the filter is divided into multiple storage segments of equal or unequal length. Each storage segment has independent storage and processing logic. Through the uniform mapping of the hash function, the relevant data can be quickly located, which can improve space utilization and query efficiency.
[0137] For each key, the hash function set must determine not only its overall position within the filter but also its relative position within a specific storage segment. Specifically, each storage segment corresponds to the output of a hash function, and each key is stored only in a specific storage segment. Each storage segment has a limited size; even if some keys have the same hash value, they will be stored in different storage segments, and each hash function generates a different segment index. Each hash function is independent and evenly distributed throughout the filter space, ensuring that the hash function set mapping distributes keys evenly across segments, avoiding hotspots and uneven storage, and significantly reducing the probability of multiple keys mapping to the same location. Based on this, when reconstructing data using multiple fingerprint segments in a BFF, bitwise operations (such as XOR operations) can be used to combine and reconstruct values, helping to maintain a uniform data distribution. The specific operations are as follows:
[0138] Using a defined set of hash functions {h1(k i ),h2(k i ),h3(k i ...}, determine the target position of each original key-value data in the binary fusion filter. Specifically, use each hash function to process each key data k... i Perform calculations:
[0139] h1(k i →k i At the offset position of target filter storage segment 1;
[0140] h2(k i →k i At the offset position of target filter storage segment 2;
[0141] h3(k i →k i At the offset position of target filter storage segment 3;
[0142] Then, the fingerprint information of the original key-value data is divided into multiple fingerprint segments, and the fingerprint segments are written to the corresponding target locations to generate a target filter; wherein, one target location corresponds to one fingerprint segment storing the original key-value data. Furthermore, the BFF in this embodiment of the invention can dynamically adjust the hash function and storage segment size to meet different load conditions or changes in the dataset, further optimizing the uniformity of storage.
[0143] In one embodiment, optionally, the step of querying the index position indicated by the query vector using the target filter to generate the encrypted first fingerprint information includes:
[0144] The index position is queried by performing a homomorphic inner product operation on the target filter and the query vector to generate the encrypted first fingerprint information.
[0145] In embodiments of the present invention, such as Figure 4 As shown, the query vector is set to the first value at the index position corresponding to the first keyword, and the second value is set at all other positions. Generally, the first value is 1 and the second value is 0. Further, the query vector is the result of the first device using the hash function set {h1(k...} i ),h2(k i ),h3(k i ...} The first keyword k to be searched i The calculated unique identifier in the overall binary bit array of the generated BFF is the index position of the keyword in the target filter. For example, using the query vector, the index position of the first keyword in the target filter is "0110010", where the value "1" indicates the index position of the first keyword.
[0146] Since the query vector is encrypted, the second device does not know its specific content. Instead, it uses the homomorphic encoding matrix (used in the target filter to store fingerprint information of the original key-value data in the database) to perform a homomorphic inner product operation with the query vector to obtain the first fingerprint information at the index position indicated by the query vector. This first fingerprint information includes multiple fingerprint segments r, which can be concatenated to form complete fingerprint information h(k). i )‖v i For example: r 1 ||r 2 ‖…‖r n =h(k i )‖v i In this method, the first fingerprint information is also encrypted, and the second device is unaware of its content. By combining homomorphic inner product operations with a target filter, and through clever algorithm design and parameter settings, a highly efficient and space-saving keyword-based private information retrieval is achieved.
[0147] In summary, the data retrieval method provided by the embodiments of the present invention proposes a general framework for converting index retrieval into keyword retrieval. This makes the data retrieval method more closely resemble the query methods of real-world databases, improving its ease of use. Furthermore, the embodiments of the present invention also apply target filters (e.g., BFFs) to the data retrieval method, constructing a probabilistic key-value mapping. The target filter stores the fingerprint information of the original key-value data in the database in segments, enabling the embodiments of the present invention to perform efficient data retrieval while controlling the false positive rate, with low storage costs.
[0148] like Figure 5As shown, this embodiment of the invention also provides a first network device 500, including a transceiver 510 and a processor 520, wherein the transceiver 510 is used for:
[0149] A query request is sent to the second device. The query request includes an encrypted query vector. The query vector is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function.
[0150] Receive the encrypted first fingerprint information sent by the second device;
[0151] The processor 520 is used for:
[0152] The encrypted first fingerprint information is decrypted to obtain the first fingerprint information;
[0153] The first data is obtained by reconstructing data using the first fingerprint information and the fingerprint function.
[0154] In one embodiment, optionally, the transceiver 510 is further configured to:
[0155] Receive a set of hash functions sent by the second device, wherein the set of hash functions is used to determine the location of the original key-value data in the corresponding storage of the target filter;
[0156] The processor 520 is also used for:
[0157] The query vector is generated by performing a hash calculation on the first keyword according to the set of hash functions; wherein, the index value of the first index position in the query vector is a first value, and the index value of the second index position which is different from the first index position is a second value, and the first index position is the corresponding index position of the first keyword in the target filter;
[0158] The query vector is encrypted using a pre-set key to generate the encrypted query vector.
[0159] In one embodiment, the first fingerprint information may optionally include multiple fingerprint segments, each fingerprint segment corresponding to a portion of the fingerprint information of the first data.
[0160] The processor 520 is also used for:
[0161] By concatenating and XORing multiple fingerprint segments in the first fingerprint information, a target fingerprint information is obtained, wherein the target fingerprint information corresponds to the fingerprint information of the complete first data;
[0162] If the target fingerprint information matches the first keyword, the target fingerprint information and the fingerprint function are used to reconstruct the data to obtain the first data.
[0163] In one embodiment, optionally, the processor 520 is further configured to:
[0164] The first hash function in the fingerprint function is used to calculate the target fingerprint segment of the first keyword;
[0165] If the target fingerprint segment is the same as the fingerprint segment corresponding to the first keyword in the target fingerprint information, then the target fingerprint information is determined to match the first keyword.
[0166] like Figure 6 As shown, this embodiment of the invention also provides a second network device 600, including a transceiver 610 and a processor 620, wherein the transceiver 610 is used for:
[0167] The system receives a query request sent by a first device. The query request includes an encrypted query vector, which is used to indicate the index position of a first keyword in a target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter.
[0168] The processor 620 is configured to query the index position indicated by the query vector using the target filter according to the query request, and generate encrypted first fingerprint information.
[0169] The transceiver 610 is also used to send the encrypted first fingerprint information to the first device.
[0170] In one embodiment, optionally, the processor 620 is further configured to:
[0171] The binary fusion filter is initialized, and the set of hash functions corresponding to the binary fusion filter is determined;
[0172] The fingerprint function is used to calculate the fingerprint information of each original key value in the database.
[0173] Using the set of hash functions, the target position of each original key-value data in the binary fusion filter is determined, and the fingerprint information of the original key-value data is written into the corresponding target position to generate the target filter.
[0174] In one embodiment, the binary fusion filter may optionally include multiple data storage segments;
[0175] The processor 620 is also used for:
[0176] For each original key-value data in the database, the target location corresponding to the original key-value data in multiple data storage segments is calculated using the set of hash functions, wherein one hash function corresponds to one data storage segment.
[0177] The fingerprint information of the original key value data is written into the corresponding multiple target locations to generate the target filter, wherein each target location corresponds to a fingerprint segment of the original key value data, and each fingerprint segment corresponds to a portion of the fingerprint information of the original key value data.
[0178] In one embodiment, optionally, the processor 620 is further configured to:
[0179] The index position is queried by performing a homomorphic inner product operation on the target filter and the query vector to generate the encrypted first fingerprint information.
[0180] like Figure 7 As shown, embodiments of the present invention also provide a data retrieval device, applied to a first device, comprising:
[0181] The first sending module 701 is used to send a query request to the second device. The query request includes an encrypted query vector, which is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function.
[0182] The first receiving module 702 is used to receive the encrypted first fingerprint information sent by the second device;
[0183] The first decryption module 703 is used to decrypt the encrypted first fingerprint information to obtain the first fingerprint information;
[0184] The first reconstruction module 704 is used to perform data reconstruction using the first fingerprint information and the fingerprint function to obtain the first data.
[0185] Optionally, the device further includes:
[0186] The third receiving module is used to receive a set of hash functions sent by the second device, wherein the set of hash functions is used to determine the location of the original key-value data in the corresponding storage of the target filter;
[0187] The first calculation module is used to perform hash calculation on the first keyword according to the hash function set to generate the query vector; wherein, the index value of the first index position in the query vector is a first value, and the index value of the second index position which is different from the first index position is a second value, and the first index position is the corresponding index position of the first keyword in the target filter;
[0188] The second calculation module is used to encrypt the query vector according to the pre-set key information to generate the encrypted query vector.
[0189] Optionally, the first fingerprint information in the first reconstruction module 704 includes multiple fingerprint segments, each fingerprint segment corresponding to a portion of the fingerprint information of the first data;
[0190] The first reconstruction module 704 includes:
[0191] The first calculation submodule is used to perform splicing and XOR operations on multiple fingerprint segments in the first fingerprint information to obtain target fingerprint information, wherein the target fingerprint information corresponds to the fingerprint information of the complete first data;
[0192] The first reconstruction submodule is used to reconstruct data using the target fingerprint information and the fingerprint function when the target fingerprint information matches the first keyword, thereby obtaining the first data.
[0193] Optionally, the device further includes:
[0194] The third calculation module is used to calculate the first keyword using the first hash function in the fingerprint function to obtain the target fingerprint segment of the first keyword;
[0195] The first determining module is used to determine that the target fingerprint information matches the first keyword when the target fingerprint segment is the same as the fingerprint segment corresponding to the first keyword in the target fingerprint information.
[0196] It should be noted that the embodiments of this device are devices corresponding to the embodiments of the above methods. All implementations in the embodiments of the above methods are applicable to the embodiments of this device and can achieve the same technical effect.
[0197] like Figure 8 As shown, this embodiment of the invention also provides a data retrieval device, applied to a second device, comprising:
[0198] The second receiving module 801 is used to receive a query request sent by the first device. The query request includes an encrypted query vector, which is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter.
[0199] The first query module 802 is used to query the index position indicated by the query vector using the target filter according to the query request, and generate the encrypted first fingerprint information.
[0200] The second sending module 803 is used to send the encrypted first fingerprint information to the first device.
[0201] Optionally, the device further includes:
[0202] The first processing module is used to initialize the binary fusion filter and determine the set of hash functions corresponding to the binary fusion filter;
[0203] The fourth calculation module is used to calculate each original key-value data in the database using the fingerprint function to generate fingerprint information for each of the original key-value data.
[0204] The second processing module is used to use the set of hash functions to determine the target position of each of the original key-value data in the binary fusion filter, and write the fingerprint information of the original key-value data into the corresponding target position to generate the target filter.
[0205] Optionally, the binary fusion filter in the first and second processing modules includes multiple data storage segments;
[0206] The second processing module includes:
[0207] The second calculation submodule is used to calculate the target position of each original key-value data in the database in the multiple data storage segments using the set of hash functions, wherein one hash function corresponds to one data storage segment.
[0208] The first writing submodule is used to write the fingerprint information of the original key value data into the corresponding multiple target locations to generate the target filter, wherein one target location corresponds to storing a fingerprint segment of the original key value data, and one fingerprint segment corresponds to the fingerprint information of part of the original key value data.
[0209] Optionally, the first query module 802 includes:
[0210] The first query submodule is used to query the index position by performing a homomorphic inner product operation on the target filter and the query vector, and generate the encrypted first fingerprint information.
[0211] It should be noted that the embodiments of this device are devices corresponding to the embodiments of the above methods. All implementations in the embodiments of the above methods are applicable to the embodiments of this device and can achieve the same technical effect.
[0212] This invention also provides a network device, including: a processor, a memory, and a program stored in the memory and executable on the processor. When the program is executed by the processor, it implements the data retrieval method as described above and achieves the same technical effect. To avoid repetition, it will not be described again here.
[0213] This invention also provides a readable storage medium, comprising: a program stored on the readable storage medium, wherein when the program is executed by a processor, it implements the steps of the data retrieval method described in any of the preceding claims, and achieves the same technical effect; to avoid repetition, it will not be described again here. The computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, etc.
[0214] This invention also provides a computer program product, including computer instructions. When the computer instructions are executed by a processor, they implement the steps of the data retrieval method described in any of the preceding claims and achieve the same technical effect. To avoid repetition, further details are omitted here.
[0215] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or terminal apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0216] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.
Claims
1. A data retrieval method, applied to a first device, characterized in that, include: A query request is sent to the second device. The query request includes an encrypted query vector. The query vector is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function. Receive the encrypted first fingerprint information sent by the second device; The encrypted first fingerprint information is decrypted to obtain the first fingerprint information; The first data is obtained by reconstructing data using the first fingerprint information and the fingerprint function.
2. The data retrieval method according to claim 1, characterized in that, The method further includes: Receive a set of hash functions sent by the second device, wherein the set of hash functions is used to determine the location of the original key-value data in the corresponding storage of the target filter; The query vector is generated by performing a hash calculation on the first keyword according to the set of hash functions; wherein, the index value of the first index position in the query vector is a first value, and the index value of the second index position which is different from the first index position is a second value, and the first index position is the corresponding index position of the first keyword in the target filter; The query vector is encrypted using a pre-set key to generate the encrypted query vector.
3. The data retrieval method according to claim 1, characterized in that, The first fingerprint information includes multiple fingerprint segments, each fingerprint segment corresponding to a portion of the fingerprint information of the first data; The process of reconstructing data using the first fingerprint information and the fingerprint function to obtain the first data includes: By concatenating and XORing multiple fingerprint segments in the first fingerprint information, a target fingerprint information is obtained, wherein the target fingerprint information corresponds to the fingerprint information of the complete first data; If the target fingerprint information matches the first keyword, the target fingerprint information and the fingerprint function are used to reconstruct the data to obtain the first data.
4. The data retrieval method according to claim 3, characterized in that, The method further includes: The first hash function in the fingerprint function is used to calculate the target fingerprint segment of the first keyword; If the target fingerprint segment is the same as the fingerprint segment corresponding to the first keyword in the target fingerprint information, then the target fingerprint information is determined to match the first keyword.
5. A data retrieval method, applied to a second device, characterized in that, include: The system receives a query request sent by a first device. The query request includes an encrypted query vector, which is used to indicate the index position of a first keyword in a target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter. Based on the query request, the target filter is used to query the index position indicated by the query vector to generate the encrypted first fingerprint information; The encrypted first fingerprint information is sent to the first device.
6. The data retrieval method according to claim 5, characterized in that, The method further includes: The binary fusion filter is initialized, and the set of hash functions corresponding to the binary fusion filter is determined; The fingerprint function is used to calculate the fingerprint information of each original key value in the database. Using the set of hash functions, the target position of each original key-value data in the binary fusion filter is determined, and the fingerprint information of the original key-value data is written into the corresponding target position to generate the target filter.
7. The data retrieval method according to claim 6, characterized in that, The binary fusion filter includes multiple data storage segments; The step of using the hash function set to determine the target position of each original key-value data in the binary fusion filter, and writing the fingerprint information of the original key-value data into the corresponding target position to generate the target filter includes: For each original key-value data in the database, the target location corresponding to the original key-value data in multiple data storage segments is calculated using the set of hash functions, wherein one hash function corresponds to one data storage segment. The fingerprint information of the original key value data is written into the corresponding multiple target locations to generate the target filter, wherein each target location corresponds to a fingerprint segment of the original key value data, and each fingerprint segment corresponds to a portion of the fingerprint information of the original key value data.
8. The data retrieval method according to claim 5, characterized in that, The step of querying the index position indicated by the query vector using the target filter to generate the encrypted first fingerprint information includes: The index position is queried by performing a homomorphic inner product operation on the target filter and the query vector to generate the encrypted first fingerprint information.
9. A first network device, characterized in that, Includes a transceiver and a processor, wherein the transceiver is used for: A query request is sent to the second device. The query request includes an encrypted query vector. The query vector is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function. Receive the encrypted first fingerprint information sent by the second device; The processor is used for: The encrypted first fingerprint information is decrypted to obtain the first fingerprint information; The first data is obtained by reconstructing data using the first fingerprint information and the fingerprint function.
10. A second network device, characterized in that, Includes a transceiver and a processor, wherein the transceiver is used for: The system receives a query request sent by a first device. The query request includes an encrypted query vector, which is used to indicate the index position of a first keyword in a target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different locations in the target filter. The processor is configured to query the index position indicated by the query vector using the target filter according to the query request, and generate the encrypted first fingerprint information; The transceiver is also used to send the encrypted first fingerprint information to the first device.
11. A data retrieval device, applied to a first device, characterized in that, include: A first sending module is used to send a query request to a second device. The query request includes an encrypted query vector, which is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter. The fingerprint information of the original key-value data is generated using a fingerprint function. The first receiving module is used to receive the encrypted first fingerprint information sent by the second device; The first decryption module is used to decrypt the encrypted first fingerprint information to obtain the first fingerprint information; The first reconstruction module is used to reconstruct data using the first fingerprint information and the fingerprint function to obtain the first data.
12. A data retrieval device, applied to a second device, characterized in that, include: The second receiving module is used to receive a query request sent by the first device. The query request includes an encrypted query vector, which is used to indicate the index position of the first keyword in the target filter. The query request is used to request the first fingerprint information of the first data stored by the target filter at the index position. The target filter is used to store the fingerprint information of the original key-value data in the database. Different original key-value data are stored in different positions in the target filter. The first query module is used to query the index position indicated by the query vector using the target filter according to the query request, and generate the encrypted first fingerprint information; The second sending module is used to send the encrypted first fingerprint information to the first device.
13. A network device, characterized in that, include: A processor, a memory, and a program stored in the memory and executable on the processor, wherein the program, when executed by the processor, implements the data retrieval method as described in any one of claims 1 to 4 or the data retrieval method as described in any one of claims 5 to 8.
14. A readable storage medium, characterized in that, include: The readable storage medium stores a program that, when executed by a processor, implements the steps of the data retrieval method as described in any one of claims 1 to 4 or the steps of the data retrieval method as described in any one of claims 5 to 8.
15. A computer program product, characterized in that, It includes computer instructions, which, when executed by a processor, implement the steps of the data retrieval method as described in any one of claims 1 to 4 or the steps of the data retrieval method as described in any one of claims 5 to 8.