Secure 2-Party Computation Lecture 14 Yao s Garbled Circuit - - PowerPoint PPT Presentation

secure 2 party computation
SMART_READER_LITE
LIVE PREVIEW

Secure 2-Party Computation Lecture 14 Yao s Garbled Circuit - - PowerPoint PPT Presentation

Secure 2-Party Computation Lecture 14 Yao s Garbled Circuit RECALL SIM-Secure MPC F F proto proto iface iface Secure (and correct) if: s.t. output of is distributed Env Env identically in REAL IDEAL REAL and


slide-1
SLIDE 1

Secure 2-Party Computation

Lecture 14 Yao’ s Garbled Circuit

slide-2
SLIDE 2

SIM-Secure MPC

Secure (and correct) if: ∀ ∃ s.t. ∀

  • utput of

is distributed identically in REAL and IDEAL

proto proto

Env REAL

i’face i’face

Env IDEAL

F

F

RECALL

slide-3
SLIDE 3

Passive Adversary

Gets only read access to the internal state of the corrupted players (and can use that information in talking to environment) Also called “Honest-But-Curious” adversary Will require that simulator also corrupts passively Simplifies several cases e.g. coin-tossing [why?], commitment [coming up] Oddly, sometimes security against a passive adversary is more demanding than against an active adversary Active adversary: too pessimistic about what guarantee is available even in the IDEAL world e.g. 2-party SFE for OR, with output going to only one party (trivial against active adversary; impossible without computational assumptions against passive adversary) RECALL

slide-4
SLIDE 4

All 2 of them!

Oblivious Transfer

Pick one out of two, without revealing which

Intuitive property: transfer partial information “obliviously”

F

OT

W e P r e d i c t S T O C K S ! ! A A:up, B:down

I need just

  • ne

x0 x1

F

b xb

But can’t tell you which

up

Sure

IDEAL World RECALL

slide-5
SLIDE 5

An OT Protocol

(passive corruption)

x0 x1

F

b xb

slide-6
SLIDE 6

Using (a special) encryption

An OT Protocol

(passive corruption)

x0 x1

F

b xb

slide-7
SLIDE 7

Using (a special) encryption

An OT Protocol

(passive corruption)

x0 x1

F

b xb

x0,x1 b

slide-8
SLIDE 8

Using (a special) encryption

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

x0,x1 b

slide-9
SLIDE 9

Using (a special) encryption PKE in which one can sample a public-key without knowing secret-key

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

x0,x1 b

slide-10
SLIDE 10

Using (a special) encryption PKE in which one can sample a public-key without knowing secret-key

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

PK0, PK1 x0,x1 b

slide-11
SLIDE 11

Using (a special) encryption PKE in which one can sample a public-key without knowing secret-key

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

PK0, PK1

c0 = Enc(x0,PK0) c1 = Enc(x1,PK1)

x0,x1 b

slide-12
SLIDE 12

Using (a special) encryption PKE in which one can sample a public-key without knowing secret-key

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

PK0, PK1

c0 = Enc(x0,PK0) c1 = Enc(x1,PK1)

c0,c1 x0,x1 b

slide-13
SLIDE 13

Using (a special) encryption PKE in which one can sample a public-key without knowing secret-key

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

PK0, PK1

c0 = Enc(x0,PK0) c1 = Enc(x1,PK1)

c0,c1 x0,x1 b

xb=Dec(cb;SKb)

slide-14
SLIDE 14

Using (a special) encryption PKE in which one can sample a public-key without knowing secret-key

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

PK0, PK1

c0 = Enc(x0,PK0) c1 = Enc(x1,PK1)

c0,c1 x0,x1 b xb

xb=Dec(cb;SKb)

slide-15
SLIDE 15

Using (a special) encryption PKE in which one can sample a public-key without knowing secret-key c1-b inscrutable to a 
 passive corrupt receiver

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

PK0, PK1

c0 = Enc(x0,PK0) c1 = Enc(x1,PK1)

c0,c1 x0,x1 b xb

xb=Dec(cb;SKb)

slide-16
SLIDE 16

Using (a special) encryption PKE in which one can sample a public-key without knowing secret-key c1-b inscrutable to a 
 passive corrupt receiver Sender learns nothing 
 about b

An OT Protocol

(passive corruption)

x0 x1

F

(SKb, PKb) ← KeyGen Sample PK1-b

b xb

PK0, PK1

c0 = Enc(x0,PK0) c1 = Enc(x1,PK1)

c0,c1 x0,x1 b xb

xb=Dec(cb;SKb)

slide-17
SLIDE 17

An OT Protocol

(passive corruption)

x0 x1

F

b xb

slide-18
SLIDE 18

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

x0 x1

F

b xb

slide-19
SLIDE 19

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

x0 x1

F

b xb

x0,x1 b

slide-20
SLIDE 20

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

x0 x1

F

b xb

Pick (f,f-1)

x0,x1 b

slide-21
SLIDE 21

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

f

x0 x1

F

b xb

Pick (f,f-1)

x0,x1 b

slide-22
SLIDE 22

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

f

x0 x1

F

pick sb,r1-b let rb=f(sb)

b xb

Pick (f,f-1)

x0,x1 b

slide-23
SLIDE 23

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

f

x0 x1

F

pick sb,r1-b let rb=f(sb)

b xb

Pick (f,f-1)

r0, r1 x0,x1 b

slide-24
SLIDE 24

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

f

x0 x1

F

pick sb,r1-b let rb=f(sb)

b xb

Pick (f,f-1)

r0, r1

let si=f-1(ri) zi = xi ⊕ B(si)

x0,x1 b

slide-25
SLIDE 25

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

f

x0 x1

F

pick sb,r1-b let rb=f(sb)

b xb

Pick (f,f-1)

r0, r1

let si=f-1(ri) zi = xi ⊕ B(si)

z0, z1 x0,x1 b

slide-26
SLIDE 26

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

f

x0 x1

F

pick sb,r1-b let rb=f(sb)

b xb

xb=zb⊕B(sb) Pick (f,f-1)

r0, r1

let si=f-1(ri) zi = xi ⊕ B(si)

z0, z1 x0,x1 b

slide-27
SLIDE 27

Using a Trapdoor OWP

An OT Protocol

(passive corruption)

f

x0 x1

F

pick sb,r1-b let rb=f(sb)

b xb

xb=zb⊕B(sb) Pick (f,f-1)

r0, r1

let si=f-1(ri) zi = xi ⊕ B(si)

z0, z1 x0,x1 b xb

slide-28
SLIDE 28

Using a Trapdoor OWP For passive corrupt receiver: z1-b looks random

An OT Protocol

(passive corruption)

f

x0 x1

F

pick sb,r1-b let rb=f(sb)

b xb

xb=zb⊕B(sb) Pick (f,f-1)

r0, r1

let si=f-1(ri) zi = xi ⊕ B(si)

z0, z1 x0,x1 b xb

slide-29
SLIDE 29

Using a Trapdoor OWP For passive corrupt receiver: z1-b looks random Learns nothing about b

An OT Protocol

(passive corruption)

f

x0 x1

F

pick sb,r1-b let rb=f(sb)

b xb

xb=zb⊕B(sb) Pick (f,f-1)

r0, r1

let si=f-1(ri) zi = xi ⊕ B(si)

z0, z1 x0,x1 b xb

slide-30
SLIDE 30

2-Party SFE

Secure Function Evaluation (SFE) IDEAL: Trusted party takes (X;Y). Outputs 
 g(X;Y) to Alice, f(X;Y) to Bob

Alice 
 Bob

F

F X Y g(X;Y) f(X;Y)

slide-31
SLIDE 31

2-Party SFE

Secure Function Evaluation (SFE) IDEAL: Trusted party takes (X;Y). Outputs 
 g(X;Y) to Alice, f(X;Y) to Bob Randomized Functions: g(X;Y;r) and f(X;Y;r) s.t. neither party knows r (beyond what is revealed by output)

Alice 
 Bob

F

F X Y g(X;Y) f(X;Y)

slide-32
SLIDE 32

2-Party SFE

Secure Function Evaluation (SFE) IDEAL: Trusted party takes (X;Y). Outputs 
 g(X;Y) to Alice, f(X;Y) to Bob Randomized Functions: g(X;Y;r) and f(X;Y;r) s.t. neither party knows r (beyond what is revealed by output) OT is an instance of a (deterministic) 2-party SFE

Alice 
 Bob

F

F X Y g(X;Y) f(X;Y)

slide-33
SLIDE 33

2-Party SFE

Secure Function Evaluation (SFE) IDEAL: Trusted party takes (X;Y). Outputs 
 g(X;Y) to Alice, f(X;Y) to Bob Randomized Functions: g(X;Y;r) and f(X;Y;r) s.t. neither party knows r (beyond what is revealed by output) OT is an instance of a (deterministic) 2-party SFE g(x0,x1;b) = none; f(x0,x1;b) = xb

Alice 
 Bob

F

F X Y g(X;Y) f(X;Y)

slide-34
SLIDE 34

2-Party SFE

Secure Function Evaluation (SFE) IDEAL: Trusted party takes (X;Y). Outputs 
 g(X;Y) to Alice, f(X;Y) to Bob Randomized Functions: g(X;Y;r) and f(X;Y;r) s.t. neither party knows r (beyond what is revealed by output) OT is an instance of a (deterministic) 2-party SFE g(x0,x1;b) = none; f(x0,x1;b) = xb Single-Output SFE: only one party gets any output

Alice 
 Bob

F

F X Y g(X;Y) f(X;Y)

slide-35
SLIDE 35

2-Party SFE

Can reduce any SFE (even randomized) to a single-output deterministic SFE f’(X, M, r1; Y, r2) = ( g(X; Y; r1⊕r2)⊕M, f(X; Y; r1⊕r2) ). Compute f’(X, M, r1; Y, r2) with random M, r1, r2 Bob sends g(X, Y; r1⊕r2)⊕M to Alice

slide-36
SLIDE 36

2-Party SFE

Can reduce any SFE (even randomized) to a single-output deterministic SFE f’(X, M, r1; Y, r2) = ( g(X; Y; r1⊕r2)⊕M, f(X; Y; r1⊕r2) ). Compute f’(X, M, r1; Y, r2) with random M, r1, r2 Bob sends g(X, Y; r1⊕r2)⊕M to Alice Passive secure

slide-37
SLIDE 37

2-Party SFE

Can reduce any SFE (even randomized) to a single-output deterministic SFE f’(X, M, r1; Y, r2) = ( g(X; Y; r1⊕r2)⊕M, f(X; Y; r1⊕r2) ). Compute f’(X, M, r1; Y, r2) with random M, r1, r2 Bob sends g(X, Y; r1⊕r2)⊕M to Alice Passive secure For active security, f’ authenticates (one-time MAC) as well as encrypts g(X; Y; r1⊕r2) using keys input by Alice

slide-38
SLIDE 38

2-Party SFE

Can reduce any SFE (even randomized) to a single-output deterministic SFE f’(X, M, r1; Y, r2) = ( g(X; Y; r1⊕r2)⊕M, f(X; Y; r1⊕r2) ). Compute f’(X, M, r1; Y, r2) with random M, r1, r2 Bob sends g(X, Y; r1⊕r2)⊕M to Alice Passive secure For active security, f’ authenticates (one-time MAC) as well as encrypts g(X; Y; r1⊕r2) using keys input by Alice Generalizes to more than 2 parties

slide-39
SLIDE 39

2-Party SFE

Can reduce any SFE (even randomized) to a single-output deterministic SFE f’(X, M, r1; Y, r2) = ( g(X; Y; r1⊕r2)⊕M, f(X; Y; r1⊕r2) ). Compute f’(X, M, r1; Y, r2) with random M, r1, r2 Bob sends g(X, Y; r1⊕r2)⊕M to Alice Passive secure For active security, f’ authenticates (one-time MAC) as well as encrypts g(X; Y; r1⊕r2) using keys input by Alice Generalizes to more than 2 parties Can reduce any single-output deterministic SFE to OT!

slide-40
SLIDE 40

“Completeness” of OT

slide-41
SLIDE 41

“Completeness” of OT

Can reduce any single-output deterministic SFE to OT!

slide-42
SLIDE 42

“Completeness” of OT

Can reduce any single-output deterministic SFE to OT! No computational assumptions needed

slide-43
SLIDE 43

“Completeness” of OT

Can reduce any single-output deterministic SFE to OT! No computational assumptions needed For passive security

slide-44
SLIDE 44

“Completeness” of OT

Can reduce any single-output deterministic SFE to OT! No computational assumptions needed For passive security Proof of concept for 2 parties: An inefficient reduction

slide-45
SLIDE 45

“Completeness” of OT

Can reduce any single-output deterministic SFE to OT! No computational assumptions needed For passive security Proof of concept for 2 parties: An inefficient reduction Yao’ s garbled circuit for 2 parties

slide-46
SLIDE 46

“Completeness” of OT

Can reduce any single-output deterministic SFE to OT! No computational assumptions needed For passive security Proof of concept for 2 parties: An inefficient reduction Yao’ s garbled circuit for 2 parties “Basic GMW”: Information-theoretic reduction to OT (next time)

slide-47
SLIDE 47

“Completeness” of OT

Can reduce any single-output deterministic SFE to OT! No computational assumptions needed For passive security Proof of concept for 2 parties: An inefficient reduction Yao’ s garbled circuit for 2 parties “Basic GMW”: Information-theoretic reduction to OT (next time) Fact: OT is complete even for active security

slide-48
SLIDE 48

“Completeness” of OT:
 Proof of Concept

Single-output 2-party function f Alice (who knows x, but not y) prepares a table for 
 f(x,⋅) with N = 2|y| entries (one for each y) Bob uses y to decide which entry in the table to pick up using 1-out-of-N OT (without learning the other entries)

slide-49
SLIDE 49

“Completeness” of OT:
 Proof of Concept

Single-output 2-party function f Alice (who knows x, but not y) prepares a table for 
 f(x,⋅) with N = 2|y| entries (one for each y) Bob uses y to decide which entry in the table to pick up using 1-out-of-N OT (without learning the other entries) Bob learns only f(x,y) (in addition to y). Alice learns nothing beyond x.

slide-50
SLIDE 50

“Completeness” of OT:
 Proof of Concept

Single-output 2-party function f Alice (who knows x, but not y) prepares a table for 
 f(x,⋅) with N = 2|y| entries (one for each y) Bob uses y to decide which entry in the table to pick up using 1-out-of-N OT (without learning the other entries) Bob learns only f(x,y) (in addition to y). Alice learns nothing beyond x. Problem: N is exponentially large in |y|

slide-51
SLIDE 51

Functions as Circuits

Directed acyclic graph Nodes: AND, OR, NOT, CONST gates, inputs, output(s) Edges: Boolean valued wires Each wire comes out of a unique gate, but a wire might fan-out

1

slide-52
SLIDE 52

Functions as Circuits

Directed acyclic graph Nodes: AND, OR, NOT, CONST gates, inputs, output(s) Edges: Boolean valued wires Each wire comes out of a unique gate, but a wire might fan-out Can evaluate wires according to a topologically sorted order of gates they come out of

1

slide-53
SLIDE 53

Functions as Circuits

Directed acyclic graph Nodes: AND, OR, NOT, CONST gates, inputs, output(s) Edges: Boolean valued wires Each wire comes out of a unique gate, but a wire might fan-out Can evaluate wires according to a topologically sorted order of gates they come out of

1

slide-54
SLIDE 54

Functions as Circuits

Directed acyclic graph Nodes: AND, OR, NOT, CONST gates, inputs, output(s) Edges: Boolean valued wires Each wire comes out of a unique gate, but a wire might fan-out Can evaluate wires according to a topologically sorted order of gates they come out of

1

slide-55
SLIDE 55

Functions as Circuits

Directed acyclic graph Nodes: AND, OR, NOT, CONST gates, inputs, output(s) Edges: Boolean valued wires Each wire comes out of a unique gate, but a wire might fan-out Can evaluate wires according to a topologically sorted order of gates they come out of

