FR 2944907 A1 20101029 FR 0952653 A 20090423 PROCEDE DE VOTE ELECTRONIQUE SECURISE. Description Domaine technique de l'invention. L'invention a pour objet un procédé de vote électronique sécurisé. Elle a également pour objet un dispositif permettant de mettre en oeuvre le procédé objet de l'invention. L'invention se rapporte au domaine technique des bornes électroniques de vote et plus précisément les procédés de vote permettant de sécuriser les 15 sessions de votes effectuées sur ces bornes. État de la technique. 20 On connait le vote traditionnel consistant, pour chaque votant, à : - se saisir d'un jeu de bulletins de vote, chaque bulletin correspond à l'un des candidats à l'élection, - entrer dans un isoloir de manière à se protéger des regards indiscrets, - glisser le bulletin correspondant à son choix de vote dans une enveloppe 25 blanche de manière à rendre le vote anonyme, - sortir de l'isoloir, - déposer l'enveloppe dans une urne transparente. 2944907 -2 Une fois la fin des votes, c'est-à-dire lorsque tous les votants ont procédé au vote, l'urne est ouverte, les bulletins sont sortis de chaque enveloppe et les votes sont comptabilisés. 5 Cependant, cette opération dite de � dépouillement � est exécutée manuellement et se révèle longue et fastidieuse. Elle peut également être source d'erreurs au niveau des décomptes. Afin de limiter ces erreurs, une liste d'émargement, sur laquelle chaque votant signe après son vote, permet de comptabiliser le nombre de votants. Au moment des résultats, il est ainsi 10 possible de confronter le nombre total de votants au nombre total de bulletins dépouillés. Si une différence entre ces nombres est avérée, les votes doivent être recomptés. De manière à simplifier l'étape de dépouillement, le vote électronique est appelé à remplacer le vote traditionnel. Le vote électronique consiste, pour chaque votant, à enregistrer anonymement son vote directement sur une borne de vote électronique en sélectionnant un candidat parmi ceux qui lui sont proposés. À la fin de la session de vote, les votes sont comptabilisés automatiquement et quasi instantanément. La liste des résultats est ensuite imprimée sur une feuille de papier et publiée. Le temps de dépouillement, initialement égal à plusieurs heures, est alors réduit à seulement quelques secondes. Pour autant, le vote électronique ne peut réellement remplacer le vote traditionnel que s'il offre au moins autant de garanties que celui-ci. En effet, le vote traditionnel est secret et anonyme, il permet au citoyen de contrôler visuellement le traitement des bulletins à partir du dépôt dans l'urne jusqu'à 2944907 -3 l'opération de dépouillement. A contrario, le vote électronique ne permet pas un tel contrôle, à partir du moment où le votant s'est exprimé, la borne électronique de vote pourrait modifier l'expression du vote sans que le votant ne puisse le détecter. 5 Ainsi, le procédé de vote électronique certifié décrit dans le document FR 08 00406 (A. RATIGNIER) permet à chaque votant de pouvoir vérifier que son vote n'a pas été modifié entre son enregistrement et sa comptabilisation dans le résultat final des votes. Ce procédé consiste à attribuer, à chaque 10 votant, un � code de votant � aléatoire unique qui est ensuite imprimé sur un certificat délivré audit votant. À la fin des votes, une � liste de votes � est publiée. Cette liste se présente sous la forme d'un tableau comportant une première colonne dans laquelle sont listés les � codes votant � et une deuxième colonne dans laquelle sont listés les � votes � associés à chacun 15 desdits � codes votant �. Ainsi, chaque votant peut vérifier que l'expression de son � vote �, affiché sur la � liste des votes � en vis-à-vis de son � code votant �, est bien identique au � vote � qu'il avait préalablement enregistré sur la borne électronique de vote. 20 Néanmoins, si à première vue le procédé de vote électronique certifié assure l'anonymat, il ne permet pas de garantir une confidentialité et un secret total. II est par exemple possible pour un tiers de connaitre l'expression d'un vote, en subtilisant au votant son certificat sur lequel est inscrit son � code votant �. Ce certificat peut également être utilisé comme moyen de pression sur 25 le votant dans des cas d'achats illégaux de vote. En effet, ce certificat peut être utilisé, par une personne mal intentionnée, comme un moyen de vérification que le votant a bien exprimé le � vote � qui lui avait été ordonné ou acheté. - 4 Pour pallier cet état de fait, l'invention a pour principal objectif de fournir un procédé de vote électronique sécurisé permettant de garantir au votant que son vote est anonyme, potentiellement vérifiable par le votant lui-même, mais invérifiable par une tierce personne. L'invention a également pour objectif de fournir un procédé rapide, facile de mise en oeuvre et peu onéreux. Divulgation de l'invention. La solution proposée par l'invention est un procédé de vote électronique sécurisé dans lequel, pour chaque votant : 15 - on génère un � code votant � unique aléatoire associé au votant, - on informe le votant du � code votant � généré, - on enregistre le � vote � du votant, - on stocke dans une mémoire le couple � vote � et � code votant � associé au votant, 20 - on transmet au votant le couple � vote � et � code votant � qui lui est associé. Ce procédé est remarquable en ce qu'il comprend les étapes suivantes : - on sélectionne aléatoirement dans la mémoire, pour chaque possibilité de vote différente du � vote � enregistré qui est associé au votant, un autre couple 25 � vote � et � code votant �, - on transmet au votant les autres couples � vote � et � code votant � sélectionnés.10 - 5 De cette manière, le votant est le seul à pouvoir identifier le couple � vote � et � code votant � qui lui est associé parmi l'ensemble des couples qui lui ont été transmis, au moyen de l'information � code votant � qu'il a reçu. En effet, seul le votant qui a été informé du � code votant � qui lui été attitré de manière confidentielle dans un isoloir, peut déduire parmi les couples � vote � et � code votant � qui lui ont été transmis, lequel correspond effectivement à son vote. Selon une caractéristique avantageuse de l'invention, avant le premier vote, une ou plusieurs fois pour chaque possibilité de vote : - on génère un � code votant � aléatoire unique associé à un votant virtuel, - on stocke le couple � vote � et � code votant � associé au votant virtuel dans la mémoire. II est ainsi possible de délivrer, dès les premiers votants, autant de couples � vote � et � code votant � qu'il y a de possibilités de � vote �. Selon une autre caractéristique avantageuse de l'invention permettant à chaque votant de vérifier que son � vote � n'a pas été modifié au cours de l'élection et qu'il est bien pris en compte dans le décompte des résultats, on publie une � liste des votes � unique répertoriant les couples � vote � et � code votant � stockés dans la mémoire, de manière à permettre à chaque votant de vérifier individuellement l'exactitude de leur � vote �. Selon encore une autre caractéristique avantageuse de l'invention permettant de vérifier que le résultat final des � votes � prend uniquement en compte les � votes � des votants réels et pas ceux des votants virtuels : - 6 - on génère, pour chaque � code votant �, un � code de contrôle � lié numériquement audit � code votant � au moyen d'un procédé de chiffrage numérique, - on publie une � liste de contrôle � unique répertoriant le type � réel � ou � virtuel � du votant, associé au couple � vote � et � code de contrôle �, de manière à pouvoir vérifier l'extraction des � votes � virtuels dans le décompte final des � votes � tout en rendant impossible l'identification du � code votant � associé aux votants virtuels. Selon encore une autre caractéristique avantageuse de l'invention permettant de vérifier l'invariabilité des � votes � virtuels au cours de la session de vote, on publie préalablement au début des votes réels, une � liste virtuelle � comportant les couples � vote � et � code de contrôle � associés aux votants virtuels, de manière à pouvoir vérifier à postériori sur la � liste de contrôle � que les � votes � virtuels sont restés inchangés au cours des votes. Selon une autre caractéristique avantageuse de l'invention permettant également de vérifier l'invariabilité des � votes � virtuels au cours de la session de vote : - on créé une � liste virtuelle � répertoriant les couples � vote � et � code de contrôle � associés aux votants virtuels, - on génère une empreinte numérique de la � liste virtuelle � au moyen d'une fonction de hachage numérique, - on transmet l'empreinte numérique à chaque votant, - on publie la � liste virtuelle � avec son empreinte numérique régénérée immédiatement avant ladite publication de manière à pouvoir vérifier que ladite empreinte numérique est restée inchangée au cours des votes. - 7 Selon encore une autre caractéristique avantageuse de l'invention permettant de générer, par votant, un � code de contrôle � et un � code votant � liés numériquement : - on génère aléatoirement un � code de base � et un � code de camouflage �, - on réalise un hachage numérique du � code de base � concaténé au � code de camouflage � pour générer le � code votant �, - on réalise un hachage numérique du � code de camouflage � concaténé au � code de base � pour générer le � code de contrôle �. Selon encore une autre caractéristique avantageuse de l'invention permettant de s'assurer que la corrélation de la � liste de contrôle � avec la � liste des votes � est incontestable, on détermine le � code votant � et son � code de contrôle � associé à partir d'un � code de base � pris aléatoirement et de son � code de camouflage � associé de manière à vérifier l'intégrité du lien numérique créé entre la � liste de contrôle � et la � liste des votes �. Selon encore une autre caractéristique avantageuse de l'invention permettant de transmettre physiquement au votant les couples � vote � et � code votant � : - on imprime chaque couple sur un certificat distinct, - on délivre les certificats au votant.25 - 8 Un autre aspect de l'invention concerne une borne de vote électronique sécurisé comprenant : - un moyen pour générer un � code votant � unique aléatoire associé au votant, - un moyen pour informer le votant du � code votant � généré, - un moyen pour enregistrer le � vote � du votant, - un moyen pour stocker dans une mémoire le couple � vote � et � code votant � associé au votant, - un moyen pour transmettre au votant le couple � vote � et � code votant � qui lui est associé, Cette borne est remarquable en ce qu'elle comprend en outre : - un moyen pour sélectionner aléatoirement dans la mémoire, pour chaque possibilité de vote différent du � vote � enregistré qui est associé au votant, un autre couple � vote � et � code votant �, - un moyen pour transmettre au votant les autres couples � vote � et � code votant � sélectionnés. De cette manière, le votant est le seul à pouvoir identifier le couple � vote � et � code votant � qui lui est associé parmi l'ensemble des couples qui lui ont été transmis, au moyen de l'information � code votant � qu'il a reçu. En effet, seul le votant qui a été informé du � code votant � qui lui a été attitré de manière confidentielle dans un isoloir, peut déduire parmi les couples � vote � et � code votant � qui lui ont été transmis, lequel correspond effectivement à son vote.25 - 9 Encore un autre aspect de l'invention concerne une carte à puce configurée pour être insérée dans un lecteur de carte intégré à la borne de vote électronique selon l'invention. Cette carte à puce est remarquable en ce qu'elle comporte : - une mémoire dans laquelle est stocké un programme décomposé en fonctions permettant de mettre en oeuvre, en totalité ou en partie, une ou plusieurs étapes du procédé objet de l'invention, - un microprocesseur intégré configuré pour exécuter les fonctions dudit programme. II est ainsi possible de centraliser l'exécution d'un maximum d'étapes du procédé de manière sécurisée dans la carte à puce et ainsi limiter les possibilités d'accès et de manipulation des données. Selon encore une autre caractéristique avantageuse de l'invention permettant de sécuriser l'accès aux données contenues et enregistrées dans la carte à puce, la mémoire de ladite carte comporte une zone sécurisée uniquement accessible par le microprocesseur intégré à ladite carte et dans laquelle sont stockés les � codes votant � et les � votes �.25 -10-Description des figures. D'autres avantages et caractéristiques de l'invention apparaîtront mieux à la lecture de la description d'un mode de réalisation préféré qui va suivre, en référence aux dessins annexés, réalisés à titre d'exemples indicatifs et non limitatifs et sur lesquels : - la figure 1 représente schématiquement le certificat délivré au votant et correspondant au vote � Rouge �, - la figure 2 représente schématiquement le certificat délivré au votant et 10 correspondant au vote � Vert �, - la figure 3 représente schématiquement le certificat délivré au votant et correspondant au vote � Bleu �, la figure 4 représente schématiquement le certificat délivré au votant et correspondant au vote � Jaune �. 15 Modes de réalisation de l'invention. Le procédé de vote électronique sécurisé objet de l'invention a pour 20 objectif d'éliminer toute possibilité de pression sur le votant. De manière générale, les sessions de vote électronique se déroulent dans le ou les bureaux de vote de chaque circonscription électorale. Au cours d'une session de vote, chaque votant inscrit dans la circonscription électorale peut, à tour de rôle, procéder au vote au moyen d'une borne de vote électronique ou machine à 25 voter, ci-après appelé � borne �. Une fois son vote effectué, le votant signe un registre permettant d'attester de son vote, mais également de comptabiliser le nombre de votants à la fin de la session de vote. En pratique, une session de 2944907 -11- vote dure une journée de douze heures maximum et le temps nécessaire pour effectuer un vote est estimé à au moins une minute. Le nombre de votes qui peuvent être effectués sur une borne est donc inférieur à 1000. Chaque bureau de vote de plus de 1000 votants peut donc disposer de plusieurs bornes. 5 Celles-ci sont disposées dans un isoloir de manière à garantir l'aspect confidentiel du vote lors de sa saisie par le votant. La borne se présente généralement sous la forme d'un carter sur lequel sont agencés un ou plusieurs dispositifs d'interfaces électroniques gérés par un processeur d'interface intégré à ladite borne et capable d'exécuter un programme stocké dans une mémoire intégré à la borne. L'exécution du programme peut se décomposer en l'exécution de plusieurs fonctions, chacune permettant la mise en oeuvre, en totalité ou en partie, d'une ou plusieurs étapes du procédé objet de l'invention. Le carter peut être réalisé en bois, en métal, en plastique, etc. Il peut également être blindé électromagnétiquement de manière à garantir l'inviolabilité des données générées et/ou enregistrées par la borne. Le ou les dispositifs d'interface électroniques peuvent être du type écran d'affichage, écran tactile, clavier de saisies, lecteur de carte à puce, imprimante, ou tout autre dispositif d'interface électronique convenant à l'homme du métier. La borne intègre également un lecteur de carte dans lequel est insérée une carte à puce permettant la mise en oeuvre d'une session de vote. Par mesure de simplification, cette carte à puce est ci-après nommée carte DSBV pour � Données de Session du Bureau de Vote � et le lecteur de carte permettant sa lecture est nommée lecteur DSBV. Cette carte DSBV est du type carte CP8 conforme à la norme ISO 7816. Elle se présente généralement sous 2944907 -12- la forme d'une carte en matière plastique, de quelques centimètres de côté et moins d'un millimètre d'épaisseur, comportant une puce composée d'au moins un circuit intégré. Le circuit intégré peut comprendre une mémoire non volatile et un microprocesseur capable d'exécuter un programme enregistré dans ladite 5 mémoire. L'exécution du programme peut se décomposer en l'exécution de plusieurs fonctions, chacune permettant la mise en oeuvre, en totalité ou en partie, d'une ou plusieurs étapes du procédé objet de l'invention. Par simplification, le microprocesseur intégré à la carte DSBV est appelé par la suite microprocesseur DSBV. La mémoire peut comporter une zone publique et 10 une zone sécurisée, cette dernière étant uniquement accessible via le microprocesseur DSBV. Avant d'être insérée dans le lecteur DSBV, la carte DSBV est configurée par un centre d'administration des votes. Ce dernier a pour rôle de coordonner 15 le déroulement des sessions de votes électroniques d'un ou plusieurs bureaux de vote d'une partie ou de l'ensemble des circonscriptions électorales. Pour configurer la carte DSBV, le centre d'administration des votes enregistre dans sa mémoire, au moyen d'un enregistreur de carte à puce, différentes informations parmi lesquelles sont par exemple enregistrées : 20 - le programme destiné à être exécuté par le processeur intégré à la carte DSBV et permettant de gérer le déroulement de la session de vote, - une série de données relatives à la session de vote, par exemple le nom des candidats à l'élection et éventuellement des images relatives auxdits candidats, la désignation du bureau de vote et de la circonscription électorale, 25 le numéro de la borne, la désignation du scrutin, la date du scrutin, etc. 2944907 -13- Une fois le programme et les données de session enregistrés sur la carte DSBV, celle-ci est envoyée aux différents bureaux de vote de manière à être insérée dans le lecteur DSBV intégré dans la borne. En pratique, la borne ne peut fonctionner qu'en présence de la carte DSBV. De manière à sécuriser le 5 fonctionnement de la borne, le fonctionnement de la carte peut être conditionné par la saisie d'un code d'authentification du type numéro d'identification personnel (NIP ou PIN en anglais), ou autres. Ce code d'authentification est généralement connu par un nombre réduit de personnes, il peut par exemple être uniquement connu par le directeur du bureau de vote. En pratique, lorsque 10 la carte est insérée dans le lecteur, le processeur d'interface détecte la présence de la carte et exécute une fonction permettant d'envoyer une requête d'exécution à destination du microprocesseur DSBV. En réponse à cette requête, le microprocesseur DSBV exécute une fonction permettant d'envoyer une requête d'authentification à destination du processeur d'interface. Ce 15 dernier reçoit la requête d'authentification et exécute une fonction permettant alors de diffuser une demande de saisie du code d'authentification à destination de l'utilisateur qui est, dans notre exemple, le directeur du bureau de vote. La diffusion peut être réalisée via un écran permettant l'affichage du � code votant �, ou via moyen de synthèse vocale permettant l'épellation du code dans 20 des oreillettes (par exemple pour les votants mal voyants), ou tout autre moyen convenant à l'homme du métier. L'utilisateur, qui est dans notre exemple le directeur du bureau de vote, saisit alors le code d'authentification au moyen d'un clavier physique, ou d'un clavier virtuel affiché sur un écran tactile, ou de tout autre moyen de saisie convenant à l'homme du métier. 25 Une fois le code d'authentification saisit, celui-ci est envoyé par le processeur d'interface au microprocesseur DSBV qui exécute une fonction 2944907 - 14 - permettant d'ouvrir la session de vote. La session de vote est maintenant ouverte et les votants peuvent procéder tour à tour à leur vote. Ainsi, pour chaque votant la borne génère un � code votant � unique aléatoire associé au votant. Ce dernier se présente sous la forme d'une suite de caractères du type 5 alphanumérique, cette suite de caractère pouvant par exemple former un mot de manière à facilement pouvoir le retenir. En pratique, le microprocesseur DVSB exécute une fonction permettant de générer le � code votant � au moyen d'un algorithme de génération de code alphanumérique de taille fixe ou variable. Chaque � code votant � généré est unique. Le � code votant � est 10 ensuite enregistré à la fois dans une mémoire de stockage intégré à la borne du type disque dur, carte mémoire, ou autres, et à la fois dans la mémoire de la carte DSBV. Le votant est ensuite informé du � code votant � généré qui lui est attitré. 15 En pratique, pour informer le votant, le microprocesseur DSBV exécute une fonction permettant d'envoyer une requête d'information du � code votant � contenant ledit code au processeur d'interface. Ce dernier reçoit la requête et exécute alors une fonction permettant de diffuser le � code votant � à destination exclusive du votant. La diffusion peut être réalisée par un moyen de 20 diffusion du type de ceux décrits précédemment. Une fois le votant informé de son � code votant � attitré, le votant procède à l'enregistrement de son vote. En pratique, pour enregistrer son vote le votant doit sélectionner un choix de vote parmi plusieurs. Le microprocesseur 25 DSBV exécute une fonction permettant, dans un premier temps, de répertorier dans les données de sessions, les informations relatives aux candidats, par exemple le nom de chaque candidat à l'élection, leurs photos, leur parti 2944907 -15- politique, leur slogan, etc. Cette fonction permet, dans un deuxième temps, d'envoyer une requête contenant les informations relatives aux candidats à destination du processeur d'interface. Ce dernier reçoit la requête et exécute alors une fonction permettant de diffuser ces informations à destination du 5 votant par un moyen de diffusion du type de ceux précédemment décrits. Les informations relatives aux candidats à l'élection peuvent, par exemple être affichées sous la forme d'un tableau listant le nom desdits candidats à l'élection. 10 Parmi l'ensemble des choix possibles, le votant sélectionne, via un moyen de saisie du type de ceux décrits précédemment, son choix de � vote � correspondant au candidat pour lequel il désire voter. Par exemple, chaque candidat peut être associé à un numéro, la sélection d'un candidat particulier étant réalisé en saisissant sur un clavier le numéro associé audit candidat 15 particulier. Une fois le choix de � vote � saisit, le processeur d'interface exécute une fonction permettant d'envoyer le � vote � à destination du microprocesseur DSBV. De manière à éviter les erreurs de frappe de la part du votant, l'enregistrement du � vote � peut être conditionné par une étape de confirmation du vote consistant à informer le votant de la sélection qu'il vient 20 d'effectuer, puis à lui demander de bien vouloir confirmer que la sélection effectuée est la bonne. Cette confirmation peut, par exemple, être effectuée par pression d'une touche du clavier physique ou virtuel. Dans le cas où le votant se serait trompé, il pourrait effectuer un nouveau choix. 25 Une fois le � vote � enregistré, celui-ci est stocké avec le � code votant � généré. En pratique, le processeur d'interaction exécute une fonction permettant le stockage du couple � vote � et � code votant � dans la mémoire 2944907 -16- de stockage de la borne. De même, le microprocesseur DSBV exécute une fonction permettant également le stockage du couple � vote � et � code votant � dans la mémoire de la carte DSBV. Le stockage des � votes � et des � codes votant � dans la mémoire intégrée à la carte DSBV permet d'isoler sur 5 un objet unique sécurisé l'ensemble des données d'une session de vote. À tout moment, la borne de vote peut vérifier si les données contenues dans sa mémoire de stockage et celles contenues dans la mémoire de la carte DSBV sont identiques. Ce contrôle peut être effectué aléatoirement ou de façon récurrente à chaque génération d'un � code votant �, à chaque enregistrement 10 d'un � vote �, à la clôture de la session de vote, ou à tout autre moment opportun. Si le contrôle est négatif, une procédure d'erreur peut être enclenchée. Le stockage du couple � vote � et � code votant � associé peut par exemple être organisé sous la forme d'un tableau comprenant un nombre fixe de lignes, une colonne � vote � et une colonne � code votant �, chaque ligne 15 étant dédiée à un unique votant. Pour éviter tout risque de saturation du tableau celui-ci peut comprendre sensiblement plus de ligne que la borne peut en principe enregistrer de vote au cours d'une session limitée dans le temps. Par exemple, si la borne peut enregistrer au cours d'une session de douze heures un maximum de 1000 votes, le tableau peut alors comprendre 1100 lignes. De 20 manière à ce qu'il soit impossible de déterminer la chronologie des � votes �, le couple � vote � et � code votant � associé peut être inscrit aléatoirement dans une ligne vide du tableau. Une fois enregistré, le couple � vote � et � code votant � est transmis au 25 votant. En pratique, le processeur d'interaction exécute une fonction permettant physiquement ou numériquement la transmission des données au votant. 2944907 -17- De manière à ce que le votant puisse en conserver une trace, la transmission est généralement réalisée par l'impression d'un certificat de vote délivré au votant. À ce titre, et de manière similaire à une borne de péage ou une borne de parking, la borne de vote électronique intègre une imprimante 5 destinée à imprimer le couple � vote � et � code votant � associé sur un certificat vierge stocké parmi plusieurs dans un réservoir. Les certificats imprimés par la borne peuvent également faire apparaître l'identification du bureau de vote, l'identification du scrutin, le code du vote, l'expression du vote, ou toutes autres informations utiles. De manière à authentifier les certificats, 10 ces derniers peuvent également comporter une signature numérique générée par une fonction de chiffrement exécuté par le microprocesseur DSBV, ladite fonction étant basée sur un algorithme de chiffrement numérique utilisant une clé privée de chiffrement unique associée au bureau de vote. Cette clé privée est stockée dans la zone sécurisée de la mémoire de la carte DSBV. Pour 15 pouvoir être contrôlé, le certificat peut disposer d'un moyen de lecture automatisée du type caractères facilement reconnaissables par lecture optique, code-barres, piste magnétique ou autres. Le centre d'administration des votes dispose à ce titre d'un périphérique capable de lire un tel certificat par exemple, d'un lecteur optique et d'un logiciel de reconnaissance optique de caractère ou 20 de code-barres, d'un lecteur de piste magnétique, etc. Le centre d'administration des votes peut alors vérifier l'authenticité d'un certificat en utilisant une clé publique de chiffrement associée au bureau de vote et en exécutant une fonction de déchiffrement. 25 Les certificats peuvent aussi être remis numériquement au votant, par exemple en transférant le certificat sous forme d'un fichier électronique sur un équipement mobile standardisé du type téléphone portable, lecteur multimédia 2944907 -18- portable, ou autres, via une interface filaire (câble USB, mini-USB, HDMI, etc.), sans fil (infrarouge, Bluetooth, Wifi, etc.), sur une carte mémoire (SD, SDHC, etc.), ou autre. 5 À l'issue des sessions de votes, le directeur du bureau de vote commande la clôture de la session de vote. En pratique le directeur du bureau de vote appuie sur une touche dédiée intégrée à la borne donnant l'ordre au processeur d'interface d'envoyer une requête de clôture de session à destination du microprocesseur DSBV. A la réception de cette requête, le 10 microprocesseur DSBV exécute une fonction permettant de verrouiller la carte. La session est clôturée et les données de la carte DSBV ne sont alors plus modifiables. La carte DSBV peut alors être retirée du lecteur DSBV intégré à la borne. 15 Les résultats des votes sont ensuite envoyés au centre de manière à ce qu'il procède au décompte final. Les résultats peuvent être communiqués par télétransmission, par envoi postal, téléphone, ou autre. En pratique et de manière à garantir au maximum l'intégrité des résultats du vote, la carte DSBV est signée manuellement par le directeur du bureau de vote et renvoyée 20 physiquement au centre d'administration des votes constituant ainsi la preuve physique de l'intégrité de la session de vote. La collecte des résultats par le centre se fait alors par la lecture de la carte DSBV dans un lecteur dédié. Le centre d'administration des votes est également chargé de vérifier l'authentification des � votes � par exemple au moyen de fonctions de 25 chiffrement et en utilisant les clés publiques de chiffrements associés à chaque bureau de vote. Une fois l'authentification des � votes � vérifiée, le centre 2944907 -19- d'administration des votes publie une � liste des résultats �. Cette dernière peut par exemple faire apparaitre le pourcentage de votes par candidat. Une fois la � liste des résultats � publiés, et afin de garantir la véracité 5 des résultats, le votant doit pouvoir vérifier si son � vote � a réellement été pris en compte. Une � liste des votes � unique est alors publiée, cette liste répertoriant les couples � vote � et � code votant � stockés dans la mémoire de la carte DSBV, de manière à permettre à chaque votant de vérifier individuellement l'exactitude de leur � vote �. Ainsi, le contrôle des � votes � 10 peut être effectué par les votants et tous citoyens. Le votant va retrouver dans la � liste des votes � publiée la trace de son � vote � au moyen de son � code votant � attitré, il aura ainsi la garantie que son � vote � a été pris en compte. La � liste des votes � peut être publiée sur des sites Internet, mais aussi sur des listes papier affichées dans des lieux publics, dans la presse, etc. 15 Un problème actuel du vote électronique concerne l'achat de vote ou le vote sous contrainte. Le principe retenu pour éviter toute possibilité de pression sur le votant est de permettre au votant de fournir indifféremment la preuve de vote de n'importe quelle possibilité de vote sans que cela le contraigne à 20 effectuer réellement ce vote. Pour ce faire, le processeur DSBV exécute une fonction permettant de sélectionner aléatoirement dans la mémoire, pour chaque possibilité de vote différent du � vote � enregistré qui est associé au votant, un autre couple � vote � et � code votant �. En pratique, cette fonction est basée sur un algorithme de recherche aléatoire dans une liste non triée. Les 25 autres couples � vote � et � code votant � sélectionnés sont ensuite transmis au votant. De cette manière, le votant est le seul à pouvoir identifier le couple � vote � et � code votant � qui lui est associé parmi l'ensemble des couples qui 2944907 - 20 - lui ont été transmis, au moyen de l'information � code votant � qu'il a reçu. Les autres couples � vote � et � code votant � sont transmis au votant de manière identique que le couple � vote � et � code votant � associé au votant qui a été précédemment décrit. 5 En particulier, la borne peut, par exemple, imprimer chaque couple sur un certificat distinct, et délivrer les certificats au votant. La borne remet donc au votant autant de certificats que de possibilités de vote. Dans le lot de certificats remis, un des certificats correspond au vote réel effectué, les autres 10 correspondent à chaque autre choix de vote et sont prélevés au hasard dans la masse des autres votes enregistrés dans la mémoire de la borne et/ou de la carte DSBV. Le votant peut alors déjouer toute pression éventuelle en présentant après son vote n'importe quel certificat de vote, ou en citant de mémoire n'importe quel code de vote, mais lui seul sait quel est le � code 15 votant � attribué à son propre � vote � pendant son enregistrement et lui seul peut vérifier que son vote réel a été bien pris en compte. De manière à pouvoir délivrer aux premiers votants autant de couples � vote � et � code votant � qu'il y a de possibilités de vote, il faut que, dès les 20 premiers votes, la mémoire dans laquelle sont stockés lesdits couples comprenne au moins un couple par possibilité de vote. Ainsi, avant le premier vote, et une ou plusieurs fois pour chaque possibilité de vote : - on génère un � code votant � aléatoire unique associé à un votant virtuel, - on stocke le couple � vote � et � code votant � associé au votant virtuel 25 dans la mémoire. En pratique, le processeur DSBV exécute : 2944907 - 21 - - une fonction permettant de générer un � code votant �. Cette fonction est généralement basée sur un algorithme de génération de codes identique à celui précédemment décrit. - une fonction permettant de stocker le couple � vote � et � code votant � 5 dans la mémoire de la carte DSBV. Ainsi, la borne de vote est en mesure de présenter dés le premier votant un jeu complet de couples � vote � et � code votant � qui va être remis au votant, lesdits couples seront, en outre, réellement présents dans la � liste des 10 votes � ultérieurement publiée. Pour cela, la � liste des vote � comprend des � votes � réels et des � votes � virtuels mélangés entre eux. Les � votes � virtuels sont générés avant la session de vote, ils sont généralement en nombre équivalent pour chaque choix de vote. La � liste des votes � pourra indiquer combien de � votes � virtuels ont été introduits, mais elle ne donnera aucune 15 indication pour reconnaître si un � code votant � correspond à un � vote � réel ou à un � vote � virtuel. De manière à écarter toute possibilité de manipulation des résultats par création de � votes � virtuels et afin d'assurer que le comptage des � votes � 20 est incontestable, chaque citoyen doit pouvoir vérifier le décompte des � votes � virtuels du résultat final. Ainsi, la borne de vote permet de générer, pour chaque � code votant �, un � code de contrôle � lié numériquement audit � code votant � au moyen d'un procédé de chiffrage numérique. Le � code de contrôle � se présente sous la forme d'une suite de caractère alphanumérique. 25 En pratique, le processeur DSBV exécute une fonction permettant de générer un � code de contrôle �. Cette fonction est basée sur un algorithme de génération de données alphanumériques par chiffrage numérique. 2944907 - 22 - Une � liste de contrôle � unique est alors publiée. Cette liste répertorie le type � réel � ou � virtuel � du votant, associé au couple � vote � et � code de contrôle �, de manière à pouvoir vérifier l'extraction des � votes � virtuels dans 5 le décompte final des � votes �, tout en rendant impossible l'identification du � code votant � associé aux votants virtuels. La � liste de contrôle � peut être publiée sur papier, dans la presse, sur internet, ou autres. Cette � liste de contrôle � indique donc pour chaque � code de contrôle � s'il s'agit d'un � vote � virtuel ou d'un � vote � réel. Elle permet à la fois de tenir secrets les 10 � codes votant � correspondant aux votants virtuels et à la fois de vérifier le décompte des � votes � virtuels. La � liste de contrôle � peut également être comparée à la � liste des votes � de manière à vérifier que les deux listes présentent le même décompte 15 pour chaque possibilité de vote, tout en étant présentées dans un ordre différent. Il est cependant impossible, grâce au procédé de chiffrage numérique employé, de deviner le � code de contrôle � de la � liste de contrôle � correspondant à un � code votant � de la � liste des votes �. Ce procédé de chiffrage peut consister à : 20 - générer aléatoirement un � code de base � et un � code de camouflage �, - réaliser un hachage numérique du � code de base � concaténé au � code de camouflage � pour générer le � code votant �, - réaliser un hachage numérique du � code de camouflage � concaténé au � code de base � pour générer le � code de contrôle �. Les � code de base � et � code de camouflage � se présentent chacun sous la forme d'une suite de caractère alphanumérique. En pratique, le 25 2944907 - 23 - processeur DSBV exécute d'abord une fonction permettant de générer le � code de base � et le � code de camouflage �, puis une fonction de hachage permettant de générer le � code votant � et le � code de contrôle �. Cette fonction de hachage numérique est du type MD5, SHA1 ou autre. Le � code de 5 base � et le � code de camouflage � peuvent être générés en temps réel pour chaque votant ou être générés en quantité suffisante avant le début de la session de vote, par exemple au nombre de 1100 en reprenant l'hypothèse précédente de 1000 votant maximum par borne. Ils sont généralement stockés dans une � liste de base � organisée sous forme d'un tableau. Le � code de 10 base � peut être public et le � code de camouflage � confidentiel. A ce titre, les � codes de camouflage � sont enregistrés crypté sur la zone sécurisée de la carte DSBV accessible uniquement en lecture par le microprocesseur DSBV au moyen d'une clé de chiffrement. Cette dernière peut également être connue du centre d'administration des votes. 15 Pour que les votants soient sûrs que la � liste de contrôle � et la � liste des votes � sont liées numériquement, un contrôle du lien numérique doit aussi être possible, soit de manière individuelle par le votant, soit par une personne habilité. Si le contrôle se fait sur les listes complètes, il révélera la nature réelle 20 ou virtuelle de chaque � vote �. Pour éviter qu'il soit possible à n'importe qui de faire correspondre totalement les deux listes, le contrôle peut par exemple être restreint sur seulement une ou quelques lignes prises au hasard. Ainsi, chaque votant doit pouvoir déterminer le � code votant � et le � code de contrôle � à partir d'un � code de base � pris aléatoirement et de son � code de 25 camouflage � associé. Comme évoqué précédemment, la liste des � codes de base � est publique, mais le � code de camouflage � associé est stocké sous 2944907 - 24 - forme cryptée et est uniquement décryptable par le microprocesseur DSBV dans des conditions particulières. Par exemple, il est possible de transmettre à chaque votant un jeton 5 numérique, ou clé d'accès, au cours de son vote. Ce jeton numérique, qui se présente sous la forme d'une suite de caractère alphanumérique, donne au votant l'accès au décryptage du � code de camouflage � associé à un nombre limité de � code de base � qu'il peut choisir au hasard dans la liste des � codes de base �. Cette dernière est alors publiée sur un site Internet proposant 10 également un accès facile à des outils numériques en ligne dont l'utilisation est restreinte et conditionnée par la saisie du jeton numérique délivrée au votant. L'un de ces outils peut par exemple permettre le décryptage du � code de camouflage � associé à un � code de base � pris au hasard. Le jeton numérique de chaque votant pourra par exemple donner droit au décryptage 15 d'un seul � code de camouflage �. Une fois le � code de base � choisit et son � code de camouflage � associé décrypté, il est possible de générer de manière certaine le � code de base � et le � code de contrôle � correspondant dans chaque liste. Pour ce 20 faire, on utilisera pour la génération du � code votant � et du � code de contrôle � un algorithme de hachage public du type MD5, SHA1 ou autre, utilisable par toute personne familiarisée avec ces méthodes numériques, et pouvant par exemple être mis en oeuvre par un ordinateur personnel. Ainsi, les listes des � codes de vote � et des � codes de contrôle � ayant été générées de 25 manière correcte, il est possible de vérifier la bonne correspondance de ces codes sur la � liste des votes � et sur la � liste de contrôle �. 2944907 - 25 - Pour garantir que les � votes � virtuels ont bien été introduits avant l'ouverture de la session de vote et s'assurer qu'ils n'ont pas été manipulés au cours de la session, on publie une � liste virtuelle � répertoriant les couples � vote � et � code de contrôle � associés aux votants virtuels. En pratique, le 5 processeur DSBV exécute une fonction permettant de générer la � liste virtuelle � organisée sous forme d'un tableau comportant une colonne � code de contrôle � et une colonne � vote �. La liste virtuelle peut ensuite être imprimée sur papier directement à partir d'un moyen d'impression intégré à la borne, être publiée sur Internet ou dans des journaux, etc. 10 La liste virtuelle peut être publiée préalablement au début des votes réels. II est ainsi possible de vérifier à postériori sur la liste de contrôle que les votes virtuels sont restés inchangés au cours des votes. 15 II est également possible de générer une empreinte numérique de la � liste virtuelle � au moyen d'une fonction de hachage numérique du type de celles précédemment décrites. Cette empreinte numérique est alors transmise au votant. Par exemple, l'empreinte numérique peut être imprimée sur chaque certificat de vote créé pendant la session de vote. La � liste virtuelle � est 20 ensuite publiée, ultérieurement à la session de vote, avec son empreinte numérique régénérée immédiatement avant ladite publication. Le votant peut ainsi vérifier que l'empreinte numérique de la � liste virtuelle � est restée inchangée entre le moment où ledit votant à voté et le moment de la publication. Ceci permet de garantir que la � liste virtuelle � n'a pas été 25 modifiée entre le début de la session de vote et la fin de cette session. 2944907 - 26 - Afin d'illustrer le fonctionnement du procédé objet de l'invention du point de vue d'un votant, prenons l'exemple suivant d'un votant, M. Alpha. Ce dernier appartenant à la circonscription électorale � d'Aix en Provence � et étant rattaché au bureau de vote � Aix Visiovote � équipé d'une borne de vote 5 électronique. Cette borne est préalablement configurée par le directeur du bureau de vote en introduisant la carte DSBV et en saisissant le code Pin associé. La borne commence par générer une série de couples de � codes de 10 base � et de � codes de camouflage �, à partir desquels la borne génère une série de � votes � associés à des votants virtuels. Ainsi, en se rapportant au tableau 1 suivant, la borne comporte dans sa mémoire une � liste virtuelle � répertoriant les couples � codes de contrôle � et 15 � votes � associé aux votants virtuels. Tableau 1 : � liste virtuelle �. Code de Contrôle Vote 1 5327ba2e10b9f03d Rouge 2 7168edf175edf6ee Jaune 3 7b2b07a1747b20fe vert 4 9e4a5ae6511 ef9b5 Bleu 5 be7676f4f578da9a Rouge 6 ebdO37969cl9ldba vert 7 f44cdbc82a144588 Jaune 8 f6ae98ce3d3f4c6O Bleu 2944907 -27- De même, en se rapportant au tableau 2, la borne comporte dans sa mémoire une � liste de base � répertoriant des �codes de base � et des � codes de camouflage �. Cette � liste de base � peut être générée entièrement dès le début, ou encore être générée au fur et à mesure des � votes �. Dans ce 5 dernier cas, le tableau 2 correspond à la � liste de base � dans son état finale, à la clôture de la session de vote. Tableau 2 : � liste de base �. Code de base Code de camouflage 1 13ae734cfc57c289 Ob7e8ef165e7Obaa 2 1cf7ace4165fbec6 793d1c78c7ceb3aO 3 4f7fd926fa1O316O 853e224ade7d 1 eb3 4 5Ofa95d339998fb8 ef27O4453958c2aO 5 526c18665121c2de 1814fdOceO68fO9e 6 64O8d4275b2a88ae dd54df7feb9c1c7c 7 8373871b1afa46eO 4972e1bceed85O5 8 8f5d9d22d6262a8e 211c1c8a987ed188 9 992O9a8839983O5b c96a6f8dd1956ea5 10 9eO2d85eOO194ccc aa39846edd2OO7c6 11 cb841d736365Of85 1Oe542cf2a8c54c7 12 cc351ca9773454ee 2fc74a956e522e48 13 d5e63b6668c7dbOe 3bOddaOcefdeO648 14 d7O4Oc2b4342df4c 840efbfa 1Ob56123 15 e417d779c8a2508b e2ca115e8Ob9O8dO 16 e79O19589Of17a68 4dO8f264c1OOca95 17 eefeff5cb141e2b4 6861cc689dae88ae - 28 - La borne sélectionne aléatoirement un couple � code de base � (6408d4275b2a88ae) et � code de camouflage � (dd54df7feb9c1 c7c) et génère un � code votant � (a496fe) et un � code de contrôle � (3514c0280f6af400) qui sont uniques et associés au votant, M. Alpha. Seul le � code votant � est communiqué à M. Alpha. Le � code votant � correspond aux six premiers caractères du hachage md5 du � code de base � concaténé au � code de camouflage �. Le � code de contrôle � correspond aux seize premiers caractères du 15 hachage md5 du � code de camouflage � concaténé au � code de base �. La � liste de correspondance � des � codes de base �, � code de camouflage �, � code votant � et � code de contrôle � est représentée dans le tableau 3 ci-après. Cette liste est indicative, mais elle n'est pas publiée sous cette forme. Seuls les � codes de base � sont affichés dans la liste publique avec éventuellement le � code de camouflage � sous forme cryptée. 20 25 2944907 -29- Tableau 3 : � liste de correspondance � Code de base Code de Code Code de contrôle camouflage votant 1 13ae734cfc57c289 Ob7e8ef165e70baa b36f2a 75cb3f9348fbb40e 2 1cf7ace4165fbec6 793d1c78c7ceb3a0 bf3dae 8fbf054982166d7b 3 4f7fd926fa103160 853e224ade7d1eb3 8e07e4 0c70c0672f67352b 4 50fa95d339998fb8 ef2704453958c2a0 0d0043 2e7908140efc413d 5 526c18665121c2de 1814fdOceO68f09e ba8ded 196e985087186602 6 6408d4275b2a88ae dd54df7feb9cl c7c a496fe 3514c0280f6af400 7 8373871b1afa46e0 4972e1bceed8505 881788 f6ae98ce3d3f4c6O 8 8f5d9d22d6262a8e 211c1c8a987ed188 354d42 7b2b07a1747b20fc 9 99209a883998305b c96a6f8dd1956ea5 ff3e9e 3f89addd44ef337e 10 9e02d85e00194ccc aa39846edd2007c6 442802 be7676f4f578da9a 11 cb841d7363650f85 10e542cf2a8c54c7 91a5fb 9e4a5ae6511ef9b5 12 cc351ca9773454ee 2fc74a956e522e48 3a5fb8 6fb387dd6abdOb46 13 d5e63b6668c7db0e 3b0dda0cefde0648 d9e855 f44cdbc82a144588 14 d7040c2b4342df4c 840efbfa10b56123 c3b7e4 ebdO37969cl9ldba e417d779c8a2508b e2ca115e80b908dO af4a6c 7168edf175edf6ee 16 e790195890f17a68 4d08f264c100ca95 3cd646 bc887773a6ad97a7 17 eefeff5cbl4le2b4 6861cc689dae88ae e56c50 5327ba2e10b9f03d Le votant, M. Alpha, fait le choix du vote � Bleu � parmi les choix � rouge �, � vert �, � bleu �, � jaune �. Ce choix est enregistré par la borne. 5 Ensuite, pour chacune des possibilités de vote, la borne transmet à M. Alpha un certificat. Parmi ces certificats, représentés sur les figures 1 à 4, et connaissant son � code votant � (a496fe), M. Alpha peut facilement identifier le certificat correspondant à son vote. II est par contre impossible à un tiers d'identifier 2944907 -30- parmi les certificats lequel correspond au vote de M. Alpha, le tiers ne pouvant connaître le � code votant � sans que M. Alpha l'en ait informé. À l'issue de la session de vote, le centre d'administration des votes publie 5 la � liste des votes � et la � liste de contrôle � reporté dans les tableaux 4 et 5 ci-après : Code de contrôle Vote Nature du vote 1 0c70c0672f67352b Rouge Réel 2 196e985087186602 Vert Réel 3 2e7908140efc413d Rouge Réel 4 3514c0280f6af400 Bleu Réel 5 3f89addd44ef337e Bleu Réel 6 5327ba2e10b9f03d Rouge Virtuel 7 6fb387dd6abdOb46 Rouge Réel 8 7168edfl75edf6ee Jaune Virtuel 9 75cb3f9348fbb40e Vert Réel 10 7b2b07a1747b20fc Vert Virtuel 11 8fbf054982166d7b Jaune Réel 12 9e4a5ae6511 ef9b5 Bleu Virtuel 13 bc887773a6ad97a7 Vert Réel 14 be7676f4f578da9a Rouge Virtuel 15 ebdO37969cl 91 dba Vert Virtuel 16 f44cdbc82a144588 Jaune Virtuel 17 f6ae98ce3d3f4c6O Bleu Virtuel Code votant Vote 1 Od0043 Rouge 2 354d42 Vert 3 3a5fb8 Rouge 4 3cd646 Vert 5 442802 Rouge 6 881788 Bleu 7 8e07e4 Rouge 8 91 a5fb Bleu 9 a496fe Bleu 10 af4a6c Jaune 11 b36f2a Vert 12 ba8ded Vert 13 bf3dae Jaune 14 c3b7e4 Vert 15 d9e855 Jaune 16 e56c50 Rouge 17 ff3e9e Bleu 10 15 25 2944907 - 31 - M. Alpha peut constater dans la � liste de vote � que le � vote � correspondant � code votant � a496fe est � Bleu �. Le vote du votant � alpha � a donc bien été pris en compte et n'a pas été modifié. 5 On constate officieusement, dans la � liste de correspondance � figurant au tableau 3, que le � code de contrôle � associé � code votant � a496fe est 3514c0280f6af400. En se reportant à la � liste de contrôle � présentée dans le tableau 5, la nature du vote associé au � code de contrôle � 3514c0280f6af400 est bien marquée dans la liste comme étant de type � réel �. 10 En pratique, pour vérifier l'intégrité du lien numérique entre la � liste des votes � et la � liste de contrôle � une personne habilitée, peut prendre au hasard un � code de base � dans la liste de correspondance (par exemple 9e02d85e00194ccc) et obtenir le � code de camouflage � correspondant (dans 15 cet exemple aa39846edd2007c6). Ce couple a permis de générer le � code votant � (442802) et le � code de contrôle � (be7676f4f578da9a) qui sont également communiqués à la personne habilitée. En se rapportant à la � liste des votes � cette personne peut se rendre 20 compte que le � code votant � (442802) est associé au choix � rouge �. Cette personne peut également constater, en se référant à la � liste de contrôle � que le vote associé au � code de contrôle � (be7676f4f578da9a) est � virtuel � et qu'il est associé au choix � rouge � exactement comme cela était mentionné dans � liste de votes �. 2944907 - 32 - Cette personne peut encore constater que ce vote virtuel était mentionné dès l'origine dans la � liste virtuelle � représentée par le tableau 1, cette liste ayant été publiée avant le début des votes. II peut aussi vérifier que l'empreinte de la � liste virtuelle �, publiée avec ladite liste, est bien la même que celle 5 imprimée sur ses certificats de vote. Afin d'illustrer le fonctionnement du procédé objet de l'invention du point de vue logicielle, prenons l'exemple suivant de l'implémentation des fonctions présentes dans le programme informatique enregistré dans la carte DSBV. 10 La carte DSBV dispose donc d'un programme interne décomposé en fonctions permettant de mettre en oeuvre les différentes étapes du procédé de vote électronique sécurisé objet de l'invention. Ces fonctions peuvent être exécutées alternativement par la borne de vote électronique ou par le lecteur du 15 centre d'administration des votes suivant différents état de la carte DSBV. Dans cet exemple, la carte DSBV passe par trois états successifs : - état n°1 : session de vote en attente. Cet état est l'état de la carte après sa création par le centre d'administration des votes. - état n°2: session de vote en cours. Le directeur du bureau de vote 20 commande le début de la session de vote. La fonction d'initialisation de la carte est lancée. Les votes virtuels sont créés et certifiés, l'empreinte de la liste des votes virtuels est créée. La carte passe de l'état � session de vote en attente � à l'état � session de vote en cours �. - état n°3: session de vote clôturée. Le directeur du bureau de vote 25 commande la clôture de la session de vote. La carte passe de l'état � session de vote en cours � à l'état � session de vote clôturé �. La carte ne peut pas revenir dans un état antérieur. 2944907 - 33 - Dans l'état � session de vote en attente �, seulement une fonction peut être exécutée par la borne : c'est la fonction � ouverture de la session�. Le paramètre d'entrée permettant l'ouverture de la session est le code PIN de la 5 carte que doit entrer le directeur du bureau. La saisie du code PIN engendre : - la création des � votes � virtuels, - l'archivage de la liste initiale des � codes de contrôle �, - le passage de la carte dans l'état � session de vote en cours �. Les paramètres de sortie, créés à l'ouverture de la session sont le � code 10 votant �, le code de contrôle et le � vote � associé à chaque votant virtuel. Dans l'état � session de vote en cours �, trois fonctions peuvent être exécutées par la borne : - la fonction � action de vote initiée� : 15 o Le paramètre d'entrée permettant l'exécution de cette fonction est l'empreinte par hachage de la liste des votes en cours stockée dans la ou les mémoires de sécurité de la borne de vote. La fonction calcule l'empreinte par hachage de la liste des votes en cours stockée dans la carte DSBV et la compare avec l'empreinte passée en paramètre pour 20 vérifier que les listes sauvegardées dans la borne sont bien identiques aux listes internes de la carte. o Le paramètre de sortie généré par cette fonction est le � code votant �. - la fonction � action de vote terminée� 25 o Les paramètres d'entrée permettant l'exécution de cette fonction sont le � code votant � généré par la fonction précédente, ainsi que le � vote � saisit par le votant. 2944907 - 34 - • la fonction vérifie que le � code votant � correspond bien au vote en cours. • la fonction signe les données � code votant � et � vote � avec sa clé privée. 5 • la fonction choisit de manière aléatoire une ligne L1 vide dans la � liste des codes de base et des codes camouflage�, une ligne L2 vide dans la � liste des votes � et une ligne L3 vide dans la � liste de contrôle �. En pratique une position aléatoire entre 0 et 1999 est choisie afin de ne pas laisser de trace permettant de retrouver un vote 10 chronologiquement. Ces listes sont présentées sous la forme d'un tableau de n lignes, n correspondant au nombre de choix possibles dans le vote. • la fonction stocke dans la ligne choisie de chaque liste l'expression du vote (� code votant �, � vote �, signature dans la ligne L). 15 o Les paramètres de sortie générés par cette fonction sont : • La ligne L1 comprenant le � code de base � et le � code de camouflage � crypté, • La ligne L2 comprenant le � code votant �, � le vote �, et la signature du vote, 20 • La ligne L3 comprenant le � code de contrôle �. - la fonction � clôture de la session de vote � : o Les paramètres d'entrée permettant l'exécution de cette fonction sont le code PIN de la carte que doit saisir le directeur du bureau de vote, et 25 l'empreinte par hachage de la liste des votes en cours stockée dans la ou les mémoires de sécurité de la borne. 2944907 - 35 - • la fonction vérifie une dernière fois l'empreinte par hachage final des listes, • la carte utilise sa clé d'authentification pour créer la signature finale de l'empreinte des listes complètes, 5 • passage de la carte dans l'état � session de vote clôturé �. o Le paramètre de sortie généré par cette fonction est la signature finale par la carte de l'empreinte des listes par hachage. Dans l'état � session de vote clôturée �, deux fonctions peuvent être 10 exécutées par tout équipement du centre d'administration des votes : - la fonction � lecture liste résultat � : o Le paramètre d'entrée permettant l'exécution de cette fonction est l'indication de la liste demandée o Le paramètre de sortie généré par cette fonction est la transmission 15 de la liste demandée. Chacune des trois listes associatives peut être lue intégralement. - la fonction � vérification d'une ligne de vote � : o Le paramètre d'entrée permettant l'exécution de cette fonction est le 20 � code de camouflage � crypté. o Le paramètre de sortie généré par cette fonction est la transmission du � code de camouflage � en clair. Avec le code de base et le code de camouflage, on peut déduire le code de vote et le code de contrôle et vérifier que ceux-ci figurent bien dans les deux listes correspondantes. 25 Le contenu des listes de sécurité est communiqué par télétransmission au � centre d'administration des votes � avec la signature finale de la carte. Le 2944907 - 36 - � centre d'administration des votes � peut contrôler avec la clé publique l'authenticité des données de la carte DSBV. La carte DSBV est signée manuellement par le directeur du bureau de vote et renvoyée physiquement au � centre d'administration des votes � constituant ainsi la preuve physique de 5 l'intégrité du vote. Revendications1. Procédé de vote électronique sécurisé dans lequel, pour chaque votant réel : - on génère un � code votant � unique aléatoire associé au votant, - on informe le votant du � code votant � généré, - on enregistre le � vote � du votant, - on stocke dans une mémoire le couple � vote � et � code votant � associé au votant, - on transmet au votant le couple � vote � et � code votant � qui lui est associé, caractérisé en ce que : - on sélectionne aléatoirement dans la mémoire, pour chaque possibilité de vote différente du � vote � enregistré qui est associé au votant, un autre couple � vote � et � code votant �, - on transmet au votant les autres couples � vote � et � code votant � sélectionnés. 2. Procédé selon la revendication 1 dans lequel, avant le premier vote, et une ou plusieurs fois pour chaque possibilité de vote : - on génère un � code votant � aléatoire unique associé à un votant virtuel, - on stocke le couple � vote � et � code votant � associé au votant virtuel dans la mémoire. 3. Procédé selon la revendication 2 dans lequel, on publie une � liste des votes � unique répertoriant les couples � vote � et � code votant � stockés dans la mémoire, de manière à permettre à chaque votant de vérifier individuellement l'exactitude de leur � vote �. 2944907 - 38 - 4. Procédé selon la revendication 3 dans lequel, - on génère, pour chaque � code votant �, un � code de contrôle � lié numériquement audit � code votant � au moyen d'un procédé de chiffrage numérique, 5 - on publie une � liste de contrôle � unique répertoriant le type � réel � ou � virtuel � du votant, associé au couple � vote � et � code de contrôle �, de manière à pouvoir vérifier l'extraction des � votes � virtuels dans le décompte final des � votes � tout en rendant impossible l'identification du � code votant � associé aux votants virtuels. 10 5. Procédé selon la revendication 4 dans lequel, on publie préalable ment au début des � votes � réels, une � liste virtuelle � répertoriant les couples � vote � et � code de contrôle � associés aux votants virtuels, de manière à pouvoir vérifier à postériori sur la � liste de contrôle � que les 15 � votes � virtuels sont restés inchangés au cours des votes. 6. Procédé selon l'une des revendications 4 ou 5 dans lequel : - on créé une � liste virtuelle � répertoriant les couples � vote � et � code de contrôle � associés aux votants virtuels, 20 - on génère une empreinte numérique de la � liste virtuelle � au moyen d'une fonction de hachage numérique, - on transmet l'empreinte numérique au votant, - on publie la � liste virtuelle � avec son empreinte numérique régénérée immédiatement avant ladite publication de manière à pouvoir vérifier que 25 ladite empreinte numérique est restée inchangée au cours des votes. 7. Procédé selon l'une des revendications précédentes, dans lequel : - on génère aléatoirement un � code de base � et un � code de 30 camouflage �, - on réalise un hachage numérique du � code de base � concaténé au � code de camouflage � pour générer le � code votant �, 2944907 - 39 - - on réalise un hachage numérique du � code de camouflage � concaténé au � code de base � pour générer le � code de contrôle �. 8. Procédé selon la revendication 7 prise en combinaison avec la 5 revendication 4, dans lequel on détermine le � code votant � et son � code de contrôle � associé à partir d'un � code de base � pris aléatoirement et de son � code de camouflage � associé de manière à vérifier l'intégrité du lien numérique créé entre la � liste de contrôle � et la � liste des votes �. 10 9. Procédé selon l'une des revendications précédentes dans lequel pour transmettre au votant les couples � vote � et � code votant � : - on imprime chaque couple sur un certificat distinct, - on délivre les certificats au votant. 15 10. Borne de vote électronique sécurisé comprenant : - un moyen pour générer un � code votant � unique aléatoire associé au votant, - un moyen pour informer le votant du � code votant � généré, - un moyen pour enregistrer le � vote � du votant, 20 - un moyen pour stocker le couple � vote � et � code votant � associé au votant dans une mémoire, - un moyen pour transmettre au votant le couple � vote � et � code votant � qui lui est associé, caractérisé en ce que ladite borne comprend en outre : 25 - un moyen pour sélectionner aléatoirement dans la mémoire, pour chaque possibilité de vote différent du � vote � enregistré qui est associé au votant, un autre couple � vote � et � code votant �, - un moyen pour transmettre au votant les autres couples � vote � et � code votant � sélectionnés. 30 2944907 - 40 - 11.Carte à puce configurée pour être insérée dans un lecteur de carte intégré à la borne de vote électronique selon la revendication 10, caractérisée en ce que ladite carte comporte : - une mémoire dans laquelle est stocké un programme décomposé en 5 fonctions permettant de mettre en oeuvre les étapes du procédé conforme à l'une des revendications 1 à 9, - un microprocesseur intégré configuré pour exécuter les fonctions dudit programme. 10 12. Carte à puce selon la revendication 11, caractérisée en ce que sa mémoire comporte une zone sécurisée uniquement accessible par le microprocesseur intégré à ladite carte et dans laquelle sont stockés les � codes votant � et les � votes �.