Sublinear Zero-Knowledge Arguments for RAM Programs
OSU
V I S A
NCState
Payman Mohassel
Mike Rosulek
Alessandra Scafuro
Oregon State University
Sublinear Zero-Knowledge Arguments for RAM Programs Payman Mike - - PowerPoint PPT Presentation
Sublinear Zero-Knowledge Arguments for RAM Programs Payman Mike Alessandra Mohassel Scafuro Rosulek OSU NCState V I S Oregon State University A Problem C Data S Problem C Data S R 1 Problem C Data S R 1 y 1 Problem C
OSU
V I S A
NCState
Payman Mohassel
Mike Rosulek
Alessandra Scafuro
Oregon State University
Data
Data R1
Data R1 y1
Data R1 y1 R2
Data R1 y1 R2 y2
Data R1 y1 R2 y2 . . . .
Data R1 y1
correct computation
R2 y2 . . . .
proof
Data R1 y1
correct computation
R2 y2 . . . .
proof Zero-Knowledge
Data R1 y1
Zero-knowledge proof
Data R1 y1
work depends only on running time T Efficiency: Zero-knowledge proof
Data R1 y1
work depends only on running time T Efficiency: Composability Security: Zero-knowledge proof
Data R1 y1
work depends only on running time T Efficiency: Composability Security: [constant-round] Zero-knowledge proof
pcp / snarks Goal: proof as short as possible
[Kil92,Mic94,Gro10a,Lip12, GGPR13,….]
pcp / snarks Goal: proof as short as possible
[Kil92,Mic94,Gro10a,Lip12, GGPR13,….]
P’s work depends on size of the input
pcp / snarks Goal: proof as short as possible
[Kil92,Mic94,Gro10a,Lip12, GGPR13,….]
P’s work depends on size of the input
Circuit-based approaches
pcp / snarks Goal: proof as short as possible
[Kil92,Mic94,Gro10a,Lip12, GGPR13,….]
P’s work depends on size of the input
Circuit-based approaches
pcp / snarks Goal: proof as short as possible
[Kil92,Mic94,Gro10a,Lip12, GGPR13,….]
P’s work depends on size of the input
Circuit-based approaches
ORAM [GO96…]
Setup phase proof phase
Setup phase proof phase
GC
T garbled circuits
GC GC GC
Setup phase proof phase
GC
T garbled circuits
GC GC GC
Setup phase
Setup Phase: O(N) for both!
Problem
proof phase
GC
T garbled circuits
GC GC GC
Setup phase
Setup Phase: O(N) for both!
Problem
proof phase
GC
T garbled circuits
GC GC GC
Setup phase
Setup Phase: O(N) for both!
Problem
proof phase
ZK Sets [MRK03] and generalizations [ORS07,..] Special cases
work depends only on running time T UC-Secure
Sulinear Zero-Knowledge for RAM programs
Setup Phase
T = running time
Proof Phase
[based on efficient primitives (GC, Zkboo[GMO16])]
work depends only on running time T UC-Secure
Sulinear Zero-Knowledge for RAM programs
Setup Phase
T = running time
Proof Phase
[based on efficient primitives (GC, Zkboo[GMO16])]
UC-Secure
Init: M
UC-Secure
Init: M
M UC-Secure
Init: M
M UC-Secure
M’,y← Ri(M, wi) Init: M
M UC-Secure
M’,y← Ri(M, wi) Init: M
M
M’
UC-Secure
M’,y← Ri(M, wi) Init: M
Ri ,y V M
M’
UC-Secure
M’,y← Ri(M, wi) Init: M
Ri ,y V Challenge:
extract M from transcript
M
M’
UC-Secure
Setup phase Data
Garbling values
Setup phase Data
Garbling values
Setup phase Data
Garbling values
Setup phase Data Ri
Garbling values
Setup phase Data
access pattern (i1,i2,i3,..)
Ri
Garbling values
Setup phase Data prepares T garbled circuits
access pattern (i1,i2,i3,..)
Ri
Garbling values
Setup phase Data
GC GC GC
[JOK13] prepares T garbled circuits
access pattern (i1,i2,i3,..)
Ri
Garbling values
Setup phase Data
GC GC GC
access pattern (i1,i2,i3,..)
Ri
Garbling values
Setup phase Data
GC GC GC
access pattern (i1,i2,i3,..)
Ri
i1
Garbling values
Setup phase Data
GC GC GC
access pattern (i1,i2,i3,..)
Ri
i1 i2
Garbling values
Setup phase Data
GC GC GC
access pattern (i1,i2,i3,..)
Ri
i1 i2 i3
Garbling values
Setup phase Data
GC GC GC
0/1
access pattern (i1,i2,i3,..)
Ri
i1 i2 i3
Garbling values
Setup phase Data
GC GC GC
0/1 y
access pattern (i1,i2,i3,..)
Ri
i1 i2 i3
Garbling values
Setup phase Data
GC GC GC
replace used encoding
0/1 y
access pattern (i1,i2,i3,..)
Ri
i1 i2 i3
Garbling values
Setup phase Data
GC GC GC
replace used encoding
soundness: V fully controls encoding of the dataset
0/1 y
access pattern (i1,i2,i3,..)
Ri
i1 i2 i3
Garbling values
Setup phase Data
GC GC GC
replace used encoding
soundness: V fully controls encoding of the dataset
0/1
V should do nothing. Soundness….?
y
access pattern (i1,i2,i3,..)
Ri
i1 i2 i3
GC GC GC
Setup phase
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
initial data
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
ORAM initial data
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1,i2,i3,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1,i2,i3,..)
GC GC
[GOSV14, IW14]
y
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
commit
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
commit Merkle Tree
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
commit
codeword
Merkle Tree
i1
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
commit
codeword
Merkle Tree
i1
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
commit
codeword
Merkle Tree
i1
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
commit
codeword
Merkle Tree
i1
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
commit
codeword
Merkle Tree
i1
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
y
commit
codeword
Merkle Tree
i1
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
0/1
commit
codeword
Merkle Tree
i1 i2
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
0/1
commit
codeword
Merkle Tree
i1 i2 i1 i2
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
0/1
commit
codeword
Merkle Tree
i1 i2 i1 i2
Merkle path
i1
Merkle path
i2
GC GC
[GOSV14, IW14]
Reed- Solomon
encode
0/1
commit
codeword
=?
Merkle Tree
i1 i2 i1 i2
Merkle path
i1
Merkle path
i2
correctness of computation
[GOSV14,IW14]
Reed- Solomon
encode
commit Merkle Tree
=?
consistency with tree
proof phase
correctness of computation
[GOSV14,IW14]
Reed- Solomon
encode
commit Merkle Tree
0/1
F_check
challenge
=?
consistency with tree
proof phase
correctness of computation
[GOSV14,IW14]
Reed- Solomon
encode
commit Merkle Tree
0/1
F_check
challenge
Zkboo [gmo16]
=?
consistency with tree
proof phase
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1, i2,..)
commit
Extractable (from P’s mind) Equivocal UC-security
extractability equivocality
✔
Can’t program gRO gRO = NPRO
❌
extractability equivocality
✔
Can’t program gRO gRO = NPRO
❌
Use Pedersen commitment Interactive Commitment Phase
[CJS14]
extractability equivocality
✔
Can’t program gRO gRO = NPRO
❌
Use Pedersen commitment Interactive Commitment Phase
[CJS14]
extractability equivocality
✔
Can’t program gRO gRO = NPRO
❌
Use Pedersen commitment Interactive Commitment Phase
[CJS14]
interactive one-time setup Non-interactive commitment
[this work]
extractability equivocality
✔
Can’t program gRO gRO = NPRO
❌
Use Pedersen commitment Interactive Commitment Phase
[CJS14]
interactive one-time setup Non-interactive commitment
[this work]
Improve CJS14 when # commitments > O(k)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1, i2,..)
GC GC GC
Setup phase
encode ORAM initial data
Merkle Tree
OT
access pattern (i1, i2,..)
[4,bbb]
[1,cq]
1 2 3 4
block 1—> physical path 2
[4,aaa] [3,0aa] [1,0aa]
block 2—> physical path 3
[2,xca]
block 4—> physical path 1 block 3—> physical path 4
Position MAP: ORAM state
ORAM tree Example: “Path ORAM”
[4,bbb]
[1,cq]
1 2 3 4
block 1—> physical path 2
[4,aaa] [3,0aa] [1,0aa]
block 2—> physical path 3
[2,xca]
block 4—> physical path 1 block 3—> physical path 4
Position MAP: ORAM state
ORAM tree Example: “Path ORAM”
[4,bbb]
[1,cq]
1 2 3 4
block 1—> physical path 2
[4,aaa] [3,0aa] [1,0aa]
block 2—> physical path 3
[2,xca]
block 4—> physical path 1 block 3—> physical path 4
Position MAP: ORAM state
ORAM tree
Example: “Path ORAM”
Extractability: ORAM state + ORAM tree (path ORAM) yield an unambiguous memory Minimal modification to Path ORAM suffices.
=? New UC-Com in gRO “Malicious” ORAM
0/1
F_check
challenge
work depends only on running time T UC-Secure [based on efficient primitives (GC, Zkboo)]
Equivocal Commitment in gRO from OWF only (with non interactive commitment) Sigma-Protocol for RAM Programs
Questions?