Data operation method and device based on inadvertent search tree, data system

By optimizing the data operation process of the inadvertent search tree on the client side and utilizing operation caching and tree caching, the number of calls to the ORAM interface is reduced, solving the problem of low efficiency of OST in encrypted databases and achieving more efficient data operations.

CN120067154BActive Publication Date: 2025-12-19HANGZHOU HIGH-TECH ZONE (BINJIANG) INSTITUTE OF BLOCKCHAIN & DATA SECURITY +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510059416.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-14
Publication Date
2025-12-19
Estimated Expiration
2045-01-14

AI Technical Summary

Technical Problem

The efficiency of existing Unintentional Search Trees (OSTs) in encrypted databases has become a bottleneck for practical deployment, especially in wide area network environments where frequent client-server interactions lead to significant operational delays and overhead.

Method used

By setting up operation caching and tree caching on the client side, the data operation process for unintentional tree searches is optimized, reducing the number of calls to the ORAM interface. This includes completing tree node-related operations locally and writing data back to ORAM when necessary.

Benefits of technology

It significantly reduces the number of interactions between the client and the server, lowers the latency of data operations, and improves the operational efficiency of encrypted databases, especially in wide area network environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120067154B_ABST
    Figure CN120067154B_ABST
Patent Text Reader

Abstract

The embodiment of the application is suitable for the technical field of data privacy protection and secure storage, and provides a data operation method and device based on an oblivious search tree and a data system. The method comprises the following steps: in response to a received data operation, obtaining an OST path corresponding to the data operation from an ORAM, and storing data on the OST path to a tree cache; uploading to-be-written-back data cached in an operation cache in a response process of a previous data operation to the ORAM, performing a tree node related operation on the tree cache locally, and storing data in the tree cache as the to-be-written-back data to the operation cache in a case where the tree node related operation is completed; and emptying the data in the tree cache, so that the number of times of calling an ORAM interface is reduced when a client and a server interact with an encrypted database, the delay of responding to a data operation is reduced, and the interaction efficiency of the client and the server with the encrypted database is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The embodiment of the present application belongs to the technical field of data privacy protection and secure storage, and particularly relates to a data operation method and device based on an oblivious search tree and a data system. BACKGROUND

[0002] With the rapid development of cloud computing and the growing demand for data storage, database outsourcing has become a widely adopted model. By hosting databases with cloud service providers, data owners do not need to build and maintain storage facilities themselves, but only need to pay fees according to actual needs. This model greatly improves the convenience and cost-effectiveness of data storage and management. However, this convenience is accompanied by significant security challenges, especially in terms of data privacy protection. Untrusted cloud service providers may spy on user data or leak sensitive information.

[0003] To address these challenges, encrypted databases (EDB) have gradually become a hot topic in research and practice. Encrypted databases protect data privacy and security during storage and query processes through cryptography or trusted execution environments (TEE). Obliviousness is a core feature that enables higher levels of data privacy protection. Obliviousness ensures that during the query process, an untrusted server cannot infer the query content by observing the access pattern, thereby effectively protecting user privacy.

[0004] Oblivious search trees (OST) are a core technology for implementing tree-based indexes in encrypted databases (EDB). However, its efficiency has long been a major bottleneck for practical deployment. SUMMARY

[0005] Therefore, the embodiment of the present application provides a data operation method and device based on an oblivious search tree and a data system to improve the operation efficiency of encrypted databases and significantly reduce the time required for data operations on encrypted databases.

[0006] The first aspect of the embodiment of the present application provides a data operation method based on an oblivious search tree, applied to a client, wherein the client is connected to a server, and the server is deployed with a tree-shaped storage structure ORAM supporting oblivious random access; the client is provided with an operation cache and a tree cache; the operation cache is used to cache data to be written back to the ORAM after each response to a data operation; and the method comprises:

[0007] in response to the received data operation, obtaining an OST path corresponding to the data operation from the ORAM, storing data on the OST path to the tree cache; uploading to-be-written-back data cached in the operation cache during a response process of a previous data operation to the ORAM;

[0008] performing a tree node related operation on the tree cache locally, and storing data in the tree cache as the to-be-written-back data to the operation cache in a case where the tree node related operation is completed;

[0009] emptying data in the tree cache.

[0010] In some implementations of the first aspect, the response to the received data operation, obtaining an OST path corresponding to the data operation from the ORAM, storing data on the OST path to the tree cache; uploading to-be-written-back data cached in the operation cache during a response process of a previous data operation to the ORAM, comprises:

[0011] repeating the following operations on to-be-downloaded data starting from a root node of the OST path:

[0012] if the operation cache does not have the to-be-downloaded data, reading the to-be-downloaded data from the ORAM and writing the read to-be-downloaded data to the tree cache; if the operation cache has the to-be-downloaded data, directly reading the to-be-downloaded data from the operation cache, writing the to-be-downloaded data to the tree cache, and reading a random data from the ORAM;

[0013] uploading one of the to-be-written-back data in the operation cache to the ORAM and deleting the uploaded to-be-written-back data from the operation cache;

[0014] determining new to-be-downloaded data according to target data corresponding to the data operation.

[0015] In some implementations of the first aspect, the determination of new to-be-downloaded data according to target data corresponding to the data operation comprises:

[0016] obtaining a value of a key of current to-be-downloaded data as a first value, and a value of a key of target data of the data operation as a second value;

[0017] if the first value is less than the second value, determining a right child node of the current to-be-downloaded data as the new to-be-downloaded data; if the first value is greater than the second value, determining a left child node of the current to-be-downloaded data as the new to-be-downloaded data.

[0018] In some implementations of the first aspect, if the to-be-downloaded data exists in the operation cache, the to-be-downloaded data is directly read from the operation cache, the to-be-downloaded data is written into the tree cache, and a random data is read from the ORAM, including:

[0019] If the to-be-downloaded data exists in the operation cache, the to-be-downloaded data is directly read from the operation cache, and a first random path is obtained from the ORAM by calling a first interface, the first random path being used for uploading one of the to-be-written-back data in the operation cache to the ORAM of the server by using the first random path;

[0020] The to-be-downloaded data is stored into the tree cache.

[0021] In some implementations of the first aspect, if the to-be-downloaded data does not exist in the operation cache, the to-be-downloaded data is read from the ORAM, and the read to-be-downloaded data is written into the tree cache, including:

[0022] If the to-be-downloaded data does not exist in the operation cache, a first interface is called to obtain the to-be-downloaded data from the ORAM by using a specified path; the specified path is a path of the to-be-downloaded data in the ORAM;

[0023] The to-be-downloaded data is stored into the tree cache.

[0024] In some implementations of the first aspect, the one of the to-be-written-back data in the operation cache is uploaded to the ORAM, and the uploaded to-be-written-back data is deleted from the operation cache, including:

[0025] A second interface is called to transmit one to-be-written-back data of the operation cache to the ORAM by using an ORAM path read by the first interface;

[0026] The data written back to the ORAM is deleted in the operation cache.

[0027] A second aspect of the embodiments of the present application provides another data operation method based on an involuntary search tree, applied to a server, the server being connected with a client, the server being deployed with a tree-shaped storage structure ORAM supporting involuntary random access; the client being provided with an operation cache and a tree cache; the operation cache being used for caching data to be written back to the ORAM after each response to a data operation; the method including:

[0028] In response to a request of the client, an OST path in the ORAM is sent to the client; the OST path corresponding to a data operation received by the client.

[0029] The client is configured to store data on the OST path to the tree cache; upload the data to be written back in the operation cache during the response process of the last data operation to the ORAM; perform tree node related operations on the tree cache locally, and store the data in the tree cache as the data to be written back to the operation cache in the case where the tree node related operations are completed; and empty the data in the tree cache.

[0030] A third aspect of the embodiments of the present application provides a data operation device based on an oblivious search tree, applied to a client, wherein the client is connected with a server, the server is deployed with a tree-shaped storage space ORAM supporting oblivious random access; the client is provided with an operation cache and a tree cache; the operation cache is configured to cache data to be written back to the ORAM after each data operation; and the device comprises:

[0031] A data operation response module, configured to, in response to a received data operation, obtain an OST path corresponding to the data operation from the ORAM, and store data on the OST path to the tree cache; and upload data to be written back in the operation cache during the response process of the last data operation to the ORAM.

[0032] A tree operation module, configured to perform tree node related operations on the tree cache locally, and store data in the tree cache as the data to be written back to the operation cache in the case where the tree node related operations are completed.

[0033] A tree cache emptying module, configured to empty the data in the tree cache.

[0034] A fourth aspect of the embodiments of the present application provides another data operation device based on an oblivious search tree, applied to a server, wherein the server is connected with a client, the server is deployed with a tree-shaped storage structure ORAM supporting oblivious random access; the client is provided with an operation cache and a tree cache; the operation cache is configured to cache data to be written back to the ORAM after each response to a data operation; and the device comprises:

[0035] An OST path sending module, configured to, in response to a request of the client, send an OST path in the ORAM to the client; the OST path corresponds to a data operation received by the client.

[0036] The client is configured to store data on the OST path to the tree cache; upload the data to be written back in the operation cache during the response process of the last data operation to the ORAM; perform tree node related operations on the tree cache locally, and store the data in the tree cache as the data to be written back to the operation cache in the case that the tree node related operations are completed; and empty the data in the tree cache.

[0037] The fifth aspect of the embodiment of the application provides a data system, which comprises a server and at least one client connected to the server; the server is provided with a tree-shaped storage structure ORAM supporting inadvertent random access; the client is provided with an operation cache and a tree cache; the operation cache is configured to cache data to be written back to the ORAM after each response to a data operation;

[0038] The server comprises an OST path sending module configured to send an OST path in the ORAM to the client in response to a request of the client; the OST path corresponds to a data operation received by the client;

[0039] The client comprises:

[0040] A data operation response module configured to obtain an OST path corresponding to a data operation from the ORAM in response to the received data operation, and store data on the OST path to the tree cache; and upload data to be written back in the operation cache during the response process of the last data operation to the ORAM;

[0041] A tree operation module configured to perform tree node related operations on the tree cache locally, and store data in the tree cache as the data to be written back to the operation cache in the case that the tree node related operations are completed;

[0042] A tree cache emptying module configured to empty the data in the tree cache.

[0043] The sixth aspect of the embodiment of the application provides an electronic device, which comprises a processor, a memory, and a computer program stored in the memory and executable on the processor; when the processor executes the computer program, the electronic device implements the data operation method based on the inadvertent search tree according to the first aspect.

[0044] The seventh aspect of the embodiment of the application provides a computer program product, which comprises a computer program; when the computer program is executed, the data operation method based on the inadvertent search tree according to the first aspect is executed.

[0045] An eighth aspect of the embodiments of the present application provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the data operation method based on the oblivious search tree as described in the first aspect.

[0046] The embodiments of the present application have the following beneficial effects:

[0047] In the embodiments of the present application, in response to the received data operation, the client requests the server to obtain the OST path corresponding to the data operation from the ORAM, and stores the data on the OST path to the tree cache. At the same time of the above process, the data to be written back stored in the operation cache in the last data operation process is uploaded to the ORAM of the server; the tree node related operation is performed on the tree cache locally, and in the case that the tree node related operation is completed, the data in the tree cache is stored to the operation cache as the data to be written back; the data in the tree cache is emptied, so as to realize the target data corresponding to the data operation is obtained while the data to be written back is transmitted to the ORAM of the server, the number of times of calling the ORAM related interface when the client and the server interact with the encrypted database is greatly reduced, the delay of responding to the data operation is reduced, and the interaction efficiency of the client and the server with the encrypted database is improved. BRIEF DESCRIPTION OF DRAWINGS

[0048] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the embodiments or prior art description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained without creative labor on the basis of these drawings.

[0049] Figure 1 is a path download schematic diagram in the related art;

[0050] Figure 2 is a path write-back schematic diagram in the related art;

[0051] Figure 3 is a schematic diagram of the data operation method based on the oblivious search tree provided by the embodiments of the present application;

[0052] Figure 4 is a path download and write-back schematic diagram provided by the embodiments of the present application;

[0053] Figure 5 is a schematic diagram of another data operation method based on the oblivious search tree provided by the embodiments of the present application;

[0054] Figure 6 is a schematic diagram of a data operation device based on an inadvertent search tree provided by an embodiment of the present application;

[0055] Figure 7 is a schematic diagram of another data operation device based on an inadvertent search tree provided by an embodiment of the present application;

[0056] Figure 8 is a schematic diagram of a data system provided by an embodiment of the present application;

[0057] Figure 9 is a schematic diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0058] In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular system configurations, techniques, etc., in order to provide a thorough understanding of the embodiments of the present application. However, it will be apparent to those skilled in the art that the present application can be practiced in other embodiments that depart from these specific details. In other instances, detailed descriptions of well-known methods, devices, circuits, and

