Mix-Nets Lecture 19 Some tools for electronic-voting (and other - - PowerPoint PPT Presentation

mix nets
SMART_READER_LITE
LIVE PREVIEW

Mix-Nets Lecture 19 Some tools for electronic-voting (and other - - PowerPoint PPT Presentation

Mix-Nets Lecture 19 Some tools for electronic-voting (and other things) Mix-Nets Mix-Nets Originally proposed by Chaum (1981) for anonymous communication Mix-Nets Originally proposed by Chaum (1981) for anonymous communication Input: a


slide-1
SLIDE 1

Mix-Nets

Lecture 19 Some tools for electronic-voting (and other things)

slide-2
SLIDE 2

Mix-Nets

slide-3
SLIDE 3

Mix-Nets

Originally proposed by Chaum (1981) for anonymous communication

slide-4
SLIDE 4

Mix-Nets

Originally proposed by Chaum (1981) for anonymous communication Input: a vector of ciphertexts under a “threshold encryption scheme”

slide-5
SLIDE 5

Mix-Nets

Originally proposed by Chaum (1981) for anonymous communication Input: a vector of ciphertexts under a “threshold encryption scheme” Mix-servers take turns to perform “verifiable shuffles”

slide-6
SLIDE 6

Mix-Nets

Originally proposed by Chaum (1981) for anonymous communication Input: a vector of ciphertexts under a “threshold encryption scheme” Mix-servers take turns to perform “verifiable shuffles” Final shuffled vector decrypted by decryption-servers

slide-7
SLIDE 7

Mix-Nets

Originally proposed by Chaum (1981) for anonymous communication Input: a vector of ciphertexts under a “threshold encryption scheme” Mix-servers take turns to perform “verifiable shuffles” Final shuffled vector decrypted by decryption-servers (Omitted: Decryption mix-nets, which combine shuffling and decryption. Here: Re-encryption mix-nets)

slide-8
SLIDE 8

Mix-Nets

Originally proposed by Chaum (1981) for anonymous communication Input: a vector of ciphertexts under a “threshold encryption scheme” Mix-servers take turns to perform “verifiable shuffles” Final shuffled vector decrypted by decryption-servers (Omitted: Decryption mix-nets, which combine shuffling and decryption. Here: Re-encryption mix-nets) Ideal functionality: input a vector of private messages from senders, and a permutation from each mix server; output the messages permuted using the composed permutation

slide-9
SLIDE 9

Mix-Nets

Originally proposed by Chaum (1981) for anonymous communication Input: a vector of ciphertexts under a “threshold encryption scheme” Mix-servers take turns to perform “verifiable shuffles” Final shuffled vector decrypted by decryption-servers (Omitted: Decryption mix-nets, which combine shuffling and decryption. Here: Re-encryption mix-nets) Ideal functionality: input a vector of private messages from senders, and a permutation from each mix server; output the messages permuted using the composed permutation Corruption model: Active adversary can corrupt a limited number of servers

slide-10
SLIDE 10

Threshold Decryption

slide-11
SLIDE 11

Threshold Decryption

Key pairs (SKi,PKi) generated by a set of servers (separate from sender/receiver). (Receiver may set up parameters.)

slide-12
SLIDE 12

Threshold Decryption

Key pairs (SKi,PKi) generated by a set of servers (separate from sender/receiver). (Receiver may set up parameters.) Ciphertexts generated by honest player (not CCA security)

slide-13
SLIDE 13

Threshold Decryption

Key pairs (SKi,PKi) generated by a set of servers (separate from sender/receiver). (Receiver may set up parameters.) Ciphertexts generated by honest player (not CCA security) Decryption by public discussion among servers and receiver (all the servers and the receiver see all the messages)

slide-14
SLIDE 14

Threshold Decryption

Key pairs (SKi,PKi) generated by a set of servers (separate from sender/receiver). (Receiver may set up parameters.) Ciphertexts generated by honest player (not CCA security) Decryption by public discussion among servers and receiver (all the servers and the receiver see all the messages) Active adversary can corrupt a limited number of servers

slide-15
SLIDE 15

Threshold Decryption

Key pairs (SKi,PKi) generated by a set of servers (separate from sender/receiver). (Receiver may set up parameters.) Ciphertexts generated by honest player (not CCA security) Decryption by public discussion among servers and receiver (all the servers and the receiver see all the messages) Active adversary can corrupt a limited number of servers Ideal: Same as for SIM-CPA, but with servers also getting the message (if the receiver decides to get it); if number of corrupted servers above threshold, adversary can block (but not substitute) output to others

slide-16
SLIDE 16

Threshold Decryption

slide-17
SLIDE 17

Threshold Decryption

E.g. Threshold El Gamal for threshold n out of n

slide-18
SLIDE 18

Threshold Decryption

E.g. Threshold El Gamal for threshold n out of n KeyGen: (SKi,PKi) = (yi,Yi:=gyi) (group, g are system parameters)

slide-19
SLIDE 19

Threshold Decryption

E.g. Threshold El Gamal for threshold n out of n KeyGen: (SKi,PKi) = (yi,Yi:=gyi) (group, g are system parameters) Encryption: El Gamal, with PK (g,Y) where Y = Πi gyi

slide-20
SLIDE 20

Threshold Decryption

E.g. Threshold El Gamal for threshold n out of n KeyGen: (SKi,PKi) = (yi,Yi:=gyi) (group, g are system parameters) Encryption: El Gamal, with PK (g,Y) where Y = Πi gyi Decryption: Given (A,B) := (gr,mYr), ith server outputs Ai := (gr)yi and proves (to the receiver) equality of discrete log for (g,Yi) and (A,Ai). Receiver recovers m as B/Πi Ai

slide-21
SLIDE 21

Threshold Decryption

E.g. Threshold El Gamal for threshold n out of n KeyGen: (SKi,PKi) = (yi,Yi:=gyi) (group, g are system parameters) Encryption: El Gamal, with PK (g,Y) where Y = Πi gyi Decryption: Given (A,B) := (gr,mYr), ith server outputs Ai := (gr)yi and proves (to the receiver) equality of discrete log for (g,Yi) and (A,Ai). Receiver recovers m as B/Πi Ai Proof using an Honest-Verifier ZK proof

slide-22
SLIDE 22

Threshold Decryption

E.g. Threshold El Gamal for threshold n out of n KeyGen: (SKi,PKi) = (yi,Yi:=gyi) (group, g are system parameters) Encryption: El Gamal, with PK (g,Y) where Y = Πi gyi Decryption: Given (A,B) := (gr,mYr), ith server outputs Ai := (gr)yi and proves (to the receiver) equality of discrete log for (g,Yi) and (A,Ai). Receiver recovers m as B/Πi Ai Proof using an Honest-Verifier ZK proof Using a special purpose proof (Chaum-Pederson), rather than ZK for general NP statements

slide-23
SLIDE 23

Honest-Verifier ZK Proofs

slide-24
SLIDE 24

Honest-Verifier ZK Proofs

ZK Proof of knowledge of discrete log of A=gr

slide-25
SLIDE 25

Honest-Verifier ZK Proofs

ZK Proof of knowledge of discrete log of A=gr

This can be used to prove knowledge of the message in

an El Gamal encryption (A,B) = (gr, m Yr)

slide-26
SLIDE 26

Honest-Verifier ZK Proofs

ZK Proof of knowledge of discrete log of A=gr

This can be used to prove knowledge of the message in

an El Gamal encryption (A,B) = (gr, m Yr) P→V: U := gu ; V→P: v ; P→V: w := rv + u ; 
 V checks: gw = AvU

slide-27
SLIDE 27

Honest-Verifier ZK Proofs

ZK Proof of knowledge of discrete log of A=gr

This can be used to prove knowledge of the message in

an El Gamal encryption (A,B) = (gr, m Yr) P→V: U := gu ; V→P: v ; P→V: w := rv + u ; 
 V checks: gw = AvU Proof of Knowledge:

slide-28
SLIDE 28

Honest-Verifier ZK Proofs

ZK Proof of knowledge of discrete log of A=gr

This can be used to prove knowledge of the message in

an El Gamal encryption (A,B) = (gr, m Yr) P→V: U := gu ; V→P: v ; P→V: w := rv + u ; 
 V checks: gw = AvU Proof of Knowledge: Firstly, gw = AvU ⇒ w = rv+u, where U = gu

slide-29
SLIDE 29

Honest-Verifier ZK Proofs

ZK Proof of knowledge of discrete log of A=gr

This can be used to prove knowledge of the message in

an El Gamal encryption (A,B) = (gr, m Yr) P→V: U := gu ; V→P: v ; P→V: w := rv + u ; 
 V checks: gw = AvU Proof of Knowledge: Firstly, gw = AvU ⇒ w = rv+u, where U = gu If after sending U, P could respond to two different values of v: w1 = rv1 + u and w2 = rv2 + u, then can solve for r

slide-30
SLIDE 30

Honest-Verifier ZK Proofs

ZK Proof of knowledge of discrete log of A=gr

This can be used to prove knowledge of the message in

an El Gamal encryption (A,B) = (gr, m Yr) P→V: U := gu ; V→P: v ; P→V: w := rv + u ; 
 V checks: gw = AvU Proof of Knowledge: Firstly, gw = AvU ⇒ w = rv+u, where U = gu If after sending U, P could respond to two different values of v: w1 = rv1 + u and w2 = rv2 + u, then can solve for r ZK: simulation picks w, v first and sets U = gw/Av

slide-31
SLIDE 31

HVZK and Special Soundness

slide-32
SLIDE 32

HVZK and Special Soundness

HVZK: Simulation for honest (passively corrupt) verifier

slide-33
SLIDE 33

HVZK and Special Soundness

HVZK: Simulation for honest (passively corrupt) verifier e.g. in PoK of discrete log, simulator picks (v,w) first and computes U (without knowing u). Relies on verifier to pick v independent of U.

slide-34
SLIDE 34

HVZK and Special Soundness

HVZK: Simulation for honest (passively corrupt) verifier e.g. in PoK of discrete log, simulator picks (v,w) first and computes U (without knowing u). Relies on verifier to pick v independent of U. Special soundness: given (U,v,w) and (U,v’,w’) s.t. v≠v’ and both accepted by verifier, can derive a witness (in stand-alone setting)

slide-35
SLIDE 35

HVZK and Special Soundness

HVZK: Simulation for honest (passively corrupt) verifier e.g. in PoK of discrete log, simulator picks (v,w) first and computes U (without knowing u). Relies on verifier to pick v independent of U. Special soundness: given (U,v,w) and (U,v’,w’) s.t. v≠v’ and both accepted by verifier, can derive a witness (in stand-alone setting) e.g. solve r from w=rv+u and w’=rv’+u (given v,w,v’,w’)

slide-36
SLIDE 36

HVZK and Special Soundness

HVZK: Simulation for honest (passively corrupt) verifier e.g. in PoK of discrete log, simulator picks (v,w) first and computes U (without knowing u). Relies on verifier to pick v independent of U. Special soundness: given (U,v,w) and (U,v’,w’) s.t. v≠v’ and both accepted by verifier, can derive a witness (in stand-alone setting) e.g. solve r from w=rv+u and w’=rv’+u (given v,w,v’,w’) Implies soundness: for each U s.t. prover has significant probability of being able to convince, can extract r from the prover with comparable probability (using “rewinding”)

slide-37
SLIDE 37

HVZK and Special Soundness

HVZK: Simulation for honest (passively corrupt) verifier e.g. in PoK of discrete log, simulator picks (v,w) first and computes U (without knowing u). Relies on verifier to pick v independent of U. Special soundness: given (U,v,w) and (U,v’,w’) s.t. v≠v’ and both accepted by verifier, can derive a witness (in stand-alone setting) e.g. solve r from w=rv+u and w’=rv’+u (given v,w,v’,w’) Implies soundness: for each U s.t. prover has significant probability of being able to convince, can extract r from the prover with comparable probability (using “rewinding”) Can amplify soundness using parallel repetition: still 3 rounds

slide-38
SLIDE 38

Honest-Verifier ZK Proofs

slide-39
SLIDE 39

Honest-Verifier ZK Proofs

ZK PoK to prove equality of discrete logs for ((g,Y),(C,D)), 
 i.e., Y = gr and D = Cr [Chaum-Pederson]

slide-40
SLIDE 40

Honest-Verifier ZK Proofs

ZK PoK to prove equality of discrete logs for ((g,Y),(C,D)), 
 i.e., Y = gr and D = Cr [Chaum-Pederson] Can be used to prove equality of two El Gamal encryptions (A,B) & (A’,B’) w.r.t public-key (g,Y): set (C,D) := (A/A’,B/B’)

slide-41
SLIDE 41

Honest-Verifier ZK Proofs

ZK PoK to prove equality of discrete logs for ((g,Y),(C,D)), 
 i.e., Y = gr and D = Cr [Chaum-Pederson] Can be used to prove equality of two El Gamal encryptions (A,B) & (A’,B’) w.r.t public-key (g,Y): set (C,D) := (A/A’,B/B’) P→V: (U,M) := (gu,Cu); V→P: v ; P→V: w := rv+u ;
 V checks: gw = YvU and Cw = DvM

slide-42
SLIDE 42

Honest-Verifier ZK Proofs

ZK PoK to prove equality of discrete logs for ((g,Y),(C,D)), 
 i.e., Y = gr and D = Cr [Chaum-Pederson] Can be used to prove equality of two El Gamal encryptions (A,B) & (A’,B’) w.r.t public-key (g,Y): set (C,D) := (A/A’,B/B’) P→V: (U,M) := (gu,Cu); V→P: v ; P→V: w := rv+u ;
 V checks: gw = YvU and Cw = DvM Proof of Knowledge:

slide-43
SLIDE 43

Honest-Verifier ZK Proofs

ZK PoK to prove equality of discrete logs for ((g,Y),(C,D)), 
 i.e., Y = gr and D = Cr [Chaum-Pederson] Can be used to prove equality of two El Gamal encryptions (A,B) & (A’,B’) w.r.t public-key (g,Y): set (C,D) := (A/A’,B/B’) P→V: (U,M) := (gu,Cu); V→P: v ; P→V: w := rv+u ;
 V checks: gw = YvU and Cw = DvM Proof of Knowledge: gw=YvU, Cw=DvM ⇒ w = rv+u = r’v+u’ 
 where U=gu, M=gu’ and Y=gr, D=Cr’

slide-44
SLIDE 44

Honest-Verifier ZK Proofs

ZK PoK to prove equality of discrete logs for ((g,Y),(C,D)), 
 i.e., Y = gr and D = Cr [Chaum-Pederson] Can be used to prove equality of two El Gamal encryptions (A,B) & (A’,B’) w.r.t public-key (g,Y): set (C,D) := (A/A’,B/B’) P→V: (U,M) := (gu,Cu); V→P: v ; P→V: w := rv+u ;
 V checks: gw = YvU and Cw = DvM Proof of Knowledge: gw=YvU, Cw=DvM ⇒ w = rv+u = r’v+u’ 
 where U=gu, M=gu’ and Y=gr, D=Cr’ If after sending (U,M) P could respond to two different values

  • f v: rv1 + u = r’v1 + u’ and rv2 + u = r’v2 + u’, then r=r’
slide-45
SLIDE 45

Honest-Verifier ZK Proofs

ZK PoK to prove equality of discrete logs for ((g,Y),(C,D)), 
 i.e., Y = gr and D = Cr [Chaum-Pederson] Can be used to prove equality of two El Gamal encryptions (A,B) & (A’,B’) w.r.t public-key (g,Y): set (C,D) := (A/A’,B/B’) P→V: (U,M) := (gu,Cu); V→P: v ; P→V: w := rv+u ;
 V checks: gw = YvU and Cw = DvM Proof of Knowledge: gw=YvU, Cw=DvM ⇒ w = rv+u = r’v+u’ 
 where U=gu, M=gu’ and Y=gr, D=Cr’ If after sending (U,M) P could respond to two different values

  • f v: rv1 + u = r’v1 + u’ and rv2 + u = r’v2 + u’, then r=r’

ZK: simulation picks w, v first and sets U=gw/Av, M=Cw/Dv

slide-46
SLIDE 46

Fiat-Shamir Heuristic

slide-47
SLIDE 47

Fiat-Shamir Heuristic

Limitation: Honest-Verifier ZK does not guarantee ZK when verifier is actively corrupt

slide-48
SLIDE 48

Fiat-Shamir Heuristic

Limitation: Honest-Verifier ZK does not guarantee ZK when verifier is actively corrupt Can be fixed by implementing the verifier using MPC

slide-49
SLIDE 49

Fiat-Shamir Heuristic

Limitation: Honest-Verifier ZK does not guarantee ZK when verifier is actively corrupt Can be fixed by implementing the verifier using MPC If verifier is a public-coin protocol -- i.e., only picks random elements publicly -- then MPC only to generate random coins

slide-50
SLIDE 50

Fiat-Shamir Heuristic

Limitation: Honest-Verifier ZK does not guarantee ZK when verifier is actively corrupt Can be fixed by implementing the verifier using MPC If verifier is a public-coin protocol -- i.e., only picks random elements publicly -- then MPC only to generate random coins Fiat-Shamir Heuristic: random coins from verifier defined as R(trans), where R is a random oracle and trans is the transcript of the proof so far

slide-51
SLIDE 51

Fiat-Shamir Heuristic

Limitation: Honest-Verifier ZK does not guarantee ZK when verifier is actively corrupt Can be fixed by implementing the verifier using MPC If verifier is a public-coin protocol -- i.e., only picks random elements publicly -- then MPC only to generate random coins Fiat-Shamir Heuristic: random coins from verifier defined as R(trans), where R is a random oracle and trans is the transcript of the proof so far Removes need for interaction!

slide-52
SLIDE 52

Verifiable Shuffle

slide-53
SLIDE 53

Verifiable Shuffle

(Not so) ideal functionality: takes as input encrypted messages from a sender, and a permutation and randomness from a mixer; outputs rerandomized encryptions of permuted messages to a receiver. (Mixer gets encryptions, then picks its inputs.)

slide-54
SLIDE 54

Verifiable Shuffle

(Not so) ideal functionality: takes as input encrypted messages from a sender, and a permutation and randomness from a mixer; outputs rerandomized encryptions of permuted messages to a receiver. (Mixer gets encryptions, then picks its inputs.) Will settle for stand-alone security, and restrict to active corruption of mixer and passive corruption of sender/receiver

slide-55
SLIDE 55

Verifiable Shuffle

(Not so) ideal functionality: takes as input encrypted messages from a sender, and a permutation and randomness from a mixer; outputs rerandomized encryptions of permuted messages to a receiver. (Mixer gets encryptions, then picks its inputs.) Will settle for stand-alone security, and restrict to active corruption of mixer and passive corruption of sender/receiver Security against active corruption will be enforced separately (say using the Fiat-Shamir heuristic for receivers; audits/physical means for senders in voting)

slide-56
SLIDE 56

Verifiable Shuffle

(Not so) ideal functionality: takes as input encrypted messages from a sender, and a permutation and randomness from a mixer; outputs rerandomized encryptions of permuted messages to a receiver. (Mixer gets encryptions, then picks its inputs.) Will settle for stand-alone security, and restrict to active corruption of mixer and passive corruption of sender/receiver Security against active corruption will be enforced separately (say using the Fiat-Shamir heuristic for receivers; audits/physical means for senders in voting) We shall consider El Gamal encryption

slide-57
SLIDE 57

Verifiable Shuffle

(Not so) ideal functionality: takes as input encrypted messages from a sender, and a permutation and randomness from a mixer; outputs rerandomized encryptions of permuted messages to a receiver. (Mixer gets encryptions, then picks its inputs.) Will settle for stand-alone security, and restrict to active corruption of mixer and passive corruption of sender/receiver Security against active corruption will be enforced separately (say using the Fiat-Shamir heuristic for receivers; audits/physical means for senders in voting) We shall consider El Gamal encryption Mixer will be given encrypted messages and it will perform the permutation and reencryptions

slide-58
SLIDE 58

Verifiable Shuffle for 2 inputs

slide-59
SLIDE 59

Verifiable Shuffle for 2 inputs

On input (C1,C2), produce (D1,D2) by shuffling and rerandomizing

slide-60
SLIDE 60

Verifiable Shuffle for 2 inputs

On input (C1,C2), produce (D1,D2) by shuffling and rerandomizing HVZK proofs that [(C1→D1) or (C1→D2)] and [(C2→D1) or (C2→D2)]

slide-61
SLIDE 61

Verifiable Shuffle for 2 inputs

On input (C1,C2), produce (D1,D2) by shuffling and rerandomizing HVZK proofs that [(C1→D1) or (C1→D2)] and [(C2→D1) or (C2→D2)] To prove [ stmnt1 or stmnt2 ], given an HVZK/SS proof system for a single statement (here: equality of El Gamal encryptions)

slide-62
SLIDE 62

Verifiable Shuffle for 2 inputs

On input (C1,C2), produce (D1,D2) by shuffling and rerandomizing HVZK proofs that [(C1→D1) or (C1→D2)] and [(C2→D1) or (C2→D2)] To prove [ stmnt1 or stmnt2 ], given an HVZK/SS proof system for a single statement (here: equality of El Gamal encryptions) Denote the messages in the original system by (U,v,w)

slide-63
SLIDE 63

Verifiable Shuffle for 2 inputs

On input (C1,C2), produce (D1,D2) by shuffling and rerandomizing HVZK proofs that [(C1→D1) or (C1→D2)] and [(C2→D1) or (C2→D2)] To prove [ stmnt1 or stmnt2 ], given an HVZK/SS proof system for a single statement (here: equality of El Gamal encryptions) Denote the messages in the original system by (U,v,w) P: Run simulator to get (U3-i,v3-i,w3-i) when stmnti true
 P→V: (U1,U2); V→P: v; P→V: (v1,v2,w1,w2) where vi = v-v3-i
 Verifier checks: v1+v2 = v and verifies (U1,v1,w1) and (U2,v2,w2)

slide-64
SLIDE 64

Verifiable Shuffle for 2 inputs

On input (C1,C2), produce (D1,D2) by shuffling and rerandomizing HVZK proofs that [(C1→D1) or (C1→D2)] and [(C2→D1) or (C2→D2)] To prove [ stmnt1 or stmnt2 ], given an HVZK/SS proof system for a single statement (here: equality of El Gamal encryptions) Denote the messages in the original system by (U,v,w) P: Run simulator to get (U3-i,v3-i,w3-i) when stmnti true
 P→V: (U1,U2); V→P: v; P→V: (v1,v2,w1,w2) where vi = v-v3-i
 Verifier checks: v1+v2 = v and verifies (U1,v1,w1) and (U2,v2,w2) Special soundness: given answers for v≠v’ either v1≠v1’ or v2≠v2’. By special soundness, extract witness for stmnt1 or stmnt2

slide-65
SLIDE 65

From 2 inputs to many

slide-66
SLIDE 66

From 2 inputs to many

Using a sorting network

slide-67
SLIDE 67

From 2 inputs to many

Using a sorting network A circuit with “comparison gates” such 
 that for inputs in any order the output
 is sorted

slide-68
SLIDE 68

From 2 inputs to many

Using a sorting network A circuit with “comparison gates” such 
 that for inputs in any order the output
 is sorted

(Bitonic sort: from Wikipedia)

slide-69
SLIDE 69

From 2 inputs to many

Using a sorting network A circuit with “comparison gates” such 
 that for inputs in any order the output
 is sorted Simple O(n log2n) size networks known

(Bitonic sort: from Wikipedia)

slide-70
SLIDE 70

From 2 inputs to many

Using a sorting network A circuit with “comparison gates” such 
 that for inputs in any order the output
 is sorted Simple O(n log2n) size networks known Fix a sorting network, and use a 2x2 verifiable shuffle at each comparison gate

(Bitonic sort: from Wikipedia)

slide-71
SLIDE 71

From 2 inputs to many

Using a sorting network A circuit with “comparison gates” such 
 that for inputs in any order the output
 is sorted Simple O(n log2n) size networks known Fix a sorting network, and use a 2x2 verifiable shuffle at each comparison gate Permutations at the comparison gates chosen so as to implement the overall permutation

(Bitonic sort: from Wikipedia)

slide-72
SLIDE 72

From 2 inputs to many

Using a sorting network A circuit with “comparison gates” such 
 that for inputs in any order the output
 is sorted Simple O(n log2n) size networks known Fix a sorting network, and use a 2x2 verifiable shuffle at each comparison gate Permutations at the comparison gates chosen so as to implement the overall permutation 3 rounds: Parallel composition of HVZK proofs

(Bitonic sort: from Wikipedia)

slide-73
SLIDE 73

Alternate Verifiable-Shuffles

slide-74
SLIDE 74

Alternate Verifiable-Shuffles

More efficient (w.r.t. communication/computation) protocols known:

slide-75
SLIDE 75

Alternate Verifiable-Shuffles

More efficient (w.r.t. communication/computation) protocols known: 3 rounds, using “permutation matrices”

slide-76
SLIDE 76

Alternate Verifiable-Shuffles

More efficient (w.r.t. communication/computation) protocols known: 3 rounds, using “permutation matrices” With linear communication

slide-77
SLIDE 77

Alternate Verifiable-Shuffles

More efficient (w.r.t. communication/computation) protocols known: 3 rounds, using “permutation matrices” With linear communication 7 rounds, using homomorphic commitments

slide-78
SLIDE 78

Alternate Verifiable-Shuffles

More efficient (w.r.t. communication/computation) protocols known: 3 rounds, using “permutation matrices” With linear communication 7 rounds, using homomorphic commitments Possible with sub-linear communication for the proof

slide-79
SLIDE 79

Homomorphic Commitment

slide-80
SLIDE 80

Homomorphic Commitment

A commitment scheme over a group

slide-81
SLIDE 81

Homomorphic Commitment

A commitment scheme over a group com(x;r) = c, where x, r, c are from their respective groups

slide-82
SLIDE 82

Homomorphic Commitment

A commitment scheme over a group com(x;r) = c, where x, r, c are from their respective groups Hiding and binding

slide-83
SLIDE 83

Homomorphic Commitment

A commitment scheme over a group com(x;r) = c, where x, r, c are from their respective groups Hiding and binding Homomorphism: com(x;r) * com(x’;r’) = com(x+x’;r+r’)

slide-84
SLIDE 84

Homomorphic Commitment

A commitment scheme over a group com(x;r) = c, where x, r, c are from their respective groups Hiding and binding Homomorphism: com(x;r) * com(x’;r’) = com(x+x’;r+r’) (Operations in respective groups)

slide-85
SLIDE 85

Commitment from CRHF

slide-86
SLIDE 86

Commitment from CRHF

Let H be a CRHF s.t. HK(x,r) is uniformly random for a random r, for any x and any K

slide-87
SLIDE 87

Commitment from CRHF

Let H be a CRHF s.t. HK(x,r) is uniformly random for a random r, for any x and any K Commitment: Receiver sends a random key K for H, and sender sends ComK(x;r) := HK(x,r)

slide-88
SLIDE 88

Commitment from CRHF

Let H be a CRHF s.t. HK(x,r) is uniformly random for a random r, for any x and any K Commitment: Receiver sends a random key K for H, and sender sends ComK(x;r) := HK(x,r) Perfectly hiding, because r will be chosen at random by the committer

slide-89
SLIDE 89

Commitment from CRHF

Let H be a CRHF s.t. HK(x,r) is uniformly random for a random r, for any x and any K Commitment: Receiver sends a random key K for H, and sender sends ComK(x;r) := HK(x,r) Perfectly hiding, because r will be chosen at random by the committer Reveal: send (x,r)

slide-90
SLIDE 90

Commitment from CRHF

Let H be a CRHF s.t. HK(x,r) is uniformly random for a random r, for any x and any K Commitment: Receiver sends a random key K for H, and sender sends ComK(x;r) := HK(x,r) Perfectly hiding, because r will be chosen at random by the committer Reveal: send (x,r) Binding, because of collision resistance when K picked at random

slide-91
SLIDE 91

Pedersen Commitment

slide-92
SLIDE 92

Pedersen Commitment

Recall CRHF Hg,h(x,r) = gxhr (collision resistant under Discrete Log assumption)

slide-93
SLIDE 93

Pedersen Commitment

Recall CRHF Hg,h(x,r) = gxhr (collision resistant under Discrete Log assumption) Binding by collision-resistance: receiver picks (g,h)

slide-94
SLIDE 94

Pedersen Commitment

Recall CRHF Hg,h(x,r) = gxhr (collision resistant under Discrete Log assumption) Binding by collision-resistance: receiver picks (g,h) Perfectly Hiding in a prime order group

slide-95
SLIDE 95

Pedersen Commitment

Recall CRHF Hg,h(x,r) = gxhr (collision resistant under Discrete Log assumption) Binding by collision-resistance: receiver picks (g,h) Perfectly Hiding in a prime order group If group is prime order, then all h are generators

slide-96
SLIDE 96

Pedersen Commitment

Recall CRHF Hg,h(x,r) = gxhr (collision resistant under Discrete Log assumption) Binding by collision-resistance: receiver picks (g,h) Perfectly Hiding in a prime order group If group is prime order, then all h are generators Then for all x, Hg,h(x,r) is random if r random

slide-97
SLIDE 97

Pedersen Commitment

Recall CRHF Hg,h(x,r) = gxhr (collision resistant under Discrete Log assumption) Binding by collision-resistance: receiver picks (g,h) Perfectly Hiding in a prime order group If group is prime order, then all h are generators Then for all x, Hg,h(x,r) is random if r random Homomorphism: Comg,h(x;r) * Comg,h(x’;r’) = Comg,h(x+x’;r+r’)

slide-98
SLIDE 98

Pedersen Commitment

Recall CRHF Hg,h(x,r) = gxhr (collision resistant under Discrete Log assumption) Binding by collision-resistance: receiver picks (g,h) Perfectly Hiding in a prime order group If group is prime order, then all h are generators Then for all x, Hg,h(x,r) is random if r random Homomorphism: Comg,h(x;r) * Comg,h(x’;r’) = Comg,h(x+x’;r+r’) HVZK PoK of (x,r): Send Comg,h(u1;u2), and on challenge v, send
 (xv+u1) and (rv+u2)

slide-99
SLIDE 99

Pedersen Commitment

Recall CRHF Hg,h(x,r) = gxhr (collision resistant under Discrete Log assumption) Binding by collision-resistance: receiver picks (g,h) Perfectly Hiding in a prime order group If group is prime order, then all h are generators Then for all x, Hg,h(x,r) is random if r random Homomorphism: Comg,h(x;r) * Comg,h(x’;r’) = Comg,h(x+x’;r+r’) HVZK PoK of (x,r): Send Comg,h(u1;u2), and on challenge v, send
 (xv+u1) and (rv+u2) Improved efficiency: Hg1,..,gn,h(x1,...,xn,r) = g1x1...gnxn hr

slide-100
SLIDE 100

Using Homomorphic Commitments

slide-101
SLIDE 101

Using Homomorphic Commitments

Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment)

slide-102
SLIDE 102

Using Homomorphic Commitments

Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment) Idea: (z1,...,zn) is a permutation of (m1,...,mn) iff the polynomials f(X) := Πi (X-mi) and h(X) := Πi (X-zi) are the same

slide-103
SLIDE 103

Using Homomorphic Commitments

Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment) Idea: (z1,...,zn) is a permutation of (m1,...,mn) iff the polynomials f(X) := Πi (X-mi) and h(X) := Πi (X-zi) are the same Probabilistically verified by assigning a random value x to X

slide-104
SLIDE 104

Using Homomorphic Commitments

Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment) Idea: (z1,...,zn) is a permutation of (m1,...,mn) iff the polynomials f(X) := Πi (X-mi) and h(X) := Πi (X-zi) are the same Probabilistically verified by assigning a random value x to X If the field is large (super-polynomial), soundness error is negligible: if not identically 0, f(X)-h(X) has at most n roots

slide-105
SLIDE 105

Using Homomorphic Commitments

Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment) Idea: (z1,...,zn) is a permutation of (m1,...,mn) iff the polynomials f(X) := Πi (X-mi) and h(X) := Πi (X-zi) are the same Probabilistically verified by assigning a random value x to X If the field is large (super-polynomial), soundness error is negligible: if not identically 0, f(X)-h(X) has at most n roots Use homomorphic commitments to carry out the polynomial evaluation and check equality (details omitted)

slide-106
SLIDE 106

Using Homomorphic Commitments

Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment)

slide-107
SLIDE 107

Using Homomorphic Commitments

For shuffling ciphertexts: Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment)

slide-108
SLIDE 108

Using Homomorphic Commitments

For shuffling ciphertexts: Suppose verifier knew the permutation. Then task reduces to proving equality of messages in ciphertext pairs Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment)

slide-109
SLIDE 109

Using Homomorphic Commitments

For shuffling ciphertexts: Suppose verifier knew the permutation. Then task reduces to proving equality of messages in ciphertext pairs Can’ t reveal the permutation: instead commit to a permutation of (1,2,...,n) Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment)

slide-110
SLIDE 110

Using Homomorphic Commitments

For shuffling ciphertexts: Suppose verifier knew the permutation. Then task reduces to proving equality of messages in ciphertext pairs Can’ t reveal the permutation: instead commit to a permutation of (1,2,...,n) Use the sub-protocol to do this verifiably Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment)

slide-111
SLIDE 111

Using Homomorphic Commitments

For shuffling ciphertexts: Suppose verifier knew the permutation. Then task reduces to proving equality of messages in ciphertext pairs Can’ t reveal the permutation: instead commit to a permutation of (1,2,...,n) Use the sub-protocol to do this verifiably Use homomorphic properties of the commitments to carry out equality proofs w.r.t committed permutation (omitted) Sub-problem: given a plaintext vector (m1,...,mn), verifiably commit to a permutation of it (using a vector commitment)