1

slide-56
SLIDE 56

Functions as Circuits

Directed acyclic graph Nodes: AND, OR, NOT, CONST gates, inputs, output(s) Edges: Boolean valued wires Each wire comes out of a unique gate, but a wire might fan-out Can evaluate wires according to a topologically sorted order of gates they come out of

1

slide-57
SLIDE 57

Functions as Circuits

Directed acyclic graph Nodes: AND, OR, NOT, CONST gates, inputs, output(s) Edges: Boolean valued wires Each wire comes out of a unique gate, but a wire might fan-out Can evaluate wires according to a topologically sorted order of gates they come out of

1

slide-58
SLIDE 58

Functions as Circuits

Directed acyclic graph Nodes: AND, OR, NOT, CONST gates, inputs, output(s) Edges: Boolean valued wires Each wire comes out of a unique gate, but a wire might fan-out Can evaluate wires according to a topologically sorted order of gates they come out of

1

slide-59
SLIDE 59

Functions as Circuits

slide-60
SLIDE 60

Functions as Circuits

e.g.: OR (single gate, 2 input bits, 1 bit output)

slide-61
SLIDE 61

Functions as Circuits

e.g.: OR (single gate, 2 input bits, 1 bit output) e.g.: X > Y for two bit inputs X=x1x0, Y=y1y0:

(x1 ∧ ¬y1) ∨ (¬(x1 ⊕ y1) ∧ (x0 ∧ ¬y0)

00 01 10 11 00 01 1 10 1 1 11 1 1 1

slide-62
SLIDE 62

Functions as Circuits

e.g.: OR (single gate, 2 input bits, 1 bit output) e.g.: X > Y for two bit inputs X=x1x0, Y=y1y0:

(x1 ∧ ¬y1) ∨ (¬(x1 ⊕ y1) ∧ (x0 ∧ ¬y0)

Can directly convert a truth-table
 into a circuit, but circuit size 
 exponential in input size

00 01 10 11 00 01 1 10 1 1 11 1 1 1

slide-63
SLIDE 63

Functions as Circuits

e.g.: OR (single gate, 2 input bits, 1 bit output) e.g.: X > Y for two bit inputs X=x1x0, Y=y1y0:

(x1 ∧ ¬y1) ∨ (¬(x1 ⊕ y1) ∧ (x0 ∧ ¬y0)

Can directly convert a truth-table
 into a circuit, but circuit size 
 exponential in input size Can convert any (“efficient”) program into
 a (“small”) circuit

00 01 10 11 00 01 1 10 1 1 11 1 1 1

slide-64
SLIDE 64

Functions as Circuits

e.g.: OR (single gate, 2 input bits, 1 bit output) e.g.: X > Y for two bit inputs X=x1x0, Y=y1y0:

(x1 ∧ ¬y1) ∨ (¬(x1 ⊕ y1) ∧ (x0 ∧ ¬y0)

Can directly convert a truth-table
 into a circuit, but circuit size 
 exponential in input size Can convert any (“efficient”) program into
 a (“small”) circuit Interesting problems already given as succinct programs/circuits

00 01 10 11 00 01 1 10 1 1 11 1 1 1

slide-65
SLIDE 65

2-Party SFE for
 General Circuits

slide-66
SLIDE 66

2-Party SFE for
 General Circuits

“General”: evaluate any arbitrary circuit

slide-67
SLIDE 67

2-Party SFE for
 General Circuits

“General”: evaluate any arbitrary circuit One-sided output: both parties give inputs, one party gets outputs

slide-68
SLIDE 68

2-Party SFE for
 General Circuits

“General”: evaluate any arbitrary circuit One-sided output: both parties give inputs, one party gets outputs Either party maybe corrupted passively

slide-69
SLIDE 69

2-Party SFE for
 General Circuits

“General”: evaluate any arbitrary circuit One-sided output: both parties give inputs, one party gets outputs Either party maybe corrupted passively Consider evaluating OR (single gate circuit)

1 1 1 1 1

slide-70
SLIDE 70

2-Party SFE for
 General Circuits

“General”: evaluate any arbitrary circuit One-sided output: both parties give inputs, one party gets outputs Either party maybe corrupted passively Consider evaluating OR (single gate circuit) Alice holds x=a, Bob has y=b; Bob should get OR(x,y)

1 1 1 1 1

slide-71
SLIDE 71

A Physical Protocol

1 1 1 1 1

slide-72
SLIDE 72

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1

1 1 1 1 1

slide-73
SLIDE 73

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1

1 1 1 00 11 01 10 1 1 1 1 1

slide-74
SLIDE 74

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1

1 1 1 00 11 01 10 1 1 1 1 1 1 1

slide-75
SLIDE 75

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box)

1 1 1 00 11 01 10 1 1 1 1 1 1 1

slide-76
SLIDE 76

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box)

1 1 1 00 11 01 10 1 1 1 1 1 1 1

slide-77
SLIDE 77

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box)

1 1 1 00 11 01 10 1 1 1 1 1 1 1 1 1 1 1

slide-78
SLIDE 78

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box) She un-labels the four boxes and sends them in random order to Bob. Also sends the key Kx=a (labeled only as Kx).