[0059] It will be understood that the term "includes," "including," "comprises," and / or "comprising," when used in this specification, refers to presence of the stated features, integers, steps, operations, elements, and / or components but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0060] It is also to be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items, and that the term "at least one of" followed by a list of two or more items means any single one of the items in the list, and that the term "one or more of" followed by a list of two or more items means any single one or plurality of the items in the list.

[0061] As used in this specification and claims, the terms "if" and "when" can be interpreted to mean "upon" or "in response to determining," or "in response to detecting," depending on the context. Similarly, the phrase "if it is determined" or "if [a described condition or event] is detected" can be interpreted to mean "upon determining" or "in response to determining," or "upon detecting [the described condition or event]" or "in response to detecting [the described condition or event]," depending on the context.

[0062] In addition, the terms "first," "second," "third," etc. as used in this specification and the appended claims are used as identifiers for ease of understanding and are not intended to be taken literally or to indicate importance.

[0063] Reference within the specification of this application to "one embodiment" or "some embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the application. The appearances of the phrase "in one embodiment" or "in some embodiments" in various places within specified

[0064] The high interaction cost of OST operations is particularly pronounced in a Wide Area Network (WAN) environment. Due to the frequent interaction between the client and the server, the operation latency is significantly increased. Moreover, there is significant operation overhead in existing OST implementations, particularly in the path download and path writeback processes. Typically, these operations rely on the underlying ORAM's ReadAndRemove and Add interfaces. As shown in Figure 1 FIG. 1 shows a path download diagram in the related art.

[0065] Take data insertion as an example, in the path download process, i.e., the process of determining the insertion position, the client needs to call h times of ReadAndRemove and Add (where h is the maximum height of the OST tree). However, the Add call here is paired with ReadAndRemove to ensure security, and has no actual operation on the data of the OST tree itself. As shown in Figure 2 FIG. 2 shows a path writeback diagram in the related art. And in the stage of writing a path of the OST tree back to the server, h+1 times of ReadAndRemove and Add need to be called additionally, where the call of ReadAndRemove is only used to randomly read the ORAM path to match the subsequent Add operation, and also has no actual operation on the data of the OST tree itself. Obviously, the related art introduces significant redundancy. Embodiments of the present application greatly reduce the redundant call of the ReadAndRemove interface and the Add interface by adjusting the calling mode of the ReadAndRemove interface and the Add interface, and adjusting the processing flow locally.

[0066] The technical solutions of the present application will be described below through specific embodiments.

[0067] Reference is made to Figure 3, shows a schematic diagram of a data operation method based on an involuntary search tree provided in the application, applied to a client, the client is connected with a server, the server is deployed with a tree-shaped storage structure ORAM supporting involuntary random access; the client is provided with an operation cache and a tree cache; the operation cache is used to cache data to be written back to the ORAM after each response to a data operation;

[0068] The ORAM (involuntary random access machine) is a cryptographic primitive maintained by the client and the server, which is used to hide the specific access of the program to the memory through a pseudo-random access mode, including the accessed instructions, addresses and data, to protect the program privacy and data security, and prevent attackers from inferring sensitive information through observation of the access mode. The ORAM can be regarded as a kind of key-value storage, i.e. key-value ORAM, in which the key is a unique identifier and the value is an arbitrary data item; the ORAM supports two basic operations: read and write, the read operation returns the corresponding "value" according to the given "key"; the write operation updates or inserts a ("key", "value") pair according to the given "key" and "value".

[0069] The server can be deployed with ORAM for storing data, and the client can interact with the ORAM in the server based on the ORAM technology, such as data read and write.

[0070] The tree cache is used to temporarily store the data currently being processed locally in the client, supporting the insertion and rotation operations of the OST; the operation cache is used to temporarily store the data to be written back to the ORAM, i.e. the data to be written back, and is provided with a certain capacity limit. The two variables (Tk, Tp) maintained by the client are used to indicate the currently processed OST tree node, and before step 101 described below, (Tk, Tp) indicates the root node of the OST tree. Tk represents the key of the currently operated OST node, and Tp represents the path pointer of the tree node in the ORAM. Through (Tk, Tp), the position of the currently operated data to be downloaded can be located, and the subsequently processed data to be downloaded (new data to be downloaded) can be determined in combination with the position.

[0071] The embodiments of the application can specifically include the following steps:

[0072] Step 101, in response to the received data operation, obtaining the OST path corresponding to the data operation from the ORAM, storing the data on the OST path to the tree cache; uploading the data to be written back cached in the operation cache in the response process of the last data operation to the ORAM;

[0073] Before receiving the data operation, the tree cache needs to be emptied to avoid subsequent incorrect operations on the OST, and the capacity of the operation cache needs to be set according to the height of the OST tree to avoid overflow of the operation cache.

[0074] Taking the OST tree as an example of the AVL structure OST, the capacity of the operation cache can be set to h+1, h being the height of the AVL structure OST.

[0075] The data operation can be one of an insertion operation, a deletion operation, and an update operation.

[0076] After receiving the data operation, the client can generate a request for the data operation and send the request to the server. The client receives the OST path in the ORAM sent by the server in response to the request, so that the client can obtain the OST path corresponding to the current data operation from the ORAM. At the same time, by calling the first interface and the second interface according to the preset number of times, the data to be written back cached in the operation cache in the response process of the last data operation is transmitted to the ORAM, that is, part of the data to be written back is written back to the server. The data on the OST path corresponding to the operation data is obtained, and the data on the OST path is stored to the tree cache.

[0077] For example, the data operation is an insertion operation, that is, the target data is data to be inserted.

[0078] The preset number can be determined according to the tree structure of the OST and the height of the OST tree, as long as a predicted number of times can satisfy traversal of the complete OST path.

[0079] As an example, the tree structure of the OST is an AVL (that is, the OST is an AVL tree), and the preset number can be h+1, h being the height of the AVL tree.

[0080] As an example, the first interface is a ReadAndRemove interface, and the second interface is an Add interface. The first interface and the second interface are two core interfaces for realizing inadvertent access in the ORAM. The ReadAndRemove interface is used to read all data blocks on a specified path from the ORAM structure and obtain the target data from the path. Through the ReadAndRemove, the client can obtain all data nodes of a path in the ORAM structure without exposing the specific access target. Matching the ReadAndRemove, the Add interface is used to write the data back to the path.

[0081] As another example, the first interface can also be an interface other than the ReadAndRemove interface, as long as it can read the data blocks on the specified path from the ORAM structure. Similarly, the second interface can also be an interface other than the Add interface, as long as it can write the data back to the ORAM from the ORAM.

[0082] Step 102, performing tree node related operations on the tree cache locally, and storing the data in the tree cache as the to-be-written-back data in the operation cache in a case where the tree node related operations are completed;

[0083] Performing tree node related operations on the tree cache locally at the client side, for example, insertion, balancing, deletion, updating, etc., and determining the data in the tree cache as to-be-written-back data after the tree node related operations are completed, and storing the to-be-written-back data in the operation cache.

[0084] Through data interaction between the tree cache and the operation cache, the data on which the tree related operations are completed can be quickly determined as to-be-written-back data.

[0085] After step 102 performs a single insertion or deletion operation, the OST path after the operation is not immediately written back to the ORAM of the server, but is postponed to step 101 in the next insertion or deletion operation, which reduces the interaction between the client and the server based on the first interface and the second interface, and avoids the need to call the first interface and the second interface multiple times to complete the execution of a single insertion or deletion operation as in the related art.

[0086] Taking an AVL tree with an OST tree as an example, the number of calls to the first interface and the second interface in the existing scheme can be reduced from 2h+1 to h+1, which greatly reduces the calls to the first interface and the second interface and reduces system overhead.

[0087] Since the number of calls to the first interface and the second interface is reduced by nearly half, the delay of data operation can be reduced by nearly 50% in the embodiment of the application, which greatly improves the efficiency of accessing the encrypted database using the first interface and the second interface.

[0088] Step 103, emptying the data in the tree cache.

[0089] After storing the data in the tree cache in the operation cache, the data in the tree cache can be emptied to restore the tree cache state to the initial state and wait for the next data operation.

[0090] In the embodiments of the present application, in response to the received data operation, the client requests the server to obtain the OST path corresponding to the data operation from the ORAM, and stores the data on the obtained OST path to the tree cache. At the same time of the above process, the to-be-written-back data stored in the operation cache in the last data operation process is uploaded to the ORAM of the server; the tree node related operation is performed on the tree cache locally, and in the case that the tree node related operation is completed, the data in the tree cache is stored to the operation cache as the to-be-written-back data; the data in the tree cache is emptied, so that the target data corresponding to the data operation is obtained while the to-be-written-back data is transmitted to the ORAM of the server, the number of times of calling the ORAM related interface when the client and the server interact with the encrypted database is greatly reduced, the delay of responding to the data operation is reduced, and the interaction efficiency of the client and the server with the encrypted database is improved.

[0091] In some implementations of the embodiments of the present application, step 101 comprises:

[0092] The to-be-downloaded data starting from the root node of the OST path is repeatedly executed as follows:

[0093] If the to-be-downloaded data does not exist in the operation cache, the to-be-downloaded data is read from the ORAM, and the read to-be-downloaded data is written into the tree cache; if the to-be-downloaded data exists in the operation cache, the to-be-downloaded data is directly read from the operation cache, the to-be-downloaded data is written into the tree cache, and a random data is read from the ORAM;

[0094] One of the to-be-written-back data in the operation cache is uploaded to the ORAM, and the uploaded to-be-written-back data is deleted from the operation cache;

[0095] According to the target data corresponding to the data operation, new to-be-downloaded data is determined.

[0096] According to the to-be-downloaded data starting from the root node of the OST tree, the corresponding operation is repeatedly executed. It is judged whether the to-be-written-back data corresponding to the node path exists in the operation cache. There are two cases, if the to-be-downloaded data exists in the operation cache, the data is directly read from the operation cache, written into the tree cache, and a random data is read from the server ORAM. If the to-be-downloaded data does not exist in the operation cache, the to-be-downloaded data is read from the server ORAM, and the read to-be-downloaded data is written into the tree cache. According to the target data corresponding to the data operation, new to-be-downloaded data is determined.

[0097] obtaining an OST path corresponding to the data operation from the ORAM, and uploading the data to be written back stored in the operation cache in the last data operation process to the ORAM of the server.

[0098] In some implementations of the embodiments of the present application, the determining of the new data to be downloaded according to the target data of the data operation comprises:

[0099] obtaining a value of a key of the current data to be downloaded as a first value, and a value of a key of the target data of the data operation as a second value;

[0100] if the first value is less than the second value, determining a right child node of the current data to be downloaded as the new data to be downloaded; and if the first value is greater than the second value, determining a left child node of the current data to be downloaded as the new data to be downloaded.

[0101] determining the next data to be downloaded (i.e., the new data to be downloaded) by comparing the value of the key of the current data node and the value of the key of the operation target data.

[0102] In some implementations of the embodiments of the present application, if the data to be downloaded exists in the operation cache, the directly reading the data to be downloaded from the operation cache, the writing the data to be downloaded into the tree cache, and the reading a random data from the ORAM comprise: if the data to be downloaded exists in the operation cache, directly reading the data to be downloaded from the operation cache, and calling a first interface to obtain a first random path from the ORAM, the first random path being used for uploading one of the data to be written back in the operation cache to the ORAM of the server by using the first random path; and storing the data to be downloaded into the tree cache.

[0103] if the data to be written back corresponding to the node path exists in the operation cache, calling a first interface to obtain a first random path and data on the path (i.e., randomly reading data) to maintain data access randomness, and using a second interface to transmit the data to be written back to the ORAM according to the first random path to implement the transmission of the data to be written back corresponding to the last data operation to the server.

[0104] In some implementations of the embodiments of the present application, if the data to be downloaded does not exist in the operation cache, reading the data to be downloaded from the ORAM and writing the read data to be downloaded into the tree cache comprise: if the data to be downloaded does not exist in the operation cache, calling a first interface to obtain the data to be downloaded from the ORAM by using a specified path; the specified path being a path of the data to be downloaded in the ORAM; and storing the data to be downloaded into the tree cache.

[0105] If the write-back data corresponding to the node path does not exist in the operation cache, a specified path corresponding to a variable Tp in the current tree node is obtained, the specified path being a random path corresponding to Tp, and the current to-be-downloaded data is obtained through the specified path.

[0106] In some implementations of the embodiments of the present application, the uploading of one of the write-back data in the operation cache to the ORAM and the deletion of the uploaded write-back data from the operation cache comprises: calling a second interface to transmit the one write-back data in the operation cache to the ORAM in the ORAM path read by the first interface; and deleting the data written back to the ORAM from the operation cache.

[0107] The second interface is called to transmit the one write-back data in the operation cache to the ORAM in the ORAM path read by the first interface; and the to-be-downloaded data that has been written back to the ORAM is deleted from the operation cache, so that the to-be-downloaded data corresponding to the last data operation is written back to the ORAM in turn.

[0108] In some implementations of the embodiments of the present application, since there can be a lot of data in the client, part of the data can be taken as a to-be-processed data set, and the OST tree can be constructed by interacting with the server for the to-be-processed data set.

