Mit weissem Rauschen öffentlich geheim abstimmen

Wenn du einen Baum verstecken willst, dann zeige den ganzen Wald.

In den letzten Jahren wurde viel zu E-Voting geforscht und diskutiert. In der Schweiz stehen die von den Kantonen eingeführten elektronischen Abstimmungsverfahren unter Kritik, weil sie nicht sicher sind und/oder ihr Quellcode nicht bekannt ist. Im Gegensatz zum schriftlichen Verfahren fordert das elektronische Verfahren ein gewisses Vertrauen in eine Blackbox, die von den meisten Stimmbürger/innen nicht verstanden wird, wenn sie überhaupt Zugang haben. Dieses schadet der Akzeptanz des Abstimmungsresultates und verhindert auch bis anhin einen Einsatz von E-Voting, der über einen kleinen Kreis von Auslandschweizer/innen hinausgeht.

Der nachfolgende Artikel schlägt ein Konzept für ein elektronisches Abstimmungsverfahren vor, das sowohl von allen Stimmbürger/innen einfach nachgeprüft werden kann wie auch das Stimmgeheimnis wahrt.

Die Sicherheit auf dem Internet ist ein regelmässiges Thema in den Medien. Die Informationstechnologie ist unterdessen so komplex, dass ständig neue Sicherheitslücken auftauchen, die mit Softwareupdates wieder korrigiert werden müssen. Trotzdem haben die meisten Leute Vertrauen in die Protokolle und Programme, sonst würden sie kein Internet-Banking betreiben oder nicht mit der Kreditkarte online einkaufen. Die Authentifizierung und die Nachprüfbarkeit der
elektronischen Finanztransaktionen gilt als genug sicher.

