Étude, analyse et prototype d implémentation d un système de vote électronique à distance.

Dimension: px
Commencer à balayer dès la page:

Download "Étude, analyse et prototype d implémentation d un système de vote électronique à distance."

Transcription

1 UNIVERSITÉ LIBRE DE BRUXELLES Faculté des Sciences Département d Informatique Étude, analyse et prototype d implémentation d un système de vote électronique à distance. Mathieu Stennier Promoteurs : Prof. Olivier Markowitch Assistant Jerôme Dossogne MEMO-F-500 Mémoire de fin d étude Deuxième Master en Sciences Informatiques Année académique

2 Ce travail a été réalisé en collaboration avec Jérôme Dossogne, chercheur du service QualSec au département informatique de la faculté des sciences de l Université Libre de Bruxelles.

3 À la mémoire de Paul Girboux, mon grand-père de coeur. iii

4 Remerciements Il est minuit! mon mémoire est enfin finalisé et il ne me reste que les remerciements à écrire... Le plus dur maintenant est de n oublier personne. Tout d abord, j aimerais remercier mon promoteur Mr Olivier Markowitch qui m a permis de réaliser mon mémoire dans le domaine qui me plaisait le plus. Merci à Jerôme Dossogne pour sa disponibilité et pour tous les partages qu on a pu avoir au cours de cette année. L aboutissement de ce mémoire, c est aussi grâce à toi. Merci à Joël Goossens,Yves Roggeman et Raymond Devillers d avoir accepté de former mon jury de mémoire. Je tenais également à remercier le personnel administratif du département informatique pour nous avoir supportés tout au long de ces 5 années. Un remerciement plus particulier à Maryka Peetroons. Il me faut également remercier les gens sans qui je n aurais pas pu m épanouir au sein de l Université. Un énorme merci à Vladimir Svoboda, Aurélien Gillet, Antonio Paolillo, Tony Dusenge, Bruno Cats, Mathieu Duchêne, Olivier Sputael, Rukiye Akgün, et tous les autres pour ces moments de travail et surtout de rigolade. Un merci tout particulier à Filipe Miguel Gonçalves de Almeida pour son soutien, sa compréhension et son amitié. Merci à Caroline Grégoire pour son soutien au quotidien, sa douceur et son amour. Merci également à toute sa formidable famille pour sa gentillesse et son accueil. Et pour finir en beauté, MERCI à ma maman de m avoir soutenu durant toutes ces longues années d études et qui a fait de moi l homme que je suis aujourd hui. J espère t avoir rendu fière. iv

5 Table des matières 1. Introduction Contexte du vote Exigences Types de votes Analyse du vote traditionnel Identification L isoloir physique Le transport de l urne La confiance Vérifiabilité Conclusion i-voting Objectif du mémoire Contenu Contributions Hypothèses Difficulté du problème du logarithme discret Exponentiation modulaire Calcul du logarithme Difficulté de la factorisation entière en nombres premiers Conclusion Outils cryptographiques Introduction aux systèmes cryptographiques Cryptographie symétrique Cryptographie asymétrique Système cryptographique RSA Fonctionnement de base Remarques et amélioration Signatures digitales RSA Les signatures aveugles Faiblesse du système Schéma de remplissage Système cryptographique d ElGamal Fonctionnement de base Version à seuil Les courbes elliptiques Introduction Courbes elliptiques sur le corps K des nombres réels v

6 Courbes elliptiques sur un corps fini Système cryptographique basé sur les courbes elliptiques Version à seuil Signature digitale à seuil Sécurité Choisir ses groupes Mixnet Mixnet à rechiffrement Mixnet vérifiable Le projet Tor Preuve Preuve à divulgation nulle de connaissance de la connaissance d un logarithme discret Preuve à divulgation nulle de connaissance d égalité de messages chiffrés Conjonction et disjonction de preuve à divulgation nulle de connaissance Preuve non-interactive à divulgation nulle de connaissance Preuve à divulgation nulle de connaissance de validité du contenu d un message chiffré Schémas de vote à distance Schéma basé sur les signatures aveugles Design Fonctionnement Propriétés Schéma Homomorphique : Helios Design Fonctionnement Analyse Schéma de Juels, Catalano et Jakobsson [JCJ05] Design Fonctionnement En coulisse Analyse Remarques Application : Civitas Selections Design Fonctionnement Analyse Autres techniques de vote Isoloir mental Isoloir mental par substitution Isoloir mental par mot de passe Comptage par arbre Fonctionnement Schéma de signature triparti à vérificateur fortement désigné vi

7 Protocole MyVote Design Fonctionnement Phase de configuration Phase d enregistrement Phase de vote Phase de décompte Phase de vérification Phase de validation Phase de contestation Analyse Analyse sur les attaques Implémentation prototype Packages java ulb.ivoting.cryptopackage ulb.ivoting.dictionary ulb.ivoting.iopackage ulb.ivoting.mathpackage ulb.ivoting.networkpackage ulb.ivoting.protocolpackage.eccthresholdsignature Protocole Phase d enregistrement Phase de vote Phase de décompte Phase de validation Problèmes et améliorations Conclusion sur l implémentation Conclusion 87 A. Notions mathématiques 90 A.1. La congruence sur les entiers A.2. Théorie des groupes vii

8 Chapitre 1. Introduction Ce qui compte ce n est pas le vote, c est comment on compte les votes. Joseph Staline Me croiriez-vous si je vous disais que l homme vote par bulletin secret depuis plus de 25 siècles? C est en effet en 594 ACN, à Athènes, qu une des premières formes de votes par bulletin secret vit le jour [Wik]. Tous les athéniens, mis à part les femmes, les esclaves et les étrangers de la cité, étaient conviés à venir débattre au sein de l Ecclésia, la grande assemblée citoyenne de la cité, pour y voter les lois. Les votes y étaient souvent réalisés à main levée mais il y était déjà fréquent d y voir des systèmes de votes à bulletins secrets. Le vote existe donc bien depuis près de 25 siècles! Nous voilà en 2011 et peu de choses ont changé, finalement Contexte du vote Dans un monde où la technologie est constamment en croissance, le vote électronique à distance peine à s établir dans nos chaumières. Pourtant, des systèmes considérés à haut risque comme les transferts bancaires, les achats en ligne ou encore le remplissage des feuilles d impôts, sont aujourd hui proposés sur tous types d ordinateurs personnels. Ceci est dû au fait que tous ces systèmes n ont finalement pas des besoins identiques à ceux du vote. En effet, dans le contexte bancaire par exemple, vous pourriez facilement donner vos informations relatives à votre compte en banque à quelqu un de votre famille, ou même à quelqu un d extérieur à votre famille, pour effectuer des achats sur Internet. Rien ne vous empêche de pouvoir le faire. Dans le contexte du vote électoral, il est tout simplement incohérent qu une telle situation puisse se présenter. Le problème du vote va donc bien au-delà de simples problèmes de sécurité. 1

9 1.2. Exigences Un système de vote devrait pouvoir respecter les propriétés suivantes [Smi05, SP05, Rja02] : 1. Des élections pas chères. Il est certain que le coût des élections a un impact important sur le budget de l État. L utilisation d Internet pourrait terriblement réduire les coûts d impression mais également les coûts relatifs au personnel mobilisé. 2. Difficile à voler. Il faut absolument que cette automatisation ne rende pas plus facile le vol des élections. «Voler les élections»signifie que des organisations gouvernementales, ou autres, ont le pouvoir d altérer le résultat du vote du peuple. Même des organisations ultra secrètes telles que la CIA ou la NSA ne doivent pas pouvoir influencer le résultat du vote. 3. Immunité face à la destruction. Lors d élection par vote électronique, le problème est que les données rassemblées sur plusieurs ordinateurs peuvent être plus facilement détruites. L outillage nécessaire au stockage peut également subir des dommages temporaires ou même définitifs qui entrainerait un dysfonctionnement permettant de fausser un possible recompte des voix. 4. Bulletin secret (incoercibilité). Personne d autre que le votant ne peut savoir ce qu il vote. Dans le cas d un vote à distance, le votant vote sans l utilisation d un isoloir physique lui permettant de masquer son vote. Il peut dès lors y avoir quelqu un au dessus de l épaule du votant pour éventuellement vérifier ses faits et gestes ou même pire l influencer ou l obliger à voter d une certaine manière. C est ce qui s appelle la coercition. Les premiers scientifiques à avoir étudié des solutions de vote électronique résistant à la coercition sont Dario Catalano, Ari Juels et Markus Jakobsson. Ils en donnent une définition complète [JCJ05] : Nous autorisons l adversaire à pouvoir exercer une pression sur le votant pour qu il vote d une manière particulière, s abstienne de voter ou encore partage sa clé secrète. Nous avons défini un schéma résistant à la coercition tel qu il est impossible pour l adversaire de déterminer si le votant sous pression vote bien en son sens 5. Pas de vente (Receipt-freeness). Il doit être impossible pour le votant de pouvoir vendre son vote à qui que ce soit. Ceci revient donc à empêcher le votant d obtenir un reçu de son vote de la part des autorités de vote qui lui permettrait de prouver son contenu à quelqu un. C est la notion de Receipt-freeness introduite par Benaloh [BT94] : Dans un modèle possédant des adversaires capables d exercer une pression sur un votant et/ou des adversaires capables d acheter des votes, le schéma de vote doit non seulement assurer qu un votant puisse garder son vote secret, mais également qu il en ai le devoir. En d autres mots, le votant ne peut en 2

10 aucun cas prouver à une tierce partie qu il a voté pour telle ou telle personne. Mais il doit pourtant être possible pour le votant de vérifier le contenu de son vote. Cette propriété est connue sous le nom de receipt-freeness. 6. Une abstention invisible. Il doit être impossible pour une personne extérieure de pouvoir différencier une abstention d un vote. Si ceci était le cas, il serait possible d influencer une personne à ne pas voter. L abstention n est pas toujours permise. En Belgique, par exemple, il est actuellement obligatoire de participer au vote (Il est cependant possible de voter blanc). 7. Vérifiabilité individuelle. Chaque votant doit pouvoir vérifier que son vote ait été correctement introduit et été pris en compte dans le résultat final. À cette définition, il est possible de différencier deux cas distincts : (1) Le cas où le votant sait vérifier que son vote est dans le tableau final mais sans pouvoir en vérifier le contenu réel (Vérifiabilité individuelle basique) et (2) le cas où le votant possède en plus la preuve du contenu de son vote (Vérifiabilité individuelle étendue). 8. Vérifiabilité universelle. Chaque votant doit pouvoir vérifier que le résultat publié est bien la somme de tous les votes émits. 9. Admissibilité. L autorité électorale doit pouvoir vérifier que seules les personnes ayant le droit de voté ont voté, qu elles ne l ont fait qu une seule fois et de manière correcte. 10. Equité. Aucun des participants ne peut avoir accès à des résultats partiels du comptage des votes. La simple connaissance des intentions de vote actuellement en cours peut influencer le vote des votants n ayant pas encore voté. 11. Accessibilité. Le programme informatique doit être accessible à chaque citoyen, qu il soit handicapé, aveugle, sourd ou souffrant d autres sortes d handicap. En [RT96], il a été démontré qu il existe une corrélation positive entre l âge et l incapacité d effectuer des tâches sur un écran d ordinateur avec une souris. Des solutions devront donc être apportées pour aider ces personnes à effectuer leur vote en toute simplicité. 12. Ne pas influencer le vote. De par la disposition des candidats sur l interface utilisateur, les votants pourraient être influencés dans le choix qu ils s apprêtent à faire. Il a été démontré en [DM90] que les candidats étant positionnés en tête du document sont largement favorisés Types de votes Les différents types de votes sont définis en fonction de la question qu on pose au votant lors de son passage au bureau de vote. Voici une liste des principaux types de votes auxquels un votant peut se retrouver confronté [Rja02] : 3

11 (1) Le vote Oui/Non : Le votant est invité à répondre à une question par oui ou par non. Le vote est représenté par un bit (0 ou 1). (2) Le vote 1-parmi-n : Le votant vote pour un seul candidat parmi les n choix possibles. Le vote est représenté par un chiffre [1, n]. (3) Le vote k-parmi-n : Le votant vote pour k candidat parmi les n choix possibles. Le vote est représenté par un k-tuple (v 1, v 2,..., v k ) où v i [1, n]. (4) Le vote k-parmi-n ordonné : Le votant vote pour k candidat parmi les n choix possibles et ordonne son choix du meilleur au moins bon. Le vote est représenté par un k-tuple (v 1, v 2,..., v k ) où v i [1, n] et où v i est plus important que v i+1. (5) Le vote basé sur les scores : Le votant distribue son vote entre tous les candidats à l aide d un pourcentage. Ce type peut être vu comme étant un type ordonné mais (1) avec des possibilités d égalités et (2) où le votant attribuant des points pour chaque candidat a le pouvoir de distancer l un d un autre. (6) Le vote k-parmi-l-parmi-n : Le votant choisit d abord une liste l parmi les n listes possibles et choisit ensuite k candidats dans cette liste. Le vote est représenté par un k + 1-tuple (l, v 1, v 2,..., v k ) où v i [1, l ] et où l représente le numéro de la liste choisie. Un exemple de vote Oui/Non serait un référendum de type «Êtes-vous d accord avec...». Une élection présidentielle, comme celle mise en place en France, est une élection de type «1-parmi-n»où l on choisit le candidat qu on souhaite voir comme président parmi les n possibilités. Dans un système de vote k-parmi-n ordonné, le candidat qui est choisi en premier dans la liste des choix d un votant obtient le plus de points. Au décompte final, le candidat ayant eu le plus de points gagne l élection. Ce système de vote est considéré comme le plus démocratique. Par souci pratique, dans ce document, nous nous contenterons d utiliser un système de vote de type 1-parmi-n. Il peut, de toute façon, être ramené à des systèmes de vote de type k-parmi-n en permettant au votant de voter plusieurs fois. Il peut éventuellement être ramené à un système de vote ordonné si on accorde plus de points à son premier vote Analyse du vote traditionnel Dans la version la plus simple du vote, le votant se présente dans un bureau de vote muni de sa carte d identité et d un droit de vote 1. Il lui est proposé de s installer dans un isoloir où une liste de candidats lui est présentée. Il n a plus qu à cocher le ou les candidats de son choix avant de placer son vote dans une urne. Cette urne est ensuite reconduite vers un bureau de dépouillement où le comptage est réalisé. Le résultat 1. Dans le cas d élection gouvernementale, ce droit de vote est représenté comme étant la convocation que l on reçoit par la poste. 4

12 est communiqué et les votes sont scellés et stockés en lieu sûr. Quelques précisions ou remarques sont à faire à propos du vote traditionnel Identification Lorsqu un votant se présente au bureau vote, il présente sa carte d identité pour s identifier auprès du bureau de vote. Les membres du bureau de vote notent que vous vous êtes bien présenté au bureau de vote sur une liste d électeurs. Peut-on considérer que la seule présentation de la carte d identité du votant est un gage de sécurité quant à l identification de ce dernier? Peut-on affirmer avec certitude que la personne arrivant au bureau de vote, détenteur d une carte d identité, est bien la personne qu il prétend être? On peut faire la (lourde?) hypothèse que la réponse à ces questions est positive. Cependant, des vérifications biométriques telles que la vérification d empreinte pourraient être mises en place pour renforcer les éventuelles faiblesses à ce niveau L isoloir physique L isoloir physique se veut être le garant du secret du vote. Le votant étant seul dans l isoloir, aucune autre personne ne peut, par conséquent, apercevoir son vote. Cependant, on peut remarquer que même dans le cadre d un vote traditionnel, le système d isoloir peut être aisément contourné. Pour forcer quelqu un à voter de telle ou telle manière, l attaquant pourrait lui demander de filmer son vote pour lui en apporter la preuve. Cette remarque vaut également pour la vente d un vote à quelqu un. À l heure de la technologie mobile, il est désormais facile de prendre une photo avec son téléphone portable ou même de prendre une vidéo du vote dans son intégralité de telle sorte qu il sera possible pour le votant de l utiliser comme preuve. L isoloir physique, dans son état actuel, n est donc pas un outil permettant de satisfaire les propriétés d incoercibilité et de receipt-freeness (avec l hypothèse de la non-interdiction de l utilisation d outils technologiques permettant de prouver un vote) Le transport de l urne Lorsque la totalité des votes ont été émis, l urne du bureau de vote est transportée vers les bureaux de dépouillement. Si, par malheur, le véhicule transportant les urnes est détruit, tous les votes contenus dans les urnes seront détruits et donc non-comptabilisés dans le résultat final. Une sécurité supplémentaire doit donc être mise en place pour garantir la robustesse des données de vote. A noter que cette remarque s applique également à tous les systèmes de données actuels : si la base de données contenant les votes est détruite, les votes seront également détruits. Cependant, pour ces systèmes, des solutions sont plus réalisables en pratique, notamment si les données sont répliquées sur plusieurs centres de stockages. 5

13 La confiance A chaque étape du vote, il est demandé au votant de faire confiance aux institutions de votes. Lors de son identification, lors de l enregistrement de son vote, lors du transport de son vote et plus particulièrement, lors du comptage de son vote dans le résultat final. A partir du moment où le vote est mis dans l urne jusqu au décompte, le votant n a plus aucun pouvoir sur son vote. Il n est donc pas impossible qu un membre du bureau de dépouillement oublie de compter un vote, annule un vote ou encore modifie le vote [Smi05] Vérifiabilité Comme décrit dans la section précédente, à partir du moment où le vote est mis dans l urne jusqu au décompte, le votant n a plus aucun pouvoir sur son vote. Le votant est donc dans l incapacité (1) de vérifier le contenu de son vote après l avoir mis dans l urne 2, (2) de vérifier que son vote a bien été pris en compte dans le résultat final et (3) de vérifier que le décompte a été effectué correctement. Nous sommes donc, de nouveau, en présence d un système de confiance du votant vers les institutions de vote Conclusion Le système de vote traditionnel est loin d être parfait et est loin de respecter les exigences énoncées en Section 1.2. Si les problèmes d isoloir et d identification peuvent être améliorés relativement facilement, ce n est pas le cas des problèmes de confiance et/ou de vérifiabilité i-voting Le i-voting est décrit comme étant la gestion d une élection via internet. Cette tendance fait autant polémique qu envie dans la population. A l heure où on peut tout faire à distance (payer ses factures, rédiger sa feuille d impôt, acheter, vendre,...), il est clair qu un jour où l autre, le vote va passer à l acte. Cependant, dans un futur proche, il ne pourra pas remplacer totalement le vote traditionnel, il sera plutôt vu comme une alternative convaincante (essentiellement pour des raisons d accessibilité). L Estonie est la première nation sur terre à avoir tenu une élection municipale par internet. Elle a été déclarée comme étant un réel succès par les autorités de vote en 2005 et sur environ personnes ayant le droit de voter, plus de personnes ont utilisé le système en 2011 [vvk11]. Les avantages du i-voting sont nombreux et c est pour cette raison que ce mémoire en fait l objet. Nous allons voir que tous les problèmes liés au vote traditionnel peuvent être ou bien résolus ou bien, au pire des cas, non-résolus par le i-voting. Cependant, aucun de ces problèmes ne sera aggravé. 2. Dans le cas d un vote papier, le votant est quand même persuadé du contenu de son vote puisqu il le remplit lui-même et le met dans l urne lui-même par la suite. 6

14 1.6. Objectif du mémoire L Objectif de mon mémoire est de réaliser un schéma de vote par internet (i-voting) qui respecte au mieux les exigences présentées en Section 1.2. Nous verrons que nous pouvons améliorer certaines faiblesses du vote traditionnel telles que : (1) Vérifiabilité : Le votant aura la possibilité de vérifier le contenu de son vote, de vérifier qu il est bien compté dans le résultat final et que la somme de tous les votes est bien le résultat qui est affiché. (2) Pouvoir judiciaire : Notre schéma permettra au votant d avoir en sa possession un reçu de son vote inexploitable en dehors de lui et d un juge. Si les autorités de vote essayent de modifier son vote ou de le supprimer, il pourra utiliser cette preuve pour prouver sa bonne foi à un juge pour inculper les autorités. Dans l hypothèse qu un tel reçu sera bien recevable dans un tribunal, les autorités de votes ont pour intérêt le bon déroulement des choses sinon ils savent qu ils seront poursuivis. (3) Voter depuis son canapé : C est l un des principaux atouts du vote par internet : nous pouvons voter de n importe quel endroit à n importe quel moment de la journée. Cette possibilité permettrait à des votants étant à l étranger de pouvoir quand même effectuer leur vote et réduirait, de manière générale, les contraintes horaires dues au vote. La propriété d incoercibilité sera également conservée malgré le manque d isoloir physique durant le vote Contenu Le contenu du mémoire s étend principalement sur 4 grands axes : 1. Notions cryptographiques : Une description des différents outils nous permettant de sécuriser les communications entre chaque participant d un système de vote mais également pour permettre l anonymat, la véracité de la provenance des données et d autres propriétés intéressantes pour l application d un système de vote à distance. 2. État de l art du vote à distance : Une présentation de 4 systèmes de vote à distance sera présentée. Ils représentent ensemble 3 grandes familles du vote électronique : les schémas homomorphiques, les schémas basés sur les signatures en aveugle et les schémas basés sur les mixnet. Une description approfondie et une discussion sur les propriétés des différents schémas de vote seront effectuées. 3. MyVote : Le schéma de vote réalisé dans ce document. Il est basé sur l utilisation des techniques d isoloir mental (Voir Section 5.1) et de comptage par arbre (Voir Section 5.2). Une analyse complète sera également réalisée et diverses remarques 3. Un isoloir physique sera quand même nécessaire lors de la phase d enregistrement. 7

