SlideShare a Scribd company logo
1 of 51
An Extremely Simple ORAM
Protocol – Path ORAM
Published by Stefanov, Emil, et al.
Presented by Shijie Zhang
Cloud storage
SkyDrive
Windows Azure
Storage
Amazon S3, EBS
Dropbox
EMC
Atmos
Mozy
iCloud Google Storage
Cloud storage
SkyDrive
Windows Azure
Storage
Amazon S3, EBS
Dropbox
EMC
Atmos
Mozy
iCloud
Google Storage
Can we
TRUST
the cloud?
Not completely
Cloud storage
Sensitive
documents
should be
encrypted
User Server
Files
Encrypted Files
Search on Cloud storage
What if users need to search on
encrypted documents?
e.g. documents containing keyword
“urgent”
Searchable Encryption
Searchable encryption schemes are proposed
User Server
Files Encrypted Files + Index
(contains trapdoors
only known by user)
Searchable Encryption
Searchable encryption schemes proposed
User Server
Search for documents
containing keyword
e.g. “urgent”
Searchable Encryption
Searchable encryption schemes proposed
User Server
Search for documents
containing keyword
e.g. “urgent”
Trapdoor function (“urgent”)
Searchable Encryption
Searchable encryption schemes proposed
User Server
Search for documents
containing keyword
e.g. “urgent”
Trapdoor function (“urgent”)
Trapdoor function
(“urgent”) + Index
Searchable Encryption
Searchable encryption schemes proposed
User Server
Search for documents
containing keyword
e.g. “urgent”
Trapdoor function (“urgent”)
Trapdoor function
(“urgent”) + Index
Requested encrypted documents
Information leaked ???
Most previous research works
• Do not leaked Encrypted documents
• Do not leaked Searched keywords
However, most previous research works
• leaked access pattern
Access Pattern Leaked
Access Pattern leaked:
• Which data is being accessed
• When the data was last accessed
• Whether the same data is being accessed
• Access randomly or sequentially
• Whether the access is a read or write
What could be done
with access pattern ?
Client
Buy IBM
Buy EMC
?Buy IBM
Access patterns leak:
80% of search queries to
encrypted database
(Islam et. al)
?Buy IBM
Server
Search queries
Example Attack
?Buy PC
Example Attack
Oblivious RAM
• Search over encrypted data
without revealing access pattern
• Impractical O(N) bandwidth overhead
Path ORAM
• Most practical ORAM construction to date
• High efficiency and low overhead
Asymptotic breakthrough for large blocks
Instantiation Client Storage Bandwidth
Without Recursion 𝑶 𝑵 𝑶 𝐥𝐨𝐠 𝑵
With Recursion
~ 𝑶
𝐥𝐨𝐠 𝑵 𝟐
𝐥𝐨𝐠 𝐗
𝑶
𝐥𝐨𝐠 𝑵 𝟐
𝐥𝐨𝐠 𝐗
Path ORAM
• Server storage
binary map
• Client storage
position map, stash
Path ORAM
nodes can contain
multiple blocks
some nodes are empty
Server: data blocks stored in nodes of the tree
bucket
block
Block #
data
Path ORAM
1 2 3 4 5 6 7 8
“Position” comes from the leaf sequence number.
Path ORAM
1 2 3 4 5 6 7 8
A block must be placed on the path to its “position”
If a BLOCK’s position is 5, it can only be in the this path
Path ORAM
1 2 3 4 5 6 7 8
A block must be placed on the path to its “position”
If a BLOCK’s position is 1, it can only be in the this path
Path ORAM
1 2 3 4 5 6 7 8
Blocks’ position are chosen randomly from 1 to 2^L(number of leaves).
Some nodes(buckets) have multiple blocks while some are empty.
Path ORAM
Client storage: position map & stash
position map: to store each block’s “position”
(assume there are N blocks in the tree)
Block #
Block’s “position”
1 2 … … …. …. N-1 N
5 4 … … …. …. 1 7
Path ORAM
position map: to store each block’s “position”
(assume there are N blocks in the tree)
Block #
Block’s “position”
1 2 … … …. …. 13 14
2 4 1 1
10 6
2 58
714 9 1
13
3 12 4 11
1 2 3 4
Client storage: position map & stash
Path ORAM
Stash: 1. block cash
2. to store blocks overflowed from the server
Client storage: position map & stash
one block
Path ORAM
16 lines
of
pseudocode
Path ORAM
An example for access (op, a, data)
Example:
A user wants to modify block “7”
Path ORAM
10 6
2 5
714 1
13
3 12 4 11
1 2 3 4
Server
Client
stash
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 2 2 1 1 4 3 2 1
Example: A user wants to modify block “7”
8 9
Path ORAM
10 6
2 5
714 9 1
13
3 12 4 11
1 2 3 4
Server
Client
stash
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 2 2 1 1 4 3 2 1
Example: A user wants to modify block “7”
1. Lookup block’s position
8 9
Path ORAM
10 6
2 5
714 1
13
3 12 4 11
1 2 3 4
Server
Client
stash
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 2 2 1 1 4 3 2 1
Example: A user wants to modify block “7”
2. Read the entire path
8 9
71 13 10 6
71 13 10 6
decrypt
Path ORAM
10 6
2 5
714 1
13
3 12 4 11
1 2 3 4
Server
Client
stash
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 2 2 1 1 4 3 2 1
Example: A user wants to modify block “7”
8 9
71 13 10 6
1 13 10 6
decrypt
7
3. Client can now
read/modify data in block
Path ORAM
10 6
2 58
714 9 1
13
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 2 2 1 1 4 3 2 1
Example: A user wants to modify block “7”
Note:
the blocks on the tree are encrypted
4. Assign a new random position.
Position[block 7] = UniformRandom(1, 2, 3, 4)
here = 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Path ORAM
10 6
2 5
14 1
13
3 12 4 11
1 2 3 4
Server
Client
Note:
the blocks on the tree are encrypted
5. Write path back
7
Principles:
A. Blocks should be pushed down as deep as possible
B. Blocks should always be on the path to its position
Path ORAM
10 6
2 5
14 1
13
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back.
Principle A:
Push blocks as deep as
possible
stash 8 9 1 13 10 67
Try the deepest possible
node first
Path ORAM
10 6
2 5
14 1
13
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back.
Principle A:
Push blocks as deep as
possible
stash 8 9 1 13 10 67
If full, try the upper level
Path ORAM
10 6
2 5
14 1
13
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back.
Principle A:
Push blocks as deep as
possible
stash 8 9 1 13 10 67
If full, try the upper level
Path ORAM
10 6
2 5
14 1
13
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back.
Principle A:
Push blocks as deep as
possible
stash 8 9 1 13 10 67
If root is full, store in the stash
Path ORAM
10 6
2 5
14 1
13
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back
Principle B:
The block should always be on
its path to “position”
stash 8 9 1 13 10 67
2 1 2 1 2 1 1“positions”
7
Path ORAM
10 6
2 5
14 1
13
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back
Block 8, 1, 13 can
end up at any buckets on
the entire path
Principle B:
The block should always be on
its path to “position”
stash 8 9 1 13 10 67
2 1 2 1 2 1 1
7
Path ORAM
10 6
2 5
14 1
13
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back
Block 9, 7, 10, 6 can only
end up at these buckets
Principle B:
The block should always be on
its path to “position”
stash 8 9 1 13 10 67
2 1 2 1 2 1 1
7
Path ORAM
2 5
14 3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back
stash 8 9 1 13 10 67
2 1 2 1 2 1 1
3
2
1
Get back to our example:
Path ORAM
2 5
14 8 3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back
stash 8 9 1 13 10 67
2 1 2 1 2 1 1
3
2
1
13
Path ORAM
2 51
14 8
7
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back
stash 8 9 1 13 10 67
2 1 2 1 2 1 1
3
2
1
13
Path ORAM
9 6
2 51
14 8
7
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back
stash 8 9 1 13 10 67
2 1 2 1 2 1 1
3
2
1
13
Path ORAM
9 6
2 51
14 8
7
3 12 4 11
1 2 3 4
Server
Client
position map
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 4 3 4 3 1 1 2 1 1 4 3 2 1
Note:
the blocks on the tree are encrypted
5. Write path back
stash 10
3
2
1
13
Client storage
Position map:
• Log N bits per block
• Totally N log N bits
Too much !!!
Recursion
• Store the position map in another ORAM.
• Do this recursively.
Server
Client
…
…
O-RAM #1 O-RAM #2:
Position Map
for O-RAM #1 O-RAM #3:
Position Map
for O-RAM #2
Security• Security Definition:
Given two access sequences,
Computational indistinguishable by anyone but the user
• Server only observes a single random number on access to each block
Each access number is random
not computational distinguishable by anyone but the user
Security - example
Server
Client
stashposition map
Suppose client
accesses blocks
1, 2, 3, 4.5
0 1 2 3 4 5 6 7positions:
1 6 4
Server observes:
5, 1, 6, 4
Client looks up in
position map.
5 1 6 4
equally likely
If client instead accesses:
46, 49, 53, 60
the two access patterns are
indistinguishable
Proof for Bounds on Stash Usage
Target: the probability for stash overflow is low
Equivalent to:
Find a subtree in ORAM binary tree
that after a sequences of access “s”, the number of
Remaining blocks are bigger than n(T)Z+R
References
1. Path ORAM, Emil, S., et al. slides and papers,
2012
2. Access Pattern Disclosure on Searchable
Encryption. Mohammad, S. et al. , 2006

