Download presentation
Presentation is loading. Please wait.
Published byOlivia Watts Modified over 9 years ago
1
TOWARDS PRACTICAL (GENERIC) ZERO-KNOWLEDGE Claudio Orlandi – Aarhus University
2
In this talk: 3 simple ideas from Jawurek, Kerschbaum, Orlandi Zero-Knowledge from Garbled Circuits, CCS 2013 Frederiksen, Nielsen, Orlandi Privacy-Free Garbled Circuits, EUROCRYPT 2015 Chuo, Orlandi The Simplest OT Protocol, ePrint (next week?)
3
Jawurek, Ferschbaum, Orlandi CCS 2013 Zero-Knowledge from Garbled Circuits
4
Zero-Knowledge Protocols IP/ZK – GMR85 Revolutionary idea in cryptography and CS Soundness: even a corrupted P cannot prove false statements Zero-Knowledge: even a corrupted V only learns that the statement is true (and not why) Important in practice Authentication Essential component in complex protocols What about efficiency?
5
Zero-Knowledge Protocols Many examples of efficient ZK for algebraic languages Discret Logarithm RSA Lattice ... What about non-algebraic statements? How do I prove ”I know x s.t. y=SHA(x)”? This work tries to fill this gap!
6
Related Work IKOS’07 ZK from (honest majority) MPC First step towards the ”MPC in the head” approach Efficient NIZK/SNARK (GOS06,GGPPR13,…) Non-interactive Require heavy public key operations per gate
7
Zero-Knowledge vs Secure 2PC A B f,xf,y f(x,y) P V x,w R(x,w) = true x
8
Garbled Circuits Ev De Gb En f x [F] e d [X] [Z] z Correct if z=f(x) Values in a box are “garbled”
9
OT [F y ] x e [X] [Z][Z] ([F y ],e,d) Gb( f(·,y) ) z De([Z],d) [Z] Ev([F y ],[X]) 2PC from GC (Yao’s protocol) Alice Bob Soundness: If A is corrupted and [Z*] A([F],[X]), then De([Z*],d) is either f(x) or “ ” B could garble a “malicious” function g≠f e.g. g(x)= lsb(x)
10
2PC secure against active adversaries? How can Bob prove that he garbled f without revealing any extra information? Plenty of (costly) solutions are known for 2PC Zero-Knowledge Cut-and-choose Etc. Can we do better for ZK?
11
ZK based on GC The main idea: In ZK the verifier (Bob) has no secrets! After the protocol, Bob can reveal all his randomness. Alice can simply check that Bob behaved honestly by redoing his entire computation.
12
OT [F] we [W] Com([Z]) ([F],e,d) Gb( f,r ) z De([Z],d) [Z] Ev([F],[W]) Prover Verifier If [F]=Gb(f,r) (and check OTs) [Z] Prover work ~ 2x passive Yao (else abort) reveal r, e Verifier work ~ Passive Yao Communication ~ Passive Yao
13
CCS Implementations Code not open-source, but easily reproducible FastGC garbled circuits implementation Smart-Tillich optimized circuits: AES, MD5, SHA… GCParser to combine the two above SCAPI for implementing OT (using elliptic curves)
14
Runtime (rough estimates) Proof of “c=AES(k,m)” for secret k and public (c,m) AES: 35k gates (7k ANDs/28k XORs) Communication: 204kB (98% GC) Runtime: OT: 29.4ms (Using Chou-Orlandi OT) (|w|=128) Garbling: 721µs (Using JustGarble GaXR) Eval: 273 µs Total (Garble+OT+Eval+Garble) ~ 31.2ms (+network)
15
Frederiksen, Nielsen, Orlandi EUROCRYPT 2015 Privacy-Free Garbled Circuits
16
Garbled Circuits Ev De Gb En f x [F] e d [X] [Z] z Correct if z=f(x)
17
Main idea In 2PC GC ensure that evaluator does not learn internal values In Yao garbled circuits evaluation must be oblivious But in ZK the prover knows all the input bits! He also knows all internal wires values Can we optimize? Yes!
18
Garbling Schemes without Privacy Conceptual contribution: Natural separation between privacy and authenticity Concrete efficiency: Better constants in garbled circuit Can we construct garbling schemes tailored to specific applications, which are more efficient than Yao’s original construction?
20
Garbling a Circuit ([F],e,d) Gb(f) K 1 0,K 1 1 Choose 2 random keys K i 0,K i 1 for each input wire For each gate compute (Z 0,Z 1,gg) Gb(L 0,L 1,R 0,R 1 ) Output e=(K i 0,K i 1 ) for all input wires d=(Z 0,Z 1 ) [F]=(gg i ) for all gates i K 2 0,K 2 1 Z 0,Z 1 K i 0,K i 1
21
Evaluating a GC [Z] Ev([F],[X]) K1aK1a Parse [X] as (K 1 x1,K 2 x2,…) for all input wires Parse [F] as (gg 1,gg 2, …) for all gates For each gate compute Z g(a,b) Ev(L a,R b,gg) Output [Z]=Z’ K2bK2b Z’ KicKic
22
Garbling a Gate AND/XOR L 0,L 1 R 0,R 1 Z 0,Z 1 A (privacy-free) garbled gate is a gadget that given two inputs keys gives you the right output key (and nothing else) (Z 0,Z 1,gg) Gb(L 0,L 1,R 0,R 1 ) Z g(a,b) Ev(L a,R b,gg) //and not Z 1-g(a,b)
23
Garbling w/o free-XOR (GRR1) Gb_AND(L 0,L 1,R 0,R 1 ) Output keys: Z 1 = H(L 1,R 1 ) Z 0 = H(L 0 ) Send: C = Z 0 ⊕ H(R 0 ) Ev_AND(L x, R y, C) If(x = y = 1) output Z 1 = H(L x, R y ) If(x = 0) output Z 0 = H(L x ) If(y = 0) output Z 0 = C ⊕ H(R y )
24
Garbling w/o free-XOR (GRR1) Gb_XOR(L 0,L 1,R 0,R 1 ) Output keys: Z 0 = L 0 ⊕ R 0 Z 1 = L 0 ⊕ R 1 Send: C = L 0 ⊕ R 0 ⊕ L 1 ⊕ R 1 Ev_XOR(L a, R b, C) If(a = 0) output Z (a ⊕ b) = L a ⊕ R b If(a = 1) output Z (a ⊕ b) = C ⊕ L a ⊕ R b
25
Conclusions & Open Problems Still a lot to be done with garbling schemes! Other specific purpose garbling schemes? Non-interactive ZK (w/o PKE/gate)?
26
Chou, Orlandi coming soon on ePrint The Simplest Oblivious Transfer Protocol
27
Diffie Hellman Key Exchange X = g x K = H(Y x ) m Y = g y C = E(K,m) K = H(X y ) m = D(K,C) There is another key K’ = H( (X/Y) x ) which Bob cannot compute!
28
X = g x The Simplest OT protocol K 0 = H(Y x ) K 1 = H((X/Y) x ) m 0,m 1 C 0 = E(K 0,m 0 ) C 1 = E(K 1,m 1 ) b=0 : Y = g y b=1 : Y = X/g y b Y K b = H(X y ) m b = D(K b,C b ) E(( α, β ), m) = ( α + m, ( α + m) β )
29
The Simplest OT Protocol Complexity: Communication: 1ge/OT + 2 ctxt/OT + 1ge Computation: 3 exp/OT + 3 H/OT + 2 exp Security: UC vs. active adversary with programmable RO Performances: ~5000 OT/s Implementation based on Bernstein’s Curve25519
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.