1 1 1 00 11 01 10 1 1 1 1 1 1 1 1 1 1 1

slide-79
SLIDE 79

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box) She un-labels the four boxes and sends them in random order to Bob. Also sends the key Kx=a (labeled only as Kx).

1 1 1 1 1 1 1 1 1 1

slide-80
SLIDE 80

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box) She un-labels the four boxes and sends them in random order to Bob. Also sends the key Kx=a (labeled only as Kx).

1 1 1 1 1 1 1 1 1 1

slide-81
SLIDE 81

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box) She un-labels the four boxes and sends them in random order to Bob. Also sends the key Kx=a (labeled only as Kx).

1 1 1 1 1 1 1 1 1 1

slide-82
SLIDE 82

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box) She un-labels the four boxes and sends them in random order to Bob. Also sends the key Kx=a (labeled only as Kx). So far Bob gets no information

1 1 1 1 1 1 1 1 1 1

slide-83
SLIDE 83

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box) She un-labels the four boxes and sends them in random order to Bob. Also sends the key Kx=a (labeled only as Kx). So far Bob gets no information Bob “obliviously picks up” Ky=b, and tries the two keys Kx,Ky on the four boxes. For one box both locks open and he gets the output.

1 1 1 1 1 1 1 1 1 1

slide-84
SLIDE 84

A Physical Protocol

Alice prepares 4 boxes Bxy corresponding to 4 possible input scenarios, and 4 padlocks/keys Kx=0, Kx=1, Ky=0 and Ky=1 Inside Bxy=ab she places the bit OR(a,b) and locks it with two padlocks Kx=a and Ky=b (need to open both to open the box) She un-labels the four boxes and sends them in random order to Bob. Also sends the key Kx=a (labeled only as Kx). So far Bob gets no information Bob “obliviously picks up” Ky=b, and tries the two keys Kx,Ky on the four boxes. For one box both locks open and he gets the output.

1 1 1 1 1 1 1 1 1 1 b

F

slide-85
SLIDE 85

A Physical Protocol

1 1 1 1 1 1 1 1 1 1 b

F

slide-86
SLIDE 86

A Physical Protocol

Secure?

1 1 1 1 1 1 1 1 1 1 b

F

slide-87
SLIDE 87

A Physical Protocol

Secure? For curious Alice: only influence from Bob is when he picks up his key Ky=b

1 1 1 1 1 1 1 1 1 1 b

F

slide-88
SLIDE 88

A Physical Protocol

Secure? For curious Alice: only influence from Bob is when he picks up his key Ky=b But this is done “obliviously”, so she learns nothing

1 1 1 1 1 1 1 1 1 1 b

F

slide-89
SLIDE 89

A Physical Protocol

Secure? For curious Alice: only influence from Bob is when he picks up his key Ky=b But this is done “obliviously”, so she learns nothing For curious Bob: What he sees is predictable (i.e., simulatable), given the final outcome

1 1 1 1 1 1 1 1 1 1 b

F

slide-90
SLIDE 90

A Physical Protocol

