Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the...

25
Simple and Efficient Two-Server ORAM Dov Gordon (George Mason U.) Jonathan Katz (U. of Maryland) Xiao Wang (MIT & Boston U.)

Transcript of Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the...

Page 1: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

SimpleandEfficientTwo-ServerORAM

DovGordon(GeorgeMasonU.)JonathanKatz(U.ofMaryland)XiaoWang(MIT&BostonU.)

Page 2: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

WhatisORAM

• Outsourcedmemorystorage,allowingoblivious memoryaccess(readandwrite).– Any2sequencesofoperationsareindistinguishablefromtheserver(s)perspectives.

• Parametersofinterest(permemoryaccess):– communicationcomplexity– roundsofinteraction– storagerequirements(serverandclient)– computationalrequirements.

Page 3: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Results

• Parametersofinterest(permemoryaccess):– communicationcomplexity O(BlogN)– roundsofinteraction– storagerequirements– computationalrequirements.

O(BlogN)total,worst-casecommunication.• Smallconstant:10-20,dependingonparameters.

Compareto160in[LO].• [A+]achieveO(logN/loglogN)whenB=𝛀(𝝀log2N)

[LO]Lu-Ostrovsky.DistributedobliviousRAMforsecuretwo-partycomputation.[A+]Abrahametal.AsymptoticallytightboundsforcomposingORAMwithPIR.

Page 4: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Results

• Parametersofinterest(permemoryaccess):– communicationcomplexity O(BlogN)– roundsofinteraction 2rounds– storagerequirements– computationalrequirements.

2rounds!• Canreduceto1ifwemoderatelyincreasetheclientstorage.• Bigopenquestioninsingleserversetting,whilemaintaining

O(BlogN)worst-casecommunication.

Page 5: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Results

• Parametersofinterest(permemoryaccess):– communicationcomplexity O(BlogN)– roundsofinteraction 2rounds– storagerequirements 4N– computationalrequirements.

Serversstore4Nencryptedblocks.[LO]estimateserverstorageofO(Nlog9 N)blocks.• MostsingleserverORAMsrequiretheservertostore

O(Nlog2 N)blocks.

[LO]Lu-Ostrovsky.DistributedobliviousRAMforsecuretwo-partycomputation.

Page 6: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Results

• Parametersofinterest(permemoryaccess):– communicationcomplexity O(BlogN)– roundsofinteraction 2rounds– storagerequirements 4N– computationalrequirements. O(N)

OurservershavetodoO(N)symmetrickeyoperationsforeachquery,whichisadrawbacktoourconstruction.• Computationtimeisnotlikelytobethebottleneckon

reasonabledatasizes.• [DS]DemonstratethisempiricallyinanotherO(N)protocol.

[DS]Doerner andShelat.ScalingORAMforsecurecomputation,2017.

Page 7: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private InformationRetreival

1. ClientwantstoreaddatablockBi indataarrayB1,…,BN(q0,q1)ß PIR.C (1κ,B,|D|,i)

q0 q1

DuplicateB1,…,BN

DuplicateB1,…,BN

Page 8: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private InformationRetreival

1. ClientwantstoreaddatablockBi indataarrayB1,…,BN(q0,q1)ß PIR.C (1κ,B,|D|,i)

2. Serversreplywithr0 andr1,suchthatr0 ⊕ r1 =Bi(rb)ß PIR.S(B1,…,BN,qb)

r0 r1

DuplicateB1,…,BN

DuplicateB1,…,BN

Page 9: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private InformationRetreival

1. ClientwantstoreaddatablockBi indataarrayB1,…,BN(q0,q1)ß PIR.C (1κ,B,|D|,i)

2. Serversreplywithr0 andr1,suchthatr0 ⊕ r1 =Bi(rb)ß PIR.S(B1,…,BN,qb)

r0 r1

DuplicateB1,…,BN

DuplicateB1,…,BN

λ0[1]=0 λ0[2]=1λ0[3]=1 λ0[4]=0

λ1[1]=0 λ1[2]=1λ1[3]=0 λ1[4]=0

Page 10: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private InformationRetreival

1. ClientwantstoreaddatablockBi indataarrayB1,…,BN(q0,q1)ß PIR.C (1κ,B,|D|,i)

2. Serversreplywithr0 andr1,suchthatr0 ⊕ r1 =Bi(rb)ß PIR.S(B1,…,BN,qb)

Securityrequirement:Serverslearnnothingabouti.StructuralAssumption([BGI]):rb =⨁jλb[j]⋅Bj,where

λ0[j]⨁ λ1[j]=1⬌j=i

[BGI]Boyle,Gilboa,Ishai.Functionsecretsharing:Improvementsandextensions

r0 r1

DuplicateB1,…,BN

DuplicateB1,…,BN

Page 11: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private PathRetreival

1. Clientwantstoreaddatapath toleafnodei indata treeT.(q0,q1)ß PIR.C (1κ,B,|T|,i)

2. Serversreplywithr0[1]...r0[L]andr1[1]… r1[L],onerandomvalueforeachlayer,suchthat r0[j]⊕ r1[j]=Tj⬌j liesonthepathtoleafi.(rb[1]… rb[L])ß PPR.S(T,qb)

Securityrequirement:Serverslearnnothingabouti.

r0 r1

DuplicateB1,…,BN

DuplicateB1,…,BN

Page 12: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private PathRetreival

Eachlayerofthetreecanbetreatedasitsown,independentinstanceofaPIRscheme.

ToquerythepathtoleafnodeBi,theclientmakesLindependentPIRqueries,oneforeachlayerofthetree.