[0109] The tree structure of the OST tree is selected according to the needs, such as an AVL tree, a B tree, a B+ tree, or a red-black tree, etc. These tree structures have different characteristics: for example, the AVL tree is a self-balancing binary search tree, which is suitable for scenarios of frequent lookup and insertion; the B tree is a multi-way balanced search tree, which is suitable for disk storage and large amounts of data; the B+ tree is a variant of the B tree, which is suitable for databases and file systems; and the red-black tree is an approximately balanced binary search tree, which is suitable for insertion, deletion, and lookup operations.

[0110] In some implementations of the embodiments of the present application, before the uploading of the to-be-written-back data cached in the operation cache during the response process of the last data operation to the ORAM, the method further comprises: determining the tree height of the OST tree; and setting the operation cache capacity according to the tree height.

[0111] The tree height refers to the path length from the root node to the farthest leaf node. By setting the operation cache capacity according to the tree height, the overflow situation can be avoided while ensuring that the OST path length can be covered.

[0112] Below, taking the OST tree as an AVL tree and the data operation as an insertion operation as examples, embodiments of the present application are further described.

[0113] The client maintains two caches: an operation cache and a tree cache, wherein the operation cache is used to temporarily store records to be written back, and the tree cache is used to temporarily store records on the AVL path corresponding to the operation. The client maintains two variables (Tk, Tp) for indicating nodes in the AVL tree, which initially point to the root node of the AVL tree. Tk represents the key of the node, and Tp represents the corresponding path of the node in the oblivious random access machine (ORAM).

[0114] Before performing the data insertion, the tree cache of the client is empty, and the capacity of the operation cache is set to temporarily store a maximum of h+1 records to be written back.

[0115] The specific data insertion operation includes the following stages:

[0116] (1) Path download and write-back stage. When the user starts the insertion operation, the client completes the download of the AVL OST path through h+1 times of calling (O.ReadAndRemove, O.Add).

[0117] Wherein, O.ReadAndRemove represents the ReadAndRemove interface, O.Add represents the Add interface, and (O.ReadAndRemove, O.Add) represents sequentially calling the ReadAndRemove interface and the Add interface.

[0118] (2) Local processing stage. The client completes the insertion and balancing operations of the AVL tree in the local cache. All operations in this stage are completed locally on the client and do not involve interaction with the server.

[0119] (3) Update the caches by exchanging the contents of the operation cache and the tree cache, and empty the contents of the tree cache, so that the client returns to the state before the path download and write-back stage, and can process the next data operation.

[0120] Reference Figure 4 , a path download and write-back schematic diagram provided by an embodiment of the present application is shown, the path download and write-back stage, the path download and write-back are as shown in Figure 4 .

[0121] Wherein, for (1) the path download and write-back stage. The process of calling (O.ReadAndRemove, O.Add) reads a record in the AVL path corresponding to the current operation (through O.ReadAndRemove), and writes back a record on the AVL path corresponding to the last operation (through O.Add). This process includes the following steps:

[0122] (1.1) Check if the record to be read is cached in the operation cache:

[0123] a) If the record exists in the operation cache, remove the record from the operation cache and directly read it as the record to be read, call O.ReadAndRemove to read a random path to maintain the randomness of the access pattern;

[0124] b) If the record does not exist in the operation cache, call O.ReadAndRemove to read the specified path in ORAM (the path is determined by Tp), and then obtain the record to be read from the path through Tk.

[0125] (1.2) Write the record obtained in step (1.1) to the tree cache;

[0126] (1.3) Call O.Add to write a record cached in the operation cache back to ORAM (if the operation cache is empty at this time, O.Add still needs to be called), and delete this record from the operation cache;

[0127] (1.4) Determine the tree node to be read next according to the comparison result of the current node key value and the insertion record key value (this process follows the basic AVL search tree operation, that is, if the current node key value is less than the insertion record key value, recursively find the appropriate insertion point in the right subtree; if the current node key value is greater than the insertion record key value, recursively find the appropriate insertion point in the left subtree).

[0128] The insertion record key value is determined by the OST path corresponding to the insertion operation.

[0129] In actual scenarios, the embodiments of the present application can be widely applied to outsourcing database scenarios, especially in the field of privacy protection of encrypted databases. Assuming that a certain outsourcing database service provider provides data storage and query services for customers, the customer database may contain highly sensitive information such as transaction records, financial data, medical records, etc. In order to optimize the database performance while ensuring privacy security, the service provider needs to ensure the obliviousness in the data operation process. At the same time, in order to save the storage resources of the client, the service provider chooses to use the Oblivious Search Tree (OST) scheme. However, common database operations such as search, insertion and deletion usually require frequent client-server interaction, which significantly increases the communication overhead and processing delay, especially in a Wide Area Network (WAN) environment. In view of the above problems, the embodiments of the present application propose an optimized Oblivious Search Tree (OST) operation process. This method significantly reduces the number of interactions and communication overhead between the client and the server while strictly ensuring the privacy protection requirements. For example, when a large number of insertion or update operations need to be performed, the optimized process of the embodiments of the present application can effectively reduce the network delay and ensure the strict obliviousness requirement of the access pattern. In addition, the efficient operation process of the embodiments of the present application does not need to make large-scale changes to the existing encrypted database architecture, has good compatibility, and can be easily integrated into the existing system. Through the implementation of the embodiments of the present application, the service provider can not only provide more efficient database services, but also provide stronger privacy protection for customers, laying a solid foundation for the popularization and application of outsourcing database technology.

[0130] In the following, two actual application examples are used to further illustrate the effect of the embodiments of the present application:

[0131] First application example

[0132] In a certain implementation environment, the client and the database service provider run on two machines with the same configuration (system version, processor model, memory model, and hard disk model). The two machines are located in the same local area network. The client first encrypts the database and then uploads the encrypted database to the service provider. Initially, the database is empty, and then the data volume is increased to the target value preset by the experiment by inserting data items one by one. By comparing the Oblivious Search Tree scheme of the embodiments of the present application and the traditional Oblivious Search Tree scheme, the average time consumption of each insertion operation is compared. The Oblivious Random Access Machine (ORAM) uses the PathORAM scheme, where each bucket stores 4 blocks, and the capacity of the client's stash is limited to storing at most 7logn blocks, where n is the size of the database, i.e. the number of records contained in the database. Table 1 shows the running time of the two schemes under different database size scenarios.

[0133]

[0134] Table 1

[0135] As can be seen from Table 1, the OST scheme provided by the embodiments of the present application reduces the single insertion operation time by about 50% compared with the traditional OST scheme.

[0136] Second application example

[0137] The embodiments of the present application can be applied to encrypted database function dependency discovery. In a certain implementation environment, the client and the database service provider run on two configurations (identical machines in system version, processor model, memory model, and hard disk model). The two machines are located in the same local area network. The client encrypts each data item of an initial dynamic database containing n rows and m columns owned by the client using the AES / CBC algorithm, and the key length used is 128 bits. The client uploads the encrypted database to the service provider. The oblivious random access machine in the present scheme uses the PathORAM scheme, wherein 4 blocks are placed in each bucket, and the maximum number of blocks stored in the client's stash is 7logn, wherein n is the size of the database, i.e., the number of records contained in the database.

[0138] In different database size scenarios, the actual running time of the two schemes is as shown in Table 2.

[0139] Table 2.

[0140]

[0141] Table 2

[0142] As can be seen from Table 2, the OST scheme provided by the embodiments of the present application reduces the communication overhead and the computation time to half of the traditional scheme, greatly improving the performance and practicality of the function dependency discovery scheme. Therefore, the OST scheme provided by the embodiments of the present application has significant advantages in the actual application of the encrypted database, not only effectively reducing the resource consumption of the system, but also improving the efficiency and practicality of the scheme.

[0143] It should be noted that the size of the serial number of each step in the above embodiments does not mean the order of execution, and the execution order of each process should be determined according to its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0144] Reference Figure 5Fig. 6 shows a schematic diagram of another data operation method based on an oblivious search tree provided by an embodiment of the present application, applied to a server, wherein the server is connected with a client, and the server is deployed with a tree-shaped storage structure ORAM supporting oblivious random access; the client is provided with an operation cache and a tree cache; the operation cache is used to cache data to be written back to the ORAM after responding to each data operation; the method comprises the following steps:

[0145] In step 501, in response to a request of the client, an OST path in the ORAM is sent to the client; the OST path corresponds to a data operation received by the client;

[0146] The client is configured to store data on the OST path to the tree cache, upload data to be written back in the operation cache during a response process of the last data operation to the ORAM, perform tree node related operations on the tree cache locally, and store data in the tree cache as the data to be written back to the operation cache in a case where the tree node related operations are completed, and empty the data in the tree cache.

[0147] The client can generate a request for a data operation after receiving the data operation, and send the request to the server. The server can respond to the request to send an OST path to the client.

[0148] Reference is made to Figure 6 Fig. 7 shows a schematic diagram of a data operation device based on an oblivious search tree provided by an embodiment of the present application, applied to a client, wherein the client is connected with a server, and the server is deployed with a tree-shaped storage structure ORAM supporting oblivious random access; the client is provided with an operation cache and a tree cache; the operation cache is used to cache data to be written back to the ORAM after responding to each data operation; the device can specifically comprise the following modules:

[0149] A data operation response module 601 is configured to obtain an OST path corresponding to a data operation from the ORAM in response to the received data operation, and store data on the OST path to the tree cache; and upload data to be written back in the operation cache during a response process of the last data operation to the ORAM.

[0150] A tree operation module 602 is configured to perform tree node related operations on the tree cache locally, and store data in the tree cache as the data to be written back to the operation cache in a case where the tree node related operations are completed.

[0151] A tree cache emptying module 603 is configured to empty the data in the tree cache.

[0152] In some implementations of the embodiments of the present application, the data operation response module 601 is configured to repeatedly call the following sub-modules for the to-be-downloaded data starting from the root node of the OST path:

[0153] a data obtaining sub-module configured to read the to-be-downloaded data from the ORAM and write the read to-be-downloaded data to the tree cache if the to-be-downloaded data does not exist in the operation cache, and directly read the to-be-downloaded data from the operation cache, write the to-be-downloaded data to the tree cache, and read a random data from the ORAM if the to-be-downloaded data exists in the operation cache;

[0154] a data write-back sub-module configured to upload one of the to-be-written-back data in the operation cache to the ORAM and delete the uploaded to-be-written-back data from the operation cache;

[0155] a current to-be-downloaded data re-determining sub-module configured to determine new to-be-downloaded data according to the target data corresponding to the data operation.

[0156] In some implementations of the embodiments of the present application, the current to-be-downloaded data re-determining sub-module includes:

[0157] a key value determining unit configured to obtain a first value of a key of the current to-be-downloaded data and a second value of a key of the target data of the data operation;

[0158] a comparison unit configured to determine a right child node of the current to-be-downloaded data as the new to-be-downloaded data if the first value is less than the second value, and determine a left child node of the current to-be-downloaded data as the new to-be-downloaded data if the first value is greater than the second value.

[0159] In some implementations of the embodiments of the present application, the data obtaining sub-module includes:

[0160] a first obtaining unit configured to directly read the current to-be-downloaded data from the operation cache if the current to-be-downloaded data exists in the operation cache, and call a first interface to obtain a first random path from the ORAM, the first random path being used for uploading the to-be-written-back data in the operation cache to the ORAM of the server via the first random path;

[0161] a first storage unit configured to store the current to-be-downloaded data to the tree cache.

[0162] In some implementations of the embodiments of the present application, the data obtaining sub-module includes:

[0163] The second obtaining unit is configured to, if the current data to be downloaded does not exist in the operation cache, call a first interface to obtain the current data to be downloaded from the ORAM via a specified path; the specified path is a path of the current data to be downloaded in the ORAM.

[0164] The second storage unit is configured to store the current data to be downloaded into the tree cache.

[0165] In some implementation manners of the embodiment of the present application, the data write-back sub-module comprises:

[0166] The path obtaining unit is configured to call a second interface to transmit, to the ORAM, an ORAM path read by the first interface for one data to be written back in the operation cache.

[0167] The data write-back unit is configured to delete, in the operation cache, data that has been written back to the ORAM.

[0168] In some implementation manners of the embodiment of the present application, the apparatus further comprises:

[0169] The tree height determining module is configured to determine a tree height of the OST tree.

[0170] The operation cache capacity setting module is configured to set the operation cache capacity according to the tree height.

[0171] The embodiment of the present application provides a data operation apparatus based on an oblivious search tree, and each step in each method embodiment can be implemented by applying the apparatus.

[0172] For the apparatus embodiment, it is basically similar to the method embodiment, and thus is described more simply, and the related parts refer to the description in the method embodiment.

