22.04.2014 Views

a590003

a590003

a590003

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

A<br />

Simple Dynamic PoR with Square-Root Complexity<br />

We sketch a very simple construction of dynamic PoR that achieves sub-linear complexity in its read, write<br />

and audit operations. Although the scheme is asymptotically significantly worst then our PORAM solution<br />

as described in the main body, it is significantly simpler and may be of interest for some practical parameter<br />

settings.<br />

The construction starts with the first dynamic PoR proposal from the introduction. To store a memory<br />

M ∈ Σ l on the server, the client divides it into L = √ l consecutive message blocks (m 1 , . . . , m L ), each<br />

containing L = √ l symbols. The client then encodes each of the message blocks m i using an (n = 2L, k =<br />

L, d = L + 1)-erasure code (e.g., Reed-Solomon tolerating L erasures), to form a codeword block c i , and<br />

concatenates the codeword blocks to form a string C = (c 1 , . . . , c L ) ∈ Σ 2l which it then stores on the server.<br />

We can assume the code is systematic so that the message block m i resides in the first L symbols of the<br />

corresponding codeword block c i . In addition, the client initializes a memory checking scheme [5, 23, 11],<br />

which it uses to authenticate each of the 2l codeword symbols within C.<br />

To read a location j ∈ [l] of memory, the client computes the index i ∈ [L] of the message block m i<br />

containing that location, and downloads the appropriate symbol of the codeword block c i which contains<br />

the value M[j] (here we use that the code is systematic), which it checks for authenticity via the memory<br />

checking scheme. To write to a location j ∈ [l] the client downloads the entire corresponding codeword block<br />

c i (checking for authenticity) decodes m i , changes the appropriate location to get an updated block m ′ i and<br />

finally re-encodes it to get c ′ i which it then writes to the server, updating the appropriate authentication<br />

information within the memory checking scheme. The audit protocol selects t = λ (security parameter)<br />

random positions within every codeword block c i and checks them for authenticity via the memory checking<br />

scheme.<br />

The read and write protocols of this scheme each execute the memory checking read protocol to read<br />

and write 1 and √ l symbols respectively. The audit protocol reads and checks λ √ l symbols. Assuming an<br />

efficient (poly-logarithmic) memory checking protocol, this means actual complexity of these protocols incurs<br />

another O(log l) factor and another constant factor increase in server storage. Therefore the complexity of<br />

the reads, writes, and audit is O(1), O( √ l), O( √ l) respectively, ignoring factors that depend on the security<br />

parameter or are polylogarithmic in l.<br />

Note that the above scheme actually gives us a natural trade-off between the complexity of the writes<br />

and the audit protocol. In particular, for any δ > 0, we can set the message block size to L 1 = l δ symbols,<br />

so that the client memory M now consists of L 2 = l 1−δ such blocks. In this case, the complexity of reads,<br />

writes, and audits becomes O(1), O(l δ ), O(l 1−δ ) respectively.<br />

B<br />

Standard Pattern Hiding for ORAM<br />

We recall an equivalent definition to the one introduced by Goldreich and Ostrovsky [13]. Informally,<br />

standard pattern hiding says that an (arbitrarily malicious and efficient) adversary cannot detect which<br />

sequence of instructions a client is executing via the ORAM protocols.<br />

Formally, for a bit b and an adversary A, we define the game ORAMGame b A<br />

(λ) as follows:<br />

• The attacker A(1 λ ) outputs two equal-length ORAM protocol sequences Q 0 = (op 0 , . . . , op q ), Q 1 =<br />

(op ′ 0 , . . . , op′ q). We require that for each index j, the operations op j and op ′ j only differ in the location<br />

they access and the values the are writing, but otherwise correspond to the same operation (read or<br />

write).<br />

• The challenger initializes an honest client C and server S, and sequentially executes the operations in<br />

Q b , between C and S.<br />

• Finally, A is given the complete transcript of all the protocol executions, and he outputs a bit ˜b, which<br />

is the output of the game.<br />

25<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!