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

Dans publications précédentes Nous avons vu que dans le système de vote électronique à distance que nous examinons, un algorithme cryptographique de « signature électronique aveugle » est utilisé pour garantir la confidentialité du vote et l'anonymat de l'électeur. Dans cet article, nous allons l'examiner plus en détail.

Commençons par aborder un algorithme de signature électronique bien connu et familier, qui est largement utilisé dans les systèmes d'information de divers types. La signature électronique repose sur des algorithmes cryptographiques de chiffrement asymétrique. Le chiffrement asymétrique utilise deux clés : l'une est utilisée pour le cryptage, l'autre pour le décryptage. On les appelle clé publique et clé privée. La clé publique est connue de tous, tandis que la clé privée est réservée à son propriétaire 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 est transformé, à l'aide de transformations mathématiques, en une séquence de symboles d'une taille définie - cela s'appelle une fonction de hachage.

La séquence de symboles obtenue (hachage du document) est chiffrée par l'expéditeur du document à l'aide de sa clé privée et envoyée au destinataire avec la clé publique. Le destinataire déchiffre la séquence de symboles en utilisant la clé publique, applique à son tour exactement la même fonction de hachage au document et compare le résultat de la transformation avec celui du décryptage. Si tout correspond, cela signifie qu'aucune modification n'a été apportée au document après qu'il ait été signé par l'expéditeur.

Les actions décrites garantissent que le document n'a pas été modifié, mais elles ne permettent pas de s'assurer que l'expéditeur est bien celui qu'il prétend être. C'est pourquoi nous avons besoin d'un tiers en qui l'expéditeur et le destinataire ont confiance. Pour cela, avant d'envoyer le document, l'expéditeur sollicite un tiers pour signer sa clé publique avec sa propre signature électronique. L'expéditeur envoie maintenant au destinataire le document, sa clé publique et la signature du tiers de sa clé. Le destinataire vérifie la signature du tiers sur la clé publique et fait confiance à la signature obtenue du document.

Abordons maintenant ce qu'est une « signature aveugle » et comment elle peut nous aider dans l'anonymisation.

Imaginons que, dans l'exemple ci-dessus, l'expéditeur soit un électeur, le document un bulletin, et le destinataire la commission électorale, ou comme nous l'avons dit, le « composant de comptage et de dépouillement des votes ». En tant que tierce partie (validateur), nous aurons le composant « Liste des électeurs ». 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 sur son appareil une paire de clés – une clé privée et une clé publique. Étant donné que ces clés sont créées sur son appareil personnel dans le navigateur, elles ne sont connues que de lui.

Avec ces clés, il signera le bulletin pour assurer son intégrité. Le bulletin signé et la clé publique sont ensuite envoyés à la commission électorale. Pour que le bulletin soit accepté par le composant « Stockage décentralisé et dépouillement des votes », il doit vérifier que la clé publique est signée par le validateur.

Le validateur (composant « Liste des électeurs ») signera la clé publique uniquement après s'être assuré que l'électeur figure sur la liste des électeurs.

Pour préserver le secret du vote, la clé publique de l'électeur, générée sur son appareil, ne doit être connue de personne. Il s'avère donc que le validateur doit signer quelque chose dont il n'a pas connaissance. La tâche semble impossible, mais les algorithmes cryptographiques viennent à la rescousse – dans ce cas, l'algorithme de la « signature aveugle ».

Tout d'abord, sur l'appareil de l'électeur, la clé publique doit être masquée. Le masquage consiste à effectuer certaines opérations mathématiques sur l'appareil de l'utilisateur. Imaginez que vous pensiez à un nombre aléatoire entre 1 et 100, puis à un deuxième nombre aléatoire entre 1 et 10, et à un troisième, entre 10 et 50, en élevant le nombre initial à la puissance du deuxième nombre et en divisant sans reste par le troisième. Le résultat obtenu est communiqué aux autres. Il vous sera facile de retrouver le nombre initial, car vous connaissez la séquence des opérations et les nombres que vous avez choisis. Mais les autres ne pourront pas le faire.

Le masquage (éblouissement) de la clé publique est effectué selon un algorithme cryptographique spécial. En conséquence, le validateur signe la clé publique masquée, tout en ne connaissant pas la clé d'origine. Cependant, les particularités de l'algorithme sont telles que l'utilisateur (l'électeur), ayant reçu la signature sur la clé masquée, peut effectuer des transformations inverses et obtenir une signature valide également pour la clé d'origine, non masquée.

L'algorithme décrit est largement utilisé dans les protocoles de vote secret. Dans le système de vote électronique à distance, l'algorithme RSA avec une longueur de clé de 4096 bits est actuellement utilisé pour la signature aveugle.

En termes généraux, la procédure d'anonymisation se présente comme suit.

  1. Lors de la création d'un vote, une paire de clés distincte pour le « validateur » est générée, la clé publique est enregistrée dans la blockchain. Une paire de clés unique est créée pour chaque vote.
  2. L'utilisateur s'identifie dans le système d'identification (dans ce cas, dans l'ESIA) et donne la permission de transmettre ses données d'identification du système d'identification au PTK DEG.
  3. Le composant « Liste des électeurs » du PTK DEG vérifie la présence de l'utilisateur dans la liste des électeurs.
  4. Des clés personnelles sont générées sur l'appareil de l'utilisateur - la clé privée et la clé publique, connues uniquement de lui.
  5. Sur l'appareil de l'utilisateur, la clé publique est masquée.
  6. Avec les données d'identification et la clé publique masquée, l'utilisateur s'adresse 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'ait pas reçu de signature auparavant.
  8. Si toutes les vérifications sont réussies, la clé est signée.
  9. Le fait que la clé ait été signée est enregistré dans la blockchain.
  10. L'utilisateur démasque la clé publique sur son appareil, obtenant ainsi la clé privée, la clé publique et la signature sur la clé publique, toutes les clés étant uniquement connues de lui.
  11. Après cela, l'utilisateur est transféré dans une zone anonyme - sur un site séparé edg2020.gov.ru, où il est impossible de l'identifier (par exemple, avant de passer, il peut se connecter VPN ou changer de fournisseur d'accès Internet, modifiant complètement son adresse IP).
  12. La réception du bulletin dépendra uniquement de la réussite de la vérification de la signature du « validateur » et du fait qu'une telle clé n'ait pas été utilisée auparavant.

Voici une description de l'algorithme du point de vue de la cryptographie.
Paramètres de signature et notations :

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 padding FDN pour la signature.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster