Verifiable Elections That Scale for Free Melissa Chase (MSR Redmond) - - PowerPoint PPT Presentation

verifiable elections that scale for free
SMART_READER_LITE
LIVE PREVIEW

Verifiable Elections That Scale for Free Melissa Chase (MSR Redmond) - - PowerPoint PPT Presentation

Verifiable Elections That Scale for Free Melissa Chase (MSR Redmond) Markulf Kohlweiss (MSR Cambridge) Anna Lysyanskaya (Brown University) Sarah Meiklejohn (UC San Diego) 1 10,000-foot view of cryptographic voting 2 10,000-foot view of


slide-1
SLIDE 1

Verifiable Elections That Scale for Free

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

1

slide-2
SLIDE 2

10,000-foot view of cryptographic voting

2

slide-3
SLIDE 3

10,000-foot view of cryptographic voting

2

Phase 1: users encrypt votes to cast ballots

slide-4
SLIDE 4

10,000-foot view of cryptographic voting

2

Phase 1: users encrypt votes to cast ballots

v1

slide-5
SLIDE 5

10,000-foot view of cryptographic voting

2

Phase 1: users encrypt votes to cast ballots

b1 v1

slide-6
SLIDE 6

10,000-foot view of cryptographic voting

2

Phase 1: users encrypt votes to cast ballots

b1 v1 v2

slide-7
SLIDE 7

10,000-foot view of cryptographic voting

2

Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2

slide-8
SLIDE 8

10,000-foot view of cryptographic voting

2

Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-9
SLIDE 9

10,000-foot view of cryptographic voting

2

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-10
SLIDE 10

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-11
SLIDE 11

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-12
SLIDE 12

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-13
SLIDE 13

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-14
SLIDE 14

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-15
SLIDE 15

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-16
SLIDE 16

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-17
SLIDE 17

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-18
SLIDE 18

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-19
SLIDE 19

10,000-foot view of cryptographic voting

2

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-20
SLIDE 20

10,000-foot view of cryptographic voting

2

. . .

b1 b2 b3 b4 b5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-21
SLIDE 21

10,000-foot view of cryptographic voting

2

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-22
SLIDE 22

10,000-foot view of cryptographic voting

2

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 3: threshold decrypt the shuffled ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-23
SLIDE 23

10,000-foot view of cryptographic voting

2

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 3: threshold decrypt the shuffled ballots Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-24
SLIDE 24

10,000-foot view of cryptographic voting

2

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 3: threshold decrypt the shuffled ballots

sec ret k ey

Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-25
SLIDE 25

10,000-foot view of cryptographic voting

2

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 3: threshold decrypt the shuffled ballots

sec ret k ey

Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-26
SLIDE 26

10,000-foot view of cryptographic voting

2

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 3: threshold decrypt the shuffled ballots

sec ret k ey

Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-27
SLIDE 27

10,000-foot view of cryptographic voting

2

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Phase 3: threshold decrypt the shuffled ballots

v1 v2 v3 v4 v5

sec ret k ey

Phase 1: users encrypt votes to cast ballots

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

slide-28
SLIDE 28

Verifiable elections [Ben87,Neff01,...,GL07]

3

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

slide-29
SLIDE 29

If we want to make this verifiable, meaning anyone can check that things went as they should, then one solution is to just add proofs everywhere

Verifiable elections [Ben87,Neff01,...,GL07]

3

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

slide-30
SLIDE 30

If we want to make this verifiable, meaning anyone can check that things went as they should, then one solution is to just add proofs everywhere

Verifiable elections [Ben87,Neff01,...,GL07]

3

π1 π2 πM . . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

slide-31
SLIDE 31

If we want to make this verifiable, meaning anyone can check that things went as they should, then one solution is to just add proofs everywhere Then to check that election was fair, need to verify each πi separately (for non- interactive solution; for interactive have [Abe98,FI07])

Verifiable elections [Ben87,Neff01,...,GL07]

3

π1 π2 πM . . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

slide-32
SLIDE 32

