Efficient Zero-Knowledge Argument for Correctness of a Shuffle

24
Efficient Zero-Knowledge Argument for Correctness of a Shuffle Stephanie Bayer University College London Jens Groth University College London

description

Efficient Zero-Knowledge Argument for Correctness of a Shuffle. Stephanie Bayer University College London Jens Groth University College London. Motivation – e-voting. Voting:- Voter casts secret vote - Authorities reveal votes in random permuted order - PowerPoint PPT Presentation

Transcript of Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Page 1: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Stephanie Bayer

University College London

Jens Groth

University College London

Page 2: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Motivation – e-voting

• Voting: - Voter casts secret vote

- Authorities reveal votes in random permuted order

• E-voting: - voter casts secret votes on a computer

- The votes are sent to a server who sends all votes to the central authorities

- Authorities reveal votes in random permuted order

Page 3: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Background - ElGamal encryption

• Setup: Group G of prime order with generator

• Public key:

• Encryption: E() = ()

• Decryption: D() =

• Homomorphic:

E() × E() = E()

• Re-rencryption:

E() × E() = E()

Page 4: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Shuffle

c1 c2 c3 c N. . .

C1 C2 C3 CN. . .

Input ciphertexts

Permute to get

Re-encrypt them E()

Output ciphertexts

Page 5: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Mix-net:

m π ( 1) m π ( 2) m π (N )

π1

π2

π=π 1π2

m1 m2 mN

Threshold decryption

Page 6: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Problem: Corrupt mix-server

m π ( 1) m π ( 2) m π (N )′

π1

π2

π=π 1π2

m2 mN

Threshold decryption

Page 7: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Solution: Zero-knowledge argument

m π ( 1) m π ( 2)

m1 m2 N

Threshold decryption

ZK argumentNo message changed

(soundness)

ZK argumentPermutation still secret

(zero-knowledge)

π=π 1π2

π2

π1

Page 8: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Zero-Knowledge Argument

Requested Properties:– Soundness: The Verifier reject with overwhelming

probability if the Prover tries to cheat– Zero-Knowledge: Nothing but the truth is revealed;

permutation is secret– Efficient: Small computation and small communication

complexity

Prover Verifier

Statement: ()

The Shuffle was done correctly

π , r1 ,⋯ , rN

Page 9: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Public coin honest verifier zero-knowledge

Statement: ()

Prover Verifier

Setup: (G,,) and common reference string

Honest verifier zero-knowledgeNothing but truth revealed; permutation secret

Can convert to standard zero-knowledge argument

 

Page 10: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Our contribution

• 9-move public coin honest verifier zero-knowledge argument for correctness of shuffle in common reference string model

• For ciphertextsCommunication: O()k bitsProver’s computation: O() exposVerifier’s computation: O() expos

Page 11: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Comparison of ElGamal shuffles ()

|| = 1024|| = 160

Rounds Proverin expos

Verifierin expos

Sizein kbits

Furukawa-Sako 01 3 8 10 5.3

FMMOS 02 5 9 10 5.3

Furukawa 05 (GL07) 3 7 8 1.5

Terelius-Wikström 10 5 9 11 3.7

Neff 01,04 7 8 12 7.7

Groth 03,10 7 6 6 0.6

Groth-Ishai 08 7 3 4 3 + 0.5

Bayer-Groth 11 9 2 4 11 + 0.8

Bayer-Groth 11 O() 4 11 + 0.8

Page 12: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Commitments

• Commit to a column vector Z as A=com ()

– Length reducing– Computational binding– Perfectly hiding– Homomorphic

com(;)*com(; ) = com(; )

• Pedersen Commitment: com(; ) =

Page 13: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Techniques - Sublinear cost

• Length reducing commitments • Batch verification

Sublinear communication cost

• Structured Vandermonde challenges

Page 14: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Shuffle argument

• Given public keys and • Given ciphertexts and • Prover knows permutation and randomizers and

wants to convince the verifier

E() E()

Page 15: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Shuffle argument

1. The prover commits to a permutation by committing to

Verifier sends challenge Z

2. The prover commits to

3. The prover gives an argument that both commitments are constructed using the same permutation

4. The prover demonstrates that the input ciphertexts are permuted using the same permutation and knowledge of the randomizers used in the re-encryption.

Page 16: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

• Prover gives product argument for A, B such that =

• Prover commits to as A=com()=com()

and after receiving challenge Z to B= com() =com(s)

Shuffle argument

InexpensiveSee full paper

ExpensiveWill sketch idea

• Sketch idea focusing on soundness• Ignore ZK (easy and cheap to add)• Will also for simplicity assume randomness

Both polynomials are equal, only the roots are permuted

Page 17: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Notation

• Arrange ciphertexts in matrix =

• Define inner product = to simplify the statement as

• B contains commitments B, , B where

B= com=com(), , B= com ()

Page 18: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Multi-exponentiation argument idea

 

 

 

Page 19: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

3. Verifier computes and checks

Verifier sends challenge Z

1. Prover sends

2. Prover opens

to

Multi-exponentiation argument

elements in Zq

2 ciphertexts

ciphertext expos

ciphertext expos

ciphertext expos

Communicaton:O() elements

Verifier computation: + O() expos

Page 20: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Prover’s computation

  

Computing this matrix costs m2n = mN ciphertext expos

 

Page 21: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Reducing the prover’s computation

• Do not compute entire matrix• Instead use techniques for multiplication of

polynomials “in the exponent” of ciphertexts• Fast Fourier Transform

– O(N log m) exponentiations O (1) rounds

• Interaction– O (N) exponentiations O (log m) rounds

Page 22: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Implementation

• Implementation in C++ using the NTL library and the GMP library

• Different levels of optimization– Multi-exponentiation techniques– Fast Fourier Transform– Extra Interaction and Toom-Cook

Page 23: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Comparison

Single argument Argument Size

Verificatum 5 min 37.7 MB

Toom-Cook, 2 min 0.7 MB

• Runtime comparison of Verificatum (Wikström) to our shuffle argument

• MacBook Pro; CPU: 2.54 GHZ, RAM: 4GB• , 60 • ciphertexts,

Page 24: Efficient Zero-Knowledge Argument for Correctness of a Shuffle

Thank You