More Related Content

What's hot

Common Strategies for Improving Performance on Your Delta Lakehouse
Common Strategies for Improving Performance on Your Delta LakehouseCommon Strategies for Improving Performance on Your Delta Lakehouse
Common Strategies for Improving Performance on Your Delta LakehouseDatabricks
 
Computer Organization : CPU, Memory and I/O organization
Computer Organization : CPU, Memory and I/O organizationComputer Organization : CPU, Memory and I/O organization
Computer Organization : CPU, Memory and I/O organizationAmrutaMehata
 
Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013Julien Le Dem
 
Svetlin Nakov - Database Transactions
Svetlin Nakov - Database TransactionsSvetlin Nakov - Database Transactions
Svetlin Nakov - Database TransactionsSvetlin Nakov
 
Apache Hive Hook
Apache Hive HookApache Hive Hook
Apache Hive HookMinwoo Kim
 
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka Edureka!
 
Migrating Apache Hive Workload to Apache Spark: Bridge the Gap with Zhan Zhan...
Migrating Apache Hive Workload to Apache Spark: Bridge the Gap with Zhan Zhan...Migrating Apache Hive Workload to Apache Spark: Bridge the Gap with Zhan Zhan...
Migrating Apache Hive Workload to Apache Spark: Bridge the Gap with Zhan Zhan...Databricks
 
Inside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source DatabaseInside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source DatabaseMike Dirolf
 
Flash for Apache Spark Shuffle with Cosco
Flash for Apache Spark Shuffle with CoscoFlash for Apache Spark Shuffle with Cosco
Flash for Apache Spark Shuffle with CoscoDatabricks
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekVenkata Naga Ravi
 
Oracle SQL, PL/SQL Performance tuning
Oracle SQL, PL/SQL Performance tuningOracle SQL, PL/SQL Performance tuning
Oracle SQL, PL/SQL Performance tuningSmitha Padmanabhan
 
Physical Plans in Spark SQL
Physical Plans in Spark SQLPhysical Plans in Spark SQL
Physical Plans in Spark SQLDatabricks
 
Transaction slide
Transaction slideTransaction slide
Transaction slideshawon roy
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1SolarWinds
 

What's hot (20)

Common Strategies for Improving Performance on Your Delta Lakehouse
Common Strategies for Improving Performance on Your Delta LakehouseCommon Strategies for Improving Performance on Your Delta Lakehouse
Common Strategies for Improving Performance on Your Delta Lakehouse
 
Computer Organization : CPU, Memory and I/O organization
Computer Organization : CPU, Memory and I/O organizationComputer Organization : CPU, Memory and I/O organization
Computer Organization : CPU, Memory and I/O organization
 
Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013
 
Svetlin Nakov - Database Transactions
Svetlin Nakov - Database TransactionsSvetlin Nakov - Database Transactions
Svetlin Nakov - Database Transactions
 
Apache Hive Hook
Apache Hive HookApache Hive Hook
Apache Hive Hook
 
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
 
Migrating Apache Hive Workload to Apache Spark: Bridge the Gap with Zhan Zhan...
Migrating Apache Hive Workload to Apache Spark: Bridge the Gap with Zhan Zhan...Migrating Apache Hive Workload to Apache Spark: Bridge the Gap with Zhan Zhan...
Migrating Apache Hive Workload to Apache Spark: Bridge the Gap with Zhan Zhan...
 
NoSQL
NoSQLNoSQL
NoSQL
 
Inside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source DatabaseInside MongoDB: the Internals of an Open-Source Database
Inside MongoDB: the Internals of an Open-Source Database
 
Hive tuning
Hive tuningHive tuning
Hive tuning
 
Flash for Apache Spark Shuffle with Cosco
Flash for Apache Spark Shuffle with CoscoFlash for Apache Spark Shuffle with Cosco
Flash for Apache Spark Shuffle with Cosco
 
Universal gate BY Abdullah
Universal gate BY AbdullahUniversal gate BY Abdullah
Universal gate BY Abdullah
 
File Format Benchmark - Avro, JSON, ORC & Parquet
File Format Benchmark - Avro, JSON, ORC & ParquetFile Format Benchmark - Avro, JSON, ORC & Parquet
File Format Benchmark - Avro, JSON, ORC & Parquet
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeek
 
Oracle SQL, PL/SQL Performance tuning
Oracle SQL, PL/SQL Performance tuningOracle SQL, PL/SQL Performance tuning
Oracle SQL, PL/SQL Performance tuning
 
Hash tables
Hash tablesHash tables
Hash tables
 
Physical Plans in Spark SQL
Physical Plans in Spark SQLPhysical Plans in Spark SQL
Physical Plans in Spark SQL
 
5 Steps to PostgreSQL Performance
5 Steps to PostgreSQL Performance5 Steps to PostgreSQL Performance
5 Steps to PostgreSQL Performance
 
Transaction slide
Transaction slideTransaction slide
Transaction slide
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
 

Viewers also liked

ORAM: A Brief Overview
ORAM: A Brief OverviewORAM: A Brief Overview
ORAM: A Brief OverviewDev Nath
 
Oram And Secure Computation
Oram And Secure ComputationOram And Secure Computation
Oram And Secure ComputationChong-Kuan Chen
 
Role-based Access Control on AWS
Role-based Access Control on AWSRole-based Access Control on AWS
Role-based Access Control on AWSFreeman Zhang
 
Radial club hand
Radial club handRadial club hand
Radial club handDrzameer
 
Drb Nih Talk Jan 2009
Drb Nih Talk Jan 2009Drb Nih Talk Jan 2009
Drb Nih Talk Jan 2009guest957fad2
 
Holt oram syndrome presentation
Holt oram syndrome presentationHolt oram syndrome presentation
Holt oram syndrome presentationbdw41
 
秘密計算を用いた時系列情報の安全な集計方法
秘密計算を用いた時系列情報の安全な集計方法秘密計算を用いた時系列情報の安全な集計方法
秘密計算を用いた時系列情報の安全な集計方法成泰 奈良
 
Keyboard covert channels
Keyboard covert channelsKeyboard covert channels
Keyboard covert channelsFreeman Zhang
 
AWS re:Invent 2016: FINRA in the Cloud: the Big Data Enterprise (ENT313)
AWS re:Invent 2016: FINRA in the Cloud: the Big Data Enterprise (ENT313)AWS re:Invent 2016: FINRA in the Cloud: the Big Data Enterprise (ENT313)
AWS re:Invent 2016: FINRA in the Cloud: the Big Data Enterprise (ENT313)Amazon Web Services
 
Congenital anomalies of upper limb
Congenital anomalies of upper limbCongenital anomalies of upper limb
Congenital anomalies of upper limbVictor Effiom
 
Radial club hand
Radial club handRadial club hand
Radial club handdralizameer
 
Skeletal dysplasia : Radiodiagnosis
Skeletal dysplasia : RadiodiagnosisSkeletal dysplasia : Radiodiagnosis
Skeletal dysplasia : Radiodiagnosiskunalj000
 

Viewers also liked (14)

ORAM: A Brief Overview
ORAM: A Brief OverviewORAM: A Brief Overview
ORAM: A Brief Overview
 
Oram And Secure Computation
Oram And Secure ComputationOram And Secure Computation
Oram And Secure Computation
 
Role-based Access Control on AWS
Role-based Access Control on AWSRole-based Access Control on AWS
Role-based Access Control on AWS
 
Radial club hand
Radial club handRadial club hand
Radial club hand
 
Drb Nih Talk Jan 2009
Drb Nih Talk Jan 2009Drb Nih Talk Jan 2009
Drb Nih Talk Jan 2009
 
Holt oram syndrome presentation
Holt oram syndrome presentationHolt oram syndrome presentation
Holt oram syndrome presentation
 
Analyzing Bitcoin Security
Analyzing Bitcoin SecurityAnalyzing Bitcoin Security
Analyzing Bitcoin Security
 
