Comprendre le protocole de vote électronique de People Vox
Du chiffrement du bulletin au dépouillement, découvrez comment fonctionne le protocole de vote People Vox, les contrôles réalisés à chaque étape et les mécanismes qui permettent d’en vérifier l’intégrité.
Dernière mise à jour : 30 septembre 2026
- Bureau de vote
- Électeur, dans son navigateur
- Plateforme People Vox
Le schéma suit le bulletin en neuf étapes. La clé publique de chaque urne, créée au scellement (étape 1), chiffre les bulletins à l’étape 4. Les fragments de la clé de déchiffrement, remis aux membres du bureau au scellement, sont réunis à l’étape 8. Chaque étape renvoie à sa fiche détaillée.
Avant le scrutin
1 Étape 1 : Scellement des urnesBureau de voteClés et empreintes de référenceCrée la clé publique et les fragments de cléPendant le vote sur l’appareil de l’électeur
2 Étape 2 : ConnexionÉlecteurIdentifiant et code à usage unique 3 Étape 3 : Choix du bulletinÉlecteurListe, candidats ou vote blanc 4 Étape 4 : ChiffrementÉlecteurDans le navigateur, avant l’envoiUtilise la clé publique de l’urneVérifiabilité
Émis tel que voulu
cast-as-intended
L’électeur relit son choix sur un récapitulatif. Il peut aussi faire ouvrir un bulletin chiffré pour vérifier qu’il contient son choix ; ce bulletin est écarté et un nouveau est chiffré.
Étapes 3 et 4 · par l’électeurPendant le vote sur la plateforme
5 Étape 5 : TransportPlateformeCanal chiffré propre à la session 6 Étape 6 : Dépôt dans l’urnePlateformeÉmargement séparé de l’urneVérifiabilité
Enregistré tel qu’émis
recorded-as-cast
L’accusé de réception porte un code de suivi signé par la plateforme. L’électeur vérifie la présence de son bulletin dans l’urne.
Étapes 5 et 6 · par l’électeurAprès la clôture au dépouillement
7 Étape 7 : Addition des bulletinsPlateformeSans déchiffrer un bulletin 8 Étape 8 : Déchiffrement des totauxBureau de voteDeux fragments de clé au minimumRéunit les fragments de deux membres 9 Étape 9 : RésultatsBureau de voteProcès-verbaux signésVérifiabilité
Décompté tel qu’enregistré
tallied-as-recorded
Électeurs et observateurs réadditionnent les bulletins chiffrés, puis contrôlent les preuves de chaque bulletin et celle du déchiffrement, en ligne ou hors ligne.
Étapes 7 à 9 · par les électeurs et les observateursVérifiabilitéTrois contrôles, du dépôt au résultat
Étape par étape
Les neuf étapes du protocole
Les principaux mécanismes de sécurité et standards utilisés pour chaque étape du protocole de vote de la plateforme de People Vox.
Étape 1 : Sceller les urnes
En cérémonie, le bureau de vote contrôle les listes et les paramètres, puis réalise un vote test et un dépouillement test. Au scellement, la clé de déchiffrement de chaque urne est découpée en fragments remis à ses membres.
MécanismeClé découpée en fragments (partage de Shamir) : deux suffisent, un seul ne révèle rien · empreintes de référence (SHA-256)
Détail technique de l’étape 1
- Chaque membre du bureau crée sa propre paire de clés (RSA) dans son navigateur. Sa clé privée est protégée par un fichier de clé personnel, qu’il est seul à télécharger.
- Chaque urne reçoit sa propre paire de clés (ElGamal, courbe secp256k1) : une clé publique pour chiffrer, une clé privée pour déchiffrer. Titulaires et suppléants ont des clés différentes.
- La clé privée de l’urne est découpée en fragments. Deux fragments suffisent à la reconstituer ; un seul ne révèle rien. Chaque fragment est chiffré pour son détenteur, puis la clé entière est effacée : elle n’est jamais enregistrée.
- Le vote test se fait avec des clés provisoires, remplacées au scellement : elles ne peuvent pas déchiffrer le vrai scrutin.
- Une empreinte est une courte suite de caractères calculée à partir d’un contenu : si le contenu change, l’empreinte change. Au scellement, des empreintes de référence sont prises sur les paramètres, la base électorale, les listes de candidats, le bureau, la clé publique et le code de la plateforme.
Étape 2 : Se connecter au scrutin
L’électeur saisit son identifiant personnel, répond aux questions définies pour le scrutin, puis saisit un code à usage unique reçu par SMS. En double canal, un code secret reçu par un second canal complète l’identifiant.
MécanismeCode à usage unique, valable quelques instants (TOTP) · protocole OPAQUE : le code n’est jamais transmis tel quel
Détail technique de l’étape 2
- L’identifiant et les réponses aux questions sont vérifiés en comparant des empreintes, jamais les valeurs en clair.
- Le code reçu par SMS change à intervalles courts (standard TOTP). La plateforme le recalcule au moment de la vérification ; il n’est pas stocké.
- La connexion suit le protocole OPAQUE : le code sert à créer une clé de session, sans jamais circuler tel quel. Cette clé chiffre ensuite tous les échanges entre le navigateur et la plateforme (AES-256-GCM).
- Le nombre de tentatives est limité.
Étape 3 : Composer son bulletin
L’électeur choisit une liste, conserve ou raye des candidats, ou vote blanc. Un récapitulatif présente son choix avant validation ; rien n’a encore quitté son appareil.
MécanismeBulletin en cases : chaque case vaut 0 ou 1
Détail technique de l’étape 3
- Le bulletin est une grille de cases : une case par liste, une case par candidat, une case pour le vote blanc. Selon le choix de l’électeur, chaque case vaut 0 ou 1.
- Le choix reste dans la mémoire du navigateur. Il n’est jamais transmis en clair.
Étape 4 : Chiffrer le bulletin
Le navigateur chiffre chaque choix avec la clé publique de l’urne, avant tout envoi. Des preuves jointes établissent que le bulletin respecte les règles du scrutin, sans révéler son contenu.
MécanismeChiffrement ElGamal (courbe secp256k1) · preuves à divulgation nulle de connaissance : elles prouvent sans révéler
Détail technique de l’étape 4
- Chaque case du bulletin est chiffrée séparément. À chaque chiffrement, le navigateur tire un nombre au hasard : deux bulletins identiques donnent ainsi deux résultats chiffrés différents, que personne ne peut rapprocher.
- Une preuve accompagne chaque case : elle établit que la case contient 0 ou 1, sans dire lequel. D’autres preuves établissent que l’ensemble des cases forme un bulletin valide pour ce scrutin.
- Ces calculs sont faits par la bibliothèque open source she-wasm, chargée avec l’application de vote. Le nombre tiré au hasard reste dans le navigateur ; il n’est jamais transmis.
- Contrôle facultatif avant dépôt (méthode de Benaloh) : l’électeur peut faire ouvrir un bulletin chiffré pour vérifier qu’il contient son choix. Ce bulletin ne peut alors plus être déposé ; le navigateur en chiffre un nouveau.
Étape 5 : Transmettre le bulletin
Le bulletin chiffré circule dans un canal chiffré propre à la session de l’électeur, lui-même transporté en HTTPS. Avant le dépôt, la plateforme vérifie les preuves du bulletin, le code de l’électeur et son droit de vote.
MécanismeTransport chiffré deux fois : clé de session (AES-256-GCM), puis HTTPS · preuves vérifiées avant dépôt
Détail technique de l’étape 5
- Le navigateur envoie d’abord l’empreinte du bulletin chiffré. La plateforme répond par un numéro de dépôt signé, qui rattache ce bulletin à ce dépôt.
- Le navigateur envoie ensuite le bulletin chiffré et le code à usage unique. La plateforme contrôle les preuves du bulletin, la signature, la session et la période de vote, et vérifie que l’électeur n’a pas déjà émargé. Un bulletin dont une preuve échoue est rejeté.
- Entre le navigateur et le serveur de l’urne, le bulletin reste chiffré par la clé de session : les intermédiaires du réseau ne voient qu’un contenu illisible.
Étape 6 : Déposer le bulletin dans l’urne
L’émargement et le dépôt du bulletin forment une seule opération : si l’un échoue, rien n’est enregistré. L’électeur reçoit un accusé de réception portant un code de suivi, sans son choix.
MécanismeOpération indivisible (transaction) · copie de contrôle non modifiable · accusé de réception signé
Détail technique de l’étape 6
- L’émargement et l’enregistrement du bulletin se font dans une même transaction de base de données. L’émargement est refusé si l’électeur a déjà voté dans cette urne.
- Le bulletin est rangé à un emplacement tiré au hasard, sans identifiant de l’électeur. L’émargement, lui, ne contient aucun élément du bulletin.
- Une copie de contrôle du bulletin est écrite dans un stockage non modifiable : il accepte l’ajout et la lecture, pas la modification ni la suppression. Cette copie est transformée par un nouveau tirage aléatoire : elle sert au contrôle du dépouillement, sans pouvoir être rapprochée de l’original.
- L’accusé de réception porte un code de suivi, tiré de l’empreinte du bulletin chiffré, et la signature de la plateforme. Il ne contient pas le choix de l’électeur.
Étape 7 : Additionner les bulletins chiffrés
Après la clôture, les bulletins de chaque urne sont additionnés sans être déchiffrés. Le résultat est un total chiffré par liste et par candidat ; aucun bulletin n’est déchiffré isolément.
MécanismeAddition de bulletins chiffrés (chiffrement homomorphe) · deux totaux comparés · empreintes contrôlées
Détail technique de l’étape 7
- Le chiffrement employé a une propriété particulière, dite homomorphe : additionner des bulletins chiffrés donne le total chiffré, sans ouvrir aucun bulletin.
- Le total est calculé deux fois : à partir de l’urne, puis à partir de la copie de contrôle. Les deux résultats doivent coïncider.
- Avant cette étape, le bureau compare les empreintes de la plateforme et des urnes aux empreintes de référence prises au scellement. Pendant le scrutin, ces empreintes sont recalculées régulièrement ; tout écart est signalé par e-mail aux membres du bureau.
Étape 8 : Déchiffrer les totaux
En cérémonie, deux membres du bureau au moins déposent leur fichier de clé. La clé de l’urne est reconstituée, contrôlée, puis utilisée pour déchiffrer les seuls totaux.
MécanismeClé reconstituée à partir de deux fragments · contrôle de la clé · preuve de déchiffrement
Détail technique de l’étape 8
- Pendant la cérémonie, chaque fragment déposé reste chiffré par des clés provisoires, créées pour cette seule cérémonie.
- Avec moins de deux fragments, la reconstitution est refusée. La clé reconstituée est comparée à la clé publique de l’urne : si elles ne correspondent pas, le déchiffrement est refusé.
- Le déchiffrement des totaux s’accompagne d’une preuve : avec la seule clé publique, chacun peut vérifier que les totaux annoncés correspondent aux totaux chiffrés.
- La clé reconstituée n’est jamais enregistrée en clair. Les clés provisoires de la cérémonie sont ensuite effacées.
Étape 9 : Proclamer les résultats
Suffrages, attribution des sièges et procès-verbaux sont établis à partir des totaux déchiffrés, puis signés par le bureau. L’urne, ses preuves et les résultats restent disponibles pour une vérification ou un nouveau décompte.
MécanismeFichier de vérification téléchargeable · nouveau décompte possible
Détail technique de l’étape 9
- Le décompte n’efface aucun bulletin : l’addition et le déchiffrement peuvent être refaits à partir de l’urne d’origine. Les fragments de clé restent chiffrés, attachés à l’urne.
- Un fichier de vérification se télécharge : il contient les bulletins chiffrés, leurs preuves et l’empreinte du total. Il se contrôle sans connexion à la plateforme.
- Ces éléments sont conservés jusqu’à l’archivage de l’élection.
Garanties du protocole
Propriétés de sécurité et moyens de les atteindre
Chaque propriété renvoie aux étapes qui la portent.
| Propriété | Moyen | Étapes |
|---|---|---|
| Secret du vote | Chiffrement dans le navigateur ; seuls les totaux sont déchiffrés ; émargement séparé de l’urne. | 4 · 6 · 8 |
| Validité des bulletins | Preuves jointes à chaque bulletin, contrôlées avant le dépôt, sans en révéler le contenu. | 4 · 5 |
| Un vote par électeur et par urne | Émargement et dépôt dans une même transaction, refusée si l’électeur a déjà émargé. | 6 |
| Authentification de l’électeur | Identifiant, questions personnelles et code à usage unique, jamais transmis tel quel. | 2 |
| Intégrité des bulletins | Copie de contrôle non modifiable ; deux totaux comparés au dépouillement. | 6 · 7 |
| Intégrité de la plateforme | Empreintes du code et des paramètres prises au scellement, recalculées pendant le scrutin, comparées au dépouillement. | 1 · 7 |
| Dépouillement collégial | Clé de l’urne fragmentée ; deux fragments détenus par deux membres distincts sont nécessaires. | 1 · 8 |
| Aucune preuve de son choix à remettre à un tiers | L’accusé atteste la présence du bulletin, pas son contenu ; un bulletin ouvert pour contrôle ne peut pas être déposé. | 4 · 6 |
| Vérifiabilité | Émis tel que voulu, enregistré tel qu’émis, décompté tel qu’enregistré. | Schéma |
Le code exécuté dans le navigateur
Chiffrement et preuves sont calculés par la bibliothèque open source she-wasm, chargée avec l’application de vote. L’empreinte du code déployé est recalculée pendant le scrutin.
Signaler une vulnérabilité
Une question ou une vulnérabilité sur le protocole ou la plateforme : notre équipe technique la reçoit à cette adresse. Les rapports d’audit indépendants sont remis à nos clients sur demande.
Ressources
Les références du protocole de vote
Textes de référence, standards cryptographiques, bibliothèques et prinicipaux prestataires sur lesquels repose le protocole de vote de People Vox.
Référentiels
Les textes qui fixent les objectifs de sécurité du vote électronique.
- Recommandation de la CNIL sur le vote électronique (nouvelle fenêtre)Délibération n° 2026-045 du 19 mars 2026 : niveaux de risque et objectifs de sécurité.
- Guide de l’ANSSI sur le vote par Internet (nouvelle fenêtre)Élections non politiques : recommandations techniques associées aux objectifs de la CNIL.
- Guide de l’ANSSI : sélection d’algorithmes cryptographiques (PDF, nouvelle fenêtre)Règles de choix des algorithmes et des tailles de clés.
Standards cryptographiques
Les spécifications publiques des mécanismes employés.
- Courbe secp256k1 — SEC 2, version 2 (PDF, nouvelle fenêtre)Paramètres de la courbe elliptique du chiffrement des bulletins.
- A. Shamir, How to Share a Secret (1979) (nouvelle fenêtre)Partage de la clé de déchiffrement en fragments.
- J. Benaloh, Ballot Casting Assurance (2007) (nouvelle fenêtre)Audit d’un bulletin chiffré par l’électeur avant dépôt.
- OPAQUE — RFC 9807 (nouvelle fenêtre)Échange de clé authentifié, sans transmission du secret.
- TOTP — RFC 6238 (nouvelle fenêtre)Codes à usage unique envoyés par SMS.
- RSA — RFC 8017 (PKCS #1) (nouvelle fenêtre)Chiffrement RSA-OAEP des fragments et signatures de la plateforme.
- AES-GCM — NIST SP 800-38D (nouvelle fenêtre)Chiffrement de la session et des clés des membres du bureau.
Bibliothèques open source
Le code public sur lequel reposent le chiffrement et l’application de vote.
- she-wasm (nouvelle fenêtre)Chiffrement des bulletins, preuves, addition et déchiffrement vérifiable. Schéma publié par Attrapadung et al. (ASIACCS 2018).
- otplib (nouvelle fenêtre)Calcul et vérification des codes à usage unique.
- API Web Crypto (W3C) (nouvelle fenêtre)Primitives cryptographiques du navigateur.
- Next.js (nouvelle fenêtre)React (nouvelle fenêtre)Material UI (nouvelle fenêtre)Application de vote exécutée dans le navigateur.
Hébergement et prestataires
Les principaux services qui exécutent la plateforme, avec leur page de sécurité ou de conformité.
- Google Cloud (nouvelle fenêtre)Serveurs d’application et stockage, dans l’Union européenne.
- MongoDB Atlas (nouvelle fenêtre)Base de données répliquée sur plusieurs sites, avec sauvegardes continues.
- Cloudflare (nouvelle fenêtre)Routage des connexions et protection du trafic.
- Brevo (nouvelle fenêtre)smsmode (nouvelle fenêtre)Envoi des e-mails et des SMS : identifiants de vote et codes à usage unique.
Organisez votre prochaine élection CSE avec People Vox
De la préparation du scrutin aux résultats, People Vox vous accompagne selon le niveau de prise en charge souhaité.
