Tarik Moataz June 2nd 2016 Aarhus MPC workshop 2016
*Joint work with Travis Mayberry and Erik-Oliver Blass
Aarhus MPC workshop 2016 *Joint work with Travis Mayberry and - - PowerPoint PPT Presentation
Tarik Moataz June 2 nd 2016 Aarhus MPC workshop 2016 *Joint work with Travis Mayberry and Erik-Oliver Blass Part I ORAM Overview Part II C-ORAM*: Constant Communication ORAM with homomorphic Encryption Part III CH f -ORAM**: Constant
Tarik Moataz June 2nd 2016 Aarhus MPC workshop 2016
*Joint work with Travis Mayberry and Erik-Oliver Blass
Part I
ORAM Overview
Part II
C-ORAM*: Constant Communication ORAM with homomorphic Encryption
Part III
CHf-ORAM**: Constant Communication ORAM without homomorphic Encryption
2 * published at CCSβ15 ** Work in progress
96
3
CPU MEM
Set of registers (Privat ate e Storage) age) Instruction 1 Instruction t Program ππ’ Set of memory blocks (Public ublic Storage) age) RAM program
4
Read(1) Write(4) Write(5) Access pattern = Accessed blocks 1,4, 5 + Their Values !
5
Picture from http://radix-communications.com/randomness/
πππππ‘π‘1, β¦ , πππππ‘π‘π πππππ‘π‘β²1, β¦ , πππππ‘π‘β²π ππ1 = π΅(πππππ‘π‘1), β¦ , π΅(πππππ‘π‘π) ππ2 = π΅(πππππ‘π‘β²1), β¦ , π΅(πππππ‘π‘β²π)
6
7
Access β¦ Access Oblivious simulation of RAM
8 * Joint work with Shruti Tople, Yaoji Jia and Prateek Saxena to appear at USENIXβ16
Software Protection G87 Cloud Storage SS13a, SS13b Secure RAM computation, MPC OS97, GKKKMRV12, GGHJRW13 Garbled RAM LO13 Privacy-preserving WNLCSSH14, JMTS16*
Private information Storage OS97)
9
Access Access (possible like in PIS)
10
Multiple CPUs Shared Memory
11
12
π(1) private storage π(1) constant number of blocks
Unfortunately not possible
13
π(log π) private storage π(log π) number of blocks β¦
Ring/P g/Path ath ORAM
Block size in Ξ©(log2 π)
14
π(1) private storage π(1) number of blocks
Onion
Block size in
Ξ©(log5 π)
Very slow
Can we reduce computational overhead and block size?
15
π(1) private storage π(1) number of blocks
C-ORAM RAM Block size in
Ξ©(log4 π)
10 times faster
16
π(1) private storage π(log π) number of blocks
Lu and Ostr trovsky vsky 13 13
β¦ π( π) π(1) number of blocks
Shi and Stef efano anov 13 13
π(log π) number of blocks No blocks β¦
17
π(1) private storage π(1) number of blocks β¦ No blocks
Block size in
Ξ©(log3 π)
18
Maybe, TWORAM, Bucket ORAM
Computation should not annihilate constant communication
Tree-based ORAM SCSLβ11
19
β
Every element is defined by a leaf identifier
β
Every element read/updated is written in the root
elements towards the leaves
Position Map recursively stored
Bucket
e2 leaf1 e1 leaf2 e3 leaf4 e4 leaf3
Leaf bucket 20
e3 e2 e1 e4
e2 leaf1 e1 leaf2 e3 leaf4 e4 leaf3
Step 1 e3 e2 e1 e4
e2 leaf1 e1 leaf1 e3 leaf4 e4 leaf3
Step 2 e3 e2 e1 e4
e2 leaf1 e1 leaf1 e3 leaf4 e4 leaf3
Step 3 21
Part I ORAM Overview
Part II
C-ORAM*: Constant Communication ORAM with homomorphic Encryption
Part III CHf-ORAM**: Constant Communication ORAM without homomorphic Encryption
22
Meta - information blocks ORAM tree We say that an ORAM is a constant communication ORAM if:
The server in this model is a computational server rather than a storage-only server
23
24
25
123 10 Q = (E(0), E(1), E(0) ) E(123)
10 . E(0) E(123) E(0)
Bucket 1 Bucket 2 headers PIR query
π(ππ) β π(π) π(ππ)
Header
expensive operation in Onion ORAM
π(ππ) π(π) β π(π) π(ππ) β π(π) π(π) β π(π)
Header
π(π ππ ) π(π ππ ) π(π ππ ) π(π π )
Bucket 2
Header
π(π ππ ) π(π ππ ) π(π ππ ) π(π ππ )
π(π), , π(π), , π(π), , π(π)
26
Bucket 1 Bucket 2
Headers Header
Merged bucket headers Permutation π Homomorphic Addition
π(ππ) π(ππ)
1 0 1 0 0 1 1 0 Generate π
π(ππ) π(ππ)
Headers
π(ππ) π(ππ)
Headers
π(ππ) π(ππ)
Apply π on bucket 2
π(ππ) π(ππ)
Header
π(ππ) π(ππ) 27
permutation
1 1 1 1 1 1 1-positions: 1, 3, 4 0-positions: 2, 5, 6 1-positions: 1, 4, 6 0-positions: 2, 3, 5 1, 3, 4 2, 3, 5 2, 5, 6 1, 4, 6 Bucket 1 Bucket 2 Bucket 1 Bucket 2 Random mapping Random mapping 1 3 4 2 3 5 2 5 6 1 4 6 3 1 5 2 6 4 π
28
Headers of root PIR vector Headers of bucket1 PIR vector Headers of leaf node PIR vector 1 2 3 4
29
1 2 3 4 Block Adding the block to the root with PIR-Writ ite
30
Headers of root Permutation Headers of bucket 1 and 2 Permutation Headers of leaf nodes 1 and 3 Permutation Oblivious merging Copy bucket
31
from a random permutation
32
#empty blocks of parent < #real blocks of child #empty blocks of child < #real blocks of parent
Headers
π(ππ) π(ππ)
Headers
π(ππ) π(ππ)
Headers
π(ππ) π(ππ)
Headers
π(ππ) π(ππ)
Headers
π(ππ) π(ππ) π(ππ) π(ππ)
Ad Addit itiona
blocks
33
π is constant equal to 4 (empirically 2.2)
Simplified block size Homomorphic additions Homomorphic scalar multiplications Onion ORAM
Ξ©(log5 N) N) π°(π¦π©π‘π πΆ) π°(π¦π©π‘π πΆ)
C-ORAM
Ξ©(log4 N) N) π°(π¦π©π‘π πΆ) π°(π¦π©π‘π πΆ)
34
Meta-information: |PIR vectors| + |headers|+ |Permutations|
Computation Storage 4000 % smaller er block
size e for the same e datase set 10 000 % fewer er homomor
hic operat ations
35
However C-ORAM still needs 5~10 minutes per access?
Part I ORAM Overview
Part II
C-ORAM: Constant Communication ORAM with homomorphic Encryption
Part III
CHf-ORAM: Constant Communication ORAM without homomorphic Encryption
36
37
How can we get rid of the ver
ery e y exp xpen ensi sive e Homomorphic
encryption?
38
39 π(ππ) π(ππ)
Bucket
ππβ r2 ππβ r1 r2 r1
Share 2 Share 1
Bucket 1 Bucket 2
Headers
ππ β r4 ππ β r3
Headers
ππ β r1 ππ β r2 40 rβ1 rβ2 rβ3 rβ4
Server 1 Bucket 1 Bucket 2
Headers
r4 r3
Headers
r1 r2 rβ1 rβ2 rβ3 rβ4
Server 2
Headers
ππ β r1 β rβ2 ππ β r2
2 β rβ1
ππ β r3
3 β rβ4
ππ β r3
3 β rβ3
Permutation π
Headers
r1 β rβ2 r2
2 β rβ1
r3
3 β rβ4
r3
3 β rβ3
Same Permutation π
41
Download all headers of the selected path Determine the exact position of the block π1 = 0,1, 0,0, 1,0,1,1, 0,1,1,1 π2 = 0,1, 0,0, 1,1,1,1, 0,1,1,1
42
Compute Result1 β Result2 Result2 = Οπ=1
log π π2 [π]βBi
Result1 = Οπ=1
log π π1 [π]βBi
43
For any constant #π»πππππ β₯ π and for any πͺ β₯ π β πΆ, there exists an IT-PIR construction with communication complexity O(B) bit. For any constant #π»πππππ β₯ π and for any πͺ β₯ π β πππ πΆ, there exists an IT-PIR construction with communication complexity O(B) bit.
44
Tree 1 Tree 2 Tree 3 Tree 4
shared (block per block)
C-ORA RAM
CH CHf-OR ORAM AM
45
CHf-ORAM is as good as PIS in communication enjoying a polylog in computation (rather than linear)
46
(2012 Macbook Pro with 2.4 Ghz Intel i7)
computation
47
CHf-ORAM has consta stant t cir ircuit uit siz ize, wit ith consta stant t priva ivate stora rage wit ith no nee eed f d for r OS
48
Scheme eme Circu cuit it Size SCSLβ11 π(log4 π + πΆ β log2 π) CLPβ14 π(log4 π + πΆ β log2 π) Path SC ORAM π(log log N (log3 π + πΆ β log π)) LOβ13 π(log π β π·πππΊ + πΆ β log π) Circuit ORAM π(log3 π + πΆ β log π)
CHf-ORAM π(log4 π + πΆ)
If πΆ is larger than log4 π, then circuit size is constant in B
Simplified block size in bits Private Storage in block Communicat ion in block Homomorphic additions Homomorphic scalar multiplications #Servers C-ORAM
Ξ©(log4 N) N) π·(π) π·(π) π°(π¦π©π‘π πΆ) π°(π¦π©π‘π πΆ) 1
CHf-ORAM
Ξ©(log3 N) N) π·(π) π·(π) β β 4
49
50
Reduce the block size to be in π(log2 π) (No heavy computation)
Simplified block size in bits Private Storage in block Communica tion in block Homomorphic additions Homomorphic scalar multiplications #Servers C-ORAM
Ξ©(log4 N) N) π·(π) π·(π) π°(π¦π©π‘π πΆ) π°(π¦π©π‘π πΆ) 1
CHf-ORAM
Ξ©(log3 N) N) π·(π) π·(π) β β 4 Ξ©(log g N) or Ξ©(log2 N) π·(π) π·(π) β β 1
51
Picture from http://www.deviantart.com/browse/all/fanart/?q=super-sheep&order=9
52