Solution — aspects techniques

Comment Scrutalis fonctionne, techniquement

Une référence technique complète, avec les équations et les numéros de section de la spécification ElectionGuard 2.0 : chiffrement, preuves à divulgation nulle de connaissance, partage de clé à seuil, chaînage des bulletins. Pas de simplification qui cacherait une limite réelle.

Scrutalis implémente ElectionGuard 2.0 (Microsoft Research) : un groupe multiplicatif Z_p de 4096 bits d'ordre premier Q de 256 bits (spec §3.1.1), le chiffrement exponentiel d'ElGamal, des preuves de Chaum-Pedersen à divulgation nulle de connaissance, un partage de clé à seuil selon le schéma de Pedersen (garants et quorum), et le chaînage de bulletins de la spec §3.4 pour une vérifiabilité de bout en bout. La fonction de hachage H utilisée partout est HMAC-SHA-256 en oracle aléatoire (spec §2.0.0, éq. 105).

Chiffrement des bulletins — ElGamal exponentiel

Chaque réponse possible d'une question (pas seulement celle choisie) est chiffrée sous la clé publique conjointe K : Enc(m, ξ) = (g^ξ mod p, K^(ξ+m) mod p) — spec 2.0.0, éq. 24 — avec m ∈ {0, 1} et ξ un nonce aléatoire tiré dans Z_q.

Chiffrer systématiquement toutes les réponses possibles, et non uniquement celle sélectionnée, est nécessaire : si seule la réponse choisie produisait un chiffré, le simple fait de savoir quelle réponse a été chiffrée révélerait le choix. Ce chiffrement s'exécute exclusivement dans le navigateur du votant, jamais côté serveur.

Preuves à divulgation nulle de connaissance — Chaum-Pedersen

Chaque chiffré est accompagné d'une preuve disjonctive de Chaum-Pedersen établissant qu'il encode une valeur dans l'intervalle valide (0 ou 1), sans révéler laquelle. Une seconde preuve, dite « preuve agrégée », porte sur la somme homomorphe des chiffrés d'une même question : elle garantit que le nombre total de réponses sélectionnées respecte la limite de la question (une seule réponse pour une question à choix unique), ce qu'une preuve par réponse individuelle ne peut pas garantir seule — plusieurs réponses pourraient chacune prouver individuellement 0 ou 1 sans que leur somme soit valide.

Les deux familles de preuves sont séparées par domaine (deux constantes d'un octet distinctes dans le calcul du hachage) afin qu'une preuve de l'une ne puisse jamais être rejouée comme une preuve de l'autre. Ces preuves sont vérifiables par quiconque, sans connaître le vote ni aucun secret.

Dépouillement homomorphe

Les chiffrés ElGamal sont additifs de façon homomorphe : additionner les chiffrés de la même réponse à travers tous les bulletins produit un chiffré unique du total, sans jamais déchiffrer un bulletin individuel. Un seul déchiffrement est nécessaire par réponse possible, à la clôture du scrutin, jamais pendant qu'il est ouvert.

Partage de la clé et déchiffrement à seuil (Pedersen)

Chaque garant se voit attribuer un polynôme aléatoire de degré (quorum − 1) (cérémonie de clés, spec §3.2). La clé publique conjointe est le produit des termes constants de chaque polynôme ; la part secrète de chaque garant est la somme des valeurs de tous les polynômes évaluées à son propre indice (un partage de secret de Shamir). Le déchiffrement combine les déchiffrements partiels d'un quorum de garants, chacun pondéré par son coefficient de Lagrange (évalué en x = 0) pour le sous-ensemble de garants effectivement présent — n'importe quel sous-ensemble de taille égale au quorum fonctionne, pas un sous-ensemble prédéterminé.

Limite documentée, assumée : aujourd'hui, la cérémonie de clés s'exécute dans un seul processus de confiance côté serveur (les polynômes de tous les garants y sont générés ensemble), plutôt que chaque garant générant le sien sur sa propre machine sans jamais transmettre ses coefficients bruts. La propriété de seuil elle-même est réelle et non simulée — la clé conjointe est une vraie somme de secrets indépendants, et le déchiffrement exige réellement un quorum de garants humains, jamais Scrutalis seul — seul l'environnement de génération n'est pas encore distribué. La séparation complète des garants dès la génération est sur la feuille de route.

Chaînage des bulletins et codes de confirmation (spec §3.4)

Chaque bulletin chiffré produit un hachage cryptographique de son contenu (les triplets réponse/pad/donnée de chaque chiffré, triés pour ne jamais dépendre de l'ordre de soumission), puis un code de confirmation qui chaîne ce hachage à celui du bulletin précédent : H(Bi) = H(H_E ; χ_Bi, H(Bi−1)), le premier bulletin d'un référendum chaînant à partir d'une valeur de départ dérivée du hachage de base étendu (H_E) du scrutin.

Ce code de confirmation est remis au votant sur son récépissé, et la chaîne complète d'un référendum est publiée (sans jamais associer un code à l'identité du votant) sur la page de vérification publique. Quiconque peut recalculer indépendamment toute la chaîne à partir des hachages publiés et vérifier qu'elle correspond à ce qui est publié — et que son propre code y figure bien : c'est ce qui permet de détecter qu'un bulletin aurait été inséré, retiré ou réordonné après coup.

Adaptation assumée par rapport à la spec : ElectionGuard chaîne normalement un hachage par question puis un hachage global du bulletin ; Scrutalis n'a pas d'étape intermédiaire « par question » et hache directement l'ensemble trié des chiffrés du bulletin — cryptographiquement équivalent pour la propriété recherchée (toute modification d'une réponse, ou de la réponse à laquelle un chiffré est associé, change ce hachage).

Journal d’audit

Mécanisme distinct du chaînage de bulletins ci-dessus : chaque action administrative (création, ouverture, clôture d'un référendum, etc.) est enregistrée dans un journal chaîné par hachage SHA-256, partitionné par organisation. Modifier ou supprimer une entrée passée casse la chaîne de façon détectable. Ce journal ne contient jamais le contenu d'un vote — seulement le fait qu'une action a eu lieu.

Références

Scrutalis ne réinvente pas de cryptographie maison. ElectionGuard est un protocole ouvert, publié par Microsoft Research, et le mécanisme de chiffrement à seuil qu'il utilise s'appuie sur des travaux académiques publiés et évalués par des pairs depuis les années 1980.

Quatre publications académiques, à l'origine directe des mécanismes décrits sur cette page :

Une question technique sur notre implémentation ?

Notre équipe peut échanger directement avec votre DSI ou votre expertise indépendante.

Scrutalis

Le vote électronique de confiance pour les entreprises comme pour les associations.

Consultation des salariés

Solution

Découvrir Scrutalis