秘密計算を用いた時系列情報の安全な集計方法
秘密計算を用いた時系列情報の安全な集計方法秘密計算を用いた時系列情報の安全な集計方法
秘密計算を用いた時系列情報の安全な集計方法
 
Keyboard covert channels
Keyboard covert channelsKeyboard covert channels
Keyboard covert channels
 
AWS re:Invent 2016: FINRA in the Cloud: the Big Data Enterprise (ENT313)
AWS re:Invent 2016: FINRA in the Cloud: the Big Data Enterprise (ENT313)AWS re:Invent 2016: FINRA in the Cloud: the Big Data Enterprise (ENT313)
AWS re:Invent 2016: FINRA in the Cloud: the Big Data Enterprise (ENT313)
 
Congenital anomalies of upper limb
Congenital anomalies of upper limbCongenital anomalies of upper limb
Congenital anomalies of upper limb
 
Radial club hand
Radial club handRadial club hand
Radial club hand
 
Skeletal dysplasia : Radiodiagnosis
Skeletal dysplasia : RadiodiagnosisSkeletal dysplasia : Radiodiagnosis
Skeletal dysplasia : Radiodiagnosis
 
Congenital hand anomalies
Congenital hand anomaliesCongenital hand anomalies
Congenital hand anomalies
 

Similar to Path oram

Building a Replicated Logging System with Apache Kafka
Building a Replicated Logging System with Apache KafkaBuilding a Replicated Logging System with Apache Kafka
Building a Replicated Logging System with Apache KafkaGuozhang Wang
 
Cassandra : to be or not to be @ TechTalk
Cassandra : to be or not to be @ TechTalkCassandra : to be or not to be @ TechTalk
Cassandra : to be or not to be @ TechTalkAndriy Rymar
 
APEX tour 2019 - successful development with autonomous
APEX tour 2019 - successful development with autonomousAPEX tour 2019 - successful development with autonomous
APEX tour 2019 - successful development with autonomousConnor McDonald
 
rac_for_beginners_ppt.pdf
rac_for_beginners_ppt.pdfrac_for_beginners_ppt.pdf
rac_for_beginners_ppt.pdfHODCA1
 
Data structures assignmentweek4b.pdfCI583 Data Structure
Data structures assignmentweek4b.pdfCI583 Data StructureData structures assignmentweek4b.pdfCI583 Data Structure
Data structures assignmentweek4b.pdfCI583 Data StructureOllieShoresna
 
A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink Jaewook. Kang
 
Spark Summit EU talk by Qifan Pu
Spark Summit EU talk by Qifan PuSpark Summit EU talk by Qifan Pu
Spark Summit EU talk by Qifan PuSpark Summit
 
SQL and PLSQL features for APEX Developers
SQL and PLSQL features for APEX DevelopersSQL and PLSQL features for APEX Developers
SQL and PLSQL features for APEX DevelopersConnor McDonald
 
Art of the Possible_Tim Faulkes.pdf
Art of the Possible_Tim Faulkes.pdfArt of the Possible_Tim Faulkes.pdf
Art of the Possible_Tim Faulkes.pdfAerospike, Inc.
 
Configuring Aerospike - Part 2
Configuring Aerospike - Part 2 Configuring Aerospike - Part 2
Configuring Aerospike - Part 2 Aerospike, Inc.
 
Operating Systems: Revision
Operating Systems: RevisionOperating Systems: Revision
Operating Systems: RevisionDamian T. Gordon
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsCeph Community
 
spark stream - kafka - the right way
spark stream - kafka - the right way spark stream - kafka - the right way
spark stream - kafka - the right way Dori Waldman
 
Flip flop& RAM ROM
Flip flop& RAM ROMFlip flop& RAM ROM
Flip flop& RAM ROMBala Ganesh
 
riyaj_advanced_rac_troubleshooting_rmoug_2010_ppt.pdf
riyaj_advanced_rac_troubleshooting_rmoug_2010_ppt.pdfriyaj_advanced_rac_troubleshooting_rmoug_2010_ppt.pdf
riyaj_advanced_rac_troubleshooting_rmoug_2010_ppt.pdfabdulhafeezkalsekar1
 
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...Amazon Web Services
 
Profiling the logwriter and database writer
Profiling the logwriter and database writerProfiling the logwriter and database writer
Profiling the logwriter and database writerEnkitec
 
