Examen du système de vote électronique à distance de la Commission électorale centrale de la Fédération de Russie

Le 31 août 2020, un test public du système de vote électronique à distance (ci-après dénommé DEG) utilisant la technologie blockchain, développé sur ordre de la Commission électorale centrale de la Fédération de Russie, a eu lieu.

Pour vous familiariser avec le nouveau système de vote électronique et comprendre le rôle que joue la technologie blockchain et quels autres composants sont utilisés, nous lançons une série de publications consacrées aux principales solutions techniques utilisées dans le système. Nous suggérons de commencer dans l'ordre - avec les exigences du système et les fonctions des participants au processus

Configuration requise

Les exigences de base qui s'appliquent à tout système de vote sont généralement les mêmes pour le vote en personne traditionnel et pour le vote électronique à distance et sont déterminées par la loi fédérale du 12.06.2002 juin 67 N 31.07.2020-FZ (telle que modifiée le XNUMX juillet XNUMX). « Sur les garanties fondamentales du droit de vote et du droit de participer au référendum des citoyens de la Fédération de Russie. »

  1. Le vote aux élections et aux référendums est secret, excluant la possibilité de tout contrôle sur la volonté d'un citoyen (article 7).
  2. La possibilité de voter ne devrait être accordée qu'aux personnes qui disposent d'un droit actif de voter pour ce vote.
  3. Un électeur – une voix, le vote « double » n’est pas autorisé.
  4. Le processus de vote doit être ouvert et transparent pour les électeurs et les observateurs.
  5. L'intégrité du vote exprimé doit être garantie.
  6. Il ne devrait pas être possible de calculer les résultats intermédiaires du vote avant la fin du vote.

Nous avons donc trois participants : l'électeur, la commission électorale et l'observateur, entre lesquels l'ordre d'interaction est déterminé. Il est également possible de distinguer un quatrième participant - les organismes qui procèdent à l'enregistrement des citoyens sur le territoire (principalement le ministère de l'Intérieur, ainsi que d'autres autorités exécutives), puisque le suffrage actif est associé à la citoyenneté et au lieu d'enregistrement.

Tous ces participants interagissent les uns avec les autres.

Protocole d'interaction

Considérons le processus de vote dans un bureau de vote traditionnel, avec une urne et des bulletins papier. Sous une forme généralement simplifiée, cela ressemble à ceci : un électeur se présente au bureau de vote et présente une pièce d'identité (passeport). Il existe au bureau de vote une commission électorale de circonscription dont les membres vérifient l'identité de l'électeur et sa présence sur la liste électorale établie précédemment. Si l'électeur est retrouvé, un membre de la commission lui remet un bulletin de vote et l'électeur signe pour réception du bulletin de vote. Après cela, l'électeur se rend à l'isoloir, remplit le bulletin de vote et le dépose dans l'urne. Afin de garantir que toutes les procédures sont strictement respectées par la loi, tout cela est contrôlé par des observateurs (représentants des candidats, institutions publiques de contrôle). Une fois le vote terminé, la commission électorale, en présence d'observateurs, compte les voix et établit les résultats du vote.

Les propriétés nécessaires au vote dans un système de vote traditionnel sont fournies par des mesures organisationnelles et la procédure établie pour l'interaction des participants : contrôle des passeports des électeurs, signature personnelle des bulletins de vote, utilisation des isoloirs et des urnes scellées, procédure de dépouillement des votes, etc. .

Pour un système d'information, qui est un système de vote électronique à distance, cet ordre d'interaction est appelé protocole. Puisque toutes nos interactions deviennent numériques, ce protocole peut être considéré comme un algorithme mis en œuvre par des composants individuels du système et un ensemble de mesures organisationnelles et techniques effectuées par les utilisateurs.

L'interaction numérique impose certaines exigences aux algorithmes mis en œuvre. Regardons les actions réalisées sur un site classique en termes de systèmes d'information et comment cela est mis en œuvre dans le système DEG que nous envisageons.

Disons tout de suite que la technologie blockchain n’est pas une « solution miracle » qui résout tous les problèmes. Pour créer un tel système, il était nécessaire de développer un grand nombre de composants logiciels et matériels responsables de différentes tâches et de les connecter avec un processus et un protocole uniques. Mais en même temps, tous ces composants interagissent avec la plateforme blockchain.

Composants du système

D'un point de vue technique, le système DEG est un complexe logiciel et matériel (ci-après dénommé STC), qui combine un ensemble de composants pour assurer l'interaction entre les participants au processus électoral dans un environnement d'information unifié.

Le diagramme d'interaction des composants et des participants du système DEG PTC est présenté dans la figure ci-dessous.

Examen du système de vote électronique à distance de la Commission électorale centrale de la Fédération de Russie
Cliquable

Processus de vote à distance

Nous allons maintenant examiner en détail le processus de vote électronique à distance et sa mise en œuvre par les composants du complexe logiciel et matériel DEG.

Selon la Procédure de vote électronique à distance, pour être inscrit sur la liste des participants au vote électronique à distance, un électeur doit introduire une demande sur le portail des Services de l'État. Dans le même temps, seuls les utilisateurs disposant d'un compte confirmé et ayant été comparés avec succès avec le registre des électeurs, participants au référendum du système automatisé d'État «Élections», peuvent soumettre une telle demande. Après réception de la demande, les données de l'électeur sont à nouveau vérifiées par la Commission électorale centrale de Russie et téléchargées sur Composant Liste électorale PTC DEG. Le processus de téléchargement s'accompagne de l'enregistrement d'identifiants uniques dans la blockchain. Les membres de la commission électorale et les observateurs ont accès à la consultation de la liste à l'aide d'un poste de travail automatisé spécial situé dans les locaux de la commission électorale.

Lorsqu'un électeur se rend dans un bureau de vote, il est authentifié (par rapport aux données du passeport) et identifié sur la liste électorale, en plus de vérifier que cet électeur n'a pas reçu de bulletin de vote auparavant. Un point important ici est qu'il est impossible d'établir si l'électeur a déposé ou non le bulletin de vote reçu dans l'urne, seulement le fait que le bulletin de vote a déjà été émis plus tôt. Dans le cas de PTC DEG, la visite d’un électeur représente la demande d’un utilisateur de Portail DEG est un site Web situé sur vybory.gov.ru Comme un bureau de vote traditionnel, le site Web contient des documents d'information sur les campagnes électorales en cours, des informations sur les candidats et d'autres informations. Pour procéder à l'identification et à l'authentification, l'EIES du Portail des Services de l'État est utilisée. Ainsi, le schéma général d'identification est maintenu aussi bien lors de la candidature que lors du vote.

Après cela, commence la procédure d'anonymisation - l'électeur reçoit un bulletin de vote qui ne contient aucune marque d'identification : il n'a pas de numéro, il n'a aucun lien avec l'électeur à qui il a été délivré. Il est intéressant d'envisager l'option lorsque le bureau de vote est équipé de complexes de vote électronique - dans ce cas, l'anonymisation s'effectue comme suit : au lieu d'un bulletin de vote papier, l'électeur est invité à choisir dans une pile n'importe quelle carte avec un code-barres avec laquelle il s'approchera du dispositif de vote. Il n'y a aucune information sur l'électeur sur la carte, seulement un code qui détermine quel bulletin de vote l'appareil doit fournir lors de la présentation d'une telle carte. Avec une interaction entièrement numérique, la tâche principale est de mettre en œuvre un algorithme d'anonymisation tel que, d'une part, il soit impossible d'établir des données d'identification de l'utilisateur, et d'autre part, de fournir la possibilité de voter uniquement aux utilisateurs qui étaient précédemment identifiés dans la liste. Pour résoudre ce problème, la DEG PTK utilise un algorithme cryptographique, connu dans le milieu professionnel sous le nom de « signature électronique aveugle ». Nous en parlerons en détail dans les publications suivantes, et publierons également le code source ; vous pouvez également collecter des informations supplémentaires à partir de publications sur Internet en utilisant des mots-clés - « protocoles de vote secret cryptographique » ou « signature aveugle »