Secure? For curious Alice: only influence from Bob is when he picks up his key Ky=b But this is done “obliviously”, so she learns nothing For curious Bob: What he sees is predictable (i.e., simulatable), given the final outcome What Bob sees: His key opens Ky in two boxes, Alice’ s opens Kx in two boxes; only one random box fully opens. It has the outcome.

1 1 1 1 1 1 1 1 1 1 b

F

slide-91
SLIDE 91

A Physical Protocol

Secure? For curious Alice: only influence from Bob is when he picks up his key Ky=b But this is done “obliviously”, so she learns nothing For curious Bob: What he sees is predictable (i.e., simulatable), given the final outcome What Bob sees: His key opens Ky in two boxes, Alice’ s opens Kx in two boxes; only one random box fully opens. It has the outcome. Note when y=1, cases x=0 and x=1 appear same

1 1 1 1 1 1 1 1 1 1 b

F

slide-92
SLIDE 92

Larger Circuits

slide-93
SLIDE 93

Larger Circuits

slide-94
SLIDE 94

Larger Circuits

Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate

slide-95
SLIDE 95

Larger Circuits

Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate

slide-96
SLIDE 96

Larger Circuits

Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

slide-97
SLIDE 97

Larger Circuits

1 1 1

Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

slide-98
SLIDE 98

Larger Circuits

1 1 1

Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

0 1 0 1 0 1

slide-99
SLIDE 99

Larger Circuits

1 1 1

Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

0 1 0 1 0 1 0 1 0 1 0 1

slide-100
SLIDE 100

Larger Circuits

Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

1 1 1

slide-101
SLIDE 101

Larger Circuits

For each gate G with input wires (u,v) and output 
 wire w, prepare 4 boxes Buv and place Kw=G(a,b) inside
 box Buv=ab. Lock Buv=ab with keys Ku=a and Kv=b Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

1 1 1

slide-102
SLIDE 102

Larger Circuits

For each gate G with input wires (u,v) and output 
 wire w, prepare 4 boxes Buv and place Kw=G(a,b) inside
 box Buv=ab. Lock Buv=ab with keys Ku=a and Kv=b Give to Bob: Boxes for each gate, one key for each of Alice’ s input wires Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

1 1 1

slide-103
SLIDE 103

Larger Circuits

For each gate G with input wires (u,v) and output 
 wire w, prepare 4 boxes Buv and place Kw=G(a,b) inside
 box Buv=ab. Lock Buv=ab with keys Ku=a and Kv=b Give to Bob: Boxes for each gate, one key for each of Alice’ s input wires Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

1 1 1

slide-104
SLIDE 104

Larger Circuits

For each gate G with input wires (u,v) and output 
 wire w, prepare 4 boxes Buv and place Kw=G(a,b) inside
 box Buv=ab. Lock Buv=ab with keys Ku=a and Kv=b Give to Bob: Boxes for each gate, one key for each of Alice’ s input wires Obliviously: one key for each of Bob’ s input wires Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

1 1 1

slide-105
SLIDE 105

Larger Circuits

For each gate G with input wires (u,v) and output 
 wire w, prepare 4 boxes Buv and place Kw=G(a,b) inside
 box Buv=ab. Lock Buv=ab with keys Ku=a and Kv=b Give to Bob: Boxes for each gate, one key for each of Alice’ s input wires Obliviously: one key for each of Bob’ s input wires Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

1 1 1 b b b

F F F

slide-106
SLIDE 106

Larger Circuits

For each gate G with input wires (u,v) and output 
 wire w, prepare 4 boxes Buv and place Kw=G(a,b) inside
 box Buv=ab. Lock Buv=ab with keys Ku=a and Kv=b Give to Bob: Boxes for each gate, one key for each of Alice’ s input wires Obliviously: one key for each of Bob’ s input wires Boxes for output gates have values instead of keys Idea: For each gate in the circuit Alice will prepare locked boxes, but will use it to keep keys for the next gate For each wire w in the circuit (i.e., input wires, or output of a gate) pick 2 keys Kw=0 and Kw=1

1 1 1 b b b

F F F

slide-107
SLIDE 107

Larger Circuits

1 1 1 b b b

F F F

slide-108
SLIDE 108

Evaluation: Bob gets one key for each input wire of a gate, opens one box for the gate, gets one key for the output wire, and proceeds

Larger Circuits

1 1 1 b b b

F F F

slide-109
SLIDE 109

Evaluation: Bob gets one key for each input wire of a gate, opens one box for the gate, gets one key for the output wire, and proceeds Gets output from a box for the output gate

Larger Circuits

1 1 1 b b b

F F F

slide-110
SLIDE 110

Evaluation: Bob gets one key for each input wire of a gate, opens one box for the gate, gets one key for the output wire, and proceeds Gets output from a box for the output gate Security similar to before

Larger Circuits

1 1 1 b b b

F F F

slide-111
SLIDE 111

Evaluation: Bob gets one key for each input wire of a gate, opens one box for the gate, gets one key for the output wire, and proceeds Gets output from a box for the output gate Security similar to before Curious Alice sees nothing

Larger Circuits

1 1 1 b b b

F F F

slide-112
SLIDE 112

Evaluation: Bob gets one key for each input wire of a gate, opens one box for the gate, gets one key for the output wire, and proceeds Gets output from a box for the output gate Security similar to before Curious Alice sees nothing Bob can simulate his view given final output: Bob could prepare boxes and keys (stuffing unopenable boxes arbitrarily); for an output gate, place the output bit in the box that opens

Larger Circuits

1 1 1 b b b

F F F

slide-113
SLIDE 113

Garbled Circuit

slide-114
SLIDE 114

Garbled Circuit

That was too physical!

slide-115
SLIDE 115

Garbled Circuit

That was too physical! Yao’ s Garbled circuit: boxes/keys replaced by Symmetric Key Encryption (i.e., a PRF/PRG)

slide-116
SLIDE 116

Garbled Circuit

That was too physical! Yao’ s Garbled circuit: boxes/keys replaced by Symmetric Key Encryption (i.e., a PRF/PRG) Double lock: EncKx(EncKy(m))

slide-117
SLIDE 117

Garbled Circuit

That was too physical! Yao’ s Garbled circuit: boxes/keys replaced by Symmetric Key Encryption (i.e., a PRF/PRG) Double lock: EncKx(EncKy(m)) Oblivious Transfer for strings: Just repeat bit-OT several times to transfer longer keys

slide-118
SLIDE 118

Garbled Circuit

That was too physical! Yao’ s Garbled circuit: boxes/keys replaced by Symmetric Key Encryption (i.e., a PRF/PRG) Double lock: EncKx(EncKy(m)) Oblivious Transfer for strings: Just repeat bit-OT several times to transfer longer keys OK for passive security

slide-119
SLIDE 119

Garbled Circuit

That was too physical! Yao’ s Garbled circuit: boxes/keys replaced by Symmetric Key Encryption (i.e., a PRF/PRG) Double lock: EncKx(EncKy(m)) Oblivious Transfer for strings: Just repeat bit-OT several times to transfer longer keys OK for passive security Much more efficient than the proof of concept protocol, but relies on one-way functions (PRG) in addition to OT

slide-120
SLIDE 120

Today

slide-121
SLIDE 121

Today

2-Party SFE secure against passive adversaries

slide-122
SLIDE 122

Today

2-Party SFE secure against passive adversaries Yao’ s Garbled Circuit

slide-123
SLIDE 123

Today

2-Party SFE secure against passive adversaries Yao’ s Garbled Circuit Using OT and IND-CPA encryption

slide-124
SLIDE 124

Today

2-Party SFE secure against passive adversaries Yao’ s Garbled Circuit Using OT and IND-CPA encryption OT using TOWP

slide-125
SLIDE 125

Today

2-Party SFE secure against passive adversaries Yao’ s Garbled Circuit Using OT and IND-CPA encryption OT using TOWP Composition (implicitly)

slide-126
SLIDE 126

Today

2-Party SFE secure against passive adversaries Yao’ s Garbled Circuit Using OT and IND-CPA encryption OT using TOWP Composition (implicitly) Coming up: More protocols. More composition.