paint-brush
Comment le cryptage peut sécuriser le vote en ligneby@nerv
587
587

Comment le cryptage peut sécuriser le vote en ligne

Le plus grand défi du vote électronique à distance est d’atteindre un niveau élevé de sécurité dans un environnement non contrôlé et sur une plateforme non sécurisée. Les propriétés du vote électronique et de nombreuses classifications différentes fixant les exigences minimales sont déjà établies. L’objectif est toujours de concilier deux propriétés apparemment incompatibles : la vérifiabilité et la confidentialité.
featured image - Comment le cryptage peut sécuriser le vote en ligne
Network Emergency Response Volunteers HackerNoon profile picture


Remarque : Certaines des informations présentées ici sont intentionnellement simplistes. Des détails particuliers dépendent de la mise en œuvre réelle, car il existe de nombreuses méthodes et techniques cryptographiques alternatives permettant d’atteindre les mêmes objectifs.


« Le plus grand défi du vote électronique à distance est d'atteindre un niveau élevé de sécurité dans un environnement non contrôlé et une plateforme non sécurisée. Les propriétés du vote électronique et de nombreuses classifications différentes qui fixent les exigences minimales sont déjà établies. Certaines de ces classifications sont exactement les mêmes. Le plus grand défi du vote électronique à distance est d'atteindre un niveau élevé de sécurité dans un environnement non contrôlé et une plateforme non sécurisée. Les propriétés du vote électronique et de nombreuses classifications différentes qui fixent les exigences minimales sont déjà établies. L'objectif est toujours de concilier deux propriétés apparemment mutuellement exclusives. : vérifiabilité et confidentialité.propriétés sous des noms différents tels que : confidentialité, intégrité, vie privée, démocratie, universalité, vérifiabilité, etc. Quoi qu'il en soit, le but est toujours de concilier deux propriétés apparemment mutuellement exclusives : vérifiabilité et confidentialité.


L’idée fondamentale du vote en ligne est la vérifiabilité, dans le sens où les votes doivent être cryptés et rendus publics, convainquant ainsi les électeurs sans aucune marge de doute que l’ensemble de la procédure s’est déroulé régulièrement. Voyons comment cela peut être réalisé, mais avant de lire le reste de l'article, nous vous suggérons de regarder la présentation de cette idée par Ron Rivest[ 1 ] jusqu'à 17h07.


Considérons ensuite :


Tableau public des votes en annexe uniquement après le sondage cybersécurisé, tel que publié sur une blockchain


Les électeurs connaissent de manière unique l'entrée correspondant à leur vote


les identifiants des électeurs sont cryptés

Ici, v est le vote qui ne peut être entièrement déchiffré qu'en utilisant une clé privée et E(v) est la cryptographie ajoutée.


Et maintenant, voici la mathmagie...


En utilisant le cryptage homomorphe dans E(v1), E(v2), E(v3) et E(v4), nous pouvons démontrer que E(v1)+ E(v2) + E(v3) + E(v4) = E( v1+v2+v3+v4) !


Le décompte final est donc D( E(v1+v2+v3+v4) ) où D est la fonction de décryptage qui peut être calculée par n'importe qui une fois le sondage terminé sans avoir besoin d'accéder à v individuellement : D(E(v1) ), D(E(v2) ) etc., qui ne peuvent être déchiffrés qu'en utilisant les clés privées...


possession de clé privée


Seuls les électeurs eux-mêmes peuvent décrypter v individuellement et vérifier que leur propre vote est correctement enregistré ! En conclusion, les électeurs peuvent vérifier à la fois leurs votes et le décompte final en toute confidentialité et précision !


Cryptage homomorphe


Ouah! Je peux vérifier que mon vote est correct ! Mais comment puis-je être sûr que les votes exprimés par d’autres sont également légaux sans utiliser leurs clés privées ?


Disons que nous attribuons la valeur 0 au refus d'une proposition politique donnée en cours d'interrogation et 1 au fait qu'elle est en concordance, formant un ensemble de réponses possibles {0,1}. Un vérificateur, qui peut être n'importe qui, peut vouloir s'assurer que toutes les entrées publiées dans le tableau en annexe correspondent à un élément valide dans l'ensemble des réponses possibles et à rien d'autre, comme ce que serait une entrée de valeur 100. Les preuves à connaissance nulle permettent précisément cela. Pour comprendre comment, il peut être utile de comprendre d’abord ce que sont réellement les ZKP. "En cryptographie, une preuve à connaissance nulle ou un protocole à connaissance nulle est une méthode par laquelle une partie (le prouveur) peut prouver à une autre partie (le vérificateur) qu'une déclaration donnée est vraie tandis que le prouveur évite de transmettre toute information supplémentaire en dehors de le fait que la déclaration est effectivement vraie. "[ 2 ]


preuves de connaissance nulle


Cela peut paraître contradictoire, mais avec les ZKP, tout électeur peut prouver sans équivoque la validité de son vote ! Là encore, un vote n'est qu'une représentation d'un élément parmi un ensemble de choix possibles. Pour comprendre comment les ZKP devraient être appliqués au vote, nous vous suggérons de jeter un œil aux articles suivants[ 3 ], [ 4 ] car ils abordent cette question plus en détail.


Vérification ZKP


Cette technique peut ensuite être étendue pour inclure des ensembles supérieurs à {0,1} tout en préservant les propriétés mathématiques du cryptage homomorphe et des ZKP, permettant des sondages plus complexes que les simples réponses oui, non/d'accord, pas d'accord. Cela donne lieu à des cas d'utilisation intéressants tels que des élections à candidats multiples, des référendums pouvant proposer différentes solutions pour un même problème donné, des questionnaires dans les études de marché...


Nous venons de discuter de la façon dont n'importe qui peut vérifier le décompte final, que son vote est celui prévu et que tous les autres votes étaient légaux ! Tout en préservant la vie privée des électeurs ! La manière dont ces algorithmes sont assemblés, préservant les propriétés du cryptage homomorphe et du ZKP, est complexe et nécessite une connaissance approfondie de la cryptographie, dont la véracité peut être mathématiquement prouvée.[ 5 ]


Tout électeur peut effectuer lui-même ces vérifications sans dépendre d’un tiers ! Dans les applications de vote électronique à distance appropriées, les électeurs sont les auditeurs du scrutin !


Il existe d’autres détails et techniques cryptographiques concernant le vote en ligne cybersécurisé, comme avec l’utilisation d’adresses furtives[ 6 ], du moins dans les blockchains qui maintiennent toutes les transactions publiques comme Ethereum. Ceux-ci sont utilisés pour éviter de lier les électeurs et leurs portefeuilles. Mais nous considérons qu'il s'agit d'un détail technique, qui concerne uniquement les développeurs de logiciels et non quelque chose dont tous les utilisateurs du vote en ligne devraient être conscients, contrairement au cryptage homomorphe et aux ZKP dont les connaissances contribuent à renforcer la confiance dans le système.


Comment ces clés privées sont-elles générées et remises à l’électeur sans compromettre la sécurité ?


En fin de compte, les clés privées doivent être liées à la véritable identité de l’utilisateur afin d’éviter les doubles dépenses. Une approche consiste à utiliser des PKI fournies par des autorités de confiance, telles que les cartes d'identité électroniques émises par l'État et intégrées dans les cartes à puce d'identité nationale... Car les institutions publiques ont sûrement pensé à leurs propres mécanismes pour assurer la sécurité de ces clés, n'est-ce pas ?


Il s’agit en tout cas d’une problématique davantage liée à l’identité numérique elle-même que nous analyserons dans un prochain article afin d’épargner au lecteur trop de détails et de mieux organiser l’information. Il suffit de dire que si l’identité numérique elle-même est une question complexe en soi, il existe des moyens de garantir avec une relative confiance que chaque personne numérique est unique en confiant à plusieurs entités de confiance la tâche d’attester de l’identité d’une personne. Une citation de Bob Marley décrit avec précision ce dont nous discuterons :


"On peut parfois tromper certaines personnes mais on ne peut pas tromper tout le monde tout le temps"


Que se passe-t-il si un électeur détecte une fraude ou s’il est physiquement contraint de voter d’une certaine manière ?


La première mesure à prendre est de fournir un canal permettant aux personnes de signaler ces situations afin que ces événements soient pris en compte. S'ils sont marginaux, représentant par exemple 0,01% du total des voix, cela ne posera pas vraiment de problème, sauf s'il s'agit d'un référendum très sensible qui exige le respect des valeurs démocratiques et dont le décompte final est proche du équivalent à une situation 50/50. Cela peut être atténué en exigeant que le consensus majoritaire soit plus élevé, par exemple 55/45, pour qu'un sondage soit considéré comme valide.


Dans le cas où quelqu'un constate que son vote a été incorrectement enregistré, étant donné que l'ensemble du système est pris en charge par la blockchain et n'est donc pas sous le contrôle d'un administrateur système particulier fournissant le service, l'approche la plus raisonnable consiste à supposer que la machine à voter elle-même est compromise. et non la blockchain dans son ensemble. Les mesures de protection les plus directes à prendre seraient alors pour l’électeur de changer de machine et/ou de système d’exploitation. Ce problème est davantage lié aux menaces de cybersécurité, telles que l’ingénierie sociale et les logiciels malveillants. L'utilisation de matériel et de logiciels open source est recommandée, ainsi que l'utilisation d'un système d'exploitation amnésique[ 7 ]. Le logiciel Amnesic revient toujours à son état de configuration initial, donc même si les électeurs installent un logiciel malveillant en cliquant involontairement et en exécutant un virus, le redémarrage de la machine ramène le logiciel à une configuration inchangée, atténuant ainsi efficacement ces événements.


Une autre situation que l'on peut vouloir prendre en compte est celle dans laquelle l'électeur est contraint de voter d'une certaine manière, soit physiquement, soit par chantage. La seule approche pour se défendre contre la coercition autre que de vivre dans une société décente est de permettre que le nouveau vote ait lieu sur le même scrutin. Il existe des recherches[ 8 ] dans ce domaine, même si les moyens de fusionner cette technique avec toutes les autres évoquées ci-dessus restent, à notre connaissance, à mettre en œuvre. Il existe sûrement un moyen. Quoi qu’il en soit, la réouverture de la phase de scrutin est toujours une possibilité. Il convient également de noter qu’empêcher la coercition empêcherait également la vente des voix, pour des raisons évidentes.


Nous ne plaidons pas pour un abandon total du vote papier car, au moins en présence, le vote papier est une excellente opportunité de mettre à l'épreuve l'identité (réelle ou numérique), mais nous sommes néanmoins fortement favorables à son adoption dans la politique comme outil complémentaire capable de générer un consensus plus rapidement tout en étant également une source secondaire confirmant les résultats du vote sur papier.

Sommes-nous déjà là?

Comme l’a dit avec éloquence l’informaticien Jeffrey Dean :


« La force motrice derrière les chiffrements informatiques modernes n'est pas la sécurité, mais l'efficacité. La question n’est pas de savoir si vous pouvez créer un chiffrement sécurisé. Tu peux. La question est de savoir si vous pouvez en créer un qui fonctionnera efficacement sur d’énormes ensembles de données ou sur un matériel très limité.


Le défi de la technologie blockchain réside précisément dans sa capacité à évoluer à mesure que la base d’utilisateurs et la demande de calcul augmentent. Les implémentations actuelles d'algorithmes cryptographiques dans le vote en ligne soutenus par la blockchain estiment les coûts à environ 10 $ par vote, tels qu'implémentés dans Ethereum.[ 14 ] Chez Brightgov, nous pensons que des améliorations peuvent être apportées afin de réduire cette valeur à moins de 1 $ en utilisant une blockchain plus rapide ainsi que la modification des algorithmes mathématiques sous-jacents.


Tout au long de l’histoire, la cryptographie a joué un rôle majeur dans le changement du cours des événements. Le chiffre de César, l’une des cryptographies les plus simples, est célèbre pour avoir été utilisé par l’empereur romain il y a deux millénaires. La capacité des Alliés à intercepter et à déchiffrer les messages cryptés par la machine de chiffrement japonaise Purple et l'allemand Enigma était cruciale pour fournir l'avantage clé nécessaire à la fin de la Seconde Guerre mondiale.


