Aperçu de la procédure d'anonymisation du système de vote électronique à distance

В publications précédentes Nous avons retenu que dans le système de vote électronique à distance que nous envisageons, un algorithme cryptographique de « signature électronique aveugle » est utilisé pour garantir le secret du vote et anonymiser l'électeur. Dans cet article, nous l'examinerons plus en détail.

Tout d'abord, tournons-nous vers l'algorithme de signature électronique bien connu et familier, largement utilisé dans les systèmes d'information à diverses fins. La signature électronique repose sur des algorithmes de chiffrement cryptographique asymétrique. Le chiffrement asymétrique est un chiffrement utilisant 2 clés : l’une sert au chiffrement, l’autre au déchiffrement. Elles sont appelées clé ouverte (publique) et privée. La clé publique est connue des autres, et la clé privée n'est connue que du propriétaire de la signature électronique et est stockée dans un endroit inaccessible aux autres.

Lors de la signature, il se produit ce qui suit : d'abord, le document électronique, à l'aide de transformations mathématiques, est réduit à une séquence de caractères d'une certaine taille - c'est ce qu'on appelle une fonction de hachage.

La séquence de caractères résultante (un hachage du document) est cryptée par l'expéditeur du document à l'aide d'une clé privée et, avec la clé publique, est envoyée au destinataire. Le destinataire déchiffre la séquence de caractères à l'aide de la clé publique, applique exactement la même fonction de hachage au document et compare le résultat de la conversion avec le résultat du décryptage. Si tout correspond, aucune modification n'a été apportée au document après sa signature par l'expéditeur.

Les actions décrites permettent de vérifier que le document n'a pas été modifié, mais ne permettent pas de vérifier que l'expéditeur est bien celui qu'il prétend être. Par conséquent, nous avons besoin d’un tiers auquel font confiance à la fois l’expéditeur et le destinataire. Pour ce faire, avant d'envoyer le document, l'expéditeur contacte un tiers et lui demande de signer sa clé publique avec sa signature électronique. L'expéditeur envoie désormais au destinataire le document, sa clé publique et une signature tierce de sa clé. Le destinataire vérifie la signature du tiers sur la clé publique et fait confiance à la signature du document résultant.

Passons maintenant à ce qu'est une « signature aveugle » et comment elle peut nous aider en matière d'anonymisation.

Imaginons que dans l’exemple décrit ci-dessus, l’expéditeur soit l’électeur, le document soit le bulletin de vote et le destinataire soit la commission électorale, ou comme nous l’avons dit « l’élément de dépouillement des votes ». Nous aurons le composant « Liste des électeurs » en tant que tiers (validateur). Dans ce cas, le processus peut se dérouler comme suit.

Aperçu de la procédure d'anonymisation du système de vote électronique à distance

L'électeur génère une paire de clés sur son appareil – privée et publique. Ces clés étant créées sur son appareil personnel dans le navigateur, elles ne sont connues que de lui.

A l'aide de ces clés, il signera le bulletin de vote pour en contrôler l'intégrité. Il envoie le bulletin de vote signé et la clé publique à la commission électorale. Pour qu'un bulletin de vote soit accepté par le composant Stockage et décompte distribué des votes, celui-ci doit vérifier que la clé publique est signée par le validateur.

Le validateur (composant Liste des électeurs) signera la clé publique seulement après avoir vérifié que l'électeur figure sur la liste électorale.

Pour résoudre le problème de la préservation du secret du vote, la clé publique de l’électeur créée sur son appareil ne doit être connue de personne. Il s'avère que le validateur doit signer quelque chose qui lui est inconnu. La tâche semble impossible, mais ici les algorithmes cryptographiques viennent à la rescousse - dans ce cas, l'algorithme de « signature aveugle »

Premièrement, la clé publique doit être masquée sur l'appareil de l'électeur. Le masquage est l'exécution d'opérations mathématiques individuelles sur l'appareil de l'utilisateur. Imaginez que vous pensiez à un nombre aléatoire de 1 à 100, puis que vous pensiez à un deuxième nombre aléatoire de 1 à 10 et qu'un troisième, de 10 à 50, éleviez le nombre initialement pensé à la puissance du deuxième nombre et le divisiez sans un reste par le tiers. Le résultat a été rapporté à d’autres. Il ne vous sera pas difficile de restaurer le numéro d'origine, puisque vous connaissez la séquence d'actions et les numéros que vous avez en tête. Mais votre entourage n’y parviendra pas.

Le masquage (aveuglement) de la clé publique est effectué selon un algorithme cryptographique spécial. En conséquence, le validateur signe une clé publique masquée sans connaître la clé originale. Mais la particularité de l'algorithme est que l'utilisateur (électeur), ayant reçu une signature pour une clé masquée, peut effectuer des transformations inverses et obtenir une signature valable pour la clé originale non masquée.

L'algorithme décrit est largement utilisé dans les protocoles de vote secret. Le système de vote électronique à distance utilise actuellement l'algorithme RSA avec une longueur de clé de 4096 bits pour les signatures aveugles.

De manière générale, la procédure d'anonymisation est la suivante.

  1. Lorsqu’un vote est créé, une paire de clés « validateur » distincte est créée et la clé publique est enregistrée dans la blockchain. Une paire de clés unique est créée pour chaque vote.
  2. L'utilisateur est identifié dans le système d'identification (dans ce cas, dans l'ESIA) et autorise le transfert de ses données d'identification du système d'identification vers la DEG PTC.
  3. Le composant « Liste des électeurs » du DEG PTC vérifie la présence de l'utilisateur dans la liste électorale.
  4. Sur l'appareil de l'utilisateur, ses clés personnelles sont créées - privées et publiques, connues de lui seul.
  5. La clé publique est masquée sur l'appareil de l'utilisateur
  6. Avec les données d'identification et une clé publique masquée, l'utilisateur accède au composant « Liste des électeurs »
  7. Le composant vérifie à nouveau la présence de l'utilisateur dans la liste et le fait qu'il n'a pas reçu de signature auparavant
  8. Si toutes les vérifications réussissent, la clé est signée
  9. Le fait de signer la clé est enregistré dans la blockchain
  10. L'utilisateur sur son appareil enlève le masque de la clé publique et reçoit une clé privée, une clé publique et une signature sur la clé publique, et toutes les clés sont connues de lui seul.
  11. Après cela, l'utilisateur est transféré vers une zone anonyme - vers un site Web distinct edg2020.gov.ru, où il est impossible de l'identifier (par exemple, avant la transition, il peut connecter un VPN ou changer de fournisseur d'accès Internet, modifiant complètement le Adresse IP)
  12. L’acceptation du bulletin de vote dépendra uniquement de la vérification de la signature du « validateur » et de la non-utilisation préalable d’une telle clé.

Ensuite, nous fournissons une description de l’algorithme du point de vue de la cryptographie.
Options de signature et de désignation :

Aperçu de la procédure d'anonymisation du système de vote électronique à distance
Aperçu de la procédure d'anonymisation du système de vote électronique à distance

M – au format de remplissage FDN pour la signature.

Source: habr.com

Ajouter un commentaire