slide-112
SLIDE 112

Today

slide-113
SLIDE 113

Today

Mix-Nets

slide-114
SLIDE 114

Today

Mix-Nets Verifiable shuffles for El Gamal encryption

slide-115
SLIDE 115

Today

Mix-Nets Verifiable shuffles for El Gamal encryption Also known for Paillier encryption

slide-116
SLIDE 116

Today

Mix-Nets Verifiable shuffles for El Gamal encryption Also known for Paillier encryption Useful in the “back-end” of voting schemes

slide-117
SLIDE 117

Today

Mix-Nets Verifiable shuffles for El Gamal encryption Also known for Paillier encryption Useful in the “back-end” of voting schemes In principle, general MPC would work

slide-118
SLIDE 118

Today

Mix-Nets Verifiable shuffles for El Gamal encryption Also known for Paillier encryption Useful in the “back-end” of voting schemes In principle, general MPC would work Special constructions with better efficiency

slide-119
SLIDE 119

Today

Mix-Nets Verifiable shuffles for El Gamal encryption Also known for Paillier encryption Useful in the “back-end” of voting schemes In principle, general MPC would work Special constructions with better efficiency Next: Voting

slide-120
SLIDE 120

Today

Mix-Nets Verifiable shuffles for El Gamal encryption Also known for Paillier encryption Useful in the “back-end” of voting schemes In principle, general MPC would work Special constructions with better efficiency Next: Voting Several subtleties (especially in the “front-end”)