07 - Bypassing ASLR, or why X^W matters
07 - Bypassing ASLR, or why X^W matters07 - Bypassing ASLR, or why X^W matters
07 - Bypassing ASLR, or why X^W mattersAlexandre Moneger
 
Configuring Aerospike - Part 1
Configuring Aerospike - Part 1Configuring Aerospike - Part 1
Configuring Aerospike - Part 1Aerospike, Inc.
 

Similar to Path oram (20)

Building a Replicated Logging System with Apache Kafka
Building a Replicated Logging System with Apache KafkaBuilding a Replicated Logging System with Apache Kafka
Building a Replicated Logging System with Apache Kafka
 
Cassandra : to be or not to be @ TechTalk
Cassandra : to be or not to be @ TechTalkCassandra : to be or not to be @ TechTalk
Cassandra : to be or not to be @ TechTalk
 
APEX tour 2019 - successful development with autonomous
APEX tour 2019 - successful development with autonomousAPEX tour 2019 - successful development with autonomous
APEX tour 2019 - successful development with autonomous
 
rac_for_beginners_ppt.pdf
rac_for_beginners_ppt.pdfrac_for_beginners_ppt.pdf
rac_for_beginners_ppt.pdf
 
Data structures assignmentweek4b.pdfCI583 Data Structure
Data structures assignmentweek4b.pdfCI583 Data StructureData structures assignmentweek4b.pdfCI583 Data Structure
Data structures assignmentweek4b.pdfCI583 Data Structure
 
A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink
 
Spark Summit EU talk by Qifan Pu
Spark Summit EU talk by Qifan PuSpark Summit EU talk by Qifan Pu
Spark Summit EU talk by Qifan Pu
 
SQL and PLSQL features for APEX Developers
SQL and PLSQL features for APEX DevelopersSQL and PLSQL features for APEX Developers
SQL and PLSQL features for APEX Developers
 
Art of the Possible_Tim Faulkes.pdf
Art of the Possible_Tim Faulkes.pdfArt of the Possible_Tim Faulkes.pdf
Art of the Possible_Tim Faulkes.pdf
 
Configuring Aerospike - Part 2
Configuring Aerospike - Part 2 Configuring Aerospike - Part 2
Configuring Aerospike - Part 2
 
Operating Systems: Revision
Operating Systems: RevisionOperating Systems: Revision
Operating Systems: Revision
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
 
spark stream - kafka - the right way
spark stream - kafka - the right way spark stream - kafka - the right way
spark stream - kafka - the right way
 
Flip flop& RAM ROM
Flip flop& RAM ROMFlip flop& RAM ROM
Flip flop& RAM ROM
 
riyaj_advanced_rac_troubleshooting_rmoug_2010_ppt.pdf
riyaj_advanced_rac_troubleshooting_rmoug_2010_ppt.pdfriyaj_advanced_rac_troubleshooting_rmoug_2010_ppt.pdf
riyaj_advanced_rac_troubleshooting_rmoug_2010_ppt.pdf
 
Sayeh extension(v23)
Sayeh extension(v23)Sayeh extension(v23)
Sayeh extension(v23)
 
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
Deep Dive on the Amazon Aurora MySQL-compatible Edition - DAT301 - re:Invent ...
 
Profiling the logwriter and database writer
Profiling the logwriter and database writerProfiling the logwriter and database writer
Profiling the logwriter and database writer
 
07 - Bypassing ASLR, or why X^W matters
07 - Bypassing ASLR, or why X^W matters07 - Bypassing ASLR, or why X^W matters
07 - Bypassing ASLR, or why X^W matters
 
