h1. PiVote Sicherheit h1. 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. h2. 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. h1. Annahmen Aussagen über die Sicherheit werden nur unter diesen annahmen gemacht. * Zufall existiert. * "Diskrete Logarithmen":http://en.wikipedia.org/wiki/Discrete_logarithm sind schwer zu berechnen. * "RSA":http://en.wikipedia.org/wiki/RSA, "AES":http://en.wikipedia.org/wiki/Advanced_Encryption_Standard und "SHA":http://en.wikipedia.org/wiki/Secure_Hash_Algorithm 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. h1. 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":http://en.wikipedia.org/wiki/Homomorphic_encryption, 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":http://en.wikipedia.org/wiki/Zero-knowledge_proof 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. h1. 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. h1. Warum ist es nun sicher? Dieser Abschnitt soll intuitiv Zeigen, warum das System sicher ist. Für Beweise, bitte das Paper zu ADDER lesen. h2. 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. h2. 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. h2. 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. h2. 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.