Safe and Efficient Dynamic Encryption Cloud Data Multidimensional Range Query Method
Through G-tree structure and lightweight matrix encryption technology, combined with RSA algorithm and hash function, the problems of privacy protection and result integrity in multi-dimensional range query are solved, and a low overhead and high security multi-dimensional range query is realized.
Patent Information
- Application Number
- CN202211057051.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-30
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2042-08-30
AI Technical Summary
The existing multi-dimensional range query method cannot effectively protect one-dimensional privacy, there are forward and backward privacy leakage, and the calculation and communication overhead are large, so it cannot guarantee the integrity and security of query results.
The G-tree structure is used for indexing, combining lightweight matrix encryption and RSA algorithms, and the front-back privacy protection and one-dimensional privacy protection are achieved through dimension expansion and pseudo-random permutation functions, and the result integrity verification is achieved using hash functions.
It realizes multi-dimensional range query with low overhead and high security, protects the integrity of query results and user privacy, reduces calculation and communication overhead, and improves query efficiency and security.
Smart Images

Figure CN115438230B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of data encryption, and particularly relates to a secure and efficient multi-dimensional range query method for dynamically encrypted cloud data. Background Art
[0002] With the popularization of cloud computing and data outsourcing services, data privacy protection technologies have developed rapidly. As the mainstream technology for retrieving encrypted data outsourced on the cloud, searchable encryption technology has made significant progress in terms of security and functionality. Currently, searchable encryption technology has been applied to encrypted text retrieval, encrypted image retrieval, and encrypted audio retrieval. However, the improvements in existing technologies are usually based on application requirements, and range retrieval of multi-dimensional encrypted data is required when retrieving encrypted databases. Most existing searchable encryption methods can only handle relatively simple keyword retrieval or one-dimensional range queries and cannot fully support range retrieval of multi-dimensional encrypted data. Therefore, researchers have proposed multi-dimensional range retrieval technology.
[0003] However, there are some problems with multi-dimensional range retrieval technology: compared with traditional searchable encryption technology, multi-dimensional range retrieval technology has higher functional requirements and requires one-dimensional privacy protection. Some multi-dimensional range retrieval methods achieve retrieval based on order-preserving encryption or decompose multi-dimensional range queries into multiple one-dimensional range queries, which cannot protect one-dimensional privacy. In addition, the efficiency and overhead of multi-dimensional range query methods directly affect their practicality. The multi-dimensional range query method based on public key cryptography not only has high computational overhead but also cannot protect query privacy. At the same time, although the multi-dimensional range query method based on multiple servers avoids query privacy leakage caused by single-server retrieval, there is additional communication overhead between multiple servers, and collusion attacks between multiple servers will also pose a threat to users.
[0004] In summary, the disadvantages of the existing technology are as follows: (1) Some multi-dimensional range query methods cannot protect one-dimensional privacy; (2) In practical applications, the database needs to be updated frequently, which will cause forward and backward privacy leakage, making it easier for attackers to master the distribution between encrypted data and keywords; (3) In existing multi-dimensional range query methods, cloud servers are set to be honest or semi-trusted, but the cloud server's destruction of the correctness and integrity of query results is a common security threat that needs to be considered in searchable encryption. Summary of the Invention
[0005] In order to overcome the above-mentioned disadvantages of the existing technology, the purpose of the present invention is to provide a secure and efficient multi-dimensional range query method for dynamically encrypted cloud data. The G-tree structure is used to index the data set to achieve efficient query. Dimension expansion and lightweight matrix encryption can be used to achieve forward and backward privacy protection and one-dimensional privacy protection in queries. By converting the result integrity verification into a one-way accumulator calculation based on the RSA algorithm, a high-precision and low-overhead verification mechanism can be achieved.
[0006] To achieve the above object, the technical solution adopted by the present invention is as follows:
[0007] A secure and efficient multi-dimensional range query method for dynamically encrypted cloud data, comprising the following steps:
[0008] S101 Initialization phase: The data owner DO takes the security parameter η, prime numbers p, q as inputs, and generates a key set SK and a system parameter tuple SP;
[0009] S102 Index encryption phase: The data owner DO constructs an encrypted original index I for verifying query results and updates according to the G-tree. At the same time, the data owner DO outputs a verification signature Sig with the original index I;
[0010] S103 Generate trapdoor: The query user QU executes the trapdoor generation algorithm GenTrap to generate a trapdoor TR for the multi-dimensional range query Q with the key tuple SK;
[0011] S104 Query phase: The cloud server CS executes the query algorithm Query, retrieves the range query TR on the encrypted database through the original index I, and the cloud server outputs the retrieval result and verification auxiliary information A';
[0012] S105 Verification phase: After the query user QU obtains the retrieval result and the verification auxiliary information A', the query user QU uses the hash function H(·) for integrity verification. If the verification passes, output 1; otherwise output 0;
[0013] S106 Update phase: The data owner DO updates the data set and signature by updating the data record D up 、the original signature A and the update algorithm Update to obtain the updated data set D' and the new signature A new .
[0014] The described initialization phase includes:
[0015] The data owner DO selects a security parameter η, two large prime numbers p, q. The data owner DO generates a key set SK = {SK leaf , SK non-leaf , SK data}, and the calculation formula is as follows:
[0016]
[0017] In addition, the data owner DO calculates N = pq, selects a large base a, generates a secure hash function H(·), two permutation functions π1(·), π2(·), and the keys corresponding to the permutation functions are respectively
[0018] The described index encryption stage includes:
[0019] (1) First, the data owner DO encrypts the original index I = {L1,…,L n ,N1,…,N t ,P}, where represents leaf nodes, represents non - leaf nodes, and P represents the pointer set of child nodes.
[0020]
[0021] After that, the data owner DO outsources the encrypted index I * = {EL1,…,EL i ,EN1,…,EN j ,P} and the ciphertext C to the cloud server CS, where represent the encrypted leaf nodes and encrypted non - leaf nodes respectively;
[0022] (2) The data owner DO calculates the hash value of the encrypted data point C i , that is, x i ←H(C i ). The data owner DO calculates the RSA cumulative value of the ciphertext C, that is
[0023] DO obtains the tuple (A, t) by combining the cumulative value A and the current timestamp t, and uses the signature private key SK s to sign (A, t); the encrypted index I * and the signature Sig(A, t) will be uploaded to CS by the data owner DO together, and the signature public key SK p is distributed to each authorized user DS.
[0024] The described trapdoor generation stage includes:
[0025] Input the key tuple SK and the multi - dimensional range query MRQ, and the process of trapdoor generation is as follows:
[0026]
[0027] After that, the data owner DO distributes the trapdoor to the authorized query user QU.
[0028] The described query stage includes:
[0029] Input the query trapdoor TR MRQ and the encrypted index I *, the cloud server CS retrieves the encrypted index I step by step * ;
[0030] (1) The cloud server CS starts retrieving from the root node of the encrypted index I * . For a non-leaf node EN j , it continues to retrieve the child nodes under this node if and only if ; otherwise, it stops retrieving this node.
[0031] (2) For a leaf node EL i , it puts the identifier ID i of the data point D into the result list Result i if and only if the data point C i ∈ MRQ, that is MRQ ;
[0032] (3) Meanwhile, after deleting each data point in Result MRQ by the cloud server CS, it calculates the cumulative value of the remaining data points, that is A′ is signed by the cloud server CS using the private key SK s ;
[0033] Finally, the cloud server CS returns the result list Result MRQ , and uses the verification auxiliary signature Sig(A′) to verify the signature Sig(A, t) and send it to the query user QU.
[0034] The said verification phase includes:
[0035] Input the auxiliary signature Sig(A′), verify the signature Sig(A, t), the result list Result MRQ and the hash function H(·);
[0036] (1) The query user QU first decrypts Sig(A, t) with sk p to obtain the initial cumulative value A and the timestamp t, and checks the validity of the signature through t;
[0037] (2) The query user calculates the relevant values of each data point in the result list Result MRQ using H(·), and the calculation formula is as follows:
[0038]
[0039] After that, the query user calculates and checks the cumulative value and compares it with A. If and only if A * = A, it means the result set is complete; otherwise, the result set is incomplete.
[0040] The described update phase includes:
[0041] Insertion: In the G-tree, the insertion operation is implemented by two functions, "allocation" and "search"; the "allocation" function is used to generate the corresponding position of the inserted node in the tree, and the "search" function is used to find the specific partition at the corresponding position in the tree; if the insertion does not cause partition overflow, the insertion operation is directly executed; otherwise, the partition should be split first and then inserted;
[0042] (1) Direct insertion: When the data owner DO inserts a new set of data D new At this time, it is first necessary to determine the insertion position of D new The data owner DO uses the "equivalent query" operation for evaluation; that is, the data owner DO will Convert to a range vector where The data owner DO obtains the corresponding trapdoor TR new , ciphertext _C new and the update signature A new based on MR new ; After receiving the update tuple (TK new , C new , A′), starting from the data owner DO, the query user QU runs the query algorithm to obtain the data insertion position and stores C′ in the database; when encrypting D new , only the digital set D1 corresponding to FB-PIPE needs to be updated, and the specific process is shown in Algorithm 1;
[0043] Algorithm 1; Input: digital set D1, Random parameter
[0044] Output: Confusion vector (v w+1 , …, v K ), modify the digital set D1,
[0045] for w + 1 ≤ j ≤ K do
[0046] Randomly select an element e from D1 j : e j ← R D1;
[0047] Randomly select a number a from : j :
[0048] Generate the confusion vector
[0049] Update the number set D1: D1 = D1 - {e j};
[0050] Update the number set
[0051] return the confusion vector (v w+1 , …, v k ), modify the number set D1,
[0052] (2) Adjust the insertion: If some partitions in the G - tree overflow after data insertion, the G - tree needs to be adjusted; First, similar to "direct insertion", the data owner DO first evaluates the insertion position through the query algorithm, then finds out which partitions will overflow after data insertion, and splits and adjusts the overflowing partitions; This process iterates from bottom to top until no partition adjustment is required; Different from "direct insertion", both leaf node and non - leaf node partitions need to be adjusted simultaneously. Therefore, when encrypting D new , both the corresponding number sets D1 and D2 of FB - PIPE and FB - RIPE need to be updated, and the specific process is shown in Algorithm 1 and Algorithm 3;
[0053] Algorithm 3; Input: number set D2, random parameter
[0054] Output: the confusion vector (v w+1 , …, v K ), modify the number set D2,
[0055] for w + 1 ≤ j ≤ K do
[0056] Randomly select an element e′ from D2 j : e′ j ← R D2;
[0057] Randomly select a number a′ from : j :
[0058] Generate the confusion vector
[0059] Update the number set D2: D2 = D2 - {e′ j};
[0060] Update the number set
[0061] return the confusion vector (v w+1 , …, v k), modify the number set D2,
[0062] Deletion: Similar to insertion, the data owner DO first queries the corresponding position of the data record to be deleted in the G-tree and then deletes it; if the partition where the data is located does not contain data after deletion, it needs to be merged with the adjacent partition; if the deletion only involves leaf node partitions, only the number set D1 should be updated; if the deletion involves leaf nodes and non-leaf nodes, both the number sets D1 and D2 need to be updated; the specific processes are shown in Algorithms 5 and 6 respectively.
[0063] Algorithm 5; Input: number set D1, Random parameter e j
[0064] Output: modified number set D1,
[0065] for w + 1 ≤ j ≤ K do
[0066] Update the number set
[0067] Send e j To the data user;
[0068] Update the number set D1: D1 = D1 + {e j}
[0069] return modified number set D1,
[0070] Algorithm 6: Input: number set D2, Random parameter e' j
[0071] Output: modified number set D2,
[0072] for w + 1 ≤ j ≤ K do
[0073] Update the number set
[0074] Send e j To the data user;
[0075] Update the number set D2: D2 = D2 + {e' j}
[0076] return modified number set D2,
[0077] Modification: The modification operation is completed through the cooperation of "deletion" and "insertion". The data owner DO first uses the "deletion" operation to delete the data record, and then uses the "insertion" operation to add the modified data record to the index and the data set; since the amount of data in the data set does not change during the modification, there is no need to split or merge the partitions in the G-tree index during the modification.
[0078] The described secure and efficient dynamic encrypted cloud data multi-dimensional range query method is stored in a storage medium based on receiving user input programs, and an electronic device is made to execute through a computer program.
[0079] The described secure and efficient dynamic encrypted cloud data multi-dimensional range query method is implemented based on a multi-dimensional range query system. The multi-dimensional range query system includes:
[0080] Data owner: Generate key tuples and system parameters, construct encrypted indexes, construct signatures, and execute updates;
[0081] Query user: Generate trapdoors and check the integrity of query results;
[0082] Cloud server: Provide storage and retrieval services for the outsourced data set and execute queries on the encrypted index.
[0083] The described multi-dimensional range query system is carried on a terminal, and the terminal is an Internet of Things terminal.
[0084] Combining all the above technical solutions, the beneficial effects of the present invention are as follows: The present invention uses the newly proposed FB-PIPE and FB-RIPE to execute the range cross-predicate encryption query and point cross-predicate encryption query that can protect forward and backward privacy in the index; the encryption process in FB-PIPE and FB-RIPE is designed based on perturbation matrices, pseudo-random permutation functions, and random perturbations, and the message is converted into different ciphertexts with the same key, which can ensure the semantic security of FB-PIPE and FB-RIPE; the comparison predicate encryption uses dimension expansion, pseudo-random permutation, and random perturbation to make the method secure under the known background model; the cloud server cannot distinguish the confused leaf nodes or non-leaf nodes in the encrypted index, and the cloud server confuses the order of the attribute columns in the index based on the pseudo-random permutation function and random perturbation, so the technical solution of the present invention can effectively protect one-dimensional privacy; due to random parameter interference, the correct calculation results in FB-PIPE and FB-RIPE cannot be obtained, ensuring forward security and backward security.
[0085] The present invention is compared and analyzed with the classical multi-dimensional range query method. The security comparison results are shown in Table 1, where "√" indicates that the security requirement is met, "×" indicates that the security requirement is not met, and "*" indicates that the security requirement is partially met.
[0086] Table 1 Security Comparison
[0087] PRQ TREQD TREQD+ Maple LSED+ This method Query privacy √ √ √ × √ √ One-dimensional privacy √ √ √ √ × √ Path protection × × √ × × × Data dynamic update √ √ √ × √ √ Result verification × × × × × √ Forward privacy protection × × × × × √ Backward privacy protection × × × × × √
[0088] In Table 1, the method of the present invention has forward and backward privacy protection that other classical multi-dimensional range query methods do not have; both Maple and LSED+ are designed based on public key cryptosystems, and their query overhead is much higher than other schemes; PRQ is designed based on matrix encryption technology. In contrast, TREQD+ and the present method also include permutation technology in the query process; in order to achieve path preservation, TREQD+ uses two cloud servers to execute the query under the secure multi-party computation protocol, and this operation must be supplemented with homomorphic encryption based on flag bits, which will bring additional communication overhead; in addition, TREQD+ has more comprehensive performance than TREQD. Therefore, TREQD+ and PRQ are selected as comparison schemes in the query experiment. The experimental results show that the method of the present invention realizes the balance between the low cost and high security requirements of multi-dimensional range query. Brief Description of the Drawings
[0089] Figure 1 It is a flowchart of the multi-dimensional range query method of the embodiment of the present invention.
[0090] Figure 2 It is a framework diagram of the multi-dimensional range query system of the embodiment of the present invention.
[0091] Figure 3 、 Figure 4 They are respectively simulation diagrams of the computational overhead and storage overhead of index construction of the multi-dimensional range query method of the embodiment of the present invention under different data set dimensions and sizes.
[0092] Figure 5 、 Figure 6 They are respectively simulation diagrams of the computational overhead and storage overhead of signature construction of the multi-dimensional range query method of the embodiment of the present invention under different data set dimensions and sizes.
[0093] Figure 7 、 Figure 8 It is a simulation diagram of the computational overhead of trapdoor generation of signature construction of the multi-dimensional range query method of the embodiment of the present invention under different data set dimensions, sizes and the maximum capacity of the data set.
[0094] Figure 9 、 Figure 10 They are respectively simulation diagrams of the computational overhead of point intersection query and range intersection query of the multi-dimensional range query method of the embodiment of the present invention under different data set dimensions and the maximum capacity of the data set.
[0095] Figure 11 、 Figure 12It is a simulation diagram of the multi-dimensional range query calculation overhead of the multi-dimensional range query method according to the embodiments of the present invention under different data set dimensions, sizes, and the maximum capacity of the data set.
[0096] Figure 13 It is a comparison diagram of the query time, query accuracy, and query recall rate between the present invention and other classical multi-dimensional range query methods.
[0097] Figure 14 、 15 They are respectively comparison diagrams of the query accuracy and recall rate of a secure and efficient dynamic encrypted cloud data multi-dimensional range query method based on different index designs. Detailed implementation manners
[0098] The present invention will be further described in detail below in conjunction with embodiments and the accompanying drawings. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.
[0099] As Figure 1 shown, a secure and efficient dynamic encrypted cloud data multi-dimensional range query method includes the following steps:
[0100] S101 Initialization phase: The data owner DO takes the security parameter η, prime numbers p, and q as inputs, and generates a key set SK and a system parameter tuple SP;
[0101] S102 Index encryption phase: The data owner DO constructs an original index I for verifying query results and updating encryption according to the G-tree. At the same time, the data owner DO outputs a verification signature Sig with the original index I;
[0102] S103 Generate trapdoor: The query user QU executes the trapdoor generation algorithm GenTrap to generate a trapdoor TR for the multi-dimensional range query Q with the key tuple SK;
[0103] S104 Query phase: The cloud server CS executes the query algorithm Query, retrieves the range query TR on the encrypted database through the original index I, and the cloud server outputs the retrieval result and verification auxiliary information A';
[0104] S105 Verification phase: After the query user QU obtains the retrieval result and the verification auxiliary information A', the query user QU uses the hash function H(·) for integrity verification. If the verification passes, it outputs 1; otherwise, it outputs 0;
[0105] S106 Update phase: The data owner DO updates the data set and the signature by updating the data record D up , the original signature A, and the update algorithm Update to obtain the updated data set D' and the new signature Anew 。
[0106] As Figure 2 shown, the secure and efficient dynamic encryption cloud data multi-dimensional range query method is implemented based on a multi-dimensional range query system, and the multi-dimensional range query system includes:
[0107] Data owner: Responsible for system initialization, and generating key tuples and system parameters; constructing a searchable encryption index for the data set before the data owner encrypts and uploads the data set; in addition, the data owner needs to construct a signature for the encrypted data set; when the outsourced data set needs to be updated, the data owner performs updates to adjust the encrypted index and signature, and sends them to the cloud server together with the updated data set.
[0108] Query user: The query user determines the query range and generates a corresponding trapdoor to send to the cloud server, and will perform verification to check the integrity of the query results after the query user obtains the retrieval results;
[0109] Cloud server: Relying on its powerful computing resources and storage space in the system model, the cloud server provides storage and retrieval services for the outsourced data set; when the cloud server receives the trapdoor, it performs a query on the encrypted index to obtain the data records within the query range, and sends the query results and verification auxiliary information to the query user.
[0110] As Figure 2 shown, the initialization phase includes:
[0111] The data owner DO selects a security parameter η, two large prime numbers p, q, and the data owner DO generates a key set SK = {SK leaf , SK non-leaf , SK data}, and the calculation formula is as follows:
[0112]
[0113] In addition, the data owner DO calculates N = pq, selects a large base number a, generates a secure hash function H(·), two permutation functions π1(·), π2(·), and the keys corresponding to the permutation functions are respectively
[0114] The index encryption phase includes:
[0115] (1) First, the data owner DO encrypts the original index I = {L1,…, L n , N1,…, N t , P}, where represents the leaf node, represents the non-leaf node, and P represents the pointer set of the child nodes;
[0116]
[0117] After that, the data owner DO encrypts the index I * ={EL1,…,EL i ,EN1,…,EN j ,P} and the ciphertext C and outsources them to the cloud server CS, where represent the encrypted leaf nodes and the encrypted non-leaf nodes respectively;
[0118] (2) The data owner DO calculates the hash value of the encrypted data point C i using the hash function H(·), that is, x i ←H(C i ). The data owner DO calculates the RSA cumulative value of the ciphertext C, that is
[0119] The data owner DO obtains the tuple (A, t) by combining the cumulative value A and the current timestamp t, and uses the signature private key SK s to sign (A, t); the encrypted index I * and the signature Sig(A, t) will be uploaded to CS by the data owner DO together, and the signature public key SK p is distributed to each authorized user DS.
[0120] The trapdoor generation stage includes:
[0121] Input the key SK and the multi-dimensional range query MRQ, and the process of trapdoor generation is as follows:
[0122]
[0123] After that, the data owner DO distributes the trapdoor to the authorized query user QU.
[0124] The query stage includes:
[0125] Input the query trapdoor TR MRQ and the encrypted index I * , and the cloud server CS retrieves the encrypted index I * level by level;
[0126] (1) The cloud server CS starts to retrieve from the root node of the encrypted index i * . For the non-leaf node EN j , if and only if , it continues to retrieve the child nodes under this node, otherwise it stops retrieving this node;
[0127] (2) For the leaf node EL i, if and only if data point C i ∈MRQ, that is At this time, put data point D i 's identifier ID i into the result list Result MRQ ;
[0128] (3) At the same time, after the cloud server CS deletes each point in Result MRQ , calculate the cumulative value of the remaining data points, that is A' is signed by the cloud server CS using the private key SK s ;
[0129] Finally, the cloud server CS returns the result list Result MRQ , uses the verification auxiliary signature Sig(A') to verify the signature Sig(A, t) and sends it to the query user QU
[0130] The described verification phase includes:
[0131] Input the auxiliary signature Sig(A'), verify the signature Sig(A, t), the result list Result MRQ and the hash function H(·);
[0132] (1) The query user QU first decrypts Sig(A, t) with sk p to obtain the initial cumulative value A and the timestamp t, and checks the validity of the signature through t;
[0133] (2) The query user calculates the relevant values of each data point in the result list Result MRQ using H(·), and the calculation formula is as follows:
[0134]
[0135] After that, the query user calculates and checks the cumulative value and compares it with A. If and only if A * = A, it means that the result set is complete; otherwise, the result set is incomplete;
[0136] The update phase includes:
[0137] Support data insertion, deletion or modification, and implement data modification by deleting the previous data and inserting the updated data;
[0138] Insertion: In the G-tree, the insertion operation is implemented by two functions, "allocation" and "search"; the "allocation" function is used to generate the corresponding position of the inserted node in the tree, and the "search" function is used to find the specific partition at the corresponding position in the tree; from the perspective of the G-tree structure, attention should be paid to the impact of the partition size on node insertion; if the insertion does not cause partition overflow, the insertion operation can be directly executed; otherwise, the partition should be split first and then inserted.
[0139] (1) Direct insertion: When the data owner DO inserts a new set of data D new first, it is necessary to determine the insertion position of D new , where the data owner DO uses the "equivalent query" operation for evaluation; that is, the data owner DO will be converted into a range vector where the data owner DO obtains the corresponding trapdoor TR new , ciphertext _C new and the update signature A new based on MR new by executing the GenTrap and EncIndex algorithms; after receiving the update tuple (TK new , C new , A′), starting from the data owner DO, the query user QU runs the query algorithm to obtain the data insertion position and stores C′ in the database; it should be noted that only the leaf node needs to be changed in direct insertion, so when encrypting D new , only the digital set D1 corresponding to FB-PIPE needs to be updated; the specific process is shown in Algorithm 1.
[0140] Algorithm 1; Input: number set D1, random parameter
[0141] Output: confusion vector (v w+1 , …, v K ), modify the number set D1,
[0142] for w + 1 ≤ j ≤ K do
[0143] Randomly select an element e from D1 j : e j ← R D1;
[0144] Randomly select a number a from : j :
[0145] Generate the confusion vector
[0146] Update the number set D1: D1 = D1 - {e j};
[0147] Update the number set
[0148] return the confusion vector (v w+1 , …, v k ), modify the number set D1,
[0149] (2) Adjusted insertion: If some partitions in the G - tree overflow after data insertion, the G - tree needs to be adjusted; First, similar to "direct insertion", the data owner DO first evaluates the insertion position through the query algorithm, then finds out which partitions will overflow after data insertion, and splits and adjusts the overflowing partitions; This process iterates from bottom to top until no partition adjustment is required; Different from "direct insertion", both leaf node and non - leaf node partitions need to be adjusted simultaneously; Therefore, when encrypting D new , both the corresponding number sets D1 and D2 of FB - PIPE and FB - RIPE need to be updated; The specific process is shown in Algorithm 1 and Algorithm 3;
[0150] Algorithm 3; Input: number set D2, random parameter
[0151] Output: the confusion vector (v w+1 , …, v K ), modify the number set D2,
[0152] for w + 1 ≤ j ≤ K do
[0153] Randomly select an element e′ from D2 j : e′ j ← R D2;
[0154] Randomly select a number a′ from : j :
[0155] Generate the confusion vector
[0156] Update the number set D2: D2 = D2 - {e′ j};
[0157] Update the number set
[0158] return the confusion vector (v w+1 , …, vk ) Modify the number set D2,
[0159] Deletion: Similar to insertion, the data owner DO first queries the corresponding position of the data record to be deleted in the G-tree and then deletes it; if the partition where the data is located does not contain data after deletion, it needs to be merged with the adjacent partition; if the deletion only involves leaf node partitions, only the number set D1 should be updated; if the deletion involves leaf nodes and non-leaf nodes, both the number sets D1 and D2 need to be updated; the specific processes are described in Algorithm 5 and Algorithm 6 respectively;
[0160] Algorithm 5: Input: Number set D1, Random parameter e j
[0161] Output: Modified number set D1,
[0162] for w + 1 ≤ j ≤ K do
[0163] Update the number set
[0164] Send e j To the data user;
[0165] Update the number set D1: D1 = D1 + {e j}
[0166] return Modified number set D1,
[0167] Algorithm 6: Input: Number set D2, Random parameter e' j
[0168] Output: Modified number set D2,
[0169] for w + 1 ≤ j ≤ K do
[0170] Update the number set
[0171] Send e j To the data user;
[0172] Update the number set D2: D2 = D2 + {e' j}
[0173] return Modified number set D2,
[0174] Modification: The modification operation is completed through the cooperation of "deletion" and "insertion"; the data owner DO first uses the "deletion" operation to delete the data record, and then uses the "insertion" operation to add the modified data record to the index and the data set; since the amount of data in the data set does not change during the modification, there is no need to split or merge the partitions in the G-tree index during the modification.
[0175] Among them, DO: Data Owner; QU: Query User; CS: Cloud Server; MRQ: Multi-dimensional Range Query; RSA: A public key encryption algorithm; wdFB-PIPE: w-dimensional forward and backward privacy-preserving point intersection predicate encryption; wdFB-RIPE: w-dimensional forward and backward privacy-preserving range intersection predicate encryption; SK: Key set; SK leaf : The leaf node corresponds to the key; SK non-leaf : The non-leaf node corresponds to the key; I: Original index; I * : Encrypted index; C: Ciphertext; C i : Data point; TR: Trapdoor; t: Timestamp; A: Cumulative initial value; Sig(A): Signature; MR new : Range vector; Sig(A′): Auxiliary signature; x i : Hash value; ID i : User identifier; Result MRQ : Result list; TP: Correct query result; FP: Incorrect query result; FN: Correct result not yet retrieved; w: Dimension of the data set D; |D|: Size of the data set D; K: Maximum capacity of the data set; Leaf node; Non-leaf node; Encrypted leaf node; Encrypted non-leaf node; P: Pointer set of child nodes; η: Security parameter; p: Large prime number; q: Large prime number.
[0176] The technical effects of the present invention will be described in detail below in combination with simulations.
[0177] In order to verify the usability of the present invention, the test results of the secure and efficient dynamic encrypted cloud data multi-dimensional range query method SE-MRQ under simulation will be shown and described below. Simulation environment: On a PC with a CPU of 3.20G Hz, Windows environment. The symbol identifiers for this simulation are as follows: w represents the dimension of the data set D, |D| represents the size of the data set D, and K represents the maximum capacity of the data set.
[0178] Figure 3 、 Figure 4The figure shows the impacts of the dataset dimension and size on the computational and storage overheads of index construction for the secure and efficient dynamic encrypted cloud data multi-dimensional range query method (the dataset used is the 1999 U.S. Census Bureau dataset). In Figure 3 the computational overhead of index construction is plotted against w and |D|. In this experiment, the number of attributes w ∈ {2, 4, 6} and the dataset size |D| ∈ [10,000, 100,000] are set. Horizontally, the computational overhead almost linearly increases with the dataset size |D|. However, vertically, with the same dataset size, the computational overhead linearly increases with the number of attributes w. In Figure 4 the storage overhead of the encrypted index is plotted against w and |D|. In this experiment, w ∈ {2, 4, 6} and |D| ∈ [10,000, 100,000] are set. Different from the computational overhead, the storage overhead of the encrypted index linearly increases with the increase of w and |D|.
[0179] Figure 5 and Figure 6 The figure shows the impacts of the dataset dimension and size on the computational and storage overheads of signature construction for the secure and efficient dynamic encrypted cloud data multi-dimensional range query method (the dataset used is the 1999 U.S. Census Bureau dataset). In Figure 5 the computational overhead of signature construction is plotted against w and |D|. In this experiment, the number of attributes w ∈ {2, 4, 6} and the dataset size |D| ∈ [10,000, 100,000] are set. It can be seen from this figure that the computational cost approximately linearly varies with different dataset sizes. In addition, the computational cost also linearly varies with different dimension settings. However, when the dataset size increases, the difference in computational costs among the three different dimensions is small, which also indicates that the data volume is the decisive factor affecting the computational overhead. In Figure 6 w ∈ {2, 4, 6} and |D| ∈ [10,000, 100,000] are set. Similar to the computational overhead, the storage overhead of the signature linearly varies with the changes of w and |D|.
[0180] Figure 7 、 Figure 8 The figure shows the impacts of the dataset dimension, size, and the maximum capacity of the dataset on the computational overhead of trapdoor generation for the secure and efficient dynamic encrypted cloud data multi-dimensional range query method (the dataset used is the 1999 U.S. Census Bureau dataset). In Figure 7 K sq ∈ {100, 200, 300, 400} and w ∈ [2, 8] are set. This figure shows that the computational overhead linearly varies with w. When w is fixed, the computational overhead varies quadratically with K sq . In Figure 8Among them, |D| ∈ {20000, 40000, 60000, 80000, 100000} and w ∈ [2, 8] are set. The figure shows that the computing cost changes linearly with w. When w is fixed, the computing cost also changes linearly with |D|.
[0181] Figure 9 and Figure 10 The impacts of the dataset dimension and the maximum dataset capacity on the computational overheads of point intersection queries and range intersection queries for the secure and efficient dynamic encrypted cloud data multi-dimensional range query method are shown respectively (the dataset used is the 1999 US Census Bureau dataset). As Figure 9 shown, the computational overhead of point intersection queries is plotted against w ∈ {2, 4, 6, 8, 10} and K sq = {100, 200, 300, 400}. It can be observed that the computational overhead of point intersection queries changes almost linearly with w and quadratically with K sq . As Figure 10 shown, the computational overhead of range intersection queries is plotted against w ∈ {2, 4, 6, 8, 10} and K sq = {100, 200, 300, 400}. The computational overhead of range intersection queries changes approximately with w and quadratically with K sq .
[0182] Figure 11 and 12 The impacts of the dataset dimension, size, and the maximum dataset capacity on the computational overhead of multi-dimensional range queries for the secure and efficient dynamic encrypted cloud data multi-dimensional range query method are shown (the dataset used is the 1999 US Census Bureau dataset). In Figure 11 , the computational overhead of multi-dimensional range queries with K sq ∈ {100, 200, 300, 400}, |D| ∈ [10000, 100000], and w = 8 is obtained. It can be observed that when |D| ≤ 60000, the computational overhead of the query changes almost linearly with K sq and |D|, and K sq has a greater impact on the computational cost; while when |D| > 60000, the computational overhead changes almost logarithmically with the two factors, and |D| dominates the impact on the computational overhead. In Figure 12 , the computational overhead of multi-dimensional range queries with w ∈ {2, 4, 6, 8}, |D| ∈ [10000, 100000], and K sq = 400 is obtained. It can be seen that when w ∈ {2, 4}, the computational cost of the query changes almost linearly with w and |D|, and w dominates the computational cost; while when w ∈ {6, 8}, the computational cost of the query changes logarithmically with w and |D|.
[0183] Figure 13 Shown is a comparison of the query time, query accuracy, and query recall rate between the secure and efficient dynamic encrypted cloud data multi-dimensional range query method and other classical multi-dimensional range query methods (the dataset used is the 1999 US Census Bureau dataset). For fairness, SE-MRQ, PRQ, and TREQD+ schemes are compared, and there is no additional overhead between the two cloud servers. As Figure 13 shown, the computational overhead of multi-dimensional range queries between PRQ, TREQD+, and SE-MRQ is plotted, with the parameter settings w = 2, |D| ∈ [10000, 100000], and K sq = 400. It can be seen from the figure that the query efficiency of SE-MRQ is almost between PRQ and TREQD+. Specifically, the query overhead of SE-MRQ is on average 5.6 ms higher than that of PRQ and 4.9 ms lower than that of TREQD+ on average; in addition, the query overhead of these three schemes varies logarithmically with the dataset size |D|. Although the query overhead of SE-MRQ is slightly higher than that of TREQD+, in actual scenarios, TREQD+ must consider additional communication costs. Therefore, the SE-MRQ of the present invention can perform multi-dimensional range queries efficiently and practically.
[0184] Figure 14 、 Figure 15 respectively show the comparison of the query accuracy and recall rate of the secure and efficient dynamic encrypted cloud data multi-dimensional range query method based on different index designs. The PRQ and TREQD+ indexes are designed based on the R-tree, while the SE-MRQ index is designed based on the G-tree; in order to objectively evaluate the performance of the G-tree and R-tree, in the experiment, the SE-MRQ index is implemented based on the two structures respectively, and the query precision and recall rate are obtained; the precision of the SE-MRQ scheme, that is, the proportion of the correct results in the entire retrieval results; TP represents the correct results, and FP represents the wrong results; the precision calculation formula is as follows:
[0185]
[0186] In addition, the recall rate of the SE-MRQ scheme of the present invention, that is, the proportion of the retrieved correct results in the entire correct results; FN represents the correct results that have not been retrieved yet. The recall rate calculation formula is as follows:
[0187]
[0188] In Figure 14 and Figure 15 are plotted the query precision and recall rate of SE-MRQ, where the parameter settings are w ∈ {2, 4, 6, 8} and |D| ∈ [20000, 100000]. From Figure 14It can be seen that the query precision and recall rate of the G-tree and the R-tree decrease as the dataset size and dimension increase; however, under different conditions, the precision and recall rate of the G-tree are higher than those of the R-tree, which also indicates that the performance of the index designed based on the G-tree in SE-MRQ is better than that of the index based on the R-tree.
[0189] It should be noted that the embodiments of the present invention can be implemented through hardware, software, or a combination of software and hardware. The hardware part can be implemented using dedicated logic; the software part can be stored in a memory and executed by an appropriate instruction execution system, such as a microprocessor or dedicated design hardware. Those of ordinary skill in the art can understand that the above devices and methods can be implemented using computer-executable instructions and / or included in processor control code, such as provided on a carrier medium such as a disk, CD, or DVD-ROM, a programmable memory such as a read-only memory (firmware), or a data carrier such as an optical or electronic signal carrier. The devices and modules of the present invention can be implemented by hardware circuits of programmable hardware devices such as very large scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, etc., or field programmable gate arrays, programmable logic devices, etc., can also be implemented by software executed by various types of processors, or can be implemented by a combination of the above hardware circuits and software, such as firmware.
[0190] As described above, only the specific embodiments of the present invention are provided, but the protection scope of the present invention is not limited thereto. Any modification, equivalent replacement, and improvement made within the spirit and principle of the present invention by those skilled in the art within the technical scope disclosed by the present invention shall be covered by the protection scope of the present invention.
Claims
1. A secure and efficient multi-dimensional range query method for dynamically encrypted cloud data, characterized in that, It includes the following steps: S101 Initialization phase: The data owner DO takes the security parameter η, prime numbers p, and q as inputs, and generates a key set SK and a system parameter tuple SP. S102 Index encryption phase: The data owner DO constructs an encrypted original index I for verifying query results and updates according to the G-tree. At the same time, the data owner DO outputs a verification signature Sig with the original index I. The index encryption phase includes: (1) First, the data owner DO encrypts the original index I = {L1,…,L n ,N1,…,N t ,P}, where represents leaf nodes, represents non-leaf nodes, and P represents the set of pointers to child nodes. After that, the data owner DO encrypts the index I * ={EL1,…,EL i ,EN1,…,EN j ,P} and the ciphertext C are outsourced to the cloud server CS, where represent the encrypted leaf nodes and encrypted non-leaf nodes respectively; among them, FB-PIPE and FB-RIPE are used to perform range intersection predicate encryption queries and point intersection predicate encryption queries that can protect forward and backward privacy in the index; the encryption processes in FB-PIPE and FB-RIPE are designed using perturbation-based matrices, pseudorandom permutation functions, and random perturbations to convert the message into different ciphertexts with the same key, ensuring the semantic security of FB-PIPE and FB-RIPE; the comparison predicate encryption uses dimension expansion, pseudorandom permutation, and random perturbation; (2) The data owner DO uses the hash function H(·) to calculate the encrypted data point C i The hash value of x i ←H(C i ), the data owner DO calculates the RSA cumulative value of the ciphertext C, that is, a is a large cardinality; The Data Owner (DO) obtains the tuple (A, t) by combining the cumulative value A and the current timestamp t, and signs (A, t) using the signature private key SK s encrypts the index I * along with the signature Sig(A, t) and uploads them to the Cloud Server (CS) by the Data Owner (DO). The signature public key SK p is distributed to each authorized user (DS); S103 Generate a trapdoor: The query user QU executes the trapdoor generation algorithm GenTrap to generate a trapdoor TR for the multi-dimensional range query Q with the key tuple SK. S104 Query phase: The cloud server CS executes the query algorithm Query to retrieve the range query TR on the encrypted database through the original index I, and the cloud server outputs the retrieval result and the verification auxiliary information A'; S105 Verification phase: After obtaining the retrieval result for query user QU and verifying the auxiliary information A', query user QU performs integrity verification using the hash function H(·). If the verification passes, output 1; otherwise, output 0. S106 Update Phase: The data owner DO updates the data set and the signature by updating the data record D up , the original signature A, and the update algorithm Update to obtain the updated data set D' and the new signature A new .
2. The method according to claim 1, wherein The initialization phase includes: The data owner DO selects a security parameter η, two large prime numbers p and q. The data owner DO generates a key set SK = {SK leaf , SK non-leaf , SK data}, and the calculation formula is as follows: In addition, the data owner DO calculates N = pq, selects a large base number a, generates a secure hash function H(·), and two permutation functions π1(·) and π2(·), and the keys corresponding to the permutation functions are respectively 3. The method according to claim 1, wherein The trapdoor generation phase includes: Input the key tuple SK and the multi-dimensional range query MRQ. The process of generating the trapdoor is as follows: After that, the data owner DO will assign the trapdoor to the authorized query user QU.
4. The method according to claim 1, wherein The query phase includes: Input query trapdoor TR MRQ and encrypted index I * , and the cloud server CS retrieves the encrypted index I step by step * ; (1) The cloud server CS starts to retrieve from the root node of the encrypted index I * For a non-leaf node EN j if and only if is satisfied, it continues to retrieve the child nodes under this node; otherwise, it stops retrieving this node. (2) For leaf node EL i , if and only if data point C i ∈MRQ, that is when, put the identifier ID of data point D i into the result list Result i ; MRQ (3) At the same time, after the cloud server CS deletes each data point in Result MRQ , it calculates the cumulative value of the remaining data points, that is A' is signed by the cloud server CS using the private key SK s ; Finally, the cloud server CS returns the result list Result MRQ , and uses the verification auxiliary signature Sig(A') to verify the signature Sig(A, t) and send it to the query user QU.
5. The method according to claim 4, characterized in that The verification phase includes: Input the auxiliary signature Sig(A'), verify the signature Sig(A, t), and the result list Result MRQ and the hash function H(·); (1) The querying user QU first uses sk p to decrypt Sig(A, t) to obtain the initial cumulative value A and the timestamp t, and checks the validity of the signature through t; (2) The query user calculates the relevant values of each data point in the result list Result using H(·), and the calculation formula is as follows: MRQ in the following After that, the query user calculates and checks the cumulative value and compares it with A. If and only if A * = A, it means that the result set is complete; otherwise, the result set is incomplete.
6. The method according to claim 1, wherein The update phase includes: Insertion: In the G-tree, the insertion operation is implemented by two functions, "allocation" and "search"; the "allocation" function is used to generate the corresponding position of the insertion node in the tree, and the "search" function is used to find the specific partition at the corresponding position in the tree; if the insertion does not cause partition overflow, the insertion operation is directly executed; otherwise, the partition should be split first and then inserted. (1) Direct Insertion: When the data owner DO inserts a new set of data D new At this time, it is first necessary to determine the insertion position of D new . The data owner DO uses the "equivalent query" operation for evaluation; that is, the data owner DO will Convert it into a range vector Where The data owner DO obtains the corresponding trapdoor TR new , ciphertext _C new And the update signature A new Based on MR new ; After receiving the update tuple (TK new , C new , A'), starting from the data owner DO, the query user QU runs the query algorithm to obtain the data insertion position and stores C' in the database; when encrypting D new , only the digital set D1 corresponding to FB-PIPE needs to be updated, and the specific process is shown in Algorithm 1; Algorithm 1; Input: number set D1, random parameter Output: Confusion vector (v w+1 , …, v K ), modify the number set D1, for w + 1 ≤ j ≤ K do Randomly select an element e from D1 j : e j ← R D1; Randomly select a number a from and j : Generate obfuscated vectors Update the number set D1: D1 = D1 - {e j}; Updated number set return the confusion vector (v w+1 , …, v k ), modify the number set D1, (2) Adjusted Insertion: If some partitions in the G-tree overflow after data insertion, the G-tree needs to be adjusted. First, similar to "direct insertion", the data owner DO first evaluates the insertion position through the query algorithm, then finds out which partitions will overflow after data insertion, and splits and adjusts the overflowing partitions. This process is iterated from bottom to top until no partition needs to be adjusted. Different from "direct insertion", both leaf node and non-leaf node partitions need to be adjusted simultaneously. Therefore, when encrypting D new the corresponding digital sets D1 and D2 of FB-PIPE and FB-RIPE both need to be updated. The specific process is shown in Algorithms 1 and 3; Algorithm 3; Input: number set D2, Random parameter Output: Confusion vector (v w+1 , …, v K ), modify the number set D2, for w + 1 ≤ j ≤ K do Randomly select an element e from D2 j ': e j ' ← R D2; Randomly select a number a from and j ': Generate obfuscated vectors Update the number set D2: D2 = D2 - {e j '}; Updated number set return the confusion vector (v w+1 , …, v k ), modify the number set D2, Deletion: Similar to insertion, the data owner DO first queries the corresponding position of the data record to be deleted in the G-tree and then deletes it; if the partition where the data is located does not contain data after deletion, it needs to be merged with the adjacent partition; if the deletion only involves the leaf node partition, only the digital set D1 should be updated; if the deletion involves both leaf nodes and non-leaf nodes, both the digital sets D1 and D2 need to be updated; the specific processes are shown in Algorithm 5 and Algorithm 6 respectively. Algorithm 5; Input: number set D1, random parameter e j Output: Modify the number set D1, for w + 1 ≤ j ≤ K do Updated number set Send e j to the data user; Update the data set D1: D1 = D1 + {e j} return to modify the data set D1, Algorithm 6: Input: number set D2, random parameter e' j Output: Modify the number set D2, for w + 1 ≤ j ≤ K do Updated number set Send e j to the data user; Update the number set D2: D2 = D2 + {e'} j} return to modify the data set D2, Modification: The modification operation is completed through the cooperation of "deletion" and "insertion". The data owner DO first uses the "deletion" operation to delete the data record, and then uses the "insertion" operation to add the modified data record to the index and the data set; since the amount of data in the data set does not change during modification, there is no need to split or merge the partitions in the G-tree index during modification.
7. A program storage medium for receiving user input, characterized in that: Store a computer program, and through the computer program, make an electronic device execute the secure and efficient dynamic encrypted cloud data multi-dimensional range query method described in claim 1.
8. A multi-dimensional range query system, characterized in that, Implement the secure and efficient dynamic encrypted cloud data multi-dimensional range query method described in claim 1. The multi-dimensional range query system includes: Data owner: Generate a key tuple and system parameters, construct an encrypted index, construct a signature, and execute updates. Query user: Generate a trapdoor and check the integrity of the query result. Cloud server: Provide storage and retrieval services for the outsourced data set and execute queries on the encrypted index.
9. The multi-dimensional range query system according to claim 8, wherein The multi-dimensional range query system is carried on a terminal, and the terminal is an Internet of Things terminal.
Citation Information
Patent Citations
Life raft energy saving system based on pulse wave modulation conversion and microwave induction
CN104270853A
Retrieval system of encrypted data in secure cloud storage
CN107734054A