Malleable Proof Systems and Applications Melissa Chase (MSR Redmond) - - PowerPoint PPT Presentation

malleable proof systems and applications
SMART_READER_LITE
LIVE PREVIEW

Malleable Proof Systems and Applications Melissa Chase (MSR Redmond) - - PowerPoint PPT Presentation

Malleable Proof Systems and Applications Melissa Chase (MSR Redmond) Markulf Kohlweiss (MSR Cambridge) Anna Lysyanskaya (Brown University) Sarah Meiklejohn (UC San Diego) 1 Non-malleable cryptography Twenty years ago, saw a strong emphasis on


slide-1
SLIDE 1

Malleable Proof Systems and Applications

Melissa Chase (MSR Redmond) Markulf Kohlweiss (MSR Cambridge) Anna Lysyanskaya (Brown University) Sarah Meiklejohn (UC San Diego)

1

slide-2
SLIDE 2

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

2

slide-3
SLIDE 3

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

2

slide-4
SLIDE 4

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

2

slide-5
SLIDE 5

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

balance: $100

2

slide-6
SLIDE 6

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography Enc(“Transfer $10 to Alice”)

balance: $100

2

slide-7
SLIDE 7

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography Enc(“Transfer $10 to Alice”)

balance: $100

2

slide-8
SLIDE 8

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography Enc(“Transfer $10 to Alice”)

balance: $100

2

slide-9
SLIDE 9

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography Enc(“Transfer $10 to Alice”)

balance: $100

2

slide-10
SLIDE 10

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography Enc(“Transfer $10 to Alice”)

balance: $100 balance: $0

2

slide-11
SLIDE 11

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

balance: $100

Enc(“Transfer $1000 to Alice”)

balance: $0

2

slide-12
SLIDE 12

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

balance: $100

Enc(“Transfer $1000 to Alice”)

balance: $0

2

slide-13
SLIDE 13

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

balance: $100 balance: -$900

Enc(“Transfer $1000 to Alice”)

balance: $0

2

slide-14
SLIDE 14

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

balance: $100 balance: -$900

Enc(“Transfer $1000 to Alice”)

balance: $0 balance: $1000

2

slide-15
SLIDE 15

Twenty years ago, saw a strong emphasis on non-malleable cryptography [DDN91,S99,dCIO98,BS99,...]

Non-malleable cryptography

balance: $100 balance: -$900

Enc(“Transfer $1000 to Alice”)

balance: $0 balance: $1000

?!?!?!

2

slide-16
SLIDE 16

Malleable cryptography

3

slide-17
SLIDE 17

Recently, see more emphasis on malleable cryptography [G09,BCCKLS09,DHLW10,F11,BF11,ABCHSW12]

Malleable cryptography

3

slide-18
SLIDE 18

Recently, see more emphasis on malleable cryptography [G09,BCCKLS09,DHLW10,F11,BF11,ABCHSW12]

Malleable cryptography

3

slide-19
SLIDE 19

Recently, see more emphasis on malleable cryptography [G09,BCCKLS09,DHLW10,F11,BF11,ABCHSW12]

Malleable cryptography

3

slide-20
SLIDE 20

Recently, see more emphasis on malleable cryptography [G09,BCCKLS09,DHLW10,F11,BF11,ABCHSW12]

Malleable cryptography

3

c1=Enc(m1),...,cn=Enc(mn)

slide-21
SLIDE 21

Recently, see more emphasis on malleable cryptography [G09,BCCKLS09,DHLW10,F11,BF11,ABCHSW12]

Malleable cryptography

what’s my average mi?

3

c1=Enc(m1),...,cn=Enc(mn)

slide-22
SLIDE 22

Recently, see more emphasis on malleable cryptography [G09,BCCKLS09,DHLW10,F11,BF11,ABCHSW12]

Malleable cryptography c=Enc((m1+...+mn)/n)

what’s my average mi?

3

c1=Enc(m1),...,cn=Enc(mn)

slide-23
SLIDE 23

Recently, see more emphasis on malleable cryptography [G09,BCCKLS09,DHLW10,F11,BF11,ABCHSW12] Has applications in cloud storage, outsourcing computation, search on encrypted data, etc.

Malleable cryptography c=Enc((m1+...+mn)/n)

what’s my average mi?

3

c1=Enc(m1),...,cn=Enc(mn)

slide-24
SLIDE 24

Our contribution: controlled malleable cryptography

4

slide-25
SLIDE 25

Methods for controlling malleability can provide a compromise between functionality and security [PR08,BSW12]

Our contribution: controlled malleable cryptography

4

slide-26
SLIDE 26

Methods for controlling malleability can provide a compromise between functionality and security [PR08,BSW12]

  • E.g., in cloud storage, only allowable transformation is the average

Our contribution: controlled malleable cryptography

4

slide-27
SLIDE 27

Methods for controlling malleability can provide a compromise between functionality and security [PR08,BSW12]

  • E.g., in cloud storage, only allowable transformation is the average
  • E.g., with bank account, mauling can only decrease amount

Our contribution: controlled malleable cryptography

4

slide-28
SLIDE 28

Methods for controlling malleability can provide a compromise between functionality and security [PR08,BSW12]

  • E.g., in cloud storage, only allowable transformation is the average
  • E.g., with bank account, mauling can only decrease amount

Our contribution: controlled malleable cryptography

In this work:

  • Introduce notions of uncontrolled and controlled malleability for proofs
  • Give two applications: CM-CCA security and compact verifiable shuffles
  • Examine malleability within existing proof systems

4

slide-29
SLIDE 29

Outline

5

slide-30
SLIDE 30

Outline

5

Definitions

slide-31
SLIDE 31

Outline

5

Definitions cm-NIZK construction

slide-32
SLIDE 32

Outline

5

Definitions cm-NIZK construction Applications

slide-33
SLIDE 33

Outline

5

Definitions cm-NIZK construction Applications Conclusions

slide-34
SLIDE 34

Outline

5

Definitions cm-NIZK construction Applications Conclusions Definitions

Zero knowledge Malleability Controlled malleability Derivation privacy

slide-35
SLIDE 35

Notions of malleability for proofs

6

slide-36
SLIDE 36

Notions of malleability for proofs

Example: take a proof π1 that b1 is a bit and a proof π2 that b2 is a bit, and “maul” them somehow to get a proof that b1*b2 is a bit

6

slide-37
SLIDE 37

Notions of malleability for proofs

Example: take a proof π1 that b1 is a bit and a proof π2 that b2 is a bit, and “maul” them somehow to get a proof that b1*b2 is a bit More generally, a proof is malleable with respect to T if there exists an algorithm Eval that on input (T,{xi,πi}), outputs a proof π for T({xi})

6

slide-38
SLIDE 38

Notions of malleability for proofs

Example: take a proof π1 that b1 is a bit and a proof π2 that b2 is a bit, and “maul” them somehow to get a proof that b1*b2 is a bit More generally, a proof is malleable with respect to T if there exists an algorithm Eval that on input (T,{xi,πi}), outputs a proof π for T({xi})

  • E.g., T = ×, xi = “bi is a bit”

6

slide-39
SLIDE 39

Notions of malleability for proofs

Example: take a proof π1 that b1 is a bit and a proof π2 that b2 is a bit, and “maul” them somehow to get a proof that b1*b2 is a bit More generally, a proof is malleable with respect to T if there exists an algorithm Eval that on input (T,{xi,πi}), outputs a proof π for T({xi})

  • E.g., T = ×, xi = “bi is a bit”

If we want zero knowledge, need to make sure proofs are malleable only with respect to operations under which the language is closed

  • E.g., with bits, we run into trouble if we try to use T = +

6

slide-40
SLIDE 40

Reconciling (controlled) malleability with soundness

7

slide-41
SLIDE 41

Reconciling (controlled) malleability with soundness

What if we want to be able to maul proofs of knowledge only in certain ways?

7

slide-42
SLIDE 42

Reconciling (controlled) malleability with soundness

What if we want to be able to maul proofs of knowledge only in certain ways?

  • Define an allowable set of transformations T

7

slide-43
SLIDE 43

Reconciling (controlled) malleability with soundness

What if we want to be able to maul proofs of knowledge only in certain ways?

  • Define an allowable set of transformations T
  • Next we look at simulation soundness [S99,dSdCOPS01]: adversary can’t

provide proofs of false statements, even with access to a simulation oracle that can

7

slide-44
SLIDE 44

Reconciling (controlled) malleability with soundness

What if we want to be able to maul proofs of knowledge only in certain ways?

  • Define an allowable set of transformations T
  • Next we look at simulation soundness [S99,dSdCOPS01]: adversary can’t

provide proofs of false statements, even with access to a simulation oracle that can

  • Even more, simulation-sound extractability [G06] says that in fact we can

always pull out a witness from any proof output by the adversary

7

slide-45
SLIDE 45

Reconciling (controlled) malleability with soundness

What if we want to be able to maul proofs of knowledge only in certain ways?

  • Define an allowable set of transformations T
  • Next we look at simulation soundness [S99,dSdCOPS01]: adversary can’t

provide proofs of false statements, even with access to a simulation oracle that can

  • Even more, simulation-sound extractability [G06] says that in fact we can

always pull out a witness from any proof output by the adversary

  • Our definition goes one step further: either we can pull out a witness, or it

was derived from a simulated proof under a transformation in T

7

slide-46
SLIDE 46

Controlled-malleable SSE zero-knowledge proofs

8

slide-47
SLIDE 47

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

slide-48
SLIDE 48

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

slide-49
SLIDE 49

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

τe σ,τs,

slide-50
SLIDE 50

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe σ,τs,

slide-51
SLIDE 51

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe σ,τs,

slide-52
SLIDE 52

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe σ,τs,

Q

slide-53
SLIDE 53

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe xi σ,τs,

Q

slide-54
SLIDE 54

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe xi πi σ,τs,

Q

slide-55
SLIDE 55

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe xi πi (x,π) σ,τs,

Q

slide-56
SLIDE 56

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe xi πi (w,x′,T) (x,π) σ,τs,

Q

slide-57
SLIDE 57

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one A wins if the proof verifies and x∉Q but (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe xi πi (w,x′,T) (x,π) σ,τs,

Q

slide-58
SLIDE 58

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one A wins if the proof verifies and x∉Q but (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥) We call the proof CM-SSE (controlled malleable simulation sound extractable) if any PPT adversary A has at most negligible probability in winning this game

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe xi πi (w,x′,T) (x,π) σ,τs,

Q

slide-59
SLIDE 59

High-level idea: extractor can pull out either a witness, or a previously queried statement and a transformation from that statement to the new one A wins if the proof verifies and x∉Q but (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥) We call the proof CM-SSE (controlled malleable simulation sound extractable) if any PPT adversary A has at most negligible probability in winning this game If a proof is zero knowledge, CM-SSE, and strongly derivation private, then we call it a cm-NIZK

Controlled-malleable SSE zero-knowledge proofs

8

σ,τe τe xi πi (w,x′,T)

(like function privacy for encryption)

(x,π) σ,τs,

Q

slide-60
SLIDE 60

Outline

9

Cryptographic background Malleable NIZK construction Applications Conclusions Definitions cm-NIZK construction

Generic construction Efficient instantiation

slide-61
SLIDE 61

How to construct cm-NIZKs

10

slide-62
SLIDE 62

We will combine malleable NIWIPoKs with unforgeable signatures

How to construct cm-NIZKs

10

slide-63
SLIDE 63

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

slide-64
SLIDE 64

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

slide-65
SLIDE 65

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

Q τs=sk

slide-66
SLIDE 66

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

xi

Q τs=sk

slide-67
SLIDE 67

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ)

xi πi

Q τs=sk

slide-68
SLIDE 68

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ)

xi πi (x,π)

Q τs=sk

slide-69
SLIDE 69

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π)

Q τs=sk

slide-70
SLIDE 70

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T)

Q τs=sk

slide-71
SLIDE 71

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T}

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

Q τs=sk

slide-72
SLIDE 72

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

Q τs=sk

slide-73
SLIDE 73

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

w≠⊥ but isn’t a valid witness

Q τs=sk

slide-74
SLIDE 74

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

violates extractability

w≠⊥ but isn’t a valid witness

x

Q τs=sk

slide-75
SLIDE 75

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x

x≠T(x′)

Q τs=sk

slide-76
SLIDE 76

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x x

x≠T(x′)

violates extractability

Q τs=sk

slide-77
SLIDE 77

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x x

T is not in T

Q τs=sk

slide-78
SLIDE 78

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x x

T is not in T

x

violates extractability

Q τs=sk

slide-79
SLIDE 79

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x x x

(w,x′,T)=(⊥,⊥,⊥)

Q τs=sk

slide-80
SLIDE 80

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x x x

(w,x′,T)=(⊥,⊥,⊥)

x

violates extractability

Q τs=sk

slide-81
SLIDE 81

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x

(x′,T)≠(⊥,⊥) but x′∉Q x

x x

Q τs=sk

slide-82
SLIDE 82

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x

(x′,T)≠(⊥,⊥) but x′∉Q x

x x

violates extractability

x

Q τs=sk

slide-83
SLIDE 83

We will combine malleable NIWIPoKs with unforgeable signatures cm-NIZK(x,w) = NIWIPoK{(x,(w,x′,T,σ)) s.t. either (x,w)∈R or Verify(vk,x′,σ)=1, x=T(x′), and T is in T} A wins if (1) w≠⊥ but isn’t a valid witness, (2) (x′,T)≠(⊥,⊥) but x′∉Q, x≠T(x′), or T is not in T, or (3) (w,x′,T)=(⊥,⊥,⊥)

How to construct cm-NIZKs

10

use witness (⊥,xi,id,σ) (Extractor for NIWIPoK)

xi πi (x,π) (w,x′,T,σ)

x

(x′,T)≠(⊥,⊥) but x′∉Q x

x x

violates extractability

x

violates unforgeability

Q τs=sk

slide-84
SLIDE 84

Instantiating this (relatively) efficiently

11

slide-85
SLIDE 85

Instantiating this (relatively) efficiently

11

For the NIWIPoK, we use Groth-Sahai proofs [GS08]

slide-86
SLIDE 86

Instantiating this (relatively) efficiently

11

For the NIWIPoK, we use Groth-Sahai proofs [GS08] For the signature, we need a structure-preserving signature [AFGHO10,CK11] to integrate with GS proofs (verifying signature = verifying set of pairing product equations), this means we can instantiate based solely on Decision Linear

slide-87
SLIDE 87

Instantiating this (relatively) efficiently

11

For the NIWIPoK, we use Groth-Sahai proofs [GS08] For the signature, we need a structure-preserving signature [AFGHO10,CK11] to integrate with GS proofs (verifying signature = verifying set of pairing product equations), this means we can instantiate based solely on Decision Linear The efficiency of our scheme hinges on the efficiency of the signature and the representation of the transformation (depends on the transformation)

slide-88
SLIDE 88

Instantiating this (relatively) efficiently

11

For the NIWIPoK, we use Groth-Sahai proofs [GS08] For the signature, we need a structure-preserving signature [AFGHO10,CK11] to integrate with GS proofs (verifying signature = verifying set of pairing product equations), this means we can instantiate based solely on Decision Linear The efficiency of our scheme hinges on the efficiency of the signature and the representation of the transformation (depends on the transformation) For the class of transformations, need it to contain the identity (for simulation) and be closed under composition (for compactness): given proof for x = T1(x′), size won’t increase for T2(x) = T2°T1(x′)

slide-89
SLIDE 89

Instantiating this (relatively) efficiently

11

For the NIWIPoK, we use Groth-Sahai proofs [GS08] For the signature, we need a structure-preserving signature [AFGHO10,CK11] to integrate with GS proofs (verifying signature = verifying set of pairing product equations), this means we can instantiate based solely on Decision Linear The efficiency of our scheme hinges on the efficiency of the signature and the representation of the transformation (depends on the transformation) For the class of transformations, need it to contain the identity (for simulation) and be closed under composition (for compactness): given proof for x = T1(x′), size won’t increase for T2(x) = T2°T1(x′) In the paper, we examine the many ways in which GS proofs are malleable

slide-90
SLIDE 90

Outline

12

Cryptographic background cm-NIZK construction Applications Conclusions Definitions Applications

Boosting encryption security Compactly verifiable shuffles

slide-91
SLIDE 91

CM-CCA security

13

slide-92
SLIDE 92

CM-CCA security

13

Expand our notion of controlled malleability from proofs to encryption to get CM-CCA security (inspired by HCCA [PR08] and related to targeted malleability [BSW12])

slide-93
SLIDE 93

CM-CCA security

13

Expand our notion of controlled malleability from proofs to encryption to get CM-CCA security (inspired by HCCA [PR08] and related to targeted malleability [BSW12])

slide-94
SLIDE 94

CM-CCA security

13

Expand our notion of controlled malleability from proofs to encryption to get CM-CCA security (inspired by HCCA [PR08] and related to targeted malleability [BSW12])

KeyGen Enc(pk,m) Dec(sk,c) Real

slide-95
SLIDE 95

CM-CCA security

13

Expand our notion of controlled malleability from proofs to encryption to get CM-CCA security (inspired by HCCA [PR08] and related to targeted malleability [BSW12])

KeyGen Enc(pk,m) Dec(sk,c) SimKeyGen Real Simulated

slide-96
SLIDE 96

CM-CCA security

13

Expand our notion of controlled malleability from proofs to encryption to get CM-CCA security (inspired by HCCA [PR08] and related to targeted malleability [BSW12])

KeyGen Enc(pk,m) Dec(sk,c) SimKeyGen E(pk,m)

c = SimEnc(pk,τ) add (m,c) to Q return c

D(sk,c)

(c′,T) = SimExt(sk,c) if ∃i s.t. c′=ci∈Q and T∈T return T(mi) else return Dec(sk,c)

Real Simulated Q

slide-97
SLIDE 97

CM-CCA security

13

Expand our notion of controlled malleability from proofs to encryption to get CM-CCA security (inspired by HCCA [PR08] and related to targeted malleability [BSW12])

KeyGen Enc(pk,m) Dec(sk,c) SimKeyGen E(pk,m)

c = SimEnc(pk,τ) add (m,c) to Q return c

D(sk,c)

(c′,T) = SimExt(sk,c) if ∃i s.t. c′=ci∈Q and T∈T return T(mi) else return Dec(sk,c)

Real Simulated

Which world?

Q

slide-98
SLIDE 98

CM-CCA security

13

Expand our notion of controlled malleability from proofs to encryption to get CM-CCA security (inspired by HCCA [PR08] and related to targeted malleability [BSW12]) Give a generic construction for achieving CM-CCA-secure encryption: just define Enc(pk,m) = (c,π), where c is IND-CPA-secure and π is a cm-NIZK

KeyGen Enc(pk,m) Dec(sk,c) SimKeyGen E(pk,m)

c = SimEnc(pk,τ) add (m,c) to Q return c

D(sk,c)

(c′,T) = SimExt(sk,c) if ∃i s.t. c′=ci∈Q and T∈T return T(mi) else return Dec(sk,c)

Real Simulated

Which world?

Q

slide-99
SLIDE 99

A shuffle

14

slide-100
SLIDE 100

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci}

slide-101
SLIDE 101

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci}

slide-102
SLIDE 102

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-103
SLIDE 103

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-104
SLIDE 104

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-105
SLIDE 105

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-106
SLIDE 106

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-107
SLIDE 107

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-108
SLIDE 108

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-109
SLIDE 109

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-110
SLIDE 110

A shuffle

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-111
SLIDE 111

A shuffle . . .

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-112
SLIDE 112

A shuffle . . .

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-113
SLIDE 113

A shuffle . . .

c1 c2 c3 c4 c5

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts

slide-114
SLIDE 114

A shuffle . . .

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts Final outcome is a set of ciphertexts

slide-115
SLIDE 115

A shuffle . . .

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

14

Users encrypt their individual values to yield a public set of ciphertexts {ci} Individual mix servers permute and re-randomize ciphertexts Final outcome is a set of ciphertexts Because values are shuffled, decryption won’t reveal whose vote is whose

slide-116
SLIDE 116

A verifiable shuffle [SK95,...,GL07]

15

slide-117
SLIDE 117

A verifiable shuffle [SK95,...,GL07]

15

Problem: How do we know these mix servers are behaving honestly?

slide-118
SLIDE 118

A verifiable shuffle [SK95,...,GL07]

c1 c2 c3 c4 c5

15

Problem: How do we know these mix servers are behaving honestly?

slide-119
SLIDE 119

A verifiable shuffle [SK95,...,GL07]

c1 c2 c3 c4 c5

15

Problem: How do we know these mix servers are behaving honestly?

slide-120
SLIDE 120

A verifiable shuffle [SK95,...,GL07]

c1 c2 c3 c4 c5

15

Problem: How do we know these mix servers are behaving honestly?

slide-121
SLIDE 121

A verifiable shuffle [SK95,...,GL07] π1

c1 c2 c3 c4 c5

15

Problem: How do we know these mix servers are behaving honestly?

slide-122
SLIDE 122

A verifiable shuffle [SK95,...,GL07] π1

c1 c2 c3 c4 c5

15

Problem: How do we know these mix servers are behaving honestly?

slide-123
SLIDE 123

A verifiable shuffle [SK95,...,GL07] π1

c1 c2 c3 c4 c5

15

Problem: How do we know these mix servers are behaving honestly?

slide-124
SLIDE 124

A verifiable shuffle [SK95,...,GL07] π1 π2

c1 c2 c3 c4 c5

15

Problem: How do we know these mix servers are behaving honestly?

slide-125
SLIDE 125

A verifiable shuffle [SK95,...,GL07] . . . π1 π2

c1 c2 c3 c4 c5

15

Problem: How do we know these mix servers are behaving honestly?

slide-126
SLIDE 126

A verifiable shuffle [SK95,...,GL07] . . . π1 π2

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

15

Problem: How do we know these mix servers are behaving honestly?

slide-127
SLIDE 127

A verifiable shuffle [SK95,...,GL07] . . . π1 π2 πk

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

15

Problem: How do we know these mix servers are behaving honestly?

slide-128
SLIDE 128

A verifiable shuffle [SK95,...,GL07] . . . π1 π2 πk

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

15

Problem: How do we know these mix servers are behaving honestly? Each server now proves that it is honestly shuffling the ciphertexts, and so the shuffle is said to be verifiable

slide-129
SLIDE 129

A verifiable shuffle [SK95,...,GL07] . . . π1 π2 πk

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

15

Problem: How do we know these mix servers are behaving honestly? Each server now proves that it is honestly shuffling the ciphertexts, and so the shuffle is said to be verifiable New problem: The size of this proof grows with the number of mix servers

slide-130
SLIDE 130

Using malleability to shrink the overall proof size

16

. . .

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

slide-131
SLIDE 131

Using malleability to shrink the overall proof size

16

. . . π

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

Initial mix server still outputs a fresh proof π, but now subsequent servers will “maul” this proof using permutation ϕi, re-randomization Ri, and public key pki

slide-132
SLIDE 132

Using malleability to shrink the overall proof size

16

. . . π

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

Initial mix server still outputs a fresh proof π, but now subsequent servers will “maul” this proof using permutation ϕi, re-randomization Ri, and public key pki

slide-133
SLIDE 133

Using malleability to shrink the overall proof size

16

. . . π

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

π(2)=Eval(T2,π)

T2=(ϕ2,R2,pk2)

Initial mix server still outputs a fresh proof π, but now subsequent servers will “maul” this proof using permutation ϕi, re-randomization Ri, and public key pki

