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

fast zero knowledge proofs and post quantum signatures
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Fast Zero-Knowledge Proofs and Post-Quantum Signatures

Claudio Orlandi – Aarhus University

@claudiorlandi

slide-2
SLIDE 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)
slide-3
SLIDE 3

Motivation: Authentication

“I know my password” “I am Claudio” “Here is my Pa55w0rD”

P V

slide-4
SLIDE 4

Motivation: Authentication

P A

“I am Claudio” “Here is my Pa55w0rD”

V

“I am Claudio” “Here is my Pa55w0rD”

slide-5
SLIDE 5

Motivation: Zero-Knoweldge Authentication

P V

“I am Claudio”

q a q a

slide-6
SLIDE 6

ZK: Definitions

P(x) V

“I know x s.t. f(x)=1”

q a q a

Only P knows x P,V know f

slide-7
SLIDE 7

ZK: Definitions

P(x) V

“I know x s.t. f(x)=1”

q a q a

  • Completeness
  • P,V honest à V accepts
slide-8
SLIDE 8

ZK: Definitions

P V

“I know x s.t. f(x)=1”

  • Completeness
  • P,V honest à V accepts
  • Proof-of-Knowledge
  • If P does not know x à V rejects

q a* q a*

slide-9
SLIDE 9

ZK: Definitions

P(x) V

“I know x s.t. f(x)=1”

  • Completeness
  • P,V honest à V accepts
  • Proof-of-Knowledge
  • If P does not know x à V rejects
  • Zero-Knowledge
  • V learns nothing about x

q* a q* a

slide-10
SLIDE 10

What can be proven in ZK?

Feasability: NP, even PSPACE! Efficiently: algebraic languages

(Schnorr, …, Groth-Sahai, …)

SNARKS (generic)

  • Short proofs, efficient verification J
  • Slow prover L
  • Implementations: Pinocchio, libsnark,

This talk: Can we construct efficient proofs for non- algebraic languages such as “I know x such that SHA(x)=y”? Two protocols:

  • ZKGC (from Garbled Circuits)
  • ZKBoo (from MPC)

One application:

  • Generic (post-quantum) signatures
slide-11
SLIDE 11

Example: Schnorr Protocol

Go to Example

slide-12
SLIDE 12

More efficient Less efficient

OTP >> SKE >> PKE >> FHE >> Obfuscation

The Crypto Toolbox

12

Weaker assumption Stronger assumption

slide-13
SLIDE 13

Zero-Knowledge from Garbled Circuits

Jawurek, Ferschbaum, Orlandi CCS 2013

slide-14
SLIDE 14

Zero-Knowledge vs Secure 2PC

A B f,x f,y f(x,y) P V f,x f(x)=1 f

slide-15
SLIDE 15

Garbled Circuits

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

slide-16
SLIDE 16

Garbled Circuits: Authenticity

Ev De Gb En f x e [y*] y* r [F] d [X] y* = f(x) OR y* = ⊥

slide-17
SLIDE 17

OT

[F]

x e [X]

([F],e,d) ßGb( f,r ) [Y]ßEv([F],[X]) Prover(x) Verifier( )

(HV)ZKGC to prove f(x)=y

[Y] Accept if De(d,[Y])=y

slide-18
SLIDE 18

OT

[F]

x* e [X]

([F],e,d) ßGb( f,r )

(HV)ZKGC to prove f(x)=y

[Y*]

Authenticity!

Prover(?) Verifier( ) De(d,[Y*])={f(x*),⊥}

slide-19
SLIDE 19

OT

[G]

x e [X]

([G],e,d) ßGb( g,r ) [Y]ßEv([G],[X])

(HV)ZKGC to prove f(x)=y

[Y]

Corrupt V can change f with g breaking ZK!

Learn g(x)=De(d,[Y]) Prover(x) Verifier( )

slide-20
SLIDE 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?
slide-21
SLIDE 21

OT

[F]

x e [X]

