'
&
$
%
UNIVERSITÉ DE NGAOUNDÉRÉ
Faculté des Sciences
Département de Mathématique et
Informatique
THE UNIVERSITY OF NGAOUN...
Dédicace
Ce mémoire est dédié à mes parents
MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
Remerciements
Je rends grâce à Dieu, pour avoir rendu possible ce travail.
C’est avec une immense joie que j’adresse mes p...
Résumé
Voter est un devoir citoyen dans toutes sociétés modernes. C’est un acte fondamental
qui s’avère nécessaire lorsqu’...
Abstract
Voting is a civic duty in all modern societies. It is a fundamental act that is necessary
when it comes to make a...
Table des matières
Dédicace i
Remerciements ii
Résumé iii
Abstract iv
Table des matières vi
Liste des figures vi
Liste des ...
Liste des figures vi
2 PRÉSENTATION DE QUELQUES SCHÉMAS DE VOTE ÉLECTRONIQUE 36
2.1 Schéma de Juels, Catalano et Jakobsson ...
Liste des figures
1.1 Mixnet de Chaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2 Mixnet à rec...
Liste des tableaux
1.1 Tableau récapitulatif des propriétés d’un e-vote et lien cryptographique . 25
1.2 Points de la cour...
INTRODUCTION GÉNÉRALE
Le vote selon Connes [5] est une technique permettant à un groupe de personnes
d’opérer un choix col...
INTRODUCTION GÉNÉRALE 2
facilite l’achat de vote à grande échelle en permettant aux acheteurs d’automatiser le
processus"....
INTRODUCTION GÉNÉRALE 3
courbes elliptiques dans leur système de sécurité. De même, le navigateur web Mozilla
met en place...
CHAPITRE 1
PRÉLIMINAIRES
Dans ce chapitre, nous présentons d’abord les généralités sur le vote électronique,
et sa définiti...
1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 5
1. La facilité et la flexibilité du vote pour l’électeur : l’électeur n’a plus ...
1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 6
1.1.1.1 Types de votes
Un vote dépend du type d’élection. Sa structure se défin...
1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 7
Après avoir parlé des types de vote, il est maintenant question de montrer com...
1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 8
3. Phase de vote : les votants sont invités à procéder à la construction et la...
1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 9
9. Receipt-freeness (Sans Reçu) : elle représente une forme forte de confidenti...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 10
1.1.4.2 Crédit anonyme
Il permet de prouver une propriété ou un droit lié à son...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 11
1.2.1.3 L’anonymat
Il permet de dissimuler l’identité de l’électeur lorsqu’il é...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 12
Chiffrement homomorphique
Système très souvent utilisé pour effectuer des opéra...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 13
Génération des clés
Chaque entité crée la clé publique et la clé privée corresp...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 14
comme suit :
C = (gk
, gm
hk
)
Soient m1 et m2 deux messages chiffrés comme c1 ...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 15
1.2.2.2 Primitives d’anonymat
Les mixnets, les signatures aveugles et le crédit...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 16
Mixnet
MMMA
MMMB
MMMC
MMMD
MMA
MMB
MMC
MMD
MB
MC
MD
MA
B
D
C
A
B
D
C
A
Mixeur M...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 17
Mixnet
MA
MB
MC
MD
MA MB
MC
MD
MA
Mixeur Mixeur Mixeur
MB
MC
MD
MB
MD
MC
MA
MB
...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 18
c. Crédit anonyme
C’est un outil permettant de rendre le vote d’un électeur ano...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 19
1.2.2.4 Primitives d’authentification et de vérification
Primitives d’authentifica...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 20
b. Preuve à divulgation nulle de connaissance d’égalité du logarithme dis-
cret...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 21
et va envoyer ∀i, le point (xi, yi) à l’entité Pi. Chaque entité Pi possède don...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 22
pour une seule de déchiffrer un message.
Un cryptosystème est dit distribué (Th...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 23
Protocole de génération de clé
1. Chaque autorité Ai choisit un polynôme aléato...
1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 24
présenté à la Figure 1.5. Les entités déchiffrent ensemble le message chiffré (...
1.3. COURBES ELLIPTIQUES 25
1.2.3 Propriétés du vote et lien cryptographique
Dans cette partie nous faisons un récapitulat...
1.3. COURBES ELLIPTIQUES 26
a1y = 3x2
+ 2a2x + a4
2y + a1x + a3 = 0
Autrement dit si les dérivés partielles en x et en y d...
1.3. COURBES ELLIPTIQUES 27
la courbe E est définie sur k parce-que les coefficients ai de l’équation (1.13) sont des
élémen...
1.3. COURBES ELLIPTIQUES 28
E. Le symétrique de R par rapport à l’axe des abscisses [2] P ∈ E(k) appelé Le
doublement de P...
1.3. COURBES ELLIPTIQUES 29
La démonstration mathématique de ces différents points est détaillée dans [12].
Les formules a...
1.3. COURBES ELLIPTIQUES 30
Nombre de points d’une courbe elliptique définie sur un corps fini
Soit E une courbe elliptique ...
1.3. COURBES ELLIPTIQUES 31
Généralement, on va choisir des courbes sur Fq telles que #E(Fq) = hp avec h petit
appelé cofa...
1.3. COURBES ELLIPTIQUES 32
connaissant l’entier k et le point P, il est facile de calculer Q = [k] P mais connaissant
Q e...
1.3. COURBES ELLIPTIQUES 33
Propriété homomorphique
Ce cryptosystème admet une propriété homomorphique additive :
Supposon...
1.3. COURBES ELLIPTIQUES 34
niveau de sécurité le système cryptographique RSA utilise des clés environ 6 fois plus
longues...
1.3. COURBES ELLIPTIQUES 35
Choix de point générateur
Après avoir choisi la courbe elliptique, il est indispensable de dét...
CHAPITRE 2
PRÉSENTATION DE QUELQUES
SCHÉMAS DE VOTE
ÉLECTRONIQUE
Trois approches dominent la littérature scientifique conce...
2.1. SCHÉMA DE JUELS, CATALANO ET JAKOBSSON 37
La supposition selon laquelle la phase d’enregistrement est inattaquable es...
2.1. SCHÉMA DE JUELS, CATALANO ET JAKOBSSON 38
FIGURE 2.2 – Phase de vote du schéma de Juels et al
Phase de décompte Les a...
2.1. SCHÉMA DE JUELS, CATALANO ET JAKOBSSON 39
FIGURE 2.3 – Phase de décompte du schéma de Juels et al
2.1.3 Vérification d...
2.1. SCHÉMA DE JUELS, CATALANO ET JAKOBSSON 40
FIGURE 2.4 – Schéma de Juels, Catalano et Jakobsson
(1) Receipt-freeness (s...
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Elaboration of E_voting system based on elliptic curve cryptography
Prochain SlideShare
Chargement dans…5
×

Elaboration of E_voting system based on elliptic curve cryptography

703 vues

Publié le

Master thesis in electronique voting system

Publié dans : Sciences
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
703
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
52
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Elaboration of E_voting system based on elliptic curve cryptography

  1. 1. ' & $ % UNIVERSITÉ DE NGAOUNDÉRÉ Faculté des Sciences Département de Mathématique et Informatique THE UNIVERSITY OF NGAOUNDERE Faculty of Science Department of Mathematics and Computer science Mémoire de Master Recherche Mention : Ingénierie Informatique Parcours : Systèmes et Logiciels en Environnements Distribués ÉLABORATION D’UN SYSTÈME DE VOTE ÉLECTRONIQUE À CRÉDIT ANONYME RÉSISTANT À LA COERCITION Présenté par AMBASSA PACÔME LANDRY Matricule : 05J460FS Titulaire d’une Licence en Sciences et Techniques de l’Informatique Option : Architectures et Réseaux Soutenu publiquement le 11 Janvier 2013 Devant le jury constitué de : David BEKOLLE, Professeur Université de Ngaoundéré Président Daniel TIEUDJO, Maître de Conférences Université de Ngaoundéré Directeur Jean Michel NLONG II, Chargé de Cours Université de Ngaoundéré Examinateur Année Académique 2010 – 2011
  2. 2. Dédicace Ce mémoire est dédié à mes parents MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  3. 3. Remerciements Je rends grâce à Dieu, pour avoir rendu possible ce travail. C’est avec une immense joie que j’adresse mes premiers remerciements à mon en- cadreur, Pr TIEUDJO Daniel, qui a su m’initier à la recherche. Je tiens à le remercier pour sa disponibilité et sa rigueur dans le travail ainsi que pour m’avoir accordÃl’ une grande liberté nécessaire à l’accomplissement de ce travail, tout en gardant un regard critique et avisé. J’adresse également mes remerciements au chef du Département de Mathématiques et Informatique de la Faculté des Sciences, Pr David BEKOLLE. J’exprime toute ma gratitude et ma reconnaissance à l’endroit des enseignants du dé- partement de Mathématiques et Informatique de la Faculté des Sciences de l’Université de Ngaoundéré, en particulier : Dr NLONG, Dr DAMAKOA, Dr YENKE, Dr HOUPA, Dr TCHOUA, Dr KAMGANG et le Dr KAMLA pour ses remarques pendant nos séminaires. J’exprime toute ma gratitude à Monsieur DIBAI, mon professeur de Physique en classe de terminale D qui n’est pas étranger à ma décision d’entreprendre des études en Informatique. La famille et les amis sont indispensables lors d’un travail comme celui ci. Je remer- cie particulièrement mes parents pour m’avoir donné la chance de faire des études dans de très bonnes conditions et pour leur soutien. Je voudrais remercier mes soeurs, mes frères ainsi que tous mes amis. Merci à tous mes camarades de promotion, pour avoir affronté ensemble toutes les difficultés. Merci à tous mes camarades du laboratoire de Mathématiques et Expérimentale (LME), TCHAWA, NANGA , HABIBATOU, NZOMOU, DJIODOP, CIDJEU, FOTSO, KOWE, FOHOUE, TCHAWU,TOUOMGUEM, DJATCHA, FOTSA. Vos remarques et suggestions ont contribué à l’amélioration de ce travail. Merci à NLEND Éliane de partager quotidiennement mes joies et mes peines. Enfin, je remercie tous ceux dont le nom n’apparait pas dans cette page et qui ont contribué d’une manière ou d’une autre à la réalisation de ce travail. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  4. 4. Résumé Voter est un devoir citoyen dans toutes sociétés modernes. C’est un acte fondamental qui s’avère nécessaire lorsqu’il faut faire un choix. Le vote électronique est un système électoral qui permet de s’exprimer de manière anonyme dans un environnement in- formatique. Dans ce travail, nous concevons un nouveau schéma de vote électronique qui assure la completude et est résistant à la coercition. En effet, afin de satisfaire la propriété de résistance à la coercition nous définissons un crédit anonyme qui est un jeton cryptographique représenté par une signature agrégée transmise à l’électeur lors de la phase d’enregistrement par les autorités. Ce schéma utilise les systèmes crypto- graphiques sur les courbes elliptiques et assure les propriétés étendues d’un vote élec- tronique. Finalement, nous illustrons numériquement le schéma proposé à l’aide de la plateforme SAGE. Mots clés : Vote électronique, Résistance à la coercition, Crédit anonyme, Courbe elliptique. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  5. 5. Abstract Voting is a civic duty in all modern societies. It is a fundamental act that is necessary when it comes to make a choice. Electronic voting is an electoral system that allows this choice anonymously in a computer environment. In This work we formulate a new elec- tronic voting scheme. Our scheme is complete and coercion resistant electronic voting. To satisfy this property we defined a anonymous credential which is cryptographic token represented by aggregate signatures (signature of Boneh ) which is transmitted to the voter during the registration phase by the authorities. This scheme uses elliptic curve cryptosystems and provides extended properties of electronic voting. finally numerical llustration of the proposed scheme using SAGE platform was done. Keys words : Electronic voting , Coercion-resistance, anonymous credential, elliptic curve. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  6. 6. Table des matières Dédicace i Remerciements ii Résumé iii Abstract iv Table des matières vi Liste des figures vi Liste des tableaux vii INTRODUCTION GÉNÉRALE 1 1 PRÉLIMINAIRES 4 1.1 Généralités sur le vote électronique . . . . . . . . . . . . . . . . . . . . . . 4 1.1.1 Notion de vote électronique . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.2 Déroulement d’un vote électronique . . . . . . . . . . . . . . . . . . 7 1.1.3 Propriétés du vote électronique . . . . . . . . . . . . . . . . . . . . . 8 1.1.4 Définition de quelques concepts sur le vote électronique . . . . . . . 9 1.2 Cryptographie du vote électronique . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.1 Services de sécurité d’un système de vote électronique . . . . . . . 10 1.2.2 Primitives cryptographiques . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.3 Propriétés du vote et lien cryptographique . . . . . . . . . . . . . . 25 1.3 Courbes elliptiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.3.1 Courbes elliptiques définies sur un corps quelconque . . . . . . . . 25 1.3.2 Courbes elliptiques définies sur un corps fini . . . . . . . . . . . . . 29 1.3.3 Problème du logarithme discret sur les courbes elliptiques . . . . . 31 1.3.4 Multiplication scalaire . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.3.5 Les systèmes cryptographiques utilisant les courbes elliptiques . . 31 1.3.6 Sécurité et choix des courbes elliptiques pour la cryptographie . . . 33 MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  7. 7. Liste des figures vi 2 PRÉSENTATION DE QUELQUES SCHÉMAS DE VOTE ÉLECTRONIQUE 36 2.1 Schéma de Juels, Catalano et Jakobsson . . . . . . . . . . . . . . . . . . . 36 2.1.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.1.2 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.1.3 Vérification du crédit anonyme . . . . . . . . . . . . . . . . . . . . . 39 2.1.4 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.2 Schéma de Porkodi, Arumuganathan et Vidya . . . . . . . . . . . . . . . . 41 2.2.1 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.2.2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.2.3 Illustration numérique . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.2.4 Extension au vote à multiples candidats . . . . . . . . . . . . . . . 45 2.2.5 Illustration numérique pour une élection à quatre candidats . . . 46 2.2.6 Illustration du non receipt freeness . . . . . . . . . . . . . . . . . . 48 3 PROPOSITION D’UN SCHÉMA DE VOTE 49 3.1 Outils cryptographiques utilisés . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.1.1 Crédit anonyme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.1.2 Système cryptographique ElGamal distribué Version elliptique . 51 3.1.3 Mixnet à rechiffrement universellement vérifiable . . . . . . . . . 52 3.1.4 Preuve non interactive à divulgation nulle de connaissance basée sur les ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.1.5 Hypothèses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.2 Présentation du schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.2.1 Description détaillée du schéma . . . . . . . . . . . . . . . . . . . . . 56 3.2.2 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.3 Illustration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.3.1 Présentation de la plate forme SAGE ( System for Algebra and Geo- metry Experimentation) . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.3.2 Modes d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.3.3 Détails d’implémentation . . . . . . . . . . . . . . . . . . . . . . . . 65 3.3.4 Illustration numérique avec SAGE pour une élection à quatre can- didats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.4 Synthèse de quelques résultats . . . . . . . . . . . . . . . . . . . . . . . . . 73 CONCLUSION GÉNÉRALE 74 BIBLIOGRAPHIE 75 MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  8. 8. Liste des figures 1.1 Mixnet de Chaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.2 Mixnet à rechiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3 Interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.4 Protocole de génération de clé distribuée de Pedersen . . . . . . . . . . . . 23 1.5 Protocole de déchiffrement distribué . . . . . . . . . . . . . . . . . . . . . . 24 1.6 Courbes elliptiques définies sur le corps R . . . . . . . . . . . . . . . . . . . 26 1.7 Addition et doublement d’un point . . . . . . . . . . . . . . . . . . . . . . . 28 1.8 cas particulier d’addition et doublement . . . . . . . . . . . . . . . . . . . . 28 1.9 Courbes elliptiques définies sur les corps Fq . . . . . . . . . . . . . . . . . . 29 2.1 Phase d’enregistrement du schéma de Juels et al . . . . . . . . . . . . . . 37 2.2 Phase de vote du schéma de Juels et al . . . . . . . . . . . . . . . . . . . . 38 2.3 Phase de décompte du schéma de Juels et al . . . . . . . . . . . . . . . . . 39 2.4 Schéma de Juels, Catalano et Jakobsson . . . . . . . . . . . . . . . . . . . . 40 3.1 Mécanisme d’une signature agrégée . . . . . . . . . . . . . . . . . . . . . . 50 3.2 Protocole de déchiffrement distribué . . . . . . . . . . . . . . . . . . . . . . 52 MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  9. 9. Liste des tableaux 1.1 Tableau récapitulatif des propriétés d’un e-vote et lien cryptographique . 25 1.2 Points de la courbe d’équation y2 = x3 − 2x − 1 mod 23 . . . . . . . . . . . 30 1.3 Tableau comparatif des tailles de clés de ElGamal(nombre), RSA et ElGa- mal(ECC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.1 Valeurs numériques des votes chiffrés pour un référendum . . . . . . . . . 44 2.2 Valeurs numériques de la phase de décompte lors d’un référendum . . . . 45 2.3 Valeurs numériques des votes chiffrés pour un vote à candidats multiples 47 2.4 Valeurs numériques de la phase de décompte lors d’une élection à quatre candidats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.5 Utilisation des informations pour retrouver le candidat choisi . . . . . . . 48 3.1 Représentation des voix de chaque candidat . . . . . . . . . . . . . . . . . . 60 3.2 Valeurs numériques des votes . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.3 Valeurs des votes rechiffrés . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.4 Élimination des double votes . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.5 Tableau de vote unique et valide . . . . . . . . . . . . . . . . . . . . . . . . 71 MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  10. 10. INTRODUCTION GÉNÉRALE Le vote selon Connes [5] est une technique permettant à un groupe de personnes d’opérer un choix collectif parmi plusieurs propositions, en agrégeant des préférences individuelles. Les choix individuels sont additionnés, soit en les traitant à égalité, soit en les pondérant : en leur affectant un poids variable en fonction des critères déterminés. Ce qui contribue à la formation d’un résultat brut associant une valeur numérique à chaque proposition. Le résultat ainsi obtenu est ensuite interprété pour déterminer si un choix collectif a été valablement exprimé et si oui, lequel ? L’institution de la démocratie comme régime politique dans nos cités a conduit à une multiplication du nombre de consultations électorales : on vote pour tout et partout. Il faut noter que, le coût d’une élection ou d’un référendum reste très élevé ; cependant en dépit de l’augmentation croissante du nombre de consultations électorales, le taux de participation aux échéances électorales baisse de plus en plus pour plusieurs raisons parmi lesquelles : les longues files d’attentes observées devant les bureaux de vote et la fraude électorale qui contribue au désintérêt d’une partie non négligeable de la po- pulation. Avec le développement rapide de l’Informatique et des Applications web, il est désormais possible de diminuer ce coût et de rendre le processus de vote moins contrai- gnant grâce aux protocoles de votes électroniques (plus particulièrement des systèmes de votes qui utilisent Internet). Le vote électronique est la collection à distance des choix des électeurs grâce aux moyens électroniques impliqués dans la construction, la transmission et le décompte des votes. Il offre de nombreux avantages : un plus grand nombre d’électeurs grâce à l’aisance induite par la possibilité de voter à partir de n’importe quel lieu (confort de son domicile, lieu de travail), un coût réduit et un calcul plus rapide des résultats pour ne citer que ceux-ci. Malgré ses avantages, le vote par Internet est susceptible d’être altéré par des failles telles que la coercition. En effet, elle consiste à influencer l’électeur lors de son choix afin de le pousser à voter pour un candidat particulier. A celle ci, on pourrait ajouter l’achat des votes. Ces failles sont possibles parce que les électeurs votent à partir des lieux non contrôlés. En outre, ces failles (coercition et achat des votes) peuvent être automatisées pour atteindre un plus grand nombre d’électeurs. Pour Jefferson et al. [2], "Internet MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  11. 11. INTRODUCTION GÉNÉRALE 2 facilite l’achat de vote à grande échelle en permettant aux acheteurs d’automatiser le processus". En 1994, Benaloh propose une solution à ces problèmes qui consiste à empêcher les électeurs de créer ou d’obtenir des informations qui prouvent comment ils votent. De cette façon, puisque les électeurs ne peuvent fournir la preuve de leur vote, il suppose qu’ils ne peuvent être contraints à voter pour un certain candidat ou de vendre leurs votes. Mais cette solution n’est pas satisfaisante étant donné qu’elle fonctionne unique- ment lorsque les attaquants sont passifs (n’interagissent pas avec l’électeur pendant le vote). Dans [13], Juels, Catalano et Jakobsson définissent une notion appelée résistance à la coercition, plus complète en ce qui concerne les attaques coercitives dans le vote par Internet. En effet, ils considèrent que les électeurs peuvent être contraints à s’abs- tenir de voter, à révéler des informations secrètes utilisées pour voter et à émettre des votes aléatoires ; il s’agit de l’une des plus fortes propriétés pour la sécurité d’un système de vote par internet. Ils proposent également le premier schéma qui satisfait cette pro- priété. Ils utilisent pour cela un crédit anonyme : qui consiste à assigner un jeton unique à chaque votant lors de la phase d’enregistrement, ce qui permet de rendre anonyme le votant lors de son vote. Les limites de ce schéma sont : son inefficience parce que la phase de décompte s’exécute en temps quadratique [24] et son manque de complétude. Le schéma de Juels et al comme la majorité des travaux sur le vote électronique repose sur les systèmes de la théorie des nombres. Or la cryptographie sur les nombres a montré quelques limites. Pour pallier cette vulnérabilité (décelée par les chercheurs physiciens), les mathématiciens se sont lancés à la recherche de nouvelles plateformes qui se substitueraient à celle des nombres. En 1985, Miller et Koblitz posent indépendamment les bases de la Cryptographie basée sur les courbes elliptiques (Elliptic Curve Cryptography, en abrégée ECC). La sécurité de ces systèmes repose sur le problème du logarithme discret sur les courbes elliptiques. L’algorithme connu (Rho Pollard) comme étant le plus efficace pour résoudre un tel problème est à temps exponentiel, contrairement au chiffrement RSA (Rivest, Shamir, Adleman) pour lequel il existe des algorithmes à temps sous-exponentiel. Ainsi, à niveau de sécurité équivalent, ECC requiert des clés beaucoup plus petites que le RSA. Par exemple, il est couramment admis qu’utiliser un RSA avec une longueur de clé de 1024 bits offre le même niveau de sécurité qu’un ECC avec une longueur de clé de 160 bits [19]. L’utilisation des données plus petites offre beaucoup d’avantages : les calculs sont plus rapides, la consommation électrique globale est diminuée et l’espace mémoire est réduit. Les systèmes basés sur les courbes elliptiques sont de plus en plus utilisés par les États et les entreprises. C’est ainsi que les gouvernements des USA, Canada et Grande Bretagne pour ne citer que ceux là ont commencé à utiliser la cryptographie sur les MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  12. 12. INTRODUCTION GÉNÉRALE 3 courbes elliptiques dans leur système de sécurité. De même, le navigateur web Mozilla met en place un système permettant aux clients de la messagerie de signer des messages et de vérifier l’identité des expéditeurs par les cryptosystèmes sur les courbes elliptiques [20]. La publication de courbes elliptiques standardisées par le NIST (National Institute of Standards and Technology ) en 2000 a contribué à accélérer ce processus d’utilisation des cryptosystèmes basés sur les courbes elliptiques. En 2011, Dans [16], Porkodi et al propose une nouvelle approche de schéma de vote. Ce schéma de vote repose sur les systèmes cryptographiques des courbes elliptiques. La principale limite de ce schéma est qu’il n’assure pas la propriété de résistance à la coercition. L’utilisation d’un outil tel que l’isoloir physique, lors des consultations électorales dans nos pays (vote traditionnel) permet conceptuellement de protéger l’électeur de la coercition même si ce n’est pas le cas dans la pratique. Mais dans le vote par Internet de tels outils n’existent pas. La protection du votant passe par la satisfaction par le système de vote de la propriété de résistance à la coercition. L’une des solutions consiste à utiliser un crédit anonyme. L’objectif de ce travail est de concevoir un système de vote électronique qui utilise le crédit anonyme pour assurer la propriété de résistance à la coercition et dont la sécurité repose sur les systèmes cryptographiques issus de la théorie des courbes elliptiques. Ce document est divisé en trois chapitres : le premier chapitre est consacré aux pré- liminaires et comprend entre autres des généralités sur le vote électronique, ensuite les primitives cryptographiques utilisées pour offrir les services de sécurité sont détaillées et enfin une brève introduction sur les courbes elliptiques. Dans le second chapitre, nous présentons quelques schémas de vote électronique, plus précisément ceux proposés dans [13] et [16]. Et le troisième chapitre fait l’objet de notre proposition d’un schéma de vote électronique par internet résistant à la coercition que nous illustrons numériquement grâce à la plate-forme SAGE ( System for Algebra and Geometry Experimentation). MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  13. 13. CHAPITRE 1 PRÉLIMINAIRES Dans ce chapitre, nous présentons d’abord les généralités sur le vote électronique, et sa définition d’un point de vue cryptographique en termes de services de sécurité offerts. Nous énumérons ensuite les différentes primitives cryptographiques utilisées pour garantir ces services et enfin nous introduisons les courbes elliptiques. 1.1 Généralités sur le vote électronique 1.1.1 Notion de vote électronique Le vote électronique est une élection ou référendum qui implique le recours à des moyens électroniques au moins lors de l’enregistrement du suffrage. Son but est de faire mieux que le vote traditionnel en permettant à l’électeur de s’exprimer de manière ano- nyme dans un environnement informatique. On distingue généralement deux types de vote électronique : le vote hors ligne et le vote en ligne [7] – Dans le vote hors ligne, on conserve les outils traditionnels à l’instar des bureaux de vote, des isoloirs , et on utilise l’urne électronique désignée par le terme machine à voter. En pratique, il s’agit d’un ordinateur permettant à l’électeur de voter. Les avantages de ce type de vote sont : il permet une comptabilisation rapide des bulle- tins mais également, offre aux électeurs la possibilité de voter à partir de n’importe quel bureau vote. – Le vote en ligne (à distance) consiste à rendre possible le vote à partir d’un termi- nal situé à distance du système de vote. Dans ce cas, le vote de l’électeur transite par un réseau de communication, entre le terminal et le système de vote. Concrè- tement, le vote électronique à distance peut s’effectuer : – par Internet (via un site Internet auquel l’électeur se connecte), – par téléphone (via un serveur vocal interactif), – au moyen de tout autre équipement connecté à distance au système de vote. Le vote électronique présente de nombreux avantages par rapport au vote tradition- nel : MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  14. 14. 1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 5 1. La facilité et la flexibilité du vote pour l’électeur : l’électeur n’a plus besoin de se trouver en un lieu déterminé (bureau de vote) ni à faire la queue pour voter. La flexibilité permet d’étendre la durée du vote (il est désormais possible de voter sur plusieurs jours et à n’importe quel moment). 2. La simplification de l’organisation et de la gestion du vote : par la sup- pression de nombreuses contraintes matérielles liées aux scrutins traditionnels (organisation de bureaux de vote physiques, achat d’urnes, édition et impression des bulletins de vote, mobilisation du personnel). 3. La facilité et la rapidité du dépouillement : étant donné que le dépouillement et le calcul des résultats se font de manière automatique. 4. L’harmonisation et la synchronisation des opérations de vote : à travers l’uniformisation complète des conditions du vote, qu’il s’agisse de la présentation des choix possibles (candidats), de l’expression du vote ou de l’accès à l’information. 5. L’augmentation du taux de participation : du fait de la possibilité de voter à partir du confort de son domicile ou de n’importe quel autre lieu. Il faut noter que ces avantages ne sont pleinement obtenus qu’au moyen du vote à distance par Internet. C’est pour cette raison que dans ce travail nous nous intéressons essentiellement à ce système. Il permet à un groupe de personnes d’effectuer un vote à distance et se compose d’une suite d’algorithmes protocolaires exécutés sur les différents ordinateurs des acteurs du système. Les principaux intervenants d’un tel système sont : les votants et les autorités [17]. 1. Les votants 1 notés Vi : ce sont eux qui votent lors de l’élection concernée, i est l’identifiant du votant ; on y retrouve un sous ensemble constitué des candidats noté cr qui compétissent lors de l’élection. Ces candidats peuvent être des per- sonnes physiques, des partis politiques ou généralement un ensemble de choix possibles. Toutefois, les actions de l’électeur sont réduites au minimum il peut : s’abstenir de participer au vote s’il le désire, arrêter le processus de vote avant la fin. Dans ce dernier cas de figure, son vote n’est pas considéré. 2. Les autorités électorales : elles sont responsables de la conduite de l’élection, leur puissance de calcul est grande et offre la possibilité de traiter un gros volume de données. Ces autorités peuvent également être défaillantes. Nous distinguons : – Les autorités d’enregistrement (Rj) : elles s’occupent de l’enregistrement des électeurs auprès des institutions de votes. – Les autorités de comptage (décompte) (Tj) : elles s’occupent du décompte des votes. 1. encore appelés électeurs MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  15. 15. 1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 6 1.1.1.1 Types de votes Un vote dépend du type d’élection. Sa structure se définit en fonction de la ques- tion posée au votant lors du passage au bureau de vote et de la manière d’y répondre. Nous présentons une liste des principaux types de votes auxquels un votant peut être confronté [23],[17] : 1. Le vote Oui/Non : le votant est invité à répondre à une question par "oui" ou par "non". Le vote peut être représenté par un bit (0 ou 1). 2. Le vote 1-parmi-n : le votant vote pour un candidat parmi les n choix possibles. Le vote est représenté par une valeur ∈ [0, n] avec n ∈ N∗ . Notons que le choix 0 représente le bulletin blanc. 3. Le vote k-parmi-n : le votant vote pour k candidats parmi les n choix possibles. L’ordre n’est pas important. Le vote est représenté par un k-tuple (c1, c2, ..., ck) où ci ∈ [1, n] avec n ∈ N∗ . 4. Le vote k-parmi-n ordonné : le votant vote pour k candidats parmi les n choix possibles et ordonne son choix du meilleur au moins bon. Le vote est représenté par un k-tuple (c1, c2, ..., ck). Les ci sont deux a deux distincts où ci ∈ [1, n] et ci est plus important que ci+1. 5. Le vote 1-parmi-l-parmi-n : le votant choisit d’abord un ensemble parmi les l pos- sibles et dans cet ensemble sélectionné, il choisit n éléments. Le vote est représenté par un k + 1-uplet (i, c1, c2, ..., ck) où les ci sont les éléments du iéme ensemble. 6. Le vote structuré : Pour ce type il y a n niveaux de possibilités. le votant par- court les niveaux du premier au dernier. Au iéme niveau, il peut choisir ki pos- sibilités du sous ensemble Si des possibilités de ce niveau. Si et ki dépendent de ses choix dans les niveaux précédents. Le vote est représenté par un uplet (c11, ..., c1k1 , ..., ci1, ..., ciki , ..., cn1, ..., cnkn ) , où {ci1, ..., ciki } ⊂ Si. 7. Le vote par écrit : l’électeur formule sa propre réponse et l’écrit sur le bulletin. Le vote est une chaine de caractère de taille fixe. Un exemple de vote Oui/Non serait un référendum de type « êtes-vous d’accord avec... ». Une élection présidentielle comme celle organisé au Cameroun, est une élection de type « 1-parmi-n »où l’on choisit le candidat qu’on souhaite voir à la présidence parmi les n possibilités. Dans un système de vote k-parmi-n ordonné, le candidat choisi en premier dans la liste des choix d’un votant obtient le plus de points. Au décompte final, le candidat dont le nombre de points accumulé est le plus grand gagne l’élection. Ce système de vote est considéré comme le plus démocratique [17]. Un cas particulier est l’élection parlementaire où l’électeur choisit ses représentants, mais ceux ci doivent être des candidats d’un même parti politique. C’est un exemple de vote 1-parmi-l-parmi-k où l représente le nombre de partis politiques et K le nombre de candidats sélectionnés. L’ensemble des candidats sélectionnés peut être ordonné ou non. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  16. 16. 1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 7 Après avoir parlé des types de vote, il est maintenant question de montrer comment communiquent les différents acteurs du système. 1.1.1.2 Modèle de communication Dans cette partie nous présentons les différents canaux de communication utilisés dans les systèmes de vote électronique. On distingue généralement : 1. Le tableau de vote public 2 noté (BB), qui est publiquement accessible en lec- ture. Tous les participants au processus de vote peuvent librement y publier des informations. Toutefois lorsqu’on rajoute sur le tableau public une information x, aucun des participants n’a le droit de supprimer ou modifier x. Il est donc considéré comme un canal public possédant une mémoire. 2. Les canaux anonymes 3 , ce sont des canaux qui garantissent l’anonymat de l’émetteur d’un message. Le récepteur du message qui transite par ce canal ne connait pas l’identité de l’émetteur. Il est difficile, voire impossible de retracer le message jusqu’à son origine. Nous parlerons de la réalisation de ce canal à la Sec- tion1.2.2.2. 3. Le canal inécoutable 4 : c’est un canal secret entre deux participants. La com- munication à travers ce canal est impossible à observer car il est physiquement sécurisé. Aucune autre entité en dehors de celles qui participent à la communi- cation ne peut accéder au message. Les acteurs de la communication ne peuvent pas prouver ce qui leur a été envoyé. Dans certains schémas de votes on suppose l’existence d’un tel canal entre l’électeur et l’autorité. 1.1.2 Déroulement d’un vote électronique Tout comme les schémas de vote classique, les schémas de vote électronique se dé- roulent en cinq phases qui composent le processus complet. Ces phases sont : 1. Phase de configuration (Initialisation) : c’est pendant cette phase que la loi élec- torale et les règles sont fixées (type de vote, représentation des candidats,..) ; les paramètres sont générés pour permettre à l’élection d’avoir lieu. Elle correspond à la convocation du corps électoral pour le vote classique (cas du Cameroun). Cette phase est placée sous l’autorité de l’institution chargée d’organiser l’élection. 2. Phase d’enregistrement : c’est durant cette phase que l’enregistrement des vo- tants auprès de l’institution de vote est effectué. Pendant cet enregistrement un crédit anonyme est transmis à l’électeur par les autorités d’enregistrement. 2. bulletin board en anglais 3. anonymous channel 4. untappable channel MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  17. 17. 1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 8 3. Phase de vote : les votants sont invités à procéder à la construction et la trans- mission de leur vote ; ce dernier étant soigneusement chiffré à l’aide de primitives cryptographiques . 4. Phase de décompte : Les autorités chargées du décompte parcourent le tableau de votes déchiffrent et comptent les voix. 5. Phase de publication : Les votants constatent le résultat de l’élection et véri- fient si celle-ci s’est déroulée correctement. Dans le cas où la vérification n’est pas concluante, ils contestent l’élection en apportant la preuve. Dans le cas contraire, si tout s’est bien passé, chacun des votants est persuadé que l’élection est règle- mentaire. Et l’autorité désignée publie le résultat de l’élection 1.1.3 Propriétés du vote électronique Un protocole de vote, pour être utilisable doit vérifier un certain nombre de proprié- tés. Dans cette partie, nous présentons brièvement chacune d’entre elles. Ces propriétés sont : 1. Secret des votes : personne ne doit pouvoir faire le rapprochement entre un élec- teur et son vote. 2. Éligibilité : seuls les électeurs enregistrés doivent pouvoir voter. Cette propriété est vérifiée si l’intrus ne peut pas obtenir les paramètres d’authentification (iden- tifiant, mot de passe) de la phase d’enregistrement lui permettant de continuer le processus. 3. Pas de double vote : aucun électeur ne doit pouvoir voter deux fois lors d’une même élection. Toutefois, dans le cas contraire son vote ne doit pas être comptabi- lisé plus d’une fois. Il ne faudrait pas rejeter les votes valides. 4. Pas de résultat Partiel (Équité) : personne ne doit être capable d’obtenir des résultats partiels. car la connaissance de ces résultats pourrait influencer les élec- teurs n’ayant pas encore voté. 5. Vérifiabilité individuelle : chaque votant doit pouvoir vérifier que son vote a été correctement introduit et comptabilisé. 6. Vérifiabilité universelle : chaque votant doit pouvoir vérifier que le résultat pu- blié est bien la somme de tous les votes valides émis, comptabilisés sans modifica- tion. 7. Précision : l’élection est précise si le vote n’est pas altéré, par conséquent les résultats du vote ne doivent pas être modifiés en ajoutant des votes invalides ou en changeant le contenu des bulletins par exemple (intégrité). 8. Complétude : Un vote valide doit être comptabilisé et un vote invalide ne doit pas être comptabilisé. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  18. 18. 1.1. GÉNÉRALITÉS SUR LE VOTE ÉLECTRONIQUE 9 9. Receipt-freeness (Sans Reçu) : elle représente une forme forte de confidentia- lité. Définie par Benaloh en 1994 [24] comme suit : aucun électeur ne doit être ca- pable de prouver la manière dont il a voté, d’obtenir ou d’être capable de construire un reçu de son vote, (c’est à dire un document prouvant comment il a voté). Cette propriété est importante pour la prévention contre la vente des votes. 10. Résistance à la coercition : la coercition consiste à forcer quelqu’un à voter d’une certaine manière et de s’en assurer par la suite. Les propriétés ci-dessus sont hiérarchisées en deux niveaux [15]. Un niveau inférieur constitué des exigences de base (éligibilité, secret, précision, vérifiabilité individuelle, ...) devant être accomplies dans chaque système de vote. Un niveau supérieur (vérifiabilité universelle, Receipt-freeness, résistance à la coercition) regroupe les exigences avancées pour les systèmes de vote. 1.1.4 Définition de quelques concepts sur le vote électronique 1.1.4.1 Résistance à la coercition La notion de résistance à la coercition a été étudiée dans [13] en vu d’étendre la propriété de receipt-freeness, puisque pendant que le receipt-freeness protège contre les attaquants passifs, c’est-à-dire qui ne communiquent pas avec le votant lors du vote, la résistance à la coercition le protège contre les attaquants actifs, c’est-à-dire ceux qui peuvent communiquer avec le votant pendant le processus de vote et l’obliger à faire des choix contraires à sa volonté. Un système de vote est dit résistant à la coercition s’il est receipt-freeness et suppose qu’aucun attaquant ne doit forcer un électeur à voter d’une manière particulière ou à s’abstenir de voter. Il doit être particulièrement difficile pour l’adversaire de déterminer si l’électeur sous la contrainte vote bien comme il le désire. De plus, la résistance à la coercition doit protéger contre trois principales attaques : – Attaque par randomisation : ici l’attaquant force le votant à émettre une chaine de caractères aléatoires comme son vote avec pour objectif de rendre nul l’intention de vote avec une grande probabilité. Dans un protocole résistant à la coercition, ce vote ne sera pas pris en compte et sera supprimé lors de l’étape de vérification puisque le candidat choisi n’est pas valide – Attaque par abstention forcée : elle consiste pour l’attaquant à contraindre le votant à ne pas émettre de vote. – Attaque par simulation : ici l’attaquant force le votant à lui révéler les informa- tions qu’il utilise pour voter (crédit anonyme, clés,...) afin de voter à sa place. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  19. 19. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 10 1.1.4.2 Crédit anonyme Il permet de prouver une propriété ou un droit lié à son possesseur, sans révéler l’identité de celui-ci. De plus il protège les informations privées de son possesseur en fournissant la propriété d’anonymat. Par ailleurs, il prend souvent la forme d’un jeton cryptographique pouvant être montré par son possesseur à une organisation afin de prouver une propriété liée à son identité. Ce jeton est créé et certifié par une autorité de confiance qui garantit son authenticité. 1.2 Cryptographie du vote électronique 1.2.1 Services de sécurité d’un système de vote électronique La cryptographie peut être définie comme étant l’étude des techniques mathéma- tiques utilisées pour la sécurisation de l’information. Le but de cette science est donc d’assurer un certain nombre de services de sécurité parmi lesquels : la confidentialité, l’authentification, la non-répudiation, l’intégrité et l’anonymat. Un schéma de vote électronique est un système cryptographique qui offre les services sus-cités : 1.2.1.1 La confidentialité Elle consiste à garder secret le contenu des votes pendant la phase de vote et à le rendre accessible aux autorités uniquement lors de la phase de décompte. Ce service est lié aux propriétés du secret et du receipt freeness. La confidentialité dans les schémas de vote électronique est assurée par les systèmes de chiffrement. 1.2.1.2 L’authentification Elle consiste à garantir que l’électeur est bien identifié comme une personne autori- sée à voter et que le vote (message émis) est bien celui d’un membre du groupe d’élec- teurs. Dans les schémas de vote électronique, on distingue généralement deux types d’authentification : – L’authentification externe ou identification : elle fournit le lien entre l’électeur et la liste électorale (des électeurs éligibles), elle peut consister en une simple corres- pondance entre le nom de l’électeur et cette liste. Elle peut être réalisée par des techniques symétriques conventionnelles (authentification par mot de passe) ou par des techniques asymétriques (signature,...). – L’authentification interne : elle est généralement utilisée pour authentifier le vote i.e vérifier qu’il s’accompagne d’un crédit valide. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  20. 20. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 11 1.2.1.3 L’anonymat Il permet de dissimuler l’identité de l’électeur lorsqu’il émet son vote. De sorte qu’il soit difficile de faire le lien entre un électeur et son vote. Ce service est nécessaire lors de la phase de vote. L’anonymat est assuré dans les schémas de vote électronique par des outils tels que les réseaux de mélangeurs, les signatures aveugles,... 1.2.1.4 L’intégrité De manière générale, l’intégrité (ou intégrité des données) désigne l’état des données qui, lors de leur traitement, de leur conservation ou de leur transmission, ne subissent aucune altération, destruction volontaire ou accidentelle, et conservent un format per- mettant leur utilisation. Elle consiste à garantir qu’un message n’a pas été modifié par une personne autre que son auteur. En ce qui concerne le vote, l’intégrité suppose que la transmission des votes lors de la phase de vote ne doit pas altérer ceux-ci ; ou encore que les résultats du vote ne doivent pas être modifiés (par exemple le contenu des bulletins ne doit pas être modifié lors du décompte). Pour garantir l’intégrité, on utilise des fonc- tions de hachage qui réduisent des données de longueur variable en une " empreinte" de petite taille appelée haché ou condensat. Les exemples de fonctions de hachage sont MD5 (Message Digest numéro 5) et SHA (Secure Hash Algorithm ). Après avoir subi les attaques, MD5 n’est plus sûr. Il existe aujourd’hui cinq algorithmes de hachage approu- vés par le NIST (National Institute of Standards and Technology) : SHA-1, SHA-224, SHA-256, SHA-384, et SHA-512. 1.2.1.5 La non-répudiation Elle consiste à garantir qu’un électeur ayant émis son vote ne puisse nier l’avoir fait. De même que les autorités ne puissent nier avoir reçu ce vote. Afin de garantir ce service, les signatures électroniques sont généralement utilisées. 1.2.2 Primitives cryptographiques Dans cette partie nous présentons les primitives cryptographiques qui sont utilisées dans les systèmes de vote électronique pour obtenir ces services de sécurité. 1.2.2.1 Primitives de confidentialité Le service de confidentialité est assuré dans le vote électronique par le chiffrement. Généralement le plus utilisés étant les systèmes de chiffrement homomorphique. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  21. 21. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 12 Chiffrement homomorphique Système très souvent utilisé pour effectuer des opérations sur des données chif- frées tout en préservant leur confidentialité. Soient M l’espace des messages clairs et C l’espace des textes chiffrés. Soit Enc un schéma de chiffrement défini par les trois algorithmes suivants : – Algorithme de génération des clés : prend en entrée les paramètres publics du système et renvoie une paire clé publique/clé privée, Pk/Sk ; – Algorithme de chiffrement (Chiff) : est un algorithme probabiliste qui prend en entrée la clé publique Pk, un message m dans M et une valeur aléatoire r et renvoie un chiffré c, avec c = Chiff(m, r). – Algorithme de déchiffrement (Dec) : est un algorithme déterministe qui prend en entrée un chiffré c et la clé secrète Sk de déchiffrement et renvoie le message m ∈ M associé à c ∈ C ou un symbole d’erreur avec Dec(c) = m. Définition 1.2.1. Un algorithme est probabiliste lorsqu’il utilise une source addition- nelle d’aléa. Ainsi, deux chiffrements probabilistes d’un même message donneront des résultats différents avec une grande probabilité. On parle d’algorithme déterministe dans le cas contraire. Soient ⊕ et ⊗ des lois de groupes dans M et C respectivement. Définition 1.2.2. Soient M l’espace des textes clairs et C l’espace des chiffrés. Suppo- sons que M et C munis respectivement de ⊕ et ⊗ sont des groupes. Le chiffrement Enc est homomorphique si étant donnés deux chiffrés c1 = chiff(m1, r1) et c2 = chiff(m2, r2) des messages m1 et m2 on a : c1 ⊗ c2 = chiff(m1 ⊕ m2, r) Dec(c1 ⊗ c2) = Dec(chiff(m1 ⊕ m2, r)) = m1 ⊕ m2 Notons que les deux lois ⊕ et ⊗ peuvent être identiques Comme cryptosystèmes homomorphiques nous pouvons citer : le chiffrement ElGa- mal, EC-ElGamal, Paillier,... Exemple 1.2.1. Système cryptographique ElGamal Le cryptosystème asymétrique ElGamal du nom de son inventeur Taher ElGamal en 1985. La sécurité de ce schéma repose sur le problème du logarithme discret. a. Algorithme MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  22. 22. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 13 Génération des clés Chaque entité crée la clé publique et la clé privée correspondante a). Engendrer un grand nombre premier p et un générateur g du groupe multiplicatif Z∗ p . b). Choisir un entier aléatoire x,1 ≤ x ≤ p − 2 et calculer h = gx (mod p). c). La clé publique est (p, g, h) et la clé privée est x. Bob chiffre un message pour Alice, qu’Alice déchiffre. 1.Chiffrement : Bob effectue les actions suivantes : a). Obtenir la clé publique (p, g, h) de Alice. b). Représenter le message m comme un entier m ∈ [0, p − 1]. c). Choisir un entier k,1 ≤ k ≤ p − 2 d). Calculer c1 = gk (mod p) et c2 = mhk (mod p). e). Envoyer le texte chiffré c = (c1, c2) à Alice. 2.Déchiffrement : Pour récupérer le message Alice procède de la manière suivante : a). Calculer cp−1−x 1 (mod p) (NB : cp−1−x 1 = c−x 1 = g−xk ) b). Récupérer m = (c−x 1 )c2 (mod p). b. Propriété homomorphique Propriété homomorphique multiplicative : le cryptosystème vérifie la propriété homomorphique multiplicative : Preuve. Supposons que nous avons deux chiffrés c1 = (gk 1 , m1hk1 ) et c2 = (gk2 , m2hk2 ) des messages m1 et m2. le produit des chiffrés donne : chiff(m1, k1)chiff(m2, k2) = (gk 1 , m1hk1 )(gk2 , m2hk2 )) = [gk1+k2 , (m1m2)hk1+k2 ] = chiff(m1m2, k1 + k2) D’où chiff(m1, k1)chiff(m2, k2) = chiff(m1m2, k1 + k2) Remarque 1.2.1. Dans les systèmes de vote la propriété homomorphique multiplica- tive du chiffrement est très peu utilisée. Propriété homomorphique additive : une modification du chiffrement ElGa- mal, appelée ElGamal exponentiel est utilisée dans certains schémas de vote. Le but est de rendre la propriété homomorphique additive. Cette propriété est intéressante parce qu’elle permet lors du déchiffremment d’obtenir directement les voix de chaque candidat. Lors de cette modification le message est représenté par gm . Après le chiffre- ment d’un message m avec le chiffrement ElGamal exponentiel, le chiffré est représenté MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  23. 23. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 14 comme suit : C = (gk , gm hk ) Soient m1 et m2 deux messages chiffrés comme c1 = (gk1 , gm 1 hk1 ) et c2 = (gk2 , gm 2 hk2 ). Le produit de ces chiffrés donne : chiff(m1, k1)chiff(m2, k2) = (gk1 , gm 1 hk1 )(gk2 , gm 2 hk2 ) = [gk1+k2 , (gm1+m2 )hk1+k2 ] = chiff(m1 + m2) Ce qui revient à chiffrer m1 + m2 soit chiff(m1, k1)chiff(m2, k2) = chiff(m1 + m2, k1 + k2) Exemple 1.2.2. soient (p, g, λ, h) la clé publique, r1, r2, r3 des entiers aléatoire, α = {0, 1}. Supposons que nous avons trois candidats. Un vote chiffré avec le cryptosys- tème ElGamal exponentiel se représente par (gr1 mod p, gα hr1 mod p), (gr2 mod p, gα hr2 mod p), (gr3 mod p, gα hr3 mod p). Lorsque un électeur choisit de voter pour le second candidat alors on a : (gr1 , g0 hr1 ), (gr2 , g1 hr2 ), (gr3 , g0 hr3 ). Le produit de n votes est donné par (g n i=1 r1i , g n i=1 αi h n i=1 r1i ), g n i=1 r2i , g n i=1 αi h n i=1 r2i ), g n i=1 r3i , g n i=1 αi h n i=1 r3i ) Après le déchiffrement on obtient g n i=1 αi pour le candidat correspondant i.e. le nombre de voix en faveur de ce candidat. Rechiffrement Définition 1.2.3. Une fonction de rechiffrement (Rechiff) : est un mécanisme proba- biliste qui prend en entrée un chiffrement asymétrique probabiliste c = chiff(m, r), une valeur aléatoire r∗ différente de r qui est utilisé lors du chiffrement et renvoie un chiffré c, avec c = Rechiff(c, r∗ ). tel qu’on a : Rechiff(c, r∗ ) = (chiff(m, r))(chiff(1, r∗ )) = chiff(m, r + r∗ ) Dec(c) = Dec(Rechiff(c, r∗ )) = Dec(c) Dans le cadre du vote électronique, les opérations de chiffrement et de rechiffrement, sont généralement effectuées par des entités distinctes. Exemple 1.2.3. Soient Enc un système de chiffrement ElGamal classique où la clé publique est donné par (p, g, h). La fonction de chiffrement renvoie le chiffré c = (c1, c2) où c1 = gk et c2 = mhk en appliquant la fonction de rechiffrement nous obtenons Rechiff(c, r∗ ) = Rechiff(c1, c2, r∗ ) = (c1, c2)(gr∗ , hr∗ ) = (gr+r∗ , mhr+r∗ ) MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  24. 24. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 15 1.2.2.2 Primitives d’anonymat Les mixnets, les signatures aveugles et le crédit anonyme assurent généralement l’anonymat dans les schémas de vote électronique. a. Mixnet Un mixnet (ou "Mix Network") 5 est un protocole appelé "multiparty computation- and-communication". Il fournit un mécanisme pour établir un canal de communication anonyme. Il est l’élément central dans certains systèmes de vote. Le mixnet est une boîte noire qui prend en entrée un grand nombre de messages (données) et qui a pour but de cacher la correspondance entre entrée et sortie. Ce protocole est utilisé pour garantir l’anonymat de l’émetteur du message : on ne sait pas d’où il vient. Il existe deux types basiques de Mixnets : Mixnet à déchiffrement (decryption mixnet, Chaumian mixnet, Onion mixnet) et le Mixnet à rechiffrement (reencryption mixnet) [23]. a.i. Mixnet à déchiffrement En 1981, Chaum invente le mixnet à déchiffrement. C’est une suite de permutations appliquées sur des messages chiffrés ; chacune de ces permutations est réalisée par une entité appelée mixeur (mélangeur). Pour envoyer un paquet m de manière anonyme via un mixnet, il suffit de chiffrer ce paquet m successivement à l’aide des clés publiques de chaque mixeur. Ainsi à chaque passage par un mixeur, le message chiffré perd une partie de son chiffrement et ensuite il est redirigé vers un autre mixeur pour finir par être totalement déchiffré après le dernier mixeur. La Figure 1.1 illustre son fonctionnement. Soit M, un mixnet qui possède k mixeurs, notés Mi avec 1 ≤ i ≤ k, chacun possé- dant une paire de clés publique et privée (PKi, SKi). Chaque mixeur possède le même nombre d’entrées que de sorties et associe à chaque entrée une sortie via une table de permutation. Initialement chacun des l votes Bj pour j = 1, ..., l est chiffré successivement avec les clés PK1, ..., PKk. Chacun des mélangeurs Mi reçoit l chiffrés partiels de la forme Cj = Ei(Ei−1...E1(Bj)). Le mélangeur Mi déchiffre et applique une permutation secrète aux éléments Cj = Ei−1(Ei−2...E1(Bj)) qu’il envoie au mélangeur suivant Mi−1. Remarque 1.2.2. Notons que si un seul des mixeurs ne fonctionne pas correctement le message ne sera pas déchiffré. Dans la pratique, les Mixnets à déchiffrement sont très peu utilisés dans les schémas de vote électronique. 5. Réseau de mélangeur en Français MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  25. 25. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 16 Mixnet MMMA MMMB MMMC MMMD MMA MMB MMC MMD MB MC MD MA B D C A B D C A Mixeur Mixeur Mixeur FIGURE 1.1 – Mixnet de Chaum a.ii. Mixnet à rechiffrement un autre type de mixnet, appelé Mixnet à rechiffrement : 6 réalise une permutation (un mélange) sur les messages entrant mais ne les déchiffrent pas. Cependant, pour permettre l’anonymat, il ne faut pas se contenter de brouiller l’entrée car l’ensemble des chiffrés associé à un message reste alors inchangé, et il est possible dans ce cas retrouver la source du chiffré. Il faut donc que les messages en entrée des mixeurs soient différents des messages en sortie. Chaque mixeur rechiffre donc les messages reçus en entrée. Le système cryptographique ElGamal permet le rechiffrement d’un message chiffré. 7 La Figure 1.2 illustre le fonctionnement d’un tel mixnet. Remarque 1.2.3. généralement on utilise la technique du partage de secret (voire section 1.2.2.5) sur la clé de déchiffrement pour assurer la robustesse [1]. Les mixnets à rechiffrement sont plus robustes que les mixnets à déchiffrement car le mauvais fonc- tionnement d’un des mixeurs n’altère pas tout le processus. a.iii. Mixnet vérifiable : Lorsque chacun des mélangeurs est à même de fournir une preuve que ce travail a bien été effectué (que le mélange a bien été effectué, que les valeurs n’ont pas été modi- fiées, rajoutées ou enlevées), on parle alors de réseaux de mélangeurs universellement vérifiables (mixnets universellement vérifiables). 6. "re-encryption mixnets" en anglais 7. i.e. transformer un chiffré en un autre qui conserve le même message (clair) d’origine. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  26. 26. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 17 Mixnet MA MB MC MD MA MB MC MD MA Mixeur Mixeur Mixeur MB MC MD MB MD MC MA MB MA MC MD FIGURE 1.2 – Mixnet à rechiffrement b. Signature aveugle Introduite en 1982 par Chaum pour assurer l’anonymat en cryptographie. Elle per- met à un utilisateur de faire signer un message dont le contenu est inconnu au signa- taire. Afin que cet anonymat perdure après la divulgation du message signé, il faudrait que le signataire ne puisse pas relier les signatures finales aux interactions qu’il a eues avec les différents utilisateurs. C’est pourquoi, un protocole de signature aveugle se dé- roule en trois étapes : Tout d’abord, l’utilisateur masque (aveugle) son message avant de l’envoyer au signataire. Cette procédure peut se réaliser de diverses manières avec ou sans l’implication du signataire. Ensuite, le signataire signe le message aveuglé qu’il reçoit et envoie le message signé à l’utilisateur. Pour finir, l’utilisateur désaveugle le message signé de sorte qu’il correspond au message initial. Application : cette méthode, à l’origine conçue pour les protocoles de monnaie élec- tronique, a été utilisée par Fujioka et al en 1993 pour résoudre le problème de validation des votes sans sacrifier le secret : la signature aveugle permet de remplir les conditions nécessaires au déroulement légal d’un vote. L’utilisateur (électeur) choisit son vote qui représente ici son message. Il l’aveugle ensuite en utilisant la première étape d’une si- gnature aveugle. Puis il s’authentifie auprès d’une autorité qui représente le signataire. Ceci lui permet d’émarger et de prouver son éligibilité. L’autorité signe le message aveu- glé et l’utilisateur le désaveugle. Il peut maintenant déposer son vote et la signature dans l’urne. Ainsi, le système a l’assurance que le vote a été authentifié et est valide si la signature est correcte, et l’autorité est incapable de relier les votes. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  27. 27. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 18 c. Crédit anonyme C’est un outil permettant de rendre le vote d’un électeur anonyme. Utilisé pour la première fois dans [13], il offre aux votants un système d’authenti- fication et d’anonymat. Dans la littérature la génération du crédit s’effectue de deux manières : – Le votant propose son crédit à l’institution de vote [23] – Le votant reçoit ce crédit anonyme de l’institution de vote de manière sûr 8 [13]. Après réception ou émission du crédit, le votant pourra l’attacher à son vote pour s’au- thentifier auprès de l’institution de vote, n assurer que le vote vient bien de lui. Sa sécurité repose sur le secret entre l’institution et le votant. Il empêche le votant de vendre son vote car il est quasiment impossible de prouver à l’attaquant que le crédit anonyme utilisé est valide ou pas. Ce système protège les utilisateurs de la coercition puisqu’il est mis en place pour qu’il soit impossible à un attaquant de distinguer un vote associé à un faux crédit d’un vote associé au véritable crédit (i.e celui transmis par l’institution de vote). Dans la littérature, le crédit anonyme est généralement une chaine de caractères alphanumériques [13], un mot de vote [23] ou encore une signature [2]. 1.2.2.3 Primitives d’intégrité Fonction de hachage Une fonction de hachage H est une fonction particulière qui, à partir d’une donnée de taille arbitraire fournie en entrée, calcule une empreinte - appelée le haché - de taille fixe (typiquement, 128, 160 ou 256 bits). Les fonctions de hachage à usage cryptographique doivent satisfaire les propriétés suivantes : 1. Sens unique : il est très difficile de trouver le contenu du message à partir de son empreinte (attaque sur la première pré-image). Autrement dit, étant donné y, il est difficile de trouver un x tel que H(x) = y en un temps raisonnable. 2. Résistance à une deuxième pré-image : à partir d’un message donné et de son empreinte, il est très difficile de générer un autre message qui donne la même empreinte (attaque sur la seconde pré-image). Autrement dit, étant donné y = H(x), il est difficile de trouver en temps raisonnable s = x tel que H(s) = y. 3. Résistance aux collisions : il est très difficile de trouver deux messages aléa- toires qui donnent la même empreinte. Autrement dit, il est difficile de trouver x et s (x = s) tels que H(x) = H(s) en temps raisonnable. 8. sûr ici signifie que le secret de ce crédit anonyme ne peut être révélé à un individu extérieur à la communication. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  28. 28. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 19 1.2.2.4 Primitives d’authentification et de vérification Primitives d’authentification Comme cités ci-dessus les mécanismes d’authentification pour les schémas de vote électronique sont de deux ordres (interne et externe). Authentification externe (iden- tification) utilise les techniques cryptographiques symétriques (Mot de passe) ou asy- métriques (signatures). En ce qui concerne l’authentification interne, les primitives qui assurent également l’anonymat peuvent être utilisées (signatures aveugles, crédit ano- nyme). Primitives de vérification ou preuves Elles offrent des fonctionnalités essentielles particulièrement utiles pour les schémas de vote où la confidentialité doit être préservée. Dans les schémas de vote, Les preuves généralement rencontrées sont les preuves à divulgation nulle de connaissance [24]. Une preuve à divulgation nulle de connaissance est un protocole à deux parties entre un prouveur et un vérificateur. Elle permet au prouveur de convaincre le vérificateur qu’il connait un secret, sans le révéler. En pratique, ce système se présente souvent sous la forme d’un protocole de type défie/réponse (challenge-réponse). Dans les preuves à divulgation nulle de connaissance, on distingue : la preuve à divulgation nulle de la connaissance d’un logarithme discret, la preuve à divulgation nulle de connaissance d’égalité du logarithme discret, la preuve à divulgation nulle de connaissance de validité du contenu d’un message chiffré a. Preuve à divulgation nulle de la connaissance d’un logarithme discret Soit g le générateur du groupe multiplicatif Z∗ p d’ordre p. Un prouveur P connait le logarithme discret de h = gl , soit l. Il souhaite le prouver à un vérificateur sans que ce dernier puisse prendre connaissance de l. Cette preuve est généralement réalisée par le protocole de Schnorr [23]. Protocole de Schnorr 1. Prouveur choisit un nombre aléatoire v (mod p). 2. Prouveur calcule t = gv et envoie cette valeur au Vérificateur. 3. Vérificateur calcule le challenge c = H(g, h, t) où H est une fonction de hachage et envoie c au prouveur. 4. Prouveur calcule alors r = v − cl (mod p) et l’envoie au Vérificateur. 5. Vérificateur peut maintenant s’assurer que t = gr hc est bien égal à t. Si tel est le cas, alors le Prouveur a prouvé la connaissance de l sans le communiquer au Vérificateur MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  29. 29. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 20 b. Preuve à divulgation nulle de connaissance d’égalité du logarithme dis- cret Un prouveur P connait le logarithme discret l tel que x = gl et y = hl . Il souhaite le prouver à un vérificateur sans que ce dernier puisse prendre connaissance de l. Cette preuve se réalise par le protocole de Chaum-Pedersen [22]. Dans le vote on l’utilise lors du Déchiffrement distribué (voir section 1.2.2.6) c. Preuve à divulgation nulle de connaissance de validité du contenu d’un message chiffré [14] introduit une méthode permettant de savoir si un message m chiffré est valide. Dans les schémas de vote on utilise cette preuve pour garantir l’exactitude du vote émis i.e. qu’il est le chiffrement du choix d’un candidat valide sans dévoiler celui-ci. Preuve non-interactive à divulgation nulle de connaissance L’électeur peut prouver que son vote est correct. Cependant, cette preuve nécessite une interaction avec le vérificateur, ce qui n’est pas possible en pratique dans un schéma de vote. En effet, il faut que toute entité puisse vérifier que le vote est correct. Ainsi, il est nécessaire de rendre cette preuve non interactive. Pour cela, on utilise le résultat de Fiat et Shamir qui permet de remplacer l’interaction avec le vérificateur par une fonction de hachage. 1.2.2.5 Partage de secret En 1979, Shamir invente l’idée du partage de clé secrète 9 . Cette idée repose sur la reconstruction de l’équation d’un polynôme grâce à la connaissance d’un certain nombre de ses points. Ceci par l’interpolation de Lagrange qui stipule que la connaissance de n points d’un polynôme de degré t − 1 permet de reconstruire l’équation de ce polynôme (voir Figure 1.3). Distribution des parts Soit D une entité de confiance, appelée dealer pour partager un secret s à n entités nommées Pi, D va créer f(x) un polynôme aléatoire de degré t − 1 < n, tel que f(0) = s. f(x) = s + t i=1 aixi (1.1) Pour tout i ∈ [1, n], D calcule n points de son polynôme : (xi, yi) = (i, f(i)) (1.2) 9. secret sharing en anglais MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  30. 30. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 21 et va envoyer ∀i, le point (xi, yi) à l’entité Pi. Chaque entité Pi possède donc un point d’un polynôme de degré t − 1. Reconstruction du secret Si t entités parmi les n coopèrent, ils peuvent reconstruire l’équation du polynôme par l’interpolation de Lagrange. Il apparait évident que s’ils ont l’équation du polynôme cela implique qu’ils ont la valeur de la clé secrète, Cette clé se- crète est la valeur du polynôme f(x) pour x = 0. – Supposons la connaissance de n points : (x1, y1), (x2, y2), ..., (xn, yn), d’un polynôme de degré t − 1, noté f(x). – Les polynômes de Lagrange associés à chaque point peuvent être calculés comme suit : li(x) = t j=1,j=i x − xi xj − xi (1.3) – Le polynôme d’interpolation : f(x) = i yi.li(x) (1.4) est le seul polynôme de degré t − 1 (au plus) passant par tous ces n points. – La valeur de s = f(0) est calculée comme suit : s = f(0) = t i yi t j=1,j=i xi xi − xj (1.5) FIGURE 1.3 – Interpolation de Lagrange Si par contre t − 1 entités coopèrent, elles ne peuvent pas reconstruire ce polynôme. la technique décrite est appelée partage de secret à seuil (t, n). Où t est le seuil c’est à dire le nombre minimum d’entités qui doivent coopérer pour retrouver le secret. Dans le contexte du vote électronique, on l’utilise d’une part dans la construction des systèmes cryptographiques à seuil (voire section 1.2.2.6) et d’autre part dans les Mixnets où on partage la clé privée (utilisée pour le déchiffrement) pour assurer la Robustesse du système [1]. 1.2.2.6 Systèmes cryptographiques distribués Définition des cryptosystèmes distribués La sécurité de la clé privée est faible si elle est détenue par une entité. Il serait in- téressant de partager cette clé à plusieurs entités de manière à ce qu’il soit impossible MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  31. 31. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 22 pour une seule de déchiffrer un message. Un cryptosystème est dit distribué (Threshold cryptosystem) si pour déchiffrer un mes- sage chiffré, plusieurs entités sont nécessaires.La technique pour le réaliser utilise le principe du Partage de secret ( section 1.2.2.5). On publie une clé publique et on partage la clé privée entre différentes entités. Ainsi lorsque, le cryptosystème est dit distribué à seuil t de n, seules t entités sur n (t < n) sont nécessaires pour déchiffrer correctement le message. Cryptosystème ElGamal distribué Un cryptosystème à seuil est composé d’un protocole de génération de clés et d’un Proto- cole de déchiffrement distribué. Nous présentons le Cryptosystème ElGamal distribué. Le protocole de génération des clés a été initialement proposé par Pedersen. la version décrite ici est une simplification du schéma de Pedersen donné par Gennaro et al dans [8]. Le Protocole de déchiffrement distribué quant à lui provient de Cramer et al. a. Génération de clés Avant de générer les clés, les autorités définissent conjointement les paramètres du système (p, g, y). Pour cela elles utilisent un algorithme qui produit ces clés de manière coopérative. Cette méthode consiste à permettre à un groupe d’autorités de coopérer pour générer un secret, sans l’aide d’une entité de confiance, comme l’était le dealer. Pedersen dans [9] propose de faire de chacune des n autorités un dealer : Chacune des entités Pi choisit un secret si, un polynôme fi(x) de degré t − 1 tel que fi(0) = si et va calculer des points de son polynôme pour les distribuer aux autres entités. La part de secret d’une entité Pi sera alors calculée comme étant la somme des points qui lui ont été envoyés. Lors de l’élaboration des clés publiques et privées, un certain nombre d’autorités participant à l’élaboration de la clé sont défaillantes et peuvent transmettre des infor- mations incorrectes aux autres entités. Le protocole de génération de clé distribué se doit donc d’utiliser un système permettant de vérifier que les informations transmises sont cohérentes. D’où l’utilisation lors du partage du protocole de partage de secret véri- fiable de Feldman 10 . La Figure 1.4 illustre le protocole de génération de clé vérifiable de Pedersen. N.B : nous ne présentons pas l’algorithme de chiffrement parce qu’il est identique à celui du chiffrement ElGamal classique de la section (1.2.1) 10. Feldman’s verifiable secret sharing (VSS) protocol en anglais. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  32. 32. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 23 Protocole de génération de clé 1. Chaque autorité Ai choisit un polynôme aléatoire fi(x) de degré t−1 dans Zq[x]. fi(x) = ai0 + ai1x + ... + ait−1xt−1 (1.6) où fi(0) = ai0 = xi et yi = Xi0 = gxi . Ai, diffuse Xik = gaik pour k = 0, ..., t − 1. Chaque autorité Ai calcule et envoie de manière privée la part secrète sij à l’autorité Aj : sij = fi(j) pourj = 1, ..., n (1.7) 2. Chaque autorité Aj vérifie si : gsij = t−1 k=0 (Xik)jk (1.8) Si cette égalité n’est pas vérifiée alors l’autorité Aj diffuse une plainte contre Ai. 3. Chaque autorité Ai qui en tant que dealer a reçu une plainte de Aj diffuse les valeurs sij qui satisfont l’équation (1.8). 4. L’autorité Ai est disqualifiée si : – plus de t − 1 autorités se plaignent d’une autorité Ai, – une des parts secrète révélée sij ne permet pas de vérifier l’équation (1.8), Par convention [9], les parts secrètes partagées par l’autorité disqualifiée seront mises à xi = 0 et yi = 1. 5. chaque autorité peut définir Q comme l’ensemble des autorités non disquali- fiées. 6. Chaque autorité Ai non-disqualifiée calcule sa part du secret comme étant : si = j∈Q sji (1.9) 7. La clé publique y est calculée comme suit : y = i yi (1.10) 8. La clé privée partagée x ne peut être calculée par une seule entité mais peut être représentée par : x = i xi (1.11) FIGURE 1.4 – Protocole de génération de clé distribuée de Pedersen b. Déchiffrement distribué Dans [6], Cramer et al propose un protocole de déchiffrement distribuée tel que MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  33. 33. 1.2. CRYPTOGRAPHIE DU VOTE ÉLECTRONIQUE 24 présenté à la Figure 1.5. Les entités déchiffrent ensemble le message chiffré (c1, c2) = (gr , hr m), avec m ∈ Gq. Protocole de déchiffrement distribué 1. Pour chaque part secrète si de x, on note ρi l’engagement envers si : ρi = gsi Chaque autorité Pj peut calculer l’engagement ρi de la manière sui- vante : ρi = n j=1 gsji = n j=1 (yj t l=1 Xil jl) 2. Chaque autorité Pi calcule son déchiffrement partiel wi = c1 si et le dif- fuse accompagné d’une preuve à divulgation nulle de connaissance que : loggρi = logc1 wj Notons que prouver cette égalité revient à prouver que le déchiffrement partiel a bien été réalisé à l’aide de la part secrète si. Cette preuve est une preuve d’égalité du logarithme discret expliquée en section 1.2.2.4. 3. Pour tout sous-ensemble ∆ à t entités dont la preuve d’égalité est valide, le message d’origine peut être retrouvé en utilisant l’interpolation de Lagrange : m = c2 i∈∆ w λj,∆ i où : λi,∆ = l∈∆|{i} l l − i FIGURE 1.5 – Protocole de déchiffrement distribué Ce protocole est vérifiable étant donné que chaque étape peut être refaite et vérifiée. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  34. 34. 1.3. COURBES ELLIPTIQUES 25 1.2.3 Propriétés du vote et lien cryptographique Dans cette partie nous faisons un récapitulatif des différentes propriétés du vote élec- tronique, le lien avec les services de sécurité et les primitives cryptographiques utilisées pour les assurer. TABLEAU 1.1 – Tableau récapitulatif des propriétés d’un e-vote et lien cryptographique Propriétés d’un e-vote Services de sécurité Primitives cryptographiques Exemples de primitives Secret des votes Confidentialité Chiffrement homomorphique ElGamal, Paillier,... Receipt-freenes Rechiffrement Éligibilité Authentification Technique symétrique Mot de passe Technique asymétrique Signature Précision Intégrité Fonction de hachage SHA Non répudiation Signature ElGamal Mixnet Déchiffrement Secret des votes Anonymat Rechiffrement Signature aveugle RSA Confidentialité Chaine de caractères Résistance à la coercition Crédit anonyme Mot de vote Anonymat Signature Vérifiabilité individuelle Preuves Validité Vérifiabilité universelle Chaum Pedersen 1.3 Courbes elliptiques L’objectif de ce travail est d’élaborer un système de vote électronique dont la sécu- rité s’appuie sur les cryptosystèmes construits sur les courbes elliptiques. Il importe de faire une brève présentation de celles-ci. Notons que certaines démonstrations ma- thématiques ne seront pas détaillées. Le lecteur voulant obtenir plus de détails pourra consulter [11]. Historiquement, les courbes elliptiques sont apparues dans la résolution de nom- breux problèmes bien avant la naissance de la cryptographie à clé publique. De nom- breux problèmes de gravitation ou d’électromagnétisme ont par exemple été résolus par des calculs d’intégrales elliptiques ; on en retrouve en particulier dans des travaux d’Eu- ler et de Gauss. Mais les courbes elliptiques interviennent aussi dans la résolution de nombreux problèmes en théorie des nombres. 1.3.1 Courbes elliptiques définies sur un corps quelconque Définition 1.3.1. Soit k un corps, on appelle équation de Weierstrass sur k une équa- tion de la forme : E : y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (1.12) avecai ∈ k. Cette équation est celle d’une courbe. Une courbe donnée par une telle équa- tion est dite lisse ou non singulière si le système d’équation suivant n’admet pas de solution MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  35. 35. 1.3. COURBES ELLIPTIQUES 26 a1y = 3x2 + 2a2x + a4 2y + a1x + a3 = 0 Autrement dit si les dérivés partielles en x et en y de f(x, y) = y2 + a1xy + a3y − x3 − a2x2 − a4x − a6 ne s’annulent pas simultanément. Définition 1.3.2. Soit k un corps, une courbe elliptique E définie sur k est une courbe lisse définie par l’équation de Weierstrass : E : y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (1.13) où ai ∈ k La figure 1.6(a) représente la courbe elliptique définie par l’équation y2 +y = x3 −7x+6 sur R. La figure 1.6(b) illustre la courbe définie par y2 = x3 − 3x + 4 sur R. (a) Courbe elliptique d’équation y2 +y = x3 −7x+6 (b) Courbe elliptique d’équation y2 = x3 − 3x + 4 FIGURE 1.6 – Courbes elliptiques définies sur le corps R Nous pouvons définir E(k) Définition 1.3.3. L’ensemble des points k-rationnels d’une courbe elliptique définie sur un corps k et noté E(k) est donné par : E(k) = {(x, y) ∈ K × K | y2 + a1xy + a3y = x3 + a2x2 + a4x + a6} ∪ O où O est un point k-rationnel appelé point à l’infini. Remarque 1.3.1. Sur la définition de la courbe MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  36. 36. 1.3. COURBES ELLIPTIQUES 27 la courbe E est définie sur k parce-que les coefficients ai de l’équation (1.13) sont des éléments de k. Notons que si E est définie sur k, alors E est également définie sur toute extension de k Définition 1.3.4. Soit E une courbe elliptique. Vérifier que la courbe est non singu- lière peut se faire algébriquement en calculant ∆ le discriminant de E donné par les quantités suivantes : ∆ = −b2 2b8 − 8b3 4 − 27b2 6 + 9b2b4b6 où b2 = a2 1 + 4a2 b4 = 2a4 + a1a3 b6 = a3 3 + 4a6 b8 = a2 1a6 + 4a2a6 − a1a3a4 + a2a2 3 − a2 4 c4 = b2 2 − 24b4 c6 = −b3 2 + 36b2b4 − 216b6 Théorème 1.3.1. Soit E une courbe donnée par une équation de Weierstrass. Alors E est non singulière (lisse) si et seulement si ∆ = 0. Définition 1.3.5. Lorsque ∆ = 0, la notion d’Invariant j de la courbe est définie par : j(E) = c3 4 ∆ Théorème 1.3.2. Soit k un corps de caractéristique p. Deux courbes données par leurs équations de Weierstrass dont ∆ = 0 sont isomorphes si elles ont le même j-invariant. La réciproque est vraie si k est un corps algébriquement clos. Preuve. Pour la preuve voir [12] Soit p la caractéristique du corps k ; si p = 2, 3 alors en faisant des changements de variables successifs, l’équation (1.13) peut être ramené à une équation réduite de la forme : E : y2 = x3 + ax + b avec ∆ = −16(4a3 + 27b2 ) = 0. Loi de groupe Définition 1.3.6. Soit E une courbe elliptique définie sur un corps k , soient P et Q deux points de E(k). 1. Si P et Q sont deux points distincts, et L, la droite passant par P et Q, Il existe un unique troisième point R qui est le point d’intersection entre L et E. Soit L∗ la droite verticale passant par R. Le symétrique de R par rapport à l’axe des abscisses est le point P + Q ∈ E(k). 2. Si P et Q sont confondus, on définit L, la tangente à la courbe E qui passe par P. Il existe un unique troisième point R qui est le point d’intersection entre L et MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  37. 37. 1.3. COURBES ELLIPTIQUES 28 E. Le symétrique de R par rapport à l’axe des abscisses [2] P ∈ E(k) appelé Le doublement de P. (a) Addition P + Q avec P = Q (b) Doublement P + Q avec P = Q FIGURE 1.7 – Addition et doublement d’un point Remarque 1.3.2. Cas particulier : (a) Addition P + Q + O = O (b) Doublement P + P + O = O FIGURE 1.8 – cas particulier d’addition et doublement Théorème 1.3.3. la loi + précédente définit une structure de groupe commutatif sur E, ayant O comme élément neutre. Preuve. 1. La loi+ est associative soient P, Q, R ∈ E : (P + Q) + R = P + (Q + R) 2. La loi + est commutative soient P, Q ∈ E alors P + Q = Q + P 3. Il existe un point O ∈ E tel que O + P = P + O = P 4. Pour tout élément P ∈ E ,−P ∈ E tel que P + −P = −P + P = O MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  38. 38. 1.3. COURBES ELLIPTIQUES 29 La démonstration mathématique de ces différents points est détaillée dans [12]. Les formules algébriques pour cette loi de groupe dérivent de cette description géo- métrique [11]. Formules algébriques pour la loi de groupe Lorsque la caractéristique du corps est différente de 2 ou 3 les formules algébriques pour cette loi de groupe sont les sui- vantes : l’opposé d’un point P = (x, y) ∈ E(k) est donné par le point −P = (x, −y) ∈ E(k). Les formules d’addition et de doublement sur k sont les suivantes. soient P, Q ∈ E(k) où P = (x1, y1) et Q = (x2, y2) : 1. si P = ±Q alors P + Q = (x3, y3) avec :   x3 = (y2−y1 x2−x1 ) 2 − x1 − x2 y3 = (x1 − x3)(y2−y1 x2−x1 ) − y1 2. si P = Q alors 2P = (x3, y3) avec :   x3 = ( 3x2 1+a 2y1 ) 2 − 2x1 y3 = (x1 − x3)( 3x2 1+a 2y1 ) − y1 En cryptographiques on s’intéresse surtout aux courbes elliptiques définies sur des corps finis (par exemple Fp, avec p =2,3), puisque le cardinal de ces courbes est connu et les calculs sont plus aisés. 1.3.2 Courbes elliptiques définies sur un corps fini Lorsque le corps est fini la courbe n’est pas dans un espace continue. Sa représenta- tion est constituée d’un ensemble de points discrets (Figure 1.9) (a) Courbe elliptique d’équation y2 = x3 + 2x + 3 sur F997 (b) Courbe elliptique d’équation y2 = x3 + 10x + 4 sur F13 FIGURE 1.9 – Courbes elliptiques définies sur les corps Fq MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  39. 39. 1.3. COURBES ELLIPTIQUES 30 Nombre de points d’une courbe elliptique définie sur un corps fini Soit E une courbe elliptique définie sur Fq, q = pm où p est la caractéristique du corps Fq et m ∈ N∗ . On note #E(Fq) le nombre de points de E(Fq). #E(Fq) est appelé l’ordre du groupe des points de E sur le corps fini Fq [11]. Le théorème de Hasse donne une approximation du nombre de points de E(Fq). Ce théorème est très important en cryp- tographie étant donné que compter les points d’une courbe elliptique est indispensable dans la recherche des courbes sures pour la cryptographie (voir section 1.3.6.1). Remarque 1.3.3. Soit E(Fq) une courbe donnée par l’équation de Weierstrass (1.13), cette équation a au plus deux solutions pour chaque choix de x dans Fq, on peut donc dire que : #E(Fq) ≤ 2q + 1 Théorème 1.3.4. (Hasse) Soit E une courbe elliptique définie sur Fq, alors #E(Fq) = q + 1 − t avec |t| ≤ 2 √ q Preuve. La démonstration de ce théorème est donnée dans [12]. Corollaire 1.3.1. |#E(Fq) − (q + 1)| ≤ 2 √ q Définition 1.3.7 (Ordre d’un point). Soit P un élément du groupe formé des points d’une courbes E définie sur Fq, l’ordre de P est le plus petit entier n tel que [n]P = O. Remarque 1.3.4. On note P l’ensemble des points engendrés par P i.e. [i] P; 0 ≤ i ≤ n − 1 où n est l’ordre de P. L’ensemble P forme un sous-groupe cyclique de E(Fq) engendré par P. Exemple 1.3.1. Soit E une courbe elliptique définie sur le corps F23 d’équation y2 = x3 − 2x − 1. L’ensemble des points de cette courbe est représenté dans le tableau 1.2 TABLEAU 1.2 – Points de la courbe d’équation y2 = x3 − 2x − 1 mod 23 Point Ordre Point Ordre Point Ordre Point Ordre O 1 (8, 9) 14 (13, 13) 28 (19, 9) 28 (2, 7) 7 (8, 14) 14 (14, 1) 28 (19,14) 28 (2,16) 7 (10, 6) 28 (14, 22) 28 (20, 1) 28 (4, 3) 28 (10, 17) 28 (15, 3) 14 (20, 22) 28 (4, 20) 28 (12, 1) 7 (15, 20) 14 (21, 8) 4 (7, 11) 14 (12, 22) 7 (17, 5) 7 (21, 15) 4 (7, 12) 14 (13, 10) 28 (17,18) 7 (22, 0) 2 – Le point (4, 3) comme tous les points d’ordre 28 sont les générateurs du sous-groupe d’ordre maximal de la courbe d’équation y2 = x3 − 2x − 1. – Le point (7, 11) est un générateur d’un sous-groupe différent de celui qui précède et d’ordre 14. – L’ordre de la courbe #E(F23) est 28. – L’ordre des points de la courbe est un facteur de l’ordre de la courbe. Dans cet exemple, les ordres 14, 7, 4, 2 sont des facteurs de 28. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  40. 40. 1.3. COURBES ELLIPTIQUES 31 Généralement, on va choisir des courbes sur Fq telles que #E(Fq) = hp avec h petit appelé cofacteur et p un grand nombre premier. 1.3.3 Problème du logarithme discret sur les courbes elliptiques Nous avons une définition générale des courbes elliptiques, ainsi que des formules d’addition et de doublement. Dans cette partie, nous rappelons le problème du loga- rithme discret, et voir son application sur les courbes elliptiques. Nous avons vu que le groupe formé par l’ensemble des points d’une courbe est un groupe abélien fini. De manière analogue au problème du logarithme discret sur un groupe multiplicatif, on peut définir le problème du logarithme discret sur les courbes elliptiques (ECDLP : Elliptic Curve Discrete Logarithm Problem). Définition 1.3.8 (Problème du Logarithme Discret sur les courbes elliptiques). Soient E une courbe elliptique définie sur un corps fini (Fp), P un sous-groupe cyclique de E(Fp) d’ordre premier n engendré par le point P et un point Q ∈ P , chercher l’entier k ∈ [0, n − 1] tel que Q = [k] P. L’entier k est le logarithme discret de Q en base P. La difficulté du Problème du Logarithme Discret sur les courbes elliptiques est es- sentielle pour la sécurité des systèmes cryptographiques construis sur les courbes ellip- tiques. 1.3.4 Multiplication scalaire Comme nous venons de le voir, la cryptographie sur les courbes elliptiques repose sur le problème du logarithme discret sur un groupe formé des points de la courbe. Définition 1.3.9. Soient E une courbe elliptique définie sur Fq, P un point de E(Fq) et k ∈ Z. La multiplication scalaire, notée [k] P, est la fonction définie comme suit : E(Fp) × Z −→ E(Fp) (P, k) −→ [k] P = P + P + ... + P k fois avec [0] P = O et [k] P = [−k] (−P) 1.3.5 Les systèmes cryptographiques utilisant les courbes ellip- tiques Soit E une courbe elliptique définie sur Fp. Soit P un générateur de E(Fp), supposons que l’ordre du point P est le nombre premier n. Alors le sous-groupe cyclique de E(Fp) généré par P est : P = {O, P, [2] P, ..., [n − 1] P} ⊆ E(Fp) avec [n] P = O. Afin de concevoir un cryptosystéme sur les courbes elliptiques la fonction à calculer est la multiplication scalaire de ce point P par k. Cette fonction est dite « à sens unique » : MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  41. 41. 1.3. COURBES ELLIPTIQUES 32 connaissant l’entier k et le point P, il est facile de calculer Q = [k] P mais connaissant Q et P il est difficile de retrouver k. La sécurité de ce cryptosystème repose donc sur le problème du logarithme discret sur les courbes elliptiques (Elliptic Curve Discrete Logarithm Problem, ECDLP). 1.3.5.1 Le Cryptosystème ElGamal elliptique Supposons que Bob souhaite envoyer un message à Alice sous forme chiffré de sorte que Alice soit la seule à pouvoir le déchiffrer. Génération des clés Chaque entité crée la clé publique et la clé privée correspondante a). Choisir une courbe elliptique E définie sur Fp et un point primitif P de E(Fp) d’orde q, b). Choisir un entier aléatoire d ∈ [1, q − 1] et calculer Q = [d] P. c). La clé publique est (E, P, Q) , clé privée= d Bob chiffre un message m pour Alice, qu’Alice déchiffre. 1.Chiffrement : Bob effectue les actions suivantes : a). Obtenir la clé publique (E, P, Q) de Alice. b). Représenter le message m comme un élément de m ∈ E(Fp), c). Choisir aléatoirement un entier k ∈ [1, q − 1] d). Calculer c1 = [k] P et c2 = [k] Q + m. e). Envoyer le texte chiffré c = (c1, c2) à Alice. 2.Déchiffrement : Pour récupérer le message Alice procède de la manière suivante : calcul m = c2 − [d] c1. Il est facile de vérifier que la phase de déchiffrement permet de retrouver le message clair. En effet, c2 − [d] c1 = ([k] Q + m) − [dk] P = ([kd] P + m) − ([kd] P) = m Rechiffrement Le système de chiffrement ElGamal elliptique offre la propriété de rechiffrement : – Choisir un entier aléatoire s, 1 ≤ s ≤ n − 1 – Modifier le chiffré avec c1 = c1 + [s] P et c2 = c2 + [s] Q Nous remarquons que ce processus modifie le chiffré mais préserve le message en clair. Rechiff (chiff(m, k), s) = (chiff (m, k) + chiff (1, s)) = ([k] P + [s] P, m + [k] Q + [s] Q) = ([k + s] P, m + [k + s] Q) MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  42. 42. 1.3. COURBES ELLIPTIQUES 33 Propriété homomorphique Ce cryptosystème admet une propriété homomorphique additive : Supposons que nous avons deux chiffrés c1 = ([k1] P, m1 + k1([d] P)) et c2 = ([k2] P, m2 + k2([d] P)) des messages m1 et m2 chiff (m1, k1) + chiff (m2, k2) = ([k1] P, m1 + k1([d] P)) + ([k2] P, m2 + k2([d] P)) = ([k1 + k2] P, (m1 + m2) + [k1 + k2] ([d] P)) = chiff (m1 + m2, (k1 + k2)) 1.3.5.2 Le Protocole d’échange de clés de Diffie-Hellman Description Supposons que Alice et Bob, souhaitent partager un secret commun K. Pour cela ils utilisent comme moyen de communication un canal non sécurisé où l’information peut être intercepté. Pour ce partage, ils s’entendent sur le choix d’une courbe elliptique E définie sur Fp et un point primitif P de E(Fp) d’ordre n. Alice choisit sécrètement a [1, n − 1], calcule A = [a] P mod p et transmet A à Bob. Bob choisit sécrètement b [1, n − 1], calcule B = [b] P mod p et transmet B à Alice. À la réception Alice peut calculer [a] B mod p et bob peut calculer [b] A mod p et on obtient la clé secrète commune K avec : K = [ab] P = [a] B = [b] A paramètres publics : une courbe elliptique E définie sur Fp un générateur P d’ordre n secrets a, b [1, n − 1] Alice Bob choisit a [1, n − 1] choisit b [1, n − 1] calcul A = [a] P mod p A−→ calcul B = [b] P mod p B←− K = [ab] P = [a] B K = [ba] P = [b] A 1.3.6 Sécurité et choix des courbes elliptiques pour la cryptogra- phie L’un des principaux avantages de l’utilisation des cryptosystèmes sur les courbes elliptiques est qu’ils utilisent des clés (en bit) de petites tailles. Alors que pour le même MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  43. 43. 1.3. COURBES ELLIPTIQUES 34 niveau de sécurité le système cryptographique RSA utilise des clés environ 6 fois plus longues. Le tableau 1.3 représente le nombre de bits en taille des clés pour RSA et pour le système cryptographique basé sur les courbes elliptiques pour un niveau de sécurité équivalent. TABLEAU 1.3 – Tableau comparatif des tailles de clés de ElGamal(nombre), RSA et ElGamal(ECC) Niveau de sécurité ( bits) Taille minimum des clés ( bits) ElGamal(nombre) RSA ElGamal(ECC) 80 1024 1024 160 112 2048 2048 224 128 3072 3072 256 192 7680 7680 384 256 15360 15360 512 La force des cryptosystèmes sur courbes elliptiques par rapport à ceux sur les nombres (RSA, ElGamal) est la difficulté de résoudre le problème du logarithme discret sur le groupe formé des points de cette courbe elliptique. Ces groupes sont beaucoup moins connus et surtout différents d’une courbe à l’autre. 1.3.6.1 Choix d’une courbe pour la cryptographie et du point générateur Choix de la courbe En général il existe une multitude d’algorithme pour choisir une courbe elliptique sûre en cryptographie. Dans ce document nous ne présentons qu’un seul : 1. Choisir un grand nombre premier p qui sera la caractéristique du corps. 2. Choisir de manière aléatoire les coefficients a et b et définir l’équation de la courbe E : y2 = x3 + ax + b. 3. Déterminer l’ordre de la courbe #E(Fp). 4. Vérifier que : – #E(Fp) ne divise pas pk − 1 pour tout k ≤ (log p)2 . En pratique utilisé k ≤ 20 . – #E(Fp) = p 5. Vérifier que #E(Fp) est divisible par un nombre premier n suffisamment grand n > 2160 6. Vérifier que le grand nombre premier n qui divise #E(Fp), ne divise pas pk − 1 MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  44. 44. 1.3. COURBES ELLIPTIQUES 35 Choix de point générateur Après avoir choisi la courbe elliptique, il est indispensable de déterminer le point G, générateur du sous-groupe dont l’ordre est le plus grand facteur premier de #E(Fp). 1. Choisir de manière aléatoire un point G ∈ E(Fp) et le plus grand nombre premier n qui divise #E(Fp). 2. Vérifier que [n] G = O i.e. n est l’ordre de G Le NIST publie des paramètres standards à donner aux courbes pour leurs effica- cités. L’une des courbes recommandées est la courbe P-192 sur le corps fini (Fp) avec p = 2192 − 264 − 1. Notons que Gx et Gy représentent les coordonnées en x et y du point de base G d’ordre n. p = 6277101735386680763835789423207666416083908700390324961279 La courbe E d’équation y2 = x3 − 3x + b sur (Fp) est donnée par : b = 64210519 E59C80E7 0FA7E9AB 72243049 FEB8DEEC C146B9B1 Gx = 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012 Gy = 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811 n = FFFFFFFF FFFFFFFF FFFFFFFF 99DEF836 146BC9B1 B4D22831 MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  45. 45. CHAPITRE 2 PRÉSENTATION DE QUELQUES SCHÉMAS DE VOTE ÉLECTRONIQUE Trois approches dominent la littérature scientifique concernant l’élaboration des sché- mas de vote électronique. Plusieurs méthodes sont basées sur les mixnets introduits par David Chaum. Ensuite d’autres méthodes se basent sur les signatures aveugles propo- sées par Chaum. Enfin les méthodes basées sur le chiffrement homomorphique. Dans ce chapitre nous présentons deux schémas de vote électronique : le premier construit sur les mixnets et proposé par Juels et al, le dernier proposé par Porkodi et basé sur le système de chiffrement homomorphique (ElGamal elliptique). 2.1 Schéma de Juels, Catalano et Jakobsson Ce schéma de vote est le premier à fournir la propriété de résistance à la coercition. Il utilise les canaux anonymes tels que les mixnets (voire Section 1.2.2.2) et introduit la notion de crédit anonyme. 2.1.1 Principe L’idée principale de ce schéma de vote est de protéger le votant d’attaques éventuelles en lui permettant d’attacher à son vote un crédit anonyme non valide. Le système devra donc agir de la même manière avec le votant, qu’il reçoive un crédit anonyme valide ou non. Ainsi, l’attaquant reste dans le doute face au votant : « A-t-il utilisé le bon crédit anonyme ? Ou non ? ». Ce schéma permet également au votant d’effectuer des votes mul- tiples, le dernier vote émis est celui qui est considéré lors du décompte final. Il utilise : – Le système cryptographique ElGamal (voire Section 1.2.1) pour ses propriétés de chiffrement et de rechiffrement. – Les preuves non interactives à divulgation nulle de connaissance, – Les mixnets à rechiffrement. MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  46. 46. 2.1. SCHÉMA DE JUELS, CATALANO ET JAKOBSSON 37 La supposition selon laquelle la phase d’enregistrement est inattaquable est faite dans ce schéma. 2.1.2 Fonctionnement Phase de configuration Les paires de clés (SKR, PKR) et (SKT , PKT ) sont générées pour les autorités d’enregistrement et celles du décompte. Ces clés publiques PKR,PKT sont publiées de même que les paramètres du système. Phase d’enregistrement Les autorités d’enregistrement R vérifient l’éligibilité de chaque votant Vi, génèrent et transmettent à Vi un crédit anonyme. Ils publient sur les tableaux publics l’identifiant du votant, IDi à côté de son crédit anonyme chiffré à l’aide de la clé publique PKT . Soit L la liste électorale. L est conservé dans BB contenant tous les crédits anonymes chiffrés publiés par les autorités dans BB Pour l’illustration voir Figure (2.1) FIGURE 2.1 – Phase d’enregistrement du schéma de Juels et al Phase de vote Le votant Vi transmet son vote vi qui sera publié sur le tableau de vote publique. Ce bulletin de vote est composé d’un crédit anonyme chiffré, du vote chiffré à l’aide de la clé publique PKT et d’une preuve de validité montrant que le vote chiffré représente le chiffrement d’un candidat valide. Il faut noter que le chiffrement du crédit anonyme effectué par le votant n’est pas le même que celui effectué par R. En effet, le chiffrement ElGamal est un chiffrement probabiliste. Pour l’illustration voir Figure (2.2) MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  47. 47. 2.1. SCHÉMA DE JUELS, CATALANO ET JAKOBSSON 38 FIGURE 2.2 – Phase de vote du schéma de Juels et al Phase de décompte Les autorités chargées du décompte Tj effectuent les actions suivantes : 1. Vérification que toutes les preuves contenues dans BB sont correctes. Tout vote ayant une preuve invalide est éliminé. Soit A1 et B1 les liste contenant les chiffrés de candidat et crédit respectivement. 2. Élimination des double vote. Pour éliminer les doublons, il applique un test d’éga- lité (PET) sur chaque paire de chiffré contenue dans B1 et supprime les entrées où les valeurs sont identiques. Soient A2 et B2 les chiffrés (vote et crédit anonyme) restants. 3. Mélanger A2 et B2 à l’aide d’un mixnet qui renvoie A3 et B3. La liste L est également mixée et on obtient L . 4. Comparer des crédits anonymes de la liste L avec ceux de la liste B3, élimination des votes si le crédit anonyme chiffré dans B3 ne correspond à aucun élément de la liste L (voir Section 2.1.3). A4 est le vecteur de vote valide. 5. déchiffrer A4 et décompter les voix pour publier le résultat de l’élection. Pour l’illustration voir Figure (2.3) MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  48. 48. 2.1. SCHÉMA DE JUELS, CATALANO ET JAKOBSSON 39 FIGURE 2.3 – Phase de décompte du schéma de Juels et al 2.1.3 Vérification du crédit anonyme Deux chiffrements d’un même crédit anonyme sont différents l’un de l’autre (le chif- frement ElGamal est probabiliste), il faut mettre en place une technique de comparaison de crédit anonyme de telle manière que les autorités de vote ne puissent avoir accès au contenu du crédit anonyme (déchiffré). Si le contenu de ce crédit est accessible à une au- torité de vote, alors cette autorité de vote peut lever l’anonymat du vote de cet électeur. Pour pallier ce problème, le schéma de vote de Juels et al utilise un « test d’égalité de messages orignaux ou message en clair » (PET, Plaintext Equality Test). Ce test est une fonction qui prend en entrée deux chiffrés réalisés par le système de chiffrement ElGamal 1 et retourne le chiffré de 1 si les messages chiffrés sont égaux et celui de 0 dans le cas contraire. Exemple 2.1.1. Supposons c1 = (x1, y1) = (gr1 , hr1 m1) et c2 = (x2, y2) = (gr2 , hr2 m2) deux chiffrés. PET prend c1 et c2 et calcule c3 = (x3, y3) = (gr3 , hr3 m3) = (x1 x2 , y1 y2 ) = (g(r1−r2) , h(r1−r2) m1 m2 ) si m1 = m2, alors m1 m2 = m3 = 1. Après ce test, il suffit à Tj de déchiffrer c3 = (x3, y3). Si le résultat du déchiffrement est 1 alors c1 et c2 sont des chiffrements d’un même message. Ainsi Tj vérifie la validité du crédit mais n’a aucune idée sur le véritable crédit anonyme voir [24]. Nous donnons l’illustration graphique du schéma complet à la Figure (2.4). Notons que les numéros 1,2,3 représentent les actions menées lors des différentes phases (1 pour l’enregistrement, 2 pour le vote, 3 pour le décompte). 2.1.4 Analyse Propriétés respectées Ce schéma assure les propriétés suivantes : 1. Le schéma original de Juels et al utilise un système cryptographique ElGamal exponentiel. Il est donc possible d’adapter le test d’égalité de messages orignaux à d’autres systèmes basés sur le problème du Logarithme discret MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011
  49. 49. 2.1. SCHÉMA DE JUELS, CATALANO ET JAKOBSSON 40 FIGURE 2.4 – Schéma de Juels, Catalano et Jakobsson (1) Receipt-freeness (sans reçu) : Ce schéma offre la possibilité de vérifier le cré- dit après avoir mixé les votes. Dans ce cas le votant est dans l’impossibilité d’obte- nir des informations pour concevoir un reçu. (2) résistance à la coercition : Ce schéma est Receipt-freeness, en plus il donne la possibilité au votant d’effectuer de faux votes (i.e accompagné de crédit non valide) tout en permettant également à ce dernier de distribuer des crédits non valide aux attaquants. (3) Vérifiabilité universelle : Toute les étapes de ce schéma peuvent être vérifié : de la génération des clés aux décomptes. Ce schéma utilise un tableau de vote (BB) qui est publiquement accessible. Limites (1) Efficience : Étant donné que le test d’égalité du crédit anonyme est réalisé sur l’ensemble de tous les crédits, ce schéma est inefficient car le décompte des votes s’effectue en temps quadratique en fonction du nombre de votes (électeurs) [24]. Des améliorations sont proposées : – L’utilisation d’une table de hachage pour détecter des collisions de crédit ano- nyme plus facilement a été proposée dans [22]. L’idée étant de créer une em- preinte aveugle de ce crédit en élevant le chiffré du crédit anonyme à une cer- taine puissance z et ensuite, en déchiffrant le résultat, les autorités de décompte obtiennent une empreinte déterministe du crédit anonyme sans en connaitre sa MEMOIRE DE MASTER c AMBASSA Pacôme Landry U.N SLED 2010-2011

×