If we want to make this verifiable, meaning anyone can check that things went as they should, then one solution is to just add proofs everywhere Then to check that election was fair, need to verify each πi separately (for non- interactive solution; for interactive have [Abe98,FI07]) This means verifier input is of size O(LM + LN) (L = # voters, M = # shufflers, N = # decrypters)

Verifiable elections [Ben87,Neff01,...,GL07]

3

π1 π2 πM . . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

slide-33
SLIDE 33

If we want to make this verifiable, meaning anyone can check that things went as they should, then one solution is to just add proofs everywhere Then to check that election was fair, need to verify each πi separately (for non- interactive solution; for interactive have [Abe98,FI07]) This means verifier input is of size O(LM + LN) (L = # voters, M = # shufflers, N = # decrypters)

Verifiable elections [Ben87,Neff01,...,GL07]

3

π1 π2 πM . . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

M proofs of size O(L) for shuffle

slide-34
SLIDE 34

If we want to make this verifiable, meaning anyone can check that things went as they should, then one solution is to just add proofs everywhere Then to check that election was fair, need to verify each πi separately (for non- interactive solution; for interactive have [Abe98,FI07]) This means verifier input is of size O(LM + LN) (L = # voters, M = # shufflers, N = # decrypters)

Verifiable elections [Ben87,Neff01,...,GL07]

3

π1 π2 πM . . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

M proofs of size O(L) for shuffle N proofs of size O(L) for threshold decryption

slide-35
SLIDE 35

Our contributions

4

slide-36
SLIDE 36

Our contributions

4

In this work we present an election with verifier input of size O(L+M+N)

slide-37
SLIDE 37

Our contributions

4

In this work we present an election with verifier input of size O(L+M+N)

  • Do so by using controlled-malleable zero-knowledge proofs [CKLM12]
slide-38
SLIDE 38

Our contributions

4

In this work we present an election with verifier input of size O(L+M+N)

  • Do so by using controlled-malleable zero-knowledge proofs [CKLM12]
  • Define compact threshold decryption (like compactly verifiable shuffle) and

a notion of vote privacy in an election

slide-39
SLIDE 39

Our contributions

4

In this work we present an election with verifier input of size O(L+M+N)

  • Do so by using controlled-malleable zero-knowledge proofs [CKLM12]
  • Define compact threshold decryption (like compactly verifiable shuffle) and

a notion of vote privacy in an election

  • Give efficient instantiations of shuffle and threshold decryption schemes

based on Decision Linear [BBS04] and two static assumptions [GL07]

slide-40
SLIDE 40

Outline

5

slide-41
SLIDE 41

Outline

5

Definitions

slide-42
SLIDE 42

Outline

5

Definitions Shuffling and decrypting

slide-43
SLIDE 43

Outline

5

Definitions Shuffling and decrypting A voting scheme

slide-44
SLIDE 44

Outline

5

Definitions Shuffling and decrypting A voting scheme Conclusions

slide-45
SLIDE 45

Outline

5

Definitions Shuffling and decrypting A voting scheme Conclusions Definitions

Malleable proofs [CKLM12] Compact shuffles [CKLM12] Threshold decryption

slide-46
SLIDE 46

Malleability for proofs [CKLM12]

6

slide-47
SLIDE 47

Malleability for proofs [CKLM12]

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-48
SLIDE 48

Malleability for proofs [CKLM12]

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-49
SLIDE 49

Malleability for proofs [CKLM12]

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-50
SLIDE 50

Malleability for proofs [CKLM12]

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”

Can define zero knowledge in the usual way as long as proofs are malleable

  • nly with respect to operations under which the language is closed

6

slide-51
SLIDE 51

Malleability for proofs [CKLM12]

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”

Can define zero knowledge in the usual way as long as proofs are malleable

  • nly with respect to operations under which the language is closed

But how to define a strong notion of soundness like extractability?

6

slide-52
SLIDE 52

Controlled-malleable proofs (cm-NIZKs) [CKLM12]

7

slide-53
SLIDE 53

Consider an allowable set of transformations T

Controlled-malleable proofs (cm-NIZKs) [CKLM12]

7

slide-54
SLIDE 54

Consider an allowable set of transformations T High-level idea: extractor can pull out either a witness (fresh proof), or a previously queried instance and a transformation in T from that instance to the new one (validly transformed proof)

Controlled-malleable proofs (cm-NIZKs) [CKLM12]

7

slide-55
SLIDE 55

Consider an allowable set of transformations T High-level idea: extractor can pull out either a witness (fresh proof), or a previously queried instance and a transformation in T from that instance to the new one (validly transformed proof) A bit more formally: from (x,π) the extractor outputs (w,x′,T) such that either (1) (x,w)∈R or (2) x′ was queried (to simulator) and x = T(x′) for T∈T

Controlled-malleable proofs (cm-NIZKs) [CKLM12]

7

slide-56
SLIDE 56

Consider an allowable set of transformations T High-level idea: extractor can pull out either a witness (fresh proof), or a previously queried instance and a transformation in T from that instance to the new one (validly transformed proof) A bit more formally: from (x,π) the extractor outputs (w,x′,T) such that either (1) (x,w)∈R or (2) x′ was queried (to simulator) and x = T(x′) for T∈T We call the proof CM-SSE (controlled malleable simulation sound extractable) if no PPT adversary A can violate these two conditions

Controlled-malleable proofs (cm-NIZKs) [CKLM12]

7

slide-57
SLIDE 57

Consider an allowable set of transformations T High-level idea: extractor can pull out either a witness (fresh proof), or a previously queried instance and a transformation in T from that instance to the new one (validly transformed proof) A bit more formally: from (x,π) the extractor outputs (w,x′,T) such that either (1) (x,w)∈R or (2) x′ was queried (to simulator) and x = T(x′) for T∈T We call the proof CM-SSE (controlled malleable simulation sound extractable) if no PPT adversary A can violate these two conditions If a proof is zero knowledge, CM-SSE, and strongly derivation private, then we call it a cm-NIZK

Controlled-malleable proofs (cm-NIZKs) [CKLM12]

7

(like function privacy for homomorphic encryption)

slide-58
SLIDE 58

Compactly verifiable shuffles [CKLM12]

8

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

slide-59
SLIDE 59

Compactly verifiable shuffles [CKLM12]

8

. . . π

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Initial mix server still outputs a fresh proof π, but now subsequent servers “maul” this proof using permutation φi, re-randomization Ri, and secret key ski

slide-60
SLIDE 60

Compactly verifiable shuffles [CKLM12]

8

. . . π

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Initial mix server still outputs a fresh proof π, but now subsequent servers “maul” this proof using permutation φi, re-randomization Ri, and secret key ski

slide-61
SLIDE 61

Compactly verifiable shuffles [CKLM12]

8

. . . π

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

π(2)=Eval(T2,π)

T2=(φ2,R2,sk2)

Initial mix server still outputs a fresh proof π, but now subsequent servers “maul” this proof using permutation φi, re-randomization Ri, and secret key ski

slide-62
SLIDE 62

Compactly verifiable shuffles [CKLM12]

8

. . . π

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

π(2)=Eval(T2,π)

T2=(φ2,R2,sk2)

Initial mix server still outputs a fresh proof π, but now subsequent servers “maul” this proof using permutation φi, re-randomization Ri, and secret key ski

slide-63
SLIDE 63

Compactly verifiable shuffles [CKLM12]

8

. . . π

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

π(2)=Eval(T2,π)

T2=(φ2,R2,sk2) TM=(φM,RM,skM)

Initial mix server still outputs a fresh proof π, but now subsequent servers “maul” this proof using permutation φi, re-randomization Ri, and secret key ski

slide-64
SLIDE 64

Compactly verifiable shuffles [CKLM12]

8

. . . π

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

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

T2=(φ2,R2,sk2) TM=(φM,RM,skM)

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

slide-65
SLIDE 65

Compactly verifiable shuffles [CKLM12]

8

. . . π

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

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

T2=(φ2,R2,sk2) TM=(φM,RM,skM)

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

slide-66
SLIDE 66

Compact threshold decryption

9

slide-67
SLIDE 67

Compact threshold decryption

9

C=Enc(pk,m)

slide-68
SLIDE 68

Compact threshold decryption

9

C=Enc(pk,m) KeyGen Enc

slide-69
SLIDE 69

Compact threshold decryption

9

sec

C=Enc(pk,m) KeyGen Enc

slide-70
SLIDE 70

Compact threshold decryption

9

sec

C=Enc(pk,m) s1 KeyGen Enc

slide-71
SLIDE 71

Compact threshold decryption

9

sec ret

C=Enc(pk,m) s1 KeyGen Enc

slide-72
SLIDE 72

Compact threshold decryption

9

sec ret

C=Enc(pk,m) s1 s2 KeyGen Enc

slide-73
SLIDE 73

Compact threshold decryption

9

sec ret

C=Enc(pk,m) s1 s2 KeyGen Enc ShareDec (ShareProve)

Formed with ShareDec(C,s1)

Shares contain proof of correctness

slide-74
SLIDE 74

Compact threshold decryption

9

sec ret k

C=Enc(pk,m) s1 s2 KeyGen Enc ShareDec (ShareProve) ShareVerify

Formed with ShareDec(C,s1)

Shares contain proof of correctness

slide-75
SLIDE 75

Compact threshold decryption

9

sec ret k

C=Enc(pk,m) s1 s2 s3 KeyGen Enc ShareDec (ShareProve) ShareVerify

Formed with ShareDec(C,s1)

Shares contain proof of correctness

slide-76
SLIDE 76

Compact threshold decryption

9

sec ret k ey

C=Enc(pk,m) s1 s2 s3 KeyGen Enc ShareDec (ShareProve) ShareVerify

Formed with ShareDec(C,s1)

Shares contain proof of correctness

slide-77
SLIDE 77

Compact threshold decryption

9

sec ret k ey

C=Enc(pk,m) s1 s2 s3 KeyGen Enc ShareDec (ShareProve) ShareVerify m

Formed with ShareDec(C,s1)

Shares contain proof of correctness

π(N)

slide-78
SLIDE 78

Compact threshold decryption

9

sec ret k ey

C=Enc(pk,m) s1 s2 s3 KeyGen Enc ShareDec (ShareProve) ShareVerify m

Formed with ShareDec(C,s1)

Shares contain proof of correctness Servers can decrypt in any order; not fixed

π(N)

slide-79
SLIDE 79

Compact threshold decryption

9

sec ret k ey

C=Enc(pk,m) s1 s2 s3 KeyGen Enc ShareDec (ShareProve) ShareVerify m

Formed with ShareDec(C,s1)

Shares contain proof of correctness Servers can decrypt in any order; not fixed Once again, final proof π(N) suffices for whole decryption, meaning total proof size can again be O(L+N) instead of O(LN) (again, under an appropriate definition)

π(N)

slide-80
SLIDE 80

Outline

10

Cryptographic background Shuffling and decrypting A voting scheme Conclusions Definitions Shuffling and decrypting

A compact verifiable shuffle Threshold decryption

slide-81
SLIDE 81

Preliminary: BBS encryption [BBS04]

11

slide-82
SLIDE 82

Preliminary: BBS encryption [BBS04]

11

Setup: generate a symmetric prime-order bilinear group (p,G,GT,e,g)

slide-83
SLIDE 83

Preliminary: BBS encryption [BBS04]

11

Setup: generate a symmetric prime-order bilinear group (p,G,GT,e,g) KeyGen(crs): α,β ← Fp; f = gα, h = gβ; output sk = (α,β) and pk = (f,h)

slide-84
SLIDE 84

Preliminary: BBS encryption [BBS04]

11

Setup: generate a symmetric prime-order bilinear group (p,G,GT,e,g) KeyGen(crs): α,β ← Fp; f = gα, h = gβ; output sk = (α,β) and pk = (f,h) Enc(crs,pk,M): r,s ← Fp; u = fr, v = hs, w = gr+sM; return (u,v,w)

slide-85
SLIDE 85

Preliminary: BBS encryption [BBS04]

11

Setup: generate a symmetric prime-order bilinear group (p,G,GT,e,g) KeyGen(crs): α,β ← Fp; f = gα, h = gβ; output sk = (α,β) and pk = (f,h) Enc(crs,pk,M): r,s ← Fp; u = fr, v = hs, w = gr+sM; return (u,v,w) Dec(crs,sk,(u,v,w)): return u-1/αv-1/βw

slide-86
SLIDE 86

Part 1: Compact verifiable shuffle

12

slide-87
SLIDE 87

Part 1: Compact verifiable shuffle

12

Our concrete shuffle is based on the Groth-Lu shuffle [GL07]

slide-88
SLIDE 88

Part 1: Compact verifiable shuffle

12

Our concrete shuffle is based on the Groth-Lu shuffle [GL07]

  • CRS of size O(M), proofs of size O(L) (but M of them)
  • Based on static pairing-based assumptions
slide-89
SLIDE 89

Part 1: Compact verifiable shuffle

12

Our concrete shuffle is based on the Groth-Lu shuffle [GL07]

  • CRS of size O(M), proofs of size O(L) (but M of them)
  • Based on static pairing-based assumptions

Basically, alter their proofs and make them malleable (i.e., show they satisfy CM-friendliness)

slide-90
SLIDE 90

Part 1: Compact verifiable shuffle

12

Our concrete shuffle is based on the Groth-Lu shuffle [GL07]

  • CRS of size O(M), proofs of size O(L) (but M of them)
  • Based on static pairing-based assumptions

Basically, alter their proofs and make them malleable (i.e., show they satisfy CM-friendliness) End up with CRS of size O(M), proofs of size O(L+M) (improvement over [CKLM12], which had constant-sized CRS but proofs of size O(L2+M))

slide-91
SLIDE 91

Part 2: Compact threshold decryption (KeyGen)

13

slide-92
SLIDE 92

To split BBS decryption key sk = (α,β), just pick α1,β1,...,αN-1,βN-1 ← Fp and set αN = -1/α - ∑ αi and βN = -1/β - ∑ βi; then α1 + ... + αN = -1/α and β1 + ... + βN =

  • 1/β

Part 2: Compact threshold decryption (KeyGen)

13

slide-93
SLIDE 93

To split BBS decryption key sk = (α,β), just pick α1,β1,...,αN-1,βN-1 ← Fp and set αN = -1/α - ∑ αi and βN = -1/β - ∑ βi; then α1 + ... + αN = -1/α and β1 + ... + βN =

  • 1/β

Part 2: Compact threshold decryption (KeyGen)

13

sec ret k ey

slide-94
SLIDE 94

To split BBS decryption key sk = (α,β), just pick α1,β1,...,αN-1,βN-1 ← Fp and set αN = -1/α - ∑ αi and βN = -1/β - ∑ βi; then α1 + ... + αN = -1/α and β1 + ... + βN =

  • 1/β

Part 2: Compact threshold decryption (KeyGen)

13

sec ret k ey

slide-95
SLIDE 95

To split BBS decryption key sk = (α,β), just pick α1,β1,...,αN-1,βN-1 ← Fp and set αN = -1/α - ∑ αi and βN = -1/β - ∑ βi; then α1 + ... + αN = -1/α and β1 + ... + βN =

  • 1/β

Part 2: Compact threshold decryption (KeyGen)

13

sec ret k ey

ski = (αi,βi)

slide-96
SLIDE 96

To split BBS decryption key sk = (α,β), just pick α1,β1,...,αN-1,βN-1 ← Fp and set αN = -1/α - ∑ αi and βN = -1/β - ∑ βi; then α1 + ... + αN = -1/α and β1 + ... + βN =

  • 1/β

Observe that for c = (u,v,w) = Enc(pk,m):

Part 2: Compact threshold decryption (KeyGen)

13

sec ret k ey

ski = (αi,βi)

slide-97
SLIDE 97

To split BBS decryption key sk = (α,β), just pick α1,β1,...,αN-1,βN-1 ← Fp and set αN = -1/α - ∑ αi and βN = -1/β - ∑ βi; then α1 + ... + αN = -1/α and β1 + ... + βN =

  • 1/β

Observe that for c = (u,v,w) = Enc(pk,m): w ∏ uαj⋅vβj = uα1+...+αk⋅vβ1+...+βk⋅w = u-1/α⋅v-1/βw

Part 2: Compact threshold decryption (KeyGen)

13

sec ret k ey

ski = (αi,βi)

slide-98
SLIDE 98

To split BBS decryption key sk = (α,β), just pick α1,β1,...,αN-1,βN-1 ← Fp and set αN = -1/α - ∑ αi and βN = -1/β - ∑ βi; then α1 + ... + αN = -1/α and β1 + ... + βN =

  • 1/β

Observe that for c = (u,v,w) = Enc(pk,m): w ∏ uαj⋅vβj = uα1+...+αk⋅vβ1+...+βk⋅w = u-1/α⋅v-1/βw = m

Part 2: Compact threshold decryption (KeyGen)

13

sec ret k ey

ski = (αi,βi)

slide-99
SLIDE 99

To split BBS decryption key sk = (α,β), just pick α1,β1,...,αN-1,βN-1 ← Fp and set αN = -1/α - ∑ αi and βN = -1/β - ∑ βi; then α1 + ... + αN = -1/α and β1 + ... + βN =

  • 1/β

Observe that for c = (u,v,w) = Enc(pk,m): w ∏ uαj⋅vβj = uα1+...+αk⋅vβ1+...+βk⋅w = u-1/α⋅v-1/βw = m Also want verification key vk = (Com(sk1)=(Com(α1),Com(β1)),...,Com(skN))

Part 2: Compact threshold decryption (KeyGen)

13

sec ret k ey

ski = (αi,βi)

slide-100
SLIDE 100

Part 2: Compact threshold decryption (ShareDec)

14

slide-101
SLIDE 101

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

slide-102
SLIDE 102

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

partial decryption

slide-103
SLIDE 103

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

partial decryption participants

slide-104
SLIDE 104

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

partial decryption participants proof of correct partial decryption

slide-105
SLIDE 105

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

  • First check ShareVerify(s,I,π)

partial decryption participants proof of correct partial decryption

slide-106
SLIDE 106

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

  • First check ShareVerify(s,I,π)
  • Then compute sj = uαj⋅vβj (initial decrypter does uαkvβkw)

partial decryption participants proof of correct partial decryption

slide-107
SLIDE 107

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

  • First check ShareVerify(s,I,π)
  • Then compute sj = uαj⋅vβj (initial decrypter does uαkvβkw)
  • Compute vkc = ∏i∈I vki

partial decryption participants proof of correct partial decryption

slide-108
SLIDE 108

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

  • First check ShareVerify(s,I,π)
  • Then compute sj = uαj⋅vβj (initial decrypter does uαkvβkw)
  • Compute vkc = ∏i∈I vki
  • Compute s′ = s⋅sj and π′ ← Eval(crs,T,(vkc,c,s),π) for T = (sj,gαj,gβj)

partial decryption participants proof of correct partial decryption

slide-109
SLIDE 109

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

  • First check ShareVerify(s,I,π)
  • Then compute sj = uαj⋅vβj (initial decrypter does uαkvβkw)
  • Compute vkc = ∏i∈I vki
  • Compute s′ = s⋅sj and π′ ← Eval(crs,T,(vkc,c,s),π) for T = (sj,gαj,gβj)

partial decryption participants proof of correct partial decryption

}

“the participants represented in vkc have correctly partially decrypted c to produce s”

slide-110
SLIDE 110

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

  • First check ShareVerify(s,I,π)
  • Then compute sj = uαj⋅vβj (initial decrypter does uαkvβkw)
  • Compute vkc = ∏i∈I vki
  • Compute s′ = s⋅sj and π′ ← Eval(crs,T,(vkc,c,s),π) for T = (sj,gαj,gβj)

partial decryption participants proof of correct partial decryption

}

“the participants represented in vkc have correctly partially decrypted c to produce s” (1) folds sj into s (2) folds commitments into vkc

slide-111
SLIDE 111

Part 2: Compact threshold decryption (ShareDec)

14

So say decrypter with skj = (αj,βj) gets share (s,I,π)

  • First check ShareVerify(s,I,π)
  • Then compute sj = uαj⋅vβj (initial decrypter does uαkvβkw)
  • Compute vkc = ∏i∈I vki
  • Compute s′ = s⋅sj and π′ ← Eval(crs,T,(vkc,c,s),π) for T = (sj,gαj,gβj)
  • Output (s′, I∪{j}, π′)

partial decryption participants proof of correct partial decryption

}

