A forward-secure spatiotemporal data retrieval method, system, device, and medium

By organizing and encrypting spatial data using R-tree and asymmetric scalar product-keeping encryption scheme, the problems of quad-tree structure complexity and high storage costs are solved, and efficient forward-failed data retrieval is achieved.

CN116522019BActive Publication Date: 2025-09-02XIDIAN UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310634815.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-05-31
Publication Date
2025-09-02
Estimated Expiration
2043-05-31

AI Technical Summary

Technical Problem

In the prior art, the use of quad-tree structure to construct data and index structures is relatively complex, the retrieval efficiency is low, and the encrypted ciphertext volume has rapidly expanded, resulting in higher storage costs.

Method used

The spatial data is organized by R tree, and the asymmetric scalar product maintaining encryption scheme is used as an encryption tool, combined with constrained pseudo-random functions for salt processing, reducing storage costs and the complexity of the retrieval algorithm implementation.

Benefits of technology

It improves data retrieval speed and retrieval efficiency, reduces storage costs, and ensures forward security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116522019B_ABST
    Figure CN116522019B_ABST
Patent Text Reader

Abstract

A forward-secure spatiotemporal data retrieval method, system, device, and medium are disclosed. The method includes index construction, data encryption, index encryption, and range query. The system, device, and medium are used to implement a forward-secure spatiotemporal data retrieval method. The present invention organizes spatial data via an R-tree and utilizes an asymmetric scalar product-preserving encryption scheme as an encryption tool, thereby reducing storage costs and the complexity of retrieval algorithm implementation, and improving data retrieval speed while ensuring forward security.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of data encryption processing, and in particular to a forward-secure spatiotemporal data retrieval method, system, device and medium. Background Art

[0002] Data encryption technology refers to converting a message into meaningless ciphertext through an encryption key and encryption function, and the recipient restores the ciphertext into plaintext through a decryption function and decryption key. Encryption technology is the cornerstone of network security technology.

[0003] Wang Xiangyu et al. proposed an encrypted textual signature quadtree (ETSQ-tree) index structure in their published paper (Fast and Secure Location-Based Services in Smart Cities on Outsourced Data, DOI: 10.1109 / JIOT.2021.3081821). In the ETSQ-tree index structure, this method organizes spatial data into a quadtree and encrypts the spatial data using the Order-Revealing Encryption (ORE) scheme; the text keyword data is signed using the Symmetric-key Hidden Vector Encryption (SHVE) scheme to obtain signature data, and associates it with the corresponding node of the quadtree. In order to resist file injection attacks, this method also uses a constrained pseudorandom function (CPRF) to perform salting operations on the above-mentioned ciphertext data and signature data. Based on the ETSQ-tree index structure, this method implements secure and dynamic Boolean range queries and Boolean k-nearest neighbor queries. In the Boolean range query, the querying user first encrypts the query range, generates their own signature key based on the master key, and sends the ciphertext query range and signature key to the server. The server traverses the ETSQ tree structure. For non-leaf nodes, it determines whether the node range intersects with the query range, calculates and compares their signature values, and if so, continues traversing its child nodes; otherwise, it removes the node. For leaf nodes, it determines whether the node is within the query range, calculates and compares its signature values, and if so, adds the index corresponding to the current node to the result set; otherwise, it removes the node. In the Boolean k-nearest neighbor query, the querying user first encrypts the query object, generates their own signature key based on the master key, and sends the ciphertext query object and signature key to the server. The server finds the deepest non-leaf node containing the query object, calculates and compares the signature values ​​of each of its child nodes, and if so, adds the current node to the result set; otherwise, it removes the node. The server then determines whether the current result set already contains k elements; if not, it continues querying its parent node.

[0004] However, the existing technology uses a quadtree structure to construct data and index structures, which is relatively complex. It is relatively difficult to implement a retrieval algorithm based on this structure, and the retrieval efficiency is low. At the same time, the use of sequential display encryption to encrypt the quadtree structure rapidly increases the volume of the encrypted ciphertext, resulting in high storage costs. Summary of the Invention

[0005] In order to overcome the shortcomings of the above-mentioned prior art, the purpose of the present invention is to provide a forward-secure spatiotemporal data retrieval method, system, device and medium, which organizes spatial data through R-trees and uses an asymmetric scalar product-preserving encryption scheme as an encryption tool, thereby reducing storage costs and the complexity of retrieval algorithm implementation, and improving the speed of data retrieval while ensuring forward security.

[0006] In order to achieve the above object, the technical solution adopted by the present invention is as follows:

[0007] A forward-secure spatiotemporal data retrieval method comprising the following steps:

[0008] Step 1, index construction: construct an R-tree in plain text based on the held spatial point data. The R-tree is composed of several minimum bounding rectangles m, each of which contains several spatial data points d.

[0009] Step 2, data encryption: Use the asymmetric scalar product preserving encryption scheme to encrypt the spatial point data d = (x, y) in step 1, and combine it with the constrained pseudo-random function to add salt to obtain the ciphertext vector

[0010] Step 3, index encryption: for the minimum bounding rectangle in step 1 Encrypt and get the encrypted index Ind of the minimum bounding rectangle m m And send the obtained R-tree in the encrypted state to the server;

[0011] Step 4, range query: convert the query statement, calculate the query token and send it to the server. The server performs a range query on the R-tree in the stored ciphertext state and returns the query result.

[0012] The specific process of step 2 is:

[0013] Step 2.1, vector encryption: Use the asymmetric scalar product preserving encryption scheme to expand the dimension of the spatial point vector d = (x, y) to obtain a three-dimensional spatial point vector Randomly generate a reversible matrix As encryption key, is the real number field; the reversible matrix M T and the expanded three-dimensional space point vector Multiply to get the encrypted vector

[0014] Step 2.2, vector segmentation: the encrypted vector obtained in step 2.1 Perform segmentation and use the constrained pseudo-random function CPRF to generate a random binary vector ε←CPRF();

[0015] For 0≤i≤|ε|, if ε[i]=0, get the random number rand←CPRF() and assign If ε[i]=1, then let

[0016] Randomly generate auxiliary matrices M1 and M2, calculate Get the final ciphertext vector

[0017] The specific process of step 3 is as follows:

[0018] Step 3.1, vector transformation: for the minimum bounding rectangle in step 1 Convert to vector in

[0019] Step 3.2, salting: Use counter c to record the number of spatial point data in the current R-tree, and use constrained pseudo-random function to generate ordered tokens OT c ←CPRF(), randomly select hash function H for ordered tokens OT c ←CPRF() performs salting and obtains the salted token e c ←H(OT c ); salt the auxiliary matrices M1 and M2 to obtain the salt matrix M 1_c ←H(M1,e c ) and M 2_c ←H(M2,e c );

[0020] Step 3.3, index encryption: Assume that the range of the minimum bounding rectangle m after transformation is Subset, that is, Subset←(ρ x ,ρ y ), if sub∈Subset, let m1,m2←m sub , using the salt addition matrix M obtained in step 3.2 1_c ←H(M1,e c ) and M 2_c ←H(M2,e c ) Compute vector multiplication The result vector The vector m obtained in step 3.1 ρ Merge to get the encrypted index Ind of the minimum bounding rectangle m m ;

[0021] In step 3.4, all the minimum bounding rectangles m in the R-tree are encrypted to obtain the R-tree in the encrypted state, and the R-tree in the encrypted state is sent to the server.

[0022] The specific process of step 4 is as follows:

[0023] Step 4.1, query token calculation: transform the range query statement v to obtain the transformed query range in δ and δ′ are random numbers and satisfy δ>>|x r |,δ′>>|y r |;Assumptions For sub∈Subset, let v1,v2←v sub , calculate vector multiplication The result vector With vector Merge to get range query token and send it to the server;

[0024] Step 4.2, Spatial Point Range Query: The server queries the token based on the received range Perform a range query on the R-tree in the ciphertext state, assuming that the ciphertext index of the minimum bounding rectangle corresponding to the current entry is make If r x ≤0∧r y If the value is less than or equal to 0, the node intersects. It is necessary to query the branch of the minimum bounding rectangle corresponding to the current entry and determine whether each entry of the leaf node of the branch is within the query range. If so, the original encrypted node is obtained through the desalting operation, and the ciphertext result is returned to the querying user.

[0025] For the R-tree in the encrypted state obtained in step 3, new spatial point data can be inserted into it to dynamically update the R-tree in the encrypted state. The specific process is as follows:

[0026] (1) Data encryption: Given a spatial point data d to be inserted new , encrypted spatial point data d new , get the ciphertext vector Start from the root node of the R-tree and find the appropriate insertion position to obtain the ciphertext index corresponding to the minimum bounding rectangle.

[0027] (2) Salting: Generate a new ordered token OT using a constrained pseudo-random function c+1 ←CPRF(), and use the hash function H to add salt to it to obtain the ordered token e after adding salt c+1 ←H(OT c+1 ); salt the auxiliary matrices M1 and M2 to obtain the salt matrix M 1_c+1 ←H(M1,e c+1), M 2_c+1 ←(M2,e c+1 );Ciphertext index After adding salt, the calculation is The ciphertext vector and related information Send to server;

[0028] (3) Data insertion: The server receives the salted information and stores it in the buffer. For all information objects stored in the buffer, the server desalts them when executing a new query operation, and obtains the ciphertext vector after desalting. and ciphertext index Insert into the R-tree in the stored ciphertext state and reconstruct the corresponding node and its parent node.

[0029] A forward-secure spatiotemporal data retrieval system comprising:

[0030] Index construction module: constructs an R-tree in plain text based on the spatial point data held. The R-tree is composed of several minimum bounding rectangles m, each of which contains several spatial data points d;

[0031] Data encryption module: Use the asymmetric scalar product preservation encryption scheme to encrypt the spatial point data d = (x, y), and combine it with the constrained pseudo-random function to add salt to obtain the ciphertext vector

[0032] Index encryption module: Minimum bounding rectangle Encrypt and get the encrypted index Ind of the minimum bounding rectangle m m And send the obtained R-tree in the encrypted state to the server;

[0033] Range query module: converts the query statement, calculates the query token and sends it to the server. The server performs a range query on the stored R-tree in the encrypted state and returns the query result.

[0034] Dynamic update module: The R-tree in the ciphertext state obtained by the index encryption module can be dynamically updated by inserting new spatial point data.

[0035] A forward-secure spatiotemporal data retrieval device comprising:

[0036] Memory: used for storing a computer program for implementing the forward-secure spatiotemporal data retrieval method;

[0037] Processor: used to implement the forward-secure spatiotemporal data retrieval method when executing the computer program.

[0038] A computer-readable storage medium comprising:

[0039] The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it can implement the forward-secure spatiotemporal data retrieval method.

[0040] Compared with the prior art, the present invention has the following beneficial effects:

[0041] 1. In step 1 of the present invention, spatial data is organized using an R-tree. Compared with the quadtree in the prior art, this R-tree has higher retrieval efficiency in processing dynamic updates and range query operations of high-dimensional spatial data.

[0042] 2. The encryption operations of the present invention all use an asymmetric scalar product-preserving encryption scheme as an encryption tool. Compared with the sequential display encryption scheme in the prior art, the asymmetric scalar product-preserving encryption scheme retains the scalar product relationship between ciphertexts without performing other calculations such as comparison and sorting. At the same time, the ciphertext operation complexity of the asymmetric scalar product-preserving encryption scheme is lower than that of the sequential display encryption scheme, and it is more secure and more efficient.

[0043] In summary, compared with the existing technology, the present invention organizes spatial data through R-tree and uses asymmetric scalar product-preserving encryption scheme as an encryption tool, which can reduce storage costs and the complexity of retrieval algorithm implementation, thereby ensuring forward security and improving data retrieval speed. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] Figure 1 Flow chart of the method of the present invention.

[0045] Figure 2 This is a schematic diagram of the structure of the R-tree in the index construction in step 1 of the present invention.

[0046] Figure 3 Schematic diagram of the minimum bounding rectangle of the R-tree in step 1 of the present invention.

[0047] Figure 4 This is a flow chart of the method for dynamically updating the R-tree in the encrypted state in the present invention. DETAILED DESCRIPTION

[0048] The technical solution of the present invention will be described in detail below with reference to the accompanying drawings.

[0049] See also Figure 1 , a forward-secure spatiotemporal data retrieval method, comprising the following steps:

[0050] Step 1, index construction: The data owner constructs an R-tree in plain text based on the spatial point data held. The R-tree is composed of several minimum bounding rectangles m, each of which contains several spatial data points d.

[0051] Step 2, data encryption: The data owner uses an asymmetric scalar product-preserving encryption scheme to encrypt the spatial point data d = (x, y) in step 1, and adds salt to it in combination with a constrained pseudo-random function to obtain the ciphertext vector

[0052] Step 3, index encryption: The data owner encrypts the minimum bounding rectangle in step 1. Encrypt and get the encrypted index Ind of the minimum bounding rectangle m m And send the obtained R-tree in the encrypted state to the server;

[0053] Step 4, range query: The querying user converts the query statement, calculates the query token and sends it to the server. The server performs a range query on the stored R-tree in the encrypted state and returns the query result to the querying user.

[0054] See also Figure 2 and Figure 3 In step 1, the spatial data is organized using an R-tree. The R-tree is a tree-like data structure proposed for high-dimensional spatial storage and query problems. Its main concept is to apply the concept of spatial partitioning, using a method called Minimal Bounding Rectangle (MBR) to frame spatial point data with rectangles starting from leaf nodes. The larger the space enclosed by the rectangles, the larger the nodes are, thus achieving spatial partitioning. Compared with the existing quadtree, the R-tree has higher retrieval efficiency in handling dynamic updates and range queries of high-dimensional spatial data.

[0055] For example, suppose a set of spatial point data D = {d0, d1, ..., d9} in a given two-dimensional space, where each data d i∈[0,9] is a two-dimensional vector d i =(x i ,y i ), and use R-tree to organize it. Figure 2 As mentioned above, there are 10 leaf nodes in total, each of which stores a spatial point data. There are 6 non-leaf nodes in total, and the data storage format of each non-leaf node is: a minimum bounding rectangle and a set of pointers to child nodes, where the minimum bounding rectangle can just cover all minimum bounding rectangles or nodes in the subtree corresponding to the node. For the minimum bounding rectangle m0 covering spatial points d0 and d1, it is expressed as That is, the coordinate range of the four sides of the rectangle. Similarly, we get

[0056] The step 2 adopts the asymmetric scalar-product-preserving encryption (ASPE) scheme. The main idea of ​​the ASPE scheme is to use two different encryption methods to encrypt the spatial point vector and the query vector stored in the R-tree respectively, while retaining the scalar product relationship between the two. Compared with the sequential display encryption scheme of the prior art, the asymmetric scalar product preserving encryption scheme retains the scalar product relationship between the ciphertexts without performing other calculations such as comparison and sorting. At the same time, the ciphertext operation complexity of the asymmetric scalar product preserving encryption scheme is lower than that of the sequential display encryption scheme, and it is more secure and more efficient. At the same time, the present invention also applies a constrained pseudorandom function (CPRF) to further improve the security and randomness of the scheme. For a given spatial point vector d = (x, y), the specific encryption process is as follows:

[0057] Step 2.1, vector encryption: First, expand the dimension of the space point vector d = (x, y) to obtain a three-dimensional space point vector Randomly generate a reversible matrix As encryption key, is the real number field; the reversible matrix M T and the expanded three-dimensional space point vector Multiply to get the encrypted vector

[0058] Step 2.2, vector segmentation: the encrypted vector obtained in step 2.1 Perform segmentation and use the constrained pseudo-random function CPRF to generate a random binary vector ε←CPRF(); CPRF is a special pseudo-random function that requires pseudo-random number generation under certain constraints and ensures that the output is pseudo-random and cannot be predicted or guessed. Assuming the input space is Y, CPRF and a set of Boolean circuits Associating, where y∈Y, only the input y that satisfies C(y)=1 is allowed to calculate its CPRF value.

[0059] For 0≤i≤|ε|, if ε[i]=0, get the random number rand←CPRF() and assign If ε[i]=1, then let

[0060] Randomly generate auxiliary matrices M1 and M2, calculate Get the final ciphertext vector

[0061] The specific process of step 3 is as follows:

[0062] Step 3.1, vector transformation: for the minimum bounding rectangle in step 1 Convert and calculate the vector in

[0063] Step 3.2, salting: maintain a counter c to record the number of spatial point data in the current R-tree, and use the constrained pseudo-random function to generate ordered tokens OT c ←CPRF(), randomly select hash function H for ordered tokens OT c ←CPRF() performs salting and obtains the salted token e c ←H(OT c ); salt the auxiliary matrices M1 and M2 to obtain the salt matrix M 1_c ←H(M1,e c ) and M 2_c ←H(M2,e c );

[0064] Step 3.3, index encryption: Assume that the range of the minimum bounding rectangle m after transformation is Subset, that is, Subset←(ρ x ,ρ y ), for sub∈Subset, let m1,m2←m sub , using the salt addition matrix M obtained in step 3.2 1_c ←H(M1,e c ) and M 2_c ←H(M2,e c ) Compute vector multiplication The result vector The vector m obtained in step 3.1 ρ Merge to get the encrypted index Ind of the minimum bounding rectangle m m ;

[0065] In step 3.4, all the minimum bounding rectangles m in the R-tree are encrypted to obtain the R-tree in the encrypted state, and the R-tree in the encrypted state is sent to the server.

[0066] Step 4 implements forward-safe range query based on the index structure constructed by the ASPE scheme combined with the R-tree. For a given query statement v, the specific query process is as follows:

[0067] Step 4.1, query token calculation: query the user to convert the range query statement v and obtain the converted query range in δ and δ′ are such that δ>>|x r |,δ′>>|y r |random number; assuming For sub∈Subset, let v1,v2←v sub , calculate vector multiplication The result vector With vector Merge to get range query token and send it to the server;

[0068] Step 4.2, Spatial Point Range Query: The server queries the token based on the received range Perform a range query on the R-tree in the encrypted state, starting from the root node, and select the node to be queried next by determining whether the target minimum bounding rectangle intersects with the minimum bounding rectangle corresponding to each entry in the node; assuming that the ciphertext index of the minimum bounding rectangle corresponding to the current entry is make If r x ≤0∧r y If the value is ≤ 0, the nodes intersect and the branch needs to be queried. Otherwise, the nodes do not intersect and the branch does not need to be queried. After reaching a leaf node, each entry in that leaf node must be determined to be within the query range. Finally, the original encrypted node is obtained through desalination, and the ciphertext result is returned to the querying user.

[0069] For the R-tree in the encrypted state obtained in step 3, new spatial point data can be inserted into it to dynamically update the R-tree in the encrypted state. The specific process is as follows:

[0070] (1) Data encryption: Given a spatial point data d to be inserted new , encrypted spatial point data d new , get the ciphertext vector Start from the root node of the R-tree and find the appropriate insertion position to obtain the ciphertext index corresponding to the minimum bounding rectangle.

[0071] (2) Salting: The data owner generates a new ordered token OT using a constrained pseudo-random function. c+1 ←CPRF(), and use the hash function H to add salt to it to obtain the ordered token e after adding salt c+1 ←H(OT c+1 ); salt the auxiliary matrices M1 and M2 to obtain the salt matrix M 1_c+1←H(M1,e c+1 ), M 2_c+1 ←(M2,e c+1 );Ciphertext index After adding salt, the calculation is The ciphertext vector and related information Send to server;

[0072] (3) Data insertion: The server receives information from the data owner and stores it in the buffer. For all information objects stored in the buffer, the server desalts them when executing a new query operation, and obtains the ciphertext vector after desalting. and ciphertext index Insert into the R-tree in the stored ciphertext state and reconstruct the corresponding node and its parent node.

[0073] A forward-secure spatiotemporal data retrieval system comprising:

[0074] Index construction module: The data owner constructs an R-tree in plain text based on the spatial point data held. The R-tree is composed of several minimum bounding rectangles m, each of which contains several spatial data points d.

[0075] Data encryption module: The data owner uses an asymmetric scalar product-preserving encryption scheme to encrypt the spatial point data d = (x, y), and combines it with a constrained pseudo-random function to add salt to obtain the ciphertext vector

[0076] Index encryption module: data owner's minimum bounding rectangle Encrypt and get the encrypted index Ind of the minimum bounding rectangle m m And send the obtained R-tree in the encrypted state to the server;

[0077] Range query module: The query user converts the query statement, calculates the query token and sends it to the server. The server performs a range query on the stored encrypted R-tree and returns the query result to the query user.

[0078] Dynamic update module: The R-tree in the ciphertext state obtained by the index encryption module can be dynamically updated by inserting new spatial point data.

[0079] A forward-secure spatiotemporal data retrieval device comprising:

[0080] Memory: used for storing a computer program for implementing the forward-secure spatiotemporal data retrieval method;

[0081] Processor: used to implement the forward-secure spatiotemporal data retrieval method when executing the computer program.

[0082] A computer-readable storage medium comprising:

[0083] The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it can implement the forward-secure spatiotemporal data retrieval method.

Claims

1. A forward-secure spatiotemporal data retrieval method, characterized in that: The steps include: Step 1, index construction: construct an R-tree in plain text based on the held spatial point data. The R-tree is composed of several minimum bounding rectangles m, each of which contains several spatial data points d. Step 2, data encryption: Use the asymmetric scalar product preserving encryption scheme to encrypt the spatial point data d = (x, y) in step 1, and combine it with the constrained pseudo-random function to add salt to obtain the ciphertext vector The specific process of step 2 is: Step 2.1, vector encryption: Use the asymmetric scalar product preserving encryption scheme to expand the dimension of the spatial point vector d = (x, y) to obtain a three-dimensional spatial point vector Randomly generate a reversible matrix As encryption key, is the real number field; the reversible matrix M T and the expanded three-dimensional space point vector Multiply to get the encrypted vector Step 2.2, vector segmentation: the encrypted vector obtained in step 2.1 Perform segmentation and use the constrained pseudo-random function CPRF to generate a random binary vector ε←CPRF(); For 0≤i≤|ε|, if ε[i]=0, get the random number rand←CPRF() and assign If ε[i]=1, then let Randomly generate auxiliary matrices M1 and M2, calculate Get the final ciphertext vector Step 3, index encryption: for the minimum bounding rectangle in step 1 Encrypt and get the encrypted index Ind of the minimum bounding rectangle m m And send the obtained R-tree in the encrypted state to the server; Step 4, range query: convert the query statement, calculate the query token and send it to the server. The server performs a range query on the R-tree in the stored ciphertext state and returns the query result.

2. A forward-secure spatiotemporal data retrieval method according to claim 1, characterized in that: The specific process of step 3 is as follows: Step 3.1, vector transformation: for the minimum bounding rectangle in step 1 Convert to vector in Step 3.2, salting: Use counter c to record the number of spatial point data in the current R-tree, and use constrained pseudo-random function to generate ordered tokens OT c ←CPRF(), randomly select hash function H for ordered tokens OT c ←CPRF() performs salting and obtains the salted token e c ←H(OT c ); salt the auxiliary matrices M1 and M2 to obtain the salt matrix M 1_c ←H(M1,e c ) and M 2_c ←H(M2,e c ); Step 3.3, index encryption: Assume that the range of the minimum bounding rectangle m after transformation is Subset, that is, Subset←(ρ x ,ρ y ), if sub∈Subset, let m1,m2←m sub , using the salt addition matrix M obtained in step 3.2 1_c ←H(M1,e c ) and M 2_c ←H(M2,e c ) Compute vector multiplication The result vector The vector m obtained in step 3.1 ρ Merge to get the encrypted index Ind of the minimum bounding rectangle m m ; In step 3.4, all the minimum bounding rectangles m in the R-tree are encrypted to obtain the R-tree in the encrypted state, and the R-tree in the encrypted state is sent to the server.

3. A forward-secure spatiotemporal data retrieval method according to claim 1, characterized in that: The specific process of step 4 is as follows: Step 4.1, query token calculation: transform the range query statement v to obtain the transformed query range in δ and δ′ are random numbers and satisfy δ>>|x r |,δ′>>|y r |;Assumptions For sub∈Subset, let v1,v2←v sub , calculate vector multiplication The result vector With vector Merge to get range query token and send it to the server; Step 4.2, Spatial Point Range Query: The server queries the token based on the received range Perform a range query on the R-tree in the ciphertext state, assuming that the ciphertext index of the minimum bounding rectangle corresponding to the current entry is make If r x ≤0∧r y If the value is less than or equal to 0, the node intersects. It is necessary to query the branch of the minimum bounding rectangle corresponding to the current entry and determine whether each entry of the leaf node of the branch is within the query range. If so, the original encrypted node is obtained through the desalting operation, and the ciphertext result is returned to the querying user.

4. A forward-secure spatiotemporal data retrieval method according to claim 1, characterized in that: The R-tree in the encrypted state obtained in step 3 can be dynamically updated by inserting new spatial point data. The specific process is as follows: (1) Data encryption: Given a spatial point data d to be inserted new , encrypted spatial point data d new , get the ciphertext vector Start from the root node of the R-tree and find the appropriate insertion position to obtain the ciphertext index corresponding to the minimum bounding rectangle. (2) Salting: Generate a new ordered token OT using a constrained pseudo-random function c+1 ←CPRF(), and use the hash function H to add salt to it to obtain the ordered token e after adding salt c+1 ←H(OT c+1 ); salt the auxiliary matrices M1 and M2 to obtain the salt matrix M 1_c+1 ←H(M1,e c+1 ), M 2_c+1 ←(M2,e c+1 );Ciphertext index After adding salt, the calculation is The ciphertext vector and related information Send to server; (3) Data insertion: The server receives the salted information and stores it in the buffer. For all information objects stored in the buffer, the server desalts them when executing a new query operation, and obtains the ciphertext vector after desalting. and ciphertext index Insert into the R-tree in the stored ciphertext state and reconstruct the corresponding node and its parent node.

5. A forward-secure spatiotemporal data retrieval system based on the method of claim 1, characterized in that: include: Index construction module: constructs an R-tree in plain text based on the spatial point data held. The R-tree is composed of several minimum bounding rectangles m, each of which contains several spatial data points d; Data encryption module: Use the asymmetric scalar product preservation encryption scheme to encrypt the spatial point data d = (x, y), and combine it with the constrained pseudo-random function to add salt to obtain the ciphertext vector Index encryption module: Minimum bounding rectangle Encrypt and get the encrypted index Ind of the minimum bounding rectangle m m And send the obtained R-tree in the encrypted state to the server; Range query module: converts the query statement, calculates the query token and sends it to the server. The server performs a range query on the stored R-tree in the encrypted state and returns the query result. Dynamic update module: The R-tree in the ciphertext state obtained by the index encryption module can be dynamically updated by inserting new spatial point data.

6. A forward-secure spatiotemporal data retrieval device, characterized in that: include: Memory: used to store a computer program for implementing a forward-secure spatiotemporal data retrieval method according to any one of claims 1 to 4; Processor: configured to implement the forward-secure spatiotemporal data retrieval method of any one of claims 1 to 4 when executing the computer program.

7. A computer-readable storage medium, characterized in that include: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it can implement a forward-secure spatiotemporal data retrieval method according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • Search encryption method supporting dynamic updating and multi-keyword safe ranking

    CN104615692A

  • Access control and range query method of ciphertext spatial data in cloud environment

    CN108985094A