SlideShare a Scribd company logo
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

Oracle SQL Performance Tuning and Optimization v26 chapter 1
Oracle SQL Performance Tuning and Optimization v26 chapter 1Oracle SQL Performance Tuning and Optimization v26 chapter 1
Oracle SQL Performance Tuning and Optimization v26 chapter 1
Kevin Meade
 
Neo4j - 5 cool graph examples
Neo4j - 5 cool graph examplesNeo4j - 5 cool graph examples
Neo4j - 5 cool graph examples
Peter Neubauer
 
Database ,10 Transactions
Database ,10 TransactionsDatabase ,10 Transactions
Database ,10 Transactions
Ali Usman
 
Cassandra background-and-architecture
Cassandra background-and-architectureCassandra background-and-architecture
Cassandra background-and-architecture
Markus Klems
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
enissoz
 

What's hot (20)

Apache Flink Deep Dive
Apache Flink Deep DiveApache Flink Deep Dive
Apache Flink Deep Dive
 
Oracle SQL Performance Tuning and Optimization v26 chapter 1
Oracle SQL Performance Tuning and Optimization v26 chapter 1Oracle SQL Performance Tuning and Optimization v26 chapter 1
Oracle SQL Performance Tuning and Optimization v26 chapter 1
 
Tutorial - Modern Real Time Streaming Architectures
Tutorial - Modern Real Time Streaming ArchitecturesTutorial - Modern Real Time Streaming Architectures
Tutorial - Modern Real Time Streaming Architectures
 
INTRODUCTION TO DOM AND DOM TREE
INTRODUCTION TO DOM AND DOM TREEINTRODUCTION TO DOM AND DOM TREE
INTRODUCTION TO DOM AND DOM TREE
 
The Pushdown of Everything by Stephan Kessler and Santiago Mola
The Pushdown of Everything by Stephan Kessler and Santiago MolaThe Pushdown of Everything by Stephan Kessler and Santiago Mola
The Pushdown of Everything by Stephan Kessler and Santiago Mola
 
Google File System
Google File SystemGoogle File System
Google File System
 
Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink Step-by-Step Introduction to Apache Flink
Step-by-Step Introduction to Apache Flink
 
cstore_fdw: Columnar Storage for PostgreSQL
cstore_fdw: Columnar Storage for PostgreSQLcstore_fdw: Columnar Storage for PostgreSQL
cstore_fdw: Columnar Storage for PostgreSQL
 
Stanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache SparkStanford CS347 Guest Lecture: Apache Spark
Stanford CS347 Guest Lecture: Apache Spark
 
Neo4j - 5 cool graph examples
Neo4j - 5 cool graph examplesNeo4j - 5 cool graph examples
Neo4j - 5 cool graph examples
 
How to be a Postgres DBA in a Pinch
How to be a Postgres DBA in a Pinch How to be a Postgres DBA in a Pinch
How to be a Postgres DBA in a Pinch
 
KubeCon EU 2016: Full Automatic Database: PostgreSQL HA with Kubernetes
KubeCon EU 2016: Full Automatic Database: PostgreSQL HA with KubernetesKubeCon EU 2016: Full Automatic Database: PostgreSQL HA with Kubernetes
KubeCon EU 2016: Full Automatic Database: PostgreSQL HA with Kubernetes
 
Database ,10 Transactions
Database ,10 TransactionsDatabase ,10 Transactions
Database ,10 Transactions
 
Introduction to parallel processing
Introduction to parallel processingIntroduction to parallel processing
Introduction to parallel processing
 
Migrating from InnoDB and HBase to MyRocks at Facebook
Migrating from InnoDB and HBase to MyRocks at FacebookMigrating from InnoDB and HBase to MyRocks at Facebook
Migrating from InnoDB and HBase to MyRocks at Facebook
 
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpoint
 
Naming in Distributed System
Naming in Distributed SystemNaming in Distributed System
Naming in Distributed System
 
Cassandra background-and-architecture
Cassandra background-and-architectureCassandra background-and-architecture
Cassandra background-and-architecture
 
Apache Flink internals
Apache Flink internalsApache Flink internals
Apache Flink internals
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
 

Viewers also liked

Radial club hand
Radial club handRadial club hand
Radial club hand
Drzameer
 
Drb Nih Talk Jan 2009
Drb Nih Talk Jan 2009Drb Nih Talk Jan 2009
Drb Nih Talk Jan 2009
guest957fad2
 
秘密計算を用いた時系列情報の安全な集計方法
秘密計算を用いた時系列情報の安全な集計方法秘密計算を用いた時系列情報の安全な集計方法
秘密計算を用いた時系列情報の安全な集計方法
成泰 奈良
 

Viewers also liked (13)

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

Data structures assignmentweek4b.pdfCI583 Data Structure
Data structures assignmentweek4b.pdfCI583 Data StructureData structures assignmentweek4b.pdfCI583 Data Structure
Data structures assignmentweek4b.pdfCI583 Data Structure
OllieShoresna
 
Flip flop& RAM ROM
Flip flop& RAM ROMFlip flop& RAM ROM
Flip flop& RAM ROM
Bala Ganesh
 
Profiling the logwriter and database writer
Profiling the logwriter and database writerProfiling the logwriter and database writer
Profiling the logwriter and database writer
Enkitec
 

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
 
Memory compiler tutorial – TSMC 40nm technology
Memory compiler tutorial – TSMC 40nm technologyMemory compiler tutorial – TSMC 40nm technology
Memory compiler tutorial – TSMC 40nm technology
 
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
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

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