[0173] Reference Figure 7 Fig. 7 shows a schematic diagram of another data operation apparatus based on an oblivious search tree provided by the embodiment of the present application; the apparatus is applied to a server, the server is connected with a client, the server is deployed with a tree-shaped storage structure ORAM supporting oblivious random access; the client is provided with an operation cache and a tree cache; the operation cache is used to cache data to be written back to the ORAM after each response to a data operation; the apparatus comprises:

[0174] The OST path sending module 701 is configured to send an OST path in the ORAM to the client in response to a request of the client; the OST path corresponds to a data operation received by the client.

[0175] The client is configured to store data on the OST path to the tree cache; upload the data to be written back in the operation cache during the response process of the last data operation to the ORAM; perform tree node related operations on the tree cache locally, and store the data in the tree cache as the data to be written back to the operation cache in the case that the tree node related operations are completed; and empty the data in the tree cache.

[0176] With reference to Figure 8 , a data system provided by an embodiment of the present application is shown, which comprises a server and at least one client connected with the server; the server is deployed with a tree-shaped storage structure ORAM supporting inadvertent random access; the client is provided with an operation cache and a tree cache; the operation cache is configured to cache data to be written back to the ORAM after responding to each data operation;

[0177] The server comprises an OST path sending module configured to send an OST path in the ORAM to the client in response to a request of the client; the OST path corresponds to a data operation received by the client;

[0178] The client comprises:

[0179] A data operation response module configured to obtain an OST path corresponding to a received data operation from the ORAM, and store data on the OST path to the tree cache; and upload data to be written back in the operation cache during the response process of the last data operation to the ORAM;

[0180] A tree operation module configured to perform tree node related operations on the tree cache locally, and store data in the tree cache as the data to be written back to the operation cache in the case that the tree node related operations are completed;

[0181] A tree cache emptying module configured to empty the data in the tree cache.

[0182] For the system embodiment, it is basically similar to the method embodiment, so it is described more simply, and the related parts refer to the description in the method embodiment.

[0183] With reference to Figure 9 , a schematic diagram of an electronic device provided by an embodiment of the present application is shown. As shown in Figure 4As shown, the electronic device 900 in the embodiments of the present application includes a processor 910, a memory 920, and a computer program 921 stored in the memory 920 and executable on the processor 910. The processor 910 implements the steps in each of the embodiments of the above-mentioned data operation method based on the casual search tree when executing the computer program 921, for example Figure 3 the steps 101 to 103 as shown, or the function of the module 601 to 603 as shown, or the function of the module 701 as shown. Figure 5 the steps 501 as shown. Alternatively, the processor 910 implements the functions of each module / unit in each of the above-mentioned device embodiments when executing the computer program 921, for example Figure 6 the functions of the modules 601 to 603 as shown, or the function of the module 701 as shown. Figure 7 the function of the module 701 as shown.

[0184] For example, the computer program 921 can be divided into one or more modules / units, which are stored in the memory 920 and executed by the processor 910 to complete the present application. The one or more modules / units can be a series of computer program instruction segments capable of completing a specific function, which can be used to describe the execution process of the computer program 921 in the electronic device 900.

[0185] The electronic device 900 can include, but is not limited to, the processor 910, the memory 920. Those skilled in the art can understand that Figure 9 The electronic device 900 is only an example and does not constitute a limitation on the electronic device 900, which can include more or fewer components than those shown, or combine certain components, or different components, for example, the electronic device 900 can also include an input / output device, a network access device, a bus, etc.

[0186] The processor 910 can be a central processing unit (CPU), and can also be other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor.

[0187] The memory 920 can be an internal storage unit of the electronic device 900, for example, a hard disk or a memory of the electronic device 900. The memory 920 can also be an external storage device of the electronic device 900, for example, a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, and the like equipped on the electronic device 900. Further, the memory 920 can include both an internal storage unit and an external storage device of the electronic device 900. The memory 920 is used to store the computer program 921 and other programs and data required by the electronic device 900. The memory 920 can also be used to temporarily store data that has been output or will be output.

[0188] The embodiments of the present application further disclose a computer readable storage medium, which stores a computer program. The computer program is executed by a processor to implement the data operation method based on an inadvertent search tree according to the foregoing embodiments.

[0189] The embodiments of the present application further disclose a computer program product, which comprises a computer program. The computer program is executed to make the data operation method based on an inadvertent search tree be executed according to the foregoing embodiments.

[0190] The above embodiments are only used to illustrate the technical solutions of the present application, rather than limit the same. Although the present application is described in detail with reference to the foregoing embodiments, those skilled in the art should understand that the technical solutions recorded in the foregoing embodiments can be modified, or some technical features can be replaced by equivalent features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present application, and should be included in the protection scope of the present application.

Claims

1. A data operation method based on an involuntary search tree, characterized by, The application is applied to a client connected with a server, and the server is deployed with a storage structure ORAM supporting an oblivious random access tree; The client is provided with an operation cache and a tree cache; The operation cache is used to cache data to be written back to the ORAM after each data operation response; the method comprises: In response to a received data operation, an OST path corresponding to the data operation is obtained from the ORAM, and data on the OST path is stored in the tree cache; data to be written back cached in the operation cache during the response process of the last data operation is uploaded to the ORAM; Local tree node related operations are performed on the tree cache, and in the case that the tree node related operations are completed, data in the tree cache is stored in the operation cache as the data to be written back; The data in the tree cache is emptied; The method comprises: Starting from the root node of the OST path, the following operations are repeatedly performed: If the operation cache does not exist, the data to be downloaded is read from the ORAM, and the read data to be downloaded is written into the tree cache; if the operation cache exists, the data to be downloaded is directly read from the operation cache, the data to be downloaded is written into the tree cache, and a random data is read from the ORAM; One of the data to be written back in the operation cache is uploaded to the ORAM, and the uploaded data to be written back is deleted from the operation cache; According to the target data corresponding to the data operation, new data to be downloaded is determined.

2. The method of claim 1, wherein, The method comprises: The value of the key of the current data to be downloaded is a first value, and the value of the key of the target data of the data operation is a second value; If the first value is less than the second value, the right child node of the current data to be downloaded is determined as the new data to be downloaded; if the first value is greater than the second value, the left child node of the current data to be downloaded is determined as the new data to be downloaded.

3. The method of claim 1, wherein, If the operation cache exists, the data to be downloaded is directly read from the operation cache, the data to be downloaded is written into the tree cache, and a random data is read from the ORAM, comprising: If the operation cache exists, the data to be downloaded is directly read from the operation cache, and a first random path is obtained from the ORAM by calling a first interface, the first random path is used to upload the data to be written back in the operation cache to the ORAM of the server by using the first random path; storing the data to be downloaded into the tree cache.

4. The method of claim 1, wherein, if the data to be downloaded does not exist in the operation cache, reading the data to be downloaded from the ORAM and writing the read data to be downloaded into the tree cache, comprising: if the data to be downloaded does not exist in the operation cache, calling a first interface to obtain the data to be downloaded from the ORAM at a specified path; the specified path is the path of the data to be downloaded in the ORAM; storing the data to be downloaded into the tree cache.

5. The method of claim 1, wherein, uploading one of the data to be written back in the operation cache to the ORAM and deleting the uploaded data to be written back from the operation cache, comprising: calling a second interface to transmit one data to be written back in the operation cache to the ORAM at the ORAM path read by the first interface; deleting the data written back to the ORAM in the operation cache.

6. A data operation method based on an involuntary search tree, characterized by, application to a server, the server is connected with a client, the server is deployed with a tree-shaped storage structure ORAM supporting oblivious random access; the client is provided with an operation cache and a tree cache; the operation cache is used to cache data to be written back to the ORAM after each response to a data operation; the method comprises: in response to a request of the client, sending an OST path in the ORAM to the client; the OST path corresponds to a data operation received by the client; the client is used to store data on the OST path to the tree cache; upload the data to be written back cached in the operation cache during the response process of the last data operation to the ORAM; perform tree node related operations on the tree cache locally, and store the data in the tree cache as the data to be written back to the operation cache in the case that the tree node related operations are completed; empty the data in the tree cache; wherein the client is specifically used to repeat the following operations on the data to be downloaded starting from the root node of the OST path: if the data to be downloaded does not exist in the operation cache, reading the data to be downloaded from the ORAM and writing the read data to be downloaded into the tree cache; if the data to be downloaded exists in the operation cache, directly reading the data to be downloaded from the operation cache, writing the data to be downloaded into the tree cache, and reading a random data from the ORAM; uploading one of the data to be written back in the operation cache to the ORAM and deleting the uploaded data to be written back from the operation cache; determining new data to be downloaded according to the target data corresponding to the data operation.

7. An apparatus for data operation based on an involuntary search tree, characterized by comprising: application to a server, the server is connected with a client, the server is deployed with a tree-shaped storage structure ORAM supporting oblivious random access; the client is provided with an operation cache and a tree cache; the operation cache is used to cache data to be written back to the ORAM after each response to a data operation; the device comprises: The OST path sending module is configured to send, in response to a request of the client, an OST path in the ORAM to the client, the OST path corresponding to a data operation received by the client; The client is configured to store data on the OST path to the tree cache, upload data to be written back in the operation cache during a response process of a previous data operation to the ORAM, perform a tree node related operation on the tree cache locally, and store data in the tree cache as the data to be written back to the operation cache in a case where the tree node related operation is completed, and clear data in the tree cache. The data obtaining submodule is configured to read the data to be downloaded from the ORAM and write the read data to be downloaded to the tree cache if the data to be downloaded does not exist in the operation cache, and read the data to be downloaded directly from the operation cache, write the data to be downloaded to the tree cache, and read a random data from the ORAM if the data to be downloaded exists in the operation cache.

8. An apparatus for data manipulation based on an involuntary search tree, characterized by The application is applied to a client, the client is connected with a server, and the server is deployed with a storage space ORAM supporting an oblivious random access tree structure; The client is provided with an operation cache and a tree cache; The operation cache is configured to cache data to be written back to the ORAM of the server after each data operation; and the device comprises: The data operation response module is configured to obtain an OST path corresponding to a data operation from the ORAM in response to the received data operation, store data on the OST path to the tree cache, and upload data to be written back in the operation cache during a response process of a previous data operation to the ORAM. The tree operation module is configured to perform a tree node related operation on the tree cache locally, and store data in the tree cache as the data to be written back to the operation cache in a case where the tree node related operation is completed. The tree cache clearing module is configured to clear data in the tree cache. The data operation response module is configured to repeatedly call the following submodules with data to be downloaded starting from a root node of the OST path: The data obtaining submodule is configured to read the data to be downloaded from the ORAM and write the read data to be downloaded to the tree cache if the data to be downloaded does not exist in the operation cache, and read the data to be downloaded directly from the operation cache, write the data to be downloaded to the tree cache, and read a random data from the ORAM if the data to be downloaded exists in the operation cache. data write-back submodule, configured to upload one of the data to be written back in the operation cache to the ORAM and delete the uploaded data to be written back from the operation cache; a current data to be downloaded re-determination submodule, configured to determine new data to be downloaded according to target data corresponding to the data operation.

9. A data system, characterized in that The data system comprises a server and at least one client connected with the server; the server is deployed with a tree-shaped storage structure ORAM supporting oblivious random access; The client is provided with an operation cache and a tree cache; The operation cache is used to cache data to be written back to the ORAM after each response to a data operation; The server comprises an OST path sending module, configured to send an OST path in the ORAM to the client in response to a request of the client; the OST path corresponds to a data operation received by the client; The client comprises: a data operation response module, configured to acquire an OST path corresponding to a data operation from the ORAM in response to the received data operation, store data on the OST path to the tree cache, and upload data to be written back cached in the operation cache in a previous response process of the data operation to the ORAM; a tree operation module, configured to perform tree node related operations on the tree cache locally, and store data in the tree cache to the operation cache as data to be written back in a case where the tree node related operations are completed; a tree cache emptying module, configured to empty data in the tree cache; The data operation response module is configured to repeatedly call the following submodules with a root node of the OST path as starting data to be downloaded: a data acquisition submodule, configured to read the data to be downloaded from the ORAM and write the read data to be downloaded to the tree cache if the data to be downloaded does not exist in the operation cache, and directly read the data to be downloaded from the operation cache, write the data to be downloaded to the tree cache, and read a random data from the ORAM if the data to be downloaded exists in the operation cache; a data write-back submodule, configured to upload one of the data to be written back in the operation cache to the ORAM and delete the uploaded data to be written back from the operation cache; a current data to be downloaded re-determination submodule, configured to determine new data to be downloaded according to target data corresponding to the data operation.

10. An electronic device, comprising: The electronic device comprises a processor, a memory, and a computer program stored in the memory and executable on the processor, and the processor executes the computer program to enable the electronic device to implement the method in any one of claims 1-5 or 6.

11. A computer program product, characterised in that, The computer program is executable to enable the method in any one of claims 1-5 or 6 to be executed.

Citation Information

Patent Citations

  • ORAM optimization strategy in multi-user shared storage scene

    CN118627129A

  • Methods for implementing and obfuscating a cryptographic algorithm having a given secret key

    US20200382271A1