([F],e,d) ßGb( f,r ) [Z]ßEv([F],[X])

ZKGC to prove f(x)=y

Comm([Y]) r If [F]!=Gb(f,r) abort else Open([Y])

Commitment Active security Using only 1 GC!

Accept if De(d,[Y])=y Prover(x) Verifier( )

slide-22
SLIDE 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.

slide-23
SLIDE 23

Privacy-Free Garbled Circuits

Frederiksen, Nielsen, Orlandi EUROCRYPT 2015

slide-24
SLIDE 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!

slide-25
SLIDE 25

Example: Privacy Free Garbling

Go to PFGC

slide-26
SLIDE 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)
slide-27
SLIDE 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

slide-28
SLIDE 28

ZKBoo: Faster Zero-Knowledge for Boolean Circuits

Giacomelli, Madsen, Orlandi USENIX Security 2016

slide-29
SLIDE 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.

slide-30
SLIDE 30

Instead of MPC protocol, we speak about (2, 3)-decomposition for C: {Share, Output1, Output2, Output3, Rec} ∪ {f (j)

1 , f (j) 2 , f (j) 3 }j=1,...,N

12 / 19

To build ZKBoo, we need to find a suitable

slide-31
SLIDE 31

w0

1

w0

2

w0

3

Share

x

Instead of MPC protocol, we speak about (2, 3)-decomposition for C: {Share, Output1, Output2, Output3, Rec} ∪ {f (j)

1 , f (j) 2 , f (j) 3 }j=1,...,N

12 / 19

To build ZKBoo, we need to find a suitable

slide-32
SLIDE 32

w0

1

w0

2

w0

3

Share

x

f 1

1

f 1

2

f 1

3

w1

1

w1

2

w1

3

Instead of MPC protocol, we speak about (2, 3)-decomposition for C: {Share, Output1, Output2, Output3, Rec} ∪ {f (j)

1 , f (j) 2 , f (j) 3 }j=1,...,N

12 / 19

To build ZKBoo, we need to find a suitable

slide-33
SLIDE 33

w0

1

w0

2

w0

3

Share

x

f 1

1

f 1

2

f 1

3

w1

1

w1

2

w1

3

f 2

1

f 2

2

f 2

3

. . . . . . . . . wN

1

wN

2

wN

3

Instead of MPC protocol, we speak about (2, 3)-decomposition for C: {Share, Output1, Output2, Output3, Rec} ∪ {f (j)

1 , f (j) 2 , f (j) 3 }j=1,...,N

12 / 19

To build ZKBoo, we need to find a suitable

slide-34
SLIDE 34

w0

1

w0

2

w0

3

w1

1

w1

2

w1

3

wN

1

wN

2

wN

3

. . . . . . . . . . . . . . . . . .

Output1 Output2 Output3

Instead of MPC protocol, we speak about (2, 3)-decomposition for C: {Share, Output1, Output2, Output3, Rec} ∪ {f (j)

1 , f (j) 2 , f (j) 3 }j=1,...,N

12 / 19

To build ZKBoo, we need to find a suitable

slide-35
SLIDE 35

w0

1

w0

2

w0

3

w1

1

w1

2

w1

3

wN

1

wN

2

wN

3

. . . . . . . . . . . . . . . . . .

Output1 Output2 Output3 Rec

y y1 y2 y3

Instead of MPC protocol, we speak about (2, 3)-decomposition for C: {Share, Output1, Output2, Output3, Rec} ∪ {f (j)

1 , f (j) 2 , f (j) 3 }j=1,...,N

  • correct: y = C(x)
  • 2-private: ∀ e ∈ [3] ∃ a PPT simulator

Se that perfectly simulate the distribution of ({wi}i∈{e,e+1}, ye+2)

12 / 19

To build ZKBoo, we need to find a suitable

slide-36
SLIDE 36