slide-134
SLIDE 134

Using malleability to shrink the overall proof size

16

. . . π

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

π(2)=Eval(T2,π)

T2=(ϕ2,R2,pk2)

Initial mix server still outputs a fresh proof π, but now subsequent servers will “maul” this proof using permutation ϕi, re-randomization Ri, and public key pki

slide-135
SLIDE 135

Using malleability to shrink the overall proof size

16

. . . π

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

π(2)=Eval(T2,π)

T2=(ϕ2,R2,pk2) Tk=(ϕk,Rk,pkk)

Initial mix server still outputs a fresh proof π, but now subsequent servers will “maul” this proof using permutation ϕi, re-randomization Ri, and public key pki

slide-136
SLIDE 136

Using malleability to shrink the overall proof size

16

. . . π

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

π(2)=Eval(T2,π) π(k)=Eval(Tk,π(k-1))

T2=(ϕ2,R2,pk2) Tk=(ϕk,Rk,pkk)

Initial mix server still outputs a fresh proof π, but now subsequent servers will “maul” this proof using permutation ϕi, re-randomization Ri, and public key pki We call this shuffle compactly verifiable, as the last proof π(k) can now be used to verify the correctness of the whole shuffle (under an appropriate definition)

slide-137
SLIDE 137

Using malleability to shrink the overall proof size

16

. . . π

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

π(2)=Eval(T2,π) π(k)=Eval(Tk,π(k-1))

T2=(ϕ2,R2,pk2) Tk=(ϕk,Rk,pkk)

Initial mix server still outputs a fresh proof π, but now subsequent servers will “maul” this proof using permutation ϕi, re-randomization Ri, and public key pki We call this shuffle compactly verifiable, as the last proof π(k) can now be used to verify the correctness of the whole shuffle (under an appropriate definition) So if there are n ciphertexts and k servers, proof size can be O(n+k) vs. O(n*k)

slide-138
SLIDE 138

Using malleability to shrink the overall proof size

16

. . . π

c1 c2 c3 c4 c5 c2 c5 c1 c4 c3

π(2)=Eval(T2,π) π(k)=Eval(Tk,π(k-1))

T2=(ϕ2,R2,pk2) Tk=(ϕk,Rk,pkk)

Initial mix server still outputs a fresh proof π, but now subsequent servers will “maul” this proof using permutation ϕi, re-randomization Ri, and public key pki We call this shuffle compactly verifiable, as the last proof π(k) can now be used to verify the correctness of the whole shuffle (under an appropriate definition) So if there are n ciphertexts and k servers, proof size can be O(n+k) vs. O(n*k)

  • This bound isn’t just theoretical: in this paper we get O(n2+k) but in a

recent result we use new methods to achieve O(n+k)

slide-139
SLIDE 139

Outline

17

Cryptographic background cm-NIZK construction Applications Conclusions Definitions Conclusions

slide-140
SLIDE 140

Conclusions and open problems

18

slide-141
SLIDE 141

We defined notions of malleability for proof systems

Conclusions and open problems

18

slide-142
SLIDE 142

We defined notions of malleability for proof systems Saw that there are useful applications: CM-CCA and compact shuffles

Conclusions and open problems

18

slide-143
SLIDE 143

We defined notions of malleability for proof systems Saw that there are useful applications: CM-CCA and compact shuffles Saw that Groth-Sahai proofs have meaningful malleability properties

Conclusions and open problems

18

slide-144
SLIDE 144

We defined notions of malleability for proof systems Saw that there are useful applications: CM-CCA and compact shuffles Saw that Groth-Sahai proofs have meaningful malleability properties Did a whole lot more at eprint.iacr.org/2012/012!

Conclusions and open problems

18

slide-145
SLIDE 145

We defined notions of malleability for proof systems Saw that there are useful applications: CM-CCA and compact shuffles Saw that Groth-Sahai proofs have meaningful malleability properties Did a whole lot more at eprint.iacr.org/2012/012!

Conclusions and open problems

Thanks! Any questions?

18