“the participants represented in vkc have correctly partially decrypted c to produce s” (1) folds sj into s (2) folds commitments into vkc

slide-112
SLIDE 112

Outline

15

Cryptographic background Shuffling and decrypting A voting scheme Conclusions Definitions A voting scheme

slide-113
SLIDE 113

Instantiating cryptographic voting

16

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

slide-114
SLIDE 114

Instantiating cryptographic voting

16

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots Set up KeyGen for BBS encryption, vk and crs for threshold decryption proofs, crs for shuffle proofs

slide-115
SLIDE 115

Instantiating cryptographic voting

16

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots Set up KeyGen for BBS encryption, vk and crs for threshold decryption proofs, crs for shuffle proofs For voter i, bi = (ci=BBSEnc(pk,vi),πi=PoK(ci,vi))

slide-116
SLIDE 116

Instantiating cryptographic voting

16

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots Set up KeyGen for BBS encryption, vk and crs for threshold decryption proofs, crs for shuffle proofs For voter i, bi = (ci=BBSEnc(pk,vi),πi=PoK(ci,vi)) The vk for threshold decryption is size O(N); for shuffles the crs is size O(M)

slide-117
SLIDE 117

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

Instantiating cryptographic voting

17

slide-118
SLIDE 118

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

Instantiating cryptographic voting

17

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots

slide-119
SLIDE 119

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

Instantiating cryptographic voting

17

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Intermediate mix server j mauls the previous proof using Tj = (φj,Rj,skj)

slide-120
SLIDE 120

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

Instantiating cryptographic voting

17

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Intermediate mix server j mauls the previous proof using Tj = (φj,Rj,skj) Resulting proof at the end is of size O(L+M)

slide-121
SLIDE 121

Instantiating cryptographic voting

18

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots

slide-122
SLIDE 122

Instantiating cryptographic voting

18

Phase 3: threshold decrypt the shuffled ballots

B1 B2 B3 B4 B5 v1 v2 v3 v4 v5 sec ret k ey

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots

slide-123
SLIDE 123

Instantiating cryptographic voting

18

Phase 3: threshold decrypt the shuffled ballots

B1 B2 B3 B4 B5 v1 v2 v3 v4 v5 sec ret k ey

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Resulting proof from cumulative threshold decryption is O(L+N), so total verifier input size? O(M) + O(N) + O(L+M) + O(L+N) = O(L+M+N)

slide-124
SLIDE 124

Instantiating cryptographic voting

18

Phase 3: threshold decrypt the shuffled ballots

B1 B2 B3 B4 B5 v1 v2 v3 v4 v5 sec ret k ey

b1 v1 b2 v2 b3 v3 b4 v4 b5 v5

Phase 1: users encrypt votes to cast ballots

. . .

b1 b2 b3 b4 b5 B1 B2 B3 B4 B5

Phase 2: shuffle (permute and re-randomize) the ballots Resulting proof from cumulative threshold decryption is O(L+N), so total verifier input size? O(M) + O(N) + O(L+M) + O(L+N) = O(L+M+N) Also show this satisfies notion of vote privacy for elections

slide-125
SLIDE 125

Outline

19

Cryptographic background Shuffling and decrypting A voting scheme Conclusions Definitions Conclusions

slide-126
SLIDE 126

Conclusions and open problems

20

slide-127
SLIDE 127

The notion of compact threshold decryption allows for proofs of size O(L+N)

Conclusions and open problems

20

slide-128
SLIDE 128

The notion of compact threshold decryption allows for proofs of size O(L+N) This means, theoretically, that election verification size can be O(L+M+N)

Conclusions and open problems

20

slide-129
SLIDE 129

The notion of compact threshold decryption allows for proofs of size O(L+N) This means, theoretically, that election verification size can be O(L+M+N) Provided a concrete election meeting this bound

Conclusions and open problems

20

slide-130
SLIDE 130

The notion of compact threshold decryption allows for proofs of size O(L+N) This means, theoretically, that election verification size can be O(L+M+N) Provided a concrete election meeting this bound Full version is online at eprint.iacr.org/2012/697