Ensuite, l'électeur remplit le bulletin de vote dans un endroit où il est impossible de voir le choix effectué (un isoloir fermé) - si dans notre système d'information l'électeur vote à distance, alors le seul endroit de ce type est l'appareil personnel de l'utilisateur. Pour ce faire, l'utilisateur est d'abord transféré vers un autre domaine - vers la zone anonyme. Avant de changer, vous pouvez augmenter votre connexion VPN et modifier votre adresse IP. C'est sur ce domaine que le bulletin de vote est affiché et que le choix de l'utilisateur est traité. Le code source qui s'exécute sur l'appareil de l'utilisateur est initialement ouvert - il est visible dans le navigateur.

Une fois le choix effectué, le bulletin de vote est crypté sur l'appareil de l'utilisateur à l'aide d'un système de cryptage spécial, envoyé et enregistré dans composant « Stockage distribué et décompte des votes », construit sur la plateforme blockchain.

L'une des caractéristiques les plus importantes du protocole est l'impossibilité de connaître les résultats du vote avant sa finalisation. Dans un bureau de vote traditionnel, cela est assuré par le scellement des urnes et la surveillance par des observateurs. Dans les interactions numériques, la meilleure solution consiste à chiffrer le choix de l’électeur. L'algorithme de cryptage utilisé empêche la divulgation des résultats avant la fin du vote. Pour cela, un schéma à deux clés est utilisé : une clé (publique), connue de tous les participants, est utilisée pour crypter la voix. Il ne peut pas être déchiffré avec la même clé ; une deuxième clé (privée) est nécessaire. La clé privée est divisée entre les participants au processus électoral (membres des commissions électorales, chambre publique, opérateurs de serveurs de comptage, etc.) de telle manière que chaque partie individuelle de la clé est inutile. Vous ne pouvez commencer le décryptage qu'une fois la clé privée collectée. Dans le système considéré, la procédure de séparation des clés comprend plusieurs étapes : séparation d'une partie de la clé au sein du système, séparation de la clé à l'extérieur du système et génération d'une clé publique commune. Nous montrerons en détail le processus de cryptage et l'utilisation des clés cryptographiques dans de futures publications.

Une fois la clé collectée et téléchargée, le calcul des résultats commence pour leur enregistrement ultérieur dans la blockchain et leur annonce ultérieure. Une caractéristique du système considéré est l'utilisation de la technologie de cryptage homomorphe. Nous décrirons cet algorithme en détail dans de futures publications et expliquerons pourquoi cette technologie est largement utilisée pour créer des systèmes de vote. Notons maintenant sa principale caractéristique : les bulletins de vote cryptés enregistrés dans le système comptable peuvent être combinés sans déchiffrement de telle sorte que le résultat du déchiffrement d'un tel texte chiffré combiné sera la valeur additionnée de chaque choix dans les bulletins de vote. Dans le même temps, le système met bien entendu en œuvre des preuves mathématiques de l’exactitude d’un tel calcul, qui sont également enregistrées dans le système comptable et peuvent être vérifiées par des observateurs.

Vous trouverez ci-dessous un aperçu du processus de vote.

Examen du système de vote électronique à distance de la Commission électorale centrale de la Fédération de Russie
Cliquable

Plateforme blockchain

Maintenant que nous avons examiné les principales caractéristiques de la mise en œuvre d'un système de vote électronique à distance, répondons à la question avec laquelle nous avons commencé : quel rôle la technologie blockchain joue-t-elle dans cela et quels problèmes permet-elle de résoudre ?

Dans le système de vote à distance mis en œuvre, la technologie blockchain résout un certain nombre de problèmes.

  • La tâche principale est d'assurer l'intégrité des informations dans le cadre du vote et, en premier lieu, des votes.
  • Assurer la transparence de l'exécution et l'immuabilité du code du programme mis en œuvre sous forme de contrats intelligents.
  • Assurer la protection et l'immuabilité des données utilisées dans le processus de vote : la liste des électeurs, les clés utilisées pour crypter les bulletins de vote aux différentes étapes du protocole cryptographique, etc.
  • Assurer un stockage décentralisé des données, chaque participant disposant d'une copie absolument identique, confirmée par les propriétés de consensus dans le réseau.
  • La possibilité de visualiser les transactions et de suivre la progression du vote, qui se reflète pleinement dans la chaîne de blocs, depuis son début jusqu'à l'enregistrement des résultats calculés.

