Überblick über das Anonymisierungsverfahren für das elektronische Fernabstimmungssystem

В frühere Veröffentlichungen Wir haben uns auf die Tatsache geeinigt, dass in dem von uns in Betracht gezogenen elektronischen Fernabstimmungssystem ein kryptografischer „blinder elektronischer Signaturalgorithmus“ verwendet wird, um das Wahlgeheimnis zu gewährleisten und den Wähler zu anonymisieren. In diesem Artikel werden wir uns das genauer ansehen.

Wenden wir uns zunächst dem bekannten und bekannten Algorithmus für elektronische Signaturen zu, der in Informationssystemen für verschiedene Zwecke weit verbreitet ist. Die elektronische Signatur basiert auf kryptografischen asymmetrischen Verschlüsselungsalgorithmen. Bei der asymmetrischen Verschlüsselung handelt es sich um eine Verschlüsselung mit zwei Schlüsseln: Einer davon dient zur Verschlüsselung, der andere zur Entschlüsselung. Sie werden als offener (öffentlicher) und privater Schlüssel bezeichnet. Der öffentliche Schlüssel ist anderen bekannt, und der private Schlüssel ist nur dem Besitzer der elektronischen Signatur bekannt und wird an einem für andere unzugänglichen Ort gespeichert.

Beim Signieren geschieht Folgendes: Zunächst wird das elektronische Dokument durch mathematische Transformationen auf eine Folge von Zeichen einer bestimmten Größe reduziert – dies wird als Hash-Funktion bezeichnet.

Die resultierende Zeichenfolge (ein Hash aus dem Dokument) wird vom Absender des Dokuments mit einem privaten Schlüssel verschlüsselt und zusammen mit dem öffentlichen Schlüssel an den Empfänger gesendet. Der Empfänger entschlüsselt die Zeichenfolge mithilfe des öffentlichen Schlüssels, wendet genau dieselbe Hash-Funktion auf das Dokument an und vergleicht das Konvertierungsergebnis mit dem Entschlüsselungsergebnis. Wenn alles übereinstimmt, wurden nach der Unterzeichnung durch den Absender keine Änderungen am Dokument vorgenommen.

Mit den beschriebenen Aktionen können Sie überprüfen, ob das Dokument nicht verändert wurde. Sie können jedoch nicht überprüfen, ob der Absender wirklich der ist, für den er sich ausgibt. Daher benötigen wir einen Dritten, dem sowohl der Absender als auch der Empfänger vertrauen. Dazu nimmt der Absender vor dem Versenden des Dokuments Kontakt zu einer dritten Person auf und bittet diese, seinen öffentlichen Schlüssel mit ihrer elektronischen Signatur zu signieren. Der Absender sendet dem Empfänger nun das Dokument, seinen öffentlichen Schlüssel und eine Drittsignatur seines Schlüssels. Der Empfänger überprüft die Signatur des Dritten auf dem öffentlichen Schlüssel und vertraut der resultierenden Dokumentsignatur.

Kommen wir nun dazu, was eine „blinde Signatur“ ist und wie sie uns bei der Anonymisierung helfen kann.

Stellen wir uns vor, dass in dem oben beschriebenen Beispiel der Absender der Wähler ist, das Dokument der Stimmzettel und der Empfänger die Wahlkommission oder wie wir sagten „die Komponente der Stimmenauszählung“. Wir werden die Komponente „Wählerliste“ als Drittpartei (Validator) haben. In diesem Fall kann der Vorgang wie folgt ablaufen.

Überblick über das Anonymisierungsverfahren für das elektronische Fernabstimmungssystem

Der Wähler generiert auf seinem Gerät ein Schlüsselpaar – privat und öffentlich. Da diese Schlüssel auf seinem persönlichen Gerät im Browser erstellt werden, sind sie nur ihm bekannt.

Mit diesen Schlüsseln unterschreibt er den Stimmzettel, um seine Integrität zu kontrollieren. Er sendet den unterschriebenen Stimmzettel und den öffentlichen Schlüssel an die Wahlkommission. Damit ein Stimmzettel von der Komponente „Distributed Vote Storage and Counting“ akzeptiert wird, muss überprüft werden, ob der öffentliche Schlüssel vom Validator signiert ist.

Der Validator (Komponente „Wählerliste“) signiert den öffentlichen Schlüssel erst, nachdem er überprüft hat, ob der Wähler auf der Wählerliste steht.

Um das Problem der Wahrung des Wahlgeheimnisses zu lösen, sollte der auf seinem Gerät erstellte öffentliche Schlüssel des Wählers niemandem bekannt sein. Es stellt sich heraus, dass der Validator etwas unterschreiben muss, das ihm unbekannt ist. Die Aufgabe scheint unmöglich, aber hier helfen kryptografische Algorithmen – in diesem Fall der „Blind-Signatur“-Algorithmus

Zunächst muss der öffentliche Schlüssel auf dem Gerät des Wählers maskiert werden. Unter Maskierung versteht man die Durchführung einzelner mathematischer Operationen auf dem Gerät des Benutzers. Stellen Sie sich vor, Sie denken an eine Zufallszahl von 1 bis 100, denken dann an eine zweite Zufallszahl von 1 bis 10 und eine dritte, von 10 bis 50, potenzieren die ursprünglich gedachte Zahl mit der zweiten Zahl und dividieren sie ohne ein Rest im Drittel. Das Ergebnis wurde anderen mitgeteilt. Es wird Ihnen nicht schwer fallen, die ursprüngliche Nummer wiederherzustellen, da Sie die Reihenfolge der Aktionen und die Nummern kennen, die Sie im Sinn haben. Aber die Menschen um Sie herum werden dazu nicht in der Lage sein.

Die Maskierung (Blindung) des öffentlichen Schlüssels erfolgt nach einem speziellen kryptografischen Algorithmus. Dadurch signiert der Prüfer einen maskierten öffentlichen Schlüssel, ohne den Originalschlüssel zu kennen. Die Besonderheit des Algorithmus besteht jedoch darin, dass der Benutzer (Wähler), nachdem er eine Signatur für einen maskierten Schlüssel erhalten hat, umgekehrte Transformationen durchführen und eine Signatur erhalten kann, die für den ursprünglichen, nicht maskierten Schlüssel gültig ist.

Der beschriebene Algorithmus wird häufig in geheimen Abstimmungsprotokollen verwendet. Das elektronische Fernabstimmungssystem verwendet derzeit den RSA-Algorithmus mit einer Schlüssellänge von 4096 Bit für Blindsignaturen.

Im Allgemeinen läuft das Anonymisierungsverfahren wie folgt ab.

  1. Bei der Erstellung einer Abstimmung wird ein separates „Validator“-Schlüsselpaar erstellt und der öffentliche Schlüssel in der Blockchain aufgezeichnet. Für jede Stimme wird ein eindeutiges Schlüsselpaar erstellt.
  2. Der Nutzer wird im Identifikationssystem (in diesem Fall im ESIA) identifiziert und erteilt die Erlaubnis, seine Identifikationsdaten vom Identifikationssystem an das DEG PTC zu übertragen.
  3. Die Komponente „Wählerliste“ des DEG PTC prüft die Anwesenheit des Benutzers in der Wählerliste.
  4. Auf dem Gerät des Benutzers werden seine persönlichen Schlüssel erstellt – privat und öffentlich, die nur ihm bekannt sind.
  5. Der öffentliche Schlüssel ist auf dem Gerät des Benutzers maskiert
  6. Zusammen mit Identifikationsdaten und einem maskierten öffentlichen Schlüssel greift der Nutzer auf die Komponente „Wählerliste“ zu
  7. Die Komponente überprüft erneut die Anwesenheit des Benutzers in der Liste und die Tatsache, dass er zuvor keine Signatur erhalten hat
  8. Sind alle Prüfungen erfolgreich, wird der Schlüssel signiert
  9. Die Tatsache der Signatur des Schlüssels wird in der Blockchain aufgezeichnet
  10. Der Benutzer entfernt auf seinem Gerät die Maske des öffentlichen Schlüssels und erhält einen privaten Schlüssel, einen öffentlichen Schlüssel und eine Signatur auf dem öffentlichen Schlüssel, wobei alle Schlüssel nur ihm bekannt sind.
  11. Danach wird der Benutzer in eine anonyme Zone weitergeleitet – auf eine separate Website edg2020.gov.ru, wo es unmöglich ist, ihn zu identifizieren (zum Beispiel kann er vor dem Übergang eine VPN-Verbindung herstellen oder seinen Internetanbieter wechseln, wodurch er vollständig geändert wird IP Adresse)
  12. Die Annahme des Stimmzettels hängt nur davon ab, ob die Unterschrift des „Validators“ überprüft wird und ob ein solcher Schlüssel nicht bereits zuvor verwendet wurde.

Als nächstes geben wir eine Beschreibung des Algorithmus aus kryptografischer Sicht.
Signatur- und Benennungsmöglichkeiten:

Überblick über das Anonymisierungsverfahren für das elektronische Fernabstimmungssystem
Überblick über das Anonymisierungsverfahren für das elektronische Fernabstimmungssystem

M – im FDN-Auffüllformat für die Signatur.

Source: habr.com

Kommentar hinzufügen