Configuring Aerospike - Part 1
Configuring Aerospike - Part 1Configuring Aerospike - Part 1
Configuring Aerospike - Part 1
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Path oram

  • 1. An Extremely Simple ORAM Protocol – Path ORAM Published by Stefanov, Emil, et al. Presented by Shijie Zhang
  • 2. Cloud storage SkyDrive Windows Azure Storage Amazon S3, EBS Dropbox EMC Atmos Mozy iCloud Google Storage
  • 3. Cloud storage SkyDrive Windows Azure Storage Amazon S3, EBS Dropbox EMC Atmos Mozy iCloud Google Storage Can we TRUST the cloud? Not completely
  • 5. Search on Cloud storage What if users need to search on encrypted documents? e.g. documents containing keyword “urgent”
  • 6. Searchable Encryption Searchable encryption schemes are proposed User Server Files Encrypted Files + Index (contains trapdoors only known by user)
  • 7. Searchable Encryption Searchable encryption schemes proposed User Server Search for documents containing keyword e.g. “urgent”
  • 8. Searchable Encryption Searchable encryption schemes proposed User Server Search for documents containing keyword e.g. “urgent” Trapdoor function (“urgent”)
  • 9. Searchable Encryption Searchable encryption schemes proposed User Server Search for documents containing keyword e.g. “urgent” Trapdoor function (“urgent”) Trapdoor function (“urgent”) + Index
  • 10. Searchable Encryption Searchable encryption schemes proposed User Server Search for documents containing keyword e.g. “urgent” Trapdoor function (“urgent”) Trapdoor function (“urgent”) + Index Requested encrypted documents
  • 11. Information leaked ??? Most previous research works • Do not leaked Encrypted documents • Do not leaked Searched keywords However, most previous research works • leaked access pattern
  • 12. Access Pattern Leaked Access Pattern leaked: • Which data is being accessed • When the data was last accessed • Whether the same data is being accessed • Access randomly or sequentially • Whether the access is a read or write What could be done with access pattern ?
  • 13. Client Buy IBM Buy EMC ?Buy IBM Access patterns leak: 80% of search queries to encrypted database (Islam et. al) ?Buy IBM Server Search queries Example Attack ?Buy PC
  • 15. Oblivious RAM • Search over encrypted data without revealing access pattern • Impractical O(N) bandwidth overhead
  • 16. Path ORAM • Most practical ORAM construction to date • High efficiency and low overhead Asymptotic breakthrough for large blocks Instantiation Client Storage Bandwidth Without Recursion 𝑶 𝑵 𝑶 𝐥𝐨𝐠 𝑵 With Recursion ~ 𝑶 𝐥𝐨𝐠 𝑵 𝟐 𝐥𝐨𝐠 𝐗 𝑶 𝐥𝐨𝐠 𝑵 𝟐 𝐥𝐨𝐠 𝐗
  • 17. Path ORAM • Server storage binary map • Client storage position map, stash
  • 18. Path ORAM nodes can contain multiple blocks some nodes are empty Server: data blocks stored in nodes of the tree bucket block Block # data
  • 19. Path ORAM 1 2 3 4 5 6 7 8 “Position” comes from the leaf sequence number.
  • 20. Path ORAM 1 2 3 4 5 6 7 8 A block must be placed on the path to its “position” If a BLOCK’s position is 5, it can only be in the this path
  • 21. Path ORAM 1 2 3 4 5 6 7 8 A block must be placed on the path to its “position” If a BLOCK’s position is 1, it can only be in the this path
  • 22. Path ORAM 1 2 3 4 5 6 7 8 Blocks’ position are chosen randomly from 1 to 2^L(number of leaves). Some nodes(buckets) have multiple blocks while some are empty.
  • 23. Path ORAM Client storage: position map & stash position map: to store each block’s “position” (assume there are N blocks in the tree) Block # Block’s “position” 1 2 … … …. …. N-1 N 5 4 … … …. …. 1 7
  • 24. Path ORAM position map: to store each block’s “position” (assume there are N blocks in the tree) Block # Block’s “position” 1 2 … … …. …. 13 14 2 4 1 1 10 6 2 58 714 9 1 13 3 12 4 11 1 2 3 4 Client storage: position map & stash
  • 25. Path ORAM Stash: 1. block cash 2. to store blocks overflowed from the server Client storage: position map & stash one block
  • 27. Path ORAM An example for access (op, a, data) Example: A user wants to modify block “7”
  • 28. Path ORAM 10 6 2 5 714 1 13 3 12 4 11 1 2 3 4 Server Client stash position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 2 2 1 1 4 3 2 1 Example: A user wants to modify block “7” 8 9
  • 29. Path ORAM 10 6 2 5 714 9 1 13 3 12 4 11 1 2 3 4 Server Client stash position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 2 2 1 1 4 3 2 1 Example: A user wants to modify block “7” 1. Lookup block’s position 8 9
  • 30. Path ORAM 10 6 2 5 714 1 13 3 12 4 11 1 2 3 4 Server Client stash position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 2 2 1 1 4 3 2 1 Example: A user wants to modify block “7” 2. Read the entire path 8 9 71 13 10 6 71 13 10 6 decrypt
  • 31. Path ORAM 10 6 2 5 714 1 13 3 12 4 11 1 2 3 4 Server Client stash position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 2 2 1 1 4 3 2 1 Example: A user wants to modify block “7” 8 9 71 13 10 6 1 13 10 6 decrypt 7 3. Client can now read/modify data in block
  • 32. Path ORAM 10 6 2 58 714 9 1 13 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 2 2 1 1 4 3 2 1 Example: A user wants to modify block “7” Note: the blocks on the tree are encrypted 4. Assign a new random position. Position[block 7] = UniformRandom(1, 2, 3, 4) here = 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1
  • 33. Path ORAM 10 6 2 5 14 1 13 3 12 4 11 1 2 3 4 Server Client Note: the blocks on the tree are encrypted 5. Write path back 7 Principles: A. Blocks should be pushed down as deep as possible B. Blocks should always be on the path to its position
  • 34. Path ORAM 10 6 2 5 14 1 13 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back. Principle A: Push blocks as deep as possible stash 8 9 1 13 10 67 Try the deepest possible node first
  • 35. Path ORAM 10 6 2 5 14 1 13 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back. Principle A: Push blocks as deep as possible stash 8 9 1 13 10 67 If full, try the upper level
  • 36. Path ORAM 10 6 2 5 14 1 13 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back. Principle A: Push blocks as deep as possible stash 8 9 1 13 10 67 If full, try the upper level
  • 37. Path ORAM 10 6 2 5 14 1 13 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back. Principle A: Push blocks as deep as possible stash 8 9 1 13 10 67 If root is full, store in the stash
  • 38. Path ORAM 10 6 2 5 14 1 13 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back Principle B: The block should always be on its path to “position” stash 8 9 1 13 10 67 2 1 2 1 2 1 1“positions” 7
  • 39. Path ORAM 10 6 2 5 14 1 13 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back Block 8, 1, 13 can end up at any buckets on the entire path Principle B: The block should always be on its path to “position” stash 8 9 1 13 10 67 2 1 2 1 2 1 1 7
  • 40. Path ORAM 10 6 2 5 14 1 13 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back Block 9, 7, 10, 6 can only end up at these buckets Principle B: The block should always be on its path to “position” stash 8 9 1 13 10 67 2 1 2 1 2 1 1 7
  • 41. Path ORAM 2 5 14 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back stash 8 9 1 13 10 67 2 1 2 1 2 1 1 3 2 1 Get back to our example:
  • 42. Path ORAM 2 5 14 8 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back stash 8 9 1 13 10 67 2 1 2 1 2 1 1 3 2 1 13
  • 43. Path ORAM 2 51 14 8 7 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back stash 8 9 1 13 10 67 2 1 2 1 2 1 1 3 2 1 13
  • 44. Path ORAM 9 6 2 51 14 8 7 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back stash 8 9 1 13 10 67 2 1 2 1 2 1 1 3 2 1 13
  • 45. Path ORAM 9 6 2 51 14 8 7 3 12 4 11 1 2 3 4 Server Client position map 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 4 3 4 3 1 1 2 1 1 4 3 2 1 Note: the blocks on the tree are encrypted 5. Write path back stash 10 3 2 1 13
  • 46. Client storage Position map: • Log N bits per block • Totally N log N bits Too much !!!
  • 47. Recursion • Store the position map in another ORAM. • Do this recursively. Server Client … … O-RAM #1 O-RAM #2: Position Map for O-RAM #1 O-RAM #3: Position Map for O-RAM #2
  • 48. Security• Security Definition: Given two access sequences, Computational indistinguishable by anyone but the user • Server only observes a single random number on access to each block Each access number is random not computational distinguishable by anyone but the user
  • 49. Security - example Server Client stashposition map Suppose client accesses blocks 1, 2, 3, 4.5 0 1 2 3 4 5 6 7positions: 1 6 4 Server observes: 5, 1, 6, 4 Client looks up in position map. 5 1 6 4 equally likely If client instead accesses: 46, 49, 53, 60 the two access patterns are indistinguishable
  • 50. Proof for Bounds on Stash Usage Target: the probability for stash overflow is low Equivalent to: Find a subtree in ORAM binary tree that after a sequences of access “s”, the number of Remaining blocks are bigger than n(T)Z+R
  • 51. References 1. Path ORAM, Emil, S., et al. slides and papers, 2012 2. Access Pattern Disclosure on Searchable Encryption. Mohammad, S. et al. , 2006