15 quant à son utilisation. 4. Prototype : Cette partie est dédiée à l élaboration d un prototype d implémentation de MyVote en JAVA Contributions En dehors de l état de l art conséquent sur les outils cryptographiques nécessaires à l élaboration d un système de vote et sur les différents schémas de vote à distance existants, mon mémoire apporte les contributions suivantes : MyVote MyVote est un schéma de vote à distance vérifiable, incoercible, efficace et facile d utilisation. Ce schéma est le résultat d un long apprentissage des différentes techniques de votes existantes et a subi beaucoup de modifications au cours du temps. Il implique le votant dans toutes les différentes phases d un schéma de vote classique de telle sorte qu il ait un contrôle total des événements tout en étant protégé par l outil formidable qu est l isoloir mental (5.1). Schéma triparti de signature à seuil adapté aux courbes elliptiques Grâce à une adaptation d un schéma triparti de signature à seuil aux courbes elliptiques (présenté en Section 5.3), le système de vote assure au votant la possession d un reçu de vote qu il peut utiliser comme preuve si les autorités tentent de modifier ou de supprimer son vote. Le votant est donc un participant ayant les pleins pouvoirs judiciaires sur ses actions et sur celles de l autorité de vote. L utilisation des courbes elliptiques est une réelle tendance dans le milieu cryptographique et c est pourquoi j ai voulu adapter le schéma proposé par Jerôme Dossogne et Olivier Markowith [DM09] en utilisation la technique de signature à seuil basé sur les courbes elliptiques [CX05]. Implémentation de MyVote Même si l implémentation reste au niveau de prototype, cette contribution permettra à d autres de pouvoir étoffer l implémentation dans de futurs projets de mémoire ou autres. Une description des différents packages JAVA ainsi qu une documentation seront fournies. 8

16 Chapitre 2. Hypothèses Avant de rentrer dans le vif du sujet, il est important de savoir sur quelles bases les outils cryptographiques qui vont être présentés au chapitre suivant se reposent. Les deux plus grandes hypothèses sur lesquelles ils se reposent sont : (1) le problème du logarithme discret et (2) le problème de factorisation d entier en produit de nombres premiers. Ces deux problèmes sont respectivement utilisés dans le système cryptographique d Elgamal (Voir 3.3) et dans le système cryptographique RSA (Voir 3.2) 2.1. Difficulté du problème du logarithme discret Soit G n un corps fini ayant un nombre premier n d éléments, un générateur g du groupe multiplicatif de G n et h un élément de ce groupe connu. g étant générateur du groupe multiplicatif de G n, il existe forcément un nombre k tel que : h = g k mod n avec 1 < k n 1 k est défini comme le logarithme discret en base g de l élément h. k = log g (h) Exponentiation modulaire Le calcul de h connaissant k peut être réalisé en réalisant une l exponentiation modulaire. Calculer une telle exponentiation signifie calculer le reste de la division par n de la valeur de g élevé à la puissance k. (1) La méthode naïve : la plus bête des méthodes serait simplement d élever g à la puissance de k et d ensuite effectuer un modulo n sur le résultat. Malheureusement, cette méthode a ses limites en terme de mémoire de calcul, g étant généralement un très grand nombre ( 80 chiffres décimaux) en cryptographie. Cette méthode est donc effectuée en O(k) lourdes multiplications. 9

17 (2) Efficacité mémoire : Cette seconde méthode demande plus d opérations que la 1ère. Cependant, comme elle requiert moins de mémoire, les opérations prennent moins de temps. Elle se base sur l équivalence des deux équations suivantes : c = a b mod m = (a mod m) (b mod m) mod m L algorithme va effectuer une multiplication récursive en effectuant un modulo à chaque fois qu une multiplication à été réalisée. Dans notre cas, l algorithme ressemblerait à ça : function modpow(g, k, n) c = 1 from 1 to k c = (c * g) mod n return c Cette méthode a une complexité en O(k) multiplications mais, comme elle travaille sur des plus petits nombres, elle est plus efficace que la 1 ere méthode. (3) Méthode binaire de droite-à-gauche : Cette méthode est la plus efficace car elle se base sur l exponentiation rapide [Sch95]. L idée est d écrire l exposant k en version binaire à b bits. b étant le nombre de bits nécessaires pour représenter k. b 1 k = a i 2 i a i {0, 1} i=0 Dès lors, h peut être écrit de la manière suivante : h = g = b 1 b 1 i=0 function modpow(g, k, n) result = 1 while k > 0 if (k & 1) equals 1: result = (result * g) mod n k = k >> 1 g = (g * g) mod n return result i=0 a i 2 i mod n (2.1) (g 2i ) a i mod n (2.2) Cette méthode a une complexité en O(log k) et, quand elle travaille sur de grandes valeurs d exposant, est beaucoup plus efficace que les 2 précédentes méthodes Calcul du logarithme k = log g (h) 10

18 Hypothèse 1 (Logarithme discret [Wil06]) Il n existe actuellement aucun algorithme polynomial correct qui est capable de résoudre le problème du logarithme discret de manière satisfaisante. Une des solutions au problème est de simplement faire une recherche exhaustive sur toutes les puissances k de g jusqu à trouver celle valant h. Cette méthode est dès lors effectuée en temps linéaire O(n) d exponentiation modulaire et donc exponentielle sur le nombre de chiffres qui composent n. Si la valeur de n est bien choisie, le problème s avèrera difficile à calculer en temps raisonnable. Cependant, quelques algorithmes effectuent cette opération en O( n). En voici l un des plus connus. Pollard s rho algorithm Cette algorithme inventé par J. Pollard fait partie d une suite d algorithmes nommés méthodes Monte Carlo qui s attaquent à la résolution de problèmes de factorisations, considérés comme exponentiels. [CP05] Soit un groupe fini cyclique G et un générateur g du groupe G. Considérons G comme étant le groupe Z p des résidus non-nuls modulo p où p est un nombre premier > 3. 1 À noter que G est donc un groupe d ordre (p 1). Z p = {1, 2,..., p 1} Soit t un élément arbitraire de ce groupe et G = G 0 G1 G2 une partition équitable du groupe G. Considérons une séquence de pairs d entiers (a i, b i ) modulo (p 1) et une séquence d entier x i modulo p tel que x i = t a i g b i mod p. Ces séquences sont construites en exprimant les (i + 1) eme termes en fonctions des i eme termes ayant comme valeurs initiales a 0 = b 0 = 0 et x 0 = 1 : tx i mod p if x G 0 x i+1 = x 2 i 1 gx i mod p if x G 2 ((a i + 1) mod (p 1), b i ) if x G 0 (a i+1, b i+1 ) = (2a i mod (p 1), (2b i ) mod (p 1)) if x G 1 ((a i, (b i + 1) mod (p 1)) if x G 2 1. Sans perte de généralité : Il suffit d apposer des valeurs numériques croissantes aux éléments de G pour réduire G à Z p. Le premier élément de G étant assigné à la valeur 1, le deuxième élément à la valeur 2, etc... 11

19 Comme G est un groupe fini, la séquence x i va périodiquement se répéter. Dès lors, il existe nécessairement deux entiers µ et λ (avec µ < λ) tel que x µ = x λ. Si tel est le cas, alors : t aµ g bµ = t a λ g b λ mod (p 1) (2.3) (a µ a λ )l = (b λ b µ ) mod (p 1) (2.4) L équation 2.4 est déduite en considérant l comme étant le logarithme discret de t. Comme la décision de savoir dans quelle partie du groupe G un élément de la séquence appartient diffère en fonction de p, cette séquence peut être vue comme aléatoire. L idée de l algorithme est donc d effectuer une recherche de cycle sur la séquence x i. Théorème 1 ([BB08]) Avec l hypothèse que la séquence x i agisse comme une réelle séquence aléatoire dans G, le nombre d évaluation avant de trouver un cycle est estimé à πp 2. En utilisant l algorithme de recherche de cycle de Floyd 2, le nombre d opération avant de trouver est estimé à 1.03 p en moyenne Difficulté de la factorisation entière en nombres premiers Théorème 2 (Théorème fondamental de l arithmétique [GRA06]) Tout entier > 1 peut être écrit de manière unique par un produit de nombres premiers, chacun d entre eux élevé à une certaine puissance 1. x = p α 1 1 pα pα k k (2.5) Pour factoriser un très grand entier à b-bits, produit de 2 nombres premiers approximativement de même taille, aucun algorithme en temps polynomiale n a été publié. L algorithme ayant le meilleur temps d exécution asymptotique est l algorithme de «crible général de corps de nombres» 3. Pour un nombre entier à b-bits, il est de : ( O exp (( 64 ) ) 9 b) (log b) 3 (2.6) 2. L algorithme compare chaque valeur x i avec x 2i. Voir [BB08] pour plus d informations. 3. «General number field sieve»en anglais 12

20 Si on met à l épreuve un ordinateur permettant d effectuer 10 6 opérations de l algorithme à la seconde, nous obtenons les résultats suivants : # de bits b # d opérations au pire cas pour b bits Temps d exécution 256 3, heure 512 9, jours , années , , années 2.3. Conclusion Ces problèmes ne possédant pas d algorithme efficace pour les résoudre pour de très grandes valeurs, ils sont dès lors intéressants dans le cadre de la cryptographie. Il est important de noter que le calcul de ces problèmes n est pas impossible mais juste computationnellement difficile. La difficulté computationnelle résidant dans le nombre de bits des éléments qui paramétrisent les problèmes et sachant que la capacité de calculs des ordinateurs doublent tous les 2 ans 4, il faudra constamment augmenter le nombre de bit pour augmenter la sécurité. 4. Voir Loi de Moore. 13

21 Chapitre 3. Outils cryptographiques Dans cette section, une présentation des notions cryptographiques utiles dans la création d un système de vote électronique à distance sera effectuée. Ces notions devront être pertinentes dans le domaine de contraintes fixé dans la section Introduction aux systèmes cryptographiques Un système cryptographique, ou encore cryptosystème 1, est une suite d algorithmes permettant principalement 2 de chiffrer et de déchiffrer un message M qu un utilisateur souhaite transmettre secrètement à quelqu un. Généralement, un tel système est composé de 3 phases distinctes : La génération de(s) clé(s), le chiffrement du message et le déchiffrement du message. Génération de(s) clé(s) L idée étant de cacher le contenu d un message durant sa transmission sur un canal non-sécurisé, il faut donc enfermer le message dans une espèce de boîte spéciale fermée à clé. Et ceci de telle sorte que les personnes qui souhaitent avoir accès au contenu de la boîte ne puissent le faire que par la connaissance d une clé spécifique. Chiffrement du message Le chiffrement du message est réalisé par une fonction E() paramétrisée par une (ou plusieurs) des clés générées à la 1 ere étape. Elle modifie le message d origine de telle sorte que le résultat ne donne aucune information quant au contenu du message original. Déchiffrement du message Le déchiffrement du message est réalisé par une fonction de déchiffrement D() paramétrisée par une (ou plusieurs) des clés générées à la 1 ere étape. Sans la connaissance de ces dernières, il doit être computationnellement difficile en temps limité pour un utilisateur extérieur de déchiffrer le message chiffré. 1. Ce terme étant déconseillé par le glossaire RFC cryptosystem. SHOULD NOT use this term as an abbreviation for cryptographic system. 2. Un système cryptographique est également utiliser pour d autres choses comme les signature digitales, etc... 14

22 Les fonctions de chiffrement et de déchiffrement E() et D() possèdent les propriétés suivantes : Propriété 1 : E et D, à l aide de la connaissance des clés appropriées, doivent être faciles à exécuter en un temps raisonnable. Propriété 2 : Déchiffrer un message chiffré nous redonne le même message. D(E(M)) = M Il existe 2 grandes familles de système cryptographiques : la cryptographie symétrique et la la cryptographie asymétrique Cryptographie symétrique La cryptographie symétrique, ou encore «cryptographie à clé privée», est la plus ancienne forme de chiffrement. Ici, les méthodes E() et D() sont paramétrisées par une «clé secrète»connue par tous les protagonistes de la discussion. La seule connaissance de cette clé permet de chiffrer et de déchiffrer un message : la sécurité du système repose donc sur la connaissance de cette clé. A Chiffrement E + clé secrète Déchiffrement D + clé secrète B Figure 3.1.: Chiffrement symétrique Propriété : Soit k la clé secrète d un système asymétrique, D(e, k) la méthode de déchiffrement utilisant la clé k pour déchiffrer e et E(m, k) la méthode de chiffrement utilisant la clé k pour chiffrer le message M. Nous avons : D(E(M, k), k) = M A noter que la clé k peut être divisée en deux clés k e pour chiffrer et k d pour déchiffrer de telle sorte qu il est facile de retrouver k d en connaissant k e et vice-versa Cryptographie asymétrique Dans un cryptosystème asymétrique, ou encore «cryptographie à clé publique», un utilisateur U met à la disposition publiquement une clé de chiffrement k pub. Cette clé publique sera utilisée comme paramètre à une fonction de chiffrement E() pour crypter un message à l intention de U. Ce dernier, quant à lui, garde secret une clé privée k priv 15

23 qui utilisée en paramètre de la fonction de déchiffrement D() aura la capacité de déchiffrer le message qu il va recevoir. Propriété : Soit k pub la clé publique d un système symétrique, k priv la clé privée de ce même système, D(e, k priv ) la méthode de déchiffrement utilisant la clé k priv pour déchiffrer e et E(m, k pub ) la méthode de chiffrement utilisant la clé k pub pour chiffrer le message M. Nous avons : D(E(M, k pub ), k priv ) = M Un utilisateur malveillant devrait être dans l incapacité de retrouver le message original M à partir de E(M, k pub ). La seule possibilité qui peut lui être permise est de tester chaque valeur possible de la clé privée k priv en l utilisant dans la fonction de déchiffrement D. Encore faut-il qu il reconnaisse le message M quand il le retrouve. Cette méthode exhaustive doit donc être rendue assez difficile que pour empêcher un utilisateur malveillant de déchiffrer le message en un temps raisonnable. B B Clé publique Clé privée A Chiffrement E + clé publique de B B B B Déchiffrement D + clé privée de B B Figure 3.2.: Chiffrement asymétrique 3.2. Système cryptographique RSA Ce système cryptographique inventé par Rivest, Shamir et Adleman [RSA78] est l un des plus répandus dans le monde. Il est utilisé actuellement dans beaucoup de cartes à puces comme les cartes bancaires, les carte d identités eid, etc... Sa sécurité réside dans la difficulté de la factorisation entière en nombres premiers (Voir Section 2.2) Fonctionnement de base Génération de clé RSA, étant un système cryptographique asymétrique, implique la création d une clé publique et d une clé privée. Le procédé de génération de clé fonctionne comme suit : 16

24 1. Choisir aléatoirement deux grands nombres premiers p et q de telle sorte qu il possède le même nombre de bit dans leur représentation binaire. 2. Calculer n = p q. 3. Calculer φ(n) = (p 1)(q 1) comme étant le nombre d entiers positifs n qui sont premiers avec n, autrement dit : leur plus grand commun diviseur avec n est Choisir un entier e tel que 1 < e < φ(n), premier avec φ(n). 5. Calculer d = e 1 mod φ(n) Clé publique Clé privée e, n d Chiffrement Le chiffrement est réalisé à l aide de la clé publique (e, n) générée à l étape précédente et sert à chiffrer un message pour le détenteur de la clé privée d, ce dernier l ayant gardée secrète. Le procédé de chiffrement fonctionne comme suit : 1. Transformer le message m en un entier tel que 0 < m < n. 2. Calculer le message chiffré c : c = m e mod n Ceci peut être réalisé avec la méthode d exponentiation modulaire présentée à la section Transmettre le message chiffré c au détenteur de la clé privée. Déchiffrement Le déchiffrement est réalisé grâce à la clé privée d par le destinataire du message. Le procédé de déchiffrement fonctionne comme suit : 1. Calculer le message original m : m = c d mod n Remarques et amélioration Quelques remarques peuvent être faite dans le cadre des différents choix réalisés lors des étapes de génération de clé, de chiffrement et de déchiffrement. 17

25 Le choix de e En pratique, les choix les plus choisis pour e sont les nombres premiers de Fermat 3 F 0 = 3, F 2 = 17 et F 4 = Ils ont été choisis comme étant des nombres facilitant le calcul de l exponentiation modulaire. Cependant, comme le choix de e = 3 peut poser des problèmes dans certains cas [Bon99], il est conseillé d utiliser la valeur e = Le calcul de d Le calcul de d se fait généralement grâce à l algorithme d euclide étendu. Soit a et b, deux entiers, cette algorithme permet non seulement de déterminer leur plus grand commun diviseur mais de calculer également le couple d entier u et v tel que : au + bv = P GCD(a, b) nommé, coefficients de Bézout. Lorsque a et b sont premiers entre eux, u est alors l inverse de a pour la multiplication modulo b. Pour calculer d, il suffit donc d appliquer l algorithme d euclide étendu avec les valeurs a = e et b = φ(n). Une alternative à φ(n) Utilisée par la famille de standards PKCS#1 4, cette alternative choisit d tel que d e = 1 mod λ où λ = P P CM(p 1, q 1). Utiliser la fonction Carmichael 5 λ(n) au lieu de φ(n) donne plus de choix à d Signatures digitales RSA Une signature digitale est, comme son nom l indique, une signature similaire à celles qu on endosse à la fin de nos documents pour les authentifier, à la différence près que ces dernières sont effectuées sur des documents digitaux 6. L idée principale (illustrée à la Figure 3.3) est d accompagner les données que l on souhaite envoyer à un destinataire d une version cryptée de ces dernières préalablement hachées par une fonction de hachage. Cet accompagnement est désigné comme étant la signature qui authentifie le document. Le chiffrement de la signature doit être réalisé de telle sorte que personne ne puisse facilement la falsifier. RSA est l un des systèmes cryptographiques les plus utilisés pour les signatures digitales. En effet, la clé privée peut être utilisée pour chiffrer ou déchiffrer un message. Parallèlement, la clé publique possède la même propriété. Cette propriété donne la possibilité au détenteur de la clé privée de signer un message en le chiffrant. Le destinataire 3. F i = 2 2i Public-Key Cryptography Standards est une famille de standards cryptographiques publié par RSA Laboratories. 5. La fonction λ(n) de Carmichael est une fonction qui renvoie le plus petit nombre m tel que a m = 1 mod n pour tout a plus petit que n et premier avec n. 6. On peut signer tout ce qui est représentable en binaire. 18

26 Expéditeur Destinataire Data Data DataHash Hash crypté DataHash Hash décrypté =? Figure 3.3.: Principe de la signature de données du message peut dès lors vérifier si le message vient bien du détenteur de la clé privée en déchiffrant le message avec la clé publique de ce dernier. En suivant l idée de la Figure 3.3, voici le procédé détaillé pour effectuer une signature digitale avec RSA. Signer un message Soit m, un message à signer et e, d et n les paramètres générés lors de l étape de la génération de clés de RSA. 1. Produire une version hachée du message m, H(m). 2. Calculer la signature s m de m comme étant : s m = H(m) d mod n 3. Envoyer le message m accompagné de la signature s m au destinataire. Vérifier une signature Pour vérifier une signature, un destinataire, après avoir reçu le couple de valeurs (m, s m ), devra procéder comme suit : 19

27 1. Produire une version hachée du message m, H(m). H étant bien entendu la même fonction qui est utilisée lors de la signature du message. 2. Déchiffrer s m grâce à la clé publique de celui qu on croit être l expéditeur : r = (s m ) e mod n 3. Si r = H(m) alors l expéditeur du message est bien celui qu il prétend être (en faisant bien entendu l hypothèse qu il ne s est pas fait voler sa clé privée d) Les signatures aveugles C est D. Chaum [Cha83] qui introduisit la méthode de signature aveugle 7. C est une méthode qui permet à une entité de pouvoir signer un message sans en lire le contenu. Il a été implémenté par Chaum avec les signatures RSA. En voici le fonctionnement : 1. Alice veut faire signer un message m à Bob. 2. Bob génère un ensemble de clé tel que : Clé publique = e, N Clé privée = d 3. Alice génère un nombre aléatoire r tel que pgcd(r, N) = Alice envoie c = r e m mod N à Bob. 5. Bob ne peut pas lire le contenu (Pour cause : le nombre aléatoire d Alice.) 6. Bob envoie c = c d mod N à Alice. 7. Alice n a plus qu à enlever son ajout aléatoire en faisant s = c /r mod N, les clés RSA satisfaisant r ed = r mod N. 8. s = m d qui est bien la signature du message m par la clé privée d de Bob Faiblesse du système Avec plus de 30 ans d existence, le système RSA a bien entendu été attaqué plus d une fois. Plusieurs faiblesses du système de base ont ainsi été découvertes [Bon99] : (1) Attaque sur les petits exposants : Cette attaque [Has88] se base sur le théorème des restes chinois. Théorème 3 Supposons n 1, n 2,..., n k des entiers positifs étant premiers entres eux. Pour un certain ensemble d entiers a 1, a 2,..., a k, il existe un entier x tel qu il résout l équation suivante : x = a 1 mod n 1 x = a 2 mod n 2... x = a k mod n k De plus, toutes les solutions x sont congruentes modulo N = n 1 n 2... n k. 7. Blind signature en anglais 20

28 Supposons qu un même message m soit envoyé à k personnes p i en utilisant le même exposant e = 3, mais avec des modulos n i différents. Il peut être montré que grâce à la connaissance de k 3 messages cryptés, il est possible de reconstruire le message original. Supposons qu un attaquant possède 3 des messages cryptés : C 1 = m 3 mod n 1, C 2 = m 3 mod n 2, C 3 = m 3 mod n 3 En appliquant le théorème des restes chinois, il trouve C Z n1 n 2 n 3 qui satisfait l équation C = m 3 mod n 1 n 2 n 3. Comme m est plus petit que tous les n i, on en déduit que m 3 < n 1 n 2 n 3. m peut alors être retrouvé en effectuant une racine cubique de C sur les entiers. Cette attaque n est valable que si e est un petit exposant et que si k e. Cette classe d attaque a été améliorée par la suite par Coppersmith [Cop97]. (2) Déterminisme : RSA, dans sa forme de base, est un système cryptographique déterministe : 2 messages identiques donneront le même résultat crypté. RSA est donc considéré comme sémantiquement non-sûr étant donné qu un attaquant peut chiffrer les messages qu il souhaite et les comparer avec d autres messages cryptés. Cette méthode est particulièrement efficace quand le nombre de messages possibles est petit. (3) Malléabilité : La propriété de malléabilité implique que le produit de 2 messages cryptés est égal au chiffrement du produit des 2 messages originaux correspondants : m e 1 me 2 mod n = (m 1 m 2 ) e mod n. Si l attaquant à la possibilité de faire déchiffrer n importe quel message différent de celui qu il recherche à un oracle 8. Pour déchiffrer c = m e mod n, l attaquant pourrait demander à l oracle de lui déchiffrer c = cr e mod n = (mr) e mod n. Il obtiendrait donc le message biaisé mr d où il peut obtenir le message m facilement en calculant l inverse modulaire de r mod n Schéma de remplissage Pour répondre à ces attaques, RSA s est étoffé de techniques permettant de rajouter de l aléatoire au message avant de le chiffrer. Ces techniques sont dites de remplissage. Soit un système cryptographique RSA ayant les paramètres N, e et d, où N est un modulo de k bits. Le schéma de base pour signer un message m est d effectuer, au préalable du chiffrement, un hachage sur le message m, Hash(m). Cette fonction de hachage devant produire un ouput à k bits dans ZN, la technique la plus commune est d effectuer une fonction de hachage comme MD5 produisant un output à 128 bits et de remplir les (k 128) autres bits restants. Par exemple, le standard PKCS utilisait la technique suivante [BR96] : Hash P KCS = 0x FF FF FF FF 00 MD5(M) 8. Un oracle étant défini ici comme une entité ayant la possibilité de déchiffrer n importe quel message chiffré. 21

29 où est le symbole de concaténation et les 0x FF sont les bytes nécessaires au remplissage pour que la taille du hachage atteigne k bits. Ces techniques ayant été attaquées par adaptive chosen-ciphertext attack 9, d autres techniques plus sécurisées ont vu le jour et ont désormais une place dans le standard PKCS. RSA-PSS Ce sont Mihir Bellare et Phillip Rogaway [BR96] qui ont proposé cette technique nommée Probabilistic Signature Scheme pour signer des messages en utilisant des techniques de remplissage probabilistes. Le schéma de signature P SS utilise deux paramètres k 0 et k 1 en plus des paramètres basiques du système RSA. Ces paramètres sont des entiers < k et qui satisfont k 0 +k 1 k 1. Ce schéma utilise également deux fonctions de hachages : et deux fonctions : h : {0, 1} {0, 1} k 1 nommée compresseur g : {0, 1} k 1 {0, 1} k k 1 1 nommée générateur g 1 (w) : g 2 (w) : retourne les k 0 premiers bits de g(w) retourne les k k 0 k 1 1 bits restants de g(w) function SignPSS(M) r = random(k0); // retourne un entier aléatoire de k0 bits. w = h(m r); rxor = xor(g1(w),r); y = 0 w rxor g2(w); return y^d mod N function VerifyPSS(M,x) y = x^e mod N; b w rxor p = break(y); //b, premier bit. //w, k1 bits suivants. //rxor, k0 bits suivants //p, le reste des bits r = xor(rxor,g1(w)); if(h(m r) == w && g2(w) == p && b==0 ) return true; else return false; Cette méthode est prouvée sémantiquement sécurisée et est désormais utilisée par le standard PKCS de RSA Laboratories. 9. Ce type d attaques permet à l attaquant dans un premier temps de déchiffrer les messages chiffrés de son choix et de par la suite en déduire d autre à l aide des résultats qu il a obtenus. 22

30 Figure 3.4.: Schéma PSS - [BR96] 3.3. Système cryptographique d ElGamal Ce cryptosystème asymétrique 10 de Taher ElGamal [ElG85] est une extension du système d échange de clé de Diffie-Hellmann [DH76]. Toute la sécurité du système se base sur la difficulté du problème du logarithme discret Fonctionnement de base Bob souhaite envoyer un message à Alice de telle sorte que personne d autre que lui ou Alice ne puisse réussir à lire le message. Paramètres Un groupe cyclique G q d ordre q (q étant un très grand nombre premier), un sousgroupe de Z p. Un générateur g du groupe G q. Paramètre p = q Voir explications en [Dam04]. Nous supposerons donc que, lors de l élaboration des paramètres, Alice (ou quelqu un d autre) a à disposition un générateur de groupe d ordre q, sous-groupe de Z p. Génération de clé Alice choisit un nombre aléatoire x dans [0,..., q 1] Alice calcule h = g x mod p Clé publique = h avec g et q Clé privée = x 10. possédant une clé publique pour crypter les messages et une clé privée pour les décrypter. 23

31 Chiffrement Le message clair m est ici représenté par un élément du groupe G q. Le chiffrement de ce message avec la clé publique fournie par Alice se déroule comme suit : Bob choisit un nombre aléatoire y dans [0,..., q 1] Bob calcule c 1 = g y mod p Bob calcule c 2 = h y m mod p Cyphertext = (c 1, c 2 ) N.B : Ce chiffrement est un chiffrement non-déterministe. Plusieurs cyphertexts différents peuvent être crées à partir d un même plaintext. Ceci est dû au choix d une valeur aléatoire y par Bob. Déchiffrement Le message clair m peut être facilement retrouvé par la formule suivante : m = c 2 /c x 1 mod p Mapping Comme décrit en [Web06], cette version du cryptosystème d El Gamal n est valable que si m, le message à crypté, est dans G q. Hors G q ne contient que quelques nombres de Z p. Mais on pourrait, par exemple, utiliser l espace Z q pour représenter m et mapper ses valeurs vers G q bijectivement. Le mapping peut être réalisé de deux manières différentes : m Z q est mappé sur g m car G q = {0, g 1, g 2,..., g q 1 } Ce mapping permettrait l utilisation de systèmes homomorphiques (voir chapitre suivant) qui permettent de réaliser des opérations sur les ciphertexts sans les décrypter. Cette technique pourrait être intéressante pour le décompte des votes d une élection. Cependant, elle implique, pour chaque déchiffrement le calcul d un logarithme discret. Ce qui n est pas pratique que quand m est un petit nombre. On peut également réaliser un mapping de Z q vers G q plus efficacement qu avec la méthode précédente. f(x) = { x + 1 if (x + 1) q = 1 mod p, p x 1 else 24

32 Et pour revenir de G q vers Z q : { g 1 if g q, f(g) = p g 1 else Nous sommes déjà ici en présence d un dilemme quant à la manière de réaliser l encodage du message à crypter. D une part, nous avons une méthode non-efficace mais qui pourrait permettre des manipulations plus simples lors du décompte du vote. D autre part, nous avons une méthode efficace mais qui ne permet pas la manipulation offerte par l autre méthode Version à seuil Etant donné la faiblesse de la sécurité de la clé si elle est détenue par une et une seule entité, il serait intéressant de pouvoir partager cette clé parmi plusieurs entités de telle sorte qu aucune entité à elle seule n ai la possibilité de décrypter un message. Un cryptosystème est dit «à seuil 11»si pour décrypter un message crypté, plusieurs entités sont nécessaires. Cette méthode est réalisée en publiant une clé publique et en partageant la clé privée entre les différentes entités. L avantage de ce schéma est que seules t entités sur n doivent être présentes pour décrypter correctement le message. Dans ce cas, le cryptosystème est appelé «à seuil t de n». Cette technique se base sur les principes du Partage de secret 12 énoncé par Shamir [Sha79]. Une courte introduction en sera faite à la Section 3.3.2, suivie des section et qui présenteront les protocoles, respectivement, de génération de clé distribuée et de déchiffrement distribué. Partage de secret C est en 1979 que Shamir [Sha79] a inventé l idée du partage de clé secrète 13. 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 peut être réalisé grâce à l interpolation de Lagrange [MM10] qui nous dit que la connaissance de n 1 points d un polynôme de degré n nous permet de reconstruire l équation de ce polynôme (Voir Figure 3.5). Une entité D, nommée dealer, va se servir de cette propriété mathématique pour partager un secret s parmi n autres entités, nommées P i. Pour ce faire, D va créer un polynôme de degré t < n aléatoirement, nommé f(x), tel que f(0) = s. 11. «Threshold cryptosystem»en anglais 12. «Secret Sharing»en anglais 13. Bien que George Blakley aie eu une idée similaire dans la même année. 25

33 Supposons la connaissance de n points : (x 1, y 1 ), (x 2, y 2 ),..., (x n, y n ), d un polynôme de degré n 1, noté f(x). Les polynômes de lagrange associés à chaque point peuvent être calculés comme suit : n x x i l i (x) = (3.1) x j x i Le polynôme d interpolation : j=0,j i f(x) = i y i.l i (x) (3.2) est le seul polynôme de degré n 1 (au plus) passant par tous ces n points. Figure 3.5.: Interpolation lagrangienne f(x) = s + a 1 x + a 2 x a t x t (3.3) D va ensuite calculer n points de son polynôme : n i=1(x i, y i ) = (i, f(i)) (3.4) et va envoyer i, le point (x i, y i ) à l entité P i. Chaque entité P i possède donc un point d un polynôme de degré t. Il suffit que t + 1 des n entités se rassemble pour retrouver l équation du polynôme par l interpolation de Lagrange. Il est évident de voir que si ils possèdent l équation du polynôme, ils possèdent également la valeur de la clé secrète, elle-même étant la valeur du polynôme quand x = 0. Malheureusement, cette méthode est une méthode «One-Shot». Lorsque pour la première fois t + 1 entités se rassemblent pour retrouver le secret s, ils seront dans la capacité de se souvenir de ce secret où même de le partager avec quelqu un d autre par la suite. De même que le dealer D, lui, connait également sa clé secrète étant donné que c est lui-même qui l a choisie. Il y a donc un genre de contrat de confiance qui doit être établi pour que le secret ne soit pas révélé. Or, les cryptographes paranoïaques 14 n aiment généralement pas faire confiance. Génération de clé distribué Il serait intéressant de se pencher sur une méthode qui permettrait à un groupe d entités de générer un secret coopérativement, et cela sans l aide d une entité de confiance, comme l était le dealer dans la proposition précédente. 14. C est un pléonasme... 26

34 Pedersen [Ped91] émet l idée de faire évoluer chacune des n entités comme un dealer : Chacune des entités P i choisit un secret s i, un polynôme f i (x) de degré t tel que f i (0) = s i et va calculer des points de son polynôme pour les distribuer aux autres entités. La part de secret d une entité P i sera alors calculée comme étant la somme des ordonnées des points qui lui ont été envoyés. Il est évident que lors de l élaboration des clés publiques et privées, un certain nombre d attaquants pourrait participer à l élaboration de la clé et pourrait mentir sur les informations qu il transmet aux autres entités. Le protocole de génération de clé distribué doit donc mettre en place un système permettant de vérifier la cohérence des informations transmises. Ces besoins introduisent la notion de partage de secret verifiable 15. Le protocole de génération de clé vérifiable de Pedersen est illustré à la Figure 3.6. Attaque sur le protocole Gennaro Rosario et al. [GJKR99] ont remarqué que ce protocole ne garantit pas une distribution uniforme de la clé publique en présence d adversaires. Ils ont mis en place une stratégie qui permettrait aux attaquants de manipuler la distribution des clés générées et plus principalement par une attaque sur la clé publique y. En effet, étant donné que les valeurs y i sont diffusées à l étape 1 et que les entités malhonnêtes ne sont éliminées que lors de l étape 3, le protocole laisse le temps aux attaquants d élaborer une stratégie pour perturber l uniformité de la distribution des clés. Soit un système à 9 entités et où il est nécessaire d en avoir au moins t + 1 (avec t = 5) entités pour déchiffrer un message. Admettons que deux attaquants, P 1 et P 2, souhaitent perturber la distribution des clés en appliquant un biais sur la clé publique y de tel sorte que son dernier bit vaille 0. P 1 envoie à P 3, P 4,..., P t+2 des parts qui sont incohérentes, i.e. elles ne passeront pas le test de l étape 2, et envoie le reste des parts, cette fois-ci cohérentes, aux restes des entités (P 8 et P 9 ). (Illustration en Figure 3.7) Dès lors, à l étape 2, l entité P 1 recevra t = 5 plaintes, ce qui n est pas suffisant pour l évincer du système. A la fin de l étape 1, P 1 et P 2 calculent α = n i=1 y i comme étant la clé publique si P 1 n est pas évincé et β = n i=2 y i comme étant la clé publique si P 1 est évincé. Si α a son dernier bit à 0, alors P 1 continue le protocole comme décrit en agissant de manière cohérente. Si, au contraire, α a son dernier bit à 1, alors les attaquants vont forcer la disqualification de P 1. Ceci est réalisé par l action de P 2 de se plaindre de P 1, portant ainsi le nombre de plaignants à 6, ce qui est suffisant pour évincer P 1. Dans ce cas, la clé publique vaut β, qui finit par un bit à 0 avec une probabilité 1 2. Cette marche à suivre permet de forcer le dernier bit de la clé publique à 0 avec une probabilité 3 4 au lieu de 1 2. Malgré cette faille, Gennaro Rosario et al. nous disent dans un nouvel article [GJKR03], que cette faille, même si elle en est une pour le système, ne permettrait pas non plus aux attaquants de fixer la clé publique y comme faisant partie d un ensemble Y G q exploitable en temps polynomial. Ils ont toutefois proposé un nouveau système en [GJKR99] 15. «Verifiable secret sharing»en anglais. 27

35 Protocole de génération de clé distribuée 1. Chaque entité P i choisit un polynôme f i (z) sur Z q de degré t. a) P i diffuse X ik = g a ik mod p b) Notons x i = a i0 et y i = X i0 f i (z) = a i0 + a i1 z a it z t (3.5) c) Chaque entité calcule les parts de secret de son polynôme : d) Et envoie chaque part secrètement x ij à l entité P j. x ij = f i (j) (3.6) 2. Chaque entité P j vérifie les parts qu elle a reçus des autres entités en vérifiant l égalité suivante ( i) : t g xij = (X ik ) jk mod p (3.7) Si cette vérification s avère fausse pour un i, P j diffuse une plainte contre P i. k=0 3. Si plus de t entités se plaignent d une entité P i, alors cette entité est disqualifiée. Sinon, P i révèle les valeurs des parts x ij pour chaque entité P j qui se plaint. Si une des parts de secret révélée s avère fausse, alors P i est disqualifié. Par défaut [GJKR03], les parts de l entité disqualifiée seront mises à x i = 0 et y i = Chaque entité P i non-disqualifiée calcule sa part du secret comme étant : s i = 5. La clé publique y est calculée comme suit : n x ji mod q (3.8) j=1 y = i y i mod p (3.9) 6. La clé privée partagée x ne peut être calculée par une seule entité mais peut être représentée par : x = x i mod q (3.10) i Figure 3.6.: Protocole de Pedersen [Ped91] qui satisfait la propriété d uniformité tout en doublant le nombre d interactions entre les serveurs, ce qu ils décrivent en [GJKR03] comme étant une source non-négligable de complexité. Cependant, dans le cadre d un système de vote à distance, cette opération est effectuée préalablement au vote, rendant la complexité du nouveau système moins contraignante. 28

36 Incohérent P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 Cohérent Figure 3.7.: Illustration de l idée de l attaque sur le protocole de Pedersen Déchiffrement distribué Il faut évidemment offrir la possibilité à un groupe d entité de déchiffrer sans reconstruire la clé secrète sinon on se retrouverait à nouveau dans une situation de «One- Shot»où la clé secrète serait dévoilée. [CGS97] propose un protocole de déchiffrement distribuée tel que présenté à la Figure 3.8. Les entités déchiffrent ensemble le message crypté (x, y) = (g r, h r m), avec m G q, sans reconstruire la clé privée. A noter, que même si le secret n est pas reconstruit, nous avons toujours besoin qu une entité extérieure de confiance réalise le calcul final. Par exemple, ce calcul peut être assigné à l une des entités P i. Ce système est un système vérifiable étant donné que chaque étape peut être refaite et revérifiée. 29

37 Protocole de déchiffrement distribuée 1. Pour chaque part de secret s i, on dénote l engagement ρ i envers s i comme étant : ρ i = g s i mod p Chaque P j peut calculer l engagement des autres parts de secret s i comme étant : n n t ρ i = g s ji = (h j Xjl) il mod p j=1 j=1 l=1 2. Chaque entité P i calcule son déchiffrement partiel w i = x s i et le diffuse accompagné d une preuve à divulgation nulle de connaissance que : log g ρ i = log x w j A noter que prouver cette égalité revient à prouver que le déchiffrement partiel a bien été réalisé à l aide de la part de secret s i. Cette preuve est une preuve d égalité de logarithme discret expliquée en section Pour tout sous-ensemble à t + 1 entités dont la preuve d égalité est valide, le message d origine peut être retrouvé en utilisant l interpolation de Lagrange : où : m = λ i, = y i wλ j, i l {i} mod p l l i mod q Figure 3.8.: Protocole de déchiffrement [CGS97] 30

38 3.4. Les courbes elliptiques Les courbes elliptiques sont des courbes géométriques qui possèdent des propriétés particulièrement intéressantes pour le monde de la cryptographie. En section 3.4.1, une brève introduction sera effectuée de manière à définir les courbes elliptiques et leurs propriétés Introduction Une courbe elliptique E est une courbe représentée par l équation suivante : E y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 Cette équation peut, sous certaines conditions 16, être ramenée à une équation de ce type : y 2 = x 3 + ax + b Les paramètres a, b étant des constantes tel que 4a b 2 0 pour que la courbe soit définie comme lisse 17. Les courbes elliptiques sont généralement définies sur un corps d éléments, ici noté par K, tel que si les paramètres a, b, x et y appartient au corps K, alors : E(K) = {(x, y) K K y 2 = x 3 + ax + b} {ω} où omega est défini comme étant le point à l infini. (Voir Section 3.4.2) Courbes elliptiques sur le corps K des nombres réels Les points de la courbe sont l entièreté des valeurs réelles x et y qui vérifient l équation. On y rajoute également la notion de point à l infini ou ω. Intuitivement, ce point peut être vu comme l intersection de toutes les droites verticales. L ajout de ce point est primordial car il jouera le rôle de l élément neutre pour l addition des points de la courbe. Propriété d addition Pour additionner deux points P et Q d une courbe elliptique, il suffit de remarquer que dans certain cas, la droite L passant par ces 2 points passe également par un troisième point de la courbe. Même si ce point R semble être un bon candidat pour représenter l addition des points P et Q, nous allons devoir le compliquer un petit peu 18. Le résultat de l addition sera donc représenté par le point symétrique de R par rapport à l axe des abscisses. La figure 3.10 décrit une telle opération. 16. Cette simplification de l équation de la courbe elliptique, appelée Équation de Weierstrass, n est possible que si la caractéristique du corps sur lequel elle est définie est supérieure à Une courbe sans singularité. C est à dire une courbe dont tous les points sont bien définis. 18. Si nous nous arrêtions là, cela rendrait difficile la définition du point à l infini. 31

39 Figure 3.9.: Un exemple de courbe elliptique : y 2 = x 3 4x R' 2 1 Q P -2-3 R = P + Q Figure 3.10.: Un exemple d addition de points sur la courbe elliptique : y 2 = x 3 4x+4 32

40 Soit P = (x P, y P ) et Q = (x Q, y Q ), deux points de la courbe elliptique E et R = P + Q = (x R, y R ). plusieurs cas peuvent se présenter [See07] : (1) P Q distincts, x P x Q : La droite passe par un troisième point de la courbe (Voir Figure 3.10). Dès lors, l équation de la droite L vaut : L y = y Q y P x Q x P (x x P ) + y P On retrouve le point R = (x R, y R ) en substituant la valeur de y dans l équation de E par la valeur de l équation de la droite L. ( y Q y P x Q x P (x x P ) + y P ) 2 = x 3 + ax + b Cette équation accompagnée de la connaissance de deux racines x P et x Q, nous permet de réduire le système d équation à : x R = ( y Q y P x Q x P ) 2 (x P + x Q ) y R = ( y Q y P x Q x P (x R x P ) + y P ) (2) P Q, x P = x Q : La droite L est une droite verticale passant par les points P et Q. Dans ce cas, P + Q = ω. (Voir figure 3.11) 3 Q P -2-3 Figure 3.11.: Cas (2). (3) P = Q, y P = y Q 0 : Dans ce cas, L sera la droite tangente au point P. L a comme pente : m = 3x2 P + a 2y P L équation de la droite L est : L y = m (x x P ) + y P On trouve les cordonnées de R comme étant : { xr = m 2 (2x P ) y R = (m(x R x P ) + y P ) On note R = 2P. (Voir figure 3.12) (4) P = Q, y P = y Q = 0 : Dans ce cas, la tangente L est verticale et ne passe par aucun autre point. Nous avons : P + Q = ω = 2P. (Voir figure 3.13) 33

41 R' P = Q R = 2P Figure 3.12.: Cas (3) P Figure 3.13.: Cas (4). Lois de groupe Soit P, Q, R des points de la courbe elliptique E sur le corps K. On remarque que l addition sur les points satisfait les propriétés suivantes [See07] : (1) Fermeture : P + Q reste un point de la courbe E. (2) Commutativité : P + Q = Q + P. (3) Identité : P + ω = P. (4) Existence d inverse : Soit P 1 = (x, y), un point de E, il existe forcément un autre point P 2 = (x, y) tel que P 1 + P 2 = ω. P 2 est désigné comme étant l inverse de P 1. (4) Associativité : (P + Q) + R = P + (Q + R) Courbes elliptiques sur un corps fini Ce qui nous intéresse plus particulièrement en cryptographie, c est de définir ces courbes elliptiques sur des corps finis Z p où p est un très grand nombre premier. C est pourquoi [Smi05] définit la notion de groupe de courbe elliptique E(Z p ) : E(Z p ) = {(x, y) Z p Z p y 2 = x 3 + ax + b} {ω} 34

42 Ajouté à ces éléments, le point à l infini ω qui servira d élément neutre. Le nombre de ces éléments 19 s approche de p. Les paramètres qui définissent le groupe sont : le nombre premier p et les entiers a et b. Exemple sur Z 7 Le groupe de courbe elliptique E(Z 7 ) y 2 = x 3 + x + 1 contient les points suivants [See07] : {ω, (0, 1), (0, 6), (2, 2), (2, 5)} Exemple sur Z 13 Le groupe de courbe elliptique E(Z 13 ) y 2 = x 3 + x + 1 contient les points suivants [See07] : { ω, (12, 8), (11, 2), (0, 12), (4, 11), (1, 9), (10, 6), (5, 12), (8, 12), (7, 0), (8, 1), (5, 1), (10, 7), (1, 4), (4, 2), (0, 1), (11, 11), (12, 5) } (1) Addition Le calcul de l addition des points (4, 11) et (1, 9) est réalisé comme suit : { xr = ( )2 (4 + 1) mod 13 y R = ( (x R 4) + 11) mod 13 { xr = mod 13 = 7 y R = ( 2 3 (3) + 11) mod 13 = 13 mod 13 = 0 (7, 0) est bien un point du groupe de courbe elliptique E(Z 13 ). (2) Point double Le calcul de 2 (0, 1) est réalisé comme suit : { xr = ( 1 2 )2 0 mod 13 = 7 2 mod 13 = 10 y R = ( 1 2 (10) + 1) = 6 mod 13 = 7 (10, 7) est bien un point du groupe de courbe elliptique E(Z 13 ). 19. Théorème de Hasse : p p #d éléments p p 35

43 Système cryptographique basé sur les courbes elliptiques L idée est d utiliser un groupe de courbes elliptiques sur un corps fini Z p pour définir un nouveau système cryptographique. Une analogie peut être réalisée avec des systèmes comme celui d Elgamal à la différence que, ici, le travail est réalisé sur un ensemble de points d une courbe elliptique. Une autre différence notable est que les systèmes basés sur Elgamal n utilisent que le groupe multiplicatif du corps sur lequel ils travaillent. Le fait d avoir un corps est en quelque sorte gâché par ces systèmes. Or, on peut remarquer qu un tel système peut être appliqué sur n importe quel groupe cyclique, et pas nécessairement de ceux qui proviennent d un corps [Smi05]. Les groupes de courbes elliptiques d ordre premier sont de tels groupes. Voici un système cryptographique à clé publique analogue à celui d Elgamal utilisant les courbes elliptiques [See07]. Supposons qu un utilisateur B souhaite envoyer un message m crypté à un utilisateur A. Génération de clé L utilisateur A effectue les actions suivantes : 1. Diffuser l équation d une courbe elliptique E y 2 = x 3 + ax + b et un très grand nombre premier p pour former le corps finis Z p. Diffuser également un point G de cette courbe. 2. Choisir un entier s [1, p 1] aléatoirement. 3. Calculer Q = sg sur le groupe de courbe elliptique E(Z p ). Clé publique Q Clé privée s Chiffrement L utilisateur B procède de la manière suivante pour envoyer un message M à A. Le message M doit ici être un élément du groupe de courbe elliptique E(Z p ). 1. Choisir un entier t [1, p 1] aléatoirement. 2. Calculer C = M + tq = M + tsg. 3. Calculer R = tg. Message crypté (C, R) Déchiffrement L utilisateur A procède de la manière suivante pour déchiffrer le message : 1. Calculer m = C sr = C stg = m + tsg stg = m 36

44 Version à seuil L analogie du système cryptographique à courbes elliptiques avec le système d Elgamal nous permet également d introduire une version à seuil similaire à la Section Dans cette section il sera présenté une version à seuil (t, n) du cryptosystème basé sur les courbes elliptiques basé sur un groupe de courbe elliptique E(Z p ) d ordre q et un point de base P de cette courbe d ordre q également. La clé secrète est ici divisée en n entités P i (i [1, n]). Protocole de génération de clé distribuée 1. Chaque entité P i choisit un polynôme f i (z) sur Z q de degré t. a) P i diffuse X ik = a ik P b) Notons x i = a i0 et y i = X i0 f i (z) = a i0 + a i1 z a it z t (3.11) c) Chaque entité calcule les parts de secret de son polynôme : d) Et envoie chaque part secrètement x ij à l entité P j. x ij = f i (j) (3.12) 2. Chaque entité P j vérifie les parts qu il a reçues des autres entités en vérifiant l égalité suivante ( i) : t x ij P = j k X ik (3.13) Si cette vérification s avère fausse pour un i, P j diffuse une plainte contre P i. 3. Si plus de t entités se plaignent d une entité P i, alors cette entité est disqualifiée. Sinon, P i révèle les valeurs des parts x ij pour chaque entité P j qui se plaint. Si une des parts de secret révélée s avère fausse, alors P i est disqualifié. Par défaut [GJKR03], les parts de l entité disqualifiée seront mises à x i = 0 et y i = Chaque entité P i non-disqualifiée calcule sa part du secret comme étant : s i = 5. La clé publique y est calculée comme suit : k=0 n x ji mod q (3.14) j=1 y = n y i (3.15) 6. La clé privée partagée x ne peut être calculée par une seule entité mais peut être représentée par : x = x i mod q (3.16) i i=1 Figure 3.14.: Protocole de Pedersen [Ped91] appliqué aux courbes elliptiques 37

45 Signature digitale à seuil Il pourrait être intéressant de ne pouvoir signer un message m que si t signataires sur les n sont présents. Cette signature digitale, proposée par [CX05], est légèrement modifié dans ce document pour obtenir un schéma de signature sans dealer en utilisant la technique de la Section Les paramètres du système sont similaires : p, q, E(Z p ) et P. Soit B, le vérificateur de la signature. Ce dernier choisit un nombre d B [1, q 1] aléatoirement et calcule Q B = d B P. Quant aux n possibles signataires, ils créent mutuellement la clé publique Q et possèdent chacun une part d i du secret d tel que Q = d P (Voir Section 3.4.5). Soit t signataires P 1, P 2,..., P t voulant signer un message m. Un des signataires est aléatoirement sélectionné parmi les t autres comme étant le greffier. Il sera responsable de la collecte et la vérification des signatures partielles provenant des autres signataires. Signature 1. Chaque P i (i [1, t]) choisit un nombre aléatoire k i [1, q 1] et calcule : Y i = k i P que P i diffuse publiquement. Z i = k i Q B que P i envoie secrètement au greffier. 2. Le greffier calcule : Z = r = t i=1 Z i = t i=1 k i Q B = k Q B m Z mod p et envoie r à chaque signataire P i. 3. Chaque signataire calcule alors : x i = e i = s i = t j=1,j i d i x i mod q j i j mod q k i e i r mod q et envoie la signature partielle s i au greffier. 4. Le greffier calcule ensuite : Y i = r x i Q i + s i P et vérifie que Y i = Y i. Cette vérification prouve la validité de la signature partielle et le greffier n a plus qu à calculer la signature du groupe comme étant : (r, s) est la signature du message m. t s = s i mod q i=1 38

46 Vérification Après avoir reçu le couple (r, s), le vérificateur B vérifie sa validité en utilisant la clé publique Q du groupe de signataire et sa clé privée d B : Y = t t Y i = k i P = k P i=1 i=1 Y = r Q + s P Z = d B Y Si Y = Y, alors la signature sur m est valide. Le message m est retrouvé comme suit : m = r (Z ) 1 mod p Ceci est un schéma qui permet de chiffrer un message m et d en certifier la provenance. Ce schéma étant vérifiable, chaque participant est persuadé de la validité des données Sécurité Ces groupes nous permettent d utiliser des plus petits paramètres pour une sécurité égale à d autres groupes. En effet, [IGN99] ont estimé qu une clé de 173bits pour un cryptosystème basé sur les courbes elliptiques aurait la même sécurité qu une clé de 1024bits dans les systèmes à clé publique actuels. La société Certicom a également proposé des challenges avec récompense de $ si quelqu un arrivait à attaquer une clé de 131bits. Elle n a toujours pas été résolue. Ces plus petits nombres nous permettent également une plus grande liberté pour l espace de stockage et notamment sur des cartes à puce. Voici un tableau représentant le nombre de bits des clés pour RSA et pour le système cryptographique basé sur les courbes elliptiques pour une sécurité équivalente [See07]. RSA 1024-bits 3072-bits 7680-bits ECC 163-bits 256-bits 384-bits Ce qui fait la sûreté de l utilisation des courbes elliptiques par rapport à RSA ou à Elgamal, est la difficulté de résoudre le problème du logarithme discret sur le groupe d une courbe elliptique et non plus sur Z p. Ces groupes étant beaucoup moins connus et surtout différents d une courbe à une autre, les algorithmes qui sont aujourd hui efficace sur RSA ou Elgamal ne le sont pas sur les systèmes cryptographiques basés sur les courbes elliptiques. 39

47 Choisir ses groupes Le site recense actuellement des paramètres standards à donner aux courbes pour qu elles soit efficaces. L une des courbes recommandées est une courbe elliptique sur le corps fini (Z p ) dont le domaine de paramètres est sur 256-bits [Cer10]. p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F La courbe E y 2 = x 3 + ax + b sur Z p est défini par : a = b = G x = 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 G y = 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A C47D08F FB10D4B8 E(Z p ) = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D Mixnet Un mixnet (ou «Mix Network») est un protocole appelé multiparty computationand-communication qui permet de mélanger un grand nombre de messages pris en input de telle manière que personne n ait une idée de la manière dont les éléments ont été permutés. Ce protocole est utilisé pour garantir l anonymat de la personne ayant envoyé un message : on ne sait plus d où il vient. Le schéma inventé par Chaum [Cha84] est une suite de permutations appliquées sur des messages chiffrés, chacune de ces permutations étant réalisée par une entité appelée mixeur. Pour envoyer un paquet m de manière anonyme via un mixnet, il suffit de chiffrer ce paquet m par encapsulation à l aide des clés publiques de chaque mixeur. À chaque passage par un mixeur, le message crypté est amputé d une partie de son chiffrement et ensuite redirigé vers un autre mixeur pour finir par être totalement décrypté au stade final du système. La Figure 3.15 illustre le déroulement de l opération. Soit M, un mixnet qui possède k mixeurs, notés M i avec 1 i k, chacun en possession d une clé publique P U i et d une clé privée P R i. 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. 40

48 Mixnet MA MA MB B B MB MB MC D A MC MC MD C C MD MD MA A D Mixeur Mixeur Mixeur Figure 3.15.: Mixnet inventé par Chaum Pour envoyer un message m à un mixnet M à 3 mixeurs, il suffit de chiffrer ce dernier comme suit : C = E(P U 1, E(P U 2, E(P U 3, m))) où E(P U k, m) est la fonction de chiffrement qui chiffre le message m à l aide de la clé publique P U k. Le chiffré C est alors envoyé au mixnet et est dirigé vers une entrée du 1 er mixeur. Chaque mixeur M i effectue les actions suivantes : 1. Déchiffrer le paquet c qu il reçoit sur son entrée e : d = D(P R i, c) où D(P R k, c) est la fonction de déchiffrement qui déchiffre le paquet c à l aide d une clé privée P R k. 2. Regarder dans la table de permutation la sortie s associée à l entrée e. 3. Envoyer le paquet d sur l entrée s du prochain mixeur M i+1 si il existe. Si M i est le dernier mixeur, alors le processus est terminé et d = m. m peut alors être envoyé à sa destination finale. Chaque mixeur déchiffrant sa couche du message chiffré, les paquets qu il reçoit en entrée sont totalement différents de ceux qu il fournit en sortie. Il n existe donc aucun 41

49 moyen pour un observateur extérieur de déterminer une relation entre les entrées et les sorties : cet observateur perd la trace du message. Il faut cependant faire quelques hypothèses pour que cette propriété soit vérifiée en pratique. Par exemple, si un message est le seul manipulé dans le mixnet à ce moment là, il suffirait alors à l observateur extérieur d écouter une entrée et de voir par quelle sortie le message va être renvoyé au prochain mixeur. La solution au problème est d attendre l arrivée de plusieurs messages à l entrée d un mixeur avant de les mélanger et de les renvoyer vers le suivant. Il serait également possible d obtenir une corrélation entre entrée et sortie en regardant la taille des messages entrants et sortants. Si il existe des messages à l entrée de taille différente, Chaum propose de rajouter quelques bits inutiles afin de construire des messages de mêmes tailles [Cha02]. Il est facile de voir également que l observateur extérieur n a aucune certitude quant à la manière dont les mixeurs effectuent leurs opérations. Ils pourraient très bien (1) déchiffrer de manière incorrecte et (2) mixer les messages différemment de ce qu ils sont censés faire. Ce schéma de base proposé par Chaum n est donc ni vérifiable, ni robuste. Cela dit, des solutions existent et elles seront discutées en Section Mixnet à rechiffrement Une autre utilisation des mixnets, appelée «re-encryption mixnets»réalise une permutation sur les messages en entrée mais ne les déchiffrent pas. Cependant, pour permettre l anonymat, il faut que les messages en entrée des mixeurs soient différents des messages en sortie. Ceci peut être obtenu en permettant au mixeur de rechiffrer les messages qu il reçoit en entrée. Le système cryptographique d Elgamal permet le rechiffrement d un message chiffré [Kal04], i.e. on peut transformer un message chiffré en un autre chiffré mais contenant le même message original. Le protocole d un tel mixnet commence par le chiffrement d un message m avec la clé publique du destinataire à l aide d un système cryptographique permettant le rechiffrement (e.g. El Gamal - Section 3.3). Le message chiffré est ensuite envoyé vers un mixnet M de rechiffrement où chaque mixeur M i effectue les actions suivantes : 1. Recevoir à son entrée e un message chiffré c. Avec Elgamal défini sur un groupe cyclique G q d ordre q, sous-groupe de Z p, c = (g r, my r ) où g est générateur, y la clé publique et r un entier aléatoire [1, p 1] choisi par l expéditeur et éventuellement modifié par les mixeurs précédents si M i M 1 (voir Section 3.3 pour plus de précision). 2. Choisir un autre entier aléatoire s [1, p 1] et calculer : c = (g r g s, my r y s ) = (g r+s, my r+s ) 3. Regarder dans la table de permutation la sortie s associée à l entrée e. 4. Envoyer le paquet c sur l entrée s du prochain mixeur M i+1 si il existe. Si M i est le dernier mixeur, alors le processus est terminé et c peut alors être envoyé à son destinataire. La Figure 3.16 illustre le fonctionnement d un tel mixnet. 42

50 Mixnet MA MA MB MB MB MB MB MC MD MA MC MC MD MC MC MD MD MA MA MD Mixeur Mixeur Mixeur Figure 3.16.: Mixnet de rechiffrement Mixnet vérifiable L observateur extérieur n ayant aucune certitude quant à la manière dont les mixeurs effectuent leurs opérations, il serait intéressant de pouvoir ajouter quelques améliorations aux protocoles pour assurer la vérifiabilité du système. Preuve de n n rechiffrement Comme il est possible d établir la preuve qu un message chiffré est un rechiffrement d un autre (Voir Section 3.6.2), il serait intéressant de prouver qu un groupe de n messages chiffrés est bien un rechiffrement d un autre groupe sans révéler les correspondances un à un des messages. C 1 C' 1 Mixeur C 2 C 2 ' Figure 3.17.: Mixeur 2x2 43

51 Avant de résoudre le cas général d une preuve de n n rechiffrement, il faut d abord considérer le cas de 2 2 rechiffrement [Lep04]. Soit M 2, un mixeur prenant en entrée deux messages chiffrés C 1 et C 2 et qui fournit en output deux messages rechiffrés C 1 et C 2. Soit a b, la relation exprimant le rechiffrement b d un message chiffré a, le mixeur M 2 doit prouver que : (C 1 C 2 C 2 C 1) (C 1 C 1 C 2 C 2) Cette équation peut être ramenée à : (C 1 C 2 C 1 C 1) (C 1 C 2 C 2 C 2) (C 2 C 1 C 1 C 1) (C 2 C 1 C 2 C 2) où chaque disjonction peut être vérifiée par un vérificateur en demandant la preuve qu une des deux expressions est juste. Pour ramener cette preuve à une preuve de n n rechiffrement, [Lep04] propose d utiliser la notion de réseau de tri. Un tel réseau est composé de plusieurs comparateurs prenant 2 nombres en input et ressort en output les nombres de manière triée. Ces réseaux de tri permettent d effectuer une permutation de n nombres en input de manière à les trier (voir Figure 3.18). Il existe des réseaux de tri composés de nlog 2 n comparateurs même si il en existe de plus efficaces en théorie mais beaucoup plus complexes [Lep04]. a b max(a, b) min(a, b) Figure 3.18.: Réseau de tri Cette idée pourrait être utilisée pour représenter une permutation de mixnet comme étant un réseau de tri où l on remplace les comparateurs par des mixeur 2 2. De cette manière nous obtenons bien un mixnet vérifiable étant donné que chaque mixeurs 2 2 est vérifiable. Il peut être malin d utiliser cette structure de réseau de tri pour effectuer les permutations d un mixeur. En effet, un mixeur pourrait associer au hasard un entier à chaque message chiffré qu il reçoit en entrée. Ces nombres pourraient être par la suite utilisés par un réseau de tri pour réaliser une permutation aléatoire sur ces messages. [Lep04] ont estimé le temps que mettrait un mixnet vérifiable pour effectuer une permutation de 10 3 inputs à 3 4 heures. Cependant, il existe des mixnet vérifiables plus efficaces comme notamment celui de Neff [Nef03] qui permet d effectuer une permutation vérifiable de 10 5 inputs en 20 heures. 44

52 Le projet Tor Inspiré des mixnet, Tor 20 est un réseau mondial de routeurs dont le principal but est de transmettre des paquets sur le réseau de manière anonyme. Comment l anonymat est-il obtenu? Imaginons que Alice souhaite envoyer un message à Bob sans que Bob ne sache où se trouve réellement Alice sur le réseau. L idée est de permettre à Alice de faire passer son message par un chemin de routeurs d un réseau Tor avant d atteindre sa destination. L envoi d un message est effectué comme suit : 1. Alice demande à un serveur central un chemin de routeurs par lesquels elle va pouvoir envoyer son message ainsi que la clé publique d un système cryptographique asymétrique de chaque routeur. Soit (r 1, r 2,..., r n ), un tel chemin. 2. Alice va ensuite chiffrer son message en plusieurs couches (une couche de chiffrement par routeur du chemin) en commençant par le chiffrement du dernier routeur et en finissant par le chiffrement du premier. 3. Alice envoie le résultat au routeur r Chaque routeur sur le chemin effectue les actions suivantes : a) Déchiffrer le message reçu en entrée grâce à sa clé privée. b) Changer l IP d envoi par celle du routeur. c) Envoyer le résultat au routeur suivant du chemin (à Bob si le routeur est r n ). 5. Bob reçoit le message original que voulait lui envoyer Alice et ne possède que l IP du dernier routeur du réseau Tor. Le paquet étant modifié à chaque entrée et sortie d un routeur, il est impossible pour quelqu un d extérieur de voir où le message a été retransmis (Selon les mêmes hypothèses qui ont été faites en début de Section 3.5). Il est également possible de configurer un chemin de retour appelé l «oignon de retour». Cette fonctionnalité est souvent utilisée lors de la transmission d une requête HTTP lorsqu un utilisateur surfe sur Internet. 20. de son vrai nom : The Onion Router 45