Pour ceux qui savent programmer et souhaitent en savoir plus, nous suggérons de lire notre document de recherche.[ 15 ] Vous pouvez également jouer avec CryptoBallot pour vous familiariser avec ce type de logiciel.[ 16 ]


En conclusion, les sondages en ligne cybersécurisés sont non seulement possibles, mais absolument nécessaires. Son adoption dans l'espace politique a le potentiel d'être l'un des événements les plus perturbateurs de notre vie... Tout ce que vous avez à faire est de faire confiance aux algorithmes exécutés sur votre ordinateur et à la blockchain et si vous ne le faites pas, vous pouvez toujours le faire. les mathématiques avec un stylo et du papier vous-même.


Les références:


[1] « VOTRE vote a-t-il été compté ? (feat. cryptage homomorphe) » par le professeur Ron Rivest, Numberphile, sur YouTube, 2016. https://www.youtube.com/watch?v=BYRTvoZ3Rho


[2] Entrée de preuve sans connaissance sur Wikipédia, https://en.wikipedia.org/wiki/Zero-knowledge_proof


[3] « Comment utiliser ZKP pour prouver l'appartenance à un ensemble sans exposer l'ensemble ou le membre » par Anders Borch, blog de l'auteur, 2019. https://blog.cyborch.com/how-to-use-cryptographic-accumulators-to -prouver-l'appartenance-à-un-ensemble-sans-exposer-l'ensemble-ou-le-membre/


[4] " Zero-Knowledge Proofs for Set Membership " par Dario Fiore, sur ZKProof Standards, 2020. https://zkproof.org/2020/02/27/zkp-set-membership/


[5] " Non-interactive Zero-Knowledge from Homomorphic Encryption " par Ivan Damg ̊ard et al., Theory of Cryptography Conference, 2006. https://cs.nyu.edu/\~nicolosi/papers/NonIntSi.pdf


[6] « Adresse furtive (Crypto-monnaie) » par Jake Frankenfield, Investopedia, 2022. https://www.investopedia.com/terms/s/stealth-address-cryptocurrency.asp


[7] Entrée Tails (système d'exploitation) sur Wikipédia, https://en.wikipedia.org/wiki/Tails_(operating_system)


[8] « VoteAgain : A scalable coercion-resistant vote system » par Wouter Lueks et al., Spring Labs, Universidad Carlos III de Madrid, 2020. https://arxiv.org/pdf/2005.11189.pdf


[9] La Fondation du patrimoine , https://www.heritage.org/


[10] « Ainda mais indícios de fraude nas Legislativas 2022 ? » entrée sur YouTube, en portugais, 2022. https://www.youtube.com/watch?v=L8fA9aOuR9k


[11] Entrée " AnaKarina denuncia "FRAUDE ELEITORAL" por parte da CNE " sur YouTube, en portugais, Angola, 2022. https://www.youtube.com/watch?v=hLm8ocLgXCU


[12] « Questions fréquemment posées – Fraude électorale », https://www.voteaustralia.org.au/faq_voter_fraud


[13] « Democracy Index 2020: In malade et en bonne santé ? » rapport de The Economist Intelligence Unit, 2020. https://www.eiu.com/n/campaigns/democracy-index-2020/


[14] « ethVote : Vers un vote sécurisé avec des registres distribués » par Johannes Mols et Emmanouil Vasilomanolakis, Université d'Aalborg, Danemark, 2020. https://www.researchgate.net/publication/341000573_ethVote_Towards_secure_voting_with_distributed_ledgers


[15] « Remote e-voting Overview » par la NERV, un article soumis à la 14e conférence ICEGOV en 2021, https://ia601401.us.archive.org/33/items/remote-e-voting-overview/Remote e -aperçu du vote.pdf


[16] CryptoBallot , https://github.com/cryptoballot/cryptoballot


Apparaît également ici .