Oblivious Data Structure
   HOME

TheInfoList



OR:

In
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
, an oblivious data structure is a data structure that gives no information about the sequence or pattern of the operations that have been applied except for the final result of the operations. In most conditions, even if the data is encrypted, the access pattern can be achieved, and this pattern can leak some important information such as encryption keys. And in the outsourcing of
cloud In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid droplets, frozen crystals, or other particles, suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may ...
data, this leakage of access pattern is still very serious. An access pattern is a specification of an access mode for every attribute of a relation schema. For example, the sequences of user read or write the data in the cloud are access patterns. We say a machine is oblivious if the sequence in which it accesses is equivalent for any two inputs with the same running time. So the data access pattern is independent from the input. Applications: * Cloud data
outsourcing Outsourcing is a business practice in which companies use external providers to carry out business processes that would otherwise be handled internally. Outsourcing sometimes involves transferring employees and assets from one firm to another ...
: When writing or reading data from a cloud
server Server may refer to: Computing *Server (computing), a computer program or a device that provides requested information for other programs or devices, called clients. Role * Waiting staff, those who work at a restaurant or a bar attending custome ...
, oblivious data structures are useful. And modern
databases In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and ana ...
rely on data structures heavily, so oblivious data structures come in handy. * Secure processor: Tamper-resilient secure processors are used for defense against physical attacks or the malicious intruders access the users’ computer platforms. The existing secure processors designed in academia and industry include AEGIS and
Intel SGX Intel Software Guard Extensions (SGX) is a set of instruction codes implementing trusted execution environment that are built into some Intel central processing units (CPUs). They allow user-level and operating system code to define protected priv ...
. But the memory addresses are still transferred in the clear on the memory bus. So the research finds that this memory buses can give out the information about
encryption In Cryptography law, cryptography, encryption (more specifically, Code, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the inf ...
keys. With the Oblivious data structure comes in practical, the secure processor can obfuscate memory access pattern in a provably secure manner. * Secure computation: Traditionally people used circuit-model to do the secure computation, but the model is not enough for the security when the amount of data is getting big. RAM-model secure computation was proposed as an alternative to the traditional circuit model, and oblivious data structure is used to prevent information access behavioral being stolen.


Oblivious data structures


Oblivious RAM

Goldreich and Ostrovsky proposed this term on software protection. The memory access of
oblivious RAM An Oblivious RAM (ORAM) simulator is a compiler that transforms an algorithms, algorithm in such a way that the resulting algorithm preserves the Input/output, input-output (computing), output behavior of the original algorithm but the Probability ...
is probabilistic and the probabilistic distribution is independent of the input. In the paper composed by Goldreich and Ostrovsky have theorem to oblivious RAM: Let denote a RAM with m memory locations and access to a random oracle machine. Then t steps of an arbitrary program can be simulated by less than steps of an oblivious . Every oblivious simulation of must make at least \max\ accesses in order to simulate t steps. Now we have the square-root algorithm to simulate the oblivious ram working. # For each \sqrt m accesses, randomly permute first m + \sqrt m memory. # Check the shelter words first if we want to access a word. # If the word is there, access one of the dummy words. And if the word is not there, find the permuted location. To access original RAM in t steps we need to simulate it with t + \sqrt m steps for the oblivious RAM. For each access, the cost would be O(\sqrt m \cdot \log m). Another way to simulate is hierarchical algorithm. The basic idea is to consider the shelter memory as a buffer, and extend it to the multiple levels of buffers. For level , there are buckets and for each bucket has log t items. For each level there is a random selected hash function. The operation is like the following: At first load program to the last level, which can be say has buckets. For reading, check the bucket from each level, If (V,X) is already found, pick a bucket randomly to access, and if it is not found, check the bucket , there is only one real match and remaining are dummy entries . For writing, put (V,X) to the first level, and if the first I levels are full, move all I levels to levels and empty the first I levels. The time cost for each level cost ''O''(log t); cost for every access is ; The cost of Hashing is .


Oblivious tree

An Oblivious Tree is a rooted tree with the following property: * All the leaves are in the same level. * All the internal nodes have degree at most 3. * Only the nodes along the rightmost path in the tree may have degree of one. The oblivious tree is a data structure similar to
2–3 tree In computer science, a 2–3 tree is a tree data structure, where every node with children (internal node) has either two children (2-node) and one data element or three children (3-node) and two data elements. A 2–3 tree is a B-tree of order 3 ...
, but with the additional property of being oblivious. The rightmost path may have degree one and this can help to describe the update algorithms. Oblivious tree requires randomization to achieve a running time for the update operations. And for two sequences of operations ''M'' and ''N'' acting to the tree, the output of the tree has the same output probability distributions. For the tree, there are three operations: ;:build a new tree storing the sequence of values L at its leaves. ;: insert a new leaf node storing the value b as the ith leaf of the tree T. ;: remove the ith leaf from T. Step of Create: The list of nodes at the ithlevel is obtained traversing the list of nodes at level i+1 from left to right and repeatedly doing the following: # Choose d uniformly at random. # If there are less than d nodes left at level i+1, set d equal to the number of nodes left. # Create a new node n at level I with the next d nodes at level i+1 as children and compute the size of n as the sum of the sizes of its children. For example, if the coin tosses of d has an outcome of: 2, 3, 2, 2, 2, 2, 3 stores the string “OBLIVION” as follow oblivious tree. Both the and have the ''O''(log ''n'') expected running time. And for and we have: INSERT (b, I, CREATE (L)) = CREATE (L + …….., L i b, L +1……..) DELETE (I, CREATE (L)) = CREATE (L ………L - 1 L +1 ………..) For example, if the or is run, it yields the same probabilities of out come between these two operations.


References

* * * * {{refend Data structures