verifiable elections that scale for free
play

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


  1. Outline Definitions Malleable proofs [CKLM12] Definitions Shuffling and decrypting Compact shuffles [CKLM12] Threshold decryption A voting scheme Conclusions 5

  2. Malleability for proofs [CKLM12] 6

  3. Malleability for proofs [CKLM12] Example: take a proof π 1 that b 1 is a bit and a proof π 2 that b 2 is a bit, and “maul” them somehow to get a proof that b 1 ⋅ b 2 is a bit 6

  4. Malleability for proofs [CKLM12] Example: take a proof π 1 that b 1 is a bit and a proof π 2 that b 2 is a bit, and “maul” them somehow to get a proof that b 1 ⋅ b 2 is a bit More generally, a proof is malleable with respect to T if there exists an algorithm Eval that on input (T,{x i , π i }), outputs a proof π for T({x i }) 6

  5. Malleability for proofs [CKLM12] Example: take a proof π 1 that b 1 is a bit and a proof π 2 that b 2 is a bit, and “maul” them somehow to get a proof that b 1 ⋅ b 2 is a bit More generally, a proof is malleable with respect to T if there exists an algorithm Eval that on input (T,{x i , π i }), outputs a proof π for T({x i }) • E.g., T = × , x i = “b i is a bit” 6

  6. Malleability for proofs [CKLM12] Example: take a proof π 1 that b 1 is a bit and a proof π 2 that b 2 is a bit, and “maul” them somehow to get a proof that b 1 ⋅ b 2 is a bit More generally, a proof is malleable with respect to T if there exists an algorithm Eval that on input (T,{x i , π i }), outputs a proof π for T({x i }) • E.g., T = × , x i = “b i is a bit” Can define zero knowledge in the usual way as long as proofs are malleable only with respect to operations under which the language is closed 6

  7. Malleability for proofs [CKLM12] Example: take a proof π 1 that b 1 is a bit and a proof π 2 that b 2 is a bit, and “maul” them somehow to get a proof that b 1 ⋅ b 2 is a bit More generally, a proof is malleable with respect to T if there exists an algorithm Eval that on input (T,{x i , π i }), outputs a proof π for T({x i }) • E.g., T = × , x i = “b i is a bit” Can define zero knowledge in the usual way as long as proofs are malleable only with respect to operations under which the language is closed But how to define a strong notion of soundness like extractability? 6

  8. Controlled-malleable proofs (cm-NIZKs) [CKLM12] 7

  9. Controlled-malleable proofs (cm-NIZKs) [CKLM12] Consider an allowable set of transformations T 7

  10. Controlled-malleable proofs (cm-NIZKs) [CKLM12] 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) 7

  11. Controlled-malleable proofs (cm-NIZKs) [CKLM12] 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 7

  12. Controlled-malleable proofs (cm-NIZKs) [CKLM12] 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 7

  13. Controlled-malleable proofs (cm-NIZKs) [CKLM12] 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 (like function privacy for homomorphic encryption) 7

  14. Compactly verifiable shuffles [CKLM12] B 1 b 1 b 2 B 2 . . . b 3 B 3 b 4 B 4 b 5 B 5 8

  15. Compactly verifiable shuffles [CKLM12] B 1 b 1 b 2 B 2 . . . b 3 B 3 b 4 B 4 b 5 B 5 π Initial mix server still outputs a fresh proof π , but now subsequent servers “maul” this proof using permutation φ i , re-randomization R i , and secret key sk i 8

  16. Compactly verifiable shuffles [CKLM12] B 1 b 1 b 2 B 2 . . . b 3 B 3 b 4 B 4 b 5 B 5 π Initial mix server still outputs a fresh proof π , but now subsequent servers “maul” this proof using permutation φ i , re-randomization R i , and secret key sk i 8

  17. Compactly verifiable shuffles [CKLM12] B 1 b 1 b 2 B 2 . . . b 3 B 3 b 4 B 4 b 5 B 5 T 2 =( φ 2 ,R 2 ,sk 2 ) π π (2) =Eval(T 2 , π ) Initial mix server still outputs a fresh proof π , but now subsequent servers “maul” this proof using permutation φ i , re-randomization R i , and secret key sk i 8

  18. Compactly verifiable shuffles [CKLM12] B 1 b 1 b 2 B 2 . . . b 3 B 3 b 4 B 4 b 5 B 5 T 2 =( φ 2 ,R 2 ,sk 2 ) π π (2) =Eval(T 2 , π ) Initial mix server still outputs a fresh proof π , but now subsequent servers “maul” this proof using permutation φ i , re-randomization R i , and secret key sk i 8

  19. Compactly verifiable shuffles [CKLM12] B 1 b 1 b 2 B 2 . . . b 3 B 3 b 4 B 4 b 5 B 5 T M =( φ M ,R M ,sk M ) T 2 =( φ 2 ,R 2 ,sk 2 ) π π (2) =Eval(T 2 , π ) Initial mix server still outputs a fresh proof π , but now subsequent servers “maul” this proof using permutation φ i , re-randomization R i , and secret key sk i 8

  20. Compactly verifiable shuffles [CKLM12] B 1 b 1 b 2 B 2 . . . b 3 B 3 b 4 B 4 b 5 B 5 T M =( φ M ,R M ,sk M ) T 2 =( φ 2 ,R 2 ,sk 2 ) π π (2) =Eval(T 2 , π ) π (M) =Eval(T k, π (M-1) ) Initial mix server still outputs a fresh proof π , but now subsequent servers “maul” this proof using permutation φ i , re-randomization R i , and secret key sk i 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) 8

  21. Compactly verifiable shuffles [CKLM12] B 1 b 1 b 2 B 2 . . . b 3 B 3 b 4 B 4 b 5 B 5 T M =( φ M ,R M ,sk M ) T 2 =( φ 2 ,R 2 ,sk 2 ) π π (2) =Eval(T 2 , π ) π (M) =Eval(T k, π (M-1) ) Initial mix server still outputs a fresh proof π , but now subsequent servers “maul” this proof using permutation φ i , re-randomization R i , and secret key sk i 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) 8

  22. Compact threshold decryption 9

  23. Compact threshold decryption C=Enc(pk,m) 9

  24. Compact threshold decryption C=Enc(pk,m) KeyGen Enc 9

  25. Compact threshold decryption C=Enc(pk,m) sec KeyGen Enc 9

  26. Compact threshold decryption C=Enc(pk,m) sec s 1 KeyGen Enc 9

  27. Compact threshold decryption ret C=Enc(pk,m) sec s 1 KeyGen Enc 9

  28. Compact threshold decryption ret C=Enc(pk,m) sec s 1 s 2 KeyGen Enc 9

  29. Compact threshold decryption ret C=Enc(pk,m) sec s 1 s 2 Formed with ShareDec(C,s 1 ) Shares contain proof of correctness KeyGen Enc ShareDec (ShareProve) 9

  30. Compact threshold decryption ret C=Enc(pk,m) k sec s 1 s 2 Formed with ShareDec(C,s 1 ) Shares contain proof of correctness KeyGen Enc ShareDec (ShareProve) ShareVerify 9

  31. Compact threshold decryption ret C=Enc(pk,m) k sec s 1 s 2 s 3 Formed with ShareDec(C,s 1 ) Shares contain proof of correctness KeyGen Enc ShareDec (ShareProve) ShareVerify 9

  32. Compact threshold decryption ey ret C=Enc(pk,m) k sec s 1 s 2 s 3 Formed with ShareDec(C,s 1 ) Shares contain proof of correctness KeyGen Enc ShareDec (ShareProve) ShareVerify 9

  33. Compact threshold decryption m ey ret C=Enc(pk,m) k sec s 1 s 2 s 3 π (N) Formed with ShareDec(C,s 1 ) Shares contain proof of correctness KeyGen Enc ShareDec (ShareProve) ShareVerify 9

  34. Compact threshold decryption m ey ret C=Enc(pk,m) k sec s 1 s 2 s 3 π (N) Formed with ShareDec(C,s 1 ) Shares contain proof of correctness Servers can decrypt in any order; not fixed KeyGen Enc ShareDec (ShareProve) ShareVerify 9

  35. Compact threshold decryption m ey ret C=Enc(pk,m) k sec s 1 s 2 s 3 π (N) Formed with ShareDec(C,s 1 ) Shares contain proof of correctness Servers can decrypt in any order; not fixed KeyGen Enc Once again, final proof π (N) suffices for whole decryption, meaning total proof size can again be O(L+N) instead of O(LN) ShareDec (again, under an appropriate definition) (ShareProve) ShareVerify 9

  36. Outline Shuffling and decrypting Cryptographic background Definitions Shuffling and decrypting A compact verifiable shuffle Threshold decryption A voting scheme Conclusions 10

  37. Preliminary: BBS encryption [BBS04] 11

  38. Preliminary: BBS encryption [BBS04] Setup: generate a symmetric prime-order bilinear group (p,G,G T ,e,g) 11

  39. Preliminary: BBS encryption [BBS04] Setup: generate a symmetric prime-order bilinear group (p,G,G T ,e,g) KeyGen(crs): α , β ← F p ; f = g α , h = g β ; output sk = ( α , β ) and pk = (f,h) 11

  40. Preliminary: BBS encryption [BBS04] Setup: generate a symmetric prime-order bilinear group (p,G,G T ,e,g) KeyGen(crs): α , β ← F p ; f = g α , h = g β ; output sk = ( α , β ) and pk = (f,h) Enc(crs,pk,M): r,s ← F p ; u = f r , v = h s , w = g r+s M; return (u,v,w) 11

  41. Preliminary: BBS encryption [BBS04] Setup: generate a symmetric prime-order bilinear group (p,G,G T ,e,g) KeyGen(crs): α , β ← F p ; f = g α , h = g β ; output sk = ( α , β ) and pk = (f,h) Enc(crs,pk,M): r,s ← F p ; u = f r , v = h s , w = g r+s M; return (u,v,w) Dec(crs,sk,(u,v,w)): return u -1/ α v -1/ β w 11

  42. Part 1: Compact verifiable shuffle 12

  43. Part 1: Compact verifiable shuffle Our concrete shuffle is based on the Groth-Lu shuffle [GL07] 12

  44. Part 1: Compact verifiable shuffle 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 12

  45. Part 1: Compact verifiable shuffle 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) 12

  46. Part 1: Compact verifiable shuffle 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(L 2 +M)) 12

  47. Part 2: Compact threshold decryption (KeyGen) 13

  48. Part 2: Compact threshold decryption (KeyGen) To split BBS decryption key sk = ( α , β ), just pick α 1 , β 1 ,..., α N-1 , β N-1 ← F p and set α N = -1/ α - ∑ α i and β N = -1/ β - ∑ β i ; then α 1 + ... + α N = -1/ α and β 1 + ... + β N = -1/ β 13

  49. Part 2: Compact threshold decryption (KeyGen) To split BBS decryption key sk = ( α , β ), just pick α 1 , β 1 ,..., α N-1 , β N-1 ← F p and set α N = -1/ α - ∑ α i and β N = -1/ β - ∑ β i ; then α 1 + ... + α N = -1/ α and β 1 + ... + β N = -1/ β sec ret k ey 13

  50. Part 2: Compact threshold decryption (KeyGen) To split BBS decryption key sk = ( α , β ), just pick α 1 , β 1 ,..., α N-1 , β N-1 ← F p and set α N = -1/ α - ∑ α i and β N = -1/ β - ∑ β i ; then α 1 + ... + α N = -1/ α and β 1 + ... + β N = -1/ β sec ret k ey 13

  51. Part 2: Compact threshold decryption (KeyGen) To split BBS decryption key sk = ( α , β ), just pick α 1 , β 1 ,..., α N-1 , β N-1 ← F p and set α N = -1/ α - ∑ α i and β N = -1/ β - ∑ β i ; then α 1 + ... + α N = -1/ α and β 1 + ... + β N = -1/ β sec ret k ey sk i = ( α i , β i ) 13

  52. Part 2: Compact threshold decryption (KeyGen) To split BBS decryption key sk = ( α , β ), just pick α 1 , β 1 ,..., α N-1 , β N-1 ← F p and set α N = -1/ α - ∑ α i and β N = -1/ β - ∑ β i ; then α 1 + ... + α N = -1/ α and β 1 + ... + β N = -1/ β sec ret Observe that for c = (u,v,w) = Enc(pk,m): k ey sk i = ( α i , β i ) 13

  53. Part 2: Compact threshold decryption (KeyGen) To split BBS decryption key sk = ( α , β ), just pick α 1 , β 1 ,..., α N-1 , β N-1 ← F p and set α N = -1/ α - ∑ α i and β N = -1/ β - ∑ β i ; then α 1 + ... + α N = -1/ α and β 1 + ... + β N = -1/ β sec ret Observe that for c = (u,v,w) = Enc(pk,m): k ey w ∏ u α j ⋅ v β j = u α 1+...+ α k ⋅ v β 1+...+ β k ⋅ w = u -1/ α ⋅ v -1/ β w sk i = ( α i , β i ) 13

  54. Part 2: Compact threshold decryption (KeyGen) To split BBS decryption key sk = ( α , β ), just pick α 1 , β 1 ,..., α N-1 , β N-1 ← F p and set α N = -1/ α - ∑ α i and β N = -1/ β - ∑ β i ; then α 1 + ... + α N = -1/ α and β 1 + ... + β N = -1/ β sec ret Observe that for c = (u,v,w) = Enc(pk,m): k ey w ∏ u α j ⋅ v β j = u α 1+...+ α k ⋅ v β 1+...+ β k ⋅ w = u -1/ α ⋅ v -1/ β w sk i = ( α i , β i ) = m 13

  55. Part 2: Compact threshold decryption (KeyGen) To split BBS decryption key sk = ( α , β ), just pick α 1 , β 1 ,..., α N-1 , β N-1 ← F p and set α N = -1/ α - ∑ α i and β N = -1/ β - ∑ β i ; then α 1 + ... + α N = -1/ α and β 1 + ... + β N = -1/ β sec ret Observe that for c = (u,v,w) = Enc(pk,m): k ey w ∏ u α j ⋅ v β j = u α 1+...+ α k ⋅ v β 1+...+ β k ⋅ w = u -1/ α ⋅ v -1/ β w sk i = ( α i , β i ) = m Also want verification key vk = (Com(sk 1 )=(Com( α 1 ),Com( β 1 )),...,Com(sk N )) 13

  56. Part 2: Compact threshold decryption (ShareDec) 14

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend