Paillier/ZKP Ballot encryption, ZKP and weighted tallying in the - - PowerPoint PPT Presentation

paillier zkp
SMART_READER_LITE
LIVE PREVIEW

Paillier/ZKP Ballot encryption, ZKP and weighted tallying in the - - PowerPoint PPT Presentation

Introduction Theoretical background Implementation Paillier/ZKP Ballot encryption, ZKP and weighted tallying in the Paillier cryptosystem Reto B urki, Adrian-Ken R uegsegger University of Applied Sciences Rapperswil, Switzerland


slide-1
SLIDE 1

Introduction Theoretical background Implementation

Paillier/ZKP

Ballot encryption, ZKP and weighted tallying in the Paillier cryptosystem Reto B¨ urki, Adrian-Ken R¨ uegsegger University of Applied Sciences Rapperswil, Switzerland 6/11/2012 Master seminar: E-Voting

slide-2
SLIDE 2

Introduction Theoretical background Implementation

Outline

1 Introduction

System Architecture Our Modules

2 Theoretical background

ZKP verification Weighted tallying

3 Implementation

Overview Source Demo

slide-3
SLIDE 3

Introduction Theoretical background Implementation

System Architecture

slide-4
SLIDE 4

Introduction Theoretical background Implementation

Our Modules (I)

Module 2 Ballot encryption Zero-knowledge proof for ballot of voter v Input

Public key generated by module 1 Vote instruction (Candidate choice)

Output

Encrypted vote (ballot) ZKP for vote (a, e, z) Election & voter id

slide-5
SLIDE 5

Introduction Theoretical background Implementation

Our Modules (II)

Module 3 Zero-knowledge proof check of ballot Weighted tallying Input

Encrypted vote (ballot) ZKP for vote (a, e, z) Election & voter id Voter registry (shares per voter)

Output

Encrypted weighted tally (ct) Election id

slide-6
SLIDE 6

Introduction Theoretical background Implementation

ZKP verification (I)

Prover must show that all uk’s are nthpowers c = gmi · rn mod n2 (1) uk = c · (gmk)−1 mod n2 (2) k number of candidates i selected candidate mk valid voting messages uk bulletin board values Only possible for k = i Without disclosing random r! ✙ Use ak,ek and zk arrays to prove it

slide-7
SLIDE 7

Introduction Theoretical background Implementation

ZKP verification (II)

Sum of all ek’s must be equal to challenge e ek =

  • e −

k=i ek mod 2b

k = i ek k = i (3)

  • ek ≡ e mod 2b

(4) b = size2 (n) 2 (5) b size of challenge in bits (768) e challenge (hashed voter/election data & commitment) ek response array e

slide-8
SLIDE 8

Introduction Theoretical background Implementation

ZKP verification (III)

All zk’s must be nthpowers ak =

  • ai = zn

i mod n2

k = i ak = zn

k ·

  • uek

k

−1 mod n2 k = i (6) zk =

  • zi = zi · rei mod n

k = i zk k = i (7) zn

k ≡ ak · uek k mod n2

(8) ak commitment ek response array e zk response array z

slide-9
SLIDE 9

Introduction Theoretical background Implementation

Weighted tallying

Encrypted tally is product of all encrypted votes modulo n2 ct =

Nv

  • i=1

cw

i mod n2

(9) cw weighted encrypted vote w weight (number of shares) ct encrypted tally Nv number of voters Additive homomorphic properties D

  • E (m1) · E (m2) mod n2

= m1 + m2 mod n D

  • E (m)k mod n2

= k · m mod n

slide-10
SLIDE 10

Introduction Theoretical background Implementation

Overview

Project information Programming Language: Ada Methodology: Test driven development (TDD) Coverage:

  • ftest-coverage -fprofile-arcs -fprofile-generate

lcov genhtml

Dependencies:

Ahven (Unit test library) GMP (Bignum) GNATCOLL (JSON)

slide-11
SLIDE 11

Introduction Theoretical background Implementation

Project source

Source code is freely available Opensource license: GPLv3+ http://git.codelabs.ch/?p=paillier-zkp.git git clone http://git.codelabs.ch/git/paillier-zkp.git

slide-12
SLIDE 12

Introduction Theoretical background Implementation

Demo

Talk is cheap. Show me the code.

  • Linus Torvalds
slide-13
SLIDE 13

Introduction Theoretical background Implementation

Questions

Thank you for your attention!