Example: the linear decomposition

  • Computation in a ring (R,+,·)
  • Share(x)
  • Get random x1, x2 ß R
  • Let x3= x - x1 - x2
  • Rec(y1,y2,y3)
  • y = y1 + y2 + y3
  • Add(x1,x2,x3,y1,y2,y3)
  • z1 = x1 + y1
  • z2 = x2 + y2
  • z3 = z3 + y3
  • Mul(x1,x2,x3,y1,y2,y3)
  • z1 = x1y1 + x1y2 + x2y1 + r1 - r2
  • z2 = x2y2 + x2y3 + x3y2 + r2 - r3
  • z3 = x3y3 + x3y1 + x1y3 + r3 - r1
slide-37
SLIDE 37

Example: the linear decomposition

  • Computation in a ring (R,+,·)
  • Share(x)
  • Get random x1, x2 ß R
  • Let x3= x - x1 - x2
  • Rec(y1,y2,y3)
  • y = y1 + y2 + y3
  • Add(x1,x2,x3,y1,y2,y3)
  • z1 = x1 + y1
  • z2 = x2 + y2
  • z3 = z3 + y3
  • Mul(x1,x2,x3,y1,y2,y3)
  • z1 = x1y1 + x1y2 + x2y1 + r1 - r2
  • z2 = x2y2 + x2y3 + x3y2 + r2 - r3
  • z3 = x3y3 + x3y1 + x1y3 + r3 - r1

Correctness: z1+z2+z3 = (x1+x2+x3) (y1+y2+y3) 2-privacy: Any pair (zi,zi+1) is uniform random (thanks to r1,r2,r3)

slide-38
SLIDE 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

slide-39
SLIDE 39

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

w0

1

w0

2

w0

3

x

f 1

1

f 1

2

f 1

3

w1

1

w1

2

w1

3

f 2

1

f 2

2

f 2

3

. . . . . . . . . wN

1

wN

2

wN

3

y1 y2 y3 y

13 / 19

slide-40
SLIDE 40

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

w0

1

w0

2

w0

3

x

f 1

1

f 1

2

f 1

3

w1

1

w1

2

w1

3

f 2

1

f 2

2

f 2

3

. . . . . . . . . wN

1

wN

2

wN

3

y1 y2 y3 y

w0

1

w0

2

w0

3

w1

1

w1

2

w1

3

. . . . . . . . . . . . . . . . . .

w1

1

w1

2

w1

3

y1 y2 y3

13 / 19

slide-41
SLIDE 41

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

w0

1

w0

2

w0

3

x

f 1

1

f 1

2

f 1

3

w1

1

w1

2

w1

3

f 2

1

f 2

2

f 2

3

. . . . . . . . . wN

1

wN

2

wN

3

y1 y2 y3 y

w0

1

w0

2

w0

3

w1

1

w1

2

w1

3

. . . . . . . . . . . . . . . . . .

w1

1

w1

2

w1

3

y1 y2 y3

e ∈ {1, 2, 3}

13 / 19

slide-42
SLIDE 42

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

w0

1

w0

2

w0

3

x

f 1

1

f 1

2

f 1

3

w1

1

w1

2

w1

3

f 2

1

f 2

2

f 2

3

. . . . . . . . . wN

1

wN

2

wN

3

y1 y2 y3 y

e ∈ {1, 2, 3}

w0

1

w0

2 w0

3

w1

1

w1

2 w1

3

. . . . . . . . . . . . . . . . . .

wN

1

wN

2 w1

3

y1 y2 y3

13 / 19

slide-43
SLIDE 43

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

w0

1

w0

2

w0

3

x

f 1

1

f 1

2

f 1

3

w1

1

w1

2

w1

3

f 2

1

f 2

2

f 2

3

. . . . . . . . . wN

1

wN

2

wN

3

y1 y2 y3 y

e ∈ {1, 2, 3}

w0

1

w0

2 w0

3

f 1

1

f 1

2

w1

1

w1

2 w1

3

f 2

1

f 2

2

. . . . . . . . . wN

1

wN

2 w1

3

y1 y2 y3 y

Check consistency