Thecostof[BGI]forasinglequery: (2|B|)+O(κ logn)Thecostis(logn)(PIR), (2|B|logn)+O(κ log2 n)Wewillshowhowtoachieve (2|B|logn)+O(κ logn)

[BGI]Boyle,Gilboa,Ishai.Functionsecretsharing:Improvementsandextensions

(NaïveSolution)

Page 13: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private PathRetreival

ToquerythepathtoleafnodeBi,theclientmakesasingle PIRqueryforindexi,overleafnodesB1…Bn.

Page 14: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private PathRetreival

λ0[1]=0 λ0[2]=1λ0[3]=1 λ0[4]=0

ToquerythepathtoleafnodeBi,theclientmakesasingle PIRqueryforindexi,overleafnodesB1…Bn.InPIRscheme,serverresponsesare:rb =⨁jλb[j]⋅Bj

λ1[1]=0 λ1[2]=1λ1[3]=0 λ1[4]=0

Page 15: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Private PathRetreival

λ0[00]=0λ0[01]=1λ0[10]=1λ0[11]=0

ToquerythepathtoleafnodeBi,theclientmakesasingle PIRqueryforindexi,overleafnodesB1…Bn.InthePPRscheme,serversendsrb[j]forlayerj,where

rb[j]=⨁k λb[k]⋅T[k],∀k:|k|=j.

λ1[00]=0λ1[01]=1λ1[10]=0λ1[11]=0

λ0[0]=1

⨁ ⨁

⨁λ0[1]=1

λ0[root]=0

λ0[0]=1

⨁ ⨁

⨁λ0[1]=0

λ0[root]=1

Page 16: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

ORAM

Page 17: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

ObliviousRAM

• DataisstoredinatreeofdepthL=logN.• Eachnodeinthetreecontainsa“bucket”ofsizeZ.• Rootnodeisspecial:stashstoredatclient.• RecordsareoftheformEnc(flag,i,Fk(i),Bi)– Flagindicatesrealordummy.– Fk(⋅)isaPRFheldbytheclient.

(structure)

Page 18: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

ObliviousRAM

• DataisstoredinatreeofdepthL=logN.• Eachnodeinthetreecontainsa“bucket”ofsizeZ.• Rootnodeisspecial:stashstoredatclient.• RecordsareoftheformEnc(flag,i,Fk(i),Bi)– Flagindicatesrealordummy.– Fk(⋅)isaPRFheldbytheclient.

(structure)

Invariants:1. Bi isalwaysalongthepathtoleafnodeFk(i).2. Themostup-to-datecopyofBi isclosesttotheroot.

Page 19: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

ObliviousRAM

ToreadBi:• PPR.C(Fk(i)),andreturnthereal recordclosesttotheroot.– WedoNOT assignBi anewleafnode!

TowriteBi:• Removerecordsofform(1,i,Fk(i),*)fromstash.• Writerecord(1,i,Fk(i),Bi)tostash.

(read/write)

Invariants:1. Bi isalwaysalongthepathtoleafnodeFk(i).2. Themostup-to-datecopyofBi isclosesttotheroot.

Page 20: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

ObliviousRAM

WedoNOT assignBi anewleafnode!InmostpriorORAMconstructions,thepathtoBi isrequestedintheclear:

– Toensuresecurity,everytimeBi isaccessed,itmustlieonanew,randompath.

– Requiresadynamicmappingbetweenrecordsandtheirleafnodes.Typicallystoredrecursively,requiringlogNoverhead.

– Incontrast,wecanuseastatic,pseudo-randommapping.

(staticleafassignments)

Invariants:1. Bi isalwaysalongthepathtoleafnodeFk(i).2. Themostup-to-datecopyofBi isclosesttotheroot.

Page 21: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

ObliviousRAM

Asinpriorwork,ourrootnode(stash)fillsup.EveryAoperations,wechooseapath,andpushitemsdownthepathasfarastheycango.– Pathischosendeterministically,asin[G+],usingreverselexicographicordering.

– Bothinvariantsaremaintained:• Weremoveduplicaterealrecordswhennottheclosesttoroot.• Wepushremainingrecordsdown,subjecttothefirstinvariant.

Invariants:1. Bi isalwaysalongthepathtoleafnodeFk(i).2. Themostup-to-datecopyofBi isclosesttotheroot.

(eviction)

[G+]Gentryetal.OptimizingORAMandusingitefficientlyforsecurecomputation.

Page 22: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

ObliviousRAM– Pathischosendeterministically,asin[G+],usingreverselex.ordering.– Easyanalysis:eachnodeatleveljisonanevictionpathexactlyevery

2j evictions.Expectedloadoneachnodeis½.

[G+]Gentryetal.OptimizingORAMandusingitefficientlyforsecurecomputation.

1 5 73 2 6 84

(eviction)

Page 23: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

Security /Stash

• ThesecurityfollowsimmediatelyfromthesecurityofthePPRscheme.

• Wecanboundthestashsizeasdonein[R+].Communicationisminimizedwhen3Z/Aisminimized.

[R+]Ren etal.ConstantsCount:PracticalImprovementstoObliviousRAM,2014.

Page 24: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

FurtherFeatures

• Publicread/writeischeaperthanobliviousoperations.Simplyrequestthewholepathintheclear.

• Initializationisforfree:wecanshareFk()withtheservers,aslongastheaccessesdon’tdependonFk.

• Onlywriteoperationsfilltherootnode,soevictioncanbelessfrequentifyoucanrevealreadvs.write.

Page 25: Simple and Efficient Two-Server ORAM - Asiacrypt · • Computation time is not likely to be the bottleneck on reasonable data sizes. • [DS] Demonstrate this empirically in another

THANKS!