Ich wusste es doch, das ich eine Lösung des Liquid Feedback Problems, das man nur offen Abstimmen kann, schon vor langer langer Zeit gesehen habe. Nur Leider wusste ich nicht mehr wo - bis heute.
Ein Mathematiker mit Namen David Chaum entwickelte ende der 1980 Jahre ein blind signing Verfahren, genau für den Zweck einer geheimen Wahl, die sich aber nachzählen lässt und jeder Prüfen kann, das seine Stimme auch gezählt wurde! Es handelt sich also nicht um eine der berüchtigten Wahlcomputerlösungen, sondern um echte Mathematik. Da das Verfahren aber damals definitiv keine Resonanz fand, wurde es für die Nutzung als elektronisches Zahlungsmittel weiterentwickelt. Da die Firma aber insolvent wurde, ist das Verfahren ende der 1990 Jahre eingestellt worden und durch nicht Anonyme Verfahren ersetzt worden.
Wie ihr Ja sicher alle Wisst funktioniert das RSA publik Key System mit den folgenden beiden Gleichungen:
Wobei K der Klartext, C das Chiffre, (N,e) der öffentliche Schlüssel zum Zuschließen ist während (N,d) der geheime Schlüssel ist, mit dem man die Inhalt zurückgewinnen kann. Wer nicht weiß wie diese Schlüssel zusammenhängen und wieso sie Funktionieren, der kann das auf der Wikipedia nachlesen, aus der ich die beiden oberen Gleichungen zitiert habe.
So jetzt müssen wir ein Wenig Gruppentheorie machen. Z/nZ, also alles Modulu N, ist ein Ring. Es gelten also die normalen Rechenregeln wie das Kommutativgesetz a*b=b*a und das Assoziativgesetz (a*b)*c=a*(b*c).
Als nächstes zeigen für alle e Exponent element aus N gilt (a*b)^e = a^e*b^e. Das geht durch vollständige Induktion. für e=1 ist das Trivial. sei also (a*b)^e=a^e*b^e richtig. Dann gilt (a*b)^(e+1) = (a*b)^e*(a*b) = a^e*b^e*a*b = a^e*a*b^e*b = a^(e+1)*b^(e+1) womit die Sache für alle e aus der Menge der natürlichen Zahlen bewiesen ist.
Da das Modulu N rechnen ein Homomorphismus von Z auf Z/nZ ist, gilt das Ganze auch Modulu N also (a*b)^e Mod N = ((a^e Mod N) * (b^e Mod N)) Mod N Das ist der Entscheidende Schlüssel zum geheimen Abstimmen, heißt es doch nicht mehr und nicht weniger als das man das Produkt zweier zahlen einzeln oder zusammen durch den RSA prügeln kann.
Wir ermitteln also zwei Zahlen p und q mit p*q=1 Mod N - jetzt nehmen wir p und Verschlüsseln p mit dem Öffentlichen Schlüssel des Wahleiters und erhalten C(p). Dann nehmen wir unsere Stimme s und ermitteln (Z*100+s)*C(p), wobei Z eine Zufallszahl ist, an der wir später festellen können ob unsere Stimme in der Liste der Stimmen auftaucht. Diese Zahl legen wir dem Wahleiter zum Signieren vor indem wir den Antrag mit unserem geheimen Schlüssel im Perso oder Piraten PKS unterzeichnen. Der Wahleiter wird sie unterzeichnen, also K((Z*100+s)*C(p)) berechnen. Da der Wahleiter weder p,C(p) noch q kennt, kann er weder die Zufallszahl noch unsere Stimme erkennen. Das einzige was er kann, ist einen Hacken in der Datenbank machen, das das Subjeckt sein Stimmrecht gezogen hat.
Der Wähler berechnet nun q*K((Z*100+s)*C(p)) = q*K(Z*100+s)*K(C(p)) = K(Z*100+s)*q*p = K(Z*100+s). Heureka, der Wahleiter hat was signiert, ohne zu wissen was er da eigendlich unterschieben hat. Unser Wähler verschlüsselt jetzt mit dem öffentlichen Schlüssel des Wahllokals und reicht seine Stimme ein { K(Z*100+s), Z, s } . Dies muss so erfolgen das kein Logfile der IP's angelegt wird - also zum Beispiel über Freenet oder Tor.
Nach Ablauf der Wahl wird der Private Schlüssel des Wahlleiters vernichtet, dann das Siegel der Urne gebrochen, in dem der Schüssel des Wahllokals genutzt wird, die Stimmen zu entschlüsseln. Ergebnis der Abstimmung ist eine Liste von Stimmen, in der jeder nachsehen kann ob seine Stimme enthalten ist. Jeder kann Nachzählen und jeder kann sich vergewissern, das die Stimmen "Amtlich sind, Unter Nutzung des öffentlichen Schlüssel des Wahlleiters.
Bei Delegationen stammt die Zufallszahl von Stimmgeber, so das dieser sich vergewissern kann, das seine Stimme eingegangen ist. Er kann dann damit nachvollziehen, wie sein Delegierter Abgestimmt hat. Wem das nicht passt muss Delegationen auf seine Person ausschließen. Wenn eine Abstimmung Geheim sein soll, dann muss jeder selber ran.
Ein korrupter Wahleiter könnte jetzt noch versuchen, zusätzliche Stimmen in Umlauf zu bringen. Das aber klappt auch bei Wahlen auf Papier - jedenfalls bis zur Anzahl der Wahlberechtigten. Noch ein Grund mehr, sich an Wahlen, egal ob on- oder offline, zu beteiligen!
Nachtrag 10.3: Antrag auf Nutzung des Verfahren jetzt auch auf Liquid Feedback eingestellt.
Nachtrag 19.5: Wenn jeder Wähler dem Wahlleiter ein signierten Antrag auf Wahlteilnahme übersendet, so kann der Wahlleiter in keinem Fall eine Stimme erfinden, weil er ja für jede existierende Stimme, d.h. Lösung der Gleichung seines öffentlichen Schlüssels, auch eine Signatur eines Wahlberechtigten vorweisen können muß, die wiederum ihrerseits durch das Zertifikat des CA und der darin enthaltenen Signatur als Beglaubigung der Identität verifiziert werden kann.
7 Kommentare:
Ich glaube was der gute Herr meint ist dies hier: http://ow.ly/4bBu0 - Das funktioniert aber NICHT im Internet!
Danke, das klingt in der Tat sehr interessant. Allerdings dürfte die Komplexität die Teilnahmehürden erheblich erhöhen.
@Sebastian, aber wieso soll das nicht im Internet funktionieren?
Ich möchte die exklusiven Marketingrechte für dieses Verfahren erwerben. Wer hat, was kostet?
Sebastian liegt völlig falsch - das Verfahren wurde zusammen im Dunstkies mit https und rsa für Wahlen entworfen und dann für Bargeld um genutzt.
Das Prinzip ist, daß die RSA Verschlüsselung des Produkts zweier Zahlen gleich dem Produkt der Verschlüsselung der beiden Zahlen ist, Das kann ausgenutzt werden, um den Wahleiter meine Stimmabgabe Digital Signieren zu lassen, ohne das er mitbekommt, was ich ihn eigendlich Unterscheiben lasse.
So erhält jeder genau einen Stimmzettel, den er mit dem öffentlichen Schlüssel der Wahlurne verschlüsselt. Da die Stimme über TOR eingereicht wird, kann keiner die Stimmabgabe verfolgen. Nach dem Voting wird der Private schlüssel des Wahlleiters vernichtet und der Schlüssel der Urne nähmst Inhalt veröffentlicht.
So kann nachgezählt werden. Jeder kann nachsehen das das seine Stimme drin ist, wenn man eine Zufallszahl mit auf den Stimmzettel schreibt. Und das die Stimmen von Bürgern stammen, kann mit dem öffentlichen Schlüssel des Wahleiters nach geprüft werden. Wenn die Apps bei nichtausübung des Wahlrechts automatisch ein Enthalten erzeugen, kann noch nicht mal ein Korrupter Wahlleiter falsche Stimmen erzeugen, weil das Auffallen würde, wenn es mehr stimmen gibt als Wahlberechtigte.
Crackpille, eine in Liquid Feedback eingebundene Java Applikation, deren Quellcode, Binärcode oder MD5 des Binärcodes veröffentlicht ist, wären in der Handhabung so, das es noch nicht mal auffällt. (Den Torclient muss man da mit einbauen, damit man da nicht Konfigurieren muss.
Die kann auch standardmäßig schon mal eine Verifikation durchführen- was explizite Überprüfungen mit anderer Software nicht ausschließt.
Michel, sorry die Patentrecht hat besagter David Chaum und die müssten schon abgelaufen sein oder bis zum heißen Einsatz schon abgelaufen sein. Und im übrigen habe ich immer nur von US Patenten gelesen, weil damals bei uns Algorithmen als "Anweisungen an Menschlichen Geist" grundsätzlich nicht patentfähig waren.
Da kann man mal wieder sehen, was für einem Schaden Lobbyarbeit anrichtet (Softwarepatente)
Danke für die Antwort. Ich kenn mich in der Materie noch wenig aus, würde eine Diskussion über die Promotion dieses Verfahren dazu nutzen wollen tiefer einzudringen. Wenn du sagst, dass es nur in Amerika patentiert war / ist, heisst das, dass das Verfahren in Europa frei nutzbar ist, oder garnicht? Wenn das Patent abläuft, heisst das, dass es dann frei nutzbar ist, oder gibt's dann Folgelizenzen? Ich habe ein paar Gedanken zu Anwendungen und damit verbundenen Promotion, die allerdings einen gewissen Schutz zur exklusiven (territorial oder sektorial begrenzt) voraussetzen. Gerne würd ich mich mit dir näher darüber besprechen. In Berlin, in Heidersheim? LG, @MiMaiMix
Kommentar veröffentlichen