22.04.2014 Views

a590003

a590003

a590003

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

OWrite(i 1 , . . . , i t ; v 1 , . . . , v t ): The client encrypts and writes (i j , v j ) into A 0 for each j, then initiates a<br />

rebuild phase, described below.<br />

A0<br />

T (1)<br />

1<br />

T (1)<br />

2<br />

S (1) S (2) S (3) S (L)<br />

T (2)<br />

1<br />

T (2)<br />

2<br />

T (3)<br />

1<br />

T (3)<br />

2<br />

...<br />

T (L)<br />

1<br />

T (L)<br />

2<br />

Figure 2: Server data structures in the ORAM instantiation.<br />

Rebuild phase. We complete the scheme description by describing a rebuild phase, which works as follows.<br />

The client repeats the following process until A 0 is empty:<br />

• Increment ctr.<br />

• Remove and decrypt an item from A 0 , calling the result (j, v).<br />

• Let r ≥ 0 be the largest integer such that 2 r divides (ctr mod 2 L ).<br />

• Select new keys K r,1 , K r,2 and use the functions F (K r,1 , ·) and F (K r,2 , ·) as h 1 and h 2 to obliviously<br />

build a new cuckoo table C ′ r holding the removed item (j, v) and all of the data items in C 1 , . . . , C r−1 ,<br />

freshly re-encrypted and with duplicates removed.<br />

• Then, for j = 1 to r − 1, set K j,1 , K j,2 to fresh random keys and set the cuckoo tables C 1 , . . . , C r to be<br />

new, empty tables and C r to be C ′ r.<br />

Note that the remaining tables C r+1 , . . . , C L are not touched.<br />

We can implement the rebuild phase using the any of the protocols (with small variations) from [15, 16].<br />

The most efficient gives an amortized overhead of log l operations for all rebuilds, assuming that the client<br />

can temporarily locally store l δ memory slots during the protocol (but the client does need to store them<br />

between executions of the protocol). If we only allow the client to store a constant number of slots at any<br />

one time, then the we incur an overhead of log 2 l. In either case the worst-case overhead is O(l). Using<br />

the de-amortization techniques from [16, 24], we can achieve worst-case complexity of log 2 l, at the cost of<br />

doubling the server storage. This technique was analyzed in the original ORAM security setting, but it is<br />

not hard to extend our proof to show that it preserves next-read pattern hiding as well.<br />

6.3 Next-Read Pattern Hiding<br />

Theorem 2. Assuming that F is a secure PRF, and the underlying encryption scheme is chosen-plaintext<br />

secure, then the scheme O described above is next-read pattern hiding.<br />

Proof. We show that for any efficient adversary A, the probabilities that A outputs 1 when playing either<br />

NextReadGame 0 A or NextReadGame1 A<br />

differs by only a negligible amount. In these games, the adversary A<br />

19<br />

9. Dynamic Proofs of Retrievability via Oblivious RAM

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!