![Page 1: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/1.jpg)
Oblivious Data StructuresXiao Shaun Wang, Kart ik Nayak, Chang L iu , T-H. Hubert Chan, E la ine Sh i , Emi l Stefanov, Yan Huang
![Page 2: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/2.jpg)
Hierarchical ORAMs
[Goldreich’87][GO’96][KLO’12]
Oblivious RAM is a cryptographic primitive for provably obfuscating access patterns to data.
![Page 3: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/3.jpg)
Hierarchical ORAMs
[Goldreich’87][GO’96][KLO’12]
Bandwidth Overhead:=Data transferred in oblivious case
Data transferred in non-oblivious case
![Page 4: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/4.jpg)
Hierarchical ORAMs
[Goldreich’87][GO’96][KLO’12]
Tree-based ORAM[SCSL’11]
[SDSCFRYD’13]
Bandwidth Overhead:=Data transferred in oblivious case
Data transferred in non-oblivious case
![Page 5: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/5.jpg)
Can we do better?
Best known ORAM achievesO(log2 N/log log N) overhead [KLO’12]
![Page 6: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/6.jpg)
Can we do better?
Best known ORAM achievesO(log2 N/log log N) overhead [KLO’12]
Path ORAM partially solves this problem
![Page 7: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/7.jpg)
Can we do better?
Best known ORAM achievesO(log2 N/log log N) overhead [KLO’12]
![Page 8: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/8.jpg)
Can we do better for
restricted access patterns?
Best known ORAM achievesO(log2 N/log log N) overhead [KLO’12]
![Page 9: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/9.jpg)
RAM
![Page 10: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/10.jpg)
Bounded-degree trees
Access patterns with locality
RAM
![Page 11: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/11.jpg)
Bounded-degree trees
Access patterns with locality
Can we do better for these
restricted access patterns?
![Page 12: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/12.jpg)
Bounded-degree trees
Access patterns with locality
Can we do better for these
restricted access patterns?
YES
![Page 13: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/13.jpg)
Bounded-degree tree
Stack / Queue
![Page 14: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/14.jpg)
Bounded-degree tree
Stack / QueueMap (AVL
tree, B tree) Heap
![Page 15: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/15.jpg)
Bounded-degree treeThe effective overhead is O(log N)
Stack / QueueMap (AVL
tree, B tree) Heap
![Page 16: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/16.jpg)
Bounded-degree treeThe effective overhead is O(log N)
Stack / QueueMap (AVL
tree, B tree) Heap
ORAM: O(log2 N/log log N)
![Page 17: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/17.jpg)
Bounded-degree treeThe effective overhead is O(log N)
Inspired by [GGHJRW’13]
Speedup
Bandwidth overhead 12x – 16x
Circuit size 10x – 14x
Compared with Path ORAM; data size 230
Stack / QueueMap (AVL
tree, B tree) Heap
![Page 18: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/18.jpg)
Access patterns with locality
![Page 19: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/19.jpg)
Access patterns with localityOverhead:
2-dimensional grid
O(log1.5 N)
Deque, doubly linked list
O(log N)
General graphs
O(12d log2-1/d N)d: doubling dimension of the graph
![Page 20: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/20.jpg)
Access patterns with localityOverhead:
2-dimensional grid
O(log1.5 N)
Deque, doubly linked list
O(log N)
General graphs
O(12d log2-1/d N)d: doubling dimension of the graph
Bandwidth overhead speedup for deque, doubly linked list - 9x
Compared with Path ORAM; data size 230
![Page 21: Oblivious Data Structures - Crypto 2014 rump session€¦ · Compared with Path ORAM; data size 230. Open source implementation on a garbled circuit backend coming soon Stack / Queue](https://reader031.vdocument.in/reader031/viewer/2022041107/5f0ac97b7e708231d42d56fd/html5/thumbnails/21.jpg)
Open source implementation
on a garbled circuit backend
coming soon
Stack / Queue
Map (AVL tree)
Heap
Deque
Doubly linked list
Oblivious Data Structures: [WNLCSSH’14]
Thank [email protected]