Pour se 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 proposons de commencer dans l'ordre - avec les exigences du système et les fonctions des participants au processus
Configuration requise
Les exigences de base applicables à tout système de vote sont généralement les mêmes pour le vote traditionnel en face à face et le vote électronique à distance et sont définies par la loi fédérale n ° 67-FZ du 12.06.2002 (telle que modifiée le 31.07.2020) «Sur les garanties de base droits électoraux et droit de participer à un référendum des citoyens de la Fédération de Russie ».
- Le vote aux élections et aux référendums est secret, excluant la possibilité de tout contrôle sur l'expression de la volonté d'un citoyen (article 7).
- La possibilité de voter ne devrait être offerte qu'aux personnes qui ont le droit de vote actif lors de ce vote.
- Un électeur - un vote, le vote «double» n'est pas autorisé.
- Le processus de vote doit être ouvert et transparent pour les électeurs et les observateurs.
- La cohérence du vote exprimé doit être garantie.
- Il ne devrait pas être possible de calculer les sous-totaux du vote avant son achèvement.
Donc, nous avons trois participants: un électeur, une commission électorale et un observateur, entre lesquels l'ordre d'interaction est déterminé. Il est également possible de distinguer le quatrième participant - les organismes qui effectuent l'enregistrement des citoyens sur le territoire (tout d'abord, le ministère de l'Intérieur, ainsi que d'autres autorités exécutives), car 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érez le processus de vote dans un bureau de vote traditionnel, avec une urne et des bulletins de vote papier. En général, de forme simplifiée, cela ressemble à ceci: un électeur se présente au bureau de vote et présente une pièce d'identité (passeport). Une commission électorale de circonscription travaille dans l'enceinte, dont un membre vérifie l'identité de l'électeur et sa présence sur la liste électorale, qui a été compilée plus tôt. Si un électeur est trouvé, un membre de la commission envoie un bulletin de vote à l'électeur, et l'électeur signe pour recevoir le bulletin de vote. Après cela, l'électeur se rend à l'isoloir, remplit le bulletin de vote et le met dans l'urne. Pour s'assurer que toutes les procédures sont strictement observées conformément à la loi, des observateurs (représentants des candidats, institutions publiques d'observation) surveillent tout.Une fois le vote terminé, la commission électorale, en présence d'observateurs, procède au décompte des votes et établit les résultats du vote.
Les propriétés nécessaires au vote dans le système de vote traditionnel sont fournies par des mesures organisationnelles et la procédure établie pour l'interaction des participants: vérification des passeports des électeurs, signature personnelle des bulletins de vote, utilisation des isoloirs et des urnes scellées, la procédure de dépouillement des votes, etc.
Pour un système d'information, qui est un système de vote électronique à distance, cette procédure d'interaction est appelée protocole. Puisque toute interaction avec nous devient numérique, ce protocole peut être considéré comme un algorithme implémenté 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 le site traditionnel en termes de systèmes d'information et comment cela est implémenté dans le système DEG que nous envisageons.
Disons tout de suite que la technologie blockchain n'est pas ici 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 seul processus et protocole. 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 PTC), qui combine un ensemble de composants pour assurer l'interaction des participants au processus électoral dans un environnement d'information unique.
Le schéma d'interaction des composants et des participants du système DEG PTC est illustré dans la figure ci-dessous. Cliquable
Processus de vote à distance
Examinons maintenant en détail le processus de vote électronique à distance et sa mise en œuvre par les composants du complexe logiciel et matériel DEG.
Conformément à la procédure de vote électronique à distance, pour être inclus dans la liste des participants au vote électronique à distance, un électeur doit soumettre une demande sur le portail des services de l'État. Dans le même temps, une telle demande ne peut être soumise que par les utilisateurs qui ont un compte confirmé et qui ont été mis en correspondance avec le registre des électeurs, participants au référendum du système GAS «Vybory». Après réception de la demande, les données des électeurs sont à nouveau vérifiées par la CEC de Russie et téléchargées dans le composant «Liste des électeurs»PTK DEG. Le processus de téléchargement est accompagné 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 AWP 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é dans la liste électorale, ainsi qu'un contrôle que cet électeur n'a pas reçu le bulletin de vote auparavant. Voici un point important - il est impossible de déterminer si l'électeur a déposé le bulletin de vote reçu dans l'urne ou non, seulement le fait que le bulletin de vote a déjà été émis plus tôt. Dans le cas de PTK DEG, la visite d'un électeur est un appel de l'utilisateur sur le portail DEG- il s'agit d'un site situé à vybory.gov.ru Comme dans l'enceinte traditionnelle, le site contient du matériel 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 d'État est utilisée. Ainsi, le schéma général d'identification est conservé à la fois lors du dépôt d'une candidature et lors de la participation à un vote.
Après cela, la procédure d'anonymisation commence - 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 rien à voir avec l'électeur auquel 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 est effectuée comme suit: au lieu d'un bulletin de vote papier, l'électeur est invité à choisir dans la pile n'importe quelle carte avec un code-barres, avec laquelle il s'approchera du dispositif de vote. La carte ne contient aucune information sur l'électeur, seulement un code qui détermine quel bulletin de vote doit être fourni par l'appareil sur présentation d'une telle carte. Avec une interaction entièrement numérique, la tâche principale est de mettre en œuvre un tel algorithme d'anonymisation afin que, d'une part,il était impossible d'établir des données d'identification de l'utilisateur et, d'autre part, de donner la possibilité de voter uniquement à l'utilisateur qui était précédemment identifié dans la liste. Pour le résoudre, le complexe logiciel et matériel DEG utilise un algorithme cryptographique connu dans l'environnement professionnel sous le nom de «signature électronique aveugle». Nous allons le décrire en détail dans les publications suivantes, ainsi que publier le code source, vous pouvez également collecter des informations supplémentaires à partir de publications sur Internet en utilisant des mots-clés - "protocoles cryptographiques de vote secret" ou "signature aveugle"Nous allons le décrire en détail dans les publications suivantes, ainsi que publier le code source, vous pouvez également collecter des informations supplémentaires à partir de publications sur Internet par mots-clés - "protocoles cryptographiques de vote secret" ou "signature aveugle"Nous allons le décrire en détail dans les publications suivantes, ainsi que publier le code source, vous pouvez également collecter des informations supplémentaires à partir de publications sur Internet par mots-clés - "protocoles cryptographiques de vote secret" ou "signature aveugle"
Ensuite, l'électeur remplit le bulletin de vote dans un endroit où il est impossible de voir le choix effectué (isoloir fermé) - si dans notre système d'information l'électeur vote à distance, alors le seul endroit 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 continuer, vous pouvez activer la connexion VPN et modifier l'adresse IP. Ce domaine est l'endroit où la newsletter est affichée et le choix de l'utilisateur est traité. Le code source qui est exécuté sur l'appareil de l'utilisateur est initialement ouvert - vous pouvez le voir dans le navigateur.
Une fois le choix effectué, le bulletin de vote est crypté sur l'appareil de l'utilisateur à l'aide d'un schéma de cryptage spécial, envoyé et enregistré dans le composant "Stockage distribué et comptage des votes"construit sur une plateforme blockchain.
L'une des caractéristiques les plus importantes du protocole est l'incapacité de connaître les résultats du vote avant son achèvement. Dans une circonscription traditionnelle, cela est assuré par le scellement des urnes et le suivi par des observateurs. En communication numérique, la meilleure solution est de crypter le choix de l'électeur. L'algorithme de cryptage utilisé exclut la possibilité de divulguer les 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é, vous avez besoin d'une seconde clé (privée). La clé privée, par contre, est partagée entre les participants électoraux (membres des commissions électorales, chambres publiques, opérateurs de serveurs de comptage, etc.) de telle sorte que chaque partie distincte de la clé est inutile.Vous ne pouvez démarrer le décryptage qu'après la collecte de la clé privée. Dans le système considéré, la procédure de partage de clé comprend plusieurs étapes: le partage d'une partie d'une clé au sein du système, le partage d'une clé en dehors du système et la 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 les publications suivantes.
Une fois la clé collectée et chargée, les totaux sont calculés pour leur fixation ultérieure dans la blockchain et leur annonce ultérieure. Une caractéristique du système considéré est l'utilisation de la technologie de cryptage homomorphique. 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. Et maintenant, nous allons noter sa caractéristique principale: les bulletins de vote chiffré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 pour chaque choix dans les bulletins de vote. Dans ce cas, 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.
Voici un diagramme du processus de vote. Cliquable
Plateforme blockchain
Maintenant que nous avons analysé les principales caractéristiques de la mise en œuvre du système de vote électronique à distance, nous allons répondre à la question à partir de laquelle nous avons commencé - quel rôle joue la technologie de la blockchain dans ce domaine et quelles tâches résout-elle?
Dans le système de vote à distance implémenté, la technologie blockchain résout un certain nombre de problèmes.
- La tâche fondamentale est d'assurer l'invariabilité des informations dans le cadre du vote et, tout d'abord, des votes des électeurs.
- Assurer la transparence d'exécution et l'immuabilité du code programme implémenté sous forme de smart contracts.
- , : , , , .
- , , .
- , , .
Ainsi, nous voyons que sans l'utilisation de cette technologie, il est pratiquement impossible d'obtenir les propriétés nécessaires dans le système de vote, ainsi que de lui faire 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», ainsi que des vérifications de base sur l'exactitude du remplissage d'un bulletin de vote crypté.
Dans le même temps, dans le système considéré de vote électronique à distance, le composant «Stockage distribué et comptage des votes» ne se limite pas aux seuls nœuds de la blockchain. Un serveur séparé peut être déployé pour chaque nœud, qui implémente les principales fonctions cryptographiques du protocole de vote - les serveurs de comptage.
Comptage des serveurs
Ce sont des composants décentralisés qui fournissent une procédure de génération distribuée d'une clé de cryptage de bulletin de vote, ainsi que le décryptage et le comptage des résultats de vote. Leurs tâches comprennent:
- Fournir une génération distribuée d'une partie de la clé de cryptage du bulletin de vote. La procédure de génération de clé sera discutée dans les articles suivants;
- Vérifier l'exactitude d'un bulletin de vote chiffré (sans le déchiffrer);
- Traitement des bulletins de vote sous forme cryptée pour former le texte chiffré final;
- Décryptage distribué des résultats finaux.
Chaque étape de l'exécution du protocole cryptographique est enregistrée dans la plate-forme blockchain et 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 cryptage El Gamal sur courbes elliptiques;
- Zéro preuve de connaissance;
- DKG (génération de clé distribuée) Pedersen 91;
- Protocole de partage de clé privée de Shamir.
Le service cryptographique sera discuté plus en détail dans les articles suivants.
Résultat
Résumons quelques résultats intermédiaires de la prise en compte du système de vote électronique à distance. Nous avons brièvement décrit le processus et les principaux composants qui le mettent en œuvre, et également identifié les moyens d'obtenir les propriétés nécessaires à tout système de vote:
- . . , .
- . , , . « » .
- . , . .
- . . -.
- . , .
- . , « ».