Für Abstimmungen gilt jedoch eine zusätzliche Herausforderung: Die Stimme muss nicht nur authentisch und verifizierbar sein, sondern auch geheim. Kriterium für die Brauchbarkeit vom E-Voting ist deshalb, dass die Stimme vom Abstimmen bis zum Auszählen nachverfolgbar ist, ohne dass man herausfinden kann, wer wie abgestimmt hat (End-to-end auditable voting systems, https://en.m.wikipedia.org/wiki/End-to-end_auditable_voting_systems).

Wir stellen die folgenden Ansprüche:
(1) Das Wahlsystem stellt sicher, dass nur Leute abstimmen, die auch legitimiert sind. Auf diesen Punkt gehen wir nicht ein, da dieser schon beim Internet-Banking gelöst wurde: Stimmbürger/innen erhalten zum Beispiel auf Papierweg einen Benutzernamen und ein Passwort.
(2) Der/die Stimmbürger/in kann selber nachprüfen, ob ihre/seine Stimme gezählt wurde.
(3) Alle Stimmbürger/innen können nachprüfen, dass nur Berechtigte angestimmt haben, und können selber das Abstimmungsresultat nachprüfen.
(4) Niemand kann nachprüfen, wie eine/r einzelne/r Stimmbürger/in abgestimmt hat.
(5) Niemand kann nachträglich beweisen, wie er/sie abgestimmt hat. Dies schützt vor Erpressung und gekauften Stimmen.

Das Konzept sieht vor, dass auf einem Website alle Stimmen unmittelbar nach der Stimmabgabe auf einem Schwarzen Brett publiziert werden. Dies kann realisiert werden in Form einer riesigen Tabelle oder durch eine leicht suchbare Datenbank, da die Tabelle doch relativ schnell umfangreich wird. Man kann auch die Tabelle einfach herunterladen.

Weiter ist vorgesehen, die Liste aller Wahlberechtigten aufzuführen, um Kriterium (3) zu erfüllen, gleich ob sie abgestimmt haben oder nicht. Dieses Abstimmungsverfahren gewährt deshalb kein Stimmbeteiligungsgeheimnis. Die Diskussion um das Stimmbeteiligungsgeheimnis wurde in der Schweiz nicht geführt. In den USA, wo diese geführt wurde, ist die Transparenz dazu ausdrücklich erwünscht: zu wissen, dass der Nachbar abgestimmt hat, gehört zur Nachprüfbarkeit des Verfahrens.

Diese Tabelle würde dann so aussehen:

Alice Stimme
Bob Stimme
Carol -
Dan Stimme
Eve Stimme
Frank Stimme

Man sieht somit, wer abgestimmt hat und die Stimme daneben. Diese Stimme muss aber geheim sein. Es gibt Verfahren, die vorschlagen, die Stimme verschlüsseln. Es gibt Verschlüsselungsverfahren wie El Gamal, die es erlauben, mit verschlüsselten Daten zu rechnen (Siehe z.B. http://cryptodrm.engr.uconn.edu/adder/). Diese Verfahren beinhaltet jedoch komplexe kryptographische Methoden, die das Vertrauen der Stimmberechtigten abverlangen, ohne dass diese es direkt nachvollziehen können. Zudem haben nur Parteienvertreter Zugang zur Entschlüsselung der Resultate.

Das vorgeschlagene Verfahren erlaubt es allen Beobachter/inne/n, das Abstimmungsresultat direkt nachzurechnen. Nachfolgend wird es vereinfacht dargestellt:

Der elektronische Abstimmungszettel besteht aus 10 Checkboxes, 5 links und 5 rechts. Wer ja stimmen will, kreuzt eines der Checkboxes links an, wer nein stimmen will, kreuzt eines der Checkboxes rechts an. (Der Einfachheit nehmen wir an, dass Enthaltung nicht möglich ist, sonst braucht es fünf zusätzliche Checkboxes. Auch Wahlen wären möglich mit 5 Checkboxes pro Kandidaten.)

Wenn die Stimme abgegeben ist, kreuzt das Programm die restlichen Checkboxes nach Zufall mit einer Wahrscheinlichkeit von 0.5 an, und das Resultat wird als Stimme publiziert.

Stimmzettel leer: OOOOO OOOOO
Alice stimmt ja, kreuzt 2. Kästchen an: OXOOO OOOOO
Programm kreuzt per Zufall weitere an und publiziert: Alice XXOOO XXOOX
Bob stimmt nein, kreuzt 19. Kästchen an: OOOOO OOOOX
Programm kreuzt per Zufall weitere an und publiziert: Bob XOXXO XOOOX
Carol stimmt nicht, Dan ja (5), Eve ja (1), Frank nein (10), Gina ja (4)

Das schwarze Brett zeigt an:
Alice XXOOX OXOOX
Bob XOXXO XXOOX
Carol -
Dan XXXOX OXOXO
Eve XXOOX OXOXO
Frank OXOXO XXXOX
Gina OXOXO OXOXX

Alice kann nachprüfen, dass ihre Stimme gezählt wird. Sie sieht das X an zweiter Stelle. Sie kann aber nicht beweisen, dass sie ja gestimmt hat, weil es auf beiden Seiten X hat. Niemand kann nachprüfen, wie Alice gestimmt. Die einzelne Stimme ist mit weissem Rauschen überdeckt.

Jedermann kann das Abstimmungsresultat durch einfaches Zusammenzählen der Kreuze ausrechnen.

Wir haben 5.5 Kreuze pro Stimme, bei 6 Stimmen sind das 33. 6 Kreuze sind von den Abstimmenden, 27 vom Zufallsgenerator.

Wenn ja gestimmt wurde, ist der Erwartungswert der linken Hälfte
E1 = 1 + 4/2 = 3.
Wenn nein gestimmt wurde, ist der Erwartungswert der linken Hälfte
E0 = 5/2 = 2.5.
Der Erwartungswert für beide Hälften zusammen ist 5.5.

Wenn X die Anzahl der Kreuze links ist und J die Anzahl der Ja-Stimmen und W die Zahl der Abstimmenden, so gilt
X = J*E1 + (W-J)*E0
somit
J = (X - E0*W)/(E1-E0)

In unserem Fall J = (X - 2.5*6)/0.5 = 2*X - 30

Die Anzahl der Kreuze links ist 17, somit die Zahl der Ja-Stimmen 4.
Die Berechnung der Nein-Stimmen berechnet sich nach derselben Formel: 16 Kreuze ergeben 2 Nein-Stimmen.

Hier kann (zu Recht) eingewendet werden, dass das vereinfachte Beispiel konstruiert ist, damit es aufgeht. Mit dem Zufallsgenerator gibt es zwei Risiken:

  • Erstens kann der Zufall eintreten, dass jemand ja stimmt, aber auf der rechten Seite kein einziges Kästchen vom Zufallsgenerator angekreuzt wird. Bei Joe XOXXO OOOOO wäre das Stimmgeheimnis verletzt, da jedermann sieht, dass er Ja gestimmt hat.
  • Zweitens trägt jede Stimme mit den gleichen Gewicht zum Resultat bei, aber nur im Durchschnitt. Das Resultat hat eine gewisse Streuung, und dies führt zu einer gewissen Ungenauigkeit beim Resultat. Dies ist an sich nicht schockierend, sind doch Ungenauigkeiten beim schriftlichen Verfahren dokumentiert und auch akzeptiert. Darum wird bei einem knappen Resultat nachgezählt.

Der Vorteil beim vorliegenden Verfahren ist, dass beide Risiken berechnet und eingegrenzt werden können, indem man die Anzahl der Kästchen erhöht.

Der Zufallsgenerator unterliegt einer Binominalverteilung. Die Wahrscheinlichkeit, dass kein Kästchen angekreuzt wird, ist bei 5 Kästchen 0.5^5 = 3%, allgemein 0.5^n.
Wenn wir 4 Millionen Stimmberechtigte haben und dieser Fall nur einmal alle 1000 Abstimmungen eintreffen sollte, dann braucht es statt 5 je 32 Kästchen. Das erste Risiko wäre somit eingegrenzt.

Für das zweite Risiko stellen wir den Anspruch, dass in 99 von 100 Abstimmungen der Fehler kleiner als 1% ist. Die Streuung der Binominalverteilung ist sqrt(n)/2, somit nimmt die Standartabweichung des Durchschnitts proportional zur Wurzel der Anzahl von Zufallskreuzen ab: 1/(sqrt(n)*2). Das Vertrauensintervall ist 99% bei etwa der dreifachen Standartabweichung. Wir berechnen somit 0.01 3/(sqrt(n)*2). Dies gilt für n>22500, und da jede Stimme links 32 Kästchen hat, ist dieser Anspruch ab 700 Stimmenden erfüllt.

Mit 32 Kästchen gilt folgende Berechnung der Ja-Stimmen:
E1 = 1 + 31/2 = 16.5
E0 = 16
J = ( X - W*16 ) / 0.5 = 2*X - 32*W

Der Zufallsgenerator muss eine hinreichende Zufälligkeit haben. Es gibt keine echten Zufallsgeneratoren in Software, aber da sich der Zufallsgenerator auf beide Hälften auswirkt, genügt es, dass er Mittelwert und Streuung garantiert und vom Programm so entkoppelt ist, dass er nicht weiss, auf welche Hälfte er sich anwendet. Man kann sich auch vorstellen, dass der Zufallsgenerator eine öffentliche Schnittstelle hat, damit jedermann ihn nachprüfen kann.

Das vorliegende Verfahren eignet sich für elektronische Abstimmungen, die sowohl geheim wie auch durch Dritte nachprüfbar sind. Es ist ausreichend genau für Abstimmungen mit mehr als 700 Stimmenden. Es benötigt keine Blackbox und legt die Stimmen allen offen, nicht nur einigen wenigen Mitgliedern des Wahlbüros. Dies hat einen wichtigen Vorteil. Wenn jede Stimme sofort publiziert wird, würden Manipulationen bemerkt. Das Verfahren kann mit relativ wenig Aufwand Open Source programmiert werden, und die einzigen geheimen Schlüssel sind diejenigen der Stimmberechtigten.

6 Kommentare


Diskutieren Sie mit!

Bei Politnetz legen wir Wert auf einen konstruktiven Austausch. Bitte bleiben Sie beim Thema und respektieren Sie andere Personen. Lesen Sie unsere Diskussionsregeln.


Mehr zum Thema «Abstimmungen»

zurück zum Seitenanfang