hvorfor stole på e-valg 2011/13?

83
© Computas AS 11.09.13 Hvorfor stole på e-valg 2011/13? Filip van Laenen @filipvanlaenen Javazone 2013

Upload: filip-van-laenen

Post on 05-Dec-2014

419 views

Category:

Technology


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Hvorfor stole på e-valg 2011/13?

© Computas AS 11.09.13

Hvorfor stolepå e-valg 2011/13?

Filip van Laenen@filipvanlaenenJavazone 2013

Page 2: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

— Fordi vi har verifisert det…

Page 3: Hvorfor stole på e-valg 2011/13?
Page 4: Hvorfor stole på e-valg 2011/13?
Page 5: Hvorfor stole på e-valg 2011/13?
Page 6: Hvorfor stole på e-valg 2011/13?

og Quality AS og PROMIS

Page 7: Hvorfor stole på e-valg 2011/13?
Page 8: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

Kan man stole på e-valg?

Page 9: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

Kan man stole på e-valg?

— Nei.

Page 10: Hvorfor stole på e-valg 2011/13?
Page 11: Hvorfor stole på e-valg 2011/13?
Page 12: Hvorfor stole på e-valg 2011/13?
Page 13: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

Kan man stole på e-valg?

— Tja…

Page 14: Hvorfor stole på e-valg 2011/13?
Page 15: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

Kan man stole på e-valg?

— Kan man stole på p-valg da?

Page 16: Hvorfor stole på e-valg 2011/13?
Page 17: Hvorfor stole på e-valg 2011/13?
Page 18: Hvorfor stole på e-valg 2011/13?
Page 19: Hvorfor stole på e-valg 2011/13?
Page 20: Hvorfor stole på e-valg 2011/13?
Page 21: Hvorfor stole på e-valg 2011/13?
Page 22: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

Kan man stole på e-valg?

— Tja…

Page 23: Hvorfor stole på e-valg 2011/13?
Page 24: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

Kan man stole på e-valg?

— Tja…

Page 25: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

— Fordi vi har verifisert det…

Page 26: Hvorfor stole på e-valg 2011/13?

26 © Computas AS 11.09.13

Matematisk verifikasjon

• Er det som ligger i valgurnen det samme som det som velgerne ønsket å stemme på?• Identiske kvitteringer

Page 27: Hvorfor stole på e-valg 2011/13?

27 © Computas AS 11.09.13

Matematisk verifikasjon

• Er det som ligger i valgurnen det samme som det som velgerne ønsket å stemme på?• Identiske kvitteringer

• Er det som ligger i valgurnen etter at vi «ristet» den uendret?• Korrekt mixing

Page 28: Hvorfor stole på e-valg 2011/13?

28 © Computas AS 11.09.13

Matematisk verifikasjon

• Er det som ligger i valgurnen det samme som det som velgerne ønsket å stemme på?• Identiske kvitteringer

• Er det som ligger i valgurnen etter at vi «ristet» den uendret?• Korrekt mixing

• Er det som vi tar ut av valgurnen det samme som det som ble puttet inn?• Korrekt dekryptering

Page 29: Hvorfor stole på e-valg 2011/13?

29 © Computas AS 11.09.13

Vår kildekode

https://github.com/KRD-KOMM-VL/verifikasjonsprogramvare

Page 30: Hvorfor stole på e-valg 2011/13?

30 © Computas AS 11.09.13

http://www.slideshare.net/filipvanlaenen/hvorfor-stole-p-evalg-201113

http://goo.gl/oB2UlS

Page 31: Hvorfor stole på e-valg 2011/13?

31 © Computas AS 11.09.13

E-valgsystemet

Page 32: Hvorfor stole på e-valg 2011/13?

32 © Computas AS 11.09.13

Identiske kvitteringer?

Page 33: Hvorfor stole på e-valg 2011/13?

33 © Computas AS 11.09.13

Korrekt cleansing?

Page 34: Hvorfor stole på e-valg 2011/13?

34 © Computas AS 11.09.13

Korrekt dekryptering?

Page 35: Hvorfor stole på e-valg 2011/13?

35 © Computas AS 11.09.13

Hvordan bevise korrekt dekryptering

• Problem:• Ingen utvetydig kobling mellom klartekst og

kryptert tekst• Krever derfor bevisføring• Men ønsker ikke å måtte bruke privatnøkkelen

• «Zero-knowledge proof»

Page 36: Hvorfor stole på e-valg 2011/13?

36 © Computas AS 11.09.13

ElGamal-kryptering

• Syklisk gruppe G ⊂ ℤp

• Generator g, ordre q• Privat nøkkel x {0, 1, …, q – 1}• Offentlig nøkkel h = gx

• Kryptering av melding m:• Velg y {0, 1, …, q – 1}• Beregn e = gy

• Beregn s = hy og c = m · s• Kryptert melding: (e, c) = (gy, m · hy)

Page 37: Hvorfor stole på e-valg 2011/13?

37 © Computas AS 11.09.13

ElGamal-dekryptering

• Dekryptering av melding (e, c) = (gy, m · hy):• Beregn s = ex

• Beregn m' = c · s-1

• Er m' = m?• m' = c · s-1

= m · hy · e-x

= m · (gx)y · (gy)-x

= m · gxy · g-xy

= m

Page 38: Hvorfor stole på e-valg 2011/13?

38 © Computas AS 11.09.13

Problemet med ElGamal-kryptering

• «Efemeral» nøkkel y:• Velg y {0, 1, …, q – 1}• Beregn e = gy

• Beregn s = hy

• Beregn c = m · s• Kryptert melding: (e, c) = (gy, m · hy)

• Derfor: (e, c) ≠ (e', c') = (gy', m · hy')

Page 39: Hvorfor stole på e-valg 2011/13?

39 © Computas AS 11.09.13

Problemet med ElGamal-krypteringFordelen

• «Efemeral» nøkkel y:• Velg y {0, 1, …, q – 1}• Beregn e = gy

• Beregn s = hy

• Beregn c = m · s• Kryptert melding: (e, c) = (gy, m · hy)

• Derfor: (e, c) ≠ (e', c') = (gy', m · hy')

Page 40: Hvorfor stole på e-valg 2011/13?

40 © Computas AS 11.09.13

Problemet med ElGamal-krypteringFordelenProblemet• «Efemeral» nøkkel y:

• Velg y {0, 1, …, q – 1}• Beregn e = gy

• Beregn s = hy

• Beregn c = m · s• Kryptert melding: (e, c) = (gy, m · hy)

• Men: y = y' (⇒ e, c) = (e', c')

Page 41: Hvorfor stole på e-valg 2011/13?
Page 42: Hvorfor stole på e-valg 2011/13?
Page 43: Hvorfor stole på e-valg 2011/13?

43 © Computas AS 11.09.13

Problemet med ElGamal-krypteringFordelenProblemet• «Efemeral» nøkkel y:

• Velg y {0, 1, …, q – 1}

Page 44: Hvorfor stole på e-valg 2011/13?

44 © Computas AS 11.09.13

Problemet med ElGamal-krypteringFordelenProblemet• «Efemeral» nøkkel y:

• Velg y {0, 1, …, q – 1}• Beregn e = gy

• Beregn s = hy

• Beregn c = m · s• Kryptert melding: (e, c) = (gy, m · hy)

• Men: y = y' (⇒ e, c) = (e', c')

Page 45: Hvorfor stole på e-valg 2011/13?

45 © Computas AS 11.09.13

Korrekt dekryptering???

Page 46: Hvorfor stole på e-valg 2011/13?

46 © Computas AS 11.09.13

E-valgsystemet

Page 47: Hvorfor stole på e-valg 2011/13?

47 © Computas AS 11.09.13

Zero-knowledge proofs

• Bevise kunnskap om eller tilgang til en hemmelighet uten å avsløre selve hemmeligheten overfor kontrolløren

Page 48: Hvorfor stole på e-valg 2011/13?

48 © Computas AS 11.09.13

Zero-knowledge proofs

• Bevise kunnskap om eller tilgang til en hemmelighet uten å avsløre selve hemmeligheten overfor kontrolløren• Å ha en privat nøkkel• Å ha brukt en privat nøkkel

Page 49: Hvorfor stole på e-valg 2011/13?

49 © Computas AS 11.09.13

Zero-knowledge proofs

• Bevise kunnskap om eller tilgang til en hemmelighet uten å avsløre selve hemmeligheten overfor kontrolløren• Å ha en privat nøkkel• Å ha brukt en privat nøkkel

• Krav:• Completeness• Soundness• Zero-knowledge

Page 50: Hvorfor stole på e-valg 2011/13?

50 © Computas AS 11.09.13

Zero-knowledge proofs«Ali Babas grotte»

Page 51: Hvorfor stole på e-valg 2011/13?

51 © Computas AS 11.09.13

Kryptering av en stemme

• Hver opsjon er et primtall ci

• Partier• Kandidater

• hEB

= gzEB

• hEB

offentlig nøkkel

• zEB

privat nøkkel

• Hver opsjon kryptert for seg selv:

• (ai, b

i) = (gri, c

i · h

EB

ri)

Page 52: Hvorfor stole på e-valg 2011/13?

52 © Computas AS 11.09.13

Homomorf kryptering

• Definisjon:• En operasjon på en klartekst er ekvivalent

med en (muligens annen) operasjon på den krypterte teksten

• ElGamal:

• E(m1) · E(m

2) = E(m

1· m

2)

Page 53: Hvorfor stole på e-valg 2011/13?

53 © Computas AS 11.09.13

Komprimering av stemmene

• Reduserer antall bevis:

• C = ∏ci

• (A, B) = ∏(ai, b

i)

Page 54: Hvorfor stole på e-valg 2011/13?

54 © Computas AS 11.09.13

Bevisføring for korrekt dekryptering

• Ikke-interaktiv utfordring: u = SHA-256(∥ci)

• Beregn f = (B/C)u · hEB

• Beregn d = Au · g

• Velg k ℤq

• Beregn w = dk

• Beregn t = SHA-256(w∥g∥hEB

)

• Beregn s = k – zEB

· t

• Bevis: (s, t)

Page 55: Hvorfor stole på e-valg 2011/13?

55 © Computas AS 11.09.13

Bevisføring for korrekt dekrypteringZero-knowledge

• Ikke-interaktiv utfordring: u = SHA-256(∥ci)

• Beregn f = (B/C)u · hEB

• Beregn d = Au · g

• Velg k ℤq

• Beregn w = dk

• Beregn t = SHA-256(w∥g∥hEB

)

• Beregn s = k – zEB

· t

• Bevis: (s, t)

Page 56: Hvorfor stole på e-valg 2011/13?

56 © Computas AS 11.09.13

Bevisføring for korrekt dekrypteringTilgang til privat nøkkel

• Ikke-interaktiv utfordring: u = SHA-256(∥ci)

• Beregn f = (B/C)u · hEB

• Beregn d = Au · g

• Velg k ℤq

• Beregn w = dk

• Beregn t = SHA-256(w∥g∥hEB

)

• Beregn s = k – zEB

· t

• Bevis: (s, t)

Page 57: Hvorfor stole på e-valg 2011/13?

57 © Computas AS 11.09.13

Bevisføring for korrekt dekrypteringKorrekt dekryptering

• Ikke-interaktiv utfordring: u = SHA-256(∥ci)

• Beregn f = (B/C)u · hEB

• Beregn d = Au · g

• Velg k ℤq

• Beregn w = dk

• Beregn t = SHA-256(w∥g∥hEB

)

• Beregn s = k – zEB

· t

• Bevis: (s, t)

Page 58: Hvorfor stole på e-valg 2011/13?

58 © Computas AS 11.09.13

Bevisføring for korrekt dekrypteringKontrollberegning

• Ikke-interaktiv utfordring: u = SHA-256(∥ci)

• Beregn f = (B/C)u · hEB

• Beregn d = Au · g• Beregn v = ds · ft

• Kontroller at SHA-256(v∥g∥hEB

) ≡ t

Page 59: Hvorfor stole på e-valg 2011/13?

59 © Computas AS 11.09.13

Bevisføring for korrekt dekrypteringKontrollberegning (1)

• Beregn f = (B/C)u · hEB

• f = (B/C)u · hEB

= (∏bi/∏c

i)u · h

EB

= (∏ci·h

EB

ri/∏ci)u · h

EB

= (∏hEB

ri)u · hEB

= (hEB

∑ri)u · h

EB

• Kun hvis bi ≡ c

i·h

EB

ri (korrekt dekryptering)

• d = Au · g = ∏ai

u · g = (∏gri)u · g = (g∑r

i)u · g

Page 60: Hvorfor stole på e-valg 2011/13?

60 © Computas AS 11.09.13

Bevisføring for korrekt dekrypteringKontrollberegning (2)

• f = (hEB

∑ri)u · hEB

• d = (g∑ri)u · g

• s = k – zEB

· t

• v = ds · ft

= ((g∑ri)u · g)s · ((hEB

∑ri)u · hEB

)t

= ((g∑ri)u · g)k · ((g∑ri)u · g)-zEB·t · (((gzEB)∑ri)u · gzEB)t

= ((g∑ri)u · g)k

= dk ≡ w

• Hvis v ≡ w, så SHA-256(v∥g∥hEB

) ≡ t

Page 61: Hvorfor stole på e-valg 2011/13?

61 © Computas AS 11.09.13

Korrekt dekryptering

Page 62: Hvorfor stole på e-valg 2011/13?

62 © Computas AS 11.09.13

Hvordan bevise korrekt mixing

• Problemstilling:• Hvordan vet vi at to mengder med krypterte

stemmer representerer samme innhold?• Endret rekkefølge• Rekryptering

Page 63: Hvorfor stole på e-valg 2011/13?

63 © Computas AS 11.09.13

ElGamal-rekryptering

• Kryptering av melding m:• Velg y {0, 1, …, q – 1}• Beregn e = gy

• Beregn s = hy og c = m · s• Kryptert melding: (e, c) = (gy, m · hy)

• Rekryptering av (e, c):• Velg ŷ {0, 1, …, q – 1}• Rekryptert melding:

• (ê, ĉ) = (e · gŷ, c · hŷ) = (gy+ŷ, m · hy+ŷ)

Page 64: Hvorfor stole på e-valg 2011/13?

64 © Computas AS 11.09.13

Komprimering av stemmene

• Reduserer antall bevis:

• (Ai, B

i) = ∏(a

i, b

i)

• (Ao, B

o) = ∏(â

i,b ̂

i)

Page 65: Hvorfor stole på e-valg 2011/13?

65 © Computas AS 11.09.13

Bevisføring for korrekt rekryptering

• Utfordring: u = SHA-256(Ai∥A

o∥B

i∥B

o∥g∥h

EB)

• Beregn f = (Bo/B

i)u · (A

o/A

i)

• Beregn d = hEB

u · g

• Beregn ỹ = ∑ŷi

• Velg k ℤq

• Beregn w = dk

• Beregn t = SHA-256(w∥g∥hEB

)

• Beregn s = k – ỹ · t• Bevis: (s, t)

Page 66: Hvorfor stole på e-valg 2011/13?

66 © Computas AS 11.09.13

Bevisføring for korrekt rekrypteringKontrollberegning

• Utfordring: u = SHA-256(Ai∥A

o∥B

i∥B

o∥g∥h

EB)

• Beregn f = (Bo/B

i)u · (A

o/A

i)

• Beregn d = hEB

u · g

• Beregn v = ds · ft

• Kontroller at SHA-256(v∥g∥hEB

) ≡ t

Page 67: Hvorfor stole på e-valg 2011/13?

67 © Computas AS 11.09.13

Bevisføring for korrekt rekryptering

