FR 2905786 A1 20080314 FR 0608015 A 20060913 1 SYSTEME ET PROCEDE DE CREATION, VALIDATION ET CHIFFREMENT DE BULLETINS DE VOTE ELECTRONIQUE A DISTANCE. La présente invention concerne un système et un procédé de vote électronique à distance. Elle concerne également un programme d'ordinateur pour mettre en oeuvre le procédé. Un système de vote électronique à distance est un système qui permet le vote de manière dématérialisée en utilisant des machines dédiées ou des terminaux informatiques classiques. Dans un tel système, les données de vote sont transmises à des serveurs à travers un réseau de données classique tel que, par exemple, internet ou le réseau téléphonique public. Selon les types d'élection, de tels systèmes permettent de voter dans des bureaux de vote ou à partir de son bureau ou de son domicile. Les normes de sécurité, de confidentialité et d'authentification sont plus ou moins sévères en fonction du type d'élection, les élections publiques étant celles qui font preuve des exigences les plus élevées. En particulier, pour ces élections, les organismes de gestion du vote exigent de forte garantie sur la qualité des votants et de leurs votes tout en exigeant également une parfaite confidentialité sur le vote de chaque électeur. Pour répondre à ces exigences, les systèmes de vote électronique utilisent différentes techniques de cryptographie avancée. A titre d'exemple, le document B. Schoenmaker, a Fully Auditable Electronic Secret-Ballot election , XOOTIC, 2000, décrit l'utilisation du codage El Gamal pour garantir l'intégrité des bulletins de vote et le comptage de ceux-ci sans qu'il soit possible de connaître le détail d'un bulletin de vote particulier. L'anonymisation des bulletins de vote est donc une exigence des systèmes de vote électronique et en particulier des systèmes de vote électronique à distance. 2905786 2 Or, la procédure actuelle de vote consiste à permettre à l'électeur de préparer son vote sur un terminal ayant une interface homme/machine adaptée, puis à envoyer ce bulletin rempli à un serveur de vote qui en vérifie la validité, par exemple, qu'un seul nom est coché sur la liste des candidats. 5 Quand le bulletin de vote est considéré comme correct, un bulletin de vote de confirmation est construit sur le serveur et envoyé au terminal de vote. Ce dernier l'affiche sur son écran et demande à l'électeur de confirmer son vote et de voter officiellement, par exemple, en apposant sa signature électronique. 10 Le bulletin de vote ainsi signé est crypté et envoyé au serveur de vote pour être mis dans l'urne virtuelle. Or, durant la phase de confirmation, les informations sur le vote de l'électeur sont généralement décryptées sur le serveur de vote. Ainsi un tiers pourrait aisément identifier les choix de l'électeur et donc briser la chaîne de 15 l'anonymat et donc la confidentialité du vote. II est donc souhaitable de définir un procédé et un système de vote électronique dans lesquels les étapes de confirmation de vote garantissent l'anonymat des choix des électeurs. Un objet de l'invention est donc un système de vote électronique à 20 distance par l'intermédiaire d'un réseau de communication de données comportant : - au moins un terminal de vote comportant au moins une interface homme-machine permettant à un électeur de remplir un bulletin de vote, ledit terminal comportant en outre des moyens de communication reliés au réseau 25 de communication de données et adaptés pour communiquer avec : - au moins un serveur de vote comportant des moyens de communications adaptés pour la communication de données avec chaque terminal de vote et des moyens de validation du bulletin de vote. -caractérisé en ce que le terminal de vote comporte des moyens locaux de validation du bulletin de vote adaptés pour permettre à l'électeur d'approuver le bulletin de vote et des moyens de chiffrement du bulletin de vote avant envoi du bulletin de vote approuvé au serveur de vote. 2905786 3 Un autre objet est un procédé de vote électronique à distance entre un terminal de vote et un serveur de vote reliés entre eux par l'intermédiaire d'un réseau de communication de données, comportant, sur le terminal de vote, les étapes de : 5 a) création d'un bulletin de vote par l'intermédiaire d'une interface homme- machine permettant à un électeur de sélectionner ses choix de vote, b) validation locale du bulletin de vote, c) approbation du bulletin de vote par l'électeur, d) chiffrement du bulletin de vote, 10 e) envoi du bulletin de vote validé au serveur de vote, puis f) par le serveur de vote, validation du bulletin de vote. Un autre objet est un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé précédent dans ses étapes exécutées sur un terminal de vote. 15 D'autres caractéristiques et modes de réalisation particuliers de ces objets sont définis dans les revendications dépendantes. L'invention sera mieux comprise à la lecture de la description qui suit, donnée uniquement à titre d'exemple, et faite en référence aux figures en annexe dans lesquelles : 20 - la figure 1 est une vue schématique d'un mode de réalisation de l'invention ; - la figure 2 est un ordinogramme de fonctionnement d'un premier mode de réalisation du procédé selon l'invention ; et - la figure 3 est un ordinogramme de fonctionnement d'un second 25 mode de réalisation de l'invention. En référence à la figure 1, un système de vote électronique à distance comporte un terminal de vote 1 connecté à un serveur de vote 3 par l'intermédiaire d'un réseau de données 5 tel qu'internet ou un réseau téléphonique publique. 30 Le terminal de vote 1 et le réseau de vote comporte chacun des moyens 7, 9 de communication permettant d'établir une liaison entre les 2905786 4 deux machines. Cette liaison peut être sécurisée afin d'éviter qu'un tiers puisse écouter ou s'intercaler dans la communication. Le terminal de vote 1 comporte également une interface homme-machine 11 classique du type écran-souris /clavier ou du type écran tactile 5 ou tout autre type d'interface homme/machine pertinent pour un homme du métier. Cette interface est pilotée par logiciel. Par exemple, dans un mode de réalisation, le pilotage de l'interface homme-machine est réalisé par un navigateur internet permettant le rendu de page HTML ou plus généralement XML. 10 L'interface homme-machine 11 est connectée à des moyens 12 locaux de validation du bulletin de vote. Le terminal comporte de plus un dispositif 13 d'authentification et de signature, par exemple, un lecteur de cartes à puce. Le dispositif 13 d'authentification permet à l'électeur d'utiliser les moyens 15 15 d'authentification et de signature qui lui ont été fournis par l'organisation du vote. On conçoit aisément que, dans le cadre d'une élection publique, l'organisation mette en place un système d'authentification avancé, par exemple à base de cartes à puce, afin de réduire au maximum les fraudes 20 possibles en utilisant des techniques de cryptographie avancée. Dans des modes de réalisation particuliers, l'authentification de l'électeur peut également être totalement effectuée à partir d'un serveur d'authentification pouvant être le serveur de vote 3. Le terminal comporte en outre des moyens 16 de chiffrement du 25 bulletin de vote. Dans un mode préférentiel de réalisation, ces moyens 16 de chiffrement utilisent un algorithme de chiffrement homomorphique tel que l'algorithme El-Gamal. Le serveur de vote 3 comporte des moyens 17 d'authentification et vérification de l'électeur consistant, par exemple, à vérifier que l'électeur est 30 bien habilité à voter ou bien qu'il ne vote pas une seconde fois. II comporte également des moyens 19 de validation du vote reliés à des moyens 21 de stockage servant d'urne virtuelle. 2905786 5 Le fonctionnement du système de vote électronique a distance est décrit en relation avec la figure 2 dans laquelle chaque étape est positionnée dans une colonne correspondant à l'équipement sur laquelle elle est effectuée, à savoir sur le terminal utilisateur 1 pour la colonne de gauche et 5 sur le serveur de vote 3 pour la colonne de droite. Un électeur souhaitant voter s'authentifie en 30, par exemple en utilisant sa carte à puce 15, en relation avec les moyens 17 d'authentification et vérification de l'électeur du serveur 3 de vote. Etant authentifié, le terminal de vote 1 prépare en 32 un bulletin de 10 vote à remplir et le présente en 34 à l'électeur. Celui-ci sélectionne en 36 son choix de vote. Le terminal de vote 1 valide localement en 38 par les moyens 12 de validation, le bulletin de vote. Il vérifie en particulier que les consignes de vote ont bien été respectées par l'électeur. 15 En temps réel, le terminal de vote 1 présente en 40 à l'électeur un bulletin de vote de confirmation représentant tous les éléments de vote de l'électeur. En 42, l'électeur accepte le vote ou bien revient à une étape précédente pour modifier ses choix. 20 Le bulletin de vote étant accepté, l'électeur valide en 44 son vote. Cette validation peut, par exemple, prendre la forme d'une signature électronique. Le bulletin de vote est alors chiffré et envoyé en 46 au serveur de vote 3. 25 Il est remarquable de noter qu'à partir de cet instant, le bulletin de vote n'est jamais déchiffré. Le serveur de vote 3 effectue en 48 une seconde validation du vote par exemple en vérifiant que le bulletin de vote ne provient pas d'un électeur qui a déjà voté en utilisant une autre machine. Comme noté précédemment 30 cette vérification a lieu sans déchiffrage du bulletin de vote. Le bulletin de vote ayant été validé, il est comptabilisé en 50 dans l'urne virtuelle en attente du dépouillement. 2905786 6 Dans un mode de réalisation, figure 3, le processus de sélection et d'envoi du bulletin de vote en une seule étape se déroule plus précisément comme suit : 1. Après authentification, l'électeur se voit proposer en 60 une 5 application lui proposant un écran unique de sélection et de choix portant sur des candidats ou des questions soumises au vote, 2. Cette application communique en 62 avec le serveur de vote 3 afin de récupérer en 64 les paramètres cryptographiques nécessaires au chiffrement et à la validation du vote. Ces données concernent les 10 caractéristiques du vote proprement dit telles que le nombre de choix à effectuer, la validité d'un bulletin blanc, etc. ainsi que les clés cryptographiques publiques permettant de crypter le bulletin de vote. 3. Au fur et à mesure de la sélection des choix par l'électeur, le détail du bulletin qu'il est en train de constituer lui est présenté en 66 en temps 15 réel, lui permettant ainsi de vérifier son vote et si nécessaire de le modifier, 4. Dès que l'électeur a terminé d'effectuer ses choix, il saisit en 68 un identifiant supplémentaire qui sera contrôlé lors de l'arrivée du bulletin de vote sur le serveur de vote. Cet identifiant supplémentaire est, par 20 exemple, un mot de passe, une carte à puce ou une donnée biométrique. 5. Puis les choix sont validés localement en 70, par exemple en contrôlant le nombre de sélection, puis chiffrés en 72 et envoyés en 74 par l'application sous la forme d'un bulletin de vote crypté au 25 serveur de vote 3 sur lequel ils ne seront jamais décryptés. Le procédé décrit permet ainsi de : • ne pas communiquer au serveur de vote 3 les choix de l'électeur, • maintenir la chaîne de chiffrement du bulletin de vote sur le 30 serveur de vote, • de maintenir l'anonymat du vote, 2905786 7 • de renforcer la validité du vote par l'insertion d'un identifiant supplémentaire permettant d'empêcher un tiers de se substituer à l'électeur après l'authentification préliminaire. Dans un mode de réalisation particulier reprenant les étapes décrites 5 en relation avec la figure 3, le terminal de vote 1 est un ordinateur personnel classique connecté à internet et une applet JAVA permet de chiffrer le vote. Le fonctionnement est alors le suivant : 1. Après authentification, l'électeur se voit proposer en 60 une page internet lui proposant un écran unique de sélection et de choix des 10 candidats, 2. Cette page contient une applet, ou appliquette, de chiffrement qui dès la fin de son chargement communique en 62 avec le serveur de vote 3 afin de récupérer en 64 les paramètres cryptographiques nécessaires au chiffrement et à la validation du vote. Cette 15 communication est réalisée sous la forme d'une communication applet-servlet, 3. Au fur et à mesure de la sélection des choix par l'électeur, le détail du bulletin qu'il est entrain de constituer lui est présenté en 66 en temps réel, Ce détail est généré localement sur le terminal de 20 l'utilisateur, dans le cadre du navigateur internet, par l'intermédiaire d'un script JavaScript (standard ECMA-262). Il est à noter que cela diffère fondamentalement des applications internet traditionnelles dans lesquelles les mises à jour des pages sont réalisées par des requêtes au serveur qui prépare à chaque nouvelle requête une 25 nouvelle page avec les données mises à jour avant de l'envoyer au terminal. Les technologies plus récentes regroupées sous le vocable de Web 2.0 permettent de ne télécharger qu'une partie de la page mais l'interaction avec le serveur est toujours utilisée. 4. Dès que l'électeur a terminé d'effectuer ses choix, il saisit en 68 un 30 identifiant supplémentaire qui sera contrôlé lors de l'arrivée du bulletin de vote sur le serveur de vote, 2905786 8 5. Dès la fin de la saisie de l'identifiant supplémentaire, les choix sont transmis à l'applet de chiffrement sous la forme d'une communication navigateur internet / applet en utilisant, par exemple, le langage JavaScript 5 6. Les choix sont validés en 70 localement par l'applet, (ex : contrôle du nombre de sélection) puis chiffrés en 72 et envoyés en 74 par l'application au serveur de vote sur lequel ils ne seront jamais décryptés. Ce mode de réalisation particulier permet d'utiliser l'ergonomie des 10 applications web et ne nécessite qu'un téléchargement de petite taille compatible avec des terminaux ne possédant qu'un accès à Internet à bas débit. L'homme du métier sait, à partir des descriptions de ces modes de réalisation et des revendications réaliser d'autres variantes de réalisations. 15 Par exemple, l'applet peut être remplacée par la distribution ou le téléchargement d'une application permettant de réaliser complètement le processus de vote bien que cela a l'inconvénient d'augmenter la taille du fichier à télécharger par le terminal de vote. De même, le réseau utilisé peut être n'importe quel type de réseau permettant le transport de données tel 20 que, par exemple, les réseaux de téléphonie mobile. Ainsi, le terminal de vote peut être un terminal de téléphonie mobile, ou équivalent, sur lequel une applet de vote est téléchargée. Nous avons décrit un procédé et un système de vote électronique à 25 distance qui ne rompt pas la chaîne de l'anonymat du vote lors de la confirmation du bulletin de vote en réalisant cette confirmation sur le terminal de vote, ce qui permet de ne faire transiter sur le réseau qu'un bulletin de vote sécurisé. REVENDICATIONS 1. Système de vote électronique à distance par l'intermédiaire d'un réseau (5) de communication de données comportant : - au moins un terminal (1) de vote comportant au moins une interface homme-machine (11) permettant à un électeur de remplir un bulletin de vote, ledit terminal comportant en outre des moyens (7) de communication reliés au réseau de communication de données et adaptés pour communiquer avec - au moins un serveur (3) de vote comportant des moyens (9) de communications adaptés pour la communication de données avec chaque terminal de vote et des moyens (19) de validation du bulletin de vote caractérisé en ce que le terminal de vote comporte en outre des moyens (12) locaux de validation du bulletin de vote adaptés pour permettre à l'électeur d'approuver le bulletin de vote et des moyens (16) de chiffrement du bulletin de vote avant envoi du bulletin de vote approuvé au serveur de vote. 2. Système selon la revendication 1, caractérisé en ce que les moyens locaux de validation du bulletin de vote sont adaptés pour authentifier l'électeur après que celui-ci a rempli le bulletin de vote. 3. Système selon la revendication 1 ou 2, caractérisé en ce que les moyens locaux de validation sont adaptés pour télécharger avant le vote du serveur de vote les paramètres caractéristiques du vote. 4. Système selon la revendication 1, 2 ou 3 caractérisé en ce que 25 l'interface homme/machine comporte un moteur de rendu avec lequel les moyens de validation s'interfacent. 5. Système selon la revendication 4, caractérisé en ce que le moteur du rendu est adapté pour permettre à l'électeur de remplir et vérifier le bulletin 30 de vote sans effectuer de requête sur le serveur de vote. 2905786 10 6. Procédé de vote électronique à distance entre un terminal (1) de vote et un serveur (3) de vote reliés entre eux par l'intermédiaire d'un réseau (5) de communication de données, comportant, sur le terminal de vote, les 5 étapes de : a) création (32, 34, 36) d'un bulletin de vote par l'intermédiaire d'une interface homme-machine permettant à un électeur de sélectionner ses choix de vote, b) validation (38) locale du bulletin de vote, c) approbation (42) du bulletin de vote par l'électeur, 10 d) chiffrement du bulletin de vote, e) envoi (46) du bulletin de vote validé au serveur de vote, puis f) par le serveur de vote, validation (48) sans déchiffrement du bulletin de vote. 7. Procédé selon la revendication 6, caractérisé en ce que l'étape b) de 15 validation est suivie d'une étape b') d'authentification complémentaire de l'électeur. 8. Procédé selon la revendication 6 ou 7 caractérisé en ce que l'étape a) est précédée d'une étape de téléchargement des caractéristiques du vote du 20 serveur de vote vers le terminal de vote. 9. Programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé selon l'une quelconque des revendications 6 à 8 dans ses étapes exécutées sur un terminal de vote.25