tag:linuxfr.org,2005:/users/battmanuxLinuxFr.org : les contenus de battmanux2013-08-15T17:58:26+02:00/favicon.pngtag:linuxfr.org,2005:Diary/342062013-08-13T17:34:43+02:002013-08-13T17:34:43+02:00Si je devais voter en ligneLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<p>Journal, tu te moques bien de voter. Mais je t'en parle parce que les gens autour de moi ce moque pas mal des enjeux d'internet et… comme ça je garde une trace pour plus tard.</p>
<p>Ce qui suit n'a aucune valeur car je ne l'ai pas encore traduit en code.</p>
<p>Alors, je voudrais un système de vote en ligne qui permette d'organiser des votes à bulletin secret.<br>
Je demande à Wikipedia et il me parle de <a href="http://fr.wikipedia.org/wiki/Vote%20%C3%A9lectronique" title="Définition Wikipédia">Vote électronique</a>. <br>
Oups, c'est pas du tout ce que je cherche. Ce truque est d'ailleurs plutôt l'opposé de ce que je cherche. J'ai trouvé mon ennemi, il me reste à trouver mon objectif.</p>
<p>Donc, Wikipedia encore, page <a href="http://fr.wikipedia.org/wiki/Vote" title="Définition Wikipédia">Vote</a>. Je veux pouvoir voter sur un sujet quelconque depuis mon ordinateur en m'assurant que le vote permet:<br>
* Décidabilité<br>
* Unicité du vote<br>
* Secret<br>
* Transparence<br>
* Vérifiabilité<br>
* Attractivité<br>
* Non participation<br>
* Quorum et majorité</p>
<p>Bon, soyons réel (cf. Getting Real de 37signals), si j’essaie de faire tout ça du premier coup, je ne vais jamais rien faire. Donc faisons trois groupes: ce qui m'intéresse, ce qui devra être pris en charge par les utilisateurs, et ce dont on se fou pas mal.</p>
<p>Ce qui m'intéresse:<br>
* Secret<br>
* Transparence<br>
* Vérifiabilité</p>
<p>le reste est dans l'autre liste (héhé! j'évite tout troll sur le fait que l'on ne peu se foutre de ce qui concerne le vote)</p>
<p>Bon, l'idée c'est que si quelqu'un fausse les résultats, ça doit se voir tout de suite, mais que les bulletins doivent rester secret.</p>
<p>Alors voila ce que je vais coder (plus tard… me connaissant, beaucoup plus tard):</p>
<p><strong>Cas d'utilisation:</strong><br>
M. Michu voudrait soumettre une idée à décision dans l'association "InutilsConsepts" dont il est membre actif.<br>
Depuis bien avant 2038 tous les membres ont un accès constant à Internet. Il voudrait donc se passer de l'aspect paperasse, permanence et autre contraintes de dépouillement de la méthode papier. Par contre, il est inacceptable d'en perdre les avantages.</p>
<p>Il utilise donc le qui est un service de base fourni par internet.</p>
<p>Voici ce que fait M. Michu:<br>
1/ M.Michu créer un nouveau vote.<br>
2/ M.Michu défini la date limite de vote ainsi que les autres critères de validité du vote.<br>
3/ M.Michu inscrit les participants au vote et leur transmet les coordonnées de la chambre de vote (plus adresse des forums/wiki/… qui où débattre du sujet)<br>
4/ Chaque votant Vote<br>
5/ La date limite arrive et M.Michu Active la phase de dépouillement.<br>
6/ Chaque votant voit les résultats et à la confirmation que son vote n'est pas altéré dans les résultat. Il a la certitude qu'il n'y a pas eu de 'triche' </p>
<p><strong>Voici comment ce service fonctionne sous le capot:</strong><br>
1/ M.Michu créer une paire clef privé/clef publique<br>
La clef publique servira a encoder le vote, le clef privé sera divulgué pour le dépouillement<br>
Un identifiant unique (UID) est généré par votant, c'est le droit de vote.<br>
2/ Chaque votant reçoit la liste des autres votants (coordonnées IP + UID), la clef de vote (publique) et sait quel est l'UID qui lui est attribué.<br>
3/ Les votants se mélangent leurs UID en mode peer-to-peer (permutation aléatoire) de telle sorte que personne ne sait qui a quel UID à la fin, mais chaqun en a un qui lui est attribué.<br>
4/ Chaque votant encode son UID plus le vote de son choix. (Il vote)<br>
5/ Les votants se partagent les bulletins en mode peer-to-peer de telle sorte que personne ne sait qui à générer quel enveloppe.<br>
6/ Lorsque tous les votants ont toutes les enveloppes, M.Michu divulgue la clef privé, ce qui permet à tous de dépouiller et de vérifier que leur propre bulletin n'a pas été altéré.</p>
<p>L'histoire de la clef, c'est surtout pour être sûre que les petits malins ne fassent pas foirer le vote en commençant a dépouiller avant la fin. En effet, si les résultats ne correspondent pas à leur choix, ils pourraient injecter des faux bulletins et rendre le scrutin invalide. </p>
<p>L'aspect secret est en fait assuré par le mélange des UID avant et après le vote.</p>
<p>A la fin , tout le monde a toutes les pièces du puzzle excepté la séquence d'échange des UID. => transparence + Vérifiabilité,</p>
<p><strong>L'idée de cette séquence de mélange:</strong><br>
L'idée de cette séquence est la suivante: tout le monde est prêt à permuter son UID mais reste en attente. Chacun à choisi une délai aléatoire secret avant de proposer une permutation. Le premier qui atteint son délai débute les hostilités: il propose à un participant au hasard de permuter son UID avec lui. Celui-ci accepte et reproduit la démarche mais en faisant suivre son propre certificat à un tiers et celui de qu'il à reçu à un autre tiers. </p>
<p>L'idée est que seul le premier sait qu'il est le premier. Tous les suivants ne savent pas si ils reçoivent le le bulletin de leur paire ou celui d'un autre.</p>
<p>Bon, là il faut que j'aille dans la piscine avec mes enfants, c'est les vacances après tout. Du coup, comme d'habitude je ne prends pas le temps de me relire et je laisse toute cette imperfection pour une autre fois. </p>
<p>A bientôt journal.</p>
<p>PS: Si tout ça existe déjà et en mieux, fait moi signe. </p><div><a href="https://linuxfr.org/users/battmanux/journaux/si-je-devais-voter-en-ligne.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/99350/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/battmanux/journaux/si-je-devais-voter-en-ligne#comments">ouvrir dans le navigateur</a>
</p>
battmanuxhttps://linuxfr.org/nodes/99350/comments.atom