How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky...

47
How to Privately Access Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith III. PRESENTATION AT NIST November 8, 2011 Contact: [email protected]

Transcript of How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky...

Page 1: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

How to Privately Access Remote Data

Rafail Ostrovsky (UCLA)

Joint works/presentation credits:Eyal Kushilevitz, Steve Lu, William E. Skeith III.

PRESENTATION AT NISTNovember 8, 2011

Contact: [email protected]

Page 2: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

2

Overview

• Motivation• Problem Statement• Review of PIR and ORAM• New Results• Conclusion

Page 3: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

3

Overview

• Motivation• Problem Statement• Review of PIR and ORAM• New Results• Conclusion

Page 4: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

4

Motivating Example #1 (private monitoring/reading)

I want to look up

stock prices without revealing

what I am looking up

Page 5: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

5

Motivating Example #2 (cloud security)

Trusted Component (Client)

Untrusted Components (Cloud Services)

ENC(data)

ENC(data)

Page 6: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

6

Motivating Example #3 (anti-tamper systems)

Trusted Component (CPU) Untrusted Components

(RAM, Storage)

Page 7: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

7

Overview

• Motivation• Problem Statement• Review of PIR and ORAM• New Results• Conclusion

Page 8: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

8

Main Problem• Encryption/Authentication protects data contents, but

does not protect which physical locations are accessed.• Access remote data without revealing the so-called

“access pattern” of both reading and writing:– E.g.

• Public data – stock ticker• Private data – cloud storage

• What do we mean by access pattern?– Want to hide everything about probed locations. It should look

the same no matter:• If I ask for the same thing twice• If I ask for two adjacent locations• If I ask for random locations

– More formally: given any two sequences of access locations, the server cannot distinguish between them

Page 9: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

9

Overview

• Motivation• Problem Statement• Review of PIR and ORAM• New Results• Conclusion

Page 10: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

10

One Approach: Private Information Retrieval

• Private Information Retrieval (PIR)– Allows client to fetch some index i without

revealing to the server what was retrieved• Information Theoretic PIR solution with replicated

non-communicating servers [CGKS95]• [CGKS95] proved single-DB is impossible (in the

info-theoretic setting)• Computational PIR solution with single server

[KO97]– For now, lets talk about single-DB PIR

Page 11: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

11

What is PIR?

Cloud

Client index i

I want xi I want xi

I learned nothing about

i

I learned nothing about

i

xi xi

Databasex1 x2 x3 x4 x5 x6 x7 x8 x9

Remark: For this to be a good

PIR solution, the amount of data sent should be smaller than

entire DB size

Page 12: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

12

Beyond PIR: distributed monitoring

• Instead of reading a single database want to monitor evolving data-sources.

• [OS95]: Searching on Streaming data. – (UCLA patent application, licensed to Stealth

Software Technologies, Inc.)

Page 13: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

13

Motivating example: “No-fly” list

• Search for classified names and aliases of suspected terrorists

• Knowledge of aliases must be kept secret– If not, the advantage derived from this intelligence may again

become void.

• Until now, this precludes a distributed search– Without our technology, one must rely on an “import, then

process” method

Page 14: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

14

Problems with Import, then Process• Expensive in processing

– Processing must be done centrally

• Expensive in communication– Averse to dynamic data– Difficult to manage and synchronize data from vast and

disparate sources

• Takes more information into classified setting than needed– sometimes can not do this (multi-agency or coalition operations)

Page 15: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

15

Searching on Steaming Data

1. Classified machine: given secret search criteria, create an encrypted search and a decryption key.

2. Migrate encrypted search to multiple machines on any network (or unclassified Server Farm).

3. Every machine runs encrypted search on (local) data, writing output into a small encrypted buffer.

4. Send encrypted buffers back to a classified machine at a regular intervals (minute/hour/day).

5. Classified machine: Decrypt buffers using decryption key from step 1.

Page 16: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

16

Advantages• Attractive alternative to the import, then process

paradigm

• Ideal for dynamic, distributed, streaming data

• Creates savings in communication and processing

• Enables low-latency, low-complexity monitoring

Page 17: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

17

Technology at 40,000 feet• Homomorphic encryption:

– E(x)*E(y) = E(x+y)

• Stealth discovery (done at UCLA)– E(hidden keyword) * DOCUMENT =

• =E(0) or• =E(DOCUMENT) (only when there is a match!)• Can not tell which outcome happened, just an equation

• Now can use this to “collect” only matching documents into a small encrypted buffer

Page 18: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

18

Our process in detail

Page 19: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

19

Step 1: Create Encrypted Search

101010101011100000 110101011000100100 101010101010000101 111110100100110100 110101011101011001 001000111011010110 101100010010011100 100101101011101010 010101010000101110

Encrypted version of search is indistinguishable from a random distribution.

Mohammed AttaHani HanjourZiad Jarrah

Page 20: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

20

Encrypted Search:• Provably reveals no information about

search terms!

– Therefore, it can be distributed outside of a classified environment

Page 21: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

21

