Homomorphic Encryption Lecture 18 And some applications - - PowerPoint PPT Presentation

homomorphic encryption
SMART_READER_LITE
LIVE PREVIEW

Homomorphic Encryption Lecture 18 And some applications - - PowerPoint PPT Presentation

Homomorphic Encryption Lecture 18 And some applications Homomorphic Encryption Homomorphic Encryption Group Homomorphism: Two groups G and G are homomorphic if there exists a function (homomorphism) f:G G such that for all x,y G,


slide-1
SLIDE 1

Homomorphic Encryption

Lecture 18 And some applications

slide-2
SLIDE 2

Homomorphic Encryption

slide-3
SLIDE 3

Homomorphic Encryption

Group Homomorphism: Two groups G and G’ are homomorphic if there exists a function (homomorphism) f:G→G’ such that for all x,y ∈ G, f(x) +G’ f(y) = f(x +G y)

slide-4
SLIDE 4

Homomorphic Encryption

Group Homomorphism: Two groups G and G’ are homomorphic if there exists a function (homomorphism) f:G→G’ such that for all x,y ∈ G, f(x) +G’ f(y) = f(x +G y) Homomorphic Encryption: A CPA secure (public-key) encryption s.t. Dec(C) +M Dec(D) = Dec (C +C D) for ciphertexts C, D

slide-5
SLIDE 5

Homomorphic Encryption

Group Homomorphism: Two groups G and G’ are homomorphic if there exists a function (homomorphism) f:G→G’ such that for all x,y ∈ G, f(x) +G’ f(y) = f(x +G y) Homomorphic Encryption: A CPA secure (public-key) encryption s.t. Dec(C) +M Dec(D) = Dec (C +C D) for ciphertexts C, D i.e. Enc(x) +C Enc(y) is like Enc(x +M y)

slide-6
SLIDE 6

Homomorphic Encryption

Group Homomorphism: Two groups G and G’ are homomorphic if there exists a function (homomorphism) f:G→G’ such that for all x,y ∈ G, f(x) +G’ f(y) = f(x +G y) Homomorphic Encryption: A CPA secure (public-key) encryption s.t. Dec(C) +M Dec(D) = Dec (C +C D) for ciphertexts C, D i.e. Enc(x) +C Enc(y) is like Enc(x +M y) Interesting when +C doesn’ t require the decryption key

slide-7
SLIDE 7

Homomorphic Encryption

Group Homomorphism: Two groups G and G’ are homomorphic if there exists a function (homomorphism) f:G→G’ such that for all x,y ∈ G, f(x) +G’ f(y) = f(x +G y) Homomorphic Encryption: A CPA secure (public-key) encryption s.t. Dec(C) +M Dec(D) = Dec (C +C D) for ciphertexts C, D i.e. Enc(x) +C Enc(y) is like Enc(x +M y) Interesting when +C doesn’ t require the decryption key e.g. El Gamal: (gx1,m1Yx1) * (gx2,m2Yx2) = (gx3,m1m2Yx3)

slide-8
SLIDE 8

Homomorphic Encryption

Group Homomorphism: Two groups G and G’ are homomorphic if there exists a function (homomorphism) f:G→G’ such that for all x,y ∈ G, f(x) +G’ f(y) = f(x +G y) Homomorphic Encryption: A CPA secure (public-key) encryption s.t. Dec(C) +M Dec(D) = Dec (C +C D) for ciphertexts C, D i.e. Enc(x) +C Enc(y) is like Enc(x +M y) Interesting when +C doesn’ t require the decryption key e.g. El Gamal: (gx1,m1Yx1) * (gx2,m2Yx2) = (gx3,m1m2Yx3) Not covered today: Fully Homomorphic Encryption, which supports ring homomorphism (addition and multiplication of messages)

slide-9
SLIDE 9

Rerandomization

slide-10
SLIDE 10

Rerandomization

Often (but not always) another property is required of a homomorphic encryption scheme

slide-11
SLIDE 11

Rerandomization

Often (but not always) another property is required of a homomorphic encryption scheme Unlinkability

slide-12
SLIDE 12

Rerandomization

Often (but not always) another property is required of a homomorphic encryption scheme Unlinkability For any two ciphertexts cx=Enc(x) and cy=Enc(y), Add(cx,cy) should be identically distributed as Enc(x +M y). Add is a randomized operation

slide-13
SLIDE 13

Rerandomization

Often (but not always) another property is required of a homomorphic encryption scheme Unlinkability For any two ciphertexts cx=Enc(x) and cy=Enc(y), Add(cx,cy) should be identically distributed as Enc(x +M y). Add is a randomized operation Alternately, a ReRand operation s.t. for all valid ciphertexts cx, ReRand(cx) is identically distributed as Enc(x)

slide-14
SLIDE 14

Rerandomization

Often (but not always) another property is required of a homomorphic encryption scheme Unlinkability For any two ciphertexts cx=Enc(x) and cy=Enc(y), Add(cx,cy) should be identically distributed as Enc(x +M y). Add is a randomized operation Alternately, a ReRand operation s.t. for all valid ciphertexts cx, ReRand(cx) is identically distributed as Enc(x) Then, we can let Add(cx,cy) = ReRand(cx +c cy) where +c may be deterministic

slide-15
SLIDE 15

Rerandomization

Often (but not always) another property is required of a homomorphic encryption scheme Unlinkability For any two ciphertexts cx=Enc(x) and cy=Enc(y), Add(cx,cy) should be identically distributed as Enc(x +M y). Add is a randomized operation Alternately, a ReRand operation s.t. for all valid ciphertexts cx, ReRand(cx) is identically distributed as Enc(x) Then, we can let Add(cx,cy) = ReRand(cx +c cy) where +c may be deterministic Rerandomization useful even without homomorphism

slide-16
SLIDE 16

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

slide-17
SLIDE 17

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

Considers only passive corruption

slide-18
SLIDE 18

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

E(m1), E(m2), ...

Considers only passive corruption

slide-19
SLIDE 19

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

m1, m2, ... E(m1), E(m2), ...

Considers only passive corruption

slide-20
SLIDE 20

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

m1, m2, ... h1, h2, ... E(m1), E(m2), ...

Considers only passive corruption

slide-21
SLIDE 21

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

m1, m2, ... h1, h2, ... E(m1), E(m2), ... Add(c1,c2)

Considers only passive corruption

slide-22
SLIDE 22

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

m1, m2, ... h1, h2, ... add(h1,h2) E(m1), E(m2), ... Add(c1,c2)

Considers only passive corruption

slide-23
SLIDE 23

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

m1, m2, ... h1, h2, ... add(h1,h2) m1+m2 E(m1), E(m2), ... Add(c1,c2)

Considers only passive corruption

slide-24
SLIDE 24

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

m1, m2, ... h1, h2, ... add(h1,h2) m1+m2 E(m1), E(m2), ... Add(c1,c2)

Considers only passive corruption Functionality gives “handles” to messages posted; accepts requests for posting fresh messages, or derived messages

slide-25
SLIDE 25

Unlinkable Homomorphic Encryption

A

(PK) (SK)

B

Recv

REAL IDEAL

A

F

H B

(PK)

m1, m2, ... h1, h2, ... add(h1,h2) m1+m2 E(m1), E(m2), ... Add(c1,c2)

Considers only passive corruption Functionality gives “handles” to messages posted; accepts requests for posting fresh messages, or derived messages Unlinkability: Above, receiver gets only the message m1+m2 in IDEAL; is not told if it is a fresh message or derived from

  • ther messages
slide-26
SLIDE 26

An OT Protocol

(for passive corruption)

slide-27
SLIDE 27

Using an (unlinkable) rerandomizable encryption scheme

An OT Protocol

(for passive corruption)

slide-28
SLIDE 28

Using an (unlinkable) rerandomizable encryption scheme

An OT Protocol

(for passive corruption)

slide-29
SLIDE 29

Using an (unlinkable) rerandomizable encryption scheme

An OT Protocol

(for passive corruption)

x0,x1

slide-30
SLIDE 30

Using an (unlinkable) rerandomizable encryption scheme

An OT Protocol

(for passive corruption)

x0,x1 b

slide-31
SLIDE 31

Using an (unlinkable) rerandomizable encryption scheme

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0)

x0,x1 b

slide-32
SLIDE 32

Using an (unlinkable) rerandomizable encryption scheme

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0)

PK, c0, c1 x0,x1 b

slide-33
SLIDE 33

Using an (unlinkable) rerandomizable encryption scheme Receiver picks (PK,SK). Sends PK and E(0), E(1) in suitable order

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0)

PK, c0, c1 x0,x1 b

slide-34
SLIDE 34

Using an (unlinkable) rerandomizable encryption scheme Receiver picks (PK,SK). Sends PK and E(0), E(1) in suitable order

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0)

PK, c0, c1

z0 = x0 * c0 z1 = x1 * c1

x0,x1 b

slide-35
SLIDE 35

Using an (unlinkable) rerandomizable encryption scheme Receiver picks (PK,SK). Sends PK and E(0), E(1) in suitable order Sender “multiplies” ci with xi: 1*c:=ReRand(c), 0*c:=E(0)

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0)

PK, c0, c1

z0 = x0 * c0 z1 = x1 * c1

x0,x1 b

slide-36
SLIDE 36

Using an (unlinkable) rerandomizable encryption scheme Receiver picks (PK,SK). Sends PK and E(0), E(1) in suitable order Sender “multiplies” ci with xi: 1*c:=ReRand(c), 0*c:=E(0)

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0)

PK, c0, c1

z0 = x0 * c0 z1 = x1 * c1

z0, z1 x0,x1 b

slide-37
SLIDE 37

Using an (unlinkable) rerandomizable encryption scheme Receiver picks (PK,SK). Sends PK and E(0), E(1) in suitable order Sender “multiplies” ci with xi: 1*c:=ReRand(c), 0*c:=E(0)

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0) xb=D(zb)

PK, c0, c1

z0 = x0 * c0 z1 = x1 * c1

z0, z1 x0,x1 b

slide-38
SLIDE 38

Using an (unlinkable) rerandomizable encryption scheme Receiver picks (PK,SK). Sends PK and E(0), E(1) in suitable order Sender “multiplies” ci with xi: 1*c:=ReRand(c), 0*c:=E(0)

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0) xb=D(zb)

PK, c0, c1

z0 = x0 * c0 z1 = x1 * c1

z0, z1 x0,x1 b xb

slide-39
SLIDE 39

Using an (unlinkable) rerandomizable encryption scheme Receiver picks (PK,SK). Sends PK and E(0), E(1) in suitable order Sender “multiplies” ci with xi: 1*c:=ReRand(c), 0*c:=E(0) Simulation for passive-corrupt receiver: set zb = E(xb) and z1-b = E(0)

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0) xb=D(zb)

PK, c0, c1

z0 = x0 * c0 z1 = x1 * c1

z0, z1 x0,x1 b xb

slide-40
SLIDE 40

Using an (unlinkable) rerandomizable encryption scheme Receiver picks (PK,SK). Sends PK and E(0), E(1) in suitable order Sender “multiplies” ci with xi: 1*c:=ReRand(c), 0*c:=E(0) Simulation for passive-corrupt receiver: set zb = E(xb) and z1-b = E(0) Simulation for passive-corrupt sender: Extract x0,x1 from input; set c0,c1 to be say E(1)

An OT Protocol

(for passive corruption)

cb=E(1), c1-b=E(0) xb=D(zb)

PK, c0, c1

z0 = x0 * c0 z1 = x1 * c1

z0, z1 x0,x1 b xb

slide-41
SLIDE 41

Private Information Retrieval

slide-42
SLIDE 42

Private Information Retrieval

Setting: A server holds a large vector of values (“database”). Client wants to retrieve the value at a particular index i

slide-43
SLIDE 43

Private Information Retrieval

Setting: A server holds a large vector of values (“database”). Client wants to retrieve the value at a particular index i Client wants privacy against an honest-but-curious server

slide-44
SLIDE 44

Private Information Retrieval

Setting: A server holds a large vector of values (“database”). Client wants to retrieve the value at a particular index i Client wants privacy against an honest-but-curious server Server has no security requirements

slide-45
SLIDE 45

Private Information Retrieval

Setting: A server holds a large vector of values (“database”). Client wants to retrieve the value at a particular index i Client wants privacy against an honest-but-curious server Server has no security requirements Trivial solution: Server sends the entire vector to the client

slide-46
SLIDE 46

Private Information Retrieval

Setting: A server holds a large vector of values (“database”). Client wants to retrieve the value at a particular index i Client wants privacy against an honest-but-curious server Server has no security requirements Trivial solution: Server sends the entire vector to the client PIR: to do it with significantly less communication

slide-47
SLIDE 47

Private Information Retrieval

Setting: A server holds a large vector of values (“database”). Client wants to retrieve the value at a particular index i Client wants privacy against an honest-but-curious server Server has no security requirements Trivial solution: Server sends the entire vector to the client PIR: to do it with significantly less communication Variant (we don’ t look at): multiple-server PIR, with non-colluding servers

slide-48
SLIDE 48

Private Information Retrieval

Setting: A server holds a large vector of values (“database”). Client wants to retrieve the value at a particular index i Client wants privacy against an honest-but-curious server Server has no security requirements Trivial solution: Server sends the entire vector to the client PIR: to do it with significantly less communication Variant (we don’ t look at): multiple-server PIR, with non-colluding servers Tool: Homomorphic encryption over the message space

slide-49
SLIDE 49

Private Information Retrieval

Setting: A server holds a large vector of values (“database”). Client wants to retrieve the value at a particular index i Client wants privacy against an honest-but-curious server Server has no security requirements Trivial solution: Server sends the entire vector to the client PIR: to do it with significantly less communication Variant (we don’ t look at): multiple-server PIR, with non-colluding servers Tool: Homomorphic encryption over the message space When message space is Zn: additively homomorphic encryption

slide-50
SLIDE 50

Paillier’ s Scheme

slide-51
SLIDE 51

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes

slide-52
SLIDE 52

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes

To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-53
SLIDE 53

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n)

To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-54
SLIDE 54

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n) Enc(m) = ψ(m,r) for m in Zn and a random r in Zn*

To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-55
SLIDE 55

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n) Enc(m) = ψ(m,r) for m in Zn and a random r in Zn* ψ can be efficiently inverted if p,q known

To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-56
SLIDE 56

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n) Enc(m) = ψ(m,r) for m in Zn and a random r in Zn* ψ can be efficiently inverted if p,q known (Additive) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’)

To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-57
SLIDE 57

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n) Enc(m) = ψ(m,r) for m in Zn and a random r in Zn* ψ can be efficiently inverted if p,q known (Additive) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψ(m,r).ψ(m’,r’) = ψ(m+m’,r.r’)

To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-58
SLIDE 58

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n) Enc(m) = ψ(m,r) for m in Zn and a random r in Zn* ψ can be efficiently inverted if p,q known (Additive) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψ(m,r).ψ(m’,r’) = ψ(m+m’,r.r’)

in Zn To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-59
SLIDE 59

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n) Enc(m) = ψ(m,r) for m in Zn and a random r in Zn* ψ can be efficiently inverted if p,q known (Additive) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψ(m,r).ψ(m’,r’) = ψ(m+m’,r.r’)

in Zn in Zn2* To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-60
SLIDE 60

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n) Enc(m) = ψ(m,r) for m in Zn and a random r in Zn* ψ can be efficiently inverted if p,q known (Additive) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψ(m,r).ψ(m’,r’) = ψ(m+m’,r.r’) IND-CPA secure under “Decisional Composite Residuosity” assumption: Given n=pq (but not p,q), ψ(0,rand) looks random (i.e. like ψ(rand,rand))

in Zn in Zn2* To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-61
SLIDE 61

Paillier’ s Scheme

Uses Zn2* ≃ Zn x Zn*, n=pq, p,q primes Isomorphism: ψ(a,b) = gabn (mod n2) where g=(1+n) Enc(m) = ψ(m,r) for m in Zn and a random r in Zn* ψ can be efficiently inverted if p,q known (Additive) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψ(m,r).ψ(m’,r’) = ψ(m+m’,r.r’) IND-CPA secure under “Decisional Composite Residuosity” assumption: Given n=pq (but not p,q), ψ(0,rand) looks random (i.e. like ψ(rand,rand)) Unlinkability: ReRand(c) = c.Enc(0)

in Zn in Zn2* To ensure gcd(n,ϕ(n))=1

within 2x of each other

slide-62
SLIDE 62

Private Information Retrieval

slide-63
SLIDE 63

Private Information Retrieval

Using additive homomorphic encryption (need not be unlinkable)

slide-64
SLIDE 64

Private Information Retrieval

Using additive homomorphic encryption (need not be unlinkable) Client sends some encrypted representation of the index (need CPA security here)

slide-65
SLIDE 65

Private Information Retrieval

Using additive homomorphic encryption (need not be unlinkable) Client sends some encrypted representation of the index (need CPA security here) Server operates on the entire database using this encryption (homomorphically), so that the message in the resulting encrypted data has the relevant answer (and maybe more). It sends this (short) encrypted data to client, who decrypts to get answer (depends on correctness here)

slide-66
SLIDE 66

Private Information Retrieval

Using additive homomorphic encryption (need not be unlinkable) Client sends some encrypted representation of the index (need CPA security here) Server operates on the entire database using this encryption (homomorphically), so that the message in the resulting encrypted data has the relevant answer (and maybe more). It sends this (short) encrypted data to client, who decrypts to get answer (depends on correctness here) In the following: database values are integers in [0,m);

  • homom. enc. over a group with an element 1 s.t. ord(1) ≥ m.

For integer x and ciphertext c, define x*c using “repeated doubling”: 0*c = E(0); 1*c = c; (a+b)*c = Add( a*c, b*c ).

slide-67
SLIDE 67

Private Information Retrieval

Using additive homomorphic encryption (need not be unlinkable) Client sends some encrypted representation of the index (need CPA security here) Server operates on the entire database using this encryption (homomorphically), so that the message in the resulting encrypted data has the relevant answer (and maybe more). It sends this (short) encrypted data to client, who decrypts to get answer (depends on correctness here) In the following: database values are integers in [0,m);

  • homom. enc. over a group with an element 1 s.t. ord(1) ≥ m.

For integer x and ciphertext c, define x*c using “repeated doubling”: 0*c = E(0); 1*c = c; (a+b)*c = Add( a*c, b*c ).

For Paillier, can use exponentiat ion

slide-68
SLIDE 68

Private Information Retrieval

x1 x2 : xi : xN

i

slide-69
SLIDE 69

: 1 : : 1 :

Private Information Retrieval

x1 x2 : xi : xN

i

slide-70
SLIDE 70

: 1 : : 1 :

Private Information Retrieval

x1 x2 : xi : xN

i

slide-71
SLIDE 71

: 1 : : 1 :

Private Information Retrieval

x1 x2 : xi : xN : xi :

* i

slide-72
SLIDE 72

: 1 :

Private Information Retrieval

x1 x2 : xi : xN : xi : xi

* [+] i

slide-73
SLIDE 73

: 1 :

Private Information Retrieval

x1 x2 : xi : xN : xi : xi xi

* [+] i

slide-74
SLIDE 74

: 1 :

Private Information Retrieval

x1 x2 : xi : xN : xi : xi xi xi

* [+]

Dec

i

slide-75
SLIDE 75

: 1 :

Private Information Retrieval

x1 x2 : xi : xN : xi : xi xi xi

* [+]

Dec

i

Server communication is very short. But client communication is larger than the db!

slide-76
SLIDE 76

Private Information Retrieval

x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN

slide-77
SLIDE 77

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN

slide-78
SLIDE 78

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN

slide-79
SLIDE 79

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN

slide-80
SLIDE 80

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN

slide-81
SLIDE 81

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN

Use PIR again!

slide-82
SLIDE 82

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN .. 1 ..

Use PIR again!

slide-83
SLIDE 83

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN .. 1 ..

Use PIR again!

slide-84
SLIDE 84

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN .. 1 ..

Considering ciphertext as plaintext for the sub-PIR Use PIR again!

slide-85
SLIDE 85

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN .. 1 ..

Considering ciphertext as plaintext for the sub-PIR Can chop ciphertexts into smaller blocks Use PIR again!

slide-86
SLIDE 86

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN .. 1 ..

Considering ciphertext as plaintext for the sub-PIR Can chop ciphertexts into smaller blocks Use PIR again!

slide-87
SLIDE 87

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN .. 1 .. .. xij ..

Considering ciphertext as plaintext for the sub-PIR Can chop ciphertexts into smaller blocks Use PIR again!

slide-88
SLIDE 88

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN .. 1 .. .. xij .. xij

Considering ciphertext as plaintext for the sub-PIR Can chop ciphertexts into smaller blocks Use PIR again!

slide-89
SLIDE 89

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN .. 1 .. .. xij .. xij

Considering ciphertext as plaintext for the sub-PIR Can chop ciphertexts into smaller blocks Use PIR again!

slide-90
SLIDE 90

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN xij .. 1 .. .. xij .. xij

Considering ciphertext as plaintext for the sub-PIR Can chop ciphertexts into smaller blocks Use PIR again!

slide-91
SLIDE 91

.. : : xi1 .. xij .. xiN : : ..

Private Information Retrieval

: 1 : x11 x1N x21 x2N : : xi1 xij xiN : : xN xNN xi1 .. xij .. xiN xij .. 1 .. .. xij .. xij

Considering ciphertext as plaintext for the sub-PIR Can chop ciphertexts into smaller blocks Recurse? Exponential in recursion depth Use PIR again!

slide-92
SLIDE 92

Private Information Retrieval

slide-93
SLIDE 93

Private Information Retrieval

Can dramatically improve efficiency if we have an efficient “recursive” homomorphic encryption scheme

slide-94
SLIDE 94

Private Information Retrieval

Can dramatically improve efficiency if we have an efficient “recursive” homomorphic encryption scheme Ciphertext in one level is plaintext in the next level

slide-95
SLIDE 95

Private Information Retrieval

Can dramatically improve efficiency if we have an efficient “recursive” homomorphic encryption scheme Ciphertext in one level is plaintext in the next level In Paillier, public-key (i.e., n) fixes the group for homomorphic operation (i.e., Zn)

slide-96
SLIDE 96

Private Information Retrieval

Can dramatically improve efficiency if we have an efficient “recursive” homomorphic encryption scheme Ciphertext in one level is plaintext in the next level In Paillier, public-key (i.e., n) fixes the group for homomorphic operation (i.e., Zn) Ciphertext size increases only “additively” from level to level

slide-97
SLIDE 97

Private Information Retrieval

Can dramatically improve efficiency if we have an efficient “recursive” homomorphic encryption scheme Ciphertext in one level is plaintext in the next level In Paillier, public-key (i.e., n) fixes the group for homomorphic operation (i.e., Zn) Ciphertext size increases only “additively” from level to level In Paillier, size of ciphertext about double that of the

  • plaintext. (Note: can’

t use “hybrid encryption” if homomorphic property is to be preserved.)

slide-98
SLIDE 98

Private Information Retrieval

Can dramatically improve efficiency if we have an efficient “recursive” homomorphic encryption scheme Ciphertext in one level is plaintext in the next level In Paillier, public-key (i.e., n) fixes the group for homomorphic operation (i.e., Zn) Ciphertext size increases only “additively” from level to level In Paillier, size of ciphertext about double that of the

  • plaintext. (Note: can’

t use “hybrid encryption” if homomorphic property is to be preserved.) Does such a family of encryption schemes exist?

slide-99
SLIDE 99

Damgård-Jurik Scheme

slide-100
SLIDE 100

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other

slide-101
SLIDE 101

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n)

slide-102
SLIDE 102

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn*

slide-103
SLIDE 103

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn* ψs can still be efficiently inverted if p,q known (but more involved)

slide-104
SLIDE 104

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn* ψs can still be efficiently inverted if p,q known (but more involved) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’)

slide-105
SLIDE 105

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn* ψs can still be efficiently inverted if p,q known (but more involved) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψs(m,r).ψs(m’,r’) = ψs(m+m’,r.r’)

slide-106
SLIDE 106

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn* ψs can still be efficiently inverted if p,q known (but more involved) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψs(m,r).ψs(m’,r’) = ψs(m+m’,r.r’)

in Zn(s+1)*

slide-107
SLIDE 107

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn* ψs can still be efficiently inverted if p,q known (but more involved) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψs(m,r).ψs(m’,r’) = ψs(m+m’,r.r’)

in Zn(s+1)* in Zns

slide-108
SLIDE 108

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn* ψs can still be efficiently inverted if p,q known (but more involved) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψs(m,r).ψs(m’,r’) = ψs(m+m’,r.r’) Recursive encryption: Output (ciphertext) of ψs (Zn(s+1)*) is an input (plaintext) for ψs+1 (Zn(s+1)) for the same public-key n. Note: s log n bits encrypted to (s+1)log n bits.

in Zn(s+1)* in Zns

slide-109
SLIDE 109

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn* ψs can still be efficiently inverted if p,q known (but more involved) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψs(m,r).ψs(m’,r’) = ψs(m+m’,r.r’) Recursive encryption: Output (ciphertext) of ψs (Zn(s+1)*) is an input (plaintext) for ψs+1 (Zn(s+1)) for the same public-key n. Note: s log n bits encrypted to (s+1)log n bits. IND-CPA secure under “Decisional Composite Residuosity” assumption: Given n=pq (but not p,q), ψ1(0,rand) looks random (same as Paillier)

in Zn(s+1)* in Zns

slide-110
SLIDE 110

Damgård-Jurik Scheme

Uses Zn(s+1)* ≃ Zns x Zn*, n=pq, p,q primes within 2x of each other Isomorphism: ψs(a,b) = gabn^s where g=(1+n) Enc(m) = ψs(m,r) for m in Zns and a random r in Zn* ψs can still be efficiently inverted if p,q known (but more involved) Homomorphism: Enc(m).Enc(m’) is Enc(m+m’) ψs(m,r).ψs(m’,r’) = ψs(m+m’,r.r’) Recursive encryption: Output (ciphertext) of ψs (Zn(s+1)*) is an input (plaintext) for ψs+1 (Zn(s+1)) for the same public-key n. Note: s log n bits encrypted to (s+1)log n bits. IND-CPA secure under “Decisional Composite Residuosity” assumption: Given n=pq (but not p,q), ψ1(0,rand) looks random (same as Paillier) Unlinkability: ReRand(c) = c.Enc(0) (using same s in Enc as for c)

in Zn(s+1)* in Zns

slide-111
SLIDE 111

Final PIR protocol

:

slide-112
SLIDE 112

Final PIR protocol

1

:

slide-113
SLIDE 113

Final PIR protocol

1

: *

slide-114
SLIDE 114

Final PIR protocol

1

: * +

slide-115
SLIDE 115

Final PIR protocol

1 1

: * +

slide-116
SLIDE 116

Final PIR protocol

1 1

: * +

slide-117
SLIDE 117

Final PIR protocol

1 1

: * +

slide-118
SLIDE 118

Final PIR protocol

1 1 1

: * +

slide-119
SLIDE 119

Final PIR protocol

1 1 1

: * +

slide-120
SLIDE 120

Final PIR protocol

1 1 1

: * +

slide-121
SLIDE 121

Final PIR protocol

1 1 1

: * +

slide-122
SLIDE 122

Final PIR protocol

1 xi 1 1

: * +

slide-123
SLIDE 123

Final PIR protocol

1 xi 1 1

:

Size of ciphertext at depth d is O(d log m) where m is the range of values in db

* +

slide-124
SLIDE 124

Final PIR protocol

1 xi 1 1

:

Size of ciphertext at depth d is O(d log m) where m is the range of values in db “Constant” in O(.) contains security parameter

* +

slide-125
SLIDE 125

Final PIR protocol

1 xi 1 1

:

Size of ciphertext at depth d is O(d log m) where m is the range of values in db “Constant” in O(.) contains security parameter Total communication from client = O(log2N log m), where N is the number of entries in the db

* +

slide-126
SLIDE 126

Final PIR protocol

1 xi 1 1

:

Size of ciphertext at depth d is O(d log m) where m is the range of values in db “Constant” in O(.) contains security parameter Total communication from client = O(log2N log m), where N is the number of entries in the db Total communication from server = O(log N log m)

* +

slide-127
SLIDE 127

Homomorphic Encryption for MPC

slide-128
SLIDE 128

Homomorphic Encryption for MPC

Recall GMW (passive-secure): each wire value was kept shared among the parties

slide-129
SLIDE 129

Homomorphic Encryption for MPC

Recall GMW (passive-secure): each wire value was kept shared among the parties Alternate approach: each wire value is kept encrypted, publicly, and the key is kept shared

slide-130
SLIDE 130

Homomorphic Encryption for MPC

Recall GMW (passive-secure): each wire value was kept shared among the parties Alternate approach: each wire value is kept encrypted, publicly, and the key is kept shared Will evaluate each wire using homomorphism (unlinkable)

slide-131
SLIDE 131

Homomorphic Encryption for MPC

Recall GMW (passive-secure): each wire value was kept shared among the parties Alternate approach: each wire value is kept encrypted, publicly, and the key is kept shared Will evaluate each wire using homomorphism (unlinkable) Notation: [x] [+] [y] = [x+y], and a*[x] = [ax]

slide-132
SLIDE 132

Homomorphic Encryption for MPC

Recall GMW (passive-secure): each wire value was kept shared among the parties Alternate approach: each wire value is kept encrypted, publicly, and the key is kept shared Will evaluate each wire using homomorphism (unlinkable) Notation: [x] [+] [y] = [x+y], and a*[x] = [ax] And decrypt the output wire value: threshold decryption

slide-133
SLIDE 133

Homomorphic Encryption for MPC

Recall GMW (passive-secure): each wire value was kept shared among the parties Alternate approach: each wire value is kept encrypted, publicly, and the key is kept shared Will evaluate each wire using homomorphism (unlinkable) Notation: [x] [+] [y] = [x+y], and a*[x] = [ax] And decrypt the output wire value: threshold decryption Threshold decryption: KeyGen protocol so that PK is public and SK shared; Decryption protocol that lets the parties decrypt a ciphertext keeping their SK shares private

slide-134
SLIDE 134

Homomorphic Encryption for MPC

Recall GMW (passive-secure): each wire value was kept shared among the parties Alternate approach: each wire value is kept encrypted, publicly, and the key is kept shared Will evaluate each wire using homomorphism (unlinkable) Notation: [x] [+] [y] = [x+y], and a*[x] = [ax] And decrypt the output wire value: threshold decryption Threshold decryption: KeyGen protocol so that PK is public and SK shared; Decryption protocol that lets the parties decrypt a ciphertext keeping their SK shares private (For active-security, also ZK proofs/proofs of knowledge)

slide-135
SLIDE 135

Homomorphic Encryption for MPC

slide-136
SLIDE 136

Homomorphic Encryption for MPC

Run KeyGen and obtain PK and private shares for SK

slide-137
SLIDE 137

Homomorphic Encryption for MPC

Run KeyGen and obtain PK and private shares for SK Each party encrypts its input and publishes

slide-138
SLIDE 138

Homomorphic Encryption for MPC

Run KeyGen and obtain PK and private shares for SK Each party encrypts its input and publishes

For active- security, include ZK proofs of correctness/ knowledge of plaintext, when publishing

slide-139
SLIDE 139

Homomorphic Encryption for MPC

Run KeyGen and obtain PK and private shares for SK Each party encrypts its input and publishes At an addition gate, carry out homomorphic addition: [z]=[x][+][y]

For active- security, include ZK proofs of correctness/ knowledge of plaintext, when publishing

slide-140
SLIDE 140

Homomorphic Encryption for MPC

Run KeyGen and obtain PK and private shares for SK Each party encrypts its input and publishes At an addition gate, carry out homomorphic addition: [z]=[x][+][y] At a multiplication gate, given [x] and [y], to compute [xy]:

For active- security, include ZK proofs of correctness/ knowledge of plaintext, when publishing

slide-141
SLIDE 141

Homomorphic Encryption for MPC

Run KeyGen and obtain PK and private shares for SK Each party encrypts its input and publishes At an addition gate, carry out homomorphic addition: [z]=[x][+][y] At a multiplication gate, given [x] and [y], to compute [xy]: Share x: All parties except P1, choose their shares si; to help P1 compute s1, they publish [-si], P1 publishes [r]; they threshold decrypt [t]=[r + x + Σi=2:m (-si)]. P1 sets s1 = t-r

For active- security, include ZK proofs of correctness/ knowledge of plaintext, when publishing

slide-142
SLIDE 142

Homomorphic Encryption for MPC

Run KeyGen and obtain PK and private shares for SK Each party encrypts its input and publishes At an addition gate, carry out homomorphic addition: [z]=[x][+][y] At a multiplication gate, given [x] and [y], to compute [xy]: Share x: All parties except P1, choose their shares si; to help P1 compute s1, they publish [-si], P1 publishes [r]; they threshold decrypt [t]=[r + x + Σi=2:m (-si)]. P1 sets s1 = t-r Each party publishes si*[y] = [si y]; they compute [Σsiy]=[xy]

For active- security, include ZK proofs of correctness/ knowledge of plaintext, when publishing

slide-143
SLIDE 143

Homomorphic Encryption for MPC

Run KeyGen and obtain PK and private shares for SK Each party encrypts its input and publishes At an addition gate, carry out homomorphic addition: [z]=[x][+][y] At a multiplication gate, given [x] and [y], to compute [xy]: Share x: All parties except P1, choose their shares si; to help P1 compute s1, they publish [-si], P1 publishes [r]; they threshold decrypt [t]=[r + x + Σi=2:m (-si)]. P1 sets s1 = t-r Each party publishes si*[y] = [si y]; they compute [Σsiy]=[xy] Threshold decrypt the output

For active- security, include ZK proofs of correctness/ knowledge of plaintext, when publishing

slide-144
SLIDE 144

The plaintext domain

slide-145
SLIDE 145

The plaintext domain

In some encryption schemes the plaintext domain is fixed as a system parameter

slide-146
SLIDE 146

The plaintext domain

In some encryption schemes the plaintext domain is fixed as a system parameter e.g. El Gamal, when the DDH group is fixed

