Partie III Applications 157

7.3 Nouveau système de vote électronique

7.3.4 Schéma de vote

En prenant les logarithmes partiels, il s’ensuit que ( z = loggi

1ui1 + em1 modNi1 z = loggi

2ui2 + em2 modNi2

Comme0≤z < 2k,0≤emi < A×2`(2k)nous obtenons−2k <−A×2` < z−emi <2k, il existeε1etε2dans{0,1}tels que les égalités suivantes sont vérifiées dans les entiers :

( z = loggi

1ui1 + em1 − ε1N1

z = loggi

2ui2 + em2 − ε2N2

Par conséquent, sim1 6=m2,e= (logui1 −logui2 −ε1Ni12Ni2)/(m2−m1), avec probabilité au plus4/A. Aprèsttours, cette probabilité décroit à(4/A)t+ε, oùεest négligeable.

Zero-Knowledge.Comme dans la preuve précédente, la même simulation fonctionne. Cependant, comme le simulateur tire uniformémentzdans[0,2k[et non dans[me,2k+me[, seule une indistinguabilité

sta-tistique peut être atteinte. ut

La phase de vote

Considérons un votant d’une autorié locale avec les clés publiquespk, pki, pki,j qui souhaite voter pour lem-ième candidat. Il prépare un bulletin de la manière suivante :

1. Il télécharge à partir du tableau de bord les 3 clés publiquespk, pki, pki,jde sa zone.

2. En utilisant chaque clé publique, il chiffre l’entier Mm avec le schéma de Paillier et génère les chiffrésCn,CretC`respectivement avec la clé de l’autorité nationale, régionale et locale.

3. Il génère des preuves pour convaincre n’importe quel vérifieur que chaque chiffré représente un vote valide, i.e. un entier Mm avec m ∈ {1, . . . , p}. Ceci est fait en utilisant la preuve que le message est dans un ensemble donné.

4. Il génère une preuve pour convaincre n’importe quel vérifieur que les trois chiffrés représentent le même vote. Ceci est fait en utilisant les preuves d’égalité des clairs. On peut remarquer qu’une telle preuve est correcte parce que les preuves précédentes garantissent que la taille du message chiffré est bornée.

Calcul du résultat du vote

Dans cette sous-section, nous présentons le calcul du total du vote. Nous décrivons d’abord le tableau public des autorités locales auquel tous les électeurs peuvent accéder, par exemple, à travers le site web de l’autorité localeAi,j.

Nom C` Cr Cn Preuves Signature Signature

du TTS

Droits

Electeur 1 gvi,ji,j,1 givi,j,1 gvi,j,1 R

Electeur 2 gvi,ji,j,2 givi,j,2 gvi,j,2 R

R

Electeurk gvi,ji,j,k givi,j,k gvi,j,k R/W

R

Electeur` gvi,ji,j,` givi,j,` gvi,j,` R

Somme de Ai,j

P

kvi,j,k Q

kgvii,j,k Q

kgvi,j,k R

FIG. 7.2: Tableau des bulletins de vote d’une autorité locale.

La figure 7.2 représente un tableau de bord où lek-ième électeur peut lire et écrire dans sa propre ligne mais ne peut que lire dans les autres colonnes.

Les votants écrivent leur nom avec leur certificat, les trois votes et les preuves. Ensuite, ils signent les données de leur ligne et le vote est signé par le serveur de temps de confiance TTS.

Quand le système de vote est fermé, les autorités locales doivent vérifier toutes les preuves et les signatures des utilisateurs et du TTS. Puis, les autorités localesAi,jcalculent le produit des votes corrects dans les colonnes 2 à 4. Ensuite, elles agissent comme le combineur dans le cryptosystème à seuil de Paillier pour le premier produit qui correspond à leur clé publique. Le déchiffrement peut être surveillé par des personnes externes car le processus de déchiffrement est publiquement vérifiable.

Autorités locales Vj,k Q

j,kCr Q

j,kCn Signature d’autorités

Droits

Aut. locale 1 P

kvi,1,k Q

kgivi,1,k Q

kgvi,1,k R

Aut. locale 2 P

kvi,2,k Q

kgivi,2,k Q

kgvi,2,k R

R

Aut. localej P

kvi,j,k Q

kgivi,j,k Q

kgvi,j,k R/W

R

Aut. locale` P

kvi,`,k Q

kgivi,`,k Q

kgvi,`,k R

Somme deAi P

j,kvi,j,k Q

j,kgvii,j,k

⇓ déchiffre P

j,kvi,j,k Q

j,kgvi,j,k R

FIG. 7.3: Tableau des résultats de l’autorité régionale.

Autorités régionales Vi,j,k Q

i,j,kCn Signature Aut.

Droits

Aut. régionale 1 P

j,kv1,j,k Q

j,kgv1,j,k R

Aut. régionale 2 P

j,kv2,j,k Q

j,kgv2,j,k R

R

Aut. régionalei P

j,kvi,j,k Q

j,kgvi,j,k R/W

R

Aut. régionale` P

j,kv`,j,k Q

j,kgv`,j,k R

Somme deA P

i,j,kvi,j,k Q

i,j,kgvi,j,k

⇓ déchiffre P

i,j,kvi,j,k

R

FIG. 7.4: Tableau des résultats de l’autorité nationale.

Les totaux locaux sont publiés dans le tableau de bord de l’autorité régionaleAi, dans la colonne 1 par les autorités locales. Dans les colonnes 2 et 3, l’autorité régionale écrit le produit des votes des électeurs de chaque autorité locale dans son tableau de résultat. Les différentes autorités Ai,j qui dépendent de l’autoritéAiont les mêmes droits que les utilisateurs sur le tableau de bord précédent. La colonneC`est remplacée par le total déchiffré. Les autorités localesAi calculent la somme dans la première colonne, les produits des colonnes 2 et 3, et déchiffrent le produit final dans la colonne 2 avec le processus à seuil comme les autorités locales. A la fin, ils vérifient que les totaux calculés par les deux méthodes. Ils écrivent sur le tableau de bord de l’autorité nationale leur somme dans la colonne 1. Dans la colonne 2, ils écrivent le produit des autorités locales.

L’autorité nationale peut calculer le produit des éléments dans la colonne 2 de son tableau de bord.

Ensuite, il déchiffre ce produit et vérifie si ce résultat est égal à la somme des éléments dans la colonne 1.

Fraudes dans le calcul

Les sous-divisions hiérarchiques fournissent un moyen efficace de vérification publique distribuée des résultats. Chaque votant est capable de vérifier si son vote a été pris en compte dans le total local.

Ensuite, il exécute récursivement des vérifications similaires qui le convainquent que le niveau supérieur a correctement pris en compte le total local. Finalement, il a la garantie que ce vote fait partie du résultat national.

De plus, si une erreur est détectée par une autorité donnée, le sous-résultat faux sera éliminé du total et sera ultérieurement recalculé.

Complexité pratique du schéma

Considérons la complexité pratique de la phase de vote décrite dans cette section. Un vote est com-posé de trois chiffrésCn,CretC`et de preuves de validité. Certaines optimisations peuvent être appli-quées. Par exemple, les mises en gage peuvent être remplacées par leur valeur de hachage comme décrit dans [93].

Notons|H|la taille des mises en gage hachées,|A|la taille des challenges et|N|la taille du module utilisé dans le cryptosystème de Paillier. La taille d’un vote est exactement

4|H|+ 4|A|+ (11 + 9p)|N|

oùpest le nombre de candidats. Par conséquent, la complexité en communication du schéma est linéaire en la taille du module de Paillier, en le nombre de candidats et en le nombre de votants. La complexité de calcul est donc deΘ(p× |N|)multiplications modulaires à la fois pour la génération et la vérification du vote.

Dans les applications pratiques, nous pouvons choisir|H|= 80,|A|= 80et|N|= 1024. Pour un schéma d’élection à 10 candidats, la taille d’un vote est d’environ 12.5 Ko.

Enfin, le découpage entre autorités locales et régionales permet de réduire le coût de calcul d’une seule autoritée. En effet, les vérifications des preuves et des signatures sont réduites car si on adautorités locales et`électeurs, chaque autorité aura en moyenne`/délecteurs à vérifier.

In document Le partage de clés cryptographiques : Théorie et Pratique (Page 169-172)