• Bevis for at to krypterte meldinger har samme innhold• Uten å se innholdet• Uten å bruke privatnøkkelen

Page 68: Hvorfor stole på e-valg 2011/13?

68 © Computas AS 11.09.13

Fra korrekt rekryptering av én stemme til korrekt mixing

• Beviset gjelder også for en mengde stemmer:

• (Ai, B

i) = ∏∏(a

ij, b

ij)

• (Ao, B

o) = ∏∏(â

ij,b ̂

ij)

• Oppdeling av urnen i bunker• Bunkvis korrekt rekryptering• Oppdeling i bunker gjort av en auditør

Page 69: Hvorfor stole på e-valg 2011/13?

69 © Computas AS 11.09.13

Bevisføring for korrekt mixing

• Bevis for at to grupper med krypterte meldinger har samme innhold• Uten å se innholdet• Uten å bruke privatnøkkelen• Uten å vite hvilken melding fra den ene

gruppen korresponderer med hvilken melding fra den andre gruppen

Page 70: Hvorfor stole på e-valg 2011/13?

70 © Computas AS 11.09.13

Korrekt mixing

Page 71: Hvorfor stole på e-valg 2011/13?

71 © Computas AS 11.09.13

E-valgsystemet

Page 72: Hvorfor stole på e-valg 2011/13?

Hvorfor stole på e-valg 2011/2013?

— Fordi vi har verifisert det…

Page 73: Hvorfor stole på e-valg 2011/13?

73 © Computas AS 11.09.13

Praktiske utfordringer

• Life kjøring under valgnatten

Page 74: Hvorfor stole på e-valg 2011/13?

74 © Computas AS 11.09.13

Praktiske utfordringer

• Life kjøring under valgnatten• Gode, informative logger

Page 75: Hvorfor stole på e-valg 2011/13?

75 © Computas AS 11.09.13

Praktiske utfordringer

• Life kjøring under valgnatten• Gode, informative logger• Autoflushing mot resultatfilen

Page 76: Hvorfor stole på e-valg 2011/13?

76 © Computas AS 11.09.13

Praktiske utfordringer

• Life kjøring under valgnatten• Gode, informative logger• Autoflushing mot resultatfilen• Parallellisering

Page 77: Hvorfor stole på e-valg 2011/13?

77 © Computas AS 11.09.13

Praktiske utfordringer

• Life kjøring under valgnatten• Gode, informative logger• Autoflushing mot resultatfilen• Parallellisering• Minneforbruk

Page 78: Hvorfor stole på e-valg 2011/13?

78 © Computas AS 11.09.13

Praktiske utfordringer

• Life kjøring under valgnatten• Gode, informative logger• Autoflushing mot resultatfilen• Parallellisering• Minneforbruk• Håndtering av filer

Page 79: Hvorfor stole på e-valg 2011/13?

79 © Computas AS 11.09.13

Egne valg

• Operativsystem: Ubuntu 13.04

Page 80: Hvorfor stole på e-valg 2011/13?

80 © Computas AS 11.09.13

Egne valg

• Operativsystem: Ubuntu 13.04• Ikke glem Bash!

Page 81: Hvorfor stole på e-valg 2011/13?

81 © Computas AS 11.09.13

Egne valg

• Operativsystem: Ubuntu 13.04• Ikke glem Bash!

• Kommandolinje interface

Page 82: Hvorfor stole på e-valg 2011/13?

82 © Computas AS 11.09.13

http://www.slideshare.net/filipvanlaenen/hvorfor-stole-p-evalg-201113

http://goo.gl/oB2UlS

Takk for meg!

Page 83: Hvorfor stole på e-valg 2011/13?

83 © Computas AS 11.09.13

Relevante lenker

• http://www.tu.no/it/2013/09/05/feil-i-krypteringen-av-e-stemmer

• http://www.regjeringen.no/nb/dep/krd/prosjekter/ e-valg-2011-prosjektet/kildekode.html?id=645239

• https://github.com/KRD-KOMM-VL/verifikasjonsprogramvare

• http://xkcd.com/221/