Ainsi, nous constatons que sans utiliser cette technologie, il est presque impossible d'obtenir les propriétés nécessaires du système de vote, ainsi que d'y accorder la confiance.

La fonctionnalité de la plateforme blockchain utilisée est enrichie par l’utilisation de contrats intelligents. Les contrats intelligents vérifient chaque transaction avec des bulletins de vote cryptés pour l'authenticité des signatures électroniques et « aveugles », et effectuent également des contrôles de base sur l'exactitude du remplissage du bulletin de vote crypté.

De plus, dans le système de vote électronique à distance considéré, le composant « Stockage distribué et décompte des votes » ne se limite pas aux seuls nœuds blockchain. Pour chaque nœud, un serveur distinct peut être déployé qui implémente les principales fonctions cryptographiques du protocole de vote - les serveurs de comptage.

Comptage des serveurs

Il s'agit de composants décentralisés qui fournissent la procédure de génération distribuée d'une clé de cryptage des bulletins de vote, ainsi que le décryptage et le calcul des résultats du vote. Leurs tâches comprennent :

  • Assurer la génération distribuée d’une partie de la clé de cryptage des bulletins de vote. La procédure de génération de clé sera abordée dans les articles suivants ;
  • Vérifier l'exactitude du bulletin de vote crypté (sans le décrypter) ;
  • Traiter les bulletins de vote sous forme cryptée pour générer le texte chiffré final ;
  • Décodage distribué des résultats finaux.

Chaque étape d'exécution du protocole cryptographique est enregistrée dans la plateforme blockchain et son exactitude peut être vérifiée par des observateurs.

Pour donner au système les propriétés nécessaires à différentes étapes du processus de vote, les algorithmes cryptographiques suivants sont utilisés :

  • Signature électronique;
  • Signature aveugle de la clé publique de l'électeur ;
  • Schéma de chiffrement de courbe elliptique ElGamal ;
  • Preuves sans connaissance ;
  • Protocole Pedersen 91 DKG (génération de clés distribuées) ;
  • Protocole de partage de clé privée utilisant le schéma de Shamir.

Le service cryptographique sera abordé plus en détail dans les articles suivants.

Les résultats de

Résumons quelques résultats intermédiaires de la réflexion sur le système de vote électronique à distance. Nous avons brièvement décrit le processus et les principaux composants qui le mettent en œuvre, et avons également identifié les moyens d'atteindre les propriétés nécessaires à tout système de vote :

  • Vérifiabilité des électeurs. Le système n'accepte que les votes des électeurs vérifiés. Cette propriété est assurée par l'identification et l'authentification des électeurs, ainsi que par l'enregistrement de la liste des électeurs et le fait de donner accès au bulletin de vote dans la blockchain.
  • Anonymat. Le système garantit le secret du vote, inscrit dans la législation de la Fédération de Russie ; l'identité de l'électeur ne peut être déterminée à partir d'un bulletin de vote crypté. Mis en œuvre à l'aide d'un algorithme de « signature aveugle » et d'une zone anonyme pour remplir et envoyer le bulletin de vote.
  • Confidentialité des votes. Les organisateurs et autres participants au vote ne peuvent connaître le résultat du vote qu'une fois celui-ci terminé, le décompte des votes et le déchiffrement des résultats finaux. La confidentialité est assurée en cryptant les bulletins de vote et en les rendant impossibles à déchiffrer avant le vote.
  • Immuabilité des données. Les données des électeurs ne peuvent pas être modifiées ou supprimées. Le stockage de données immuables est assuré par la plateforme blockchain.
  • Vérifiabilité. L'observateur peut vérifier que les votes ont été correctement comptés.
  • Fiabilité. L'architecture du système est basée sur les principes de décentralisation, garantissant l'absence d'un « point de défaillance » unique.

Source: habr.com

Ajouter un commentaire