
Clients run data encryption algorithms, have initial secret keys for decryption. En-
cryption algorithms are used to encrypt data and tree structures before sending them
to the oracle to ensure that the content of data and the data structure are hidden from
the oracle. If clients are accessing an outsourced index tree, they have point- or range-
queries. If they are accessing outsourced XML trees, they have query patterns. Query
patterns are used to traverse a tree structure along paths described by some regular-like
expressions. These tasks are accomplished efficiently by ”thin” clients with the help
of specialized embedded hardware, such as smartcards, distributed to licensed user by
data owners. Smartcards have been used a lot in mobile computing. They are relatively
cheap, costing no more than several dollars. Such embedded hardware also helps in
solving secret key distribution problem, i.e. by distributing smartcards that contain se-
cret keys, a data owner distributes keys to licensed users[5].
Every time the data owner wants to insert new data into the tree structure or delete
a data item from it, the owner
1. encrypts the data with a secret key,
2. walks the index structure in an oblivious manner so that the traversal path is hidden to the
data store
3. locates the node of interest (either for insertion or deletion),
4. updates the tree structure by inserting or deleting encrypted index or data nodes in proper
positions in the tree, in an oblivious way with respect to the data store.
By walking or updating the tree structure in an oblivious way with respect to the
data store, we mean minimizing the leakage of information about the data and the tree
structure as much as possible; the details of how to walk and update tree-structures in
an oblivious way is described in Section 4.
Client traversal of the tree for retrieving information is similar to update as in order
to prevent the database server from differentiating between read and write operations,
a read operation is always implemented as a read followed by a writing of the contents
back.
3 Oblivious Traversal of the Tree Structure
It is obvious to hide the content of the nodes of a tree structure by encrypting them
before they are passed to the data store. Consequently their content is already hidden
from a malicious store. However, if a client traverses the tree structure in a plain way,
the relationships between nodes in the tree, therefore the tree-structure as well as the
user’s query, are revealed. We propose two adjustable techniques to achieve oblivious
traversal of tree structures: access redundancy and node swapping.
Access Redundancy: Access redundancy requires that each time a client accesses a
node, instead of simply retrieving that particular node, it asks from the server a set
of randomly selected m − 1 nodes in addition to the target node. Consequently, the
probability with which the data store will guess the intended node is
1
m
. m is a security
parameter that is adjustable. We discuss how to choose the value of m in Section 5. We
define this set the redundancy set of the target node.
The problem with redundancy sets, on the other hand, is that their repeated use can
leak information about the target node. For example, if the root node’s address is fixed,
316