fast zero knowledge proofs and post quantum signatures
play

Fast Zero-Knowledge Proofs and Post-Quantum Signatures Claudio - PowerPoint PPT Presentation

Fast Zero-Knowledge Proofs and Post-Quantum Signatures Claudio Orlandi Aarhus University @claudiorlandi Based on joint work with: Meliisa Chase (Microsoft) David Derler (TU Graz) Tore Frederiksen (BIU) Irene Giacomelli


  1. Fast Zero-Knowledge Proofs and Post-Quantum Signatures Claudio Orlandi – Aarhus University @claudiorlandi

  2. Based on joint work with: • Meliisa Chase (Microsoft) • David Derler (TU Graz) • Tore Frederiksen (BIU) • Irene Giacomelli (UW-Madison) • Steven Goldfeder (Princeton) • Marek Jawurek (SAP) • Florian Kerschbaum (SAP) • Jesper Madsen (AU) • Jesper Buus Nielsen (AU) • Sebastian Ramacher (TU Graz) • Christian Rechberger (TU Graz, DTU) • Daniel Slamanig (TU Graz) • Greg Zaverucha (Microsoft)

  3. Motivation: Authentication P V “I am Claudio” “I know my password” “Here is my Pa55w0rD”

  4. Motivation: Authentication A V P “I am Claudio” “Here is my Pa55w0rD” “I am Claudio” “Here is my Pa55w0rD”

  5. Motivation: Zero-Knoweldge Authentication P V “I am Claudio” q a q a

  6. ZK: Definitions P(x) V “I know x s.t. f(x)=1” q Only P knows x a q P,V know f a

  7. ZK: Definitions P(x) V • Completeness • P,V honest à V accepts “I know x s.t. f(x)=1” q a q a

  8. ZK: Definitions P V • Completeness • P,V honest à V accepts “I know x s.t. f(x)=1” q • Proof-of-Knowledge a* q • If P does not know x à V rejects a*

  9. ZK: Definitions P(x) V • Completeness • P,V honest à V accepts “I know x s.t. f(x)=1” q* • Proof-of-Knowledge a q* • If P does not know x à V rejects a • Zero-Knowledge • V learns nothing about x

  10. What can be proven in ZK? Feasability : NP, even PSPACE! This talk: Can we construct efficient proofs for non- algebraic languages such as Efficiently : algebraic languages (Schnorr, …, Groth-Sahai, …) “I know x such that SHA(x)=y”? Two protocols: SNARKS (generic) • ZKGC (from Garbled Circuits) • Short proofs, efficient verification J • ZKBoo (from MPC) • Slow prover L One application: • Implementations: Pinocchio, libsnark, • Generic (post-quantum) signatures

  11. Example: Schnorr Protocol Go to Example

  12. The Crypto Toolbox Stronger assumption Weaker assumption OTP >> SKE >> PKE >> FHE >> Obfuscation More efficient Less efficient 12

  13. Zero-Knowledge from Garbled Circuits Jawurek, Ferschbaum, Orlandi CCS 2013

  14. Zero-Knowledge vs Secure 2PC f,x f,y f,x f B A V P f(x,y) f(x)=1

  15. Garbled Circuits Values in a box are “garbled” d r [F] y f De Gb [Y] [X] Ev e En x Correct if y=f(x)

  16. Garbled Circuits: Authenticity d r [F] y* f De Gb [y*] [X] Ev e En x y* = f(x) OR y* = ⊥

  17. (HV)ZKGC to prove f(x)=y Prover(x) Verifier( ) ([F],e,d) ß Gb( f,r ) x e OT [X] [F] [Y] ß Ev([F],[X]) [Y] Accept if De(d,[Y])=y

  18. (HV)ZKGC to prove f(x)=y Prover(?) Verifier( ) ([F],e,d) ß Gb( f,r ) x* e OT [X] [F] [Y*] De(d,[Y*])={f(x*), ⊥ } Authenticity!

  19. (HV)ZKGC to prove f(x)=y Prover(x) Verifier( ) ([G],e,d) ß Gb( g,r ) x e OT [X] [G] [Y] [Y] ß Ev([G],[X]) Learn g(x)=De(d,[Y]) Corrupt V can change f with g breaking ZK!

  20. Garbled circuits with active security? How can the verifier prove that f was garbled correctly (without breaking soundness)? • Plenty of (costly) solutions are known for 2PC • Zero-Knowledge • Cut-and-choose • Etc. • Can we do better for ZK?

  21. ZKGC to prove f(x)=y Prover(x) Verifier( ) ([F],e,d) ß Gb( f,r ) x e OT Commitment [X] [F] [Z] ß Ev([F],[X]) Comm([Y]) r If [F]!=Gb(f,r) abort Open([Y]) else Accept if De(d,[Y])=y Active security Using only 1 GC!

  22. Recap: 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 .

  23. Privacy-Free Garbled Circuits Frederiksen, Nielsen, Orlandi EUROCRYPT 2015

  24. Main idea • In 2PC the garbler has secret input • GC privacy à privacy of input • In ZK V has no input to protect • Can we get more efficient GC without privacy? Yes!

  25. Example: Privacy Free Garbling Go to PFGC

  26. 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)

  27. Applications Hu, Mohassel, Rosulek • Sublinear ZK (via ORAM) , Crypto 2015 Chase, Ganesh, Mohassel, • Privacy-Preserving Credentials , Crypto 2016 Kolesnikov, Krawczyk, Lindell, Malozemoff, Rabin, • Attribute-Based KE with General Policies , CCS 2016 Baum; Katz, Malozemoff, Wang; Afshar, Mohassel, Rosulek, • Input validity in 2PC , SCN 2016; ePrint; ePrint …

  28. ZKBoo: Faster Zero-Knowledge for Boolean Circuits Giacomelli, Madsen, Orlandi USENIX Security 2016

  29. From ZKGC to ZKBoo • ZKGC is inherently interactive ( private coin, cannot use Fiat-Shamir) • IKOS ( Ishai, Kushilevitz, Ostrovsky, Sahai ) proposed in 2007 a method to get ZK from MPC. Plugging the right MPC protocol one can get ZK with very good asymptotic complexity. • ZKBoo can be seen as a generalization, simplification and implementation of IKOS with the sole goal of practical efficiency.

  30. To build ZKBoo, we need to find a suitable Instead of MPC protocol, we speak about (2 , 3) -decomposition for C : { Share , Output 1 , Output 2 , Output 3 , Rec } ∪ { f ( j ) 1 , f ( j ) 2 , f ( j ) 3 } j =1 ,..., N 12 / 19

  31. x Share To build ZKBoo, we need to find a suitable w 0 w 0 w 0 Instead of MPC protocol, we speak about 1 2 3 (2 , 3) -decomposition for C : { Share , Output 1 , Output 2 , Output 3 , Rec } ∪ { f ( j ) 1 , f ( j ) 2 , f ( j ) 3 } j =1 ,..., N 12 / 19

  32. x Share To build ZKBoo, we need to find a suitable w 0 w 0 w 0 Instead of MPC protocol, we speak about 1 2 3 (2 , 3) -decomposition for C : f 1 f 1 f 1 1 2 3 { Share , Output 1 , Output 2 , Output 3 , Rec } w 1 w 1 w 1 1 2 3 ∪ { f ( j ) 1 , f ( j ) 2 , f ( j ) 3 } j =1 ,..., N 12 / 19

  33. x Share To build ZKBoo, we need to find a suitable w 0 w 0 w 0 Instead of MPC protocol, we speak about 1 2 3 (2 , 3) -decomposition for C : f 1 f 1 f 1 1 2 3 { Share , Output 1 , Output 2 , Output 3 , Rec } w 1 w 1 w 1 1 2 3 ∪ { f ( j ) 1 , f ( j ) 2 , f ( j ) 3 } j =1 ,..., N f 2 f 2 f 2 1 2 3 . . . . . . . . . w N w N w N 1 2 3 12 / 19

  34. To build ZKBoo, we need to find a suitable w 0 w 0 w 0 Instead of MPC protocol, we speak about 1 2 3 (2 , 3) -decomposition for C : { Share , Output 1 , Output 2 , Output 3 , Rec } w 1 w 1 w 1 1 2 3 ∪ { f ( j ) 1 , f ( j ) 2 , f ( j ) . . . 3 } j =1 ,..., N . . . . . . . . . . . . . . . w N w N w N 1 2 3 Output 1 Output 2 Output 3 12 / 19

  35. To build ZKBoo, we need to find a suitable w 0 w 0 w 0 Instead of MPC protocol, we speak about 1 2 3 (2 , 3) -decomposition for C : { Share , Output 1 , Output 2 , Output 3 , Rec } w 1 w 1 w 1 1 2 3 ∪ { f ( j ) 1 , f ( j ) 2 , f ( j ) . . . 3 } j =1 ,..., N . . . . . . . . . . . . . . . w N w N w N • correct: y = C ( x ) 1 2 3 • 2-private: ∀ e ∈ [3] ∃ a PPT simulator S e that perfectly simulate the Output 1 Output 2 Output 3 y 1 y 2 distribution of ( { w i } i ∈ { e , e +1 } , y e +2 ) y 3 Rec y 12 / 19

  36. Example: the linear decomposition • Computation in a ring (R,+,·) • Add(x 1 ,x 2 ,x 3 ,y 1 ,y 2 ,y 3 ) • z 1 = x 1 + y 1 • z 2 = x 2 + y 2 • Share(x) • z 3 = z 3 + y 3 • Get random x 1 , x 2 ß R • Let x 3 = x - x 1 - x 2 • Mul(x 1 ,x 2 ,x 3 ,y 1 ,y 2 ,y 3 ) • z 1 = x 1 y 1 + x 1 y 2 + x 2 y 1 + r 1 - r 2 • Rec(y 1 ,y 2 ,y 3 ) • z 2 = x 2 y 2 + x 2 y 3 + x 3 y 2 + r 2 - r 3 • y = y 1 + y 2 + y 3 • z 3 = x 3 y 3 + x 3 y 1 + x 1 y 3 + r 3 - r 1

  37. Example: the linear decomposition Correctness: z 1 +z 2 +z 3 = • Computation in a ring (R,+,·) • Add(x 1 ,x 2 ,x 3 ,y 1 ,y 2 ,y 3 ) (x 1 +x 2 +x 3 ) (y 1 +y 2 +y 3 ) • z 1 = x 1 + y 1 • z 2 = x 2 + y 2 • Share(x) • z 3 = z 3 + y 3 • Get random x 1 , x 2 ß R 2-privacy: • Let x 3 = x - x 1 - x 2 • Mul(x 1 ,x 2 ,x 3 ,y 1 ,y 2 ,y 3 ) Any pair (z i ,z i+1 ) is • z 1 = x 1 y 1 + x 1 y 2 + x 2 y 1 + r 1 - r 2 uniform random • Rec(y 1 ,y 2 ,y 3 ) • z 2 = x 2 y 2 + x 2 y 3 + x 3 y 2 + r 2 - r 3 (thanks to r 1 ,r 2 ,r 3 ) • y = y 1 + y 2 + y 3 • z 3 = x 3 y 3 + x 3 y 1 + x 1 y 3 + r 3 - r 1

  38. Public data: C : { 0 , 1 } n → { 0 , 1 } m (boolean circuit) and y ∈ { 0 , 1 } m Input: x s.t. C ( x ) = y 13 / 19

  39. Public data: C : { 0 , 1 } n → { 0 , 1 } m (boolean circuit) and y ∈ { 0 , 1 } m Input: x s.t. C ( x ) = y x w 0 w 0 w 0 1 2 3 f 1 f 1 f 1 1 2 3 w 1 w 1 w 1 1 2 3 f 2 f 2 f 2 1 2 3 . . . . . . . . . w N w N w N 1 2 3 y 1 y 2 y 3 y 13 / 19

  40. Public data: C : { 0 , 1 } n → { 0 , 1 } m (boolean circuit) and y ∈ { 0 , 1 } m Input: x s.t. C ( x ) = y x w 0 w 0 w 0 1 2 3 w 0 w 0 w 0 1 2 3 f 1 f 1 f 1 1 2 3 w 1 w 1 w 1 1 2 3 w 1 w 1 w 1 1 2 3 . . . . . . . . . . . . . . . . . . f 2 f 2 f 2 1 2 3 w 1 w 1 w 1 1 2 3 . . . . . . . . . y 1 y 2 y 3 w N w N w N 1 2 3 y 1 y 2 y 3 y 13 / 19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend