Etude et implémentation de quelque algorithme de chiffrement et de signature

61

Transcript of Etude et implémentation de quelque algorithme de chiffrement et de signature

Page 1: Etude et implémentation de quelque algorithme de chiffrement et de signature

UNIVERSITÉ MOHAMMED V-AGDAL

Faculté des Sciences

RABAT

Laboratoire de recherche Informatique etTélécommunications

Master Informatique et Télécommunications

Rapport sur l'étude et

l'implémentation de quelques

algorithmes de chi�rement et de

signature

Encadré par

Mr. Mohamed EL MARRAKI

Réalisé par

Nasser Yassine

Ouyous Mina

Année universitaire 2013-2014

Page 2: Etude et implémentation de quelque algorithme de chiffrement et de signature

Table des matières

Introduction 1

1 Généralités sur la crytographie 21.1 Histoire de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . 31.2 Le chi�rement symétrique et asymétrique . . . . . . . . . . . . . . . . 61.3 La signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3.1 Fonctionnement de la signature numérique . . . . . . . . . . . 81.3.2 Types de signature . . . . . . . . . . . . . . . . . . . . . . . . 91.3.3 Fonctions de hachage . . . . . . . . . . . . . . . . . . . . . . . 9

2 Cryptographies basés sur la factorisation 122.1 Compléments mathématiques . . . . . . . . . . . . . . . . . . . . . . 12

2.1.1 Calcul du pgcd, algorithme d'Euclide . . . . . . . . . . . . . . 132.1.2 Théorème de Bezout, algorithme d'Euclide étendu . . . . . . . 142.1.3 Congruences,L'exponentiation rapide et Théorème d'Euler . . 152.1.4 Le théorème des restes chinois . . . . . . . . . . . . . . . . . 17

2.2 Chi�rement de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 182.2.2 Exemple d'illustration . . . . . . . . . . . . . . . . . . . . . . 192.2.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3 Chi�rement de Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 222.3.2 Exemple d'illustration . . . . . . . . . . . . . . . . . . . . . . 242.3.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Cryptographies basés sur logarithme discret 283.1 DSA (Digital Sinature Algoriyhme) . . . . . . . . . . . . . . . . . . . 28

3.1.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 293.1.2 Exemple d'illustrations . . . . . . . . . . . . . . . . . . . . . . 303.1.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2 Signature de Schnorr . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 323.2.2 Exemple d'illustrations . . . . . . . . . . . . . . . . . . . . . . 333.2.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3 ECDSA(algorithme de signature utilisant des courbes elliptiques) . . 34

1

Page 3: Etude et implémentation de quelque algorithme de chiffrement et de signature

3.3.1 compléments mathématiques . . . . . . . . . . . . . . . . . . . 353.3.2 ECDSA(Elliptic Curve Digital Signature Algorithm) . . . . . 39

3.3.2.1 Principe de fonctionnement . . . . . . . . . . . . . . 403.3.2.2 Exemple d'lustrations . . . . . . . . . . . . . . . . . 413.3.2.3 Implémentation . . . . . . . . . . . . . . . . . . . . . 423.3.2.4 Comparaison entre DSA et ECDSA . . . . . . . . . . 42

Conclusion et perspectives 45

Annexes 46

Glossaire 54

Bibliographie 55

2

Page 4: Etude et implémentation de quelque algorithme de chiffrement et de signature

Table des �gures

1.1 Une Scytale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.1 Description géométrique de l'addition de deux points de courbe ellip-tique distincte P+Q=R. . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2 Description géométrique de l'addition de deux points de courbe ellip-tique P − P=O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3 Description géométrique du doublement d'un point de la courbe el-liptique : P+P=R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3

Page 5: Etude et implémentation de quelque algorithme de chiffrement et de signature

Liste des tableaux

2.1 Code de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1 Correspondance entre la notion de DSA et ECDSA.[22] . . . . . . . . 433.2 Correspondance entre F∗p et le groupe E(Zp).[22] . . . . . . . . . . . . 43

4

Page 6: Etude et implémentation de quelque algorithme de chiffrement et de signature

Introduction

La cryptologie, étymologiquement la science du cache par extension la science dusecret, est base quasiment de tous les mécanismes, outils et concepts de la sécuritéinformatique.

La cryptologie est une technique trés ancienne née avec l'apparition de l'écritureet fut justi�ée par le besoin de protéger tout message écrit a�n d'éviter que len-nemi ne puisse, en se l'appropriant, exploiter les renseignements qu'il contenait,[3]elle est restée un art réservé aux militaires et aux espions. C'est au cours de cesvingt-cinq dernéres années que la cryptologie est devenue une science basée sur lesmathématiques et l'informatique. Le développement des moyens de communicationá l'échelle planétaire constitue aujourd'hui le moteur de la recherche publique encryptologie. Les applications principales de la cryptologie sont bien sûr le chi�re-ment des messages pour en garantir la con�dentialité, mais aussi l'authenti�cationá distance, la signature de documents numériques, et le contrôle de l'intégrité desmessages transmis sur un réseau informatique.[1]

La cryptologie répond aujourd'hui aux besoins du marché et constitue un do-maine scienti�que en pleine activité. Elle intervient dans de multiples applications(communication sécurisée sur internet, cartes bancaires, monnaie électronique, au-thenti�cation des documents électroniques, protection des droits d'auteur) et repré-sente l'élément essentiel de la sécurisation du commerce électronique et du réseauInternet.[2]

Nous allons dans un premier temps présenter les composants de la cryptologie,puis nous aborderons en détails cinq algorithmes de chi�rement et de signature. Nousallons tenter, á travers le deuxiéme chapitre de traiter deux algorithmes cryptogra-phiques liées ou probléme de factorisation (Chi�rement de RSA et Rabin). Et dansle troiséme chapitre, on va traiter deux algorithmes cryptographiques liées ou pro-bléme de logarithme discret sur les corps �nis (Signature DSA et de Schnorr). et unalgorithme cryptographique liées ou probléme de logarithme discret sur les courbeselliptique (ECDSA) Dans chaque algorithme nous verrons quelques compléments etnotions matématiques utilisées pour bien comprendre le principe de fonctionnementde ces algorithmes, ainsi que leurs dé�nitions, leurs principe de fonctionnement avecun exemple d'illustration et d'implntation sur Maple.

1

Page 7: Etude et implémentation de quelque algorithme de chiffrement et de signature

Chapitre 1

Généralités sur la crytographie

Avant de commencer, il est bon de dé�nir précisément certains termes couram-ment utilisés en cryptologie, c'est le but de la partie généralité. Noté bien qu'unlexique plus complet est aussi disponible à la �n de ce document.

La cryptologie est composée de deux disciplines complémentaires : la cryptogra-phie et la cryptanalyse.

La cryptographie est l'art de cacher l'information. Elle désigne l'ensemble destechniques permettant de chi�rer des messages, c'est-à-dire permettant de les rendreincompréhensibles. Le fait de coder un message de telle façon à le rendre secrets'appelle chi�rement, la cryptographie répond aux besoins suivants :[3]

• Con�dentialité : garantir que les données échangées ne sont dévoilées qu'auxpersonnes voulues.

• Intégrité : garantir que les données échangées ne sont pas altérées intention-nellement ou non.

• Authenticité : prouver l'identité d'une personne ou l'origine d'un document.

• Signature : permettre à une personne de � signer� informatiquement undocument sans qu'elle puisse le renier par la suite.

Quant à la cryptanalyse, c'est le pendant naturel de la cryptographie : lorsqu'unsystème cryptographique est utilise, certains vont tenter de l'attaquer pour mettre endéfaut sa sécurité. L'ensemble des attaques sur les cryptosystèmes est la cryptanalyseOn peut aussi appeler cette action le � cassage �. [3]

On distingue habituellement quatre méthodes de cryptanalyse [1] :

• Une attaque sur texte chi�ré seulement consiste à retrouver la clé de déchif-frement à partir d'un ou plusieurs textes chi�rés ;

• Une attaque sur texte clair connu consiste à retrouver la clé de déchi�rement

2

Page 8: Etude et implémentation de quelque algorithme de chiffrement et de signature

à partir d'un ou plusieurs textes chi�rés, connaissant le texte en clair corres-pondant ;

• Une attaque sur texte clair choisi consiste à retrouver la clé de déchi�rementà partir d'un ou plusieurs textes chi�rés, l'attaquant ayant la possibilité de lesgénérer à partir de textes en clair ;

• Une attaque sur texte chi�ré choisi consiste à retrouver la clé de déchi�rementà partir d'un ou plusieurs textes chi�rés, l'attaquant ayant la possibilité de lesgénérer à partir de textes en clair.[4]

1.1 Histoire de la cryptographie

Les premières méthodes de chi�rement : Antiquité

Lors de l'Antiquité, la cryptographie était restreinte à un petit groupe de per-sonnes qui avaient les capacités d'imaginer et de développer une telle idée (n'oublionspas qu'il n'y avait là aucun manuel ou aucune aide quelconque car la cryptographien'existait pas encore vraiment). Ainsi, le risque que les messages codés ne soientdécouverts et décodés par d'autres personnes était faible. En e�et, la plus grandepartie des gens n'auraient même pas pu imaginer ce concept et même s'ils y avaientsongé, les risques restaient minimes étant donné que la majorité de la populationétait illettrée. Par exemple en Egypte, seuls les scribes et les personnes importantesayant reçues une certaine éducation savaient lire et écrire les hiéroglyphes.

1900 av. J.-C. Un scribe égyptien utilise des hiéroglyphes qui ne sont passtandards racontant la vie de son maître. Le but n'était pas de rendre le texteincompréhensible mais plutôt de lui donner un caractère plus solennel.

1600 av. J.-C. Le premier � document � chi�ré connu remonte à l'Antiquité.Il s'agit d'une tablette d'argile, retrouvée en Irak. Un potier y avait gravé sa recettesecrète en supprimant des consonnes et en modi�ant l'orthographe des mots.

600 av. J.-C. Un roi de Babylone écrit sur le crâne rasé de ses esclaves, attendque leurs cheveux aient repoussé, et les envoie à ses généraux. Il su�t ensuite deraser à nouveau le messager pour lire le texte.

600 av. J.-C. La Mésopotamie, grande civilisation de l'antiquité, avait atteintun niveau cryptologique étonnamment moderne. On a retrouvé en Iran des fragmentsde tablettes où des nombres correspondaient à des mots.

500 av. J.-C. Des scribes hébreux emploient le ATBASH, un simple algorithmede chi�rement par substitution utilisant l'alphabet renversé, a�n de transcrire lelivre de Jeremiah. (Par exemple bonjour devient � ruojnob �).

3

Page 9: Etude et implémentation de quelque algorithme de chiffrement et de signature

487 av. J.-C. Des grecs utilisent une scytale, aussi appelé bâton de Plutarque(historien et moraliste de la Grèce Antique). Il s'agit d'un bâton autour duquel onenroulait une longue et mince bande de cuir sur laquelle on écrivait notre messagesecret (souvent codé). Une fois la bande déroulée, il était di�cile de retrouver lemessage. Seule le destinataire, connaissant le diamètre du bâton de celui ayant servià écrire le message, pouvait le déchi�rer.

Figure 1.1 � Une Scytale

La principale faiblesse de ce système est qu'un bâton de diamètre approximati-vement égal su�t à déchi�rer le texte. La sécurité reste donc sur le secret autour duprocédé de chi�rement du message.

Les premiers systèmes cryptographiques : Ancien Âge

Dans le reste du monde la situation restait à peu près semblable jusqu'à envi-rons 50 av. J.-C. L'homme prend en�n l'initiative de développer les techniques deprotections des informations con�dentielles de façon plus e�cace.

150 av. J.-C. Polybe, historien grec, imagine procédé de chi�rement très inno-vant pour son temps. Cette méthode utilise un système de transmission basé sur uncarré de 25. Cependant l'alphabet français contient 26 lettres donc il faut supprimerune lettre, en général il s'agit du W. Les cryptologies modernes ont vu dans cetteméthode plusieurs caractéristiques très intéressantes dont la conversion de lettres enchi�res, la représentation de chaque lettre par deux éléments séparés.

50 av. J.-C. Jules César utilise une substitution dans l'alphabet pour les com-munications gouvernementales. En e�et il décalait la lettre qu'il souhaitait coder de3 lettres vers la droite (en revenant au début de l'alphabet si besoin).

200 Le papyrus de Leyde est le plus ancien manuscrit connu concernant l'alchi-mie. Il utilise un algorithme de chi�rement pour cacher les parties importantes decertaines recettes.

4

Page 10: Etude et implémentation de quelque algorithme de chiffrement et de signature

1499 Jean Trithème (1462-1516), ancien abbé, est considéré comme un despères de la cryptographie. En e�et, il est l'auteur d'un des premiers systèmes poly-alphabétiques et il a créé une technique de stéganographie (fait de cacher un messageau sein d'un autre message) où les lettres sont remplacées par des mots choisis demanière à former, par leur réunion, une prière par exemple.

1560 Blaise de Vigenère (1523 - 1596) est l'auteur de l'un des premiers systèmesde substitution poly-alphabétique, il utilise donc une clé. Cette méthode restera do-minante pendant trois siècles. Sa particularité est qu'il n'utilise non pas un alphabet,mais 26 alphabets décalés pour chi�rer un message. On peut résumer ces décalagesavec un carré de Vigenère. Ce chi�re utilise une clé qui dé�nit le décalage pourchaque lettre du message.[3]

La Cryptographie moderne : Temps Modernes

L'éducation, l'accès à l'information et la connaissance sont devenus accessiblesà presque tout le monde, avantageant énormément la créativité et la nouveauté etdonc la complexité. Les méthodes de cryptographies se sont décuplées et la di�cultéde cassage du code également. Cependant, la cryptographie a évolué uniquementdans des milieux fermés tels les gouvernements, les services secrets ou les armées.C'est pourquoi, pendant tant d'années, elle est restée une science secrète.

1918 Gilbert Vernam met au point l'algorithme One Time Pad (traduisezmasque jetable) aussi appelé chi�re de Vernam. En e�et il fonctionne sur le mêmeprincipe que le chi�rement de Vigenère, avec quelques règles supplémentaires : Uneclé ne doit être utilisée qu'une seule fois, elle doit être de la même taille que lemessage et elle doit être générée aléatoirement. Ce système est donc reconnu commeétant l'algorithme de chi�rement le plus sécuritaire. Cependant la communicationdes clés pose problème car n'oublions pas que la clé doit être de la même taille que lemessage codé, il est donc hors de question d'utiliser Internet comme passerelle. Pourdonner un exemple, on peut penser à la valise diplomatique que les gouvernementsutilisent pour communiquer les clés privées de façon sûre à leurs ambassades.

1923 Le Dr Arthur Scherbius, hollandais résidant en Allemagne, met au pointune machine nommée Enigma qui sert à encoder des messages. Pendant la guerre, desversions d'Enigma sont utilisées pour pratiquement toutes les communications radioallemandes ainsi que pour les communications télégraphiques. Même les bulletinsmétéos sont codés avec Enigma. Elle continuera à être utilisée dans l'armée encorejusqu'en 1939 (date à laquelle le code de cette machine à été cassé).

Après la seconde guerre mondiale la situation a considérablement changé. L'édu-cation, l'accès à l'information et la connaissance sont devenus accessibles à presquetout le monde, avantageant énormément la créativité et la nouveauté et donc lacomplexité. Les méthodes de cryptographies se sont décuplées et la di�culté de

5

Page 11: Etude et implémentation de quelque algorithme de chiffrement et de signature

cassage du code également. Cependant, la cryptographie a évolué uniquement dansdes milieux fermés tels les gouvernements, les services secrets ou les armées. C'estpourquoi, pendant tant d'années, elle est restée une science secrète.

1976 IBM publie un algorithme basé sur Lucifer (l'une des premières méthodesde chi�rement moderne destiné à un usage civil). Il devient le DES (Data Encryp-tion Standard). C'est un chi�rement qui transforme des blocs de 64 bits avec uneclé secrète de 56 bits au moyen de permutations et de substitutions. Le DES estconsidéré comme étant raisonnablement sécuritaire.

1978 Le RSA est inventé par Ronald L. Rivest, Adi Shamir et Leonard M.Adleman. Il est un des plus populaire des systèmes à clés publiques.

1992 Le MD5 (Message Digest 5) est développé par Ronald L. Rivest. Il s'agitd'une fonction de hachage. Très utilisée sur l'Internet mais n'est pas considéré commeétant un algorithme sûr.

De nos jours en revanche, il y a de plus en plus d'informations dans les mi-lieux publiques qui doivent rester con�dentielles (les informations échangées parles banques par exemple). La cryptographie a commencé à être utilisée à des �nspersonnels peu après la création de l'Internet. En e�et le cyberespace s'est énor-mément développé et s'est ouvert au grand public permettant par exemple l'envoisde messages électroniques. Certaines personnes désirent alors que le contenu de cesmessages reste discret. Cela est devenu possible grâce à certains logiciels qui sontdistribués gratuitement sur l'Internet, permettant au grand public de se servir de lacryptographie.

2000 L'AES (évolution de l'algorithme Rijndael) devient le standard du chi�re-ment avancé pour les organisations du gouvernement des Etats-Unis.

2005 La cryptographie quantique, qui repose sur la physique quantique, seraitconsidérée comme sûre à presque 100%. Ce sera peut-être la méthode du futur carelle est toujours en cours d'expérimentation.[5]

1.2 Le chi�rement symétrique et asymétrique

Il existe actuellement deux grands systèmes cryptographiques : ceux à chi�rementsymétrique (dits à clé secrète) et ceux à chi�rement asymétrique (dits à clé publique).

Le chi�rement symétrique

Si la clé est unique, elle sert à chi�rer et à déchi�rer le message ; on parle alors dechi�rement symétrique. Les algorithmes symétriques actuels utilisent une successionde transpositions et de substitutions complexes des valeurs du message, basées sur

6

Page 12: Etude et implémentation de quelque algorithme de chiffrement et de signature

des opérations mathématiques et réalisées en plusieurs passes. La clé faisant partieintégrante de la fonction, il est impossible d'inverser l'algorithme sans elle, et lesseules attaques envisageables consistent souvent à essayer toutes les valeurs de cléspossibles. C'est la raison pour laquelle une clé symétrique su�samment importante(128 bits) et bien choisie est considérée comme sûre. L'algorithme symétrique le pluscélèbre est le DES (Data Encryption Standard, qui fonctionnait avec des clés de 64bits) remplacé depuis par l'AES (Advanced Encryption System, qui fonctionne avecdes clé allant jusqu'à 256 bits). Les chi�rements symétriques exigent toutefois queles deux correspondants échangent au préalable la clé secrète par un canal sûr, cequi est quasiment impossible à grande échelle.[6]

Les cryptosystémes dit classiques ou à clef secrète ou encore symétrique se com-porte comme une boite fermée par une serrure, les deux personnes qui veulent l'utili-ser pour s'envoyer des messages doivent chacun en posséder une clé mais ils peuventtous deux ouvrir et fermer cette boite.

Le chi�rement asymétrique

L'algorithme asymétrique dissocie les fonctions de chi�rement et de déchi�rementen deux clés. Ce que l'une chi�re, seule l'autre peut le déchi�rer. Aucune autreclé même celle qui a réalisé le chi�rement, ne peut y parvenir. Ainsi, chacun peutdi�user librement l'une de ses deux clés (dite � publique �) a�n que n'importequi puisse chi�rer un message à son attention. Seule la clé gardée secrète (dite� privée �) permet d'en prendre connaissance. C'est là le principal avantage sur lechi�rement symétrique : les clés privées ne circulent pas et les clés publiques peuventêtre publiées dans un annuaire (exemple : keyserver.com) ou demandées directementau propriétaire.[9]

Un cryptosystéme à clef publique se comporte comme un co�re fort dont seul unepersonne possède la clef. Il laisse son co�re ouvert à disposition de toute personnedésirant lui envoyer un message, celle ci referme lors la porte et seul le destinatairepeut ensuite l'ouvrir. En pratique, le destinataire publie à l'intention de ceux quiveulent lui envoyer des messages une méthode de chi�rement que lui seul est capablede déchi�rer. On voit donc bien pourquoi ces systèmes sont dits asymétriques.[6]

L'un des principaux avantages de la cryptographie de clé publique est qu'elleo�re une méthode d'utilisation des signatures numériques.

1.3 La signature

La signature numérique est un mécanisme qui permet d'authenti�er un message,autrement dit de prouver qu'un message provient bien d'un expéditeur donné.

La signature d'un document utilise à la fois la cryptographie asymétrique et lesfonctions de hachage. C'est en e�et par l'association de ces deux techniques que nous

7

Page 13: Etude et implémentation de quelque algorithme de chiffrement et de signature

pouvons obtenir les cinq caractéristiques d'une signature (authentique, infalsi�able,non réutilisable, inaltérable, irrévocable).

Le signature numérique peut aussi être utilisée à estamper les documents avec lecachet du temps (quelqu'un de con�ance signe le document et son cachet du tempsavec sa clef-privée, donc il témoigne que le document a existé au temps énoncé), ellepeut aussi être utilisées pour témoigner (ou certi�er) qu'une clef-publique appartientà une personne particulière. Cela est fait en signant la combinaison de la clef-publiqueet l'information au sujet de son propriétaire par une clef-privée de quelqu'un decon�ance. La signature numérique par un troisième parti (le propriétaire de la clef-privée de con�ance), la clef-publique et l'information au sujet du propriétaire de laclef-publique sont souvent appelées des certi�cats.[8]

Une signature numérique a la même utilité qu'une signature manuscrite. Cepen-dant, une signature manuscrite peut être facilement imitée, alors qu'une signaturenumérique est pratiquement infalsi�able. De plus, elle atteste du contenu des infor-mations, ainsi que de l'identi�cation du signataire.

1.3.1 Fonctionnement de la signature numérique

On suppose que A (par exemple Alice) souhaite envoyer un document signé à B(par exemple Bob).

1. Tout d'abord, A va générer l'empreinte du document au moyen d'une fonctionde hachage.

2. Puis, elle crypte cette empreinte avec sa clé privée.

3. Elle obtient ainsi la signature de son document. Elle envoie donc ces deuxéléments à B.

4. Pour véri�er la validité du document, B doit tout d'abord déchi�rer la signa-ture en utilisant la clé publique de A. Si cela ne fonctionne pas, c'est que ledocument n'a pas été envoyé par A.

5. Ensuite, B génère l'empreinte du document qu'il a reçu, en utilisant la mêmefonction de hachage qu'A (On supposera qu'ils suivent un protocole établi aupréalable).

6. Puis, il compare l'empreinte générée et celle issue de la signature.

7. Si les deux empreintes sont identiques, la signature est validée. Nous sommesdonc sûr que :

� C'est A qui a envoyé le document,� Le document n'a pas été modi�é depuis qu'A l'a signé.

8. Dans le cas contraire, cela peut signi�er que :

8

Page 14: Etude et implémentation de quelque algorithme de chiffrement et de signature

� Le document a été modi�é depuis sa signature par A,� Ce n'est pas ce document qu'A a signé

1.3.2 Types de signature

Les types de signature qu'on peut trouver sont :

Signature attachée

C'est le type de signature le plus courant, la signature étant apposée en entêteou à la suite des données à signer (la position dépend de la structure du document,de son type et des accords d'échanges éventuels).

Signature détachée

Pour la signature détachée, l'élément de signature sera enregistré dans un �chierindépendant des données à signer.

Signature enveloppante

Pour e�ectuer une signature enveloppante, il faut ajouter les données à signerdans un élément Object qui sera inclus à la signature. Cet élément doit posséderune référence propre.

Ces di�érents types de signature peuvent être cascadés et utilisés simultanément.On parle alors de multi-signature où l'on distingue :

La cosignature

La cosignature consiste à signer le document (ou l'élément) par plusieurs per-sonnes. Les signatures se trouveront toutes au même niveau. Cela se fait très simple-ment en e�ectuant une signature enveloppée du document ou de l'élément déjà signé.Cette signature viendra s'ajouter à la précédente. On obtient ainsi une cosignature.

La sur-signature ou contre-signature

La contre-signature consiste à signer une signature existante. Cela revient à réa-liser une signature de l'élément représentant la signature à contre-signer et d'inclurele bloc de la signature ainsi générée dans la signature à contre-signer. A�n de pou-voir contre-signer une signature, il est nécessaire d'ajouter un ID sur la valeur de lasignature qui servira de référence pour la contre-signature.[6]

1.3.3 Fonctions de hachage

Une fonction de hachage est une fonction qui transforme un long message enun résumé court, de taille �xe. L'image d'un message par une fonction de hachages'appelle le condensé du message, L'empreinte du message, le résumé du message

9

Page 15: Etude et implémentation de quelque algorithme de chiffrement et de signature

ou encore le message haché. Une fonction de hachage doit posséder deux qualitésindispensables [1] :

• Résistance à la détermination d'une préimage, ce qui signi�e qu'il doit êtreimpossible en pratique, à partir d'un résumé m, de trouver un message Mayant ce résumé, c'est-à-dire tel que m=h(M) , � l'impossibilité en pratique �dont nous parlons ici, fait référence à la di�culté calculatoire de l'opération enquestion. Un peu plus précisément, les algorithmes connus qui peuvent menerà bien l'opération � impossible � s'exécutent en un temps bien trop long pourêtre en pratique mènes à leur terme.

• Resistance aux collisions, ce qui signi�e qu'il est impossible en pratique deconstruire deux messages M1 et M2 ayant le même résumé : h(M1)=h(M2).

Bien entendu, comme une fonction de hachage h transforme un long messageen un message court, la fonction h n'est certainement pas injective. Donc les deuxpropriétés demandées aux fonctions de hachage ne peuvent être réalisable qu' àcause de l'inextricabilité des calculs qui permettraient de revenir aux préimage, oude provoquer des collisions. Cependant l'inextricabilité des calculs n'est assurée quesi la taille �xe des images de la fonction h est su�samment grande. Une taille de128 bits est maintenant considérée comme trop courte et il est conseillé de prendreau moins 160 bits. Il existe de nombreuses fonctions de hachage.[10]

• SHA : (Secure Hash Algorithm) est la fonction de hachage utilisée par SHS(Secure Hash Standard), la norme du gouvernement Américain pour le ha-chage, SHA-1 est une amélioration de SHA qui fournit en sortie un bloc de160 bits.

• MD5 : (Message Digest) donne une empreinte sur 128 bits.

• SHA-224, SHA-256, SHA-384, SHA-512 : Ce sont des améliorations deSHA-1. Les trois dernières fonctions fournissent une résistance aux attaquesbrutales comparables à la résistance des diverses versions de AES (SHA-256 àmettre en rapport avec AES-128, SHA-384 à mettre en rapport avec AES-192,SHA-512 à mettre en rapport avec AES-256). Elles ont été retenues par leprojet NESSIE.

• Whirlpool : Cette fonction a une sortie de 512 bits. Whirlpool a été retenuepar le projet NESSIE.

Remarque

Le projet NESSIE � New European Schemes for Signatures, Integrity and En-cryption � fut mené entre janvier 2000 et mars 2003 par la commission européennevia son programme IST (pour � Information Society Technologies�), dans le but departiciper à l'évaluation de l'AES américain et de favoriser l'émergence de nouvellesprimitives cryptographiques (fonctions de chi�rement symétrique et asymétrique,fonctions de hachage, fonctions de signature électronique, etc.) à destination des

10

Page 16: Etude et implémentation de quelque algorithme de chiffrement et de signature

industriels européens.

Les cryptosystèmes est basée sur des problèmes mathématiques di�ciles à ré-soudre tel que la factorisation et le problème de logarithme discret. Le principe d'unprotocole cryptographique est qu'il doit être simple de chi�rer un message, maisqu'il doit être très di�cile voire impossible à déchi�rer sans posséder la clé du sys-tème. Dans la suite de ce rapport on va traiter quelque crypto systèmes basés sur lafactorisation ainsi que d'autres basés sur le logarithme discret.

11

Page 17: Etude et implémentation de quelque algorithme de chiffrement et de signature

Chapitre 2

Cryptographies basés sur la

factorisation

La factorisation est un problème algorithmique dont la solution est di�cile àtrouver, il est facile de trouver deux grands nombres premiers p et q et de calculerleur produit N = p × q. En revanche, le problème consiste à retrouver p et q enconnaissant N quand p et q sont plus grands. Ce problème est appelé la factorisation.

Dans ce chapitre on va étudier cryptosystème de RSA et de Rabin et pour celaon va traiter dans un premier temps les compléments mathématiques qui on vautiliser dans ces cryptosystèmes et par la suite on va aborder en détail ces deuxcryptosystèmes.

2.1 Compléments mathématiques

Les nombres premiers

On dit d'un nombre entier qu'il est premier lorsque ses seuls diviseurs sont l'unitéet lui-même. En termes plus imagés, un nombre premier est � insécable �, au sensoù il n'admet pas de factorisation non triviale.(1) L'étude des nombres premiers faitpartie d'une branche des mathématiques que l'on nomme l'arithmétique .

Les nombres premiers et cryptographie

De nombreuses méthodes ou de lois mathématiques utilisées en cryptographie nefonctionnent que si les nombres utilisés sont des nombres premiers. En e�et il esttrès facile de multiplier deux nombres premiers très grands, mais l'inverse, retrouverles deux nombres premiers en ne connaissant que le produit, est bien plus délicatmême avec la connaissance de nombre de chi�res qui composent chacun de ces deuxnombres premiers.[11]

12

Page 18: Etude et implémentation de quelque algorithme de chiffrement et de signature

Le plus grand nombre premier découvert

En janvier 2013, a été trouvé le "nouveau" plus grand nombre premier connuà ce jour. Ce nouveau record, qui appartient à la famille des nombres premiers deMersenne, comporte 17425170 chi�res. La découverte a été possible grâce à 98980personnes et 574 équipes du projet GIMPS où 730562 processeurs travaillent deconcert.

Cette découverte revient en particulier à Curtis Cooper, professeur à l'universitédu Missouri, qui a mis le doigt dessus en s'appuyant sur la puissance des autresordinateurs du projet. Il s'est donc vu attribuer une prime de 3000 dollars verséepar l'Electronic Frontier Foundation. Avis aux amateurs, 250000 dollars sont promisà celui qui trouvera un nombre composé d'un milliard de chi�res ou plus.

2.1.1 Calcul du pgcd, algorithme d'Euclide

Pgcd(plus grand commun diviseur)

Dé�nition : Soit a et b deux nombres entiers. On dé�nit le plus grand commundiviseur de a et b, noté pgcd(a, b), comme étant le plus grand nombre positif quidivise à la fois a et b. [23]

Exemple

1. On a pgcd(12, 14) = 2.

En e�et, l'ensemble des diviseurs de 12 est D12={1, 2, 3, 4, 6, 12} et l'en-semble des diviseurs de 14 est D14 ={1, 2, 7, 14}. L'ensemble des diviseurs com-mun à 12 et à 14 est donc D12 ∩ D14 = {1, 2}. Ainsi, le plus grand commundiviseur est 2.

2. On a aussi pgcd(2, 3) = 1.

3. Ou encore pgcd(7, 21) = 7.

4. On a pgcd(0, b) = b si b = 0, car 0 est divisible par tout nombre. On utilise laconvention pgcd(0, 0) = 0 pour respecter la règle précédente.

Remarque : Deux nombres a et b tels que pgcd(a, b) = 1 sont dit premiersentre-eux.

L'algorithme d'Euclide

Dé�nition :Soit a et b deux nombres entiers non nuls. Grâce au résultat précé-dent, on peut en e�ectuant des divisions euclidiennes successives calculer pgcd(a, b).

13

Page 19: Etude et implémentation de quelque algorithme de chiffrement et de signature

Comme b 6=0, a=b ×q1+ r1, pgcd(a,b)=pgcd(b,r1), 0≤r1 < |b|Si r1 6=0, b=r1 ×q2+ r2 , pgcd(b,r1) = pgcd(r1,r2) , 0 ≤r2 < r1

Si r2 6=0, r1 = r2 ×q3+ r3 , pgcd(r1,r2) = pgcd(r2,r3) , 0 ≤r3 <r2

...

Si rn−1 6=0,rn−2 = rn−1 ×qn + rn , pgcd(rn−2,rn−1) = pgcd(rn−1 , rn), 0 = rn < rn−1

Si rn = 0, pgcd(rn−1,rn) = pgcd(rn−1,0) = rn−1

On a ainsi construit une suit d'égalité

pgcd(a,b)=pgcd(b,r1)=pgcd(r1,r2)=.......=pgcd(rn−2,rn−1)=pgcd(rn−1,rn)=rn−1

Oú le premier reste non nul est rn. Dans ce cas pgcd(a, b) est égal au dernierreste non nul. Comme les restes forment une suite de nombres naturels strictementdécroissante, il est certain qu'il y aura un premier reste nul.[7]

2.1.2 Théorème de Bezout, algorithme d'Euclide étendu

Théorème de Bezout

Dé�nition :Soit a et b deux nombres entiers.Alors, il existe deux nombres entiersx et y tels que ax+ by = pgcd(a, b) L'algorithme d'Euclide étendu décrit ci-dessouspermet de trouver les entiers x et y.

L'algorithme d'Euclide étendu

Dé�nition :L'algorithme d'Euclide étendu est une variante de l'algorithme d'Eu-clide qui permet, à partir de deux entiers a et b, de calculer non seulement leur plusgrand commun diviseur (PGCD), mais aussi un de leurs couples de coe�cients deBézout.[7]

Exemple1

pour calculer de pgcd(255, 141), On e�ectue des divisions euclidiennes, jusqu'àce qu'on trouve un reste nul. Le dernier reste non nul est le pgcd de 255 et 141.

255 = 1× 141 + 114

141 = 1× 114 + 27

114 = 4× 27 + 6

27 = 4× 6 + 3

6 = 2× 3 + 0

14

Page 20: Etude et implémentation de quelque algorithme de chiffrement et de signature

Alors le pgcd de 255 et 141 est 3.

Exemple2

calcule les coe�cients de Bezout a et b tel que :

255 + 141 = pgcd(255, 141) = 3, Il su�t de remonter les calculs de l'Exemple 1,pour trouver ces deux nombres.

3 = 27− 4× 6

3 = 27− 4× (114− 4× 27) = 17× 27− 4× 114

3 = 17× (141− 114)− 4× 114 = 17× 141− 21× 114

3 = 17× 114− 21× (255− 141) = 38× 114− 21× 255

Et par la suit 3 = 38× 114− 21× 255 alors a = −21 et b = 38.

Remarque : si a× p+ b× q = pgcd(p, q) =1Alors : a=p−1 mod q et b =q−1 mod p.

2.1.3 Congruences,L'exponentiation rapide et Théorèmed'Euler

Congruences

Dé�nition : Soit n un entier strictement positif. On dit que deux nombresentiers a et b sont congrus modulo n si b− a est divisible par n. On note alors a ≡ bmod n ou a = b mod n.[23]

Proposition : a ≡ b mod n équivaut à dire que le reste de la division euclidiennede a par n est le même que celui de la division euclidienne de b par n. Parfois, b estappelé le résidu de a modulo n. On dit aussi que a est congru à b modulo n.

L'ensemble des entiers de 0 à n− 1 forme ce que l'on appelle l'ensemble de tousles résidus modulo n. Ce qui signi�e que, pour tout entier quelconque a, son résidumodulo n est un nombre compris entre 0 et n−1 bornes comprises. On a les formulessuivantes :

(a+ b) mod n = (a mod n+b mod n) mod n.

(a− b) mod n = (a mod n − b mod n ) mod n.

(a× b) mod n = (a mod n×b mod n) mod n.

(a× (b+ c)) mod n = (((a× b) mod n)+((a× c) mod n)) mod n.

Théorème : Soient a, b, c, d, n des entiers tells que a ≡ b mod n etc ≡ d mod n. On a alors les résultats suivants :

15

Page 21: Etude et implémentation de quelque algorithme de chiffrement et de signature

• Compatibilité de la loi + avec la congruence modulo n :

a+ c ≡ b+ d mod n.

• Compatibilité de la loi × avec la congruence modulo n :

a× c ≡ b× d mod n .

• Pour tout entier strictement positif k,

ak ≡ bk mod n.

L'exponentiation rapide

Dé�nition :L'exponentiation rapide est un algorithme utilisé pour calculer rapi-dement, de grandes puissances entières. Son principe consiste à opérer par élévationsau carré successives .Pour calculer ab mod n rapidement pour tout b on suive lesétapes suivants[7] :

1. Diviser b en puissances de 2 en l'écrivant en binaire.

Commencer à partir du chi�re le plus à droite, soit k = 0 et pour chaquechi�re :

• Si le chi�re est 1, nous gardons le terme 2k , sinon nous ne le gardons pas.

• Ajouter1 à k et on analyse le chi�re suivant à gauche.

2. On calcule le modulon des puissances de deux ≤b.

3. Utiliser les propriétés de multiplication modulaire pour combiner les valeurs calculéesdu modulo n.

Exemple :

Calculer 5177 mod 19.

1. 177 = 1110101 en binaire alors 177 = (20+22+24+25+26) = 1+4+16+32+64.5177 mod 19 = 5(1+4+16+32+64) mod 19 = (51 × 54 × 516 × 532 × 564)mod 19.

2. On calcule 51, 54, 516, 532,564.

51 mod 19 = 5 mod 19.

52 mod 19= 5× 5 mod 19 = 25 mod 19 = 6 mod 19.

54 mod 19 = 6× 6 mod 19 = 36 mod 19 = 17 mod 19.

58 mod 19= 17× 17 mod 19 =289 mod 19 = 4 mod 19.

516 mod 19 = 4× 4 mod 19 = 16 mod 19.

532 mod 19 = 16× 16 mod 19 =256 mod 19 = 9 mod 19.

564 mod 19 = 9× 9 mod 19= 81 mod 19= 5 mod 19.

16

Page 22: Etude et implémentation de quelque algorithme de chiffrement et de signature

3. Et par la suit on remplace et on trouve :

5177 mod 19 = (51 × 54 × 516 × 532 × 564)mod 19 = 5 × 17 × 16 × 9 × 5 mod19 = 61200 mod 19 = 1 mod 19.

Alors 5177 mod 19 =1 mod 19.

Théorème d'Euler

Dé�nition :Soit n un entier naturel non nul alors pour tout entier naturel apremier avec n ,on a la congruence : aφ(n) ≡ 1 mod n. [23]

Où φ est la fonction indicatrice d'Euler et φ(n) le nombre d'entiers naturelsinférieurs à n qui sont premiers avec n. (6)

Ce théorème est une généralisation du théorème de Fermat (qui ne traite quele cas où n est un nombre premier).Ce théorème permet simplement la réductionmodulo n de puissance.

Exemple :

si on veut trouver le chi�re des unités de 7222, c'est-à-dire trouver à quel nombreentre 0 et 9 est congru 7222 modulo 10, il su�t de voir que 7 et 10 sont premiersentre eux, et que ϕ(10) =φ(2 × 5) = (2 − 1) ×(5-1)= 4. Le théorème d'Euler nousindique 74 ≡ 1 mod 10.

On en déduit que : 7222 ≡ 7455+2 ≡ (74)55 × 74 ≡ 155 ≡ 72 ≡ 49 ≡ 9 mod 10.

Le chi�re recherché est donc 9.

2.1.4 Le théorème des restes chinois

Dé�nition :Soit m1, m2, ..., mn deux à deux des nombres entiers premierssupérieurs à 1 et soit a1, a2, ..., an des entiers. Ensuite, le système de congruences.[7]

x=a1 mod m1

x=a2 mod m2

...

x=an mod mn

admet une unique solution moduloM =m1×m2×...×mn donnée par la formule :

x = (a1 ×M1 · y1 + ...+ an ·Mn · yn) mod M .

17

Page 23: Etude et implémentation de quelque algorithme de chiffrement et de signature

où Mi = M/mi et yi = Mi − 1 mod mi , pour 1 ≤ i ≤ n.

Exemple :

Pour n = 3, supposons que m1 = 7 , m2 = 11 et m3 = 13. On a donc M = 1001.On calcule M1 = 143, M2 = 91, M3 = 77.

D'après l'algorithme d'Euclide étendu, on a y1 = 5, y2 = 4, y3 = 12.

Par exemple, pour le système d'équations :

x mod 7 = 5

x mod 11 = 3

x mod 13 = 10

la formule donne pour solution :

x=(5 · 143 · 5 + 3 · 91 · 4 + 10 · 77 · 12) mod 1001.

x= 13907 mod 1001.

x= 894 mod 1001.

On peut facilement véri�er cette solution en introduisant x dans le systèmed'équations.

2.2 Chi�rement de RSA

Le cryptage RSA, du nom de ses concepteurs, Ron Rivest, Adi Shamir et LeonardAdleman, est le premier algorithme de chi�rement asymétrique. Il a été découverten 1977 au Massachusetts Institute of Technology.

RSA est devenu un système universel servant dans une multitude d'applica-tions : systèmes d'exploitation (Microsoft, Apple, Sun. . . ), cartes à puces bancaireset bien sûr le réseau Internet pour assurer la con�dentialité du courrier électro-nique et authenti�er les utilisateurs et aussi la protection de dossiers hautementcon�dentiels.[12]

Le RSA est basé sur la théorie des nombres premiers , et sa robustesse tientdu fait qu'il n'existe aucun algorithme de décomposition d'un nombre en facteurspremiers. Alors qu'il est facile de multiplier deux nombres premiers, il est très di�cilede retrouver ces deux entiers si l'on en connaît le produit.

2.2.1 Principe de fonctionnement

Le RSA c'est un système à clé publique, ce qui signi�e que l'algorithme de calculn'est pas caché, ni la clé de codage (appelée de ce fait clé publique).La connaissance

18

Page 24: Etude et implémentation de quelque algorithme de chiffrement et de signature

de la clé publique du destinataire permet à tous les émetteurs de crypter les messagesqui ne pourront être décryptés que par le destinataire, grâce à sa clé secrète.

Génération des clés

Le RSA fonctionne à partir de deux nombres premiers , que l'on appellera p etq . Ces deux nombres doivent être très grands, car ils sont la clé de voûte de notrecryptage.

Une fois ces deux nombres déterminés, multiplions-les. On note n le produitn = p× q , et on calcule l'indicatrice d'Euler φ(n) = φ(p) · φ(q) = (p− 1)(q − 1).

Cherchons maintenant un nombre e (inférieur à φ(n)) , qui doit nécessairementêtre premier avec φ(n). Calculons ensuite l'inverse de e modulo φ(n), que nousnoterons d. avec d ≡e−1mod φ(n).[14]

Alors :

La clé publique :c'est le couple (n,e).

La clé privée :c'est le couple(n,d).

Chi�rement

• Avant d'être chi�ré, le message original doit être décomposé en une série d'en-tiers M de valeurs comprises entre 0 et n− 1.

• Pour chaque entierM il su�t de le mettre à la puissance e . C ≡Me mod n. (C= M e modulo n est calculé grâce à la méthode d'exponentiation modulaire.

• Le message chi�ré est constitué de la succession des entiers C.

Déchi�rement

• Conformément à la manière dont il a été chi�ré, le message reçu doit êtrecomposé d'une succession d'entiers C de valeurs comprises entre 0 et n − 1.[13]

• Pour chaque entier C il faut calculer M ≡Cd mod n.

• Le message original peut alors être reconstitué à partir de la série d'entiersM .

2.2.2 Exemple d'illustration

génération des clés

Soient p = 3011 et q = 3037 on trouve n= p× q = 9144407, et par la suit on :

• Calcule l'indicatrice d'Euler φ(n)= φ(p)× φ(q) = (p− 1)× (q− 1)= 9138360.

19

Page 25: Etude et implémentation de quelque algorithme de chiffrement et de signature

• Cherche une valeur e inferieur à φ(n), et qui doit être premier avec cettedernière. Par exemple on prend e= 7185583.

• Calcule d ( l'inverse de e modulo φ(n)). On trouve d= 7449007.

Alors :

La clé privèe : c'est le couple (9144407, 7449007).

La clé public : c'est le couple (9144407, 7185583).

Chi�rement

La relation de chi�rement est : c= me mod n.

A désire envoyer un message m secret à B . Ce dernier lui a fait connaître sesclefs publiques et elle va les utiliser pour chi�rer le texte suivant : m = MASTERIT .

Tout d'abord il faut convertir le message à envoyer en chi�res et pour cela onconsidère que chaque alphabet équivalent a deux nombre comme le présente le ta-bleau suivant :

# A B C D E F G H I J K L M26 00 01 02 03 04 05 06 07 08 09 10 11 12* N O P Q R S T U V W X Y Z27 13 14 15 16 17 18 19 20 21 22 23 24 25

Table 2.1 � Code de conversion

Alors le message m devient m′ =120018190417260819.

Puisque le message M doit être inferieur à n− 1 (m < n− 1) il faut décomposerd'abord le message en blocs inferieur à n− 1.

Alors m' devient les blocs m1=120018 et m2=190417 et m3=081926.

Et par la suite A chi�re les blocs obtenu par la relation c= me mod n avec lecouple (e, n) est la clé public de B, et on obtient les résultats suivants :

C1= me1 mod n = 1200187185583 mod 9144407 = 6284322 mod 9144407.

C2= me2 mod n =1904177185583 mod 9144407 = 2986033 mod 9144407.

C3= me3 mod n = 0819267185583 mod 9144407 = 8193899 mod 9144407.

Alors A envoie à B le message chi�ré suivante : C= 6284322 2986033 207847 .

Déchi�rement

La relation de chi�rement est : m =cd mod n.

20

Page 26: Etude et implémentation de quelque algorithme de chiffrement et de signature

B reçoit le message C ,et utilise sa clé privé (d, n) pour déchi�rer le message C.Et par la suit on trouve les résultats suivants :

m1= cd1 mod n = 62843227449007 mod 9144407= 120018 mod 9144407 .

m2= cd2 mod n = 29860337449007 mod 9144407= 190417 mod 9144407.

m3= cd3 mod n =2078477449007 mod 9144407= 081926 mod 9144407.

Alors le message déchi�ré est m=120018190417260819, puis B convertis le mes-sage m en alphabet en utilisant le tableau précédant et à la �n on trouve le messageenvoyé par A qui est : MASTER IT*.

2.2.3 Implémentation

On utilise un exemple d'implémentation pour chi�rer le message suivante :m=bonjour mes chers amis j'espere que vous allez bien.

Génération des clés

Chi�rement

21

Page 27: Etude et implémentation de quelque algorithme de chiffrement et de signature

Déchi�rement

2.3 Chi�rement de Rabin

Michael Oser Rabin (né en 1931 à Breslau en Allemagne, maintenant Wrocªawen Pologne) est un informaticien et un logicien. Il a été récipiendaire du prix Turing,la récompense la plus prestigieuse en informatique.

Rabin a inventé en 1979 un asymétrique cryptographique technique basé sur ladi�culté du problème de la factorisation nomme par cryptosystème de Rabin, quiest le premier cryptosystème asymétrique dont la sécurité se réduit à l'intractabilitéde la factorisation d'un nombre entier.[15]

Cryptosystème de Rabin est un système de cryptage développé à la même époqueque RSA ( Rivest, Shamir et Adelman )qui est également basée sur la di�culté defactoriser deux grands nombres entiers pour sa sécurité comme système de chif-frement de Rabin . Bien qu'il soit théoriquement plus fort que RSA, le système dechi�rement de Rabin n'est jamais devenu populaire parce que, dans la pratique RSAest à peu près aussi forte, et que RSA a d'abord été d'environ un an, et parce quele système de chi�rement de Rabin nécessite un travail supplémentaire pour leverl'ambiguïté du décryptage.[16]

2.3.1 Principe de fonctionnement

Comme tous les cryptosystèmes asymétriques, le système de Rabin emploie uneclef publique et une clef privée. La clef publique est nécessaire pour le codage pos-térieur et peut être éditée, tandis que la clef privée doit être possédée seulement parle destinataire du message. [16]

Génération des clés

• Clé privée : c'est (p,q) tels que p et q soient deux grands nombres premiersdistincts et congrus à 3 modulo 4 (nous verrons plus loin le pourquoi de cettecondition).

• Clé public : c'est n avec n le produit de deux nombres premiers p et q.

Chi�rement

Pour chi�rer un message il faut suivi les étapes suivant :

22

Page 28: Etude et implémentation de quelque algorithme de chiffrement et de signature

• Obtenir la clé publique de récepteur.

• Représenter le message comme un entier M dans l'intervalle Zn=[0, 1, ..., n−1].• Calculer C = M2 mod n.

• Envoyer le texte chi�ré C au récepteur.

Déchi�rement

Le problème de décryptage du point de vue récepteur, il est donné le messagechi�rer C et veulent déterminer M tel que :

M2 ≡ C mod n.

Il s'agit d'une équation du second degré en Zn dans l'inconnue M , et le déchif-frement nécessite l'extraction des racines carrées modulo n. Ceci est équivalent àrésoudre les deux congruences.

t2 ≡ C mod p.

et

t2 ≡ C mod q.

Lorsque p ≡ 3 mod 4, il y a une formule simple pour calculer des racines carréesdes résidus quadratiques modulo p. Supposons C est un résidu quadratique modulop, où p ≡ 3 mod 4. Ensuite, nous avons que :

(± Cp+14 )2≡ C

p+12 mod p ≡ C

p−12 C mod p ≡ C mod p

Ici, nous avons utilisé le critère d'Euler, alors Cp−12 ≡ 1 mod p . Donc, les deux

racines carrées de C modulo p sont mp=± Cp+14 mod p. De la même façon, les deux

racines carrées de C modulo q sont mq=± Cq+14 mod q.

Il est alors facile d'obtenir les quatre racines carrés de C modulo n on utilisantle théorème des restes chinois,après déterminer les valeurs de a et b par l'algorithmed'Euclide étendu.

Maintenant, les quatre racines carrées d'après le théorème des restes chinois sont :

23

Page 29: Etude et implémentation de quelque algorithme de chiffrement et de signature

M1=(a × p × mq +b × q × mp ) mod nM2=-M1 = n−M1

M3=(a × p × mq -b × q × mp ) mod nM4=-M3 = n−M3

Cet algorithme n'est pas injectif, pour un message chi�ré reçu il y a quartsmessages clairs dont il peut provenir. Dans la pratique, seul un des 4 messages auraun sens donc il n'y aura pas d'ambigüité. Néanmoins cela peut poser problème pourautomatiser le déchi�rement, pour contourner cette di�culté on va introduire de laredondance dans le message clair. Il y a de multiples façons de le faire, par exempleon peut redoubler les 64 derniers bits, avec une très grande probabilité une seule desquartes solutions respectera cette redondance .

2.3.2 Exemple d'illustration

génération des clés

Prend même exemple traiter précédemment mais cette fois si avec p=6911 etq = 6947 (on peut véri�er que p et q sont deux nombres premiers de la forme 4k+3).On calcule ensuite que n = 6911× 6947= 48010717.

Alors :

La clé privée est le couple (6911, 6947).

La clé public est 48010717.

Chi�rement

La fonction de chi�rement est : c= m2 mod n.

A désire envoyer un message secret MASTER IT∗B.

On respecte les mêmes étapes utilisées dans l'exemple précédant on trouvem'=120018190417260819, puis on découpe m′ en bloc inférieur à n-1 on trouve lesblocs m1=120018 et m2=190417 et m3=260819 la seul chose ajouté c'est que Amarque chacun des blocs en ajoutant le symbole # (qui équivalent à 27 d'après letableau qu'on a utilisé) au début de chaque bloc pour faciliter la tache à B a�n detrouver le message m.

Alors le message à chi�rer est constitué par trois blocs suivants :

m1=27120018 , m2=27190417 , m3=27081926.

A par la suite chi�re les blocs obtenu par la relation c= m2 mod n et on obtientles résultats suivants :

c1= m21 mod n = 271200182 mod 48010717 = 46321241 mod 48010717.

c2= m22 mod n = 271904172 mod 48010717 = 17165077 mod 48010717.

24

Page 30: Etude et implémentation de quelque algorithme de chiffrement et de signature

c3= m23 mod n = 270819262 mod 48010717= 38744261 mod 48010717.

Alors A envoie à B le message chi�ré suivante : C = 46321241 17165077 38744261.

Déchi�rement

B reçoit le message C .Alors pour déchi�rer le message C il faut calculer toutd'abord quelque paramètre ( mp, mq, a, b) à L'aide de sa clé privé (p, q) avec :

a = p−1 mod q= 6754.

b = q−1 mod p =192.

Et mp, mq sont calculé a chaque fois en fonction de la valeur de c par les relationssuivants :

mp= c(p+1)/4 mod p .

mq =c(q+1)/4 mod q .

Lorsqu'on calcule ses paramètres on remplace leurs valeurs dans les relationssuivantes pour trouver le message déchi�ré.

M1=(a × p × mq +b × q × mp ) mod nM2=-M1 = n−M1

M3=(a × p × mq -b × q × mp ) mod nM4=-M3 = n−M3

Alors pour C1=46321241 on a et :

mp= 46321241(6911+1)/4 mod 6911 = 5657 mod 6911.

mq= 46321241(6947+1)/4 mod 6947 = 5877 mod 6947.

On obtient donc les quatre nombres clairs suivants :

M1= (584× 6911× 3036 + 2432× 6947× 2572) mod 48010717 = 42639616 mod48010717.

M2= n- M1 = 48010717 - 42639616 mod 48010717 =5371101 mod 48010717.

M3= (584× 6911× 3036− 2432× 6947× 2572) mod 48010717= 27120018 mod48010717.

M4= n- M3=48010717-27120018 mod 48010717 =20890699 mod 48010717.

La bonne valeur est celle qui commence par 27, donc 27120018. Une fois décodé,ce nombre donne les lettres #MAS.

25

Page 31: Etude et implémentation de quelque algorithme de chiffrement et de signature

pour C2=17165077 on a et :

mp= 17165077(6911+1)/4 mod 6911= 4368 mod 6911.

mq= 17165077(6947+1)/4 mod 6947 = 141 mod 6947.

On obtient donc les quatre nombres clairs suivants :

M1= (5846911141 + 243269474368) mod 48010717 =20820300 mod 48010717.

M2= n-M1=48010717-20820300 = 27190417 mod 48010717.

M3= (5846 × 911 × 141 − 2432 × 6947 × 4368) mod 48010717=35138067 mod48010717.

M4=n−M3=48010717− 35138067= 12872650 mod 48010717.

De même la bonne valeur est celle qui commence par 27, ici c'est 27190417. Unefois décodé, ce nombre donne les lettres #TER.

pour C3= 38744261 on a et :

mp= 38744261(6911+1)/4 mod 6911= 4628 mod 6911.

mq= 38744261(6947+1)/4 mod 6947 = 2520 mod 6947.

On obtient donc les quatre nombres clairs suivants :

M1= (584× 6911× 2520 + 2432× 6947× 4628) mod 48010717 =27081926 mod48010717.

M2=n−M1= 48010717− 27081926=20928791 mod 48010717.

M3=(584 × 6911 × 2520 − 2432 × 6947 × 4628) mod 48010717=19961251 mod48010717.

M4=n−M3=48010717− 19961251=28049466 mod 48010717.

La bonne valeur est celle qui commence par 27, alors 27081926. Une fois décodé,ce nombre donne les lettres #IT∗.

Alors le message déchi�rer est MASTRE IT∗.

2.3.3 Implémentation

On utilise un exemple d'implémentation pour chi�rer le message suivante :m=bonjour mes chers amis j'espere que vous allez bien.

26

Page 32: Etude et implémentation de quelque algorithme de chiffrement et de signature

Génération des clés

Chi�rement

Déchi�rement

27

Page 33: Etude et implémentation de quelque algorithme de chiffrement et de signature

Chapitre 3

Cryptographies basés sur logarithme

discret

Le problème du logarithme discret est un autre problème algorithmique di�cileà rèsoudre,le problème est le suivant : étant donné y ∈ G, trouver x ∈ N tel quegx = y si un tel x existe.(avec g c'est le générateur groupe).

Dans le cas des courbes elliptiques, le problème du logarithme discret de E parrapport à la base P est : étant donné Q ∈ E, de trouver x ∈ N tel que Q = x · P siun tel x existe.[17]

Dans ce chapitre on va traiter dans la premier partie deux cryptosystèmes baséssur le probléme de logarithme discret sur les corps �nis schnorr et DSA(Digital signa-ture algorithme) et dans la deuxiéme partie on va traite le cryptosystème ECDSAqui utilise le probléme de logarithme discret sur les courbes elliptiques.

3.1 DSA (Digital Sinature Algoriyhme)

Le système DSA a été proposé par l'organisme américain NIST (et conçu par laNSA) en 1991, approuvé en 1994, et mis a jour en 2000.

En 1991, l'agence gouvernementale américaine NIST (National Instituteof Stan-dards and Technology) a proposé un système de signature digitale destiné à êtreutilisé dans les transactions commerciales et gouvernementales.

Une signature digitale est un message court ajouté à un document électronique,qui certie la provenance et l'intégrité du document et ne doit pas pouvoir être copiée.Un tel protocole s'appuie nécessairement sur un système cryptographique à clefpublique, puisque la signature doit pouvoir être identiée par quiconque le souhaite.

Le système choisi par le NIST est basé sur le log discret dans le groupe multi-plicatif d'un corps premier ni. C'est une variante de protocoles proposés auparavant[ElGamal 1985, Schnorr 1990].

28

Page 34: Etude et implémentation de quelque algorithme de chiffrement et de signature

3.1.1 Principe de fonctionnement

Le DSA est similaire à un autre type de signature développée par Schnorr . Il aaussi des points communs avec la signature El Gamal. Le processus se fait en troisétapes :[18]

• Génération des clés.

• Signature du document.

• Véri�cation du document signé.

Une signature numérique DSA est calculé en utilisant un ensemble de paramètresde domaine, une clé privée x, un numéro secret k par message, les données doiventêtre signés, et une fonction de hachage. Une signature numérique est véri�ée en uti-lisant les mêmes paramètres de domaine, une clé y publique qui est mathématique-ment liée aux x clé privée utilisée pour générer la signature numérique, les donnéesà véri�er, et la même fonction de hachage qui a été utilisée lors de la génération designature.[18]

Génération des clés

La sécurité de DSA repose sur la di�culté du problème du logarithme discretdans un groupe �ni.

• Choisir un nombre premier p de longueur L tel que 512 ≤ L ≤ 1024, et L estdivisible par 64.

• Choisir un nombre premier q de 160 bits, de telle façon que p1 = qz, avec zun entier.

• Choisir h, avec 1 < h < p1 de manière à ce que g = hz mod p > 1 avec g c'estle générateur d'un sous-groupe d'ordre q.

• Générer aléatoirement un x, avec 0 < x < q.

• Calculer y = gx mod p .

Alors :

La clé publique est : (p, q, g, y).

La clé privée est : x.

La signture

• Choisir un nombre aléatoire k , 1 < k < q.

• Calculer r = gk mod p mod q.

• Calculer s = k−1(H(m) + r× x) mod q, où H(m) est le résultat d'un hachagecryptographique.

29

Page 35: Etude et implémentation de quelque algorithme de chiffrement et de signature

La signature de message m est (r ,s).

La véri�cation

• Rejeter la signature si 0 < r < q ou 0 < s < q n'est pas véri�é.

• Calculer w = s−1 mod q.

• Calculer u1 = H(m)× w mod q.

• Calculer u2= r × w mod q.

• Calculer v = (gu1 × yu2 mod p) mod q.

La signature est acceptée si et seulement si v = r.

Si v n'est pas égal r, le message ou la signature peut avoir été modi�é, il peuty avoir une erreur dans le processus de génération du signataire, ou un imposteur(qui ne connaît pas la clé privée associée à la clé publique de l'invention revendiquéesignataire) a peut-être tenté de forger la signature. La signature doit être considéréecomme non valide.

3.1.2 Exemple d'illustrations

signée le message m=9 .

Génération des clés

• Choisir p = 23 et q = 11 , avec q est le nombre de facteurs premiers de p− 1 .

• h choisi égale à 16 < p− 1 donc g≡ 162 mod 23 ≡ 3 > 1.

• Clé secrète choisi x = 7 < q.

• y ≡ gx mod p ≡ 37 mod 23 ≡ 2 mod 23.

Alors :

La clé publique est : (23,11,3,2).

La clé privée est :7.

La signature

Expéditeur signer le message :• Choisi k = 5, (1 < k < q = 11 ).

• r ≡ (gk mod p ) mod q≡ (35 mod 23) mod 11 ≡ 13 mod 11 ≡ 2 mod 11.

• Supposons H = H(m) = 10 et on calcule :

s ≡k −1(H + xr) mod q.

30

Page 36: Etude et implémentation de quelque algorithme de chiffrement et de signature

s ≡5−1(10 + 7× 2 ) mod 11.

s ≡ (9× 24) mod 11 ≡ 216 mod 11 ≡ 7 mod 11.

La signature de message m est (2 ,7).

La véri�cation

Récepteur prouver signatures numériques dans le calcul :• w ≡ s−1 mod q ≡ 7−1 mod 11 ≡ 8 mod 11.

• u1 ≡ (H× w ) mod q≡ (10× 8 ) mod 11≡ 3 mod 11.

• u2 ≡ (r× w ) mod q≡ (2× 8 ) mod 11≡ 5 mod 11.

• v ≡ (( gu1× yu2) mod p ) mod q≡ ((33 × 25 ) mod 23)mod 11 ≡ (864 mod23) mod 11 ≡ 13 mod 11 ≡ 2 mod 11.

Puisque v = r = 2 , la signature numériques est validée .

3.1.3 Implémentation

On utilise un exemple d'implémentation pour signe un message m.

Géneration des clés

Signature

Véri�ction

3.2 Signature de Schnorr

Le schéma de Schnorr [1] est un protocole d'authenti�cation , dont la sécuritérepose sur le problème du logarithme discret. Une particularité importante de ceschéma est que les tailles de la clé privée et des valeurs transmises par le prouveur

31

Page 37: Etude et implémentation de quelque algorithme de chiffrement et de signature

sont réduites à leur minimum. L'astuce utilisée pour y parvenir sera reprise par leNIST, lorsqu'il spéci�era le standard fédéral DSA (Digital Signature Algorithm). Leschéma de Schnorr est décrit dans la norme ISO/IEC 9798− 5 , tandis que le DSAest en cours de normalisation.

3.2.1 Principe de fonctionnement

Le protocole de signature de Schnorr utilise les opérations sur les groups �ni.Considérons par la suite un sous groupe d'ordre q dans Z∗q et qui posséde un géné-rateur g.

Le processus de signature de Schnorr se fait en trois étapes comme le processusDSA :

• Génération des clés.

• Signature du document.

• Véri�cation du document signé.

Génération des clés

Pour Générer les deux clés (privé et publique) on suive les étapes suivantes :• Choisir deux nombres premiers p et q qui doivent être très grands tels que qdivise (p− 1).

• Choisir un générateur (g) de groupe (Z/Zp).

• Générer aléatoirement un x, avec 0 < x < q.

• Calculer y = gx mod p .

Alors :

La clé public est :(p ,q, g, y).

La clé privée est : x.

La signature

Pour singer un message m on suive les étapes suivantes :

• Choisir un nombre aléatoire k telle que 1 < k < q.

• Calculer r = gk mod p.

• Calculer e= H(m||r), avec H est une fonction de hachage et || signi�e laconcaténation.

• Calculer s = k + xe mod q.

La signature de message m est (e ,s).

32

Page 38: Etude et implémentation de quelque algorithme de chiffrement et de signature

La véri�cation

Pour véri�er une signature (e, s) sur m on calcule u par la relation suivante :

• Calcule u= gsy−e mod p.

La signature est acceptée si et seulement si e= H(m||u).

3.2.2 Exemple d'illustrations

signée le message m=9.

Génération des clés

On utilise les mêmes paramètres de l'exercice présedent :

• Choisir p = 23 et q = 11, q divise p− 1.

• h Choisi égale à 16 < p− 1 et on a z = (p− 1)/q = 2

donc g ≡ 162 mod 23 ≡ 3 mod 23 > 1.

• Choisir x = 7 < q.

• Choisir y ≡ gx mod p ≡ 37 mod 23 ≡ 2 mod 23.

Alors :

La clé public est :(23,11,3,2) .

La clé privée est :7.

La signature

Expéditeur signer un message m :

• Choisi k = 5 , 1 < k < q = 11.

• r = gk mod p =35 mod 23 = 13 mod 23.

• e= H(m||r)= H(913) = 10 (juste supposition pour question de simpli�cation).

• s = k + xe mod q = (5 + 7× 10) mod 11 = 9 mod 11.

La signature de message m est (10 ,9).

La véri�cation

Destinataire prouver signatures numériques dans le calcul :

• u= gsy−e mod p = 39 × 2−10 mod 23= 13mod 23.

La signature est acceptée car e =H(m||u)= H(913) .

33

Page 39: Etude et implémentation de quelque algorithme de chiffrement et de signature

3.2.3 Implémentation

On utilise un exemple d'implémentation pour signe un message m.

Géneration des clés

Signature

Véri�ction

3.3 ECDSA(algorithme de signature utilisant des

courbes elliptiques)

Neal Koblitz et Victor S. Miller ont été les premiers à proposer l'utilisation descourbes elliptiques dans la cryptographie. Cela a donné lieu à la cryptographie descourbes elliptiques (ECC, Elliptic Curve Cryptography), qui est une cryptographieasymétrique basée sur le problème du logarithme discret sur courbes elliptiques.

Le problème du logarithme discret sur courbes elliptiques est l'un des problèmesles plus importants en cryptographie. Après vingt ans de cryptanalyse infructueuse,ce problème semble beaucoup plus di�cile à résoudre que les deux autres problèmestrès utilisés en cryptographie (le problème de la factorisation d'entiers et le problèmedu logarithme discret sur les corps �nis).

Il existe plusieurs algorithmes cryptographiques basés sur les courbes elliptiques.Parmi les plus usités, l'on peut citer l'algorithme de signature ECDSA et l'algo-rithme d'échange de clé ECDH. Dans cette partie on va s'intéresser sur l'algorithmede signature ECDSA. Avant d'aborder cet algorirthme on va étudier quelques com-pléments mathématiques qu'on va utiliser dans cet cryptosystème.

34

Page 40: Etude et implémentation de quelque algorithme de chiffrement et de signature

3.3.1 compléments mathématiques

Le protocole ECDSA utilise les opérations sur les courbes elliptiques suivantes :

• Addition de deux points P+ Q.

• Doublement d'un point 2P .

• Multiplication scalaire d'un point kP .

L'opération de base dans la génération et la véri�cation de signature ECDSAest la multiplication scalaire dans le corps des courbes elliptiques. Cette dernière estbasée sur les opérations de multiplication modulaire et d'inversion modulaire.

Dans cette partie on va s'intéresse ou notion mathématique lie à la courbe el-liptique pour bien comprendre le fonctionnement d'ECDSA (Elliptic Curve DigitalSignature Algorithm).

Courbe elliptique

Dé�nition

Soit p � 3 avec p un nombre premier impair. Une courbe elliptique E sur Z/pZest dé�nie par une équation de la forme : E : y3 = x3 + ax+ b.

Où a, b ∈Fp, et 4 · a3 + 27 · b2 6= 0 mod p. L'ensemble E(Fp) se compose de tousles points (x, y), x ∈Fp, y ∈ Fp qui satisfont l'équation de dé�nition E, avec un pointspécial O appelé point à l'in�ni.[20]

Exemple :

Soit p = 23 et considérer la courbe elliptique E : y2 mod 23 = x3 + x + 4 mod23 dé�nie sur F23. Notez que 4a3 + 27b2 = 4432 = 436 ≡ 22 mod 23, alors E est unune courbe elliptique. Les points de E(F23) sont O et les point suivantes :

(0,2), (0,21), (1,11), (1,12), (4,7), (4,16), (7,3), (7,20), (8,8), (8,15),(9,11), (9,12), (10,5), (10,18), (11,9), (11,14), (13,11), (13,12), (14,5),(14,18), (15,6), (15,17), (17,9), (17,14), (18,9), (18,14), (22,5), (22,19).

35

Page 41: Etude et implémentation de quelque algorithme de chiffrement et de signature

Addition, Négation et Doublement

• Addition

Soient P = (x1, y1) et Q = (x2, y2) deux points de E tels que P 6= Q.Pourtrouver la somme de P et Q, on se sert de la droite qui passe par ces deuxpoints et qui ne coupe la courbe qu'à un troisième point R = (x3, y3) .Lasomme de P et Q devient la point −R le point symétrique á R par rapport al'axe horizontal.[20]

Figure 3.1 � Description géométrique de l'addition de deux points de courbe ellip-tique distincte P+Q=R.

Algébriquement, le point R(x3, y3) est calculé de la façon suivante :

x3 = λ2 − x1 − x2 et y3 = λ(x1 − x3)− y1

Où : λ = (y2 − y1)/(x2 − x1) .

Exemple

On considère même courbe elliptique dé�ni dans l'exemple présedant :

E : y2 mod 23 = x3 + x+ 4 mod 23

On considère les deux points P = (4, 7) et Q = (13, 11) qui ∈E(F23) alors lasomme P +Q = (x3, y3) et le suivant :

x3 = (11−713−4)

2 − 1− 13 = −8 ≡ 15 mod 23.

y3 = (11−713−4)(4− 15)− 7 = −40 ≡ 6 mod 23.

Et par la suit P +Q = (15, 6).

36

Page 42: Etude et implémentation de quelque algorithme de chiffrement et de signature

• Négation

Soient P = (x1, y1) et Q = (x2, y2) deux points de E tels que P = −Q. Sion essaye d'appliquer la méthode géométrique précédente à la somme de P etQ, on voit que la droit qui passe par ces deux points ne coupe pas la courbeà un troisieme point. On dé�ni alors le point à l'in�ni comme étant le pointin�niment éloigné dans la direction de l'axe y. Ce point, noté O, devient letroisième point d'intersection avec P et Q.[20]

Alors P −P = O ⇒(x1, y1)+ (x1,−y1) = O (le point (x1,−y1) = P est appeléle négatif de P ) Le point à l' in�ni O représente l'élément neutre du groupeadditif. Pour tout point P ∈ E ,on a P +O = O + P = P .

Figure 3.2 � Description géométrique de l'addition de deux points de courbeelliptique P − P=O

• Doublement

Soit P = (x1, y1) ∈ E tel que y1 6= 0. Pour trouver la somme de P et P ,on se sert de la tangente de la courbe au point P . La tangente ne coupe lacourbe qu'a un point −R = (x3, y3). Le point P + P = 2P devient le pointR = (x3, y3).

Algébriquement, le point R(x3, y3) est calculé de la manière suivante :

37

Page 43: Etude et implémentation de quelque algorithme de chiffrement et de signature

Figure 3.3 � Description géométrique du doublement d'un point de la courbe el-liptique : P+P=R.

x3 = λ2 − 2x1 et y3 = λ(x1 − x3)− y1

Où : λ = (3 · x21 + a)/(2y1).

Dans le cas ou y1 = 0, la tangente devient une droit vertical qui ne coupe pasla courbe à un autre point. Dans ce cas, P + P = 2P = O.

Exemple

On considère même courbe elliptique dé�ni par : E :y2 mod 23 =x3 + x + 4mod 23 etP(4,7) ∈ E(F23) alors la somme 2P = P +P = (x3, y3) et le suivant :

x3 = (3×(4)2+1

14)2 − 8 = 217 ≡ 10 mod 23.

y3 = (3×(4)2+1

14)(4− 10)− 7 = −9718 mod 23.

Et par la suit P +Q = (10, 18).

Multiplication scalaire d'un point

La multiplication scalaire d'un point est basé principalement sur l'addition :étantdonné un k ∈ n et P ∈ E le prouduit KP est :[20]

KP =P + P + · · · · · · · · · · · ·+ P︸ ︷︷ ︸K fois

38

Page 44: Etude et implémentation de quelque algorithme de chiffrement et de signature

Exemple

On considère même courbe elliptique dé�ni par :

E :y2 mod 23 =x3 + x+ 4 mod 23, P(4,7) ∈ E(F23) et k = 3.

On peut véri�er que le point P appartient bien à la courbe elliptique E. On peutremplacer 3× P par P + P + P .

Calculons d'abord P + P :D'après la règle de la somme P + P = (4, 7) + (4, 7) = (x3, y3) = (10, 18) (d'aprèsl'exemple président).

Calculons maintenant 3× P :D'après la règle de la somme 2× P + P = (10, 18) + (4, 7) = (x3, y3) = 3× P ,avec :

k =(7− 18) · (4− 10)−1 mod 23 = 21 mod 23.

x3 =(212 − 10− 4) mod 23 = 13 mod 23.

y3 = (21 · (10− 13)− 18) mod 23 = 11 mod 23.

D'oú 3× P = (13, 11).

3.3.2 ECDSA(Elliptic Curve Digital Signature Algorithm)

ECDSA est un algorithme de signature numérique à clé publique utilisant lescourbes elliptiques. C'est une adaptation de DSA, qui est un algorithme utilisant ungroupe multiplicatif d'entiers modulaires. Tous les deux sont basés sur le problèmedu logarithme discret.

Cette algorithme a été proposé en 1992 par Scott Vanstone, en réponse à un appeld'o�re pour les signatures numériques du NIST (National Institute of Standards andTechnology). Vanstone fonda la société Certicom en 1985, et son entreprise détientla plupart des brevets des algorithmes à base de courbes elliptiques.

ECDSA a été admis en 1998 comme une norme ISO (International Standards Or-ganization) norme (ISO 14888-3), accepté en 1999 comme ANSI (American NationalStandards Institute) et a été publié comme norme internationale dans le documentANSI X9.62, et accepté en 2000 comme IEEE (Institute of Electrical and Electro-nics Engineers) standard (IEEE 1363-2000) et les normes FIPS(Federal InformationProcessing Standar) (FIPS 186-2). Il est également à l'étude pour inclusion dansd'autres normes ISO.[20]

39

Page 45: Etude et implémentation de quelque algorithme de chiffrement et de signature

3.3.2.1 Principe de fonctionnement

Pour utiliser le protocole ECDSA, les parties doivent s'accorder sur un ensembled'éléments qui dé�nissent la courbe elliptique (p,Ep(a, b),G, n). Chaque participantgénère ses paramètres de domaine et les envoie avec sa clé publique.[21]

Génération des clés

Le système d'ECDSA est base comme les autres algorithmes traités sur une clépublique et une clé privée. Pour fabriquer ses deux clés on suive les étapes suivant :

• Choisir une courbe elliptique(Les paramètres de la courbe doivent être choisisde façon à respecter les critères de sécurité usuels) dé�nie sur le corps Fp.L'ordre de E(Fp) doit être divisible par un grand nombre premier n .

• Choisir un élément G de E(Fp) d'ordre premier n . Les éléments du sous groupesont :{G,2G,3G,. . . . . . ,(n-1)G, nG=O}.• Choisir une valeur aléatoire d dans [1,n− 1]. Et par la suit calculer Q = dG.

Alors :

La clé public : c'est Q.

La clé privée : c'est d.

La signature

Pour signer un message m, un expéditeur avec les paramètres de domaine(p,Ep(a, b),G, n) et la paire de clés associée (d,Q) e�ectue les opérations suivantes :

• Choisir une valeur aléatoire K dans [1,n− 1].

• Calculer kG = (x1, y1).

• Calculer r= x1 mod n.

• Calculer e = h(m) ,où m le message à signer et h la fonction de hachageSHA− 1 qui s'exécute sur les données à signer.

• Calculer s= k−1(e+ dr) mod n.

La signature de message m est (r, s)

La véri�cation

Pour véri�er une signature (r, s) sur m, un récepteur obtient une copie authen-tique du paramètre de domaine (p,Ep(a, b),G, n) et la clé publique Q. et e�ectuepar la suit les opérations suivantes :

• Calculer e = h(m).

• Calculer u1= e · s−1 mod n.

40

Page 46: Etude et implémentation de quelque algorithme de chiffrement et de signature

• Calculer u2= r · s−1 mod n.

• Calculer u1 ·G+ u2 ·Q=(x2, y2).

• Calculer v= x2 mod n.

La signature est acceptée si et seulement si v = r.

Preuve du fonctionnement de la vérication de signature.

si l'on considère que la signature (r, s) d'un message m fut bel et bien généréepar le signataire légitime. Alors

s= k−1(e+ dr) mod n.

Donc le réarrangement nous donne :

k = s−1(e+ dr) mod n ≡s−1 · e+ s−1 · dr ≡u1 + u2 · d mod n.

Par conséquent, nous avons

X= u1 ·G+ u(2) ·Q = es−1G+ rs−1dG = s−1(e+ rd)G = kG = (x1, y1).

Et donc, r= x1 mod n = v comme voulu.

3.3.2.2 Exemple d'lustrations

Génération des clés

On pose par exemple p=114973, et un courbe elliptique dé�ni parE : y2 = x3−3x+69424 et un point de base G=(11570, 42257) à l'ordre n=114467 ,on sélectionne une valeur d entre [0,n−1] ,d = 86109 alors Q = dG = (6345, 28549).

Alors :

La clé public est : Q= (6345, 28549).

La clé privée est : d= 86109.

le message à signer est m = worldof à la valeur de hachage h(m) = 1789679805,la signature du message m est égal à (r, s) obtenu par les étapes suivantes :

La signature• Sélectionner k = 84430 , tel que 1 k n− 1.

• Calculer kG = (11705, 10585), r = 31167 mod 114973.

• Calculer s = k−1(H(m) + dr) mod 114973 = 82722 mod 114973.

41

Page 47: Etude et implémentation de quelque algorithme de chiffrement et de signature

Alors le paire (r, s)=(31167, 82722).

La véri�cation

• Calculer w = s−1 mod 114973= 83035 mod 114973.

• Calculer u1 = H(m)w mod 114973= 71001 mod 114973.

u2 = rw mod 114973 = 81909 mod 114973.

• Calculer u1G = (66931, 53304) et u2Q= (88970, 41780).

et par la suite on trouve u1G + u2Q= (31167, 31627) et v = 31167 mod114973.

• v = 31167 mod 114973 et r = 31167 mod 11497.

Nous obtenons v = r, la signature est accepté .

3.3.2.3 Implémentation

On utilise un exemple d'implémentation pour signe un message m.

Géneration des clés

Signature

Véri�ction

3.3.2.4 Comparaison entre DSA et ECDSA

Conceptuellement, le ECDSA est simplement obtenue à partir de la DSA enremplaçant le sous-groupe de l'ordre q de Zp généré par g avec le sous-groupe depoints sur une courbe elliptique qui sont générés par G.

La seule di�érence signi�cative entre ECDSA et DSA est dans la génération der. Le DSA fait en prenant l'aléatoire X =gk mod p , Et la réduction modulo q, en

42

Page 48: Etude et implémentation de quelque algorithme de chiffrement et de signature

obtenant ainsi un nombre entier dans l'intervalle [1,q− 1]. Le ECDSA génère r dansl'intervalle [1, n − 1] en prenant la x-coordonnée du point aléatoire KG et en laréduisant modulo n.[18]

les deux tableaux suivants fait la correspondance entre les notions d'ECDSA etDSA.

Notation DSA Notation ECDSA

q ng Gx dy Q

Table 3.1 � Correspondance entre la notion de DSA et ECDSA.[22]

Groupe Z∗p E(Zp)élément du groupe l'ensemble des entiers

{1,2, ......,p-1}les points(x,y) de E(Fp) etpoint à l'in�ni O

la loi de composition multiplication modulo p l'addition des pointsnotation élément : g, h

multiplication : g × hinverse : g−1

exponentiation : ga

élément : P , Qaddition : P +Qnégation : −Pmultiple :aP

probléme du loga-rithme discret

soient g ∈ Z∗p eth = ga mod p, trouver a

Soient P ∈ E(Fp) etQ = aP , trouver a

Table 3.2 � Correspondance entre F∗p et le groupe E(Zp).[22]

L' ECDSA empêche la faiblesse trouvée dans DSA qui permet la falsi�cation sélectived'un message si l'adversaire peut choisir les paramètres du système.

En ECDSA, il est obligatoire de véri�er, au cours de la génération de signature,si le numérique signature (r, s) est non nul. Or, dans DSA, il est facultatif.

On peut aussi comparer entre DSA et ECDSA en fonction de la taille de la cléou du temps de signature ou de véri�cation ou du problème sur lequel repose lasécurité de l'algorithme utilisé. Le schéma ECDSA utilise des clés plus courtes etest le plus rapide en véri�cation et en signature par apport au schéma de DSA.

L'avantage du schéma DSA par rapport au schéma ECDSA est que le problèmedu logarithme discret sur courbe elliptique est un problème plus récent et donc

43

Page 49: Etude et implémentation de quelque algorithme de chiffrement et de signature

moins étudié que celui sur corps �ni. De plus, le schéma DSA n'a pas de preuve dessécurités, contrairement à RSA et ECDSA.

Le tableau suivant présente une comparaison des temps de calcul en millisecondespour une signature et une véri�cation de signature sur un ordinateur équipé d'unprocesseur Pentium III 900 MHz avec 256 Mo de RAM.

44

Page 50: Etude et implémentation de quelque algorithme de chiffrement et de signature

Conclusion et perspectives

Dans ce projet , on a étudié deux classes d'algorithmes de cryptographie impor-tants :les cryptographies liées au problèmes de la factorisation (le cryptosystème deRSA et Rabin ), et les cryptographies liées au problèmes de logarithmes discret quise divisent en deux parties les problèmes de logarithmes discret sur les corps �nis(signature DSA et Schnorr) et sur les courbes elliptiques(ECDSA), cette étude nousa permis de comprendre le fonctionnement de ces cryptosystèmes ainsi que leursimplémentations sur Maple.

Ce projet nous a donné aussi l'opportunité de se familiariser avec l'environnementde Maple ainsi que celui de Latex .

45

Page 51: Etude et implémentation de quelque algorithme de chiffrement et de signature

Annexes

Cryptographies basés sur la factorisation

Chi�rement de RSA

46

Page 52: Etude et implémentation de quelque algorithme de chiffrement et de signature

47

Page 53: Etude et implémentation de quelque algorithme de chiffrement et de signature

Chi�rement de Rabin

48

Page 54: Etude et implémentation de quelque algorithme de chiffrement et de signature

Cryptographies basés sur logarithme discret

Signature de DSA

49

Page 55: Etude et implémentation de quelque algorithme de chiffrement et de signature

Signature de Schnorr

50

Page 56: Etude et implémentation de quelque algorithme de chiffrement et de signature

51

Page 57: Etude et implémentation de quelque algorithme de chiffrement et de signature

Signature de ESDSA

52

Page 58: Etude et implémentation de quelque algorithme de chiffrement et de signature

53

Page 59: Etude et implémentation de quelque algorithme de chiffrement et de signature

Glossaire

• Cryptographie :Art de chi�rer et de déchi�rer les messages.

• Cryptanalyse :Art de décrypter les messages chi�rés.

• Cryptologie :Science qui étudie les deux arts précédents.

• Clé privèe :Information personnalisante, connue seulement des personnesautorisées.

• Clé publique :Information personnalisante, connue de tout le monde.

• Chi�rement(cryptage) :Opération transformant un texte clair en messagechi�ré.

• Déchi�rement(Décryptage) :Opération consistant à retrouver le texte clairà partir du chi�ré sans connaître la clé.

• Fonction de hachage :Fonction transformant un message de taille arbitraireen une empreinte de taille �xée.

• Signature :Sceau apposé à un message permettant d'en garantir l'authenticitéet l'intégrité.

• Texte en clair : texte original intelligible tel qu'il se présentait avant toutchi�rement, révélé après un décodage ou un décryptement réussi.

• Texte chi�ré : c'est le texte obtenu après avoir appliqué l'algorithme dechi�rement sur le texte clair.

54

Page 60: Etude et implémentation de quelque algorithme de chiffrement et de signature

Bibliographie

[1] P. Barthélemy, R. Rolland,P. Véron .Cryptographie.collection informatique diri-gée par Jean-Charles Pomero.

[2] R.E.Klima, N.P.Sigmon .ACryptology : Classical and Modern with Maplets. CRCPress, 20 juin 2012.

[3] R.A.Mollin.An Introduction to Cryptography, Second Edition.CRC Press, 12 déc.2010.

[4] Source Wikipedia.Cryptanalyse.General Books, 2010.

[5] F. Pratt .Histoire de la cryptographie.Payot, 1740.

[6] Y. Desmed .Public Key Cryptography - PKC 2003.Springer, 13 déc. 2002.

[7] A.J. Menezes, P.C. van Oorschot, S.A. Vanstone .Handbook of Applied Crypto-

graphy.CRC Press, 12 déc. 2010.

[8] V. V. IAshchenko .Cryptography.American Mathematical Soc., 2002.

[9] B. Debraize .Méthodes de cryptanalyse pour les schémas de chi�rement symé-

trique.cryptologie : Versailles-St Quentin en Yvelines : 2008., 2008.

[10] H. Delfs, H. Knebl .Introduction to Cryptography : Principles and Applica-

tions.Springer, 5 mars 2007.

[11] H.C.A. van Tilborg, S.Jajodia .Encyclopedia of Cryptography and Secu-

rity.Springer, 6 sept. 2011.

[12] M.S. Rhee, B. Lee.Information Security and Cryptology � ICISC 2006.Springer,14 nov. 2006.

[13] S. Katzenbeisser .Recent Advances in RSA Cryptography.Springer, 30 sept.2001.

[14] K. M. Martin.Everyday Cryptography : Fundamental Principles RSA and Ap-

plications.Oxford University Press, 1 mars 2012.

[15] L. M. Surhone, M. T. Timpledon, S. F. Marseken.Rabin Cryptosystem :Rabin

Cryptosystem, Factorization, Integer Factorization, Michael O. Rabin, Public-key

Cryptography.Betascript Publishing, 2010.

[16] R. E. Blahut.Cryptography and Secure Communication.Cambridge UniversityPress, 27 mars 2014.

[17] T. Favre .Cryptographie et courbes elliptiques.Master's thesis,Ecole polytech-nique federale de LAUSANNE, 2011

55

Page 61: Etude et implémentation de quelque algorithme de chiffrement et de signature

[18] M. H. Sherif .Paiements électroniques sécurisés .PPUR presses polytechniques,2007.

[19] J. Katz .Digital Signatures .Springer, 17 mai 2010.

[20] A. Khalique, K. Singh, S. Sood.Implementation of Elliptic Curve Digital Signa-

ture Algorithm .International Journal of Computer Applications (0975 � 8887).

[21] H. Liao, Y. Shen .On the Elliptic Curve Digital Signature Algorithm.TunghaiScience Vol,July, 2006.

[22] M.dion .Implantation d'ECDSA sur un carte à puce.université de Montréal,MAI 1999.

[23] M. El Marraki .Cryptographie et sécurité de l'information. UNIVERSITE Mo-hammed V Faculté des Sciences de Rabat Département d'Informatique 2014.

56