slide-147
SLIDE 147

The plaintext domain

In some encryption schemes the plaintext domain is fixed as a system parameter e.g. El Gamal, when the DDH group is fixed But sometimes the plaintext domain is chosen as part of the public-key

slide-148
SLIDE 148

The plaintext domain

In some encryption schemes the plaintext domain is fixed as a system parameter e.g. El Gamal, when the DDH group is fixed But sometimes the plaintext domain is chosen as part of the public-key e.g. Paillier, when the modulus n = pq is chosen

slide-149
SLIDE 149

The plaintext domain

In some encryption schemes the plaintext domain is fixed as a system parameter e.g. El Gamal, when the DDH group is fixed But sometimes the plaintext domain is chosen as part of the public-key e.g. Paillier, when the modulus n = pq is chosen For non-homomorphic encryption, not critical: can use a scheme with a larger domain into which the required domain can be embedded

slide-150
SLIDE 150

The plaintext domain

In some encryption schemes the plaintext domain is fixed as a system parameter e.g. El Gamal, when the DDH group is fixed But sometimes the plaintext domain is chosen as part of the public-key e.g. Paillier, when the modulus n = pq is chosen For non-homomorphic encryption, not critical: can use a scheme with a larger domain into which the required domain can be embedded But not good for homomorphic encryption: say, an application needs to use addition modulo 10; can we use Paillier?

slide-151
SLIDE 151

The plaintext domain

slide-152
SLIDE 152

The plaintext domain

Say, an application needs to use addition modulo 10; can we use Paillier?

slide-153
SLIDE 153

The plaintext domain

Say, an application needs to use addition modulo 10; can we use Paillier? Suppose there is a bound on how many times the homomorphic operation will be carried out

slide-154
SLIDE 154

The plaintext domain

Say, an application needs to use addition modulo 10; can we use Paillier? Suppose there is a bound on how many times the homomorphic operation will be carried out Then, work with a suitably large modulus, so that no

  • verflow occurs
slide-155
SLIDE 155

The plaintext domain

Say, an application needs to use addition modulo 10; can we use Paillier? Suppose there is a bound on how many times the homomorphic operation will be carried out Then, work with a suitably large modulus, so that no

  • verflow occurs

But not unlinkable: 9+3 and 2 look different

slide-156
SLIDE 156

The plaintext domain

Say, an application needs to use addition modulo 10; can we use Paillier? Suppose there is a bound on how many times the homomorphic operation will be carried out Then, work with a suitably large modulus, so that no

  • verflow occurs

But not unlinkable: 9+3 and 2 look different Also suppose OK to reveal how many operations were done

slide-157
SLIDE 157

The plaintext domain

Say, an application needs to use addition modulo 10; can we use Paillier? Suppose there is a bound on how many times the homomorphic operation will be carried out Then, work with a suitably large modulus, so that no

  • verflow occurs

But not unlinkable: 9+3 and 2 look different Also suppose OK to reveal how many operations were done Each time add a large random multiple of 10 (but not large enough to cause overflow): 9+3+10r and 2+10r are statistically close if r drawn from a large range

slide-158
SLIDE 158

Today

slide-159
SLIDE 159

Today

Homomorphic Encryption: El Gamal, Paillier, Damgård-Jurik

slide-160
SLIDE 160

Today

Homomorphic Encryption: El Gamal, Paillier, Damgård-Jurik Applications of Homomorphic Encryption

slide-161
SLIDE 161

Today

Homomorphic Encryption: El Gamal, Paillier, Damgård-Jurik Applications of Homomorphic Encryption A simple (passive-secure) OT protocol using rerandomizable encryption

slide-162
SLIDE 162

Today

Homomorphic Encryption: El Gamal, Paillier, Damgård-Jurik Applications of Homomorphic Encryption A simple (passive-secure) OT protocol using rerandomizable encryption PIR (using Damgård-Jurik encryption scheme)

slide-163
SLIDE 163

Today

Homomorphic Encryption: El Gamal, Paillier, Damgård-Jurik Applications of Homomorphic Encryption A simple (passive-secure) OT protocol using rerandomizable encryption PIR (using Damgård-Jurik encryption scheme) MPC

slide-164
SLIDE 164

Today

Homomorphic Encryption: El Gamal, Paillier, Damgård-Jurik Applications of Homomorphic Encryption A simple (passive-secure) OT protocol using rerandomizable encryption PIR (using Damgård-Jurik encryption scheme) MPC Not covered: “Fully Homomorphic Encryption”, security against active corruption (ZK proofs, non-malleable homomorphic encryption)

slide-165
SLIDE 165

Today

Homomorphic Encryption: El Gamal, Paillier, Damgård-Jurik Applications of Homomorphic Encryption A simple (passive-secure) OT protocol using rerandomizable encryption PIR (using Damgård-Jurik encryption scheme) MPC Not covered: “Fully Homomorphic Encryption”, security against active corruption (ZK proofs, non-malleable homomorphic encryption) Coming up: more applications - in voting