Conclusions and open problems

20

slide-131
SLIDE 131

The notion of compact threshold decryption allows for proofs of size O(L+N) This means, theoretically, that election verification size can be O(L+M+N) Provided a concrete election meeting this bound Full version is online at eprint.iacr.org/2012/697

Conclusions and open problems

Thanks! Any questions?

20

slide-132
SLIDE 132

Regular verifiable threshold decryption [SG98]

21

slide-133
SLIDE 133

Regular verifiable threshold decryption [SG98]

21

C=Enc(pk,m)

slide-134
SLIDE 134

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m)

slide-135
SLIDE 135

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) KeyGen

slide-136
SLIDE 136

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) KeyGen

Formed with KeyGen

slide-137
SLIDE 137

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) KeyGen Enc

Formed with KeyGen

slide-138
SLIDE 138

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) KeyGen Enc

Formed with KeyGen

slide-139
SLIDE 139

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) s1 s2 s3 s4 KeyGen Enc

Formed with KeyGen

slide-140
SLIDE 140

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) s1 s2 s3 s4 KeyGen Enc ShareDec

Formed with KeyGen Formed with ShareDec(C)

slide-141
SLIDE 141

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) s1 s2 s3 s4 KeyGen Enc ShareDec

Formed with KeyGen Formed with ShareDec(C)