Step 2: Distribute Search

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

Page 22: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

22

Step 3: Run Distributed Search• Any willing and able parties (or a server farm) may now

participate.– The outside participants know they are helping with a search, but

remain oblivious as to what they are searching for and if there are any hits.

• Generic Interface (distributed only once) runs data “through” the encrypted search.– Results are collected in small encrypted buffers.

Page 23: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

23

Real-Time Monitoring• Traditional methods are unpleasant- typically

complex and communication-intensive

• Constant downloads / synchronization– High complexity, high communication

• Waiting for batches– Reduces complexity, but increases latency and still

involves un-necessary communication

Page 24: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

24

Real-Time Monitoring

I’m John Doe.

I’m Jane Lane.Mohammed

Atta.

A small encrypted flag can be frequently transmitted indicating the presence or absence of any search results. This provides a simple mechanism for real-time monitoring.

Small 0/1 flag

(Encrypted)

Page 25: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

25

Real-Time Monitoring

The encrypted flags can be aggregated so that one small value can indicate the presence or absence of results for an entire airport, if desired.

Rather than monitoring a constant stream of thousands of names, one small value can be frequently checked on a high side.

Page 26: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

26

Real-Time Monitoring• Saves communication- only download critical data,

• Furthermore, you only download what you were looking for, nothing else

• Low-overhead, low-complexity method for monitoring vast data sources

• Ideal for highly dynamic data

• Ideal for situations where long knowledge latency is unacceptable

Page 27: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

27

A Note on Encrypted Flags• Encrypted flags can contain a lot, or only a little

information, depending on the application

• They can give additional information, e.g. a more specific location where a hit was found and the number of hits

• If desired, it can be guaranteed to only take values of “yes” or “no”– Example: In coalition or multi-agency operations, one can

assure that flags reveal found/not found only, and nothing else.

Page 28: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

28

Step 4 and 5: upload & decrypt

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

110100100 101001001 001001110 110101011

Page 29: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

29

Steps 4 & 5: Upload & Decrypt• Collection of “interesting data”:

– Transfer small buffers to a classified environment– Then, decrypt buffers to obtain results

• Decryption key is NEVER given to the low (i.e., unclassified) side, everything on the unclassified side is encrypted.

Page 30: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

30

Design and Performance• Designed for parallel architectures.

• Based on independently developed high-performance library for long integers and number theory.– In single processor, 32-bit mode, already outperforms well-established

and respected libraries (e.g. NTL) on an Intel Core 2 by more than a factor of 2.

– 64 bit mode outperforms 64 bit optimized NTL by a factor of 7 for multiplication of 1024 bit integers.

– On a 2GHz core 2 duo in 64-bit mode can process data at 100KB/sec (small files) and 120KB/sec for large files.

– This is about 100x faster than where we started.

• Makes use of special purpose arithmetic algorithms, ideal for the task

Page 31: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

31

Another Approach: Oblivious RAM

• Oblivious RAM (ORAM) – Introduced by Goldreich and Ostrovsky– Allows client to write and read to untrusted

storage encrypted data without revealing what or where it is being accessed

• We focus on this solution for the remainder of the talk

Page 32: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

32

Overview

• Motivation• Problem Statement• Review of PIR and ORAM• New Results• Conclusion

Page 33: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

33

Model of Oblivious RAM• Small, trusted component

– CPU– User

• Large, untrusted component– RAM– Server Farm

• Goal: Protect the contents and the access pattern of the small CPU from the large RAM/Cloud storage

• PIR & ORAM Models are different: ORAM hides encrypted data of CPU/User instead of reading public data (as in PIR).

Page 34: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

34

Review: Hierarchical Solution [O90]• Set up the Server/RAM in a hierarchy of

tables• Tables with sizes in geometric progression

– E.g. each table is twice the size of the previous one

• Hash tables– Bucketed hash tables with log sized buckets– Cuckoo hash (need to be careful with these)

• Main property: a pair (x,v) where x is a memory location and v is the contents will reside encrypted on the server and shall appear in a level i in table position hi (x)

We drill down to the details

to see how this happens

We drill down to the details

to see how this happens

Page 35: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

35

Review: Hierarchical Solution [O90] Reading an element

7

I want to read memory location

Top level is special We scan it in its entirety

Top level is special We scan it in its entirety

For subsequent levels i compute hash hi (7)

If already found, then look up a “dummy”

location instead

For subsequent levels i compute hash hi (7)

If already found, then look up a “dummy”

location instead

327

(7,data)

1

Since we already found memory location 7,

we look up a “dummy” location

Since we already found memory location 7,

we look up a “dummy” location

We fetched data from location 7!

We fetched data from location 7!

Page 36: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

36

Review: Hierarchical Solution [O90] Writing an element

7

I want to write data to memory location

(7,data)

Write to first empty location

Next Slide: We see how to

update the tables as they fill up

Write to first empty location

Next Slide: We see how to

update the tables as they fill up

Note: To prevent Server from

distinguishing reads from writes

we perform a dummy write after every read

and a dummy read before every write

Note: To prevent Server from

distinguishing reads from writes

we perform a dummy write after every read

and a dummy read before every write

Encrypt

Page 37: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

37

Review: Hierarchical Solution [O90] Updating the Hierarchy

Temp Storage

Add Dummy Elements as needed

Compute Hash Locations

2 1

4 3

Oblivious Sort

These are stored

encrypted

2 1

Store in level

Repeat for each level as needed

Repeat for each level as needed

Note: It was observed in [OS97] that

updates can be “smeared” over

multiple read/writes to avoid long

pauses during updates

Note: It was observed in [OS97] that

updates can be “smeared” over

multiple read/writes to avoid long

pauses during updates

Page 38: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

38

Application to Secure Computation (Ostrovsky-Shoup Compiler [OS97])

Input A Input B

Wish to compute some program P(A,B) without revealing inputs

Note that many existing secure computation solutions work on circuits rather than programs. We are able to “bootstrap” this!

Main Idea:Jointly simulate ORAM, using secure circuit

computation for atomic steps

This means we are able to get secure program computation with

overhead proportional to that of ORAM (without unrolling

program into circuit)

Page 39: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

39

Overview

• Motivation• Problem Statement• Review• New Results• Conclusion

Page 40: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

40

New Results• New Insight: in Ostrovsky-Shoup complier, Alice-Bob

can afford to have two non-communicating servers.• Multi-Server Oblivious RAM [LO11]

– Joint work with Steve Lu– Two (or more) non-communicating servers

• E.g. multiple cloud services– O(log n) access overhead with constant client memory

• Matches lower bound in the single-server case– Bypasses the expensive “oblivious sort” during updates

• Balancing Oblivious RAM [KLO11] (to appear in SODA-12)

– Joint work with Eyal Kushilevitz and Steve Lu– Reduces the total overhead by balancing accesses with

updates.

Page 41: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

41

Multi-Server Oblivious RAM [LO11] Main Idea

...

• To read a value, alternate between servers

• Let’s see how update works

Page 42: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

42

Multi-Server Oblivious RAM [LO11] Updating the levels

...

Move to temp via client

Compute hashes & have the server sort

Move back to other server via client

Temp Storage

3 10 8 2 9 7 5 6

4 1

Some importantadditional details

that we don’t discuss in this talk are needed to

prevent hash overflows

Some importantadditional details

that we don’t discuss in this talk are needed to

prevent hash overflows

CAN DO O(log N) overhead

Page 43: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

43

Balancing Oblivious RAM [KLO11] Main Idea

...

• Another idea to reduce overhead• Single server model• Increase the size of each level to

reduce the frequency of updates– Simply increasing the growth rate

does not give us enough savings!• Main idea: each level stores

multiple hash tables– This reduces the frequency of

updates– But increases the cost of reading

• How many?– Optimization Problem– For our construction turns out to

be log(n) tables per level– Reduces total overhead down to

O(log2n/loglogn)

Page 44: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

44

Overview

• Motivation• Problem Statement• Review• New Results• Conclusion

Page 45: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

45

Conclusion• In this talk, we defined the problem of hiding the

access pattern from the server• We discussed two approaches

– Single-DB PIR [KO97] • and searching in streaming model [OS05]

– Hierarchical ORAM [O90,GO96] • We gave additional details for the ORAM

approach– Hierarchical Solution [O90,GO96]– Avoiding long pauses with “worst-case” overhead

[OS97]– Application to secure computation [OS97]

• Described new results for ORAM [KLO12,LO11]

Page 46: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

46

THANK YOU!

Page 47: How to PrivatelyAccess Remote Data - CSRC...How to PrivatelyAccess Remote Data Rafail Ostrovsky (UCLA) Joint works/presentation credits: Eyal Kushilevitz, Steve Lu, William E. Skeith

47

BACKUP: References• [CGKS95] Benny Chor, Eyal Kushilevitz, Oded Goldreich, and Madhu

Sudan. Private Information Retrieval. In FOCS 1995, 41-50.• [KO97] Eyal Kushilevitz and Rafail Ostrovsky. Replication is Not Needed:

Single Database, Computationally-Private Information Retrieval. In FOCS 1997, 364-373.

• [O90] Rafail Ostrovsky: Efficient Computation on Oblivious RAMs In STOC 1990: 514-523

• [GO96] Oded Goldreich and Rafail Ostrovsky. Software Protection and Simulation on Oblivious RAMs. In J.ACM 43(3) 1996, 431-473.

• [KLO] Eyal Kushilevitz, Steve Lu, and Rafail Ostrovsky. On the (in)security of hash-based oblivious RAM and a new balancing scheme. Cryptology ePrint Archive, Report 2011/327, 2011. To appear in SODA 2012.

• [LO] Steve Lu and Rafail Ostrovsky. Distributed Oblivious RAM for Secure Two-Party Computation. Cryptology ePrint Archive, Report 2011/384, 2011.

• [OS97] Rafail Ostrovsky and Victor Shoup. Private information storage (extended abstract). In STOC 1997, 294-303.