13 / 19

slide-44
SLIDE 44

Linear Decomposition: Consistency Check

  • Mul(x1,x2,x3,y1,y2,y3,r1,r2,r3)
  • z1 = x1y1 + x1y2 + x2y1 + r1 - r2
  • z2 = x2y2 + x2y3 + x3y2 + r2 - r3
  • z3 = x3y3 + x3y1 + x1y3 + r3 - r1
  • Verify(. ,x2,x3,. ,y2,y3,. ,r2,r3)
  • ?
  • z2 = x2y2 + x2y3 + x3y2 + r2 - r3
  • ?
slide-45
SLIDE 45

ZKBoo

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

w0

1

w0

2

w0

3

x

f 1

1

f 1

2

f 1

3

w1

1

w1

2

w1

3

f 2

1

f 2

2

f 2

3

. . . . . . . . . wN

1

wN

2

wN

3

y1 y2 y3 y

e ∈ {1, 2, 3}

w0

1

w0

2 w0

3

f 1

1

f 1

2

w1

1

w1

2 w1

3

f 2

1

f 2

2

. . . . . . . . . wN

1

wN

2 w1

3

y1 y2 y3 y

Check consistency

13 / 19

  • Soundness/PoK
  • Correctness of decomposition
  • Commitments are binding
  • Zero-Knowledge
  • 2-privacy of decomposition
  • Commitments are hiding
  • Efficiency
  • Comm. and comp. complexity ~ # mul
  • Only very efficient crypto involved

(secret sharing, commitments)

slide-46
SLIDE 46

SHA-1 SHA-256 Serial Paral. Serial Paral. Prover (ms) 31.73 12.73 54.63 15.95 Verifier (ms) 22.85 4.39 67.74 13.20 Proof size (KB) 444.18 835.91 Soundness error: 2−80 SHA-1 SHA-256 Serial Paral. Serial Paral. Prover (ms) 18.98 8.12 30.81 12.45 Verifier (ms) 11.68 2.35 34.16 6.77 Proof size (KB) 223.71 421.01 Soundness error: 2−40

slide-47
SLIDE 47

Post-Quantum Zero-Knowledge and Signatures from Symmetric-Key Primitives

Chase, Derler, Goldfeder, Orlandi, Ramacher, Rechberger, Slamanig, Zaverucha ACM CCS 2017

slide-48
SLIDE 48

Fiat-Shamir Heuristic

z=Open(r,x,e) eß(1..n) a=Com(r,x)

P(x) V(y)

z=Open(r,x,e) e=H(a) a=Com(r,x) Reject if Ver(a,e,z)=0 Reject if Ver(a,e,z)=0 with e=H(a) “I know x s.t. f(x)=y”

slide-49
SLIDE 49

Signatures from Fiat-Shamir

Gen

  • sk : x
  • vk : y = OWF(x)

Sig(sk,m)

  • a = Com(r,x)
  • z = Open(r,x,H(m,a))
  • output (a,z)

Ver(vk,m,(a,z))

  • reject if:

Ver(a,H(m,a),z)=0

slide-50
SLIDE 50

Signatures from ZKB++ + LowMC

Candidate for PQ signature from symmetric primitive

  • nly!

LowMC Block cipher with low AND Complexity (<1000) Different instances give different tradeoffs between comp./comm.

  • verhead
slide-51
SLIDE 51

Picnic Security in QROM using Unruh’s Transform

  • Fiat-Shamir is not provably

secure vs. quantum adversary

  • Cannot program RO
  • Cannot rewind adversary
  • Unruh transform

(EUROCRYPT’15) is secure in QROM

  • ZKBoo/ZKB++ can be optimized

for Unruh, only ~1.5x larger!

  • Instead of 4x

ze e=H(a) a ze e=H(a’) a’= (a,G(z0),G(z1),G(z2)) Fiat-Shamir Unruh

slide-52
SLIDE 52

Flexible design! Ring/Group Signatures

  • Sign(pk0,pk1,skb, m)à s
  • Ver(pk0,pk1,m,s)à accept
  • Indistinguishability:

Sign(pk0,pk1,sk0, m) ≈ Sign(pk0,pk1,sk1, m)

  • Prove in ZK that

”I know sk : pk0=f(sk) or pk1=f(sk)”

  • See
  • PQ ZK Proofs for Accumulators with

Applications to Ring Signatures from Symmetric-Key Primitives Derler, Ramacher, Slamanig

  • PQ EPID Group Signatures from

Symmetric Primitives Boneh, Eskandarian, Fisch

  • Improved NIZK with Applications to

PQ Signatures Katz, Kolesnikov, Wang

slide-53
SLIDE 53

Young design! ZK proofs are improving! ZKBoo, ZKB++, Ligero, KKW, …

  • Any improvements in the ZK proof leads to

better signatures!

  • Ligero: Lightweight Sublinear Arguments

Without a Trusted Setup Ames, Hazay, Ishai, Venkitasubramaniam:

  • Improved NIZK with Applications to PQ

Signatures Katz, Kolesnikov, Wang

Figure from KKW

slide-54
SLIDE 54

NIST Submission: Picnic A Family of Post-Quantum Secure Digital Signature Algorithms Project page: https://microsoft.github.io/Picnic/ (Next few slides from Greg’s talk at NIST Workshop)

Chase, Derler, Goldfeder, Orlandi, Ramacher, Rechberger, Slamanig, Zaverucha

slide-55
SLIDE 55
slide-56
SLIDE 56
slide-57
SLIDE 57

Also, experiments with HSM and inclusion in OpenVPN Post-Quantum fork

slide-58
SLIDE 58

Conclusions and directions

After >30 years of ZK we have the first truly efficient protocols for generic statements. Many applications are enabled by efficient ZK for arbitrary circuits. And I expect many more to come! ZKGC vs ZKBoo?

  • ZKBoo allows Fiat-Shamir J
  • ZKBoo does not need OT J

The end of ZKGC?

  • Are there better privacy-free GCs?

Improving MPC based ZK proofs?

  • ZKBoo, ZKB++, Ligero, KKW,

[your name here?]

slide-59
SLIDE 59

Example: Schnorr Protocol

slide-60
SLIDE 60

Example: Schnorr Protocol

z=xe+r e a=gr

P(x) V

“I know x s.t. gx=h”

rß(1,p)

eß(1,p) if hea=gz else

(Honest Verifier) Zero-Knowledge The transcript can be simulated without knowing x (hence, it contains no informaiton about x)

Simulator

  • 1. Pick e ß (1,p)
  • 2. Pick z ß (1,p)
  • 3. Compute a = he/gz
  • 4. Output (a,e,z)
slide-61
SLIDE 61

Example: Schnorr Protocol

z=xe+r e a=gr

P(x) V

“I know x s.t. gx=h”

rß(1,p)

eß(1,p) if hea=gz else

slide-62
SLIDE 62

Example: Schnorr Protocol

z=xe+r e a=gr

P(x) V

“I know x s.t. gx=h”

rß(1,p)

eß(1,p) if hea=gz else Completeness

gz = gxe+r= hegr= hea

slide-63
SLIDE 63

Example: Schnorr Protocol

z=xe+r e a=gr

P(x) V

“I know x s.t. gx=h”

rß(1,p)

eß(1,p) if hea=gz else

Proof-of-Knowledge Special Soundness: From two accepting transcripts (a1, e1, z1), (a2, e2, z2) with a1=a2 we can extract x. Solve: z1 = xe1 + r, z2 = xe2 + r (P can answer 2 different challenges à P knows x)

slide-64
SLIDE 64

Example: Schnorr Protocol

Go Back

slide-65
SLIDE 65

Example: Privacy Free Garbling

slide-66
SLIDE 66

Garbling a Circuit : ([F],e,d)ß Gb(f)

X1

0,X1 1

  • Choose 2 random keys Xi

0,Xi 1 for

each input wire

  • For each gate g compute
  • (gg,K0,K1)ß Gb(g,L0,L1,R0,R1)
  • Output
  • e=(Xi

0,Xi 1) for all input wires

  • d=(Y0,Y1)
  • [F]=(ggi) for all gates i

X2

0,X2 1 …

Y0,Y1 L0,L1 R0,R1 K0,K1

slide-67
SLIDE 67

Encoding and Decoding

[X] = En(e,x)

  • e={ Xi

0, Xi 1}

  • x= { x1,…,xn }
  • [X]={X1

x1,…,Xn xn}

y=De(d,[Y])

  • d = { Y0,Y1 }
  • [Y] = { K }
  • y=
  • 0 if K=Y0,
  • 1 if K=Y1,
  • “abort” else
slide-68
SLIDE 68

Evaluating a GC : [Y]ß Ev([F],[X])

X1

  • Parse [X]={X1,…,Xn} // x is known
  • Parse [F]={ggi}
  • For each gate i compute
  • Kg(a,b) ß Ev(ggi,L,a,R,b) //a,b known!
  • Output
  • Y //y is known!

X2……… Y L R K gg1 gg2 ggn ggi ggi ggi ggi ggi ggi ggi ggi

slide-69
SLIDE 69

Notation

  • A (privacy-free) garbled gate is a

gadget that given two inputs keys gives you the right output key (and nothing else)

  • (gg,Z0,Z1) ß Gb(g,L0,L1,R0,R1)
  • Zg(a,b) ß Ev(gg,L,a,R,b)
  • //and not Z1-g(a,b)

gg

L0,L1 R0,R1 Z0,Z1

slide-70
SLIDE 70

Yao Garbling

C

C1 = H(L0,R0) ⊕ K0 C2 = H(L0,R1) ⊕ K0 C3 = H(L1,R0) ⊕ K0 C4 = H(L1,R1) ⊕ K1

70

L R K

slide-71
SLIDE 71

Yao Garbling

C

C1

1 =

= H(L0,R ,R0) ) ⊕ K0 C2

2 =

= H(L0,R ,R1) ) ⊕ K0 C3

3 =

= H(L1,R ,R0) ) ⊕ K0 C4 = H(L1,R1) ⊕ K1

71

L R K

If output is 0 the evaluator should not know why!!!

slide-72
SLIDE 72

Privacy-Free Garbling

C

C1 = H(L0,R0) ⊕ K0 C2 = H(L0,R1) ⊕ K0 C3 = H(L1,R0) ⊕ K0 C4 = H(L1,R1) ⊕ K1

72

L R K

Evaluator knows plain inputs/outputs

slide-73
SLIDE 73

Privacy-Free Garbling

C

C1

1 =

= H(L0) ) ⊕ K0 C2

2 =

= H(L0) ) ⊕ K0 C3 = H(L1,R0) ⊕ K0 C4 = H(L1,R1) ⊕ K1

73

L R K

C1=C2

slide-74
SLIDE 74

Privacy-Free Garbling

C

C1 = H(L0) ⊕ K0 C3

3 =

= H(R0) ) ⊕ K0 C4 = H(L1,R1) ⊕ K1

74

L R K

Output is 0 If either input is 0

slide-75
SLIDE 75

Privacy-Free Garbling

C

K0 = = H(L0) C = H(R0) ⊕ K0 K1

1 =

= H( H(L1,R ,R1)

75

L R K

Standard ”row-reduction” technique Only 1 ciphertext!

slide-76
SLIDE 76

Privacy-Free Evaluation

Eval(gg, L,a,R,b)

  • If a=0
  • Output K0 = H(L0)
  • If b=0
  • Output K0 = C ⊕ H(R0)
  • else
  • Output K1=H(L1,R1)

76

gg

C = = H(R0) ) ⊕ K0

slide-77
SLIDE 77

Example: Privacy Free Garbling

Go Back