53 3.6. Preuve Preuve à divulgation nulle de connaissance de la connaissance d un logarithme discret. Un prouveur P connait le logarithme discret de h = g l, soit l, g étant un générateur d un groupe multiplicatif G q d ordre q. Il souhaite le prouver à un vérificateur sans que ce dernier puisse prendre connaissance de l. Cette preuve peut être réalisée grâce au protocole de Schnorr [Sch89]. Protocole de Schnorr 1. P choisit un nombre aléatoire v mod q. 2. P caclule t = g v et envoie cette valeur à V. 3. V calcule un challenge c = H(g, h, t) où H est une fonction de hachage sécurisée et l envoie à P. 4. P calcule alors r = v cl mod q et l envoie à V. 5. V peut maintenant s assurer que t = g r h c est bien égal à t. Si tel est le cas, alors P a prouvé la connaissance de l sans le communiquer à V. A noter que si P sait choisir le challenge c, alors il pourrait alors facilement calculer un r aléatoire qui donnerait donc un t aléatoire, qu il enverra à la place de t lors de son annonce à l étape 2. Le vérificateur ne sachant pas qu il connaissait c, voit que t est bien égale à t Preuve à divulgation nulle de connaissance d égalité de messages chiffrés Une preuve d égalité de message chiffrés est la preuve qu un message chiffré c 2 est un rechiffrement d un message chiffré c 1. Autrement dit, si c 1 et c 2 sont des messages chiffrés d un même message original. Soit c 1 = (α 1, β 1 ) = (g t, m 1 y t ) et c 2 = (α 2, β 2 ) = (g u, m 2 y u ), deux messages chiffrés. Et soit : (a 1, a 2, b 1, b 2 ) = (g, y, α 2 α 1, β 2 β 1 ) = (g, y, g u t, m 2 m 1 y u t ) Théorème 4 ([Hoh04]) Le message chiffré c 2 est un rechiffrement de c 1 si et seulement si log a1 (b 1 ) = log a2 (b 2 ). (a 1, a 2, b 1, b 2 ) est alors nommé comme étant un tuple DDH 21. Si on souhaite prouver que c 2 est un rechiffrement de c 1, cela implique que m 1 = m 2. Il suffit donc de prouver que (g, y, g u t, y u t ) est un tuple DDH. Cette preuve est réalisée grâce au protocole de Chaum-Pedersen [ECP92] qui teste l égalité logarithmique de deux messages chiffrés sans en divulguer la valeur. 21. pour «Decisional Diffie Hellman» 46

54 Protocole de Chaum-Pedersen Soit P un prouveur souhaitant prouver que (g, y, w, u) est un tuple DDH et V, un vérificateur. 1. P choisit s Z q et envoie (a, b) = (g s, w s ) à V 2. V envoie c Z q à P. 3. P envoie t = s + cr. 4. V accepte la preuve si et seulement si g t = aw c et y t = bu c Conjonction et disjonction de preuve à divulgation nulle de connaissance Cette technique a été inventée par Cramer et al. [CS94] pour prouver des conjonctions et surtout des disjonctions d assertions à divulgation nulle de connaissance. Si la conjonction est relativement simple à réaliser en effectuant chaque preuve une à une, la disjonction demande un peu plus de malice. Pour produire une preuve à divulgation nulle de connaissance de A ou de B, il suffit de connaître les méthodes pour prouver A et B indépendamment et de fonctionner de la manière suivante : ZK-proof c (A B) = ZK-proof e (A) ZK-proof d (B) (d + e = c) Si le prouveur est en mesure de prouver soit A soit B, alors le système lui donne la possibilité de ne mentir qu une seule fois. Imaginons qu un prouveur ne puisse prouver que la proposition B. Le système lui donne alors la possibilité de choisir son challenge e choisit au hasard) pour la proposition A (puisqu il connait le challenge, il peut alors tricher sur la preuve) et de réaliser la preuve qu il peut faire honnêtement sur d = c e. Ne connaissant pas c à l avance, le prouveur ne peut déduire d, même si il fixe e au départ. Au final, le prouveur a prouvé honnêtement l une des deux propositions mais le vérificateur n a aucune idée de laquelle (e lui étant inconnu). k sur n propositions vraies Il est possible d étendre la propriété de conjonction en permettant au prouveur de prouver que seulement k des propositions des n sont valides. En effet, le prouveur pourra donc choisir n k challenges à l avance et devra effectuer de vraies preuves sur les k autres challenges déduit du challenge c qu il reçoit du vérificateur. Il faut cependant lui fournir des contraintes sur les k derniers choix sinon il pourrait effectivement tricher. Généralement [Smi05], ces contraintes sont exprimées par k équations linéaires. 47

55 Preuve non-interactive à divulgation nulle de connaissance Tous les protocoles à challenges c peuvent être rendus non-interactifs par la méthode proposée par Fiat-Shamir [FS87]. L idée est de transformer le challenge en quelque chose de connu mutuellement par le prouveur et le vérificateur et que le prouveur ne peut pas contrôler. Pour cela, Fiat et Shamir mette à la disposition des deux participants une fonction de hachage vue comme un oracle aléatoire 22. Par exemple, sur le protocole de Schnorr (Voir Section 3.6.1), si le prouveur calcule premièrement t = g v et qu il définit son challenge c en calculant H(t), c peut être utilisé comme challenge sans avoir besoin d une interaction avec le vérificateur. La fonction de hachage H doit bien évidemment être publique et connue de tous. Le vérificateur recevra la valeur t et la preuve du prouveur, et pourra vérifier qu il a bien utilisé la bonne fonction de hachage. Cette méthode est souvent utilisée pour substituer une communication à 3 temps à une communication à 1 temps. Cette méthode est couramment utilisée Preuve à divulgation nulle de connaissance de validité du contenu d un message chiffré Byoungcheon Lee a introduit dans sa thèse [Lee02] une méthode permettant de savoir si un certain message m crypté est valide. En voici la description : La clé publique du receveur : h = g s M = ensemble de messages considérés comme valides = { m 1, m 2,..., m L } Le prouveur génère un chiffrement de son message m i par la méthode d ElGamal : (x, y) = (g k, m i h k ) Le prouveur veut maintenant prouver que son message est dans M sans dévoiler le contenu de son message. Prouveur Le prouveur choisit un nombre w au hasard Z q et calcule : { ai = g w b i = h w j tel que (j i) (j L), P choisit r j, d j Z q et calcule : { aj = g r j x d j b j = h w Le prouveur calcule son challenge c à l aide d un oracle aléatoire c = H(a 1, b 1,..., a L, b L ) 22. Un oracle aléatoire peut être vu ici comme une fonction de hachage qui prend un message en entrée et qui fournit en sortie un résultat tel qu il peut être vu comme aléatoire. 48

56 Le prouveur calcule : { di = c j i d j r i = w kd i Le prouveur publie (A, B, D, R) = (a 1, b 1, d 1, r 1,..., a L, b L, d L, r L ) Vérifieur Le vérificateur vérifie si : d d L = H(g r 1 x d 1, h r 1 (y/m 1 ) d 1,..., g r L x d L, h r L (y/m L ) d L ) 49

57 Chapitre 4. Schémas de vote à distance Un schéma de vote à distance est un système visant à permettre à un groupe de personnes d effectuer un vote à distance. Ce système est composé d une suite d algorithmes protocolaires exécutés sur les différentes machines des protagonistes du système. Les principaux protagonistes d un système de vote à distance sont : (1) Les votants (V i ) : Les votants sont les personnes ayant le droit de voter pour l élection concernée, i étant l identifiant du votant. (2) Les bureaux d enregistrement (R) : Ils s occupent de l enregistrement des votants auprès des institutions de votes. (3) Les bureaux de comptage (T ) : Ils s occupent du comptage des votes. (4) Les valves publiques (BB) : Ces valves sont des tableaux publics sur lesquels les votants et les autorités de vote peuvent publier des informations librement. Lorsqu une information x est rajoutée sur les valves publiques, aucun des participants n a le droit de pouvoir supprimer ou modifier x. Un schéma de vote classique s articule sur plusieurs phases : (1) Phase de configuration : Durant cette phase, les outils cryptographiques sont mis en place et configurés pour permettre à l élection d avoir lieu. C est aussi durant cette phase que l enregistrement des votants auprès de l institution de vote est réalisé. (2) Phase de vote : Les votants sont invités à procéder à l enregistrement de leur vote, ce dernier étant soigneusement chiffré à l aide des outils cryptographiques mis en place à la phase précédente. (3) Phase de décompte : Les bureaux de comptage parcourent le tableau de votes, comptent les votes et publient le résultat de l élection. (4) Phase de contestation : Les votants constatent le résultat de l élection et vérifient si celle-ci s est déroulée correctement. Dans le cas où cette phase de vérification n est pas concluante, le votant conteste l élection en y apportant la preuve. Au contraire, si tout s est bien passé, chacun des votants est persuadé que l élection est règlementaire. 50

58 Notation A B : m A envoie le message m à B. A inécoutable B : m chiff L (m) dech L (m) chiff L (m, r) dech L (m, r) rechiff L (c, r) A envoie le message m à B via un canal inécoutable. Chiffrement du message m avec la clé publique de L Déchiffrement du message m avec la clé privée de L Chiffrement du message m avec la clé publique de L à l aide d un aléatoire r. Déchiffrement du message m avec la clé privée de L à l aide d un aléatoire r. Rechiffrement du chiffré c avec la clé publique de L à l aide d un aléatoire r. sign L (m) Signature de L sur le message m. aveugl(m, r) pr A (e) ZKP {(e) : A} Cacher le message m par un aléatoire r preuve à divulgation nulle de connaissance (non-interactive) de la proposition A sur l élement e. preuve à divulgation nulle de connaissance (non-interactive) de la proposition A sur l élement e. DB L représente la base de donnée de L. 51

59 4.1. Schéma basé sur les signatures aveugles Ce schéma de vote a été proposé par Ohkubo et al. [OMA + 99] et est une amélioration du schéma de Fujioka et al. [FOO93] qui était le premier schéma de vote basé sur les signatures aveugles Design Ce schéma de vote implique la présence de votants V i, d un bureau d enregistrement de confiance R et de quelques bureaux de comptages T qui génèrent leur clé publique et privée coopérativement par la méthode présentée en Section Chaque V i va chiffrer son vote v i à l aide de la clé publique de chiffrement des bureaux de comptages. V i va ensuite faire signer aveuglement son vote par R et envoyer son vote accompagné de la signature à T. Ces derniers vont vérifier la signature, déchiffrer coopérativement le vote et publier le résultat. Le fonctionnement de base est illustré à la Figure 4.1. Votant 1 Vote chiffré Vote chiffré 5 caché 4 2 caché 3 caché Bureau d'enrg. Figure 4.1.: Idée du schéma de vote de Ohkubo et al Fonctionnement Phase de configuration V i chiffre son vote, qu il a soigneusement caché à l aide d un aléatoire r, à l aide de la clé publique de T et d un aléatoire r et signe ce chiffré à l aide sa clé privée : V i R : ID i, aveugl(chiff T (v i, r ), r), sign Vi (aveugl(chiff T (v i, r ), r)) Le bureau d enregistrement R renvoie la signature du chiffré aveuglé par le votant si V i a le droit de voter et si il n a pas déjà octroyé une signature pour V i. Il publie ensuite les informations qu il a reçues de V i sur les valves publiques : R V i : R BB : sign R (aveugl(chiff T (v i, r ), r)) ID i, aveugl(chiff T (v i, r ), r), sign Vi (aveugl(chiff T (v i, r ), r)) 52

60 Phase de vote Le votant V i enlève le cache sur la signature de R qu il vient de recevoir et envoie son vote chiffré accompagné de cette signature aux valves publiques via un canal anonyme : V i BB : ID i, chiff T (v i, r ), sign R (chiff T (v i, r ), r) Phase de décompte Les bureaux de décomptes déchiffrent coopérativement les votes v i qu ils ont reçu en vérifiant la signature de R. Ces derniers publient par la suite le résultat de l élection. v i = dechiff T (chiff T (v i, r )) Propriétés (1) Incoercibilité : Ce schéma n est pas sécurisé contre un attaquant qui souhaite le faire voter comme il le souhaite. En effet, il est possible que l attaquant force le votant à lui communiquer les aléatoires r et r qu il a utilisés respectivement pour cacher son vote du bureau d enregistrement et pour chiffrer son vote. Dès lors, l attaquant pourra vérifier sur les valves publiques si la valeur aveugl(chiff T (v i, r ), r) qui se trouve à côté de l ID du votant est bien un chiffrement du vote qu il voulait. (2) Pas de vente possible : Comme pour le point (1), il est possible au votant de vendre les aléatoires r et r en guise de preuve pour la vente de son vote. (3) Vérifiabilité : Ce schéma offre une Vérifiabilité individuelle étendue car le votant peut vérifier la véracité des informations jointes à son identifiant ID i en enlevant le cache à l aide de son aléatoire r et en rechiffrant son vote v i avec le même aléatoire r pour les comparer et voir si c est bien son vote. 53

61 4.2. Schéma Homomorphique : Helios 2.0 Ce schéma de vote a été utilisé par l Université Catholique de Louvain (UCL) pour élire leur président. Il a d abord été développé sur base de mixnet (Helios 1.0, [Adi08]) mais il a ensuite été amélioré en utilisant un système à chiffrement homomorphique pour le décompte des voix (Helios 2.0, [APMjQ09]). La version 2.0 inclut également un décompte par de multiples bureaux de comptages. Homomorphisme Le chiffrement chiff (m) d un message m est dit homomorphique si : chiff (m 1 ) chiff (m 2 ) = chiff (m 1 + m 2 ) e.g. le chiffrement d un message m avec le système cryptographique d Elgamal est homomorphique. Le chiffrement du message est calculé comme étant (k, c) = (g r, g m y r ). Si nous réalisons la multiplication de deux chiffrements de messages m 1 et m 2, nous obtenons : (k 1 k 2, c 1 c 2 ) = (g r 1+r 2, g m 1+m 2 y r 1+r 2 ) qui est le chiffrement de v 1 + v 2. Ce type d outil nous permettrait de compter des votes sans les déchiffrer un à un. Il faut cependant que les votes soient représentés par des valeurs sommables Design Ce schéma d élection a été réalisé sur un site web sur lequel le votant pouvait se connecter et effectuer son vote. Les élections étaient de type OUI/NON sur chaque candidat qui s était présenté, le bulletin de vote étant donc composé de plusieurs votes : un par candidat. Par souci de clarté, le vote sera défini ici comme n étant qu un seul vote OUI/NON pour un seul candidat, une version à plusieurs candidats étant possible en considérant le vote comme étant un vecteur de vote OUI/NON Fonctionnement Phase de configuration La clé privée s des bureaux de comptage (T i ) est générée coopérativement (Voir Section 3.3.2). Chacun des bureaux de comptage stocke la part de secret s i qu il obtient. La clé publique est ensuite calculée comme étant h = g s, g étant générateur d un groupe cyclique d ordre q, G q. Chacun des votants reçoit des autorités de votes un document signé sur lequel est noté leur identifiant et leur mot de passe pour se connecter au site. 54

62 Phase de vote Chaque votant V i s identifie à l aide de l identifiant et du mot de passe qu on lui a fourni lors de la phase de configuration sur le site web d Helios. V i remplit ensuite son vote v i {0, 1} et procède ensuite à son chiffrement à l aide de la clé publique générée à l étape précédente par les bureaux de comptages : chiff T (v i, r i ). V i réalise également une preuve à divulgation nulle de connaissance de la validité de son vote chiffré. Cette preuve peut être réalisée en prouvant au bureaux de comptage que le contenu de son vote déchiffré vaut bien 0 ou 1, ce qui peut être fait par une preuve à divulgation nulle de connaissance de validité du contenu d un message chiffré (Voir Section 3.6.5). Grâce à une disjonction de preuve on peut prouver que le message chiffré équivaut à un chiffrement d un vote v i = 1 ou à un chiffrement d un vote v i = 0. Cette preuve étant non-interactive, le votant peut le joindre à son vote pour créer son bulletin de vote b i. b i = (chiff T (v i, r i )), Pr valid (chiff T (v i, r i ))) Lorsque le votant valide son vote pour l envoie, ce dernier est enregistré par le serveur du site web. Une version hachée de son vote est postée sur les valves publiques. V i BB : ID i, hash(b i ) A noter que le site d Helios donne la possibilité au votant de vérifier si un chiffrement de son vote est valide. En effet, le chiffrement du vote étant réalisé avant que le vote n ait pu être émis, le votant pourrait décider de ne pas l envoyer mais plutôt de vérifier que le chiffrement de son vote est correct, comme une sorte d «inspection surprise». Le site web va alors révéler la valeur aléatoire qu il a utilisé pour chiffrer le vote et le votant pourra dès lors vérifier individuellement si le résultat du chiffrement est bon. Le bulletin n est dès lors plus considéré comme étant valide et le votant est invité à recommencer le processus. Ce processus est appelé «ballot auditing»en anglais et peut être traduit par «Vérification de vote». Cette propriété à été fortement étudiée par Benaloh [Ben07]. Phase de décompte Pour chaque entrée enregistrée par les votants, les bureaux de comptages T i vont vérifier les preuves Pr valid et éliminer celles qui sont invalides. Les doublons sont également éliminés 1. Le produit de tous les votes chiffrés restants est réalisé : v total = i v i Comme le schéma utilise le système crytopgraphique d Elgamal, la valeur obtenue sera un chiffrement de la somme des votes. Les bureaux de comptages vont dès lors déchiffrer coopérativement la valeur finale et publier le résultat final cette opération peut être effectuée lors de l enregistrement du vote en substituant l ancien vote d un votant par son nouveau. 2. Un résultat pondéré sera également réalisé, l université étant composée de plusieurs entités ayant plus ou moins d importance dans la décision finale. Voir [APMjQ09] pour une discussion approfondie sur les problèmes que peut engendrer une telle pondération sur le décompte des votes par homomorphisme. 55

63 Phase de contestation Une fois la phase de vote terminée, les valves publiques sont figés. Le projet Helios permet aux votants de contester le résultat du vote pendant une journée entière. Les valves publiques sont enregistrées dans un fichier signé par les autorités de votes et un reçu signé de chaque vote est également fourni aux votants. Après avoir publié tous ces documents signés, une journée entière est consacrée aux votants pour leur donner le droit de contester les élections et même de revoter si il s avère qu il y a eu des problèmes. Pour soumettre une plainte, le mécanisme de vote est quasiment identique à celui présenté à la section précédente à la différence près que le vote, cette fois-ci reste secret et n est pas publié sur les valves publiques. Un reçu signé est alors présenté au votant ayant pour contenu un hachage de son vote. Le votant est alors invité à imprimer ce reçu et à le signer de sa propre main pour ensuite l envoyer par fax à l autorité de vote. Par cette action (1) le reçu signé donné au votant peut être utilisé comme preuve qu il a effectivement voté, (2) La signature à la main est considérée comme étant une évidente preuve d identité et (3) La transmission par fax produit un reçu rendant impossible un déni de réception d une plainte de la part des autorités de vote. Lors d une élection à 2 candidats et 5000 votants effectuée à l aide de Helios 2.0 [APMjQ09], seul 1% des votants ont revoté et seuls 7 d entre-eux ont émis une plainte (la plupart étant bénignes et ne mettant pas en doute le comportement du système de vote) Analyse Incoercibilité/Vente impossible Secret Vérifiabilité individuelle basique Vérifiabilité individuelle étendue Vérifiabilité universelle Incoercibilité / Vente impossible Le schéma Helios n a pas été réalisé pour être résistant à la coercition. Les auteurs définissent l élection de leur président comme étant une élection «faiblement-coercible»et «hors de portée»d une organisation prête à acheter le résultat [APMjQ09]. Il empêche cependant la vente de vote de manière pratique en empêchant le votant d utiliser le vote qu il a voulu vérifier lors de la phase de vote. Il suffirait alors au votant de donner toutes les informations à l acheteur, et plus principalement l aléatoire utilisé pour le chiffrement, pour fournir une preuve claire du contenu du vote. Cependant, cette méthode est juste présente pour empêcher la vente de vote de manière pratique, elle ne l empêche néanmoins pas totalement. 56

64 Secret Le secret du vote est gardé et cela même lors du décompte car le vote du votant n est jamais réellement révélé. La robustesse du secret du vote réside donc dans la robustesse de la méthode de chiffrement : la seule manière de pouvoir révéler le contenu d un vote est de réussir à inverser la fonction de hachage utilisée lors de la publication de ce dernier et d ensuite résoudre le problème du logarithme discret. Vérifiabilité Le votant peut, en effet, vérifier si le hachage de son vote publié sur les valves publiques est bien le hachage de son vote. Dès lors, seule une vérifiabilité individuelle basique est établie car le votant n a à aucun moment la possibilité de vérifier le contenu réel de son vote. Cependant, grâce à la méthode de vérification de vote établie par Benaloh (voir phase de vote), le votant peut quand même s assurer que le système fonctionne bien en «testant»au hasard si un chiffrement est bien réalisé. Il faut cependant garder en tête que cette vérification n est pas totale et qu en plus elle ne concerne qu un seul vote. 57

65 4.3. Schéma de Juels, Catalano et Jakobsson [JCJ05] Ce schéma de vote est le premier système de vote à fournir la propriété d incoercibilité pour protéger les votants contre d éventuelles attaques. Ce système de vote utilise les techniques de canaux anonymes tels que les mixnet (voir Section 3.5). Il introduit également la notion d accréditation. 3 Une accréditation est un jeton unique assigné à chaque votant lors de la phase d enregistrement permettant de le rendre anonyme lors de son vote Design Inécoutable Accréditation 1 1 Votant Autorité de vote 1. Vérifie validité 2. Elimine doublons 3. Elimine les accréditations non-valides 4. Déchiffre et compte les votes 2 3 Mixnet 4 Tableau de vote (publique) Vote chiffré Accréditation chiffrée Nom Accréditation chiffrée Figure 4.2.: Schéma de vote de Juels, Catalano et Jakobsson [JCJ05] 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 une accréditation non valide. Le système devra donc agir de la même manière avec le votant, qu il reçoive une bonne ou une mauvaise accréditation. Ainsi, l attaquant perdurera toujours dans le doute quant au votant : «A t-il utilisé la bonne accréditation?». Ce schéma permet également au votant de revoter après avoir effectué un vote, le dernier vote étant celui qui comptera dans le décompte final. Ce schéma utilise le système cryptographique d Elgamal (voir Section 3.3) pour ses propriétés de chiffrement probabiliste et de rechiffrement. 3. Credential en anglais 58

66 Fonctionnement Phase de configuration Le bureau d enregistrement R vérifie l éligibilité de chaque votant V i et lui transmet une accréditation via un canal inécoutable. Il publie sur les valves publiques l identifiant du votant, ID i à côté de son accréditation chiffrée. R inécoutable V i : σ i R BB : ID i, chiff T (σ i ) Phase de vote Le votant V i publie son vote v i sur les valves publiques. Ce bulletin de vote est composé d une accréditation chiffrée, du vote chiffré et d une preuve de validité. V i BB : chiff T (v i ), chiff T (σ i ), Pr val À noter que le chiffrement de l accréditation effectué par le votant n est pas le même que celui effectué par R. En effet, le chiffrement d Elgamal est un chiffrement probabiliste basé sur une valeur aléatoire paramétrisant la fonction de chiffrement. Phase de décompte Le bureau de comptage T effectue les actions suivantes : 1. Élimination des votes n ayant pas de preuve de validité correcte. 2. Élimination des doubles accréditations en ne gardant que la dernière (Voir Section 4.3.3). 3. Utilisation d un mixnet pour anonymiser les votes. La liste d accréditation créée lors de la phase de configuration est également mixée. 4. Élimination des votes accompagnés d accréditation qui ne figurent pas dans la liste générée lors de la phase de configuration à l aide d une vérification aveugle 2 à 2 (Voir Section 4.3.3). 5. Le reste des votes est déchiffré et le comptage peut être réalisé En coulisse Vérification en aveugle 2 à 2 d accréditation Deux chiffrements d une même accréditation étant différents l un de l autre (dû à la valeur aléatoire choisie par l expéditeur dans le système d Elgamal), il faut mettre en place une technique de comparaison d accréditations tel que le bureau de vote ne puisse avoir accès à l accréditation déchiffrée. Si tel était le cas, les votants ne seraient plus anonymes vis à vis des autorités de vote. 59

67 Pour cela, le schéma de vote utilise un «test d égalité de messages orignaux». Ce test est un protocole qui teste si deux chiffrements réalisés par un système Elgamal sont des chiffrements d un même message original sans en révéler le contenu. Soit deux messages chiffrés (x 1, y 1 ) = (g r 1, h r 1 m 1 ) et (x 2, y 2 ) = (g r 2, h r 2 m 2 ). Si il s avère que m 1 = m 2, alors le message chiffré (x 3, y 3 ) = ( x 1 x 2, y 1 y 2 ) = (g r 1 r 2, h r 1 r 2 m 1 m 2 ) est le message 1 chiffré. Dès lors, après avoir réalisé cette opération, il suffit à T de déchiffrer (x z 3, yz 3 ) et si le résultat du déchiffrement est 1 alors les deux messages chiffrés sont des chiffrements d un même message. Ainsi T n a aucune idée de la vraie accréditation. Élimination des doubles accréditations et des accréditations valides Pour éliminer les doublons, il faudrait réaliser un test d égalité sur chaque paire d accréditation présente dans le tableau de vote. En ce qui concerne les accréditations valides, il faut comparer chaque accréditation dans le tableau de vote à celles valides créées durant la phase de configuration par R Analyse Eficacité Comme chaque test d égalité d accréditation doit être réalisé sur l ensemble de toutes les accréditations, ce schéma est inefficace car effectué en temps quadratique [Web06]. Des solutions sont cependant proposées par Smith [Smi05] pour utiliser une table de hachage pour détecter des collisions d accréditation plus facilement. L idée étant de créer une empreinte aveugle de l accréditation en élevant l accréditation chiffrée à une certaine puissance z et ensuite, en déchiffrant le résultat, T obtient une empreinte déterministe de l accréditation sans en connaître la vraie valeur. Il est donc plus facile de détecter les collisions à l aide de cette empreinte. Cependant cette amélioration a été attaquée par [AFT08] qui propose un algorithme qu un attaquant pourrait faire tourner pour voir si le votant qu il attaque lui a bien fourni une bonne accréditation. Le décompte des votes reste donc quadratique. Propriétés respectées Ce schéma offre les propriétés suivantes : (1) Incoercibilité : La possibilité donnée au votant d effectuer de faux votes met dans le doute ses possibles agresseurs. (2) Pas de vente possible : L acheteur n ayant aucune certitude quant à la véracité de l accréditation, il risque donc d acheter du vent. (3) Vérifiabilité : Ce schéma n offre qu une vérifiabilité individuelle basique. Le votant peut en effet reconnaître son vote chiffré sur le tableau de vote (étant donné que ce chiffrement provient de lui) mais ne peut pas en vérifier le contenu exact. Cette vérifiabilité est étendue après le mixage des votes, chaque mixeur du mixnet fournissant une preuve publique de son bon fonctionnement (voir Section 3.5.2). Mais après cette phase, le votant ne peut plus identifier son vote sur le tableau de vote, ce dernier étant rechiffré. 60

68 Remarques L accréditation étant sensée rester secrète sur le long terme, il doit être proscrit d imprimer cette accréditation sur une feuille, l attaquant donc pourrait y avoir accès. Voici une liste de solutions énoncées en [Web06] : 1. Mémoriser mentalement l accréditation : L accréditation étant un très grand nombre, il est impossible au votant de le mémoriser. 2. Clé USB, Smart Cards,... : Tous ces éléments peuvent être volés par l attaquant (de manière subtile ou par la manière forte). Il faut donc mettre en place un système de code PIN tel que ces outils, en fonction d un bon ou mauvais PIN, nous donnent respectivement une bonne ou une mauvaise accréditation. Une confiance supplémentaire envers ces outils hardware doit dès lors être établie. 3. Serveur web : Un système à distance similaire aux outils hardware. Il doit donc respecter les mêmes propriétés qu au point (2) et une confiance supplémentaire envers un serveur doit également être établie. Il est difficile de voir laquelle de ces solutions est la plus appropriée, le schéma de JCJ n apportant aucune solution claire à ce problème Application : Civitas Civitas [CCM08] est une implémentation basée sur le schéma de Juels, Catalano et Jakobsson. Cette implémentation apporte quelques importantes modifications : 1. Le schéma de JCJ propose une solution à un bureau d enregistrement. Civitas incorpore une solution à un bureau d enregistrement accompagné de plusieurs autres bureaux qui n ont pas confiance l un en l autre. Cela implique une génération d accréditation distribuée qui est réalisée à l aide de parts d accréditation différentes provenant de chaque bureau. 2. Civitas fournit un protocole de génération d accréditations (valides ou non-valides) en prouvant sa sécurité. 3. La possibilité de voter plusieurs fois est exploité chez Civitas pour permettre un vote de type k-parmi-n ordonné (Voir Section 1.3) Selections Selections est un protocole cryptographique de vote inventé par Clark et Hengartner [CH11] basé sur la technique de mot de passe d urgences. Il repose sur les mêmes bases que JCJ (mixnet) mais apporte une efficacité linéaire sur le nombre de votes émis. Ce schéma de vote est une version adaptée de AFT [AFT08], proposé par Araujo et al., qui avait déjà apporté une solution en temps linéaire sur le nombre de votes. Par souci de place, le document ne présentera que la version présentée par Clark et Hengartner mais le lecteur est invité à parcourir la solution proposée par Araujo et al. pour de plus amples informations. 61

69 Design Fonctionnement Le fonctionnement du protocole s articule sur 4 étapes : La configuration, l enregistrement, le vote et le pré-comptage. Configuration n-1 n Autorité de vote Cette phase implique n «sous-autorités»de vote {T 1, T 2,...T n } et une autorité de vote centrale T. Les paramètres p et q du système cryptographique d Elgamal (voir Section 3.3) sont bien choisis tel que le problème du logarithme discret soit difficile dans le sous-groupe multiplicatif G q de Zp. Chaque sous-autorité T i participe à un protocole de génération de clé distribuée (Voir Section 3.3.2), les engagements de chaque T i étant envoyés à l autorité centrale T. Ce dernier les diffuse publiquement sur les valves publiques. La clé publique e est calculée et également publiée. Chaque sousautorité T i détient une part de secret d i. Enregistrement Comme pré-enregistrement, l utilisateur choisit α mots de passe (dans [CH11], α = 10) chez lui via un logiciel installé sur son ordinateur ou en ligne sur un site web. Ce logiciel modifie ces mots de passe grâce au standard PBKDF 4 et les chiffres à l aide de la clé publique du bureau d enregistrement et d un aléatoire r k (où k [1, n]). c k = chiff R (g PBKDF(p k), r k ) k [1, α] où p k est le k eme mot de passe et g PBKDF(p k) est une mise en gage de ce même mot de passe. Le logiciel imprime cette liste de mots de passe chiffrés accompagnée d une preuve à divulgation nulle de connaissance du message original (sous forme de code barre). La phase d enregistrement à proprement parler se déroule dans un bureau d enregistrement possédant un isoloir physique. Le votant V i, muni de sa feuille de mots de passe chiffrés, montre son identité et son droit de vote à une personne qualifiée du bureau et se présente dans un isoloir, ce dernier étant muni d un ordinateur et d un scanneur de code 4. Password-Based Key Derivation Function : C est une fonction un standard RSA Laboratories utilisée pour dériver une clé secrète à partir d un mot de passe. Cette fonction peut être vue comme une fonction de hachage à laquelle on rajoute un salage pour rajouter de l indéterminé. 62

70 barre. Le votant scanne chaque mot de passe chiffré de sa feuille. L ordinateur du bureau d enregistrement rechiffre ces mots de passes chiffrés à l aide de la valeur aléatoire r k. c k = rechiff e (c k, r k) k [1, α] password 1 password 2... password n passwords chiffrés NIZKP 2 1. Vérifie NIZKP 2. Rechiffre passwords avec random r. Votant Inécoutable 1 Bureau d'enrg Choisit s [1,n] 2. Supprime (password chiffré (indice s) + r) s print 4 passwords rechiffrés print 3 passwords chiffrés + r s 6 s Tableau public 7 ID Votant password rechiffré s L ordinateur va alors imprimer une seconde feuille possédant deux colonnes (la deuxième étant composée de zones de déchirement pour chaque ligne) et α lignes. La première colonne affiche le rechiffrement c k du chiffré c k fourni par l utilisateur. La deuxième colonne, quant à elle, contient à la fois le chiffré c k mais également l aléatoire r k avec lequel c k a été rechiffré. Le votant choisit alors le mot de passe d indice s qu il souhaite utiliser comme étant le bon et déchire la partie de la deuxième colonne correspondant à l indice s du mot de passe choisi 5. Le votant est libre d emmener la feuille imprimée par l ordinateur chez lui pour vérifier que le mot de passe qu il a choisi et qui est publié sur les valves publiques est le bon et que les autres rechiffrements ont été réalisés correctement. Le vote Le votant V i remplit tout d abord son bulletin de vote B en ligne. Il va ensuite récupérer son mot de passe chiffré c sur les valves publiques accompagné de β 1 autres choisit aléatoirement c 1, c 2,..., c β 1. Il va ensuite rechiffrer l ensemble des β 5. Le bureau de vote pouvant cacher des codes barres en dessous des surfaces arrachables pour que le votant puisse prouver qu il a bien enlevé la bonne partie. 63

71 1 passwords (c 1, c 2,..., c β 1 ) ainsi que son mot de passe chiffré (c ) en apportant une preuve à divulgation nulle de connaissance que c est un rechiffrement de 1-parmi-β de {c, c 1, c 2,..., c β 1 } (voir Section 3.5.2). π 1 = ZKP {(r) : c = (rechiff e (c, r) rechiff e (c 1, r),... rechiff e (c β 1, r))} Cette opération est réalisée pour anonymiser le votant contre des attaques d abstentions. V i introduit ensuite son password p qui sera modifié grâce au standard PBKDF, comme lors de la phase d enregistrement. A noter que le votant peut ici introduire un mot de passe d urgence si il est attaqué, ce qui sera détecté par les autorités de votes lors du décompte. V i calcule ensuite une mise en gage de son mot de passe g p et fournit une preuve à divulgation nulle de connaissance de la connaissance du mot de passe p. π 2 = ZKP {(p) : g, g p } Ensuite V i envoie le paquet suivant aux valves publiques nommé Votes. (g p, c, B, π 1, π 2 ) Le pré-comptage Lors du pré-comptage, l autorité centrale T effectue les actions suivantes : 1. Pour chaque entrée dans la table Votes, il vérifie que π 1 et π 2 sont corrects et élimine ceux qui ne le sont pas. Il en résulte la table Votes prouvés. 2. Pour chaque entrée dans la table Votes prouvés, il recherche les valeurs dupliquées de g p et élimine les plus anciens. Il en résulte la table Votes uniques. Chaque sous-autorité de vote T i participe à un mixnet à rechiffrement vérifiable pour anonymiser les votes. A noter que g p est rechiffré pendant cette opération comme étant c p. Il en résulte une table Votes anonymes. Chaque sous-autorité de vote T i effectue ensuite les actions suivantes pour chaque entrée de la table Votes anonymes : 1. Vérifie si c p et c sont des chiffrements d un même message original. 2. Envoie le résultat de la vérification à T. T élimine ensuite les entrées qui ne sont pas valides 6 en fonction des résultats qu elle reçoit des sous-autorités. Il en résulte la table Votes valides. Chaque entrée de cette table est déchiffrée mutuellement par toutes les sous-autorités de votes T i pour obtenir une liste de votes déchiffrés sur laquelle on pourra effectuer un décompte par la suite. 6. T doit donc être de confiance 64

72 Analyse Grâce à cette méthode, il est maintenant possible d effacer les votes multiples et les votes invalides sans faire des comparaisons de chiffrés un à un et donc, sans faire des exponentiations modulaires en plus. Une comparaison des schémas de vote sur les mixnet évoqués dans ce document est présentée à la Figure 4.3. Figure 4.3.: Performance sur le nombre d exponentiations modulaires. Comparaison avec Civitas et AFT. Source : [CH11] (V 0 = «Liste de votes émis», V 1 = «Liste de votes avec preuve correcte»et V 2 = «Liste de votes sans doublons») Ce schéma de vote possède les mêmes propriétés que le schéma de JCJ. 65

73 Chapitre 5. Autres techniques de vote 5.1. Isoloir mental Cette notion, introduite en [Dos11], exprime une alternative à l isoloir physique présent dans les bureaux de vote. L idée principale est de présenter une interface au votant de telle sorte qu un attaquant ne puisse être capable de discerner pour quel candidat le votant est en train de voter. En d autres termes, cette technique doit pouvoir donner la possibilité au votant de pouvoir mentir à son attaquant (visible ou invisible) sur le vote qu il est en train d effectuer et quand même voter comme il le souhaite Isoloir mental par substitution Cette technique [Dos11] peut être résumée par la création de deux groupes distincts de votants : ceux qui mentent (les menteurs) et ceux qui disent la vérité (les sincères). Chaque votant étant mis aléatoirement dans chacune des deux catégories par les autorités de vote. Celles-ci transmettent par la suite leurs choix aux votants via un canal inécoutable 2. Chaque votant peut dès lors voter à distance sans risque et en face d un attaquant, étant donné que ce dernier ne connait pas à quelle catégorie appartient le votant. Par exemple, dans un système de vote OUI/NON, un votant menteur souhaite voter OUI. Si un attaquant l oblige à voter NON, il suffit au votant de voter NON et de dire à l attaquant qu il fait partie de la catégorie sincère. L attaquant n ayant aucune certitude quant à la catégorisation de sa victime, il ne peut dès lors avoir aucune certitude sur le contenu du vote. Nous pourrions généraliser cette technique pour choisir un candidat parmi n autres en transmettant une sorte de table de substitution au votant. Par exemple, si un votant doit choisir parmi une liste de n candidats, les autorités de vote lui transmettent 1. Il faut cependant faire la lourde hypothèse que le votant ne laisse transparaître aucune émotion quand il ment à son attaquant. 2. Par exemple, chaque votant peut se rendre quand il le souhaite à un bureau adéquat pour aller voir à quelle catégorie de votant il appartient. 66

74 une table de substitution où chaque numéro de candidat est substitué par un autre. Ainsi, si le votant veut voter pour le candidat i, il lui suffirait de voter pour le numéro substitut de i. Dans l exemple à la Figure 5.1, si le votant souhaite voter pour le candidat n 3, il devra envoyer le numéro 1 (substitut de 3 dans sa table de substitution). Liste de Candidats interface Table de substitution Liste de Candidats isoloir mental Figure 5.1.: Exemple de table de substitution. Il est évident que la connaissance mentale de cette table de substitution est un dur labeur pour le votant lambda. Si la complexité de l isoloir mental augmente, il devient impossible pour le votant de s en souvenir et il pourrait donc être tenté de le noter sur papier, ce qui compromettrait la sécurité du votant et donc du système Isoloir mental par mot de passe Cette seconde technique [Dos11] permet de conserver l idée de l isoloir mental tout en y enlevant les contraintes amenées par la méthode de substitution. Au lieu de proposer au votant une table de substitution, les autorités vont simplement lui demander de choisir un mot 3 et de le retenir mentalement jusqu au moment du vote. Lorsque le votant est face à sa liste de candidats, les autorités de vote vont également lui fournir une liste de mots (incluant le mot qu il a choisi) et le votant n aura qu à associer son mot au candidat qu il souhaite. L attaquant n ayant aucune idée du mot choisi par le votant, il est dans l incapacité de forcer l utilisateur à voter en son sens. Cependant, si il force l utilisateur à dévoiler son mot avant que les autorités ne l affichent à l écran, le votant ne connaissant pas les autres mots ne pourra que donner le sien. Une solution à ce problème est de demander au votant de choisir n mots différents : un qu il utilise pour voter (le vrai) et n 1 autres qu il utilisera pour tromper l attaquant (les faux). 3. Par exemple, un mot du dictionnaire. 67

75 5.2. Comptage par arbre Proposée en [DM10], le comptage par arbre est une nouvelle technique de publication des votes dans le but de rendre la propriété de vérifiabilité individuelle plus réalisable en pratique. Pour rappel, cette propriété assure à un votant (1) que son vote est bien présent sur les valves publiques et (2) qu il est compté correctement dans le décompte final. Le tableau final des votes étant publié publiquement, il est possible pour chaque votant d effectuer un calcul lui-même pour sommer tous les votes et ainsi obtenir un résultat qu il pourra comparer avec le résultat publié par les autorités de votes. L hypothèse faite par [DM10] est qu aucun être humain n est capable d effectuer cette somme sans l aide d un outil et sans être sûr de ne pas s être trompé. Dossogne et Markowitch proposent de publier les votes sous forme d arbres dont les feuilles représentent les votes individuels et donc les noeuds internes représentent la somme des valeurs de ses noeuds fils. Chaque votant est donc invité à vérifier la validité du comptage des votes en vérifiant si la valeur d un ou plusieurs noeuds de l arbre représentent bien la somme de ses noeuds fils. Cette nouvelle méthode n est cependant pas parfaite car le votant ne devrait théoriquement ne faire confiance qu en lui-même pour être certain du bon décompte des votes mais elle permet néanmoins à chaque votant de contribuer au comptage des votes de manière positive Fonctionnement Soit n, le nombre de votants et l, le nombre de candidats. Le vote v i du i ème votant (1 i n) peut être représenté par un vecteur de l valeurs {0, 1} où la j ème valeur de ce vecteur vaut 1 si le votant a voté pour le candidat j (1 j l). Par exemple, si le votant n 2 vote pour le candidat n 3, alors le vote v 2 sera représenté par la Figure 5.2 où v ij représente le vote du votant i pour le candidat j. Pour simplifier l explication, nous faisons l hypothèse que le votant ne peut voter que pour un seul candidat (bien qu en pratique cela fonctionnerait très bien sans faire cette hypothèse) l-1 l Figure 5.2.: Exemple de vote pour le candidat 3 Le tableau final des votes peut être affiché comme étant une liste de tels vecteurs où chaque ligne i représente le vote du votant i. Lorsqu une élection comporte un grand nombre de votants, cette liste devient un calvaire pour celui qui tente de sommer les votes pour obtenir le résultat final. La méthode suivante est donc proposée (Voir Figure 5.3). En plus d afficher la liste des votes standards aux valves publiques, un arbre binaire 4 4. Cette méthode peut également être appliquée avec des arbres m-aires, cependant le votant devra donc réaliser m additions pour vérifier un noeud. 68

76 Liste standard [0,0,1,0] [0,1,0,0] [1,0,0,0] [0,0,1,0] [0,1,1,0] [1,0,1,0] [1,1,2,0] Figure 5.3.: Le comptage par arbre à partir d une liste standard de votes. complet 5 est proposé aux votants pour la vérification du décompte. Le résultat de l élection se trouve dès lors dans la racine de l arbre et le votant peut bien vérifier que la valeur de chaque noeud est la somme des valeurs de ses noeuds fils. Lorsqu un votant effectue cette vérification,il s identifie et publie vérification sur les valves publiques, apportant de cette manière sa pierre à l édifice. A chaque noeud n k sera donc assigné deux valeurs d exactitude, good k et bad k tel que si un votant qualifie ce noeud de correct, good k soit incrémenté de 1. Parallèlement, si un votant considère que le noeud n est pas correct, c est bad k qui sera incrémenté de 1. On peut imaginer qu à partir d une certaine valeur de good k, le noeud soit considéré comme correctement calculé. Si, au contraire, un noeud possède une valeur bad k anormalement elevée, le système sollicitera les votants suivants à aller le vérifier pour voir si il y a vraiment un problème. Un système de droit à la vérification pourrait être également octroyé à chaque votant, ce dernier pouvant lui être retiré si, par exemple, il ne vérifie pas correctement les noeuds (e.g. il est le seul à dire que le noeud est faux alors que 100 autres votants disent qu il est correct). Cette arbre, dans le pire des cas (l arbre n étant pas nécessairement totalement rempli) ne fait que doubler la taille nécessaire à son stockage par rapport à une liste de votes standards. Par exemple [DM10], pour 1 milliard de votants, 100 candidats et si on encode chaque nombre avec un entier de 32 bits, nous avons = 800 GigaBytes pour stocker une simple liste de votes. Il faudrait donc porter ce nombre à 1600 GigaBytes pour stocker l entièreté de l arbre binaire au pire des cas. Cette taille de stockage est totalement accessible de nos jours et peut être achetée pour moins de 100 euros. 5. Un arbre binaire complet est défini ici comme étant un arbre dont chacun des noeuds, à l exception des feuilles, possède exactement 2 fils et dont les noeuds sont rangés le plus à gauche possible. 69

77 5.3. Schéma de signature triparti à vérificateur fortement désigné Ce schéma triparti, proposé en [DM09], est un schéma de signature à seuil impliquant 3 participants : un signataire, un contributeur et un vérificateur. Le contributeur collabore dans la signature des messages du groupe et le vérificateur est celui qui sera le seul à pouvoir vérifier les signatures provenant de ce groupe. Le schéma triparti présenté en [DM09] est un schéma RSA à seuil (2,3) où la clé secrète est partagée entre ces 3 participants et où seulement 2 participants sont requis pour signer un message. L idée ici est d utiliser cette méthode pour pouvoir fournir un reçu d un secret (e.g. un vote) signé coopérativement par l autorité de vote et par des témoins ou juges. Le votant étant le seul à pouvoir vérifier et déchiffrer la signature qu il reçoit. Le votant est donc considéré comme le vérificateur, les autorités de vote comme le signataire et les témoins comme le contributeur. 1 Autorité de vote Témoins (Juge) 2 3 Votant Figure 5.4.: Idée générale du schéma de signature triparti appliqué au vote. Si le votant, en vérifiant son vote, se rend compte que son vote a été modifié ou mal enregistré, il pourra dès lors se présenter chez le juge en lui fournissant son reçu et tous les outils nécessaires pour le déchiffrer et le vérifier (e.g. sa clé privée). Le juge et les témoins remarquent qu ils ont effectivement coopéré pour signer le reçu du votant et ne peuvent qu accepter qu une erreur a été commise par les autorités de vote. Si le votant peut vérifier le reçu, un attaquant pourrait éventuellement le forcer à le vérifier devant lui pour lui prouver qu il a bien voté comme il le voulait. Le schéma ici permet au votant de mettre l attaquant dans le doute car il aurait pu obtenir le même reçu en collaborant avec les témoins. En effet, si les autorités de vote fournissent au votant un reçu pour son vote pour le candidat n 1 (et donc signé coopérativement par les autorités de vote et les témoins), rien n empêche le votant de créer une signature sur le vote d un candidat n 2 en collaborant avec les témoins. Ceci est dû à la propriété à seuil du schéma, où chaque sous-groupe de 2 participants sur les 3 peut signer le message qu il souhaite. 70

78 Protocole Dans ce document, une nouvelle version de ce schéma est construite sur un cryptosystème à seuil proposé par [CX05] basé sur les courbes elliptiques. Les participants sont ici représentés par : µ 1, l autorité de vote. µ 2, le témoin. µ 3, le votant. Configuration Le domaine de paramètre est construit de cette manière : E(Z p ) un groupe de courbe elliptique d ordre q sur Z p. q étant un grand nombre premier ( 160 bits). P, Un point de base de cette courbe d ordre q. µ 1, µ 2 et µ 3 coopèrent ensemble pour partager une clé secrète d entre-eux tel que : d = µ i A d i (mod q) où A est le groupe qui va signer le message et où : j d i = s i x i (mod q) où x i = µ j A,j i j i. Chacun des participants se voit attribuer une part de secret s i et la clé publique Q = d P est crée (Voir Section 3.4.5). µ 1, µ 2 et µ 3 calculent respectivement : Q 1 = s 1 P Q 2 = s 2 P Q 3 = s 3 P Le votant µ 3 choisit un aléatoire s v [1, q 1] calcule également : Q v = s v P Fonctionnement Supposons que µ 1 et µ 2 souhaite signer un message m pour la faire vérifier par µ 3. { 2 d1 = s = 2 s 1 (mod q) 1 d 2 = s = s 2 (mod q) Le protocole est décrit à la Figure

79 Protocole de signature de l autorité de vote et du témoin pour le votant 1. µ 1 prévient µ 2 qu un message doit être signé. 2. Le témoin µ 2 choisit un aléatoire k 2 et calcule : Y 2 = k 2 P Z 2 = k 2 Q v { µ2 µ 1 : Z 2. Publication de Y µ 1 choisit un aléatoire k 1 et calcule : Y 1 = k 1 P Z 1 = k 1 Q v Z = Z 1 + Z 2 = (k 1 + k 2 ) Q v r = (Z) x m (mod p) { µ1 µ 2 : r. Publication de Y µ 2 calcule ensuite sign 2 = k 2 d 2 r (mod q) µ 2 µ 1 : sign 2 5. µ 1 vérifie si sign 2 est valide en calculant Y 2 = r x 2 Q 2 + sign 2 P et en vérifiant si Y 2 = Y Si la vérification s avère juste µ 1 calcule ensuite : sign 1 = k 1 d 1 r (mod q) Finalement, µ 1 calcule sign = sign 1 + sign 2. (sign, r) est la signature du message m. Vérification 1. Le votant µ 3 calcule : Y = Y 1 + Y 2 Y = r Q + sign P Z = d v Y Si Y = Y est vérifié, alors µ 3 peut retrouver le message m en calculant : m = r (Z ) 1 x mod p Figure 5.5.: Protocole d une signature sur un schéma triparti basé sur les courbes elliptiques. 72

80 Chapitre 6. MyVote MyVote est le schéma de vote qui sera présenté dans ce document. Il tente de concilier les différentes exigences présentées en Section 1.2 en combinant les meilleures techniques proposées dans ce document. Voici celles qui ont été retenues pour l élaboration de MyVote. (1) Isoloir mental : Cette technique, présenté en Section 5.1, est la base sur laquelle se repose MyVote. L idée étant d instaurer un isoloir mental chez le votant tel qu il pourrait voter à côté de n importe qui et que cette personne soit dans l incapacité de savoir pour qui il vote. Son vote est publiquement visible de tout le monde et personne n est en mesure d en déduire quoi que ce soit. Cette technique traite du problème d incoercibilité. (2) Comptage par arbre : Le comptage par arbre (Voir Section 5.2) permet au votant de contribuer à la vérification du comptage des votes de manière positive et s attend à ce que les autres votants fassent de même. Cette technique traite du problème de vérifiabilité universelle. (3) Schéma de signature triparti : Cette signature à seuil basé sur les courbes elliptiques permet au votant de posséder un reçu non-utilisable par d autres personnes que lui et un juge. Ce schéma de signature traite du problème du pouvoir judiciaire d un votant dont le vote à été altéré durant la phase de vote Design 6.2. Fonctionnement Phase de configuration Durant cette phase, les paramètres des différents outils cryptographiques sont établis et les informations publiques sont publiées aux valves publiques. Paramètres Les paramètres des systèmes cryptographiques sont établis : (1) Elgamal : Définissons un groupe cyclique G q d ordre q comme étant un sousgroupe multiplicatif de Z p (p = 2q + 1). Soit g, un générateur de ce groupe. 73

81 (2) Courbe elliptique : Soit E(Z p ) un groupe de courbe elliptique sur le corps fini Z p d ordre q (nombre premier de longueur 160bits). Les bureaux de comptages Les bureaux de comptages T j (1 j n) coopèrent dans l élaboration des paramètres d un système cryptographique à seuil (t, n) d Elgamal (Voir Section 3.3.2). Il en résulte une clé publique y et chaque bureau de comptage possède sa part de secret s j. Seuls t bureaux sur les n seront nécessaires pour «reformer» 1 la clé secrète grâce à la méthode de Lagrange Phase d enregistrement Chaque votant V i est invité à venir s enregistrer dans un bureau d enregistrement R avant l élection le jour de son choix. Le votant montre sa carte d identité ainsi qu un droit de vote 2 aux employés du bureau. Il est ensuite conduit vers un isoloir muni d un ordinateur. Les étapes suivantes sont effectuées : 1. Les employés du bureau utilisent la carte d identité du votant pour initialiser le processus et le votant est invité à vérifier les informations personnels à l écran et de les valider. 2. Le votant choisit un mot de passe p i qu il utilisera pour s identifier lors du vote à distance. Il est invité à le réintroduire pour s assurer qu il l a correctement introduit la première fois. Le votant étant dans un isoloir, le mot de passe peut même être affiché clairement à l écran. V i R : ID i, chiff R (p i ) R DB R : ID i, hash(p i ) 3. Le bureau d enregistrement R propose alors un mot mdv i au votant qui est le mot qu il devra associer au candidat de son choix lors du vote. Le votant valide pour faire comprendre qu il a bien prit connaissance du mot. R inécoutable V i : mdv i 4. Le votant est ensuite mis au défi en le mettant face à une situation de vote. Il lui est demandé de mettre son bon mot sur un candidat bien spécifique et d en inventer pour les autres candidats. Si ce défi est pleinement rempli, le système fait l hypothèse de la bonne compréhension du votant. 1. On ne la reforme pas vraiment. Voir Section Ce droit de vote peut être reçu par la poste à l adresse du votant. Ce droit de vote étant au nom du votant, il ne peut être utilisé que par lui. Il est produit de telle manière qu il ne peut être falsifié. 74

82 Impression du reçus 5. L ordinateur du votant collabore avec le bureau d enregistrement R et le témoin J pour générer les paramètres d un schéma triparti de signature à seuil (2, 3) (Voir Section 5.3). 6. R et J vont collaborer pour signer mdv i et envoyer le résultat au votant. J enregistre qu il a collaboré à une signature avec R pour V i et retient la valeur de cette signature dans sa base de donnée. A noter que J n a aucune idée du contenu de mdv i. R V i, J : sign R,J (ID i, mdv i ) 7. Ce dernier est invité à vérifier le contenu de la signature et vérifier qu il vaut bien les mots qu on lui à fournit. Si cette vérification est validée par le votant, une impression du reçu est alors effectuée (i.e. par un code barre). 8. Comme ce reçu ne peut être utilisé comme preuve à des personnes extérieurs, le votant collabore avec J pour obtenir des signatures sur m 1 autres mots (choisit au hasard), m étant le nombre candidats à l élection. Le vrai reçu sera alors noyé parmi tous les autres reçu de mots. 9. Ces reçus seront imprimés au côté du reçu valide. Le votant ressort de l isoloir avec en sa possession l ensemble des reçus dont un seul est valide aux yeux de J et signé en collaboration avec R. Le votant peut librement vérifier tous les reçus devant un attaquant, ce dernier ne sachant pas dicerné celui qui a été signé en collaboration avec R Phase de vote Le votant V i se trouve sur son ordinateur personnel et lance le programme de vote. Ce dernier l invite à effectuer les actions suivantes : 1. V i crée son vote en associant un mot à chaque candidat. Soit [c 1, c 2,..., c m ], la liste des candidats, [v i1, v i2,..., v im ] les mots qu associent V i à chaque candidat et c k, le candidat préféré de V i alors : v ik = mdv i Si le votant est sous la pression d un attaquant qui souhaite le faire voter pour le candidat de son choix, il utilisera un mot aléatoire face au candidat de l attaquant : l attaquant n ayant aucune idée du mot du votant. 2. Le votant V i s identifie auprès de R en envoyant son ID et un mot de passe p chiffré à l aide de la clé publique de R. V i R : ID i, chiff R (p) 3. R vérifie si hash(p i ) = hash(p) et effectue une signature sur un jeton σ i, σ i étant un jeton unique représentant univoquement V i de manière anonyme vis à vis des bureaux de comptage. A noter que ce jeton ne possède qu une validité limitée dans le temps et n est utilisable qu une seule fois pour empêcher qu il puisse être 75

83 réutilisé. Il envoie le tout à V i et envoie les informations nécessaire au déchiffrement aux bureaux de comptages T j ( j). R V i : σ i, sign R (σ i ) R DB R : ID i, σ i R T j : σ i, chiff T (mdv i ) ( j) 4. V i envoie sa combinaison de mots aux bureaux de comptages T j ( j) via un canal anonyme 3 : V i T j : σ i, [v i1, v i2,..., v im ], sign R (σ i ) ( j) 5. T j vérifie la signature de R pour s assurer de l identité de V i, enregistre le vote dans sa base de données et envoie un reçu de la combinaison de mot au votant. T j DB Tj : σ i, [v i1, v i2,..., v im ] T j V i : sign Tj ([v i1, v i2,..., v im ]) Le votant possède désormais à la fois la preuve du choix de son mot et la preuve que les bureaux de comptages ont bien reçu la bonne combinaison. Dès lors, il possède un réel pouvoir juridique si un des participants essaye d altérer son vote Phase de décompte Les bureaux de décompte possède désormais un tableau de la forme : Tableau brut des votes σ i chiff T (mdv i ) [v i1, v i2,..., v im ] Les bureaux de comptages T j vont déchiffrer coopérativement le mot de vote chiffré associé au jeton anonyme σ i. Il utilisent pour cela un protocole de déchiffrement à seuil (Voir Section 3.3.2). Il en résulte le tableau suivant : Tableau de votes déchiffrés σ i mdv i [v i1, v i2,..., v im ] Hypothèse 2 Un vote est considéré comme valide si et seulement si : j t.q. v ij = mdv i Par cette hypothèse, les bureaux de comptages, à partir du tableau de votes déchiffrés, vont créer le tableau des votes valides. Les votants ayant la possibilité de voter plusieurs fois, les doublons sur les jetons σ identiques sont effacés en ne gardant que le dernier vote émis : 3. Routage en oignon,... 76

84 Tableau de votes valides σ i mdv i [mdv i, v i2,..., v im ] σ i mdv i [v i1, mdv i,..., v im ] Les bureaux de comptages réalisent ensuite la fusion du mot choisit par le votant σ i avec le vote associé. Ceci est réalisé en construisant un vecteur r i tel que : { 1 Si vij = mdv (r i ) j = i 0 Sinon. Il en résulte le tableau suivant : Tableau de votes clair η i [r i1, r i2,..., r im ] η i étant un identifiant de vote associé à σ i. Cette table sera mixée et publiée sous forme d arbre de comptage pour que les votants puissent vérifier la validité du résultat Phase de vérification MyVote permet au votant de vérifier son vote dans un isoloir physique, comme durant la phase d enregistrement. Ce besoin d isoloir peut être traduit par le fait que, pour être persuadé de la validité de son vote (sans ambiguité possible), le votant se doit de voir (1) le contenu réel de son vote et (2) sa position dans la table des votes valides. Il est clair que ce genre d information ne peut être transmise au votant à distance, ce dernier pouvant éventuellement être attaqué. Une longue analyse à propos d un système de vérification à distance à été faite pour MyVote mais les résultats se sont avérés peu concluants. Le votant étant dans un isoloir, il est dès lors possible de lui fournir toutes les informations claires et précises qui le persuadera du bon déroulement de l encodage de son vote. Les autorités de vote fournissent au votant le numéro de son vote η i dans l arbre de comptage (η i étant associé à son identifiant de vote σ i ). Il peut dès lors «voir»son vote dans le décompte final et donc consulter le réel contenu de ce dernier Phase de validation Le votant peut également vérifier partiellement le calcul du résultat de l élection grâce au comptage par arbre. Cette vérification peut être demandée automatiquement au votant venant vérifier son vote dans un isoloir ou être disponible à distance grâce à un programme communiquant avec les autorités de votes. Cette vérification peut être réalisée de plusieurs manières : 77

85 (1) De bas en haut : Il est demandé au votant de vérifier le décompte à partir d une feuille et en remontant petit à petit jusqu à la racine en vérifiant les noeuds qu il traverse. (2) De haut en bas : Idem qu au point (1), cependant il est ici demandé au votant de se frayer un chemin depuis la racine vers une feuille en vérifiant les noeuds au passage. (3) Aléatoirement : Le votant choisit les noeuds qu il souhaite vérifier aléatoirement. (4) Intelligemment : Le votant est dirigé vers les zones les moins vérifiées et vers les zones où un noeud semble erroné (qui a eu beaucoup d appréciations négatives). A noter que si cette décision est prise par les autorités de vote, un problème de confiance peut être soulevé. En effet, les autorités de votes pourraient ne jamais diriger le votant vers un vote défectueux. Il doit donc être possible pour le votant de parcourir cette arbre de comptage publique comme il le souhaite en ayant un aperçu des endroits les moins visités. Dans le cas d un noeud suscitant beaucoup d appréciations négatives, un système de récupération pourra éventuellement recalculer l arbre de comptage Phase de contestation Si le votant s aperçoit que le vote qui lui est attribué dans l arbre de comptage n est pas celui qu il a fournit aux autorités de votes et qu il est en possession : (1) De la signature à seuil qu il a reçu lors du renseignement accompagné des éléments qui lui permettent de prouver qu il en est bien le vérificateur désigné. (2) De la confirmation de collaboration des témoins qui ont participé à la signature réalisée avec le bureau d enregistrement. (3) De la signature des bureaux de comptages sur son vote. Grâce à ces éléments, le votant peut aisément prouver à un juge sa bonne volonté. Une enquête sur les raisons de l enregistrement erroné de son vote dans le décompte final peut commencer pour trouver l éventuel coupable Analyse Incoercibilité/Vente impossible Secret Vérifiabilité individuelle basique Vérifiabilité individuelle étendue Vérifiabilité universelle Les propriétés d incoercibilité et de vente de vote impossible découlent immédiatement de l utilisation d isoloir mental. En effet, ce secret partagé entre le votant et les autorités de vote assure au votant une protection face à des possibles attaquants. My- Vote ne nécessite l utilisation que d un seul canal inécoutable obligatoire lors de la phase d enregistrement et que d un seul autre optionnel lors de la phase de vérification pour vérifier le réel contenu de son vote. Le vote n est ici universelle que dans le sens où le votant sait vérifier partiellement le bon décompte des votes. Cependant, un votant n a 78

86 aucunement la possibilité de savoir si le vote des autres votants est réellement valide : Cette validité ne pouvant être vérifiée que par ces votants eux-mêmes Analyse sur les attaques Plusieurs types d attaques peuvent être étudiés : (1) Forcer le votant à voter pour un candidat précis : Dans le cas d une telle attaque, MyVote permet au votant de voter quand même pour le candidat de son choix. Il suffit au votant de choisir un mot aléatoire et de l utiliser sur le choix de l attaquant. Quant à son mot mdv i, il n a qu à le déposer sur le vote de son choix en disant à l attaquant que c est un mot qu il a inventé. (2) Attaque par mot de vote : L attaquant force ici le votant à lui fournir le bon mot avant la phase de vote. Il mettra ensuite le mot que lui a donné le votant sur son choix et choisira lui-même les autres mots aléatoirement. Le votant n a qu à fournir à l attaquant un mot aléatoire, ce qui aura pour effet de créer un vote invalide. (3) Attaque par déni de service : L attaquant ici s empare de l ordinateur du votant et met n importe quels mots pour faire voter le votant. Ce qui résultera en un vote invalide si on fait l hypothèse raisonnable que l attaquant n a en pratique aucune chance de tomber sur le bon mot mdv i en écrivant les mots aléatoirement. (4) Attaque par surveillance permanente : MyVote ne permet pas de protéger le votant contre l abstention. Il suffirait à l attaquant de surveiller en permanence le votant pour être sûr qu il ne vote pas. A noter que cette attaque est également possible dans le système de vote traditionnel. (5) Attaque par observation : Si le votant est malgré lui observé pendant son vote, la seule chose que l attaquant pourrait en retirer est une liste de mot qui contient forcément le mot que le votant a reçu des autorités de vote lors de la phase d enregistrement. La seule chose qu il pourrait éventuellement faire est de forcer le votant à réintroduire ces mêmes mots dans un ordre différent et donc forcer le votant à voter différemment de sa volonté. Cette attaque peut être vue comme une attaque de déni de service où l attaquant a juste la certitude de posséder le bon mot mais il ne peut en aucun cas deviner lequel pourrait être le bon pour voter comme il le souhaite. 79

87 Chapitre 7. Implémentation prototype L implémentation d un prototype de MyVote a été réalisé en Java. le choix du langage de programmation n a pas été fastidieux car Java possède énormément de très bonnes librairies cryptographiques, notamment org.bouncycastle.* qui est une API relativement complète. Figure 7.1.: Bouncy Castle API Pour des raisons pratiques, cette version d implémentation ne considère pas le cas d un déchiffrement à seuil pour les bureaux de comptages. Cependant, le code permettant de générer une clé privée parmi plusieurs entités est disponible dans le package ulb.ivoting.protocolpackage.elgamalthreshold. Décrivons tout d abord les différents fichiers qui implémentent MyVote Packages java ulb.ivoting.cryptopackage ElGamal.java Cette classe implémente les fonctions basiques du système cryptographique d ElGamal et permet (1) de générer de clés publiques et privées en fonction des paramètres g et p, (2) de chiffrer un Object en byte[] et (3) de déchiffrer un byte[] en Object. 80

Cryptographie et fonctions à sens unique

Cryptographie et fonctions à sens unique Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions

Plus en détail

CRYPTOGRAPHIE. Signature électronique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie

CRYPTOGRAPHIE. Signature électronique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie CRYPTOGRAPHIE Signature électronique E. Bresson SGDN/DCSSI Laboratoire de cryptographie Emmanuel.Bresson@sgdn.gouv.fr I. SIGNATURE ÉLECTRONIQUE I.1. GÉNÉRALITÉS Organisation de la section «GÉNÉRALITÉS»

Plus en détail

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI Cryptologie Algorithmes à clé publique Jean-Marc Robert Génie logiciel et des TI Plan de la présentation Introduction Cryptographie à clé publique Les principes essentiels La signature électronique Infrastructures

Plus en détail

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Cryptographie. Cours 3/8 - Chiffrement asymétrique Cryptographie Cours 3/8 - Chiffrement asymétrique Plan du cours Différents types de cryptographie Cryptographie à clé publique Motivation Applications, caractéristiques Exemples: ElGamal, RSA Faiblesses,

Plus en détail

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1 Cryptographie RSA Introduction Opérations Attaques Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1 Introduction Historique: Rivest Shamir Adleman ou RSA est un algorithme asymétrique de cryptographie à clé

Plus en détail

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux Damien Stehlé LIP CNRS/ENSL/INRIA/UCBL/U. Lyon Perpignan, Février 2011 Damien Stehlé Problèmes arithmétiques issus de la cryptographie

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Nombres premiers. Comment reconnaître un nombre premier? Mais... Introduction Nombres premiers Nombres premiers Rutger Noot IRMA Université de Strasbourg et CNRS Le 19 janvier 2011 IREM Strasbourg Definition Un nombre premier est un entier naturel p > 1 ayant exactement

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

Cours 14. Crypto. 2004, Marc-André Léger

Cours 14. Crypto. 2004, Marc-André Léger Cours 14 Crypto Cryptographie Définition Science du chiffrement Meilleur moyen de protéger une information = la rendre illisible ou incompréhensible Bases Une clé = chaîne de nombres binaires (0 et 1)

Plus en détail

Cryptologie à clé publique

Cryptologie à clé publique Cryptologie à clé publique La cryptologie est partout Chacun utilise de la crypto tous les jours sans forcément sans rendre compte en : - téléphonant avec un portable - payant avec sa carte bancaire -

Plus en détail

Quelques tests de primalité

Quelques tests de primalité Quelques tests de primalité J.-M. Couveignes (merci à T. Ezome et R. Lercier) Institut de Mathématiques de Bordeaux & INRIA Bordeaux Sud-Ouest Jean-Marc.Couveignes@u-bordeaux.fr École de printemps C2 Mars

Plus en détail

Factorisation d entiers (première partie)

Factorisation d entiers (première partie) Factorisation d entiers ÉCOLE DE THEORIE DES NOMBRES 0 Factorisation d entiers (première partie) Francesco Pappalardi Théorie des nombres et algorithmique 22 novembre, Bamako (Mali) Factorisation d entiers

Plus en détail

Calculateur quantique: factorisation des entiers

Calculateur quantique: factorisation des entiers Calculateur quantique: factorisation des entiers Plan Introduction Difficulté de la factorisation des entiers Cryptographie et la factorisation Exemple RSA L'informatique quantique L'algorithme quantique

Plus en détail

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références 2 http://securit.free.fr Introduction aux concepts de PKI Page 1/20

Plus en détail

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader Gestion des Clés Pr Belkhir Abdelkader Gestion des clés cryptographiques 1. La génération des clés: attention aux clés faibles,... et veiller à utiliser des générateurs fiables 2. Le transfert de la clé:

Plus en détail

Fonction de hachage et signatures électroniques

Fonction de hachage et signatures électroniques Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 pierre-louis.cayrel@xlim.fr Licence professionnelle Administrateur de Réseaux et de Bases de Données IUT

Plus en détail

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2. DTIC@Alg 2012 16 et 17 mai 2012, CERIST, Alger, Algérie Aspects techniques et juridiques de la signature électronique et de la certification électronique Mohammed Ouamrane, Idir Rassoul Laboratoire de

Plus en détail

Signature électronique. Romain Kolb 31/10/2008

Signature électronique. Romain Kolb 31/10/2008 Romain Kolb 31/10/2008 Signature électronique Sommaire I. Introduction... 3 1. Motivations... 3 2. Définition... 3 3. La signature électronique en bref... 3 II. Fonctionnement... 4 1. Notions requises...

Plus en détail

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Petite introduction aux protocoles cryptographiques. Master d informatique M2 Petite introduction aux protocoles cryptographiques Master d informatique M2 Les protocoles cryptographiques p.1/48-1 Internet - confidentialité - anonymat - authentification (s agit-il bien de ma banque?)

Plus en détail

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels. Cette partie est consacrée aux nombres. Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels. L aperçu historique vous permettra

Plus en détail

Protocoles cryptographiques

Protocoles cryptographiques MGR850 Hiver 2014 Protocoles cryptographiques Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan Motivation et Contexte Notations Protocoles

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

GUIDE DE SENSIBILISATION DES ELECTEURS

GUIDE DE SENSIBILISATION DES ELECTEURS 1 République de Guinée Commission Electorale Nationale Indépendante GUIDE DE SENSIBILISATION DES ELECTEURS Election Présidentielle, octobre 2015 Conakry, Août 2015 1 2 Introduction Les organisations de

Plus en détail

INF 4420: Sécurité Informatique Cryptographie II

INF 4420: Sécurité Informatique Cryptographie II : Cryptographie II José M. Fernandez M-3106 340-4711 poste 5433 Aperçu Crypto II Types de chiffrement Par bloc vs. par flux Symétrique vs. asymétrique Algorithmes symétriques modernes DES AES Masque jetable

Plus en détail

Panorama de la cryptographie des courbes elliptiques

Panorama de la cryptographie des courbes elliptiques Panorama de la cryptographie des courbes elliptiques Damien Robert 09/02/2012 (Conseil régional de Lorraine) La cryptographie, qu est-ce que c est? Définition La cryptographie est la science des messages

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Complément d information concernant la fiche de concordance

Complément d information concernant la fiche de concordance Sommaire SAMEDI 0 DÉCEMBRE 20 Vous trouverez dans ce dossier les documents correspondants à ce que nous allons travailler aujourd hui : La fiche de concordance pour le DAEU ; Page 2 Un rappel de cours

Plus en détail

La sécurité dans les grilles

La sécurité dans les grilles La sécurité dans les grilles Yves Denneulin Laboratoire ID/IMAG Plan Introduction les dangers dont il faut se protéger Les propriétés à assurer Les bases de la sécurité Protocoles cryptographiques Utilisation

Plus en détail

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Kerberos mis en scène

Kerberos mis en scène Sébastien Gambs Autour de l authentification : cours 5 1 Kerberos mis en scène Sébastien Gambs (d après un cours de Frédéric Tronel) sgambs@irisa.fr 12 janvier 2015 Sébastien Gambs Autour de l authentification

Plus en détail

Vote par Internet : quel avenir?

Vote par Internet : quel avenir? Journée de la sécurité des systèmes d information du 22 mai 2008 Proposition d intervention Thème général : anonymat, vie privée et gestion d'identité Vote par Internet : quel avenir? Le 22 mai 2008 Benoit

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009 Aristote Groupe PIN Utilisations pratiques de la cryptographie Frédéric Pailler (CNES) 13 janvier 2009 Objectifs Décrire les techniques de cryptographie les plus courantes Et les applications qui les utilisent

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur

Plus en détail

Livre blanc. Sécuriser les échanges

Livre blanc. Sécuriser les échanges Livre blanc d information Sécuriser les échanges par emails Octobre 2013 www.bssi.fr @BSSI_Conseil «Sécuriser les échanges d information par emails» Par David Isal Consultant en Sécurité des Systèmes d

Plus en détail

0x700. Cryptologie. 2012 Pearson France Techniques de hacking, 2e éd. Jon Erickson

0x700. Cryptologie. 2012 Pearson France Techniques de hacking, 2e éd. Jon Erickson 0x700 Cryptologie La cryptologie est une science qui englobe la cryptographie et la cryptanalyse. La cryptographie sous-tend le processus de communication secrète à l aide de codes. La cryptanalyse correspond

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Sécurité de l'information

Sécurité de l'information Sécurité de l'information Sylvain Duquesne Université Rennes 1, laboratoire de Mathématiques 24 novembre 2010 Les Rendez-Vous Mathématiques de l'irem S. Duquesne (Université Rennes 1) Sécurité de l'information

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur

Plus en détail

Cryptographie. Master de cryptographie Architectures PKI. 23 mars 2015. Université Rennes 1

Cryptographie. Master de cryptographie Architectures PKI. 23 mars 2015. Université Rennes 1 Cryptographie Master de cryptographie Architectures PKI 23 mars 2015 Université Rennes 1 Master Crypto (2014-2015) Cryptographie 23 mars 2015 1 / 17 Cadre Principe de Kercho : "La sécurité d'un système

Plus en détail

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux Chapitre 7 Sécurité des réseaux Services, attaques et mécanismes cryptographiques Hdhili M.H Cours Administration et sécurité des réseaux 1 Partie 1: Introduction à la sécurité des réseaux Hdhili M.H Cours

Plus en détail

1 Définition et premières propriétés des congruences

1 Définition et premières propriétés des congruences Université Paris 13, Institut Galilée Département de Mathématiques Licence 2ème année Informatique 2013-2014 Cours de Mathématiques pour l Informatique Des nombres aux structures Sylviane R. Schwer Leçon

Plus en détail

Chapitre VI - Méthodes de factorisation

Chapitre VI - Méthodes de factorisation Université Pierre et Marie Curie Cours de cryptographie MM067-2012/13 Alain Kraus Chapitre VI - Méthodes de factorisation Le problème de la factorisation des grands entiers est a priori très difficile.

Plus en détail

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des

Plus en détail

Les protocoles cryptographiques

Les protocoles cryptographiques Les protocoles cryptographiques École des Mines, 3e année 1/79 Véronique Cortier Protocoles cryptographiques - Cours 1 Internet Introduction - confidentialité - anonymat - authentification (s agit-il bien

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

La persistance des nombres

La persistance des nombres regards logique & calcul La persistance des nombres Quand on multiplie les chiffres d un nombre entier, on trouve un autre nombre entier, et l on peut recommencer. Combien de fois? Onze fois au plus...

Plus en détail

Protocoles d authentification

Protocoles d authentification Sécurité des Réseaux, Master CSI 2 J.Bétréma, LaBRI, Université Bordeaux 1 Protocoles d authentification 1. Authentification simple 2. Authentification mutuelle 3. Clé de session 4. KDC Source 1. Authentification

Plus en détail

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

Les fonctions de hachage, un domaine à la mode

Les fonctions de hachage, un domaine à la mode Les fonctions de hachage, un domaine à la mode JSSI 2009 Thomas Peyrin (Ingenico) 17 mars 2009 - Paris Outline Qu est-ce qu une fonction de hachage Comment construire une fonction de hachage? Les attaques

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé Baccalauréat ES Pondichéry 7 avril 204 Corrigé EXERCICE 4 points Commun à tous les candidats. Proposition fausse. La tangente T, passant par les points A et B d abscisses distinctes, a pour coefficient

Plus en détail

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur www.matthieuamiguet.

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur www.matthieuamiguet. : Espoirs et menaces Matthieu Amiguet 2005 2006 Objectifs 2 Obtenir une compréhension de base des principes régissant le calcul quantique et la cryptographie quantique Comprendre les implications sur la

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Les obstacles : Solutions envisageables :

Les obstacles : Solutions envisageables : 1. Quels sont les obstacles auxquels les citoyens européens doivent faire face dans l exercice de leurs droits? Que pourrait-on faire pour alléger ces obstacles? Les obstacles : Tout d abord, il y a un

Plus en détail

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Calculer avec Sage. Revision : 417 du 1 er juillet 2010 Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1

Plus en détail

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques : MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE

Plus en détail

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures) Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures) Eercice 1 (5 points) pour les candidats n ayant pas choisi la spécialité MATH Le tableau suivant donne l évolution du chiffre

Plus en détail

Gestion des Clés Publiques (PKI)

Gestion des Clés Publiques (PKI) Chapitre 3 Gestion des Clés Publiques (PKI) L infrastructure de gestion de clés publiques (PKI : Public Key Infrastructure) représente l ensemble des moyens matériels et logiciels assurant la gestion des

Plus en détail

La cryptographie du futur

La cryptographie du futur La cryptographie du futur Abderrahmane Nitaj Laboratoire de Mathématiques Nicolas Oresme Université de Caen, France nitaj@math.unicaen.fr http://www.math.unicaen.fr/~nitaj Résumé Sans nous rendre compte,

Plus en détail

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal La demande Du consommateur Contrainte budgétaire Préférences Choix optimal Plan du cours Préambule : Rationalité du consommateur I II III IV V La contrainte budgétaire Les préférences Le choix optimal

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1 SPF FIN Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale Version 1.1 Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale Date: 17/06/2004 Historique

Plus en détail

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Exploitations pédagogiques du tableur en STG Académie de Créteil 2006 1 EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG Commission inter-irem lycées techniques contact : dutarte@club-internet.fr La maquette

Plus en détail

Feuille TD n 1 Exercices d algorithmique éléments de correction

Feuille TD n 1 Exercices d algorithmique éléments de correction Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments

Plus en détail

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE sommaire MIEUX COMPRENDRE LES CERTIFICATS SSL...1 SSL et certificats SSL : définition...1

Plus en détail

Mathématiques financières

Mathématiques financières Mathématiques financières Table des matières 1 Intérêt simple 1 1.1 Exercices........................................ 1 2 Intérêt composé 2 2.1 Taux nominal, taux périodique, taux réel.......................

Plus en détail

Sécurité des réseaux IPSec

Sécurité des réseaux IPSec Sécurité des réseaux IPSec A. Guermouche A. Guermouche Cours 4 : IPSec 1 Plan 1. A. Guermouche Cours 4 : IPSec 2 Plan 1. A. Guermouche Cours 4 : IPSec 3 Pourquoi? Premier constat sur l aspect critique

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Le partage de clés cryptographiques : Théorie et Pratique

Le partage de clés cryptographiques : Théorie et Pratique École Normale Supérieure Université Paris 7 Département d Informatique Groupe de Recherche En Complexité et Cryptographie Le partage de clés cryptographiques : Théorie et Pratique THÈSE présentée et soutenue

Plus en détail

avec des nombres entiers

avec des nombres entiers Calculer avec des nombres entiers Effectuez les calculs suivants.. + 9 + 9. Calculez. 9 9 Calculez le quotient et le rest. : : : : 0 :. : : 9 : : 9 0 : 0. 9 9 0 9. Calculez. 9 0 9. : : 0 : 9 : :. : : 0

Plus en détail

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE ET SECURITE DES TRANSACTIONS ELECTRONIQUES : STANDARDS, ALGORITHMES DE HACHAGE ET PKI» DU 22 AU 26 JUIN 2015 TUNIS (TUNISIE) CRYPTOGRAPHIE APPLIQUEE ET SECURITE DES

Plus en détail

Table des matières. I Mise à niveau 11. Préface

Table des matières. I Mise à niveau 11. Préface Table des matières Préface v I Mise à niveau 11 1 Bases du calcul commercial 13 1.1 Alphabet grec...................................... 13 1.2 Symboles mathématiques............................... 14 1.3

Plus en détail

Cryptographie Quantique

Cryptographie Quantique Cryptographie Quantique Jean-Marc Merolla Chargé de Recherche CNRS Email: jean-marc.merolla@univ-fcomte.fr Département d Optique P.-M. Duffieux/UMR FEMTO-ST 6174 2009 1 Plan de la Présentation Introduction

Plus en détail

Théorème du point fixe - Théorème de l inversion locale

Théorème du point fixe - Théorème de l inversion locale Chapitre 7 Théorème du point fixe - Théorème de l inversion locale Dans ce chapitre et le suivant, on montre deux applications importantes de la notion de différentiabilité : le théorème de l inversion

Plus en détail

Mécanismes de configuration automatique d une interface réseau, aspects sécurité

Mécanismes de configuration automatique d une interface réseau, aspects sécurité Mécanismes de configuration automatique d une interface réseau, aspects sécurité B. Amedro, V. Bodnartchouk, V.Robitzer Juin 2005 Université de Nice - Sophia-Antipolis Licence d informatique 3ème année

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Synthèse «Le Plus Grand Produit»

Synthèse «Le Plus Grand Produit» Introduction et Objectifs Synthèse «Le Plus Grand Produit» Le document suivant est extrait d un ensemble de ressources plus vastes construites par un groupe de recherche INRP-IREM-IUFM-LEPS. La problématique

Plus en détail

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures) CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE Cinquième épreuve d admissibilité STATISTIQUE (durée : cinq heures) Une composition portant sur la statistique. SUJET Cette épreuve est composée d un

Plus en détail

CCP PSI - 2010 Mathématiques 1 : un corrigé

CCP PSI - 2010 Mathématiques 1 : un corrigé CCP PSI - 00 Mathématiques : un corrigé Première partie. Définition d une structure euclidienne sur R n [X]... B est clairement symétrique et linéaire par rapport à sa seconde variable. De plus B(P, P

Plus en détail

Concilier mobilité et sécurité pour les postes nomades

Concilier mobilité et sécurité pour les postes nomades Concilier mobilité et sécurité pour les postes nomades Gérard Péliks Responsable Marketing Solutions de Sécurité EADS TELECOM 01 34 60 88 82 gerard.peliks@eads-telecom.com Pouvoir utiliser son poste de

Plus en détail

Représenter son Unité à l'assemblée Générale du Mouvement

Représenter son Unité à l'assemblée Générale du Mouvement Publications SGP SGP - P904006 - P904074 Mensuel - Mensuel - Numero - Numéro Spécial Spécial - N 157 - N - Août 157 2009 - Août (Ne 2009 paraît (Ne pas paraît en juillet) pas en - Ed. juillet) resp. -

Plus en détail

D31: Protocoles Cryptographiques

D31: Protocoles Cryptographiques D31: Protocoles Cryptographiques Certificats et échange de clés Nicolas Méloni Master 2: 1er semestre (2014/2015) Nicolas Méloni D31: Protocoles Cryptographiques 1/21 Introduction Protocole Diffie Hellman:

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Le présent document a pour objet de définir les modalités d organisation de l élection des délégués du personnel (ou du C E) de

Le présent document a pour objet de définir les modalités d organisation de l élection des délégués du personnel (ou du C E) de Le présent document a pour objet de définir les modalités d organisation de l élection des délégués du personnel (ou du C E) de Article 1 er : Effectif de l entreprise Nombre de sièges à pourvoir L effectif

Plus en détail

L identité numérique. Risques, protection

L identité numérique. Risques, protection L identité numérique Risques, protection Plan Communication sur l Internet Identités Traces Protection des informations Communication numérique Messages Chaque caractère d un message «texte» est codé sur

Plus en détail

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC Certificats X509 & Infrastructure de Gestion de Clés Claude Gross CNRS/UREC 1 Confiance et Internet Comment établir une relation de confiance indispensable à la réalisation de transaction à distance entre

Plus en détail

Authentification de messages et mots de passe

Authentification de messages et mots de passe Sébastien Gambs Autour de l authentification : cours 1 1 et mots de passe Sébastien Gambs sgambs@irisa.fr 1 décembre 2014 Sébastien Gambs Autour de l authentification : cours 1 2 Introduction à l authentification

Plus en détail

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10.

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. A1 Trouvez l entier positif n qui satisfait l équation suivante: Solution 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. En additionnant les termes du côté gauche de l équation en les mettant sur le même dénominateur

Plus en détail

Les nombres entiers. Durée suggérée: 3 semaines

Les nombres entiers. Durée suggérée: 3 semaines Les nombres entiers Durée suggérée: 3 semaines Aperçu du module Orientation et contexte Pourquoi est-ce important? Dans le présent module, les élèves multiplieront et diviseront des nombres entiers concrètement,

Plus en détail

Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur

Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur La Facturation Le Livre chronologique des Recettes Le Registre des Achats Le Suivi du Chiffre d Affaires en temps réel Site internet

Plus en détail

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques

Plus en détail

Travail d intérêt personnel encadré : La cryptographie

Travail d intérêt personnel encadré : La cryptographie DÉCAMPS Régis & JUÈS Thomas 110101 111011 111001 111100 100011 001111 001110 110111 111011 111111 011111.......... 011111 110101 110100 011110 001111 000110 101111 010100 011011 100110 101111 010110 101010

Plus en détail