PiVote Sicherheit¶
Sicherheitsanforderungen¶
- Der Inhalt der abgegebenen Stimmen soll nur dem Wähler bekannt sein.
- Jede abgegebene Stimme soll so gezählt werden, wie sie vom Wähler abgegeben wurde.
Verfeinerungen¶
Die oben genannten Anforderungen führen zu weiteren:
- Jeder Wähler soll prüfen können, ob seine Stimme gezählt wurde.
- Kein Wähler soll mehr als einmal stimmen können.
- Niemand soll eine Stimme manipulieren, erfinden oder löschen können, ausser seine eigene, falls er Stimmberechtigt ist.
Annahmen¶
Aussagen über die Sicherheit werden nur unter diesen annahmen gemacht.
- Zufall existiert.
- Diskrete Logarithmen sind schwer zu berechnen.
- RSA, AES und SHA sind nach den jeweiligen Anforderungen sicher.
- Der Computer jedes Wählers über dessen Stimme etwas ausgesagt wird, ist frei von Malware und der PiVote Client ist nicht manipuliert worden.
- Die Zertifizierungstelle stellt keine Zertifikate für nicht existierende Piraten aus.
ADDER in a nutshell¶
Um die Stimmen geheim zu halten, werden diese vor der Abgabe vom Wähler verschlüsselt. Dies geschieht mit einer homomorphen Verschlüsselung, so dass die Stimmen im verschlüsselten Zustand zusammengezählt werden können und dann nur das Resultat entschlüsselt wird.
Damit niemand den Schlüssel besitzt und damit eine Stimme entschlüsseln könnte wird der öffentliche und private Schlüssel vor jeder Abstimmung von 5 Autoritäten generiert, so dass 3 dieser Autoritäten keine Information über den privaten Schlüssel haben, 4 dieser Autoritäten aber zusammen das Resultat entschlüsseln können. Der öffentliche Schlüssel wird dabei ebenfalls generiert und publiziert.
Damit kein Wähler eine mehrfache Stimme abgeben kann muss er in Zero Knowledge beweisen, dass sein Couvert zu jeder Frage nur die erlaubte Anzahl Stimmen enthält.
Nach der Abstimmung zählt jede Autorität alle verschlüsselten Stimmen zusammen und erzeugt eine Teilentschlüsselung. Mithilfe von Teilentschlüsselungen von 4 verschiedenen Autoritäten kann das Resultat entschlüsselt werden.
Zertifikate¶
Jeder Wähler, jede Autorität und jeder Administrator des Pi-Vote Systems benötigt ein Zertifikat mit eine öffentlichen und einem geheimen Schlüssel, um sich gegenüber den anderen Teilnehmern zu Identifizieren.
Dieses Zertifikat wird von einer speziellen Zertifierungsstelle signiert, so das jeder nachprüfen kann, ob es echt ist.
Warum ist es nun sicher?¶
Dieser Abschnitt soll intuitiv Zeigen, warum das System sicher ist. Für Beweise, bitte das Paper zu ADDER lesen.
Der Inhalt der abgegebenen Stimmen soll nur dem Wähler bekannt sein¶
Jeder Wähler verschlüsselt seine Stimme mit dem öffentlichen Schlüssel der Autoritäten. Nur die 4 Autoritäten können gemeinsam eine Stimme oder das Ergebnis entschlüsseln. Sind also mindestens 2 der Autoritäten vertrauenswürdig, so wird keine Stimme bekannt.
Jeder Wähler soll prüfen können, ob seine Stimme gezählt wurde¶
Jeder Wähler kann die gesamte Abstimmung selbst auszählen und prüfen, ob seine Stimme dabei ist. Er kann auch prüfen, ob die Autoritäten die Stimmen richtig zusammengezählt haben.
Kein Wähler soll mehr als einmal stimmen können¶
Sowohl die Autoritäten als auch jeder auszählende Wähler wird jede Stimme nach der ersten vom gleichen Wähler ignorieren.
Niemand soll eine Stimme manipulieren, erfinden oder löschen können,¶
ausser seine eigene, falls er Stimmberechtigt ist
Alle stimmen sind vom Wähler signiert. Somit würde jede Manipulation zur ungültigkeit der Stimme führen. Nur die Zertifizierungstelle kann ein Zertifikat für einen neuen Wähler ausstellen.