DE60114833T2 - Überprüfbare, geheime mischung von verschlüsselten daten wie z. b. elgamal-verschlüsselte daten für gesicherte mehrinstanzwahlen - Google Patents

Überprüfbare, geheime mischung von verschlüsselten daten wie z. b. elgamal-verschlüsselte daten für gesicherte mehrinstanzwahlen Download PDF

Info

Publication number
DE60114833T2
DE60114833T2 DE60114833T DE60114833T DE60114833T2 DE 60114833 T2 DE60114833 T2 DE 60114833T2 DE 60114833 T DE60114833 T DE 60114833T DE 60114833 T DE60114833 T DE 60114833T DE 60114833 T2 DE60114833 T2 DE 60114833T2
Authority
DE
Germany
Prior art keywords
computer
sequence
elements
proof
mixed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60114833T
Other languages
English (en)
Other versions
DE60114833D1 (de
Inventor
Andrew C. Neff
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dategrity Corp
Original Assignee
Dategrity Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dategrity Corp filed Critical Dategrity Corp
Publication of DE60114833D1 publication Critical patent/DE60114833D1/de
Application granted granted Critical
Publication of DE60114833T2 publication Critical patent/DE60114833T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Description

  • Die Erfindung betrifft allgemein die Verschlüsselung und insbesondere die elektronische Verschlüsselung, wie sie bei Wählverfahren zum Einsatz kommt.
  • Der Begriff des Mischens einer Ansammlung von Objekten, Einträgen oder Zeichen ist einfach und intuitiv, und verwertbare Beispiele hierfür treten bei verschiedenen alltäglichen Gegebenheiten auf. Ein Spieler in einem Casino ist sich darüber im Klaren, dass bei Aufnahme der an ihn ausgeteilten Karten jede dieser Karten einen von 52 eindeutigen Werten aufweist, und dass kein anderer am Spieltisch Duplikate der an ihn ausgeteilten Karten in Händen hält. Er hat jedoch keinerlei Kenntnis darüber, wie die Karten verteilt sind, und zwar auch dann, wenn er die genaue Reihenfolge der Karten ermittelt hat, bevor sie vom Croupier gemischt wurden.
  • Im Zusammenhang mit elektronischen Daten ist das Problem, eine zufällige und dennoch prüfbare Permutation einer eingegebenen Sequenz beziehungsweise Folge in eben dieser Art zu erhalten, überraschend schwierig. Das Problem besteht darin, dass die Daten selbst entweder immer für die Aufsicht sichtbar sind oder eben nicht. Sind sie sichtbar, so ist eine durch die Aufsicht oder einen anderen Beobachter erfolgende Wiederherstellung einer Entsprechung zwischen den eingegebenen und den ausgegebenen Einträgen trivial. Sind sie hingegen nicht sichtbar, so müssen die eingegebenen und die ausgegebenen Einträge Darstellungen derselben zugrundeliegenden Daten sein. Ist das Ausgegebene jedoch derart verschieden (das heißt derart gut verschlüsselt), dass die Aufsicht die Entsprechung nicht wiederherstellen kann, so hat die Aufsicht keine Möglichkeit nachzuweisen, dass der Mischende die zugrundeliegenden Daten nicht während des Mischvorgangs verändert hat.
  • Ein Großteil der nachfolgenden Beschreibung widmet sich einem effizienten (linearen) Verfahren zur Lösung dieses Problems in einem wichtigen Zusammenhang, nämlich in demjenigen EIGamal-verschlüsselter Daten. Um die Ausführungen so klar und schlüssig wie möglich zu machen, betrifft ein Großteil der nachfolgenden Beschreibung explizit denjenigen Sonderfall, in dem Operationen in Zp*, der multiplikativen Gruppe von Einheiten modulo eine große Primzahl p, vorgenommen werden. Die einzigen verwendeten Eigenschaften der zugrundeliegenden (multiplikativen) Gruppe bestehen darin, dass das einschlägige EIGamal-Verschlüsselungssystem sicher ist, und dass das Chaum-Pedersen-Protokoll für die Beziehung logg X = logh Y = u keine Information über den geheimen Exponenten u offenlegt (siehe hierzu den von D. Chaum verfassten Beitrag „Zero-knowledge undeniable signatures", veröffentlicht bei Advances in Cryptology – EUROCRYPT '90, Lecture Notes in Computer Science, Band 473, Springer-Verlag 1991, sowie den von D. Chaum und T. P. Pedersen verfassten Beitrag „Wallet Databases with Oberservers", veröffentlicht bei Advances in Cryptology – CRYPTO '92, Band 740, Lecture Notes in Computer Science, Seiten 89 bis 105, Berlin, 1993, Springer-Verlag). Bei einem Ausführungsbeispiel, nämlich einem universell prüfbaren Wählprotokoll mit vielen bevollmächtigen Einrichtungen (multi-authority election protocol) ist der Prüfer über die Fiat-Shamir-Heuristik implementiert (siehe hierzu den von A. Fiat und A. Shamir verfassten Beitrag „How to prove yourself: Practical solutions to identification and signature problems", veröffentlicht bei Advances in Cryptology – CRYPTO '86, Lecture Notes in Computer Science, Seiten 186 bis 194, Springer-Verlag, New York, 1987), weshalb es in diesem Falle ausreichend ist, wenn das Protokoll ein Zero-Knowledge-Protokoll hinsichtlich eines ernsthaften Prüfers ist (siehe hierzu den von R. Cramer, R. Gennaro und B. Schoenmaker verfassten Beitrag „A secure and optimally efficient mulit-authority election scheme", veröffentlicht bei Advances in Cryptology – EUROCRYPT '97, Lecture Notes in Computer Science, Springer-Verlag, 1997). Aus diesem Grunde ist das Mischungsprotokoll (shuffle protocol) auch dann nutzbringend, wenn das EIGamal-Verschlüsselungssystem über anderen Gruppen, so beispielsweise über elliptischen Kurven, implementiert ist. Die allgemeinen Bool'schen Nachweistechniken (siehe hierzu den von R. Cramer, I. Damgrd, B. Schoenmakers verfassten Beitrag „Proofs of partial knowledge and simplified design of witness hiding protocols", veröffentlicht bei Advances in Cryptology – CRYPTO '94, Lecture Notes in Computer Science, Seiten 174 bis 187, Springer-Verlag, Berlin, 1994) können zudem dazu verwendet werden, einen Nachweis mit denselben Eigenschaften zu erstellen, wobei die Größe (Komplexität) des sich ergebenden Nachweises quadratisch oder, noch schlimmer, von der Größenordnung der eingegebenen Folge ist.
  • Der von Cramer et al. verfasste Beitrag „A Secure and Optimally Efficient Multi-Authority Election Scheme", veröffentlicht bei European Transactions on Telecommunications, Eurel Publication, Mailand, IT, Band 8, Nr. 5, Seiten 481 bis 490, beschreibt ein geheimes Stimmzettelwahlverfahren mit mehreren bevollmächtigten Einrichtungen (multi-authority), bei dem Geheimhaltung, universelle Prüfbarkeit und Unempfindlichkeit gegenüber Eingriffen sichergestellt sind. Ein Wähler gibt eine einzelne verschlüsselte Nachricht ab, die mit einem kompakten Nachweis einhergeht, dass eine gültige Stimme vorliegt.
  • Die Druckschrift EP-A-0 743 620 beschreibt ein sicheres nachweisscheinfreies elektronisches Wählsystem. Ein Stimmenerzeugungszentrum erzeugt eine Auswahl an Stimmen für jeden Wähler oder Stimmwähler. Die Stimmen werden verschlüsselt, gemischt und an einen Stimmenwähler zusammen mit Informationen darüber übertragen, wie die Stimmen gemischt worden sind, wobei die Übertragung nicht ausspioniert werden kann.
  • Die nachstehend beschriebenen Protokolle und Verfahren bieten auch zahlreiche Vorteile gegenüber dem Cut-and-Choose-Verfahren (siehe hierzu den von K. Sako und J. Kilian verfassten Beitrag „Receipt-free mix-type voting booth – A practical solution to the implementation of a voting booth", veröffentlicht bei Advances in Cryptology – EUROCRYPT '95, Lecture Notes in Computer Science, Springer-Verlag, 1995). Bei diesem Ansatz ist die Größe des Nachweises von der Wahrscheinlichkeit eines betrügenden Nachweisenden abhängig, was für alle Teilnehmer gilt. Beim zugehörigen Mischungsprotokoll ist diese Betrugswahrscheinlichkeit gleich k/q, wobei k die Anzahl der zu mischenden Elemente und q die Größe der Untergruppe von Zp* ist, in der die Elemente verschlüsselt sind. Obwohl auf die Größe des Nachweises in der Handreichung von K. Sako nicht eingegangen wird, ist davon auszugehen, dass, um eine ähnlich niedrige Betrugswahrscheinlichkeit zu erhalten, die Größe notwendigerweise um Größenordnungen größer als bei dem hier angeführten Nachweis ist (Ist darüber hinaus das Protokoll nach K. Sako nichtinteraktiv implementiert, so müsste die Betrugswahrscheinlichkeit überaus klein gewählt werden, da ein böswilliger Teilnehmer umfangreiche Offline-Berechnungen vornehmen könnte, um mittels einer alle Möglichkeiten ausschöpfenden Suche einen falschen Nachweis zu erzeugen. Dies könnte natürlich bei den beschriebenen Protokollen der Fall sein, wobei jedoch die Wahrscheinlichkeit k/q für alle in der Praxis auftretenden Werte von k und q mit Sicherheit vernachlässigbar ist).
  • Der Vorteil des hier vorgestellten Verfahrens tritt sogar noch deutlicher hervor, wenn es im Zusammenhang mit dem sich ergebenden universell prüfbaren Wahlprotokoll steht. Nach K. Sako muss jeder Wähler nacheinander mit jedem „Zählzentrum" in Austausch treten, bevor er seine Stimme tatsächlich abgibt. Vor diesem Hintergrund ist es unwahrscheinlich, dass in naher Zukunft eine brauchbare Implementierung für umfangreiche im öffentlichen Bereich stattfindende Wahlen erstellt werden kann. Im Gegensatz hierzu ist bei den nachstehend beschriebenen Protokollen die Teilnahme bevollmächtigter Einrich tungen (außer vielleicht bei der Erstellung der grundsätzlichen Wahlparameter) auf die Endphase der Wahl konzentriert, wo eine Tabellierung stattfindet.
  • Diese interessante Eigenschaft ist auch in dem eleganten homomorphen Wahlprotokoll zu finden, das in der Handreichung von R. Cramer, R. Gennaro und B. Schoenmakers aufgeführt ist. Dieses Protokoll kann jedoch nur bei Stimmzetteln zum Einsatz kommen, auf denen die Fragen vom einfachen Typ „Wähle (höchstens) m aus n" sind. Dies schließt „Write-in"-Vorgänge genauso wie „proportional-type"-Fragen aus, wo vom Wähler erwartet wird, dass er Antworten in einer von ihm bevorzugten Reihenfolge gibt, und die Fragen entsprechend dieser Präferenz tabelliert werden. Einige weniger bedeutende Nachteile des Verfahrens von R. Cramer, R. Gennaro und B. Schoenmakers betreffen die Tatsache, dass die Größe der Stimmdaten beträchtlich zunimmt, und dass ein Wählergültigkeitsnachweis von Nöten ist. Dieser Nachweis erhöht die Größe der Stimmdaten um etwa eine Größenordnung und ist mit Blick auf die Praxis nicht attraktiv, da ein Spezialzweckcode benötigt wird, der auf dem Computer des Wählers läuft.
  • Das nachstehend beschriebene Protokoll besteht in Gänze aus einer Abfolge von Chaum-Pedersen-Nachweisen und elementaren arithmetischen Operationen. Seine Implementierung ist daher einfach.
  • 1 ist ein Blockdiagramm, das eine geeignete Umgebung zur Implementierung von Ausführungsbeispielen der vorliegenden Erfindung darstellt.
  • 2 ist ein schematisches Diagramm, das eine einfache Implementierung eines hier in Rede stehenden Mischungsprotokolls darstellt, wie es bei einem einfachen Stimmzettel mit drei Wählern und drei Mischungen zum Einsatz kommt.
  • 3 ist ein Flussdiagramm, das ein Protokoll für einen Nachweis der skalierten iterativen logarithmischen Multiplikation (scaled iterative logarithmic multiplication) darstellt.
  • 4 ist ein Flussdiagramm, das ein einfaches Mischungsprotokoll darstellt, bei dem der Mischende den Verschlüsselungsexponenten kennt.
  • 5 ist ein Flussdiagramm, das ein allgemeines Mischungsprotokoll darstellt, bei dem der Mischende den Verschlüsselungsexponenten nicht kennt.
  • 6 ist ein Flussdiagramm, das eine Routine zur Verteilung anonymer Zertifikate darstellt.
  • 7 ist ein Flussdiagramm, das ein alternatives Ausführungsbeispiel der in 6 gezeigten Routine zur Verteilung anonymer Zertifikate darstellt.
  • In der Zeichnung bezeichnen identische Bezugszeichen identische oder im Wesentlichen ähnliche Elemente oder Vorgänge. Um eine einfache Identifikation eines bestimmten Elementes oder Vorganges in der Diskussion zu ermöglichen, bezieht sich die höchstwertige Ziffer oder beziehen sich die höchstwertigen Ziffern auf die Nummer der Figur, in der das Element erstmalig aufgeführt ist (So wird beispielsweise das Element 204 erstmalig im Zusammenhang mit 2 genannt und erläutert).
  • Die den Text gliedernden Überschriften sind lediglich aus Gründen der Übersichtlichkeit angegeben und betreffen nicht notwendigerweise den Schutzumfang oder die Bedeutung der beanspruchten Erfindung.
  • 1. Einleitung
  • Nachstehend wird im Einzelnen ein Verschlüsselungsprotokoll zum prüfbaren Mischen einer Folge von Elementen beschrieben, so beispielsweise einer eingegebenen Folge öffentlicher Schlüssel in discrete-log-Form oder k eingegebenen EIGamal-Verschlüsselungen, was beispielsweise bei einem sicheren, universell prüfbaren Multi-Authority-Wahlverfahren Anwendung findet. Für den Fall von k eingegebenen EIGamal-Verschlüsselungen ist die Ausgabe der Mischungsoperation eine andere Folge von k EIGamal-Verschlüsselungen, von welchen jede eine Neuverschlüsselung (das heißt ein EIGamal-Paar, das genau denselben Klartext verschlüsselt) genau einer der eingegebenen Verschlüsselungen darstellt, wobei jedoch die Reihenfolge der Elemente an der Ausgabe geheim gehalten wird. Obwohl es für den „Mischenden" (der die einzusetzende Permutation der Elemente und die zu verwendenden Schlüssel der Verschlüsselung wählt) eine triviale Angelegenheit ist, die Ausgabe auf Grundlage der Eingabe zu berechnen, ist die Konzeption wichtig, da bei ihr ein Richtigkeitsnachweis linearer Größe für die ausgegebene Folge (das heißt ein Nachweis in der hier beanspruchten Form) vorliegt, der von einem zufälligen Prüfer überprüft werden kann. Die Sicherheit des Nachweisprotokolls ist dieselbe wie beim Chaum-Pedersen-Protokoll für die Beziehung logg x = logh y, welches für die Anwendung bei Wahlen, auf die hier abgestellt wird, ausreichend ist.
  • Die nachfolgende Beschreibung bietet spezifische Einzelheiten für ein tiefgreifendes Verständnis und eine zur Umsetzung der Erfindung in die Praxis befähigende Beschreibung von Ausführungsbeispielen der Erfindung. Einem Fachmann auf dem einschlägigen Gebiet erschließt sich jedoch, dass die Erfindung auch ohne diese Einzelheiten praxistauglich ist. In anderen Fällen wurden bekannte Strukturen und Funktionen nicht aufgeführt oder beschrieben, um die Beschreibung von Ausführungsbeispielen der Erfindung nicht unnötig zu verkomplizieren.
  • Ein Großteil der nachstehenden Detailbeschreibung ist in den vorstehend angegebenen vorläufigen Patentanmeldungen explizit offenbart. Einen Großteil des zusätzlichen Materials erkennt ein Fachmann auf dem einschlägigen Gebiet als zur Detailbeschreibung der genannten vorläufigen Patentanmeldungen inhärent zugehörig oder als bekannt. Ein Fachmann auf dem einschlägigen Gebiet ist in der Lage, Aspekte der Erfindung auf Basis der Detailbeschreibung der genannten vorläufigen Patentanmeldungen zu implementieren.
  • Die hier verwendete mathematische Symbolsprache ist für einen Fachmann auf dem einschlägigen Gebiet leicht verständlich. Für diejenigen, denen dieses Fachgebiet nicht vertraut ist, sind die nachfolgenden Definitionen und Beschreibungen gedacht. Diese Definitionen versetzen ungeachtet ihrer Kürze einen auf dem Fachgebiet Nichtbewanderten in die Lage, Aspekte der Erfindung auf Basis der angegebenen Detailbeschreibung gänzlich zu verstehen. Die Definitionen sind nicht nur per se, sondern auch durch die Beschreibung der Erfindung als Ganzes (einschließlich der Ansprüche) festgelegt.
  • 1 bis 5 wie auch die damit in Zusammenhang stehende Detailbeschreibung beschreiben Protokolle zwischen einer Seite (beispielsweise einem Wähler) und einem Prüfer (oder zwischen einer Nachweisseite und einer Prüfseite). Die von den jeweiligen Seiten vorgenommenen Handlungen sind in den Kästchen der Flussdiagramme zusammengefasst. Im Allgemeinen beschreibt jede Textzeile oder Ansammlung von Gleichungen in einem Kästchen einen Schritt, so beispielsweise eine Berechnung, die Übertragung von Information oder eine Speicherungs- oder Wiederbeschaffungsfunktion. Die Flussdiagramme sind Zeile für Zeile und Kästchen für Kästchen zu lesen.
  • Der Begriff „Seite" bezeichnet im Sinne der vorliegenden technischen Lehre eine Ganzheit (Entität) und kann einen Handelnden bezeichnen, der einen Schritt oder eine Anzahl von Schritten gemäß dem Protokoll ausführt. Er kann darüber hinaus ein Mittel oder ein Verfahren zur Ausführung einiger oder aller Schritte bezeichnen. Es können somit einige oder alle Teile des Protokolls mittels einer geeigneten Ausgestaltung oder digitalen Logikschaltung ausgeführt werden. So können beispielsweise einige oder alle Schritte des Protokolls nicht nur von einem Allzweckcomputer, so beispielsweise einem PC, sondern auch von einer festverdrahteten oder eigens vorgesehenen kombinatorischen Logikvorrichtung oder einer beliebigen anderen Art einer geeignet programmierbaren Maschine oder eines entsprechenden Mikroprozessors ausgeführt werden, vorausgesetzt, diese Maschine führt die erforderlichen Verarbeitungsschritte, Speicherungen, Eingaben, Ausgaben und dergleichen mehr aus.
  • Das Symbol „∊R" gibt allgemein an, dass eine Zahl oder Zahlen auf der linken Seite aus einem Satz beziehungsweise einer Menge auf der rechten Seite entsprechend einer Wahrscheinlichkeitsverteilung gewählt werden, die im Wesentlichen gleichmäßig und unabhängig (zufällig) ist. In der Praxis können ein physikalischer Zufallszahlengenerator gegebenenfalls in Verbindung mit einer zusätzlichen Nachbearbeitung oder ein deterministischer Pseudozufallszahlengenerator verwendet werden. Verfahren zur Erzeugung von Zufallszahlen sind einem Fachmann auf dem einschlägigen Gebiet bekannt.
  • Die Symbole „Π" und „∑" bezeichnen das Produkt beziehungsweise die Summe. Beide Symbole sind indexiert.
  • Das Symbol „Zp" bezeichnet eine Menge von ganzen Zahlen 0 bis p – 1 oder einen Ring ganzer Zahlen modulo p. Addition und Multiplikation der Elemente in dem Ring Zp sind modulo p definiert.
  • Das Symbol „∊" gibt an, dass ein Element auf der linken Seite ein Teilsatz beziehungsweise eine Teilmenge eines Satzes beziehungsweise einer Menge auf der rechten Seite ist, das heißt, dass die Menge auf der linken Seite in der Menge auf der rechten Seite enthalten ist.
  • Die Winkelklammersymbole (das heißt „< >") sind in Paaren auftretende Symbole, die allgemein angeben, dass der Ausdruck oder die Ausdrücke zwischen ihnen eine Untergruppe bezeichnen, die von einer Teilmenge einer gegebenen Gruppe oder einem Ring ganzer Zahlen (beispielsweise dem Ring Zp) erzeugt wird. Eine Untergruppe ist eine Teilmenge einer anderen Gruppe (oder eines Ringes), der hinsichtlich derselben binären Operation ebenfalls eine Gruppe ist (So sind beispielsweise die ganzen Zahlen eine Untergruppe der reellen Zahlen hinsichtlich der Addition, wohingegen die ganzen Zahlen modulo n keine Untergruppe hiervon sind, da die Operationen anders definiert sind).
  • Im Folgenden bezeichnen, wenn nicht ausdrücklich anders gesagt, n eine positive ganze Zahl sowie p und q ganze Primzahlen, die bekannt sind. Arithmetische Operationen werden in dem Modulring Zp (oder gegebenenfalls Zn) durchgeführt, wobei g ∊ Zp die multiplikative Primordnung q aufweist (Somit gilt trivialerweise q|(p – 1).) In jedem Nachweisprotokoll bezeichnen P den Nachweisenden (prover) und V den Prüfer (verifier) (die Aufsicht).
  • Bei einem anderen nachstehend beschriebenen Ausführungsbeispiel kommt ein Zp- beziehungsweise EIGamal-Verschlüsselungssystem zum Einsatz, obwohl ein Verschlüsselungssystem über elliptischen Kurven oder ein Verschlüsselungssystem über allgemeinen Gruppen verwendet werden kann. Derartige Verschlüsselungssysteme verwenden öffentliche Schlüssel für asymmetrische Verschlüsselungssysteme. Systeme mit öffentlichem Schlüssel verwenden sogenannte Einweg- beziehungsweise Einrichtungsfunktionen und Falltürfunktionen. Eine „Einwegfunktion" ist eine Funktion, die vergleichsweise einfach zu berechnen ist, deren Umkehrfunktion jedoch bei Weitem schwieriger zu berechnen ist. So sind Potenzfunktionen beispielsweise derart, dass die Berechnung des Produktes einer Anzahl gleicher Faktoren einfach ist, wohingegen die Umkehroperation, also das Ermitteln der Wurzel des Ausdrucks, komplizierter ist. „Falltürfunktionen" ähneln Einwegfunktionen, jedoch sind bei diesen die Umkehrfunktionen vergleichsweise schwierig handhabbar, es sei denn, eine bestimmte zusätzliche Information ist verfügbar. Diese zusätzliche Information heißt üblicherweise „privater Schlüssel" („public key"), der bei der einen Seite, so beispielsweise dem Wähler, verbleibt.
  • Die nachstehend beschriebenen Verfahren und Protokolle bedienen sich häufig des Chaum-Pedersen-Nachweises der Gleichheit diskreter Logarithmen. Für g, X, h, Y ∊ Zp ist dies ein Nachweis der Kenntnis der Beziehung loggX = loghY (1)
  • Sie ist, soweit bekannt ist, nicht vom Zero-Knowledge-Typ, obwohl bekannt ist, dass sie hinsichtlich eines ehrlichen Prüfers vom Zero-Knowledge-Typ ist, was für unsere Hauptanwendung, wo der Prüfer über die Fiat-Shamir-Heuristik implementiert ist, ausreichend ist.
  • „Zero-Knowledge-Nachweise" versetzen eine Wähler- oder Nachweisendenseite in die Lage, die Kenntnis eines Geheimnisses zu zeigen, während keinerlei Information über die Verwendung gegenüber der Prüferseite offengelegt wird, indem diese Kenntnis kundgetan wird. Es wird nur ein einziges Informationsbit geliefert, nämlich dasjenige, dass die Nachweisendenseite das Geheimnis tatsächlich nicht kennt. Mit anderen Worten, ein Wähler und eine prüfende bevollmächtigte Einrichtung tauschen Nachrichten aus, wobei das Ziel des Wählers darin besteht, den Prüfer von der Wahrheit einer Behauptung zu überzeugen, so beispielsweise davon, dass der verschlüsselte Stimmzettel oder die gemischte Folge der Stimmzettel oder Elemente vollständig und richtig sind, ohne Information darüber offenzulegen, wie sich der Wähler bei jeder Frage auf dem Stimmzettel entschieden hat, oder wie die Reihe von Elementen gemischt wurde. Bei solchen Zero-Knowledge-Nachweisen erzeugt jede Wähler- oder Nachweisendenseite effektiv bestimmte Zahlen, die nur eine Person, die im Besitz des privaten Schlüssels ist, erzeugen kann. Eine Prüfer- oder Authentisierungsseite bestätigt sodann, dass jede berechnete Zahl tatsächlich mittels eines bekannten Algorithmus erzeugt worden ist, und authentisiert hierdurch den Wähler sowie die Vollständigkeit und Richtigkeit des Stimmzettels oder die „Gültigkeit" aller möglichen Wahloptionen und Randbedingungen oder die Unverändertheit der Reihe von Elementen (abgesehen vom Mischen und Verschlüsseln).
  • Definition 1: Das Auftreten eines Chaum-Pedersen-Nachweises, siehe oben, ist bezeichnet mit: CP(g, X, h, Y).
  • Definition 2: Für festes g ∊ Zp* bezeichnet der Binäroperator auf <g> × <g> die Untergruppe, die von einer Untermenge eines Ringes erzeugt wird, der gegeben ist durch logg(x⨁gy) = logg × loggyfür alle x, y ∊ <g>. Alternativ gilt gaggb = gab(ga)b = (gb)a für alle a, b ∊ Zq. In Entsprechung zu den Indexkonventionen für Summen und Produkte wird nachfolgend auch die folgende Schreibung verwendet: g,i=1 kXi = X0gX1g ... ⨁gXk
  • Diese Operation wird nachstehend als logarithmische Multiplikation zur Basis g bezeichnet.
  • In sämtlichen Schreibungen der vorhergehenden Definitionen kann der tiefgestellte Index g weggelassen werden, wenn dessen Wert eindeutig aus dem Zusammenhang hervorgeht. In diesem Zusammenhang bezeichnet ein „binärer Operator" einen Operator, der auf einer Menge definiert ist, die zwei Elemente der Menge als Eingabe und ein Element der Menge als Ausgabe verwendet.
  • Bemerkung 1: Man beachte, dass bei einem Chaum-Pedersen-Nachweis für h = gs und den Zehnerlogarithmus u = logg X = logh Y der Ausdruck CP(g, X, h, Y) offensichtlich auch ein Nachweis der Beziehung Y = h⊕gX = X⊕gh ist.
  • Bemerkung 2: Der vorstehende Nachweis ist offensichtlich ein Zero-Knowledge-Nachweis hinsichtlich s, da der Nachweisende keine Kenntnis des Wertes haben muss, um den Nachweis zu führen.
  • Man beachte die nachfolgende Sammlung bekannter Ergebnisse, die für die folgende Beschreibung von großer Wichtigkeit sind.
  • Lemma 1: Sei f(x) ∊ Zq[x] ein Polynom d-ten Grades, so gibt es höchstens d Werte z1, ..., zd ∊ Zq derart, dass f(zi) = 0 gilt.
  • Korollar 1: Seien f(x), g(x) ∊ Zq[x] zwei Polynome höchsten d-ten Grades mit f ≠ g, so gibt es höchstens d Werte z1, ..., zd ∊ Zq derart, dass f(zi) = g(zi) gilt.
  • Korollar 2: Seien f(x), g(x) ∊ Zq[x] zwei Polynome höchsten d-ten Grades mit f ≠ g. Für c ∊R Zq (c wird zufällig aus Zq ausgewählt) gilt die folgende Wahrscheinlichkeit P({c:f(c) = g(c)}) ≤ d/q
  • Lemma 2: Sei Zq k der k-dimensionale Standardvektorraum über Zq und sei v = (v1, ..., vk) ∊ Zq k mit v ≠ 0. Ist r ∊R Zq k zufällig gewählt, dann gilt: P({r:v·r = 0}) = 1/q
  • 2. Nachweise der iterierten logarithmischen Multiplikation
  • Im gesamten restlichen Abschnitt werden alle logarithmischen Multiplikationen relativ zu einem festen Element g berechnet, weshalb der tiefgestellte Index in der Schreibung fortan weggelassen wird. Für die noch zu besprechenden Mischungsprobleme ist das nachfolgende Problem von größter Wichtigkeit.
  • Problem der iterierten logarithmischen Multiplikation: Es seien zwei Folgen {Xi}i=1 k und {Yi}i=1 k öffentlich bekannt. Dem Nachweisenden P sind zudem auch ui = logg Xi und vi = logg Yi für alle i bekannt, während sie dem Prüfer V nicht bekannt sind. P soll V von der Beziehung i=1 kXi = ⊕i=1 kYi (2)überzeugen, ohne Information über die geheimen Logarithmen ui und vi offenzulegen.
  • Intuitiv ist dieses Problem eingedenk Bemerkung 1 einfach. Der Nachweisende kann zwei Folgen von k Chaum-Pedersen-Nachweisen erstellen, um V sowohl von dem Wert ⊕i=1 k Xi wie auch von dem Wert ⊕i=1 k Yi zu überzeugen, woraufhin V überprüfen kann, dass die beiden Werte gleich sind. Ist von allen Xi und Yi bekannt, dass sie zufällig und unabhängig sind, so könnte dies zum Zwecke der Geheimhaltung von ui und vi hinnehmbar und bei einem Ausführungsbeispiel der Erfindung implementiert werden. Es sollte jedoch einsichtig sein, dass dieses Protokoll einige Information offenlegt, die V nicht selbst berechnen kann, nämlich die Werte von ⊕i=1 k Xi und ⊕i=1 k Yi wie auch die logarithmischen Zwischenmultiplikationen. Zur Straffung des Protokolls wird bei dem nachstehend beschriebenen Ausführungsbeispiel und dem zugehörigen Verfahren eine gewisse Zufälligkeit eingeführt, um sicherzustellen, dass nicht mehr Information als das zugrundeliegende Chaum-Pedersen-Protokoll nach außen gegeben wird.
  • Nachweis der iterierten logarithmischen Multiplikation
    • 1. P erzeugt geheim, zufällig und unabhängig k + 1 Werte {ri}i=0 k ⊂ Zq und die exponierten Werte Ri = gr i.
    • 2. Für jedes 1 ≤ i ≤ k berechnet P geheim wi = riui/ri-1 und legt Wi = gw i, zi = wi/vi offen.
    • 3. P setzt Zi = gz i und erstellt die beiden Chaum-Pedersen-Nachweise CP(Ri-1, Xi, Ri, Wi) (3)und CP(Yi, gi, Wi, Zi) (4),die er V gegenüber offenlegt. Diese beiden Chaum-Pedersen-Nachweise können zusammen nicht mehr Information über die Geheimnisse offenlegen, als dies bei derjenigen Information der Fall ist, die jeder von ihnen einzeln betrachtet bereits offenlegt. Dies ergibt sich aus Bemerkung 2. Der erste Nachweis ist ein Zero-Knowledge-Nachweis hinsichtlich ri/r-1 obwohl er für einen ehrlichen Prüfer nur ein Zero-Knowledge-Nachweis hinsichtlich ui/r-1 ist. Der zweite Nachweis ist ein Zero-Knowledge-Nachweis hinsichtlich ri, ri-1, und ui, da auch der Nachweisende diese Werte nicht zu kennen braucht, um den Nachweis zu erbringen. Selbstredend kann einige Information über diese Werte aus dem offengelegten Wert zi gewonnen werden, dies jedoch nur, wenn einige Information über vi bekannt ist. Es ist nicht bekannt, ob dies bei einem ehrlichen Prüfer V der Fall ist; es ist jedoch nicht der Fall, wenn der Prüfer ehrlich ist, was für die nachfolgenden Ausführungbeispiele und Anwendungen der Fall ist. Die Quotienten ri/ri-1 sind eindeutig gleichmäßig verteilt und unabhängig, sodass die Werte zi selbst keine Information über ui und vi offenlegen.
    • 4. V überprüft, dass Zi = gz i gilt, und überprüft jeden Chaum-Pedersen-Nachweis.
    • 5. V berechnet schließlich z = Πi=1 k zi und überprüft, dass R0 z = Rk gilt.
  • Es ist einsichtig, dass dieses Protokoll das Problem der iterierten logarithmischen Multiplikation löst, was durch Betrachtung von Bemerkung 1 und durch Ausmultiplizieren der Exponenten deutlich wird. Die Wahrscheinlichkeit eines falschen Nachweises ist durch die Wahrscheinlichkeit eingeschränkt, dass ein Chaum-Pedersen-Nachweis oder mehrere falsch sind. Jede dieser Wahrscheinlichkeiten ist 1/q. Daher ist die Gesamtwahrscheinlichkeit eines falschen Nachweises durch 2k/q eingeschränkt.
  • Aus Gründen, die nachstehend noch deutlich werden, ist die nachfolgende Variante des Problems der iterierten logarithmischen Multiplikation für das Verfahren noch bedeutender.
  • Problem der skalierten iterierten logarithmischen Multiplikation: Im ursprünglichen Problem waren die beiden Folgen {Xi}i=1 k und {Yi}i=1 k öffentlich bekannt, ui = logg Xi und vi = logg Yi für alle i seien P bekannt, V jedoch unbekannt. Zudem ist eine Konstante c ∊ Zq nur P bekannt, wohingegen ein Commitmentwert von c, nämlich C = gc, V mitgeteilt wird. P muss nun V von der Beziehung i=1 kXi c = ⊕i=1 kYi (5)überzeugen, ohne dass Information über die geheimen Logarithmen ui, vi und c offengelegt wird.
  • Nachweis der skalierten iterierten logarithmischen Multiplikation:
  • Der Nachweis bedarf nur einer unbedeutenden Abwandlung am ursprünglichen Nachweis. So muss der Chaum-Pedersen-Nachweis bei 4 lediglich durch den ähnlichen Nachweis CP(Yi, Ci, Wi, Zi) (6)ersetzt werden.
  • 3. Einfache k-Mischung
  • Der erste dargestellte Mischungsnachweis benötigt eine restriktive Menge von Bedingungen. Er ist aus zwei Gründen von Nutzen. Zunächst stellt er einen fundamentalen Baustein eines allgemeineren Nachweises dar, der später noch erbracht wird. Eher unbeabsichtigt dient er auch noch einem zweiten Zweck. Ein einfaches Beispiel dieses Nachweises kann erstellt werden, um eine bestimmte Permutation wirkungsvoll zu „bewirken" (commit). Dies ist gegebenenfalls dann von Wichtigkeit, wenn Mischungen an Tupeln von Zp-Elementen vorgenommen werden sollen, was genau bei der Anwendung auf eine Wahl der Fall ist (Ein „Tupel" bezeichnet eine Folge oder eine geordnete Menge, während ein 5-Tupel oder Quintupel eine geordnete Menge von fünf Elementen ist, und ein k-Tupel eine endliche geordnete Menge mit einer nicht festgelegten Anzahl von Elementen bezeichnet).
  • Problem der einfachen k-Mischung: Zwei Folgen von k Elementen aus Zp, nämlich X1, ..., Xk und Y1, ..., Yk, sind öffentlich bekannt. Der Nachweisende P kennt zudem ui = logg Xi und vi = logg Yi, wobei diese dem Prüfer V nicht bekannt sind. Zudem ist eine Konstante c ∊ Zq nur P bekannt ist, wohingegen ein Commitmentwert von C, nämlich C = gc, V mitgeteilt wird. P muss nun V überzeugen, dass es eine Permutation π ∊ ∑k gibt, mit der Eigenschaft Yπ(i) = Xi c (7)für alle 1 ≤ i ≤ k, ohne dass irgendwelche Information über π oder das geheime c offengelegt wird. Die Funktion π entspricht einer Funktion zur Abbildung einer Menge eingegebener Elemente auf eine permutierte Menge ausgegebener Elemente.
  • Nachweis der einfachen k-Mischung: Das Führen des Beweises ist eingedenk des vorherigen Abschnittes und Korollar 2 nahezu trivial.
    • 1. V erzeugt ein zufälliges t ∊ Zq und gibt es an P als Anfrage weiter.
    • 2. P berechnet T = gt (auch V bekannt) und S = Tc = gct.
    • 3. P erzeugt den Chaum-Pedersen-Nachweis CP(g, C, T, S) und legt ihn V gegenüber offen.
    • 4. P berechnet öffentlich (das heißt von V überprüft) die Werte Ui = T/Xi und Vi = S/Yi. Achtung: Ui und Vi sind geeignet gewählt, um besser zur Schreibung in Korollar 2 zu passen. Bei einem Ausführungsbeispiel implementiert das Verfahren das Protokoll mit Ui = Xi/T und Vi = Yi/S, da Teilen rechentechnisch aufwändiger als Malnehmen ist.
  • Der Nachweisende führt das Protokoll des Nachweises der skalierten iterierten logarithmischen Multiplikation für die Folgen {Ui}i=1 k und {Vi}i=1 k und den Commitmentwert C aus. Durch Überprüfen der Nachweise der skalierten logarithmischen Multiplikation an den Folgen U und V stellt der Prüfer sicher, dass die gewünschte Beziehung zwischen der anfänglich eingegebenen Folge von Elementen X und der Folge Y hält (siehe Korollar 2).
  • Ein falscher Nachweis kann nur dann erzeugt werden, wenn entweder der Nachweis der skalierten iterierten logarithmischen Multiplikation falsch ist, oder der einzelne Nachweis von S = Tc falsch ist, oder V den Wert c aus der exponentiellen Menge in Korollar 2 wählt. Daher ist die Gesamtwahrscheinlichkeit eines falschen Beweises um (3k + 1)/q eingeschränkt. Weitere Informationen über Nachweise betreffend die beschriebenen Mischungsprotokolle sind in den vorgenannten vorläufigen US-Patentanmeldungen zu finden.
  • Im Allgemeinen ist die einfache k-Mischung für einige Anwendungen durchaus ausreichend. Zum Mischen von Gegenständen muss ein Individuum eine Verschlüsselungstransformation (beispielsweise eine Exponenzierung) vornehmen, bei der in bestimmtem Ausmaß Sicherheit dahingehend besteht, dass eine Reihe oder Folge ausgegebener Elemente Y1 bis Yk aus einer anfänglichen oder eingegebenen Folge von Elementen X1 bis Xk auf Basis einer konstanten verschlüsselungstechnischen Information hergeleitet werden kann, ohne dass dabei offengelegt wird, welche anfänglichen Elemente X ein jeweiliges Element Y erzeugten. Darüber hinaus entspricht es den Wünschen von Individuen, ein derartiges Mischen vorzunehmen, ohne zusätzlich auch noch einen aufwändigen Gültigkeitsnachweis führen zu müssen, so beispielsweise aus dem Stand der Technik bekannte Cut-and-Choose-Gültigkeitsnachweise, bei denen zahlreiche Iterationen von Nöten sind, um eine ausreichende Nachweisstufe zu erreichen. Anstelle dessen wird eine Reihe von k unabhängigen Chaum-Pedersen-Nachweisen auf Basis eines geheimen Exponentiationswertes c verwendet, was in vorliegender Beschreibung offenbart wird.
  • 4. Allgemeine k-Mischung
  • Eine offensichtliche Beschränkung des einfachen k-Mischungsprotokolls besteht darin, dass der Mischende P alle Anfangsexponenten s1, ..., sk kennen muss. In vielen Anwendungen ist dies jedoch nicht der Fall. Der nächste Schritt besteht daher in der Beseitigung dieser Beschränkung.
  • Problem der allgemeinen k-Mischung: Zwei Folgen von k Elementen von Zp, nämlich X1, ..., Xk und Y1, ... Yk, sind öffentlich bekannt. Darüber hinaus ist eine Konstante c ∊ Zq nur P bekannt, wohingegen ein Commitmentwert von c, nämlich C = gc, V mitgeteilt wird. P muss nun V überzeugen, dass es eine Permutation π ∊ ∑k gibt, die die Eigenschaft Yπ(i) = Xi c (8)für alle 1 ≤ i ≤ k aufweist, ohne dass irgendwelche Information über π oder das geheime c offengelegt wird.
  • Nachweis der allgemeinen k-Mischung: Der Beweis ergibt sich aus einer einfachen k-Mischung, die von dem Prüfer „in ausreichendem Ausmaß verwürfelt" wurde, sowie aus einer Anwendung von Lemma 2.
    • 1. P erzeugt zufällig und unabhängig eine Folge {ūi}i=1 k ⊂ Zq und offenbart die Folge Ūi = gū i.
    • 2. V erzeugt zufällig und unabhängig eine andere Folge {ei}i=1 k ⊂ Zq und gibt diese als Anfrage an P weiter.
    • 3. P setzt öffentlich Ui = ge iŪi und geheim ui = ei + ūi. Indem er den Nachweisenden auffordert, einen von dem Prüfer erzeugten Wert zu addieren, wird verhindert, dass der Nachweisende bestimmte Geheimnisse (Exponenten) erfährt, wodurch er die Sicherung der Verschlüsselungsunempfindlichkeit fördert.
    • 4. P erstellt eine einfache k-Mischung der Folge {Ui}i=1 k mit einem anderen Commitmentwert D = gd (anderer geheimer Exponent) sowie eine inverse Permutation π–1, die die Folge {Vi}i=1 k = {gv i}i=1 k wie auch den entsprechenden Nachweis ergibt, wie im Abschnitt über die einfache k-Mischung beschrieben wurde (Man beachte, dass die Werte Vi öffentlich sind, wohingegen die Werte vi gegenüber P geheim sind).
    • 5. P setzt öffentlich Ai = Xi v i und Bi = Yi u i und legt die Chaum-Pedersen-Nachweise CP(g, Vi, Xi, Ai) (9)und CP(g, Ui, Yi, Bi) (10)offen. Daher entspricht die Folge von Elementen A und B der eingegebenen Folge von Elementen X und Y.
    • 6. Die Werte A = Πi=1 k Ai (11)und B = Πi=1 k Bi (12)werden öffentlich berechnet.
    • 7. P legt den Chaum-Pedersen-Nachweis CP(D, A, C, B) (13)offen.
  • Die Schritte 5 bis 7 machen effektiv erforderlich, dass der Nachweisende die Daten festhält, um mit sicherzustellen, dass der Nachweisende die Ausgangsdaten nicht manipuliert hat (Dieser Schritt unterscheidet sich von der vorstehend gegebenen Beschreibung des einfachen Mischens). Ein falscher Nachweis kann nur dann erzeugt werden, wenn entweder der Nachweis der einfachen k-Mischung falsch ist, oder einer der Chaum-Pedersen-Nachweise falsch ist, oder das Tupel (ui, ..., uk) aus der Ausnahmemenge in Lemma 2 genommen ist. Daher ist die Gesamtwahrscheinlichkeit einer Fälschung durch (3k + 1)/q + 2k/q + 1/q = (5k + 2)/q (14)eingeschränkt.
  • 5. k-Mischungen von Tupeln
  • Einem Fachmann auf dem einschlägigen Gebiet erschließt sich, dass in dem vorhergehenden Abschnitt die Wahl der einfachen Mischung die nachweisbare Permutation im Wesentlichen „eingefroren hat". Hierdurch wird die Erkenntnis einfach, wie der vorhergehende Abschnitt auf Mischungen von k-Tupeln von Elementen von <g> zu erweitern ist. Interpretiert man eine Folge von k l-Tupeln als k × l-Feld, kann eine einzige einfache k-Mischung dem Nachweis dienen, dass alle Spalten entsprechend derselben Permutation permutiert worden sind, wohingegen alle Zeilen unverändert geblieben sind. Daher wird die vorstehend beschriebene k-Mischung l-mal ausgeführt, und zwar einmal für jede Spalte des Feldes von k Elementen (Bei jeder der k-Mischungen wird erneut die einfache Mischung verwendet). Insbesondere kann dies auf Tupel von EIGamal-Paaren erweitert werden.
  • 6. Anwendung auf eine Wahl
  • Informationen über die Registrierung von Wählern, das Erstellen und Verteilen von Stimmzetteln, das Speichern von Stimmzetteln und das Durchführen einer Wahl unter Verwendung verschlüsselter elektronischer Stimmzettel finden sich in den nachfolgenden US-Patentanmeldungen: 09/535,927, eingereicht am 24. März 2000, mit dem Titel „Multi-Way Election Method and Apparatus", 09/534, 835, eingereicht am 24. März 2000, mit dem Titel „Electronic Voting Scheme Employing Permanent Ballot Storage", 09/534,836, eingereicht am 24. März 2000, mit dem Titel „Method, Article and Apparatus for Registring Registrants, such as Voter Registrants", 60/252,762, eingereicht am 22. November 2000, unter dem Titel „Election System", 60/270,182, eingereicht am 20. Februar 2001, mit dem Titel „Method and Apparatus for Detection and Correction of Compromised Ballots in Secret, Remote, Electronic Voting Systems", und 60/272,883, einge reicht am 2. März 2001, mit dem Titel „Information Theoretically Anonymous Signatures with Discrete Log Security".
  • Bei einem Ausführungsbeispiel liegen die Stimmen als EIGamal-Paare in der Form (gα i, hα im) vor (oder als Folge dieser Paare, wenn mehr Daten von Nöten sind), wobei m eine Standardverschlüsselung der Wählerstimmen (in dieser Beschreibung angegeben) ist, wohingegen die Werte αi geheim von den Wählern erzeugt werden, und h ein öffentlicher Parameter ist, der gemäß einem verteilerfreien geheimen Teilungsverfahren (siehe beispielsweise den von T. Pedersen verfassten Beitrag „A threshold cryptosystem without a trusted party", veröffentlicht in Advances in Cryptology – EUROCRYPT '91, Lecture Notes in Computer Science, Seiten 522 bis 526, Springer-Verlag 1991) erstellt worden ist. Sobald die Wahllokale geschlossen haben (das heißt, sobald die Abstimmung beendet ist), mischt ein unabhängiges Ensemble von Bevollmächtigten nacheinander die Stimmzettel. Auf Grundlage der Ausgabe des letzten Mischens wird die fertige Sammlung verschlüsselter Stimmzettel entsprechend dem Schwellenverfahren entschlüsselt, woraufhin die Klartextstimmen gemäß gängiger Wahlregularien vollständig tabelliert werden.
  • Die Anzahl der Bevollmächtigten, die an den sequenziellen Mischungen teilnehmen, kann zufällig sein, und sie kann sich vollständig von derjenigen Anzahl unterscheiden, die Anteile am öffentlichen Schlüssel der Wahl innehaben. Die Folge von Stimmzetteln, die letztendlich entschlüsselt wird, kann nur dann mit der anfänglichen Folge vorgelegter Stimmzettel geknackt werden, wenn sich sämtliche mischenden Bevollmächtigten verschwören, da jede ihrer Permutationen vollständig zufällig ist.
  • Jede Mischung wird von einem einzelnen Bevollmächtigten folgendermaßen vorgenommen.
    • 1. Die Werte βi werden geheim, zufällig und unabhängig gewählt.
    • 2. Jede Stimme vi = (gα i, hα im) wird nacheinander durch (g
      Figure 00190001
      ,h
      Figure 00190002
      m)ersetzt. Ein Chaum-Pedersen-Nachweis wird veröffentlicht, ohne die Geheimnisse offenzulegen.
    • 3. Es wird ein Mischen mit dem geheimen Exponenten c an den sich ergebenden verschlüsselten Stimmen vorgenommen.
    • 4. Die Schritte 1 und 2 werden wiederholt.
    • 5. An diesem Punkt sind die Nachrichten, die verschlüsselt werden, die c-te Potenz der ursprünglichen Nachrichten. Dies ist einfach nachvollziehbar, indem jede Koordinate jeder Stimme in die 1/c-te Potenz gehoben wird. Ein Chaum-Pedersen-Nachweis dieses Vorganges ist vergleichsweise einfach zu erbringen, wodurch c geheim gehalten wird, während Prüfer überzeugt werden, indem einfach die Rollen von g und C = gc vertauscht werden.
  • Die vorgenannten Schritte 1 und 2 helfen bei einer Verwürfelung der eingegebenen Daten mit, wodurch verhindert wird, dass irgendjemand daran herummanipuliert, indem er beispielsweise eine Beziehung zwischen den Stimmzetteln vor dem Mischen feststellt. Der Chaum-Pedersen-Nachweis stellt die Richtigkeit des zusätzlichen Wertes, der für diese Verwürfelungen addiert worden ist, sicher. Bei einem alternativen Ausführungsbeispiel können die Schritte 1 und 2 (wie auch Schritt 4) weggelassen werden.
  • 7. Geheime Verschlüsselung von Nachrichten
  • Für den Fall, dass p – 1 kleine Primfaktoren enthält, kann ein wenig Information über die verschlüsselten Nachrichten nach außen dringen. Dies stellt kein Problem mit Blick auf die Mischprotokolle dar, sondern es ist vielmehr in erster Linie ein Problem für die starke Verschlüsselung der Werte mi. Die Frage, ob dieses Problem Berücksichtigung finden muss, hängt von dem erwarteten Wert der zu verschlüsselnden Nachrichten ab. Dieses Problem kann jedoch auch beseitigt werden, indem der Verschlüsselung besonderes Augenmerk zuteil wird. Jede Nachricht kann auf eine Untergruppe projiziert werden, deren Ordnung nur große Primfaktoren enthält. Da die meisten der beschriebenen Ausführungsbeispiele auf den Fall beschränkt sind, in dem |<g>| eine Primzahl q ist, wird nur derjenige Fall erläutert, in dem p = 2q + 1 gilt. Der allgemeinere Fall kann gleichwohl durch Erweiterung der beschriebenen Techniken erfasst werden.
  • Unter der Voraussetzung, dass p = 2q + 1 gleich b ist, das heißt, dass 2b-1 < p < 2b gilt, folgt: 2b-2 ≤ (p – 1)/2 = q < 2b-1 (15)
  • Es wird vorausgesetzt, dass sämtliche Nachrichten m eine Bitlänge von höchstens b – 2 aufweisen. Anstelle der Verschlüsselung jeder Nachricht als (gα i, hα im) gemäß Standard, erfolgt hier die Verschlüsselung als (gα i, hα im2).
  • Dies bedeutet, dass sämtliche Nachrichten mit derselben trivialen Projektion auf die Untergruppe von Zp* der Ordnung 2 verschlüsselt werden. Gleichung 15 stellt sicher, dass die Abbildung m → m2 auf dem Definitionsbereich umkehrbar ist. Zur Umkehrung wird lediglich die einfache Quadratwurzel gezogen, die kleiner als (p – 1)/2 ist. Hierdurch wird es einfach, die Ausgangsnachricht m wiederherzustellen, sobald die tatsächliche Nachricht m2 entschlüsselt worden ist.
  • 8. Geeignetes System
  • 1 und die nachfolgenden Erläuterungen geben eine kurze und allgemeine Beschreibung einer geeigneten Computerumgebung, in der Aspekte der vorliegenden Erfindung implementiert sein können. Obwohl nicht erforderlich, werden die Ausführungsbeispiele der Erfindung im allgemeinen Zusammenhang von computerausführbaren Befehlen beschrieben, so beispielsweise von Routinen, die von einem Allzweckcomputer, so beispielsweise einem PC oder einem Webserver, ausgeführt werden können. Einem Fachmann auf dem einschlägigen Gebiet erschließt sich, dass bestimmte Aspekte der Erfindung (so beispielsweise betreffend kleine Wahlen) mit anderen Ausgestaltungen der Computersysteme, darunter mit Internetgeräten, Handgeräten, tragbaren Computern, PDAs (personal digital assistants), Multiprozessorsystemen, mikroprozessorbasierten oder programmierbaren elektronischen Geräten, Netzwerk-PCs, Minicomputern, Mobiltelefonen, Settopboxen, Mainframe-Computern und dergleichen, umgesetzt werden können. Aspekte der Erfindung können in einem Spezialzweckcomputer oder einem Datenprozessor umgesetzt werden, der speziell programmiert, ausgestaltet oder gebaut ist, um einen oder mehrere computerausführbare Befehle gemäß vorliegender technischer Lehre auszuführen. Der Begriff „Computer" bezieht sich im Zusammenhang mit der vorliegenden technischen Lehre auf beliebige Vorrichtungen wie auch auf beliebige Datenprozessoren.
  • Die Erfindung kann darüber hinaus in verteilten Computerumgebungen verwirklicht werden, in denen Aufgaben oder Module von Fernverarbeitungsvorrichtungen durchgeführt werden, die über ein Kommunikationsnetzwerk, so beispielsweise ein Ortsbereichsnetzwerk (LAN), ein Großbereichsnetzwerke (WAN) oder das Internet verbunden sind. In einer verteilten Computerumgebung können Programmmodule oder Unterroutinen sowohl in vor Ort befindlichen wie auch in entfernten Speichervorrichtungen lokalisiert sein. Die hier beschriebene Erfindung kann auf computerlesbaren Medien, darunter magnetischen und optischen lesbaren und löschbaren Computerspeicherplatten, gespeichert oder verteilt sein. Sie kann als Firmware in Chips gespeichert sein, jedoch auch elektronisch über das Internet oder andere Netzwerke (darunter drahtlose Netzwerke) verteilt werden. Einem Fachmann auf dem einschlägigen Gebiet erschließt sich, dass Teile des hier beschriebenen Protokolls auf einem Servercomputer lokalisiert sein können, wohingegen entsprechende andere Teile auf Clientcomputern vorhanden sind. Datenstrukturen und die Übertragung für diese Protokolle bestimmter Daten sind ebenfalls im Schutzumfang der vorliegenden Erfindung mitumfasst.
  • Wenn nicht ausdrücklich anders angegeben, sind Aufbau und Betrieb der verschiedenen in 1 gezeigten Blöcke von herkömmlichem Design. Als Ergebnis müssen derartige Blöcke hier nicht detailliert beschrieben werden, da sie ein Fachmann auf dem einschlägigen Gebiet kennt.
  • Gemäß 1 umfasst eine geeignete Systemumgebung 100 einen oder mehrere Wähler- oder Clientcomputer 102, von denen jeder ein Browserprogrammmodul 104 enthält, das den Computer in die Lage versetzt, auf das Internet zuzugreifen, um Daten mit diesem auszutauschen, darunter auch Websites im WWW-Teil 106 des Internets. Die Wählercomputer 102 können einen oder mehrere zentrale Verarbeitungseinheiten oder logische Verarbeitungsschaltungen, Speicher, Eingabevorrichtungen (beispielsweise Tastaturen, Mikrofone, berührungsempfindliche Bildschirme und Zeigevorrichtungen), Ausgabevorrichtungen (beispielsweise Anzeigevorrichtungen, Lautsprecher und Drucker) sowie Speichervorrichtungen (beispielsweise Festplatten, Floppy-Laufwerke und optische Plattenlaufwerke) umfassen, die allesamt bekannt und in 1 nicht gezeigt sind. Die Wählercomputer 102 können darüber hinaus andere Programmmodule enthalten, so beispielsweise ein Betriebssystemen ein oder mehrere Anwenderprogramme (beispielsweise eine Textverarbeitung oder ein Tabellenkalkulationsprogramm) oder dergleichen. Wie in 1 gezeigt ist, ist die Anzahl der Wählercomputer 102 gleich N, wodurch die Wähler 1, 2, 3, ..., N dargestellt werden.
  • Ein Servercomputersystem 108 beziehungsweise ein „Stimmensammlungszentrum", das mit dem Internet oder dem World Wide Web („Web") 106 verbunden ist, übernimmt teilweise oder in Gänze das Stimmzetteleinsammeln, das Speichern und andere Vorgänge. Eine Datenbank 110, die mit dem Servercomputer 108 verbunden ist, speichert viele der Websites und Daten (darunter Stimmzettel und Gültigkeitsnachweise der Mischung), die zwischen den Wählercomputern 102 und einem oder mehreren Stimmabgabecomputern 112 und dem Servercomputer 108 ausgetauscht werden. Der Stimmabgabecomputer 108 ist ein PC, ein Servercomputer, ein Minicomputer oder dergleichen, der in einem öffentlichen Wahllokal befindlich ist, um Mitglieder der Öffentlichkeit beziehungsweise Wähler, die gegebenenfalls keinen Zugang zu einem mit dem Internet 106 verbundenen Rechner haben, in die Lage zu versetzen, mit den hier beschriebenen Systemen elektronisch zu wählen. Daher können die Wählercomputer 102 daheim bei den einzelnen Wählern befindlich sein, wo ein oder mehrere Stimmabgabecomputer 112 öffentlich oder auf andere Weise für Wähler der öffentlichen Wahl öffentlich zugänglich sind. Der Stimmabgabecomputer 112 kann ein Ortsbereichsnetzwerk (LAN) mit einem Servercomputer und mehreren Clientcomputern oder Wählerendgeräten umfassen, die damit über das LAN verbunden sind, um so einige Wähler in die Lage zu versetzen, gleichzeitig oder parallel abzustimmen.
  • Der Stimmabgabecomputer kann auch einen iButton-Leser zum Lesen von iButtons enthalten, so beispielsweise verschlüsselungstechnische iButtons, die von der Firma Dallas Semiconductor Corp. hergestellt werden. Ein iButton ist ein 16-mm-Computerchip, der in rostfreiem Stahl eingelassen ist, und der einen Mikroprozessor für mit hoher Geschwindigkeit erfolgende arithmetische Berechnungen enthält, die zur Verschlüsselung und Entschlüsselung von Information notwendig sind, so beispielsweise Signaturen von Wählern, die sich registriert haben. Weitere Informationen sind über http://www.ibutton.com erhältlich. Natürlich können neben iButtons andere Datenspeichervorrichtungen verwendet werden, so beispielsweise die hier erläuterten computerlesbaren Medien, RFID-Tags (radio frequeny identification RFID), ein oder zweidimensionale Strichcodes oder andere Datensammlungsvorrichtungen sowie die dazugehörigen Lesegeräte.
  • Bei einem alternativen Ausführungsbeispiel kann das System 100 im Zusammenhang mit einer privaten Wahl verwendet werden, so beispielsweise der Wahl von gemeinsamen Vertretern oder Boardmitgliedern. Bei diesem Ausführungsbeispiel können die Wählercomputer 102 Laptops oder Desktopcomputer von Anteilseignern sein, wobei der Stimmabgabecomputer 112 einen Computer oder mehrere Computer darstellen kann, die innerhalb der Firma (beispielsweise in der Lobby) aufgestellt sind, wo die Wahl durchgeführt wird. Die Anteilseigner können die Firma besuchen, um Zugriff auf den Stimmabgabecomputer 112 zu erlangen, wo sie ihre Stimmen abgeben.
  • Ein oder mehrere Computer 114 der Bevollmächtigten oder der Organisation sind auch über das Internet 106 mit dem Servercomputersystem 108 gekoppelt. Die Computer 114 der Bevollmächtigten enthalten jeweils einen Schlüssel, der zur Entschlüsselung der elektronischen Stimmzettel notwendig ist, die in der Datenbank 10 gespeichert sind. Verschlüsselungstechnische Schwellensysteme erfordern, dass eine Teilmenge t der Gesamtzahl der Bevollmächtigten n (das heißt t < n) darin übereinstimmt, die Stimmzettel zu entschlüsseln, um auf diese Weise die Anforderung zu vermeiden, dass alle Bevollmächtigten zur Entschlüsselung der Stimmzettel benötigt werden. Mit anderen Worten, das Ziel eines verschlüsselungstechnischen Schwellensystems besteht im Teilen eines gemeinsamen Schlüssels unter Mitgliedern einer Gruppe derart, dass Nachrichten entschlüsselt werden können, wenn eine erhebliche Teilmenge T zusammenarbeitet, was als verschlüsselungstechnisches (t, n)-Schwellensystem bezeichnet wird. Protokolle werden festgelegt, um (1) Schlüssel zu erzeugen, die gemeinsam in der Gruppe erzeugt werden, und (2) Nachrichten zu entschlüsseln, ohne dass der private Schlüssel nachgebildet werden kann. Die Computer 114 der Bevollmächtigten können ihren Entschlüsselungsanteil dem Servercomputersystem 108 zur Verfügung stellen, nachdem der Wahlzeitraum endet, sodass das Servercomputersystem die Stimmzettel entschlüsseln und die Ergebnisse auflisten kann.
  • Darüber hinaus führt bei dem beschriebenen Ausführungsbeispiel jeder der Computer der Bevollmächtigten eine Mischung der Stimmzettel durch, wie bereits beschrieben wurde. Im Zusammenhang mit jeder Mischung erzeugt jeder Computer der Bevollmächtigten einen Gültigkeitsnachweis der Mischung, der verschlüsselt und an den Servercomputer 108 weitergegeben oder vor Ort von dem Computer der Bevollmächtigten gespeichert werden kann. Bei einem alternativen Ausführungsbeispiel ist eine zusätzliche Menge von Computern der Bevollmächtigten vorgesehen, wobei eine Menge der Computer der Bevollmächtigten die verschlüsselten Stimmzettel mischt und Gültigkeitsnachweise der Mischung erzeugt, während eine zweite Menge der Computer der Bevollmächtigten Schlüsselanteile zur Entschlüsselung der Stimmzettel einsetzt.
  • Ein oder mehrere optionale Prüfercomputer 130 können darüber hinaus vorgesehen werden, die ähnlich den Computern 114 der Bevollmächtigten sind. Die Prüfercomputer können Wahltranskripte empfangen, um zu prüfen, ob bei der Wahl eine Manipulation stattgefunden hat. So können beispielsweise die Prüfercomputer Gültigkeitsnachweise der Mischung von jedem Computer der Bevollmächtigten empfangen, wie bereits beschrieben wurde. Die Prüfercomputer können Prüfungen nach der Wahl ausführen und müssen nicht mit dem Internet verbunden sein. Die Prüfungen können von anderen Computern, wie hier gezeigt und beschrieben ist, vorgenommen werden.
  • Die Servercomputer, die Prüfercomputer und die Computer der Bevollmächtigten können Wählerregistrierprotokolle ausführen. Alternativ können getrennte Registriercomputer (nicht gezeigt) vorgesehen sein. Die Registriercomputer können biometrische Lesegeräte zum Lesen biometrischer Daten der Registrierten enthalten, so beispielsweise Fingerabdruckdaten, Stimmabdruckdaten, digitale Bildvergleichsdaten und anderen Techniken, die einem Fachmann auf dem einschlägigen Gebiet bekannt sind. Die Wählerregistrierung und die Ausgabe anonymer Zertifikate zur Verwendung prüfbarer Mischungen wird nachstehend beschrieben.
  • Der Servercomputer 108 enthält eine Servermaschine 120, eine Websiteverwaltungskomponente 122, eine Datenbankverwaltungskomponente 124 wie auch weitere nicht gezeigte Komponenten. Die Servermaschine 120 nimmt zusätzlich zu der Standardfunktionalität Teile des elektronischen Abstimmprotokolls wahr. Das Verschlüsselungsprotokoll kann auf dem Serverrechner gespeichert werden, wobei Teile dieses Protokolls auch auf den Clientrechnern zusammen mit geeigneten Konstanten gespeichert werden können. Das vorgenannte Protokoll kann auf computerlesbaren Medien, darunter magnetischen und optisch lesbaren und löschbaren Computerspeicherplatten, gespeichert und verteilt sein. Es kann auf Halbleiterchips (beispielsweise EEPROM) mikrocodegespeichert sein. Es kann jedoch auch elektronisch über das Internet oder andere Netzwerke verteilt werden. Einem Fachmann auf dem einschlägigen Gebiet erschließt sich, dass Teile des Protokolls auf dem Servercomputer lokalisiert sein können, während entsprechende andere Teile auf dem Clientcomputer lokalisiert sind. Datenstrukturen und die Übertragung von Daten, die für das vorgenannte Protokoll spezifisch sind, sind auch in der vorliegenden Erfindung enthalten. Die Servermaschine 120 kann alle notwendigen Stimmzettelübertragungen an autorisierte Wähler, das Stimmzettelsammeln, das Prüfen von Stimmzetteln (beispielsweise das Überprüfen digitaler Signaturen und das Durchlassen einer Gültigkeit eingeschlossener Nachweise in Stimmzetteln), die Stimmensammlung, die Entschlüsselung der Stimmzettel und/oder die Stimmentabellierung ausführen. Bei einem alternativen Ausführungsbeispiel sammelt die Servermaschine 120 einfach sämtliche elektronischen Stimmzettel in der Funktion eines Datensammelzentrums. Die elektronischen Stimmzettel werden dann gespeichert und an eine Drittseitenorganisation weitergeleitet, die die Wahl durchführt, so beispielsweise an eine Behörde vor Ort, und zwar zusammen mit den Werkzeugen zum Mischen der Stimmzettel, zum Entschlüsseln der Liste und zum Erzeugen von Wahlergebnissen. Ebenso kann Wahlaufsichtsinformation, so beispielsweise Gültigkeitsnachweise der Mischungen und dergleichen, vor Ort gespeichert oder der Behörde vor Ort oder der anderen Organisation zur Verfügung gestellt werden.
  • Die Webpagekomponente 122 übernimmt die Erstellung und das Anzeigen oder Routen von Webpages, so beispielsweise einer elektronischen Wahlumenwebpage, wie nachstehend noch beschrieben wird. Wähler und Anwender können auf den Servercomputer 108 mittels einer hierfür eigens eingerichteten URL zugreifen, so beispielsweise über http:\\www.votehere.net, oder über eine für die Wahl eingerichtete URL, so beispielsweise eine URL für die Behörde vor Ort. Die Behörde vor Ort kann das Servercomputersystem 108 direkt hosten oder betreiben oder empfangene elektronische Stimmzettel automatisch an einen Stimmenauthorisierer von dritter Seite weiterleiten, der das Servercomputersystem betreiben kann. Die URL oder ein beliebiger anderer damit verbundener Link oder eine entsprechende Adresse kann als beliebiger Resource-Locator ausgebildet sein.
  • Der Webpageverwaltungsvorgang 122 und der Server 108 können sichere Abschnitte oder Seiten enthalten, die nur von autorisiertem Personal besucht werden können, so beispielsweise von autorisierten Wählern oder Systemverwaltern. Der Servercomputer 108 kann eine SSL (secure socket layer) oder Tokens oder Cookies einsetzen, um derartige Anwender zu authentisieren. Bei kleineren Wahlen oder bei Wahlen, wo die Wahrscheinlichkeit eines Betruges niedrig ist (oder wo ein Betrug nahezu keine Auswirkungen auf das Ergebnis hat) kann das System 100 einfache Netzwerksicherungsmaßnahmen zum Sammeln und Speichern von Stimmen, wie nachstehend beschrieben, nutzen, anstatt dass komplizierte elektronische verschlüsselte Stimmzettel, wie in der vorgenannten Patentanmeldung beschrieben, zum Einsatz kämen. Verfahren zur Authentisierung von Anwendern (so beispielsweise durch die Verwendung eines Passwortes), das Erstellen sicherer Übertragungswege und das Bereitstellen sicherer Server und Webpages sind einem Fachmann auf dem einschlägigen Gebiet bekannt.
  • Das Wahlverfahren und -system setzen ein „Bulletinboard" ein, bei dem jede Stimmabgabe digital signiert wird, und nichts gelöscht werden kann. Siehe hierzu die Handreichungen von K. Sako, J. Kilian, R. Cramer, R. Gennaro und B. Schoenmakers. Das Bulletinboard ist als Server implementiert. Die „Wahlurne" ist beim Bulletinboard lokalisiert und hält sämtliche verschlüsselten Stimmzettel. Die Löschung kann verhindert werden, indem die Webserverdaten auf ein WORM-Dauerspeichermedium (write-once, read many WORM) oder eine ähnliche Vorrichtung geschrieben werden. Weitere Details betreffend ein derartiges Bulletinboardsystem finden sich in der US-Patentanmeldung 09/534,836 mit dem Titel „Electronic Voting Scheme Employing Permanent Ballot Storage".
  • Man beachte, dass neben demjenigen Ausführungsbeispiel der Erfindung, das hier beschrieben wurde, und das das Internet zur Verbindung von Computern einsetzt, andere alternative Ausführungsbeispiele möglich sind. So können beispielsweise Aspekte der Erfindung auch bei alleinstehenden Rechnern verwirklicht werden. Aspekte der Erfindung können darüber hinaus mittels beliebiger untereinander verbundener Datenverarbeitungsmaschinen erreicht werden. Anstelle des Einsatzes eines Browsers können derartige Maschinen Clientsoftware zum Implementieren von Aspekten der Verfahren oder Protokolle gemäß vorliegender Beschreibung anwenden.
  • 9. Beispiel für eine Wahl
  • Eine Anwendung des allgemeinen k-Mischungsprotokolls betrifft das Gebiet des elektronischen Wählens. Um eine Wahl universell prüfbar zu machen, müssen vorgelegte Stimmzettel am Anfang unwiderlegbar mit einem gültigen (das heißt registrierten) Wähler verbunden werden können. Die Stimmzettel müssen auf irgendeine Weise mittels eines prüfbaren Verfahrens „von ihren Signaturen" getrennt werden, das heißt mittels eines Verfahrens, das eine Unterdrückung mündlicher Stimmabgaben während des Trennungsvorganges nicht zulässt, bevor diese „geöffnet" werden können.
  • Das hier dargestellte Protokoll beruht auf einer Menge von N „Tabellierungsbevollmächtigten" mit unterschiedlichen Interessen an den Wahlergebnissen.
    • 1. Das Protokoll ist ein Schwellenverfahren, da sich wenigstens t Bevollmächtigte ehrlich verhalten müssen, damit die Tabellierung fertiggestellt werden kann (Der Parameter t kann vor der Wahl als beliebiger Wert mit 1 ≤ t ≤ N gewählt werden). Daher ist es insbe sondere nicht notwendig, dass die Bevollmächtigten ihre Mischungen in einer beliebigen Reihenfolge beenden, wobei darüber hinaus nicht einmal notwendig ist (außer für den Sonderfall t = N), dass sämtliche Bevollmächtigten teilnehmen.
    • 2. Auch für den Fall, dass sich sämtliche Bevollmächtigten verschwören, können sie keine falschen Wahlergebnisse erzeugen, ohne dass sie von einer externen Aufsicht ertappt würden, die die Ergebnisse prüft.
    • 3. Die Geheimhaltung einer Einzelstimme kann nur dadurch gefährdet werden, dass sich wenigstens t Bevollmächtigte verschwören.
  • Das Protokoll lautet folgendermaßen.
  • Erstens: Initialisierung der Wahl
    • 1. Die Bevollmächtigten einigen sich zunächst auf die Wahlparameter:
    • (a) zu den Parametern, die für eine Wahl notwendig sind, zählen die Menge der ausgewählten Wähler, die Fragen auf dem Stimmzettel, die Antworten auf dem Stimmzettel, die Gestaltung der Stimmzettel, die Zeitpunkte, zu denen die Wahllokale geöffnet und geschlossen werden sollen, und dergleichen mehr;
    • (b) die Sammlung der Tabellierungsbevollmächtigten selbst (im Folgenden wird die Anzahl der Bevollmächtigten in dieser Gruppe mit N bezeichnet);
    • (c) der Schwellenparameter t;
    • (d) ein Mischparameter mit 1 ≤ s ≤ t (s = t wäre hierbei die beste Wahl);
    • (e) eine Gruppe G und ein Untergruppengenerator g ∊ G (Um eine sichere Verschlüsselung zu erreichen, sollten die Primfaktoren von |g| groß sein, wobei diese Anforderung jedoch von den Bevollmächtigten selbst ausgelegt werden kann);
    • (f) eine standardmäßige „Bitverschlüsselung" für die Antwort beziehungsweise für die Antworten (beispielsweise ASCII) und eine kleine ganze Zahl d ≥ 1 für die Nachrichtenbehörde vor Ort. Die Nachrichtenbehörde vor Ort betrifft eine Unterabteilung jedes Stimmzettels, auf die man sich geeinigt hat, und entspricht der Stimmzettelformatierung (ähnlich dem Layout eines Papierstimmzettels, wo angegeben ist, wo die Antworten auf jede Frage auf dem Stimmzettel anzugeben sind). d wird üblicherweise möglichst klein gewählt, um die Größe des sich ergebenden Stimmzettels klein zu halten. In den meisten Fällen ist die Wahl d = 1 ausreichend, da die Nachrichtenbehörde vor Ort durch die Schlüssellänge festgelegt ist, und da eine ausreichend große Schlüssellänge (beispielsweise 1024 Bit) für die meisten Stimmzettel mit einer in der Praxis tragbaren Anzahl von Fragen ausreichend ist;
    • (g) ein Gruppenelement h ∊ <g>, das mittels eines geheimen (N, t)-Teilverfahrens erstellt ist, das von den Bevollmächtigten durchgeführt wird (siehe hierzu den Beitrag von T. Pedersen).
  • Zweitens sobald Einigkeit über die Wahlparameter erzielt worden ist, "signieren" sämtliche bevollmächtigt den diese und eine Darstellung designierte Menge der Parameter wird zum 7.4. Walze:
  • Zweitens: Wählen
    • 1. Während der Wahl (das heißt, während „die Wahllokale offen sind") verschlüsselt jeder Wähler V seine Antwort beziehungsweise seine Antworten mittels der standardmäßigen Wahlbitverschlüsselung (auf die sich die Bevollmächtigten während der Initialisierung der Wahl, siehe oben, geeinigt haben, und die sie signiert haben) zu einer Folge von Nachrichten m1, ..., md ∊ G (siehe hierzu den nachfolgenden Abschnitt). Die „Nachrichtenbehörde vor Ort" d ist ein weiterer Wahlparameter (siehe oben).
    • 2. V wählt unabhängig und zufällig Exponenten α1, ..., αd aus 0 ≤ αj ≤ |g| für die Verschlüsselung.
    • 3. V gibt an das Stimmzettelsammelzentrum die verschlüsselte Antwortenfolge (gα 1, hα 1m1 2), ..., (gα d, hα dmd 2) (16)zurück, und zwar zusammen mit einer „beigefügten" (attached) digitalen Signatur, die von V erzeugt worden ist, um die Antwort zu authentisieren, indem sie mit einem bestimmten geeigneten Wähler verknüpft wird.
    • 4. Hält die von V vorgelegte digitale Signatur einer Prüfung stand, und wurden an V vorher keine Stimmzettel ausgegeben, so wird an V ein Nachweisschein (eine Quittung) ausgegeben, die von der zentralen Sammelagentur signiert ist. Durch diesen Nachweisschein wird bestätigt, dass ein Stimmzettel von diesem Wähler bei dieser bestimmten Wahl angenommen worden ist, wobei jedoch keinerlei Information (nicht einmal verschlüsselte oder portionierte Information) über den Inhalt des Stimmzettels enthalten ist. Der Nachweisschein kann an den Wähler auch übersandt werden. Der Nachweisschein dient auch dem Nachweis, dass der Stimmzettel des Wählers nicht verloren gegangen oder böswillig gelöscht worden ist.
  • Drittens: Tabellieren der Ergebnisse
    • 1. Zu Beginn wird die Sammlung der Wählerantworten in 2d Folgen angeordnet, wobei jede die Länge Ncast aufweist, wobei Ncast die Gesamtzahl der empfangenen Stimmzettelantworten ist. Jede Folge entspricht einer Koordinate im Standardstimmzettelantwortformat (Gleichung 16). Die Einträge in jeder Folge sind vom Wähler geordnet. Der jedem Wähler zugeordnete Index ist nicht wichtig. Es muss nur sichergestellt sein, dass die Indizes konsistent verwendet werden. Auf diese Weise kann ein externer Beobachter einfach überprüfen, dass die signierten Stimmen transformiert worden sind, und dass bei Anwendung der richtigen Interpretation auf das Datenlayout immer noch dieselbe Menge von Antworten dargestellt ist, die signiert und empfangen worden ist.
    • 2. In einer beliebigen Reihenfolge führt eine Folge von s Bevollmächtigten jeweils die nachfolgenden Schritte aus.
    • (a) Sei S der in der Folge aktuelle Bevollmächtigte.
    • (b) S wählt unabhängig und zufällig dNcast Exponenten 1 ≤ βjl ≤ |g| mit 1 ≤ j ≤ Ncast und 1 ≤ l ≤ d.
    • (c) S berechnet die Gruppenelemente gs(j, l) = gβ jl und hs(j, l) = hβjl. Zudem wird ein Chaum-Pedersen Zwischenbeweis an (g, gs(j, l), h, hs(j, l)) ... erzeugt.
    • (d) S transformiert sodann die 2d eingegebenen Folgen in 2d Zwischenfolgen. Der j-te Eintrag der l-ten eingegebenen Folge der Form gα m wird durch Multiplikation hiervon mit gs(j, l) transformiert, und der j-te Eintrag der l-ten eingegebenen Folge der Form hα m wird durch Multiplikation hiervon mit hs(j, l) transformiert. Die transformierten Einträge werden alle in der gleichen Reihenfolge gehalten.
    • (e) S wählt einen zufälligen Exponent 0 ≤ c ≤ |g| und eine zufällige Permutation πl ∊ ΣNcast und legt hS = gc fest.
    • (f) S nimmt anschließend eine allgemeine k-Mischung (mit k = Ncast) an jeder der 2d Zwischenfolgen vor, und zwar unter Verwendung der geheimen Parameter c und πl und unter Wiederverwendung derselben einfachen k-Mischung als Basis für jede allgemeine k-Mischung (Hierdurch wird sichergestellt, dass jede der 2d Folgen derselben geheimen „Permutation" unterzogen wird).
    • (g) (i) S wiederholt Schritt (d) mit neuen zufälligen β's.
    • (g) (ii) Es wird jede Koordinate jeder Stimme in die 1/c-te Potenz gehoben und ein Chaum-Pedersen-Nachweis für diese Operation erbracht, wodurch c geheim gehalten wird, während Prüfer überzeugt werden, indem einfach die Rollen von g und C = gc vertauscht werden.
    • (h) (Man beachte, dass S die Zwischenfolgen in diesem Stadium nicht explizit berechnen muss. Dies ist lediglich bei einer externen späteren Prüfung notwendig, wobei jedoch die Ausgabe und die Zwischenfolgen, die auf Anfrage von einer Aufsicht erstellt worden sind, direkt berechnet werden können. Gleichwohl können Sicherheitsbelange vorgeben, dass die Aufsicht die Prüfung vor Beginn der nächsten Mischung vornimmt.)
    • 3. Gemischte Stimmzettel werden nun neuerstellt, indem Einträge von jeder der 2d Folgen auf die gleiche Weise wie die Bildung kombiniert werden.
    • 4. Schließlich führen t Bevollmächtigte das Schwellenentschlüsselungsprotokoll an jedem gemischten Stimmzettel aus.
  • Im Allgemeinen enthält die Tabellierungsphase zwei Unterphasen. Zunächst führt eine Menge von T ≤ t Tabellierungsbevollmächtigten nacheinander eine prüfbare k × d-Mischung (wobei k die Gesamtzahl der abgegebenen Stimmzettel beschreibt) aus. Die ausgegebene Folge und die Nachweise jeder Mischung werden signiert und an den nächsten Tabellierungsbevollmächtigten weitergegeben (Jeder Tabellierungs bevollmächtigte führt seine Mischung nur dann aus, wenn die Eingabe einer Signaturüberprüfung und einer Überprüfung des Zero-Knowledge-Nachweises (ZKP) der (vorherigen) Mischung und den Chaum-Pedersen-Zwischennachweisen standhält). Zweitens verwendet, sobald die Gesamtzahl der Mischungen ausgeführt und geprüft worden ist, eine Menge von t Tabellierunsgbevollmächtigten ihre geheimen Schlüsselanteile, um gemeinsam (und prüfbar) eine Entschlüsselung der m's in der endgültigen Menge der EIGamal-Paare zu berechnen.
  • Im Allgemeinen kennt jeder mischende Bevollmächtigte die Eingabe/-Ausgabe-Entsprechung, da sie zuallererst für die Erzeugung der Permutation verantwortlich ist. Gleichwohl werden die Mischungen kaskadiert. Daher wird die Ausgabe einer Mischung als Eingabe für eine weitere Mischung verwendet, die von einem anderen mischenden Bevollmächtigten ausgeführt wird. Wenn sich also nicht sämtliche Bevollmächtigten verschwören, hat kein mischender Bevollmächtigter Kenntnis von der Entsprechung zwischen der anfänglichen Eingabe und der endgültigen Ausgabe haben. Wie nachstehend noch beschrieben wird, beseitigt eine weitere Verbesserung jedoch auch diese Möglichkeit.
  • 4. Externes Prüfen der Wahl
  • Auf Anforderung veröffentlicht jeder Bevollmächtigte:
    • (a) seine Zwischenfolgen;
    • (b) Chaum-Pedersen-Nachweise P(g, gs(j, l), h, hs(j, l) für 1 ≤ j ≤ Ncast und 1 ≤ l ≤ d;
    • (c) seinen k-ten Mischungsnachweis;
    • (d) die Chaum-Pedersen-Nachweise des vorstehenden Unterschrittes (g).
  • Im Allgemeinen kann ein Wahltranskript veröffentlicht werden, das die nachfolgenden Elemente enthält:
    • 1. das Wählerregister, enthaltend die Wähleridentifizierungsinformation und die öffentlichen Schlüssel der Wähler;
    • 2. die ursprüngliche Menge der k wählersignierten Stimmzettel;
    • 3. die t k × d-Mischungen (einschließlich der Nachweise, wie vorstehend angemerkt);
    • 4. die Gültigkeitsnachweise für die endgültige Entschlüsselung;
    • 5. die endgültigen Listen.
  • Bemerkung: Es sind einige Variationen der Reihenfolge, in der die Bevollmächtigten ihre Tabellierungsschritte (obige Tabellierungsschritte 2(a) bis 2(h)) ausführen, möglich. Insbesondere können bei alternativen Ausführungsbeispielen die Schritte ineinander verschachtelt werden.
  • Bemerkung: Die Phase der externen Prüfung kann ausgeführt werden, während die Tabellierung noch läuft, oder auch zu einem späteren Zeitpunkt. Die Bevollmächtigten müssen nur ihre Phasenparameter speichern.
  • Das schematische Diagramm von 2 zeigt eine grundlegende Anwendung des Mischungsprotokolls auf eine Wahl, die als Verfahren 200 dargestellt ist. In dem Block 202 werden drei verschlüsselte Stimmzettel vorgelegt, und zwar jeweils einer für die Wähler Joe Smith, Sally Jones und Ian Kelleigh. In dem Block 204 wird die Liste oder das Register der Wähler von den verschlüsselten Stimmzetteln getrennt, die in dem Block 206 gezeigt sind. Anschließend wird eine Einwegneuverschlüsselung der Stimmzettel vorgenommen, um eine gemischte Menge von Stimmzetteln zu erzeugen, die in dem Block 208 gezeigt ist. Ein Mischungsgültigkeitsnachweis wird auf Basis der ersten Mischung erzeugt, was in dem Block 210 gezeigt ist. Der Gültigkeitsnachweis der Mischung versetzt eine dritte Seite in die Lage sicherzustellen, dass an sämtlichen eingegebenen Daten (Stimmzetteln) die gleiche Operation ausgeführt wurde, und dass keine Änderungen an den Stimmzetteln vorgenommen worden sind.
  • Eine zweite Mischung der (vorher bereits gemischten) Stimmzettel wird ausgeführt, um eine zweite gemischte Menge von Stimmzetteln zu erzeugen, was in dem Block 212 gezeigt ist. Erneut wird ein Gültigkeitsnachweis der Mischung erzeugt, der in dem Block 214 gezeigt ist. Die gemischten Stimmzettel des Blockes 212 werden ein drittes Mal gemischt, um eine endgültige gemischte Menge von Stimmzetteln, siehe Block 216, zu erzeugen. Ein dritter Gültigkeitsnachweis 218 wird ebenfalls auf Basis der dritten Mischung erzeugt. Insgesamt wird ein 3 × 3-Mischungsfeld bei diesem Beispiel erzeugt. Nach der Mischung werden die Stimmzettel entschlüsselt, um eine Liste zu erzeugen, was in dem Block 220 gezeigt ist. Eine dritte Seite kann die Wahl prüfen, indem unter anderem jeder Gültigkeitsnachweis der Mischung überprüft wird, um sicherzustellen, dass jeder Mischende die Integrität der Wahl gewahrt hat.
  • Das Mischungsprotokoll wurde vorstehend als effektive eigene Unterroutinen dargestellt, die bei verschiedenen Anwendungen zum Einsatz kommen können, so beispielsweise bei einem elektronischen Wählverfahren. Eine erste Unterroutine stellt die Funktionalität für Nachweise skalierter iterierter logarithmischer Multiplikation zwischen einem Nachweisenden und einem Prüfer bereit. Eine zweite Unterroutine stellt die Funktionalität des einfachen Mischungsprotokolls bereit und verwendet die Nachweise der skalieren iterierten logarithmischen Multiplikation. Anschließend implementiert eine dritte Unterroutine die allgemeine Mischungsfunktionalität, bei der der Mischende die Exponenten nicht kennt, wobei auf der zweiten Unterroutine der einfachen Mischung aufgebaut wird. Eine vierte Unterroutine erweitert die dritte Routine auf das Mischen von k-Tupeln von Elementen.
  • In 3 ist eine Routine 300 zur Implementierung von Nachweisen der skalierten iterierten logarithmischen Multiplikation gezeigt. In dem Block 302 wird eine Übereinkunft über die anfänglichen verschlüsselungstechnischen Parameter getroffen, so beispielsweise seitens einer Wahlorganisation. Diese Anfangsparameter umfassen die Gruppe (beispielsweise Zp), einen Untergruppenoperator g, die Größe der Gruppe G und die Größe der erzeugten Untergruppen p und q. Diese Information kann an eine Anzahl n von mischenden oder bevollmächtigten Computern 114 oder an Prüfercomputer 130 übermittelt werden.
  • In dem Block 304 wählt der Mischende (oder der Nachweisende P) einen geheimen Exponenten c und erzeugt C auf Basis des Untergruppengenerators g. Zusätzlich kann der Mischende Y Werte für die empfangenen Werte X empfangen oder erzeugen und für Indizes von i gleich 1 bis k die Werte von X, Y und C an den Prüfer übermitteln.
  • In dem Block 304 erzeugt der Mischende zudem geheime zufällige Exponenten ri, die auf Basis des Untergruppengenerators g zur Erzeugung von Werten Ri für jeden Wert von i gleich 0 bis k verwendet werden. Auf ähnliche Weise verwendet in dem Block 304 der Mischende den erzeugten zufälligen Exponenten ri zur Erzeugung von Wi und Zi.
  • In dem Block 306 liefert der Mischende Chaum-Pedersen-Nachweise für jedes Element 1 bis k für die Werte von Rl_l, Xi, Ri, Wi und Yi, C, Wi, Zi. Diese Werte für die Chaum-Pedersen-Nachweise werden anschließend dem Prüfer V zur Verfügung gestellt, zusammen mit den Werten zi und R0. Der Prüfer prüft anschließend, siehe Block 308, die Richtigkeit der Nachweisdaten und nimmt den Nachweis an oder lehnt ihn ab. Mit anderen Worten, der Prüfer überprüft, dass jedes z als Exponent bezüglich des Untergruppengenerators g ein entsprechendes Z erzeugt, überprüft jeden Chaum-Pedersen-Nachweis, überprüft, dass das Produkt der zi's gleich z ist, und dass der Wert R0, zur Potenz z erhoben, gleich Rk ist.
  • In 4 ist eine Routine 400 zur Durchführung eines einfachen Mischungsprotokolls, wie vorstehend beschrieben, gezeigt. Nach dem Block 302 ist der Block 404 ähnlich dem Block 304 aufgebaut, wobei jedoch der Mischende die X Elemente mittels einer Permutation π zur Erzeugung der Y Elemente mischt. Der Prüfer erzeugt in dem Block 406 einen zufälligen Wert t als Abfrage. In Reaktion verwendet der Mischende in dem Block 408 t als Exponent hinsichtlich des Untergruppengenerators g, um den Wert T geheim zu erzeugen, der bei Kombination mit dem geheimen Exponenten c des Mischenden den Mischenden in die Lage versetzt, einen Wert S geheim zu erzeugen. Wie gezeigt, erzeugt der Mischende sodann öffentlich die Werte U und V und liefert einen Chaum-Pedersen-Nachweis für (g, C, T, S) in dem Block 410. In dem Block 410 erzeugt der Mischende zudem Nachweisdaten als Nachweis der skalierten iterierten logarithmischen Multiplikation für jedes der Elemente X und Y in der Reihe von i gleich 1 bis k. Die Nachweisdaten werden anschließend an den Prüfer, siehe Block 412, übermittelt. Der Prüfer prüft die Richtigkeit der Nachweisdaten und nimmt sie an oder lehnt sie ab. Mit anderen Worten, der Prüfer führt das Protokoll des Nachweises der skalierten iterierten logarithmischen Multiplikation für die Folgen U und V, siehe oben, aus und überprüft den Commitmentwert C.
  • In 5 ist ein allgemeines Mischungsprotokoll 500 gezeigt, bei dem der Mischende die Exponenten nicht kennt. Die anfänglichen Schritte in dem Protokoll 500 sind ähnlich zu denjenigen von Schritt 400, außer dass der Prüfer ein zufälliges Element zu den geheimen Exponenten des Mischenden addiert. Wie in Block 502 gezeigt ist, erzeugt der Mischende die zufällige Folge von Anfangswerten, die als Exponenten für den Untergruppengenerator g zur Erzeugung einer Anfangsfolge (Ūi = gū i) erzeugt werden. Auf gleiche Weise erzeugt, siehe Block 504, der Prüfer geheim eine weitere Folge von Elementen e für die Werte i = 1 bis k und stellt die Folge für den Mischenden als Abfrage bereit. In dem Block 406 addiert der Mischende geheim die Folgeabfrage e zu der vorherigen Folge, um anschließend öffentlich eine Reihe von Werten U(Ui = ge iŪi) zu erzeugen.
  • In dem Block 508 nimmt der Mischende eine einfache k-Mischung an der Folge u mit einem anderen geheim erzeugten Commitmentwert D (bei dem ein anderer geheimer Exponent d, der von dem Mischenden gewählt worden ist, zum Einsatz kommt) vor und erzeugt eine Folge von Werten V. Anschließend legt der Mischende öffentlich Chaum-Pedersen-Nachweise für eine Folge von Werten A und B für die Indizes 1 bis k offen, erzeugt das Produkt der Folgen als Werte A und B und liefert einen Chaum-Pedersen-Nachweis für die Beziehung zwischen D, A, C und B, wie gezeigt. In dem Block 510 werden diese Prüfdaten an den Prüfer übermittelt, der sie in dem Block 512 prüft.
  • 10. Ausgabe anonymer Zertifikate mit prüfbaren Mischungen
  • Vorstehend wurden ein neues effizientes Verfahren zur prüfbaren Mischung verschlüsselter Daten und eine besondere Art angegeben, wie dieses Verfahren verwendet werden kann, um ein universell prüfbares elektronisches Wählsystem zu verwirklichen. Das System stellt auf eine Ansammlung von Wahlbevollmächtigten zum „Mischen" oder „Anonymisieren" der Stimmzetteldaten ab, die zum Zeitpunkt der Wahl gesammelt worden sind.
  • Dieser Vorgang findet statt, nachdem sämtliche Stimmen abgegeben worden sind, jedoch bevor die Stimmzettel entschlüsselt und tabelliert worden sind. Die Gültigkeitskonstruktion verhindert, dass ein oder mehrere Wahlbevollmächtigte irgendwelche Änderungen an den ursprünglichen Wahldaten vornehmen, ohne dass dies von irgendjemandem, der das endgültige Wahltranskript vorliegen hat, aufgedeckt werden könnte.
  • Ein Nachteil dieser Vorgehensweise besteht darin, dass die Wähleranonymität nicht durch einen derart starken Mechanismus geschützt ist, wie dies bei der Wahlintegrität der Fall ist. Die Wahlintegrität ist durch reine rechentechnische Nichtnachvollziehbarkeit geschützt – es ist für die Wahlbevollmächtigten nahezu unmöglich, falsche Wahlergebnisse zu erzeugen, ohne dass dies aufgedeckt würde – und zwar auch dann, wenn sich alle hierbei verschwören. Gleichwohl wären sie bei Vorliegen einer Verschwörung in der Lage, den Inhalt der Stimmzettel der einzelnen Wähler relativ einfach zu bestimmen.
  • Dieselbe zugrundeliegende Mischungskonstruktion kann verwendet werden, um ein neues Wahlprotokoll zu erstellen, bei dem diese Schwäche beseitigt ist. Die Grundidee besteht darin, das Mischen zur Registrierung hin beziehungsweise in die Stimmzettelanforderungsphase der Wahl hinein zu verschieben, wodurch die Identität der Wähler anonymisiert wird, ohne dass die strikte Kontrolle wie auch die Nachprüfbarkeit der Wahlregularien aufgegeben würden – das heißt, dass lediglich diejenigen Stimmzettel, die von registrierten Wählern abgegeben worden sind, gezählt werden können, und dass mehrere Stimmzettel von einem Wähler nicht angenommen werden. Bei dieser Ausgestaltung ist nicht einmal mehr die Verschlüsselung der Stimmzettel notwendig, und die Tabellierung kann „im Klaren" vorgenommen werden, was offensichtlich leicht zu überwachen ist.
  • Die Idee der Verwendung der Konstruktion als Teil eines anonymen Registriervorganges hat Anwendungen, die über das Wählen hinausgehen. In einer beliebigen Situation, in der der Zugang zu einer bestimmten Ressource, so beispielsweise zu einem Server oder einer Datei, nur auf autorisiertes Personal beschränkt sein soll, wo jedoch diejenigen, die autorisiert sind, den Schutz ihrer eigenen Identität wahren möchten, kann diese Konstruktion verwendet werden, um beiden Anforderungen gleichzeitig gerecht zu werden. So können beispielsweise die Anwendungen von Gruppensignaturen auf die hier beschriebenen Protokolle gleichem aßen anwendbar sein. Man beachte, dass der Begriff „Wähler" im Sinne der folgenden Beschreibung allgemein verwendet wird und durch ein beliebiges Individuum oder eine Organisation, die die hier beschriebenen Protokolle in Teilen oder in Gänze anwendet, ersetzt werden kann.
  • Zusammenfassung der Protokolle
  • Es werden zwei Protokollvarianten bereitgestellt, die beide dem gleichen Informationsfluss auf hohem Niveau folgen. Jedes Protokoll beginnt mit der Annahme, dass eine Menge öffentlicher Schlüssel in irgendeiner zentralen Authentisierungsdatenbank oder auf einem Zertifikatsserver gespeichert worden ist. Jeder entsprechende private Schlüssel ist einem und nur einem geeigneten Wähler bekannt. Darüber hinaus ist die Entsprechung zwischen dem öffentlichen Schlüssel und dem einzelnen Wähler der Gesamtheit (Entität) oder den Gesamtheisten bekannt, die den Zertifikatsserver kontrollieren (Die genaue Form der Paare aus öffentlichen und privaten Schlüsseln ist bei jeder Variante des Protokolls geringfügig anders). In der Praxis treten die öffentlichen Schlüssel wahrscheinlich in Form eines digitalen Zertifikates auf, das eine Bündelung sämtlicher identi fizierender Information zusammen mit dem öffentlichen Schlüssel zu einem einzigen Stück formatierter Daten ermöglicht (Dieser Übereinkunft folgt man bei den allgemein anerkannten PKI's (Publik Key Infrastructures)).
  • Üblicherweise wird die Verteilung der Schlüssel und Zertifikate in einem streng kontrollierten Registriervorgang umgesetzt, wobei der sicherste von diesen Vorgängen ein „anhand der Person" vorgenommener Registriervorgang ist, bei dem die Wähler physisch zum Zeitpunkt der Erzeugung des Zertifikates identifiziert werden können (ein derartiger Registriervorgang ist im Einzelnen in der US-Patentanmeldung 091534,836, siehe oben, beschrieben). Es ist wichtig, zwischen zwei Arten von Zertifikaten zu unterscheiden, die in den Protokollen existieren. Die erste Art von Zertifikat ist diejenige, die gerade beschrieben wurde, bei der die Verknüpfung zwischen öffentlichem Schlüssel und individuellem Schlüssel öffentlich oder zumindest weitgehend öffentlich ist („Standardzertifikat"). Die zweite Art von Zertifikaten ist diejenige, die während der Phasen des Protokolls verteilt wird, die der anfänglichen Registrierphase folgen („anonyme Zertifikate"). Die anonymen Zertifikate sind voneinander unterscheidbar, und zwar zumindest anhand der Tatsache, dass sie verschiedene öffentliche Schlüssel enthalten, wobei jedoch das einzige Individuum, das den Eigner eines vergebenen anonymen Zertifikates kennt, der Eigner selbst ist. Das Ziel des Protokolls besteht dann, sicherzustellen, dass nur an Individuen, die Eigner eines der Standardzertifikate sind, ein anonymes Zertifikat ausgegeben wird.
  • Bei den meisten Anwendungen, so beispielsweise im Falle einer Wahl, besteht das Ziel dann, sicherzustellen, dass an jedes Individuum nur so viele anonyme Zertifikate ausgegeben werden, wie er/sie Standardzertifikate hat (üblicherweise hat jeder Eigner eines Standardzertifikates nur ein Standardzertifikat).
  • Sobald die Registrierung der Standardzertifikate beendet ist, laufen die Protokollvarianten folgendermaßen ab.
  • Initialisierung: Eine Menge K unspezifizierter (roher) öffentlicher Schlüssel wird auf dem Zertifikatsserver (beispielsweise dem Server 108) erstellt und anfänglich als Menge der öffentlichen Schlüssel gewählt, die mit der Menge der Standardzertifikate verknüpft ist. Die Menge der öffentlichen Schlüssel wird während der Anfangsregistrierphase jedes Individuums erzeugt, wenn jenes Individuum sich registriert und beispielsweise ein digitales Standardzertifikat erhält. Die während des Anfangsregistriervorgangs erzeugten öffentlichen Schlüssel werden zusammengegeben, um die Menge K zu erzeugen. Jedes Individuum hält einen privaten Schlüssel, der mit einem der öffentlichen Schlüssel in der Menge K verknüpft ist.
    • 1. Ein Individuum P kontaktiert den Zertifikatsserver über einen digitalen Kommunikationskanal (so beispielsweise das Internet), wodurch es kundtut, dass es ein anonymes Zertifikat erhalten möchte.
    • 2. S gibt an P eine Menge H ⊂ K öffentlicher Schlüssel zurück (wo der öffentliche Schlüssel von S enthalten ist) und speichert die Menge J = K – H (idealerweise gilt H = K und J = 0, wobei aus Gründen der Kommunikationsbandbreite die Inklusion angemessen sein kann. So kann beispielsweise eine Teilmenge öffentlicher Schlüssel K für das Individuum P bereitgestellt werden, wobei die Menge öffentlicher Schlüssel vergleichsweise groß ist, und wobei Bandbreitenrandbedingungen bei der Übertragung die Übertragung einer derart großen Menge von Schlüsseln effektiv einschränken. Aus anderen Gründen kann der Zertifikatsserver nur eine Teilmenge der öffentlichen Schlüssel zurückgeben wollen).
    • 3. P wählt eine Teilmenge M ⊂ K, die auch gleich K sein kann, und setzt M' = H – M.
    • 4. P berechnet H', das eine Mischungstransformation von M (siehe die vorhergehenden und die nachfolgenden Abschnitte) ist. P erzeugt zudem eine formatierte Anforderung anonymer Zertifikate. Dies erfolgt durch Erzeugung eines zufälligen Paares aus öffentlichem und privatem Schlüssel und durch Formatieren des öffentlichen Teiles mit „Zufalls-ID"-Daten, damit eine Entsprechung zu einem bestimmten Zertifikatsformat gewahrt ist (selbstredend muss P auch den privaten Teil an einem sicheren Ort aufbewahren).
    • 5. P gibt H', M und M' an S zurück, und zwar zusammen mit
    • (a) dem Mischungstranskript oder dem Gültigkeitsnachweis, der gegenüber S oder einer Aufsicht nachweist, dass H' tatsächlich eine gültige Mischungstransformation von M ist;
    • (b) einem Nachweis, dass P den privaten Schlüssel kennt, der einem bestimmten Element h ∊ H' entspricht;
    • (c) der formatierten Zertifikatsanforderung.
    • 6. S überprüft, dass H = M ∪ M' zusammen mit der Gültigkeit von 5a und 5b gegeben ist.
    • (a) Versagt irgendeine der Überprüfungen, so zeigt S das Versagen gegenüber P an und beendet entweder die Kommunikation mit P oder ermöglicht P auf geeignete Weise einen Neuversuch.
    • (b) Gelingen beide Überprüfungen, dann gilt:
    • (b) (i) Sollen anonyme Zertifikate nur einmal an jeden Eigner eines Standardzertifikates ausgegeben werden, so setzt S H'' = H' – {h} (17) K = J ⋃ M' ⋃ H'' (18)Ist alternativ aus irgendeinem anderen Grunde die mehrmalige Ausgabe eines anonymen Zertifikates an jeden Eigner eines Standardzertifikates gewünscht, so setzt S K = J ⋃ M' ⋃ H' (19)
    • (b) (ii) S signiert digital die formatierte Zertifikatsanforderung, wodurch ein anonymes Zertifikat erzeugt wird, gibt das (signierte) Zertifikat an P zurück und speichert das Zertifikat für eine spätere anonyme Authentisierung in der Datenbank.
    • 7. Das Verfahren beginnt nun wieder am Anfang mit neuem P und einem entsprechend modifizierten K.
  • Mit anderen Worten, das Individuum P kann gegenüber dem Zertifikatsserver S nachweisen, dass das Individuum einen privaten Schlüssel hält, der mit einem der öffentlichen Schlüssel in der Untermenge M, die von dem Individuum ausgewählt worden ist, verknüpft ist, ohne dass offengelegt wird, welche dies ist, und zwar dadurch, dass die Untermenge M öffentlicher Schlüssel gemischt wird. Nach der Ausgabe eines anonymen Zertifikates entfernt der Zertifikatsserver anschließend den einen gemischten öffentlichen Schlüssel aus der gemischten Menge öffentlicher Schlüssel zwecks Verwendung für das nächste Individuum, das ein anonymes Zertifikat anfordert.
  • Anonyme Authentisierung und Signaturen
  • Die grundlegende Konstruktion des vorgenannten Mischungsprotokolls löst das nachfolgende Problem.
  • Problem der allgemeinen k-Mischung: Zwei Folgen von k Elementen von Zp, nämlich S = {X1, ..., Xk} und T = {Y1, ... Yk}, sind öffentlich bekannt. Darüber hinaus ist eine Konstante c ∊ Zq nur P bekannt, wohingegen ein Commitmentwert von c, nämlich C = gc, V mitgeteilt wird. P muss nun V überzeugen, dass es eine Permutation π ∊ Σk gibt, die die Eigenschaft Yπ(i) = Xi c (20)für alle 1 ≤ i ≤ k aufweist, ohne dass irgendwelche Information über π oder das geheime c offengelegt wird.
  • In dem vorstehenden Mischungsprotokoll wird die Lösung für dieses Problem zunächst als interaktives Nachweisprotokoll dargestellt, das von P und V ausgeführt wird, wobei es jedoch auch nichtinteraktiv gemacht werden kann, indem eine Standardanwendung der Fiat-Shamir-Heuristik zum Einsatz kommt. Wir bezeichnen das sich ergebende Prüftranskript, das von dem Mischenden P erzeugt worden ist, mit T(S, T, g, C).
  • Anonymes Authentisierungsprotokoll 1
  • Bei dieser Variante des Protokolls gilt:
    • • Die öffentlichen Schlüssel sind Elemente h ∊ <g> ⊂ Zp, und die entsprechenden privaten Schlüssel sind einfach die geheimen Exponenten s = logg h.
    • • Die Menge H muss immer derart genommen werden, dass sie gleich K ist, das heißt, es muss H = K gelten.
    • • Die Menge M muss ebenfalls immer so genommen werden, dass sie gleich H ist, das heißt, dass M = H und M' = 0 gelten.
    • • S muss eine zusätzliche modulare ganze Zahl G ∊ <g> speichern, die während jeder Authentisierungssitzung modifiziert wird. Für den Anfang wird G gleich g gesetzt.
  • Das Protokoll geht gemäß Beschreibung in den vorhergehenden Abschnitten weiter, jedoch mit den nachfolgenden Abwandlungen.
    • 1. In Schritt 2 muss S auch G an P zurückgeben.
    • 2. Das Transkript, das an P in Schritt 5a zurückgegeben worden ist, ist genau gleich T(M, H', G, C) = T(H, H', G, C) (21)
    • 3. Der Nachweis der Kenntnis des privaten Schlüssels in Schritt 5b entspricht genau der ganzen Zahl e = cs ∊ Zq, zusammen mit dem bestimmten Wert h' ∊ H' (oder dessen Index), der der nachfolgenden Beziehung genügt. H' = Ge (22)Man beachte, dass es einen und nur einen derartigen Wert gibt. Man beachte darüber hinaus, dass aufgrund der Tatsache, dass c zufällig und unabhängig von s ist, die Offenlegung von e keinerlei Information über s offenlegt. Die entsprechende Überprüfung, die S ausführt, besteht einfach darin, Gleichung 22 zu prüfen.
    • 4. Gelingen sämtliche Überprüfungen in Gleichung 22, so führt S zusätzlich zu den unter 1 und 2 ausgeführten Transformationen zudem die Transformation G = C (23)aus.
  • Anonymes Authentisierungsprotokoll 2
  • Ein Nachteil des ersten anonymen Authentisierungsprotokolls besteht dann, dass die von P zu mischende Menge immer gleich K sein muss. Dieselbe Transformation (Exponenzierung) wird auf alle öffentlichen Schlüssel in der Menge H = K angewendet. Da sämtliche Transkripte T(H, H', G, C) gespeichert werden müssen, bis sämtliche Auf sichtsanforderungen erfüllt sind, kann dies eine große Datenmenge ergeben, wenn die ursprüngliche Menge der Standardzertifikate bereits groß ist. Dieses Problem wird durch das nachfolgende zweite anonyme Authentisierungsprotokoll gelöst.
  • Bei dieser Variante des Protokolls gilt:
    • • Die öffentlichen Schlüssel sind Paare von Elementen (k, h) ∊ <g> × <g>, und die entspre chenden privaten Schlüssel sind einfach die geheimen Exponenten s = logk h.
    • • Die Menge H muss den öffentlichen Schlüssel von P enthalten. Dies kann auf verschiedenen Wegen erfolgen.
    • 1. S und P können sich auf eine Reihe von Neuversuchen einlassen, bis diese Eigenschaff von H gegeben ist.
    • 2. Alternativ können bei einer anfänglichen Registrierung Standardzertifikate „Blöcken" zugewiesen werden. Tritt P erstmalig mit S in Kontakt, identifiziert er sich nur im Umfang seiner Blocknummer.
  • Effektiv wird eine andere Basis G für jedes Individuum P gesetzt, und das Individuum mischt nur eine Untermenge der gesamten Menge öffentlicher Schlüssel (wobei die Untermenge das Paar aus öffentlichen und privaten Schlüsseln des Wählers enthält). Das Protokoll geht gemäß Beschreibung in dem vorherigen Abschnitt weiter, jedoch mit den nachfolgenden Abwandlungen.
    • 1. Das an P in Schritt 5a zurückgegebene Transkript ist das Mischungstranskript für den Satz von Paaren. Man beachte in diesem Zusammenhang die oben angeführten Details dieser Konstruktion.
    • 2. Der Nachweis der Kenntnis des privaten Schlüssels in Schritt 5b ist ein wenig komplizierter, um die Offenlegung des privaten Schlüssels zu vermeiden.
    • (a) P muss gegenüber S ein bestimmtes Paar (k', h') ∊ H' oder dessen Index angeben, der der neue Index desjenigen Paares ist, das zum privaten Schlüssel von P gehört. Dies bedeutet, dass h' = (k')s gilt (Man beachte, dass ein derartiges Paar eindeutig exi stiert, da die Mischoperation sowohl die k's wie auch die h's mit demselben geheimen Exponenten c exponenziert. Daher gilt h = ks dann und nur dann, wenn hc = (kc)s gilt).
    • (b) P legt gegenüber S einen Zero-Knowledge-Nachweis dahingehend offen, dass er, P, s = logg' h' kennt (siehe hierzu die von Chaum verfassten Beiträge). Hierdurch wird nachgewiesen, dass P den entsprechenden privaten Schlüssel kennt, ohne ihn zu offenzulegen.
    • 3. Die entsprechenden Überprüfungen, die S ausführen muss, sind offensichtlich.
    • (a) S überprüft die Gültigkeit des Mischungstranskriptes von P.
    • (b) S überprüft die Gültigkeit des Nachweises von P, wonach ihm bekannt ist, das s = logg' h' gilt.
  • Man beachte, dass bei einem alternativen Ausführungsbeispiel einige oder alle der Schlüssel in der Menge K (das heißt der Teilmenge H) von bestimmten Individuen oder Bevollmächtigten gemischt werden können, bevor irgendein Individuum ein anonymes Zertifikat anfordert. Mit anderen Worten, die Zusammenfassung der öffentlichen Schlüssels kann ausreichend verwürfelt werden, bevor eines der beiden anonymen Authentisierungsprotokolle für die Anforderung eines bestimmten Individuums eingesetzt wird. Im Ergebnis kann bei Protokoll 2 eine kleinere Teilmenge öffentlicher Schlüssel von jedem Individuum gewählt werden.
  • 6 zeigt ein Beispiel einer Routine 600 zur Implementierung der ersten Variante einer anonymen Zertifikatsverteilung. Nach der Initialisierung der verschlüsselungstechnischen Parameter in dem Block 302 wird eine Standardmenge öffentlicher Schlüssel H in dem Block 604 vorgesehen, die von einem Registrierserver gesammelt wird, nachdem eine Menge von Registrierten oder Wählern jeweils registriert worden ist und öffentliche Schlüssel h (die individuell gehaltenen privaten Schlüsseln s entsprechen, siehe Block 606) vorgelegt worden sind. In dem Block 608 wird der Untergruppengenerator g gleich G gesetzt.
  • In dem Block 610 wird eine optionale Verwürfelung, die von einem oder mehreren Bevollmächtigten ausgeführt wird, vorgenommen. In dem Block 610 führt anschließend jeder Bevollmächtigte eine prüfbare Mischung der Menge der öffentlichen Schlüssel H un ter Verwendung von (G, C = Gc) als Commitmentwert der Mischung aus, wobei c ein geheimer Schlüssel ist, der von dem Bevollmächtigten gehalten wird. Jeder Bevollmächtigte gibt die gemischte Menge öffentlicher Schlüssel H' zusammen mit dem Mischungsprüftranskript T(H, H', G, C) zurück, indem die allgemeine Mischung gemäß vorstehender Beschreibung eingesetzt wird. Ist das Prüftranskript richtig, so nimmt der Registrierserver die Ersetzungen G = C und H = H' vor und speichert die vorherigen Werte zusammen mit dem Mischungsprüftranskript für spätere Nachprüfungszwecke ab. Die optionale Verwürfelung in dem Block 610 kann als Teil der vorhergehenden Initialisierung oder in einer beliebigen Phase der Erzeugung des anonymen Zertifikates, wie nachstehend beschrieben wird, vorgenommen werden.
  • Die Blöcke 612 bis 618 stellen eine einzelne Anforderung eines anonymen Zertifikates seitens eines Individuums dar, dem vorher die öffentlichen Schlüssel h in der Menge H übermittelt worden sind. Diese Schritte werden für jeden anfordernden Registrierten wiederholt. Gemäß dem Block 612 erzeugt der Registrierte (oder genauer der Computer 102 des Wählers) eine Anforderung eines anonymen Zertifikates. In Reaktion hierauf beschafft der Registrierserver den Wert G wie auch die Menge öffentlicher Schlüssel H in den Blöcken 614 wieder und gibt sie an den Registrierten aus. In dem Block 616 berechnet der Registrierte eine Mischung und ein entsprechendes Prüftranskript auf Basis des allgemeinen Mischungsprotokolls gemäß obiger Beschreibung und gibt T(H, H', G, C) und e (was gleich cs ist, und nur dem Registrierten bekannt ist) für jedes 1 ≤ j ≤ k aus. Zusätzlich erzeugt in dem Block 616 der Registrierte eine PKI-Zertifikatsanforderung mit einer bestimmten zufälligen Identifikationsinformation. Die zufällige Identifikationsinformation kann eine beliebige User-ID sein, deren Anwendung der Registrierte auswählt, und die nicht dazu dient, den Registrierten zu identifizieren. in dem Block 616 speichert der Registrierte zudem einen entsprechenden privaten Schlüsse! auf Basis dieser Anforderung ab (der sich von dem privaten Schlüssel sj unterscheidet).
  • Gemäß dem Block 618 überprüft der Registrierserver das neue Mischungsprüftranskript und überprüft, ob h'j = Ge gilt. Gelingen beide Überprüfungen, so setzt der Registrierserver H = H' minus den einen öffentlichen Schlüssel, der von dem Registrierserver für die Zertifizierung (h'j), G = C und k = k – 1 gebraucht wurde. Für Aufsichts- beziehungsweise Nachprüfungszwecke speichert der Registrierserver in dem Block 618 zudem das Prüftranskript (das heißt T(H, H', G, C)) des Registrierten. Der Registrierserver signiert zudem digital die Zertifikatsanforderung R, um ein PKI-Zertifikat zu erzeugen, das an den Registrierten zurückgegeben wird. Die Routine ist dann für die Anforderung des nächsten Registrierten bereit.
  • Die Routine von 7 zeigt die zweite Variante gemäß obiger Beschreibung für die Verteilung anonymer Zertifikate. Die Routine 700 ähnelt der Routine 600. Der Block 704 ist ähnlich dem Block 604, mit der Ausnahme, dass die Menge H Paare aus öffentlichen und privaten Schlüsseln enthält, und eine echte Teilmenge sein kann. Auf ähnliche Weise ist Block 710 ähnlich Block 610, wie in 7 gezeigt ist.
  • Nach dem Empfang einer Anforderung beschafft der Registrierserver in dem Block 714 eine Menge H von Paaren öffentlicher Schlüssel wieder. Bei einem alternativen Ausführungsbeispiel beschafft der Registrierserver jedoch lediglich eine Teilmenge wieder, die den öffentlichen Schlüssel des Registrierten enthält. In dem Block 716 wählt der Registrierte eine Teilmenge der Paare M öffentlicher Schlüssel aus und setzt M' = H – M. Der Registrierte berechnet eine Mischung H' von M und ein entsprechendes Prüftranskript (T(M, H', g, C)) und erzeugt einen Zero-Knowledge-Nachweis P, wonach der Registrierte einen geheimen Exponenten s, siehe 7, kennt. Zusätzlich erzeugt der Registrierte eine PKI-Zertifikatsanforderung mit zufälliger Identifikationsinformation und speichert den privaten Schlüssel ab, wie vorstehend bereits beschrieben wurde.
  • In dem Block 718 überprüft der Registrierserver das Mischungsprüftranskript und P. Gelingen beide Überprüfungen, so setzt der Registrierserver die Größe K (wobei das Paar (g'j, h'j) öffentlicher Schlüssel in Gleichungen 18 und 19 entfernt wurde) und setzt k = k – 1. Der Rest der Routine 700 entspricht im Wesentlichen derjenigen der Routine 600.
  • 11. Schlussbetrachtung
  • Einem Fachmann auf dem einschlägigen Gebiet erschließt sich, dass die Konzepte der Erfindung in verschiedenen Ausführungsbeispielen jenseits des Internets implementiert werden können. So können die Konzepte beispielsweise in der Umgebung elektronischer Post (E-Mail) verwendet werden, wo Stimmabgaben mittels elektronischer Post, Transaktionen oder Formularen verarbeitet und gespeichert werden. Im Allgemeinen kann eine Webpage oder eine Anzeigebeschreibung (beispielsweise das Bulletinborad) im HTML-, XML- oder WAP-Format, im E-Mail-Format oder einem beliebigen anderen geeigneten Format zum Anzeigen von Information (darunter auch character/codebasierte Formate, Bitmap-Formate und vektorbasierte Formate) vorliegen. Darüber hin aus können verschiedenartige Kommunikationskanäle, so beispielsweise Ortsbereichsnetzwerke, Großbereichsnetzwerke, oder Punkt-zu-Punkt-Anwahlverbindungen anstelle des Internets verwendet werden. Die verschiedenartigen Transaktionen können ebenfalls in einer einzigen Computerumgebung durchgeführt werden, anstatt dass sie in einer Client-/Server-Umgebung vorgenommen werden. Jeder Wähler oder Clientcomputer kann eine Kombination von Hardware und Software umfassen, die mit dem Server oder Computersystem interagiert. Die Clientsysteme können fernsehbasierte Systeme, Internetgeräte und verschiedene andere Gebrauchsgeräte umfassen, durch die Transaktionen durchgeführt werden können.
  • Im Zusammenhang mit der vorliegenden technischen Lehre bezeichnet der Begriff „Links" beziehungsweise „Verbindungen" einen beliebigen Resource-Locator, der eine Resource in einem Netzwerk identifiziert, so beispielsweise eine Anzeigebeschreibung eines Wahlbevollmächtigten mit einer Site oder einem Knoten im Netzwerk. Im Allgemeinen sind, solange Hardware-Plattformen, so beispielsweise Wählercomputer, Endgeräte und Server, beschrieben werden, Aspekte der Erfindung gleichermaßen bei Knoten im Netzwerk mit entsprechenden Resource-Locatern zur Identifizierung der Knoten anwendbar.
  • Wenn nicht aus dem Zusammenhang anderweitig ableitbar, bezeichnen in der vorliegenden Beschreibung und in den Ansprüchen die Worte „umfassen", „umfassend" beziehungsweise „enthalten", „enthaltend" und dergleichen eine inklusive Aufzählung im Gegensatz zu einer exklusiven oder erschöpfenden Aufzählung. Dies bedeutet, sie sind im Sinne von „umfassend/enthaltend, aber nicht hierauf beschränkt" zu lesen. Worte im Singular bezeichnen auch den Plural der entsprechenden Worte und umgekehrt. Darüber hinaus betreffen die Wendungen „gemäß vorliegender Beschreibung" und Worte ähnlichen Bedeutungsgehaltes bei Verwendung im vorliegenden Text stets den Text als Ganzes und nicht nur einen bestimmten Teil des Textes.
  • Die vorliegende Beschreibung der dargestellten Ausführungsbeispiele ist nicht erschöpfend oder auf genau die offenbarten Ausführungsbeispiele beschränkt gemeint. Obwohl bestimmte Ausführungsbeispiele und Beispiele der Erfindung zu illustrativen Zwecken beschrieben worden sind, ist es möglich, verschiedenartige gleichwertige Abwandlungen innerhalb des Schutzumfanges der Erfindung vorzunehmen, was sich einem Fachmann auf dem einschlägigen Gebiet unmittelbar erschließt. Die hier vorgestellte technische Lehre der Erfindung kann auf andere Verschlüsselungssysteme über das elektronische Wählsystem gemäß vorstehender Beschreibung hinausgehend angewendet werden. So hat beispielsweise das Protokoll auch Anwendungen im elektronischen Handel, wo sowohl die Anonymität wie auch die Nachprüfbarkeit Anforderungen darstellen. Beispiele hierfür sind elektronische Zahlungsvorgänge („E-Cash").
  • Die verschiedenen beschriebenen Ausführungsbeispiele können zu weiteren Ausführungsbeispielen kombiniert werden. Aspekte der Erfindung können gegebenenfalls abgewandelt werden, um bei den Systemen, Funktionen und Konzepten der vorstehend genannten verschiedenen Patente und Patentanmeldungen einsetzbar zu sein, und um weitere Ausführungsbeispiele der Erfindung zu ermöglichen.
  • Diese und andere Änderungen an der Erfindung können eingedenk der vorstehenden Detailbeschreibung vorgenommen werden. Im Allgemeinen sind die in den nachfolgenden Ansprüchen verwendeten Begriffe nicht so gedacht, dass sie die Erfindung auf diejenigen bestimmten Ausführungsbeispiele, die in der Beschreibung und in den Ansprüchen offenbart sind, beschränken, sondern sie sind so gedacht, dass sie sämtliche Verschlüsselungssysteme und Verfahren beinhalten, die innerhalb des Schutzumfanges der Ansprüche zur Bereitstellung von Datensicherheit betrieben werden. Entsprechend ist der Schutzumfang der Erfindung einzig durch die Ansprüche gegeben.
  • Werden bestimmte Aspekte der Erfindung nachstehend in Form bestimmter Ansprüche angegeben, so beansprucht der Erfinder die verschiedenen Aspekte der Erfindung in jeder beliebigen Anspruchsform. Wird beispielsweise nur ein Aspekt der Erfindung als auf einem computerlesbaren Medium verkörpert beschrieben, so sollen andere Aspekte gleichermaßen als auf einem computerlesbaren Medium verkörpert beschrieben sein.

Claims (35)

  1. Elektronisches Wählsystem (100) zum Einsatz mit einem Computer-Netzwerk, das umfasst: eine Vielzahl von Wähl-Computern (102), die mit dem Computer-Netzwerk (106) verbunden sind, wobei jeder Wähl-Computer (102) so eingerichtet ist, dass er einen elektronisch verschlüsselten Stimmzettel bereitstellt, und jeder elektronische Stimmzettel mit einem auf diskretem Logarithmus basierenden asymmetrischen Verschlüsselungsverfahren unter Verwendung zugrunde liegender Gruppen Zp oder elliptischer Kurven verschlüsselt wird; wenigstens einen ersten, einen zweiten und einen dritten bevollmächtigten Computer (114), die mit dem Computer-Netzwerk (106) verbunden sind, wobei der erste bevollmächtigte Computer so konfiguriert ist, dass er eine Reihe elektronischer Stimmzettel empfängt, die einer Ansammlung aller elektronischen Stimmzettel entsprechen, die von der Vielzahl von Wähl-Computern (102) empfangen werden, und eine geheime Einweg-Verschlüsselungstransformation unter Verwendung wenigstens eines ersten geheimen Schlüssels anwendet, um die Reihe elektronischer Stimmzettel anonym zu mischen und eine erste gemischte Reihe von Stimmzetteln zu erzeugen, wobei nur der erste bevollmächtigte Computer eine Entsprechung (correspodence) zwischen der ersten Reihe gemischter Stimmzettel und der Reihe elektronischer Stimmzettel kennt und der erste bevollmächtigte Computer des Weiteren so konfiguriert ist, dass er einen ersten nicht-interaktiven Richtigkeitsnachweis für die erste Reihe gemischter Stimmzettel erzeugt; wobei der zweite bevollmächtigte Computer so konfiguriert ist, dass er die erste Reihe gemischter Stimmzettel empfängt, die Verschlüsselungstransformation unter Verwendung wenigstens eines zweiten geheimen Schlüssels anwendet, um die erste Reihe gemischter Stimmzettel anonym zu mischen und eine zweite Reihe gemischter Stimmzettel herzustellen, wobei nur der zweite bevollmächtigte Computer eine Entsprechung zwischen der ersten Reihe gemischter Stimmzettel und der zweiten Reihe gemischter Stimmzettel kennt und der zweite bevollmächtigte Computer des Weiteren so konfiguriert ist, dass er einen zweiten nicht-interaktiven Richtigkeitsnachweis für die zweite Reihe gemischter Stimmzettel erzeugt; wobei der dritte bevollmächtigte Computer so konfiguriert ist, dass er die zweite Reihe gemischter Stimmzettel empfängt, die Verschlüsselungstransformation unter Verwendung wenigstens eines dritten geheimen Schlüssels anwendet, um die zweite Reihe gemischter Stimmzettel anonym zu mischen und eine dritte Reihe gemischter Stimmzettel herzustellen, wobei nur der dritte bevollmächtigte Computer eine Entsprechung zwischen der dritten Reihe gemischter Stimmzettel und der zweiten Reihe gemischter Stimmzettel kennt und der dritte bevollmächtigte Computer des Weiteren so konfiguriert ist, dass er einen dritten nicht-interaktiven Richtigkeitsnachweis für die dritte Reihe gemischter Stimmzettel erzeugt; und einen Prüf-Computer (130), der mit dem Computer-Netzwerk (106) verbunden ist, wobei der Prüf-Computer (130) so konfiguriert ist, dass er die Richtigkeitsnachweise von dem ersten, dem zweiten und dem dritten bevollmächtigte Computer (114) empfängt und ohne Interaktion mit dem ersten, dem zweiten und dem dritten bevollmächtigten Computer (114) die Richtigkeit der gemischten Stimmzettel prüft; dadurch gekennzeichnet, dass der erste nicht-interaktive Richtigkeitsnachweis, der zweite nicht-interaktive Richtigkeitsnachweis und der dritte nicht-interaktive Richtigkeitsnachweis auf einem skalierten iterierten logarithmischen Multiplikations-Nachweis (scaled iterated logarithmic multiplication proof) basieren.
  2. System (100) nach Anspruch 1, das des Weiteren umfasst: ein Servercomputer-System (108), das mit dem Computer-Netzwerk (106) verbunden ist, wobei das Servercomputer-System (108) so konfiguriert ist, dass es: die Vielzahl elektronischer Stimmzettel von der Vielzahl von Wähl-Computern (102) empfängt; einen Gültigkeitsnachweis jedes der Vielzahl elektronischer Stimmzettel prüft, eine verschlüsselte Liste der Stimmen von der Vielzahl elektronischer Stimmzettel bildet, die verschlüsselte Liste zu dem ersten, dem zweiten und dem dritten bevollmächtigten Computer (114) sendet, Stimmzettel-Entschlüsselungsanteile (ballot decryption shares) empfängt, die von wenigstens zwei von dem ersten, dem zweiten und dem dritten bevollmächtigten Computer (114) hergestellt werden, und eine entschlüsselte Liste berechnet; und wenigstens einen Stimmabgabe-Computer (112), der mit dem Computer-Netzwerk (106) verbunden und so eingerichtet ist, dass er dem Servercomputer-System (108) einige der Vielzahl elektronischer verschlüsselter Stimmzettel bereitstellt.
  3. System (100) nach Anspruch 1, wobei der erste, der zweite und der dritte bevollmächtigte Computer (114) so konfiguriert sind, dass sie Chaum-Pedersen-Nachweise jeweils für das erste, das zweite und das dritte Mischen der Stimmzettel bereitstellen, und wobei der erste, der zweite und der dritte bevollmächtigte Computer (114) jeweils eine Anfangs-Abfragereihe erzeugen, eine Abfrage (challenge) von wenigstens einem Prüf-Computer (130) empfangen und die Verschlüsselungstransformation auf Basis einer Potenzierung der Anfangs- und der empfangenen Abfragen generieren.
  4. System (100) nach Anspruch 1, wobei das Computer-Netzwerk (106) das Internet einschließt und jeder der Vielzahl von Wähl-Computern (102) sowie der erste, der zweite und der dritte bevollmächtigte Computer (114) ein Web-Browser-Programm (104) enthalten.
  5. System (100) nach Anspruch 1, wobei die Vielzahl von Wähl-Computern (102) wenigstens einen Palmtop-Computer, ein Mobiltelefon, einen tragbaren Computer, ein interaktives Fernsehgerät oder ein Internet-Gerät einschließen.
  6. Computer-System (114) zum Empfangen einer Sequenz von Elementen, das umfasst: einen Servercomputer (114), der mit einem Computer-Netzwerk (106) verbunden und so konfiguriert ist, dass er: eine Sequenz elektronischer Daten-Elemente empfängt, die einzelne Datendateien darstellen, eine Verschlüsselungstransformation unter Verwendung wenigstens eines ersten geheimen Schlüssels anwendet, um die Sequenz elektronischer Datenelemente anonym zu permutieren und eine erste gemischte Sequenz elektronischer Datenelemente zu erzeugen, wobei der Servercomputer (114) eine Entsprechung (correspondence) zwischen der ersten gemischten Sequenz elektronischer Datenelemente und der Sequenz elektronischer Datenelemente kennt, dadurch gekennzeichnet, dass der Servercomputer (114) des Weiteren so konfiguriert ist, dass er: einen ersten Richtigkeitsnachweis für die erste gemischte Sequenz elektronischer Datenelemente auf Basis eines skalierten iterierten logarithmischen Multiplikations-Nachweises (scaled iterated logarithmic multiplication proof) erzeugt.
  7. System nach Anspruch 6, wobei die empfangene Sequenz elektronischer Datenelemente unter Verwendung von Zp oder Gruppen elliptischer Kurven mit einem Schlüssel verschlüsselt wird, der dem Servercomputer (114) unbekannt ist, und wobei der Servercomputer (114) des Weiteren so konfiguriert ist, dass er: eine Reihe zufällig generierter Werte ei von einem Prüf-Computer (130) empfängt; geheim eine Reihe von Werten Ui auf Basis einer geheimen Einweg-Verschlüsselungstransformation generiert, die die empfangene Reihe von Werten ei und geheim generierte Werte ūi nutzt, die Sequenz elektronischer Datenelemente permutiert, um die erste gemischte Sequenz von Elementen auf Basis der Reihe von Werten Ui und eines geheimen Wertes d zu erzeugen; und die Werte Ui und eine Reihe von Nachweis-Werten auf Basis der Verschlüsselungstransformation als ein Nachweis des Wissens bereitstellt, dass der Servercomputer (114) Zugang dazu hat, wie die Verschlüsselungstransformation die Sequenz elektronischer Datenelemente permutiert hat, um die erste gemischte Sequenz von Elementen zu erzeugen, ohne dem Prüf-Computer (130) die Verschlüsselungstransformation offen zu legen.
  8. System nach Anspruch 6, wobei der Servercomputer (114) des Weiteren so konfiguriert ist, dass er: eine Vielzahl öffentlicher Schlüssel von einer entsprechenden Vielzahl von Individuen empfängt, wobei jedes der Vielzahl von Individuen über einen privaten Schlüssel verfügt, der einem der Vielzahl öffentlicher Schlüssel entspricht; eine Anforderung eines Zertifikats von einem der Vielzahl von Individuen empfängt, das über einen privaten Schlüssel verfügt; dem anfordernden Individuum wenigstens einen Teilsatz der Vielzahl öffentlicher Schlüssel bereitstellt; eine gemischte Anordnung der Vielzahl öffentlicher Schlüssel und eines Richtigkeitsnachweises für die gemischten öffentlichen Schlüssel auf Basis eines skalierten iterierten logarithmischen Multiplikations-Nachweises (scaled iterated logarithmic multiplication proof) und eines Wertes empfängt, wobei der Wert einem privaten Schlüssel entspricht, und wobei der Wert nachweist, dass das eine Individuum den einen privaten Schlüssel kennt, ohne den einen privaten Schlüssel offen zu legen; den Richtigkeitsnachweis überprüft; überprüft, ob der Wert mathematisch mit einem der öffentlichen Schlüssel zusammenhängt, der dem einen privaten Schlüssel entspricht; ein Zertifikat an das eine Individuum ausgibt; und die Vielzahl öffentlicher Schlüssel um den einen öffentlichen Schlüssel verringert.
  9. System nach Anspruch 6, wobei die Sequenz elektronischer Elemente öffentliche Schlüssel sind und wobei der Server (114) des Weiteren so konfiguriert ist, dass er in Reaktion auf eine Anforderung von einem Individuum überprüft, ob das Individuum über einen Wert verfügt, der einzigartig ist und mathematisch mit einem der öffentlichen Schlüssel zusammenhängt; und und, wenn dies der Fall ist, ein Zertifikat an das eine Individuum ausgibt.
  10. Computerimplementiertes Verfahren, das umfasst: Empfangen einer Vielzahl öffentlicher Schlüssel von einer entsprechenden Vielzahl von Individuen (102), wobei jedes der Vielzahl von Individuen (102) über einen privaten Schlüssel verfügt, der zu einem der Vielzahl öffentlicher Schlüssel korrespondiert; Empfangen einer Anforderung eines Zertifikats von einem der Vielzahl von Individuen (102), das über einen privaten Schlüssel verfügt; Bereitstellen wenigstens eines Teilsatzes der Vielzahl von öffentlichen Schlüsseln für das anfordernde Individuum; Empfangen einer gemischten Anordnung der Vielzahl öffentlicher Schlüssel und eines Richtigkeitsnachweises für die gemischten öffentlichen Schlüssel auf Basis eines skalierten iterierten logarithmischen Multiplikations-Nachweises (scaled iterated logarithmic multiplication proof) und eines Wertes, der zu dem einen privaten Schlüssel korrespondiert, wobei der Wert nachweist, dass das eine Individuum den einen privaten Schlüssel kennt, ohne den einen privaten Schlüssel offen zu legen; Überprüfen des Richtigkeitsnachweises; Überprüfen, ob der Wert mathematisch mit einem der öffentlichen Schlüssel zusammenhängt, der dem einen privaten Schlüssel entspricht; Ausgeben eines Zertifikats an das eine Individuum; und Verringern der Vielzahl öffentlicher Schlüssel um den einen öffentlichen Schlüssel.
  11. Verfahren nach Anspruch 10, wobei das Verfahren des Weiteren das Einstellen eines Wertes G auf einen Untergruppen-Operator g aus einer Gruppe Zp oder einer Gruppe einer elliptischen Kurve einschließt, wobei das Bereitstellen des wenigstens einen Teilsatzes der Vielzahl öffentlicher Schlüssel das Bereitstellen aller der dann aktuellen öffentlichen Schlüssel H einschließt.
  12. Verfahren nach Anspruch 10, wobei das Bereitstellen wenigstens eines Teilsatzes der Vielzahl öffentlicher Schlüssel das Bereitstellen eines Teilsatzes einer Vielzahl von Paaren öffentlicher Schlüssel einschließt und das Empfangen einer gemischten Anordnung der Vielzahl öffentlicher Schlüssel das Empfangen einer gemischten Anordnung eines wahren Teilsatzes der Vielzahl von öffentlichen Schlüssel-Paaren (public key pairs), die von dem einen Individuum ausgewählt werden, einschließt.
  13. Verfahren nach Anspruch 10, das des Weiteren umfasst: Empfangen eines gemischten Satzes der Vielzahl öffentlicher Schlüssel H' nacheinander von jeder einer Vielzahl bevollmächtigter Einrichtungen (authorities) (114) auf Basis einer geheimen Verschlüssetungs-Mischoperation, die an wenigstens einem Teilsatz der Vielzahl öffentlicher Schlüssel durchgeführt wird, um den gemischten Satz der Vielzahl öffentlicher Schlüssel H' zu erzeugen; Empfangen eines Prüf-Transkripts der Verschlüsselungs-Mischoperation nacheinander von jeder einer Vielzahl bevollmächtigter Einrichtungen (114); und Prüfen einer Richtigkeit der Verschlüsselungs-Mischoperation auf Basis des Prüf-Transkripts, und, wenn sie bestätigt ist, Setzen wenigstens eines Teilsatzes der Vielzahl öffentlicher Schlüssel von H auf H'.
  14. Verfahren nach Anspruch 10, das des Weiteren umfasst: nach einer Zeit nach dem Empfang wenigstens einiger der Vielzahl öffentlicher Schlüssel Setzen wenigstens eines Teilsatzes der dann empfangenen Vielzahl öffentlicher Schlüssel auf einen empfangenen gemischten Satz der Vielzahl öffentlicher Schlüssel, wobei der gemischte Satz der Vielzahl öffentlicher Schlüssel von einer dritten Seite empfangen worden ist.
  15. Verfahren nach Anspruch 10, das des Weiteren umfasst: Empfangen des ausgegebenen Zertifikats von einem der Vielzahl von Individuen (112); und Bereitstellen eines elektronischen Stimmzettel für das eine Individuum.
  16. Verfahren nach Anspruch 10, wobei das Ausgeben eines Zertifikats das digitale Signieren der empfangenen Anforderung einschließt, um ein Zertifikat einer Infrastruktur mit öffentlichem Schlüssel (public key infrastructure – PKI) zu erzeugen.
  17. Verfahren nach Anspruch 10, das des Weiteren umfasst: Empfangen ausgegebener Zertifikate von wenigstens einigen der Vielzahl von Individuen (102) und Bereitstellen anfänglicher elektronischer Stimmzettel in Reaktion darauf; und Empfangen unverschlüsselter ausgefüllter Stimmzettel von wenigstens einigen der Vielzahl von Individuen (102).
  18. Computerimplementiertes Verschlüsselungsverfahren zwischen einem Nachweis-Computer und einem Prüf-Computer in Bezug auf eine erste und eine zweite Sequenz von Elementen, wobei das Verfahren umfasst: Auswählen eines Untergruppen-Generators g, der aus einer Gruppe G ausgewählt wird; geheimes Erzeugen eines Nachweis-Schlüssels c und eines Commitment-Wertes C, basierend auf dem Untergruppen-Generator g; geheimes Erstellen einer Verschlüsselungsbeziehung zwischen der ersten und der zweiten Sequenz von Elementen; Bereitstellen des Commitments C sowie der ersten und der zweiten Sequenz von Elementen, jedoch nicht der Verschlüsselungsbeziehung, für den Prüf-Computer; Berechnen einer Reihe von Nachweis-Werten auf Basis der Verschlüsselungsbeziehung; und Bereitstellen der Reihe berechneter Nachweis-Werte für den Prüf-Computer als ein nicht-interaktiver Nachweis des Wissens darüber, dass der Nachweis-Com puter Zugang zu der Verschlüsselungsbeziehung hat, ohne die Verschlüsselungsbeziehung dem Prüf-Computer offen zu legen, dadurch gekennzeichnet, dass: die kryptografische Beziehung in dem Schritt des geheimen Erstellens skalierte iterierte logarithmische Multiplikation (scaled iterated logarithmic multiplication) verwendet.
  19. Verfahren nach Anspruch 18, wobei wenigstens die zweite Sequenz von Elementen eine Sequenz verschlüsselter Stimmzettel ist und jeder Stimmzettel unter Verwendung von Zp oder Gruppen elliptischer Kurven verschlüsselt wird; wobei die erste und zweite Sequenz von Elementen jeweils sind: (X1, ..., Xk) und (Y1, ..., Yk)wobei die erste und die zweite Sequenz von Elementen die folgende Verschlüsselungsbeziehung haben
    Figure 00580001
    und wobei Berechnen und Bereitstellen der Reihe von Nachweis-Werten das Bereitstellen von Chaum-Pedersen-Nachweisen einschließt, basierend auf: für jedes 0 ≤ i ≤ k Erzeugen von zufälligen ri Ri = gn für jedes
    Figure 00590001
    wobei die Chaum-Pedersen-Nachweise, die dem Prüf-Computer bereitgestellt werden, die folgende Form haben: (Ri-1, Xi, Ri, Wi) und (Yi, C, Wi, Zi).
  20. Verfahren nach Anspruch 18, das des Weiteren umfasst: Permutieren der ersten Sequenz von Elementen, um die zweite Sequenz von Elementen auf Basis einer Verschlüsselungstransformation zu erzeugen; Empfangen eines zufällig generierten Wertes t von dem Prüf-Computer; geheimes Generieren eines Wertes T auf Basis des empfangenen Wertes t und des Untergruppen-Generators und geheimes Generieren eines Wertes S auf Basis des empfangenen Wertes t und des Nachweis-Schlüssels c; und wobei Berechnen und Bereitstellen der Reihe von Nachweis-Werten für den Prüf-Computer das Bereitstellen einer Reihe von Werten auf Basis der Verschlüsselungstransformation als Nachweis des Wissens darüber einschließt, dass der Nachweis-Computer Zugang dazu hat, wie die Verschlüsselungstransformation die erste Sequenz von Elementen permutiert hat, um die zweite Sequenz von Elementen herzustellen, ohne die Verschlüsselungstransformation dem Prüf-Computer offen zu legen.
  21. Verfahren nach Anspruch 18, das des Weiteren umfasst: Permutieren der ersten Sequenz von Elementen, um die zweite Sequenz von Elementen auf Basis einer Verschlüsselungstransformation in einer folgenden Form zu erzeugen:
    Figure 00600001
    Empfangen eines zufällig generierten Wertes t von dem Prüf-Computer; geheimes Erzeugen eines Wertes T auf Basis des Potenzierens des Untergruppen-Generators g mit dem empfangenen Wert t als Exponenten und geheimes Erzeugen eines Wertes S auf Basis des Potenzierens des Wertes T mit dem Nachweis-Schlüssel c als Exponenten; und wobei Berechnen und Bereitstellen der Reihe von Nachweis-Werten für den Prüf-Computer das Bereitstellen einer Reihe von Werten auf Basis der Verschlüsselungstransformation in einer folgenden Form: Ui = Xi/T Vi = Yi/Sals Nachweis des Wissens darüber einschließt, dass der Nachweis-Computer Zugang dazu hat, wie die Verschlüsselungstransformation die erste Sequenz von Elemenen permutiert hat, um die zweite Sequenz von Elementen bereitzustellen, ohne dem Prüf-Computer die Verschlüsselungstransformation offen zu legen.
  22. Verfahren nach Anspruch 18, das des Weiteren umfasst: Empfangen der ersten Sequenz von Elementen als ein Satz von Elementen, die zuvor auf eine dem Nachweis-Computer unbekannte Weise permutiert worden sind; Empfangen einer Reihe zufällig generierter Werte ei von dem Prüf-Computer; geheimes Generieren einer Reihe von Werten Ui auf Basis einer geheimen Verschlüsselungstransformation, die die empfangene Reihe von Werten ei und geheim generierte Werte ūi verwendet, Permutieren der zweiten Sequenz von Elementen in Bezug auf die erste Sequenz von Elementen auf Basis der Reihe von Werten Ui und eines geheimen Wertes d; und wobei Berechnen und Bereitstellen der Reihe von Nachweis-Werten für den Prüf-Computer Bereitstellen der resultierenden Werte Ui und Bereitstellen einer Reihe von Nachweis-Werten auf Basis der Verschlüsselungstransformation als ein Nachweis des Wissens darüber einschließt, dass der Nachweis-Computer Zugang dazu hat, wie die Verschlüsselungstransformation die erste Sequenz von Elementen permutiert hat, um die zweite Sequenz von Elementen bereitzustellen, ohne dem Prüf-Computer die Verschlüsselungstransformation offen zu legen.
  23. Verfahren nach Anspruch 18, das des Weiteren umfasst: Empfangen der ersten Sequenz von Elementen als ein Satz von Elementen, die zuvor auf eine dem Nachweis-Computer unbekannte Weise permutiert worden sind; Empfangen einer Reihe zufällig generierter Werte ei von dem Prüf-Computer; geheimes Generieren einer Reihe von Werten Ui auf Basis einer geheimen Verschlüsselungstransformation einer Form: ui = ūi + ei = loggUi Permutieren der zweiten Sequenz von Elementen in Bezug auf die erste Sequenz von Elementen auf Basis der Reihe von Werten Ui und eines geheimen Wertes d auf Basis der folgenden Operationen
    Figure 00620001
    und wobei Berechnen und Bereitstellen der Reihe von Nachweis-Werten für den Prüfer das Bereitstellen der resultierenden Werte Ui einschließt
    Figure 00620002
    und für 1 ≤ i ≥ k, Bereitstellen einer Reihe von Chaum-Pederson-Nachweise einer Form: (g, Vi, Xi, Ai) und (g, Ui, Yi, Bi)und eines Chaum-Pedersen-Nachweises für (D, A, C, B) als ein Nachweis des Wissens darüber, dass der Nachweis-Computer Zugang dazu hat, wie die Verschlüsselungstransformation die erste Sequenz von Elementen permutiert hat, um die zweite Sequenz von Elementen bereitzustellen, ohne die Verschlüsselungstransformation dem Prüf-Computer offen zu legen.
  24. Verfahren nach Anspruch 23, das des Weiteren das Wiederholen des Empfangens der ersten Sequenz von Elementen, des Empfangens einer Reihe zufällig generierter Werte, des geheimen Generierens einer Reihe von Werten und des Permutierens der zweiten Sequenz von Elementen für l-Tupel von Elementen der ersten Sequenz von Elementen umfasst.
  25. Verfahren nach Anspruch 22, wobei Empfangen der ersten Sequenz von Elementen Empfangen eines Teilsatzes eines Satzes identifizierender Elemente einschließt und jedes identifizierende Element in dem Satz einem Individuum entspricht und wobei das Verfahren des Weiteren umfasst: Empfangen eines anonymen Zertifikats, wenn der Prüf-Computer die Reihe von Nachweisen verifiziert hat.
  26. Verfahren nach Anspruch 18, wobei die Gruppe G Zp ist.
  27. Verfahren nach Anspruch 18, wobei die Gruppe G eine Gruppe einer elliptischen Kurve ist.
  28. Computerlesbares Medium, dessen Inhalt Befehle bereitstellt, durch die, bei Implementierung durch einen Computer (114), eine Sequenz elektronischer Datenelemente gemischt wird, umfassend: Empfangen der Sequenz elektronischer Datenelemente; Anwenden einer geheimen Einweg-Verschlüsselungstransformation unter Verwendung wenigstens eines ersten geheimen Schlüssels, um die Sequenz elektronischer Datenelemente anonym zu permutieren und eine erste gemischte Sequenz elektronischer Datenelemente zu erzeugen, dadurch gekennzeichnet, dass es des Weiteren umfasst: Erzeugen eines ersten nicht-interaktiven Richtigkeitsnachweises für die erste gemischte Sequenz elektronischer Datenelemente auf Basis eines skalierten iterierten logarithmischen Multiplikations-Nachweises (scaled iterated logarithmic multiplication proof).
  29. Computerlesbares Medium nach Anspruch 28, wobei die empfangene Sequenz elektronischer Datenelemente mit einer zugrunde liegenden mathematischen Gruppe verschlüsselt wird, die ein Ring von ganzen Zahlen ist, die einen Modulus-Wert p (Zp) haben.
  30. Computerlesbares Medium nach Anspruch 28, wobei das computerlesbare Medium ein logischer Knoten in einem Computer-Netzwerk ist, der die Sequenz elektronischer Datenelemente und die Inhalte empfängt.
  31. Computerlesbares Medium nach Anspruch 28, wobei das computerlesbare Medium eine computerlesbare Platte ist.
  32. Computerlesbares Medium nach Anspruch 28, wobei das computerlesbare Medium ein Datenübertragungsmedium ist, das ein generiertes Datensignal sendet, das die Inhalte enthält.
  33. Computerlesbares Medium nach Anspruch 28, wobei das computerlesbare Medium ein Speicher eines Computersystems ist.
  34. Computerlesbares Medium nach Anspruch 28, wobei das computerlesbare Medium ein Internetverbindungslink zu einem Wahl-Authority-Servercomputer ist.
  35. Gesendetes Signal zur Verwendung von einem Computer in einem kryptographischen Verfahren, wobei das gesendete Signal umfasst: eine gemischte Sequenz elektronischer Datenelemente, die einzelne Datendateien darstellen, wobei eine Einweg-Verschlüsselungstransformation unter Verwendung wenigstens eines ersten geheimen Schlüssels eine eingegebene Sequenz elektronischer Datenelemente anonym permutiert hat, um die gemischte Sequenz elektronischer Datenelemente herzustellen, dadurch gekennzeichnet, dass es des Weiteren umfasst: einen Richtigkeitsnachweis für die gemischte Sequenz elektronischer Datenelemente auf Basis eines skalierten iterierten logarithmischen Multiplikations-Nachweises (scaled iterated logarithmic multiplication proof).
DE60114833T 2000-03-24 2001-03-24 Überprüfbare, geheime mischung von verschlüsselten daten wie z. b. elgamal-verschlüsselte daten für gesicherte mehrinstanzwahlen Expired - Fee Related DE60114833T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US19178500P 2000-03-24 2000-03-24
US191785P 2000-03-24
US25237600P 2000-11-21 2000-11-21
US252376P 2000-11-21
US26855101P 2001-02-14 2001-02-14
US268551P 2001-02-14
PCT/US2001/009550 WO2001073694A2 (en) 2000-03-24 2001-03-24 Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections

Publications (2)

Publication Number Publication Date
DE60114833D1 DE60114833D1 (de) 2005-12-15
DE60114833T2 true DE60114833T2 (de) 2006-04-13

Family

ID=27392950

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60114833T Expired - Fee Related DE60114833T2 (de) 2000-03-24 2001-03-24 Überprüfbare, geheime mischung von verschlüsselten daten wie z. b. elgamal-verschlüsselte daten für gesicherte mehrinstanzwahlen

Country Status (10)

Country Link
US (1) US6950948B2 (de)
EP (1) EP1302020B1 (de)
JP (2) JP2003529256A (de)
AT (1) ATE309655T1 (de)
AU (1) AU2001250976A1 (de)
CA (1) CA2404161C (de)
DE (1) DE60114833T2 (de)
DK (1) DK1302020T3 (de)
ES (1) ES2251475T3 (de)
WO (1) WO2001073694A2 (de)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6676127B2 (en) 1997-03-13 2004-01-13 Shuffle Master, Inc. Collating and sorting apparatus
US6655684B2 (en) 1998-04-15 2003-12-02 Shuffle Master, Inc. Device and method for forming and delivering hands from randomly arranged decks of playing cards
US6254096B1 (en) 1998-04-15 2001-07-03 Shuffle Master, Inc. Device and method for continuously shuffling cards
JP4181724B2 (ja) * 2000-03-03 2008-11-19 日本電気株式会社 証明付再暗号シャッフル方法と装置、再暗号シャッフル検証方法と装置、入力文列生成方法と装置及び記録媒体
US8590896B2 (en) 2000-04-12 2013-11-26 Shuffle Master Gmbh & Co Kg Card-handling devices and systems
US20030171983A1 (en) * 2000-11-27 2003-09-11 Reeves Bruce H D Method for collection and collation of data
JP3788246B2 (ja) * 2001-02-13 2006-06-21 日本電気株式会社 匿名復号システム及び匿名復号方法
US20020147904A1 (en) * 2001-04-10 2002-10-10 Moritaka Nakamura Electronic notarization on net system
JP2004527962A (ja) 2001-04-23 2004-09-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 譲渡不能の匿名電子受領書
JP3901471B2 (ja) * 2001-05-18 2007-04-04 日本電気株式会社 証明付シャッフル復号システムと証明付シャッフル復号方法、シャッフル復号検証方法
US20030023478A1 (en) * 2001-07-26 2003-01-30 Piccionelli Gregory A. Electronic initiative petition
US7234059B1 (en) * 2001-08-09 2007-06-19 Sandia Corporation Anonymous authenticated communications
US20030046144A1 (en) * 2001-08-28 2003-03-06 International Business Machines Corporation System and method for anonymous message forwarding and anonymous voting
US20030055719A1 (en) * 2001-09-20 2003-03-20 Faigle Christopher T. Remote participation and voting in a meeting
US8616552B2 (en) 2001-09-28 2013-12-31 Shfl Entertainment, Inc. Methods and apparatuses for an automatic card handling device and communication networks including same
US7677565B2 (en) 2001-09-28 2010-03-16 Shuffle Master, Inc Card shuffler with card rank and value reading capability
US7753373B2 (en) 2001-09-28 2010-07-13 Shuffle Master, Inc. Multiple mode card shuffler and card reading device
US8337296B2 (en) 2001-09-28 2012-12-25 SHFL entertaiment, Inc. Method and apparatus for using upstream communication in a card shuffler
US8011661B2 (en) 2001-09-28 2011-09-06 Shuffle Master, Inc. Shuffler with shuffling completion indicator
AU2002337945A1 (en) * 2001-12-31 2003-07-30 Voting Technologies International, Llc Computerized electronic voting system
US6886829B2 (en) 2002-02-08 2005-05-03 Vendingdata Corporation Image capturing card shuffler
US20030221131A1 (en) * 2002-03-08 2003-11-27 Toshifumi Mori Data processing device
US6951303B2 (en) 2002-04-01 2005-10-04 Petersen Steven D Combination electronic and paper ballot voting system
KR20040099429A (ko) * 2002-04-12 2004-11-26 톰슨 라이센싱 에스.에이. 데이터 송신기의 익명 인증을 위한 방법
US8239917B2 (en) * 2002-10-16 2012-08-07 Enterprise Information Management, Inc. Systems and methods for enterprise security with collaborative peer to peer architecture
US7840806B2 (en) * 2002-10-16 2010-11-23 Enterprise Information Management, Inc. System and method of non-centralized zero knowledge authentication for a computer network
AU2003220132A1 (en) * 2002-10-22 2004-05-13 Voting Technologies International, Llc Computerized electronic voting system
FR2847401A1 (fr) * 2002-11-14 2004-05-21 France Telecom Procede d'acces a un service avec authentification rapide et anonymat revocable et systeme d'ouverture et de maintien de session
US7305711B2 (en) * 2002-12-10 2007-12-04 Intel Corporation Public key media key block
EP1629405A2 (de) * 2003-06-04 2006-03-01 Matsushita Electric Industrial Co., Ltd. Informationsdarstellungssystem, verwaltungseinrichtung und endgerät
KR100668016B1 (ko) * 2004-01-22 2007-01-16 닛본 덴끼 가부시끼가이샤 믹스넷 시스템
US7974405B2 (en) * 2004-01-26 2011-07-05 Nec Corporation Method and device for calculating a function from a large number of inputs
US7647498B2 (en) * 2004-04-30 2010-01-12 Research In Motion Limited Device authentication
US20050269406A1 (en) * 2004-06-07 2005-12-08 Neff C A Cryptographic systems and methods, including practical high certainty intent verification, such as for encrypted votes in an electronic election
ATE429747T1 (de) * 2004-06-30 2009-05-15 France Telecom Elektronisches wahlverfahren und -system in einem hochsicherheitskommunikationsnetz
US20060066048A1 (en) 2004-09-14 2006-03-30 Shuffle Master, Inc. Magnetic jam detection in a card shuffler
GB2419000A (en) * 2004-10-06 2006-04-12 Hewlett Packard Development Co Proving relationships between data
EP1858194A4 (de) * 2005-02-28 2013-10-30 Nec Corp Shuffle-entschlüsselungs-validitätsverifizierungseinrichtung und -verfahren, shuffle-entschlüsselungs-validierungseinrichtung und -verfahren, programm und aufzeichnungsmedium
JP4771053B2 (ja) * 2005-05-27 2011-09-14 日本電気株式会社 統合シャッフル正当性証明装置、証明統合装置、統合シャッフル正当性検証装置及びミックスネットシステム
US7764836B2 (en) 2005-06-13 2010-07-27 Shuffle Master, Inc. Card shuffler with card rank and value reading capability using CMOS sensor
US7818570B2 (en) * 2005-10-31 2010-10-19 Ntt Docomo, Inc. Exclusive set system constructions including, but not limited to, applications to broadcast encryption and certificate revocation
US7499552B2 (en) 2006-01-11 2009-03-03 International Business Machines Corporation Cipher method and system for verifying a decryption of an encrypted user data key
US7556266B2 (en) 2006-03-24 2009-07-07 Shuffle Master Gmbh & Co Kg Card shuffler with gravity feed system for playing cards
US7597258B2 (en) * 2006-04-21 2009-10-06 Cccomplete, Inc. Confidential electronic election system
JP5154830B2 (ja) * 2006-04-27 2013-02-27 パナソニック株式会社 コンテンツ配信システム
US8579289B2 (en) 2006-05-31 2013-11-12 Shfl Entertainment, Inc. Automatic system and methods for accurate card handling
US8342525B2 (en) 2006-07-05 2013-01-01 Shfl Entertainment, Inc. Card shuffler with adjacent card infeed and card output compartments
US8353513B2 (en) 2006-05-31 2013-01-15 Shfl Entertainment, Inc. Card weight for gravity feed input for playing card shuffler
US8070574B2 (en) 2007-06-06 2011-12-06 Shuffle Master, Inc. Apparatus, system, method, and computer-readable medium for casino card handling with multiple hand recall feature
US8919775B2 (en) 2006-11-10 2014-12-30 Bally Gaming, Inc. System for billing usage of an automatic card handling device
US7779041B2 (en) * 2007-05-02 2010-08-17 Sap Ag Anonymizing infocube data
DE102008006840A1 (de) * 2008-01-30 2009-08-13 Continental Automotive Gmbh Datenübertragungsverfahren und Tachographensystem
US8967621B2 (en) 2009-04-07 2015-03-03 Bally Gaming, Inc. Card shuffling apparatuses and related methods
US7988152B2 (en) 2009-04-07 2011-08-02 Shuffle Master, Inc. Playing card shuffler
US8230231B2 (en) * 2009-04-14 2012-07-24 Microsoft Corporation One time password key ring for mobile computing device
WO2010137508A1 (ja) * 2009-05-29 2010-12-02 日本電気株式会社 署名装置、署名検証装置、匿名認証システム、署名方法、署名認証方法およびそれらのプログラム
WO2011034543A1 (en) * 2009-09-18 2011-03-24 Hewlett-Packard Development Company, L.P. Privacy ensured polling
WO2011047085A2 (en) * 2009-10-13 2011-04-21 Certimix, Inc. Method and apparatus for efficient and secure creating transferring, and revealing of messages over a network
US8862879B2 (en) * 2009-10-13 2014-10-14 Sergio Demian LERNER Method and apparatus for efficient and secure creating, transferring, and revealing of messages over a network
US8800993B2 (en) 2010-10-14 2014-08-12 Shuffle Master Gmbh & Co Kg Card handling systems, devices for use in card handling systems and related methods
US20120290369A1 (en) * 2011-05-11 2012-11-15 Jesus Acosta-Cazaubon Referendum enhanced subscription based application system
US8484195B2 (en) * 2011-05-11 2013-07-09 Yottavote, Inc. Anonymous referendum system and method
US9731190B2 (en) 2011-07-29 2017-08-15 Bally Gaming, Inc. Method and apparatus for shuffling and handling cards
US8485527B2 (en) 2011-07-29 2013-07-16 Savant Shuffler LLC Card shuffler
US8960674B2 (en) 2012-07-27 2015-02-24 Bally Gaming, Inc. Batch card shuffling apparatuses including multi-card storage compartments, and related methods
US9378766B2 (en) 2012-09-28 2016-06-28 Bally Gaming, Inc. Card recognition system, card handling device, and method for tuning a card handling device
US9511274B2 (en) 2012-09-28 2016-12-06 Bally Gaming Inc. Methods for automatically generating a card deck library and master images for a deck of cards, and a related card processing apparatus
SG11201608344WA (en) 2014-04-11 2016-11-29 Bally Gaming Inc Method and apparatus for shuffling and handling cards
US9474957B2 (en) 2014-05-15 2016-10-25 Bally Gaming, Inc. Playing card handling devices, systems, and methods for verifying sets of cards
US20190213820A1 (en) * 2014-07-02 2019-07-11 OSET Foundation Secure balloting and election system
KR101599144B1 (ko) * 2014-07-23 2016-03-02 삼성에스디에스 주식회사 키 생성 장치 및 방법
USD764599S1 (en) 2014-08-01 2016-08-23 Bally Gaming, Inc. Card shuffler device
US9566501B2 (en) 2014-08-01 2017-02-14 Bally Gaming, Inc. Hand-forming card shuffling apparatuses including multi-card storage compartments, and related methods
US9504905B2 (en) 2014-09-19 2016-11-29 Bally Gaming, Inc. Card shuffling device and calibration method
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
JP5951094B1 (ja) * 2015-09-07 2016-07-13 ヤフー株式会社 生成装置、端末装置、生成方法、生成プログラム及び認証処理システム
US9993719B2 (en) 2015-12-04 2018-06-12 Shuffle Master Gmbh & Co Kg Card handling devices and related assemblies and components
US9929860B1 (en) * 2015-12-30 2018-03-27 Emc Corporation Methods and apparatus for generalized password-based secret sharing
DE102016205121A1 (de) * 2016-03-29 2017-10-05 Siemens Aktiengesellschaft Verfahren zum Voting mit verketteten Signaturen
US11336432B2 (en) 2016-07-29 2022-05-17 Workday, Inc. System and method for blockchain-based device authentication based on a cryptographic challenge
US11088855B2 (en) * 2016-07-29 2021-08-10 Workday, Inc. System and method for verifying an identity of a user using a cryptographic challenge based on a cryptographic operation
US10637665B1 (en) 2016-07-29 2020-04-28 Workday, Inc. Blockchain-based digital identity management (DIM) system
US10933300B2 (en) 2016-09-26 2021-03-02 Shuffle Master Gmbh & Co Kg Card handling devices and related assemblies and components
US10339765B2 (en) 2016-09-26 2019-07-02 Shuffle Master Gmbh & Co Kg Devices, systems, and related methods for real-time monitoring and display of related data for casino gaming devices
US10547592B2 (en) 2017-01-19 2020-01-28 Hewlett Packard Enterprise Development Lp Computing a global sum that preserves privacy of parties in a multi-party environment
EP3574482B8 (de) * 2017-01-30 2023-08-02 Exo One Pty Ltd Abstimmungssysteme und -verfahren
US10511591B2 (en) * 2017-05-08 2019-12-17 Amazon Technologies, Inc. Generation of shared secrets using pairwise implicit certificates
US10516543B2 (en) 2017-05-08 2019-12-24 Amazon Technologies, Inc. Communication protocol using implicit certificates
US10798086B2 (en) 2017-05-08 2020-10-06 Amazon Technologies, Inc. Implicit certificates using ring learning with errors
US11896891B2 (en) 2018-09-14 2024-02-13 Sg Gaming, Inc. Card-handling devices and related methods, assemblies, and components
US11376489B2 (en) 2018-09-14 2022-07-05 Sg Gaming, Inc. Card-handling devices and related methods, assemblies, and components
US11338194B2 (en) 2018-09-28 2022-05-24 Sg Gaming, Inc. Automatic card shufflers and related methods of automatic jam recovery
US11087578B2 (en) 2018-11-15 2021-08-10 Daniel Bernard Ruskin Voting booth, system, and methods of making and using same
CN112307488A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 一种认证凭据保护方法和系统
US11038699B2 (en) 2019-08-29 2021-06-15 Advanced New Technologies Co., Ltd. Method and apparatus for performing multi-party secure computing based-on issuing certificate
CN112546608A (zh) 2019-09-10 2021-03-26 夏佛马士特公司 缺陷检测的卡牌处理设备及相关方法
US11173383B2 (en) 2019-10-07 2021-11-16 Sg Gaming, Inc. Card-handling devices and related methods, assemblies, and components
US20210336789A1 (en) * 2020-03-30 2021-10-28 Facebook, Inc. Deterministic sparse-tree based cryptographic proof of liabilities
US20220375294A1 (en) * 2021-05-22 2022-11-24 Carey Robert Briggs System And Method For Conducting A Publicly Auditable Election With Secret Ballots
US20230290208A1 (en) * 2022-01-27 2023-09-14 James McNulty Secure electronic voting method and apparatus
GB202209495D0 (en) * 2022-06-29 2022-08-10 Nchain Licensing Ag Proof of ownership

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4774665A (en) 1986-04-24 1988-09-27 Data Information Management Systems, Inc. Electronic computerized vote-counting apparatus
FI86486C (fi) 1990-08-27 1992-08-25 Tecnomen Oy Foerfarande foer att arrangera teleroestningen pao ett saekert saett.
US5278753A (en) * 1991-08-16 1994-01-11 Graft Iii Charles V Electronic voting system
NL9301348A (nl) * 1993-08-02 1995-03-01 Stefanus Alfonsus Brands Elektronisch betalingssysteem.
US5400248A (en) * 1993-09-15 1995-03-21 John D. Chisholm Computer network based conditional voting system
EP0695056B1 (de) * 1994-07-29 2005-05-11 Canon Kabushiki Kaisha Verfahren zur gemeinsamen Nutzung einer geheimen Information, zur Erzeugung einer digitalen Unterschrift und zur Ausführung einer Beglaubigung in einem Kommunikationssystem mit mehreren Informationsverarbeitungseinrichtungen und Kommunikationssystem zur Anwendung dieses Verfahrens
US5875432A (en) 1994-08-05 1999-02-23 Sehr; Richard Peter Computerized voting information system having predefined content and voting templates
US5495532A (en) * 1994-08-19 1996-02-27 Nec Research Institute, Inc. Secure electronic voting using partially compatible homomorphisms
US5682430A (en) * 1995-01-23 1997-10-28 Nec Research Institute, Inc. Secure anonymous message transfer and voting scheme
IL113259A (en) * 1995-04-05 2001-03-19 Diversinet Corp A device and method for a secure interface for secure communication and data transfer
US6092051A (en) 1995-05-19 2000-07-18 Nec Research Institute, Inc. Secure receipt-free electronic voting
FR2738934B1 (fr) 1995-09-15 1997-11-28 Thomson Multimedia Sa Systeme de comptabilisation anonyme d'informations a des fins statistiques, notamment pour des operations de vote electronique ou de releves periodiques de consommation
US5604804A (en) * 1996-04-23 1997-02-18 Micali; Silvio Method for certifying public keys in a digital signature scheme
US5610383A (en) 1996-04-26 1997-03-11 Chumbley; Gregory R. Device for collecting voting data
US5878399A (en) * 1996-08-12 1999-03-02 Peralto; Ryan G. Computerized voting system
US6029150A (en) 1996-10-04 2000-02-22 Certco, Llc Payment and transactions in electronic commerce system
US6250548B1 (en) 1997-10-16 2001-06-26 Mcclure Neil Electronic voting system
US6081793A (en) * 1997-12-30 2000-06-27 International Business Machines Corporation Method and system for secure computer moderated voting
AU5805099A (en) * 1998-09-02 2000-03-21 Diversified Dynamics, Inc. Direct vote recording system
US6317833B1 (en) 1998-11-23 2001-11-13 Lucent Technologies, Inc. Practical mix-based election scheme
WO2001020562A2 (en) 1999-03-25 2001-03-22 Votehere, Inc. Multiway election method and apparatus
US6769613B2 (en) * 2000-12-07 2004-08-03 Anthony I. Provitola Auto-verifying voting system and voting method

Also Published As

Publication number Publication date
US20020007457A1 (en) 2002-01-17
WO2001073694A2 (en) 2001-10-04
US6950948B2 (en) 2005-09-27
WO2001073694A3 (en) 2003-02-06
JP2006115550A (ja) 2006-04-27
JP2003529256A (ja) 2003-09-30
EP1302020B1 (de) 2005-11-09
ATE309655T1 (de) 2005-11-15
AU2001250976A1 (en) 2001-10-08
EP1302020A2 (de) 2003-04-16
ES2251475T3 (es) 2006-05-01
DE60114833D1 (de) 2005-12-15
CA2404161C (en) 2006-05-23
CA2404161A1 (en) 2001-10-04
DK1302020T3 (da) 2006-03-20

Similar Documents

Publication Publication Date Title
DE60114833T2 (de) Überprüfbare, geheime mischung von verschlüsselten daten wie z. b. elgamal-verschlüsselte daten für gesicherte mehrinstanzwahlen
JP4235453B2 (ja) 検証可能な秘密のシャッフルおよびそれらの電子投票への応用
DE102012206341B4 (de) Gemeinsame Verschlüsselung von Daten
Neff A verifiable secret shuffle and its application to e-voting
DE112011100182B4 (de) Datensicherheitsvorrichtung, Rechenprogramm, Endgerät und System für Transaktionsprüfung
DE69832154T2 (de) Verwaltung und benutzung von neuen geheimzahlen in einer netzwerkumgebung
DE60029676T2 (de) Verfahren zum Ermöglichen von Geheimhaltung und Vertrauen in elektronischen Gemeinschaften
Mursi et al. On the development of electronic voting: a survey
EP2438707A2 (de) Pseudonymisierte authentifizierung
Bouras et al. An electronic voting service to support decision-making in local government
Matile et al. CaIV: cast-as-intended verifiability in blockchain-based voting
Zhang et al. An efficient e2e crowd verifiable e-voting system
Pan et al. Ensuring voters and candidates' confidentiality in E-voting systems
Buccafurri et al. A privacy-preserving e-participation framework allowing citizen opinion analysis
EP1633077A2 (de) Überprüfbare, geheime Mischung von verschlüsselten Daten, wie z. B. Elgamal-verschlüsselte Daten, für gesicherte Mehrinstanzwahlen
Hevia et al. Electronic jury voting protocols
RU2271574C2 (ru) Проверяемые секретные перетасовывания и их применение при проведении электронного голосования
Lu et al. Self-tallying e-voting with public traceability based on blockchain
Melie Mitigating Voting Irregularities with Secure E-Voting in Nigeria
Abid et al. The secure I-voting system Helios++
CA2550259A1 (en) Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections
Pawar et al. Visual Cryptography in Internet Voting System
Hamad et al. The Secure I-Voting System Helios++
Matile et al. Cast-as-Intended Verifiability in Blockchain-based Electronic Voting
Goulet et al. Surveying and improving electronic voting schemes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee