Range Query Method for Protecting Data Access Patterns Based on Uniform Access Frequencies
By storing the databases in groups and processing replicas and virtual keywords, the problems of degradation in scope query performance and large network communication overhead in the prior art are solved, and data access mode protection with uniform access frequency is achieved, and query efficiency and security are improved.
Patent Information
- Application Number
- CN202211385479.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-07
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2042-11-07
AI Technical Summary
The existing data access mode protection methods have problems such as performance degradation and network communication overhead in scope query, especially the difficulty of ORAM and Pancake algorithms to safely expand support scope query.
By grouping the key-value pairs in the database, adding replicas and adding virtual keywords, calculating the false access frequency of replicas, and using the uniform access frequency method to decompose and mix query requests, realizing the protection of data access mode.
It realizes the uniform distribution of data block access frequency in the database, provides powerful security and privacy protection functions, and improves the efficiency and query performance of range query, reducing network communication overhead.
Smart Images

Figure CN115687457B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of data security, and particularly relates to a range query method for protecting a data access pattern based on uniform access frequency. Background Art
[0002] With the development of cloud computing and computer security, people's awareness of privacy protection has become increasingly strong. Database encryption algorithms are very common privacy protection algorithms, and currently there have been great developments in both data security and query efficiency. However, people have increasingly found that simply performing encryption algorithms on databases cannot protect the entire process of access requests and cannot withstand all types of data attacks. For example, by observing the data access patterns of users to the data in the database, a lot of privacy information can be inferred, including the content of encrypted data. Therefore, we should enhance the awareness of protecting data access patterns.
[0003] In existing research, there are not a few point query algorithms for protecting data access patterns, but there are fewer algorithms for providing data access pattern protection for range queries. Currently, the methods for providing data access pattern protection include Oblivious Random Access Machine (ORAM) and other techniques for protecting data access patterns. Among them, Oblivious Random Access Machine (ORAM) can provide data access pattern protection for data storage and support point queries such as data reading and writing. For example, "Path ORAM: An extremely simple oblivious RAM protocol", Path ORAM reduces the time complexity of each read / write request to the logarithmic level and is a currently widely used ORAM design. "Efficient Oblivious Query Processing for Range and kNN Queries", this algorithm supports range queries for data access pattern protection by integrating a tree index in the oblivious random access machine. However, the performance of the oblivious random access machine has a theoretical lower bound. Compared with data queries that do not provide data access pattern protection, the ratio of network communication overhead is at the logarithmic level, resulting in a huge time overhead for data query processing.
[0004] Other technical solutions for protecting data access patterns, such as "Pancake: Frequency Smoothing for Encrypted Data Stores.", this algorithm mainly achieves the indistinguishability of the data access pattern of query requests through the combination of three techniques: selective replication, false access, and query batching, and supports point queries for key-value pairs in the database. However, in the case of protecting the data access pattern, this method supports point queries for key-value type data, but the query independence assumption it relies on makes it difficult to safely expand to support range queries. Summary of the Invention
[0005] In order to solve the above problems existing in the prior art, the present invention provides a range query method for protecting data access patterns based on uniform access frequencies. The technical problems to be solved by the present invention are realized through the following technical solutions:
[0006] The present invention provides a range query method for protecting data access patterns based on uniform access frequencies, including:
[0007] Step 1: Group and store multiple key-value pairs in the database according to the maximum length of the range query to obtain several original storage modules;
[0008] Step 2: Perform copy addition processing and virtual keyword addition processing on each of the original storage modules to obtain final storage modules. Among them, the sum of the number of copies of all key-value pairs in each final storage module and the number of virtual keywords is equal to 2n, where n represents the total number of key-value pairs in the original storage module corresponding to the final storage module;
[0009] Step 3: Calculate the copy false access frequency of each key-value pair copy in each of the final storage modules;
[0010] Step 4: According to the range query length of the received query access request, select the final storage module for query. Decompose the query access request into two sub-query access requests, query the two sub-query access requests respectively according to the selected final storage module to obtain corresponding sub-query results, and compare the keywords corresponding to the two sub-query results with the keyword corresponding to the query access request to obtain the query result of the query access request;
[0011] Among them, during the query process of the sub-query access request, generate a false access request randomly according to the copy false access frequency, mix the false access request with the sub-query access request for query batch processing to obtain the corresponding sub-query result.
[0012] In an embodiment of the present invention, the Step 1 includes:
[0013] Step 1.1: According to the maximum length a of the range query, set l such that the maximum length a of the range query satisfies 2 l-1 <a<2 l , where l is an integer greater than 0;
[0014] Step 1.2: Group and store multiple key-value pairs in the database according to the value of l to obtain l + 1 original storage modules;
[0015] Among them, in the i-th original storage module, multiple key-value pairs in the database are grouped and stored in groups of 2 i-1 key-value pairs, where i = 1, 2, … l + 1.
[0016] In an embodiment of the present invention, if the maximum length a of the range query is unknown, l is taken as the largest positive integer that satisfies 2 l ≤ N, and multiple key-value pairs in the database are grouped and stored according to the value of l, obtaining l + 1 original storage modules.
[0017] In an embodiment of the present invention, step 2 includes:
[0018] Step 2.1: According to the access frequency of each key-value pair in the database, add corresponding copies to the key-value pairs in each original storage module;
[0019] Step 2.2: Use a random function to add virtual keywords to the original storage module after adding copies, obtaining the final storage module.
[0020] In an embodiment of the present invention, in step 2.1, after adding corresponding copies to the key-value pairs in each original storage module, the number of copies of the key-value pair is R(k) = [π(k) * n], where π(k) represents the access frequency of the key-value pair k.
[0021] In an embodiment of the present invention, step 3 includes:
[0022] Calculate the false access frequency of the copy of each key-value pair in each final storage module according to the following formula:
[0023]
[0024] where π(k) represents the access frequency of the key-value pair k, R(k) represents the number of copies of the key-value pair k in the final storage module, and π f (k, j) represents the false access frequency of the j-th copy of the key-value pair k in the final storage module, and δ represents a probability constant, 0 < δ ≤ 1.
[0025] In an embodiment of the present invention, step 4 includes:
[0026] Step 4.1: Calculate the range query length b of the received query access request, confirm the value of l that satisfies 2 l-1 < b < 2 l , and select the final storage module corresponding to the (l + 1)-th original storage module for query according to the value of l;
[0027] Step 4.2: According to the scope of the query access request, decompose the query access request into point query access requests corresponding to the scope endpoints, serving as two sub-query access requests;
[0028] Step 4.3: Query the two sub-query access requests respectively according to the selected final storage module to obtain corresponding sub-query results;
[0029] Step 4.4: Compare the keyword corresponding to each value in the two sub-query results with the scope of the query access request. If the keyword corresponding to the value is within the scope of the query access request, retain the value; if the keyword corresponding to the value is not within the scope of the query access request, delete the value. Take all the retained values as the query result of the query access request.
[0030] In an embodiment of the present invention, during the process of querying the sub-query access request, randomly generate a false access request according to the replica false access frequency, mix the false access request with the sub-query access request for query batch processing to obtain the corresponding sub-query result, including:
[0031] Step a: Randomly generate a false access request according to the replica false access frequency, mix the false access request with the sub-query access request to form a batch of access request groups of a preset size;
[0032] Step b: Query the access requests in the access request group and retain the query results of the sub-query access requests.
[0033] Compared with the prior art, the beneficial effects of the present invention are as follows:
[0034] 1. The range query method for data access pattern protection based on uniform access frequency of the present invention utilizes the method of uniform access distribution frequency to achieve a uniform distribution of the access frequencies of data blocks in the database, and has a strong security and privacy protection function.
[0035] 2. The range query method for data access pattern protection based on uniform access frequency of the present invention can quickly implement range queries, and can search in the stored data according to the start and end points of the range query, improving the query efficiency.
[0036] 3. The range query method for data access pattern protection based on uniform access frequency of the present invention has a constant-level network communication overhead ratio compared with the range query without providing data access pattern protection, and has high query performance.
[0037] The above description is only an overview of the technical solution of the present invention. In order to be able to more clearly understand the technical means of the present invention, it can be implemented according to the content of the specification. And in order to make the above and other purposes, features and advantages of the present invention more obvious and understandable, the following specifically enumerates preferred embodiments and, in conjunction with the accompanying drawings, is described in detail as follows. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Figure 1 is a schematic diagram of a range query method for protecting a data access mode based on a uniform access frequency provided by an embodiment of the present invention;
[0039] Figure 2 is a data grouping storage flowchart provided by an embodiment of the present invention;
[0040] Figure 3 is a query flowchart of a sub-query access request provided by an embodiment of the present invention;
[0041] Figure 4 is a query flowchart of a query access request provided by an embodiment of the present invention; DETAILED DESCRIPTION OF THE EMBODIMENTS
[0042] In order to further elaborate on the technical means and effects adopted by the present invention to achieve the predetermined invention purpose, the following, in conjunction with the accompanying drawings and specific embodiments, details a range query method for protecting a data access mode based on a uniform access frequency proposed according to the present invention.
[0043] The foregoing and other technical contents, features and effects of the present invention can be clearly presented in the following detailed description in conjunction with the accompanying drawings. Through the description of the specific embodiments, a more in-depth and specific understanding of the technical means and effects adopted by the present invention to achieve the predetermined purpose can be obtained. However, the accompanying drawings are only for reference and illustration, and are not used to limit the technical solution of the present invention.
[0044] Embodiment 1
[0045] Please refer to Figure 1 , Figure 1 which is a schematic diagram of a range query method for protecting a data access mode based on a uniform access frequency provided by an embodiment of the present invention. As shown in the figure, the range query method for protecting a data access mode based on a uniform access frequency in this embodiment includes:
[0046] Step 1: Group and store multiple key-value pairs in the database according to the maximum length of the range query to obtain a number of original storage modules;
[0047] Among them, in this embodiment, the database includes plaintext data with N key-value pairs, and the plaintext data can be expressed as KV = {(K m , Vm )}, where m ∈ {1, 2,..., N}, K represents the keyword, and V represents the value.
[0048] The process of specifically grouping and storing multiple key-value pairs in the database is as Figure 2 shown in the data grouping and storage flowchart.
[0049] In an optional implementation, step 1 includes:
[0050] Step 1.1: According to the maximum length a of the range query, set l such that the maximum length a of the range query satisfies 2 l-1 < a < 2 l , where l is an integer greater than 0;
[0051] Step 1.2: Group and store multiple key-value pairs in the database according to the value of l to obtain l + 1 original storage modules.
[0052] Among them, in the i-th original storage module, multiple key-value pairs in the database are grouped and stored in groups of 2 i-1 key-value pairs, where i = 1, 2,..., l + 1.
[0053] That is, in the first original storage module, multiple key-value pairs in the database are grouped and stored in groups of 2 0 key-value pairs, that is, all key-value pairs are grouped into groups of one key-value pair each, and a total of N groups are stored;
[0054] In the second original storage module, multiple key-value pairs in the database are grouped and stored in groups of 2 1 key-value pairs, that is, all key-value pairs are grouped into groups of 2 key-value pairs each, and a total of groups are stored, where is the ceiling function.
[0055] And so on, in the (l + 1)-th original storage module, multiple key-value pairs in the database are grouped and stored in groups of 2 l key-value pairs, that is, all key-value pairs are grouped into groups of 2 l key-value pairs each, and a total of groups are stored.
[0056] In an optional implementation, the first original storage module is denoted as sub-id:0, the second original storage module is denoted as sub-id:1, and the (l + 1)-th original storage module is denoted as sub-id:l.
[0057] In an optional implementation, if the maximum length a of the range query is unknown, then the value of l is such that 2 lThe largest positive integer less than or equal to N, and group and store multiple key-value pairs in the database according to the value of l to obtain l + 1 original storage modules.
[0058] Step 2: Perform duplicate addition processing and virtual keyword addition processing on each original storage module to obtain the final storage module;
[0059] In an optional implementation manner, Step 2 includes:
[0060] Step 2.1: According to the access frequency of each key-value pair in the database, add corresponding duplicates to the key-value pairs in each original storage module;
[0061] Among them, after adding corresponding duplicates to the key-value pairs in each original storage module, the number of duplicates of the key-value pair is R(k) = [π(k) * n], where π(k) represents the access frequency of the key-value pair k, and π(k) is a known parameter obtained according to the database access history.
[0062] In this embodiment, duplicates are added to the corresponding key-value pairs according to the high and low access frequencies of the key-value pairs in the database, that is, the higher the access frequency, the more duplicates are added. Through the above operations, the access frequencies of these key-value pairs can be dispersed. When an access request arrives, a copy will be randomly selected for access, so that the final access distribution reaches a uniform distribution.
[0063] It should be noted that after adding corresponding duplicates to the key-value pairs in the original storage module, the total number of duplicates n' of all key-value pairs in this storage module is less than or equal to 2n.
[0064] Step 2.2: Use a random function to add virtual keywords to the original storage module after adding duplicates to obtain the final storage module.
[0065] Among them, the sum of the number of duplicates of all key-value pairs and the number of virtual keywords in each final storage module is equal to 2n, where n represents the total number of key-value pairs in the original storage module corresponding to the final storage module.
[0066] After the duplicate addition processing, for different original storage modules, the total number of duplicates n' of all key-value pairs in them is different. Since the attacker may learn some distribution information from n', this leaks information about the distribution. To avoid this leakage, virtual keyword addition processing is used so that the total number of all duplicates (that is, the sum of the number of duplicates of all key-value pairs and the number of virtual keywords) of each final storage module is always 2n. Therefore, regardless of the access frequency, the total number of all duplicates is always exactly 2n. When an access request comes, by mixing false queries and true queries in the same proportion, a uniform distribution of access can be ensured.
[0067] Step 3: Calculate the copy false access frequency of each key-value pair copy in each final storage module;
[0068] In an optional implementation manner, calculate the copy false access frequency of each key-value pair in each final storage module according to the following formula:
[0069]
[0070] where, π(k) represents the access frequency of key-value pair k, R(k) represents the number of copies of key-value pair k in the final storage module, and π f (k,j) represents the copy false access frequency of the j-th copy of key-value pair k in the final storage module, δ represents a probability constant, and 0 < δ ≤ 1.
[0071] It should be noted that a complementary false access distribution is calculated on the copies in the final storage module using formula (1), such that the sum of the probabilities of false access and true access of any given copy is equal to where, 2n represents the total number of all copies in the final storage module. By adding false access in this way, it can always be ensured that the probabilities of accessing any keyword are equal.
[0072] Specifically, by selecting a probability constant δ, 0 < δ ≤ 1, in this embodiment, δ is taken as 0.5, and then π is made f so that the probability of accessing any copy (k, j) in the final storage module is equal to and this probability is a convex combination of the probability of truly accessing the copy and the probability of performing a false access.
[0073] Step 4: Select the final storage module for the query according to the range query length of the received query access request, decompose the query access request into two sub-query access requests, query the two sub-query access requests respectively according to the selected final storage module to obtain corresponding sub-query results, and compare the keywords corresponding to the two sub-query results with the keyword corresponding to the query access request to obtain the query result of the query access request;
[0074] Specifically, the process of querying the received query access request is as Figure 4 shown in the query flow chart of the query access request. In an optional implementation manner, Step 4 includes:
[0075] Step 4.1: Calculate the range query length b of the received query access request, confirm the l value that satisfies 2 l-1 < b < 2 l and select the final storage module corresponding to the (l + 1)-th original storage module for query according to the l value;
[0076] Step 4.2: Decompose the query access request into point query access requests corresponding to the range endpoints according to the range of the query access request, and use them as two sub-query access requests;
[0077] Optionally, decompose the known range query into point query access requests corresponding to the left starting point left-key and the right ending point right-key, and use them as two sub-query access requests.
[0078] Step 4.3: Query the two sub-query access requests respectively according to the selected final storage module to obtain corresponding sub-query results;
[0079] Among them, during the process of querying the sub-query access request, randomly generate a false access request according to the replica false access frequency, mix the false access request with the sub-query access request for query batch processing, and obtain the corresponding sub-query result.
[0080] The specific process of querying the sub-query access request is as Figure 3 shown in the query flow chart of the sub-query access request. In an optional implementation manner, it includes the following steps:
[0081] Step a: Randomly generate a false access request according to the replica false access frequency, mix the false access request with the sub-query access request to form a batch of access request groups of a preset size;
[0082] In an optional implementation manner, mix the false access request with the sub-query access request to form a batch of access request groups with a batch size B = 3, that is, in the formed batch of access request groups, there is one real access request (sub-query access request) and two false access requests.
[0083] Step b: Query the access requests in the access request group and retain the query results of the sub-query access requests.
[0084] Exemplarily, when the sub-query access request is an access request for the keyword K, toss a coin with the probabilities of heads and tails being δ and 1 - δ respectively. If heads appears, list a real access request according to the real access distribution π of the replicas in the final storage module. If tails appears, list a false access request according to the false access distribution π f of the replicas in the final storage module until a batch of access request groups with a batch size B = 3 is formed, and then query the access requests in the access request group and retain the query results of the real access requests.
[0085] Step 4.4: Compare the keywords corresponding to each value in the two sub-query results with the range of the query access request. If the keyword corresponding to the value is within the range of the query access request, keep the value; if the keyword corresponding to the value is not within the range of the query access request, delete the value. Use all the retained values as the query result of the query access request.
[0086] The range query method for protecting data access patterns based on uniform access frequency in this embodiment utilizes the method of uniform access distribution frequency to achieve a uniform distribution of the access frequencies of data blocks in the database, and has a strong security and privacy protection function. Moreover, it can quickly implement range queries, and can search in the stored data according to the start and end points of the range query, improving the query efficiency. Compared with the range query without providing data access pattern protection, its network communication overhead ratio is at the constant level, and it has high query performance.
[0087] Embodiment 2
[0088] This embodiment specifically illustrates the process of the range query method for protecting data access patterns based on uniform access frequency in Embodiment 1 through simulation experiments.
[0089] In the simulation, it is set that the plaintext data in the database includes N = 16 key-value pairs. Correspondingly, KV = {(K m , V m )} is:
[0090] {(0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11),(12,12),(13,13),(14,14),(15,15)}.
[0091] Among them, the access frequency assigned to each key-value pair is 0.125, 0.0625, 0.03125, 0.03125, 0.1, 0.05, 0.05, 0.2, 0.0625, 0.03125, 0.03125, 0.025, 0.05, 0.05, 0.05, 0.05.
[0092] First, group and store these 16 key-value pairs according to Step 1. A total of 5 copies need to be stored, and 4 original storage modules are obtained, denoted as sub-id: 0; sub-id: 1; sub-id: 2; sub-id: 3; sub-id: 4.
[0093] Among them, in sub-id: 0, with 2 0One KV pair (key-value pair) forms a group, that is, they are grouped and stored in the form of one group per one, namely, all data needs to be stored once. Store the data with storage keywords key being 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
[0094] In sub-id: 1, with 2 1 KV pairs (key-value pairs) as a group, that is, they are grouped and stored in the form of two groups per one, and store the data with storage keywords key being 0, 2, 4, 6, 8, 10, 12, 14.
[0095] In sub-id: 2, with 2 2 KV pairs (key-value pairs) as a group, that is, they are grouped and stored in the form of four groups per one, and store the data with storage keywords key being 0, 4, 8, 12.
[0096] In sub-id: 3, with 2 3 KV pairs (key-value pairs) as a group, that is, they are grouped and stored in the form of eight groups per one, and store the data with storage keywords key being 0, 8.
[0097] In sub-id: 4, with 2 4 KV pairs (key-value pairs) as a group, that is, they are grouped and stored in the form of sixteen groups per one, and store the data with storage keyword key being 0.
[0098] Secondly, perform the copy addition process on the data stored under each sub-id according to Step 2. Specifically, for the data stored under each sub-id according to the access frequency π(k), calculate the number of copies of the key-value pairs after adding the corresponding copies, and then copy the corresponding copies.
[0099] Among them, under sub-id: 0, the number of copies corresponding to 16 keyword keys are 2, 1, 1, 1, 2, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1 respectively; under sub-id: 1, the number of copies corresponding to 8 keyword keys are 2, 1, 2, 2, 1, 1, 1, 1 respectively; under sub-id: 2, the number of copies corresponding to 4 keyword keys are 1, 2, 1, 1 respectively; under sub-id: 3, the number of copies corresponding to 2 keyword keys are 2, 1 respectively; under sub-id: 4, the number of copies corresponding to 1 keyword key is 1.
[0100] Then, perform the virtual keyword addition process on the data stored under each sub-id after adding copies according to Step 2. Specifically, use a random function to generate a virtual keyword for the data stored under each sub-id after adding copies.
[0101] Among them, under sub-id: 0, the virtual keyword key is 3112378623742493, and the number of copies is 11; under sub-id: 1, the virtual keyword key is 3112378623742493, and the number of copies is 5; under sub-id: 2, the virtual keyword key is 3112378623742493, and the number of copies is 3; under sub-id: 3, the virtual keyword key is 3112378623742493, and the number of copies is 1; under sub-id: 4, the virtual keyword key is 3112378623742493, and the number of copies is 1.
[0102] Next, calculate the false access frequency of each key-value pair in each sub-id according to the copy false access frequency calculation formula in step 4, where the value of δ is 0.5.
[0103] Through the above operations, the information stored in the final storage module is summarized as shown in Tables 1 - 5.
[0104] Table 1. Storage information for sub-id: 0
[0105]
[0106]
[0107] Table 2. Storage information for sub-id: 1
[0108]
[0109] Table 3. Storage information for sub-id: 2
[0110]
[0111]
[0112] Table 4. Storage information for sub-id: 3
[0113]
[0114] Table 5. Storage information for sub-id: 4
[0115]
[0116] Finally, perform a range query from 11 to 14 according to step 4. In the actual code execution, it will first calculate that the range span from 11 to 14 is 4, satisfying 2 1 <4 ≤ 2 2, it is necessary to search for the data under sub - id: 2. In sub - id: 2, the keywords key include 0, 4, 8, 12 and virtual keywords. Obviously, the range of 11 - 14 is after the data starting with 8 and the data starting with 12. Therefore, two real requests (two sub - query access requests) will be generated, one with key = 8 and the other with key = 12. Taking an actual operation as an example, according to probability, 4 virtual access requests are also generated, namely key = 3112378623742493 twice, key = 4 once, and key = 12 once. At this time, no processing is done for the false access requests, and for the real access requests, 8, 9, 10, 11, 12, 13, 14, 15 are returned and compared with the 11 - 14 of the real requests. The values 11, 12, 13, 14 corresponding to the keywords required by the real requests are returned, and the data is successfully returned.
[0117] It should be noted that in this article, relational terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the term "comprising", "including" or any other variant is intended to cover non - exclusive inclusion, so that an article or device comprising a series of elements not only includes those elements, but also includes other elements not explicitly listed. Without further limitation, an element defined by the statement "comprising an..." does not exclude the existence of additional identical elements in the article or device comprising the said element. "Connection" or "connected" and other similar words are not limited to physical or mechanical connection, but may include electrical connection, whether direct or indirect. The orientation or positional relationship indicated by "up", "down", "left", "right", etc. is based on the orientation or positional relationship shown in the drawings, and is only for the convenience of describing the present invention and simplifying the description, rather than indicating or implying that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore cannot be understood as a limitation to the present invention.
[0118] The above content is a further detailed description of the present invention in combination with specific preferred embodiments, and it cannot be determined that the specific implementation of the present invention is only limited to these descriptions. For those of ordinary skill in the technical field to which the present invention belongs, without departing from the concept of the present invention, several simple deductions or substitutions can still be made, and all should be regarded as belonging to the protection scope of the present invention.
Claims
1. A range query method for protecting data access patterns based on uniform access frequencies, characterized in that, Including: Step 1: Group and store multiple key-value pairs in the database according to the maximum length of the range query, obtaining several original storage modules; Step 2: Perform copy addition processing and virtual keyword addition processing on each of the original storage modules to obtain final storage modules. Among them, the sum of the number of copies of all key-value pairs and the number of virtual keywords in each final storage module is equal to 2n, where n represents the total number of key-value pairs in the original storage module corresponding to the final storage module; Step 3: Calculate the copy false access frequency of each key-value pair copy in each of the final storage modules; Step 4: According to the range query length of the received query access request, select the final storage module for the query, decompose the query access request into two sub-query access requests, perform queries on the two sub-query access requests respectively according to the selected final storage module to obtain corresponding sub-query results, and compare the keywords corresponding to the two sub-query results with the keyword corresponding to the query access request to obtain the query result of the query access request; Among them, during the query process of the sub-query access request, a false access request is randomly generated according to the copy false access frequency, and the false access request and the sub-query access request are mixed for query batch processing to obtain the corresponding sub-query result.
2. The range query method for protecting data access patterns based on uniform access frequencies according to claim 1, characterized in that, The said Step 1 includes: Step 1.1: Set l according to the maximum length a of the range query, such that the maximum length a of the range query satisfies 2 l-1 <a<2 l , where l is an integer greater than 0; Step 1.2: Group and store multiple key-value pairs in the database according to the value of l, obtaining l + 1 original storage modules; Among them, in the i-th original storage module, multiple key-value pairs in the database are grouped and stored in groups of 2 i-1 key-value pairs, where i = 1, 2, … l + 1.
3. The method for querying the protection scope of a data access pattern based on uniform access frequency according to claim 2, wherein If the maximum length a of the range query is unknown, then l takes the value of the largest positive integer that satisfies 2 l ≤ N, and the multiple key-value pairs in the database are grouped and stored according to the value of l, obtaining l + 1 original storage modules.
4. The range query method for protecting data access patterns based on uniform access frequencies according to claim 1, wherein The said Step 2 includes: Step 2.1: According to the access frequency of each key-value pair in the database, add corresponding copies to the key-value pairs in each of the original storage modules; Step 2.2: Add virtual keywords to the original storage module after adding copies by using a random function to obtain the final storage module.
5. The method for querying the protection scope of a data access pattern based on uniform access frequency according to claim 4, characterized in that, In Step 2.1, after adding corresponding copies to the key-value pairs in each original storage module, the number of copies of the key-value pair is R(k) = [π(k) * n], where π(k) represents the access frequency of the key-value pair k.
6. The method for querying the protection scope of a data access pattern based on uniform access frequency according to claim 1, wherein The said Step 3 includes: Calculate the copy false access frequency of each key-value pair copy in each final storage module according to the following formula: Among them, π(k) represents the access frequency of the key-value pair k, R(k) represents the number of copies of the key-value pair k in the final storage module, and π f (k, j) represents the false access frequency of the j-th copy of the key-value pair k in the final storage module, and δ represents a probability constant, where 0 < δ ≤ 1.
7. The method for querying the protection scope of a data access pattern based on uniform access frequency according to claim 1, characterized in that The said Step 4 includes: Step 4.1: Calculate the range query length b of the received query access request, and confirm that the l value satisfying 2 l-1 <b<2 l is satisfied. Select the corresponding final storage module of the (l + 1)-th original storage module according to the l value for query; Step 4.2: According to the range of the query access request, decompose the query access request into point query access requests corresponding to the range endpoints as two sub-query access requests; Step 4.3: Perform queries on the two sub-query access requests respectively according to the selected final storage module to obtain corresponding sub-query results; Step 4.4: Compare the keyword corresponding to each value in the two sub-query results with the range of the query access request. If the keyword corresponding to the value is within the range of the query access request, retain the value; if the keyword corresponding to the value is not within the range of the query access request, delete the value, and use all the retained values as the query result of the query access request.
8. The range query method for protecting data access pattern based on uniform access frequency according to claim 1, characterized in that During the process of querying the subquery access request, a fake access request is randomly generated according to the fake access frequency of the replica, and the fake access request is mixed with the subquery access request for query batch processing to obtain the corresponding subquery result, including: Step a: Randomly generate a fake access request according to the fake access frequency of the replica, and mix the fake access request with the subquery access request to form a batch of access request groups of a preset size; Step b: Query the access requests in the access request group and retain the query results of the subquery access requests.
Citation Information
Patent Citations
Access log storage and query method, device and system
CN108319608A
Reconciling foreign key references and table security policies
CN109219807A