π4 π1 π2 π3

slide-142
SLIDE 142

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) s1 s2 s3 s4 KeyGen Enc ShareDec ShareProve

Formed with KeyGen Formed with ShareDec(C)

π4

Formed with ShareProve(C,s4)

π1 π2 π3

slide-143
SLIDE 143

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) s1 s2 s3 s4 KeyGen Enc ShareDec ShareProve ShareVerify

Formed with KeyGen Formed with ShareDec(C)

π4

Formed with ShareProve(C,s4)

π1 π2 π3

slide-144
SLIDE 144

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) s1 s2 s3 s4 KeyGen Enc ShareDec ShareProve ShareVerify

Formed with KeyGen Formed with ShareDec(C)

π4

Formed with ShareProve(C,s4)

π1 π2 π3

slide-145
SLIDE 145

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) s1 s2 s3 s4 KeyGen Enc ShareDec ShareProve ShareVerify Combine

Formed with KeyGen Formed with ShareDec(C)

Combine({si}) π4

Formed with ShareProve(C,s4)

π1 π2 π3

slide-146
SLIDE 146

Regular verifiable threshold decryption [SG98]

21

sec ret k ey

C=Enc(pk,m) s1 s2 s3 s4 KeyGen Enc ShareDec ShareProve ShareVerify Combine

Formed with KeyGen Formed with ShareDec(C)

Combine({si}) m π4

Formed with ShareProve(C,s4)

π1 π2 π3